From 07f9dac0a3b4593e99d66b84fe87908be31a7f94 Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 23 Nov 2021 01:51:40 -0800 Subject: [PATCH 001/168] fix lib --- tools/asset_processor/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/asset_processor/Makefile b/tools/asset_processor/Makefile index 2f36ae4b..e93c9a4f 100644 --- a/tools/asset_processor/Makefile +++ b/tools/asset_processor/Makefile @@ -14,7 +14,7 @@ INCLUDES = -I./ LIB := ifneq ($(shell uname -s),Darwin) - LIB += +lc++fs + LIB += -lstdc++fs endif # Create build dirs From 3a7c596558266045345717e04cddd103d4c517fc Mon Sep 17 00:00:00 2001 From: Henny022p Date: Fri, 26 Nov 2021 06:15:24 +0100 Subject: [PATCH 002/168] clean up TreeItem a bit --- data/const/enemy/treeItem.s | 23 ---------------- linker.ld | 2 +- src/enemy/treeItem.c | 54 +++++++++++++++++++++++-------------- 3 files changed, 35 insertions(+), 44 deletions(-) delete mode 100644 data/const/enemy/treeItem.s diff --git a/data/const/enemy/treeItem.s b/data/const/enemy/treeItem.s deleted file mode 100644 index 4f593c92..00000000 --- a/data/const/enemy/treeItem.s +++ /dev/null @@ -1,23 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_080D29E0:: @ 080D29E0 - .byte 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF - -gUnk_080D2AB0:: @ 080D2AB0 - .byte 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x00, 0x00, 0x00, 0x00 diff --git a/linker.ld b/linker.ld index 486ed6d5..290d527a 100644 --- a/linker.ld +++ b/linker.ld @@ -1174,7 +1174,7 @@ SECTIONS { data/const/enemy/gyorgFemaleMouth.o(.rodata); data/animations/enemy/gyorgFemaleMouth.o(.rodata); data/const/enemy/enemy64.o(.rodata); - data/const/enemy/treeItem.o(.rodata); + src/enemy/treeItem.o(.rodata); data/const/enemy/enemy66.o(.rodata); src/enemy.o(.rodata); data/data_080D3D94.o(.rodata); diff --git a/src/enemy/treeItem.c b/src/enemy/treeItem.c index acacb7a3..290cac38 100644 --- a/src/enemy/treeItem.c +++ b/src/enemy/treeItem.c @@ -9,22 +9,36 @@ static bool32 ShouldSpawnTreeItem(Entity*); extern u32 sub_080028F4(const u8*); extern void sub_08049CF4(Entity*); -extern const u8 gUnk_080D29E0[][16]; -extern const u8 gUnk_080D2AB0[]; +const u8 gTreeItemDropTables[][16] = { + { 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, +}; +const u8 gTreeItemDrops[] = { 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x00, 0x00, 0x00, 0x00 }; + +#define FAIRY_INDEX 8 void TreeItem(Entity* this) { Entity* itemEntity; - int var0; if (this->action == 0) { this->action++; - this->field_0x68.HALF.LO = sub_080028F4(gUnk_080D29E0[this->type]); - if (this->field_0x68.HALF.LO > 8) { + this->field_0x68.HALF.LO = sub_080028F4(gTreeItemDropTables[this->type]); + if (this->field_0x68.HALF.LO > FAIRY_INDEX) { DeleteThisEntity(); } - - if (this->field_0x68.HALF.LO < 8 && GetInventoryValue(0x67) == 0) { - this->field_0x68.HALF.LO = 8; + if (this->field_0x68.HALF.LO < FAIRY_INDEX && GetInventoryValue(0x67 /*KinstoneBag*/) == 0) { + this->field_0x68.HALF.LO = FAIRY_INDEX; } } @@ -32,24 +46,24 @@ void TreeItem(Entity* this) { return; } - var0 = this->field_0x68.HALF.LO; - if (var0 >= 0) { - if (var0 > 7) { - if (var0 == 8) { - itemEntity = CreateObject(FAIRY, 0x60, 0); - if (itemEntity) { - itemEntity->actionDelay = 0; - CopyPosition(this, itemEntity); - } + switch (this->field_0x68.HALF.LO) { + case FAIRY_INDEX: + itemEntity = CreateObject(FAIRY, 0x60, 0); + if (itemEntity) { + itemEntity->actionDelay = 0; + CopyPosition(this, itemEntity); } - } else { - itemEntity = CreateObject(OBJECT_96, 0x7, gUnk_080D2AB0[var0]); + break; + case 0 ...(FAIRY_INDEX - 1): + itemEntity = CreateObject(OBJECT_96, 0x7, gTreeItemDrops[this->field_0x68.HALF.LO]); if (itemEntity) { CopyPosition(this, itemEntity); itemEntity->y.HALF.HI += 16; itemEntity->z.HALF.HI = -32; } - } + break; + default: + break; } sub_08049CF4(this); From be225739118600bb45e2dd89bb49ec2cc2edac77 Mon Sep 17 00:00:00 2001 From: jorun Date: Tue, 30 Nov 2021 13:34:15 +0100 Subject: [PATCH 003/168] decompiled asm/fireplace.s --- asm/fireplace.s | 176 ------------------------------------------------ linker.ld | 2 +- src/fireplace.c | 50 ++++++++++++++ 3 files changed, 51 insertions(+), 177 deletions(-) delete mode 100644 asm/fireplace.s create mode 100644 src/fireplace.c diff --git a/asm/fireplace.s b/asm/fireplace.s deleted file mode 100644 index d7ce9569..00000000 --- a/asm/fireplace.s +++ /dev/null @@ -1,176 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Fireplace -Fireplace: @ 0x0809B6F0 - push {lr} - ldr r2, _0809B704 @ =gUnk_08123D98 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0809B704: .4byte gUnk_08123D98 - - thumb_func_start sub_0809B708 -sub_0809B708: @ 0x0809B708 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r6, #0xc] - ldrb r1, [r6, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r6, #0x18] - movs r0, #0x80 - strh r0, [r6, #0x24] - adds r0, r6, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl CheckFlags - cmp r0, #0 - beq _0809B73A - adds r0, r6, #0 - bl sub_0809B7DC - bl DeleteThisEntity - b _0809B78A -_0809B73A: - ldr r0, _0809B794 @ =0x0000030B - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldr r5, _0809B798 @ =gRoomControls - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #2 - bl sub_0807B7D8 - ldr r0, _0809B79C @ =0x00004061 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl SetTile -_0809B78A: - adds r0, r6, #0 - bl sub_0809B7A0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0809B794: .4byte 0x0000030B -_0809B798: .4byte gRoomControls -_0809B79C: .4byte 0x00004061 - - thumb_func_start sub_0809B7A0 -sub_0809B7A0: @ 0x0809B7A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0809B7C0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0809B7BC - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl SetFlag - bl DeleteThisEntity -_0809B7BC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0809B7C0 -sub_0809B7C0: @ 0x0809B7C0 - push {r4, lr} - adds r4, r0, #0 - bl GetTileTypeByEntity - ldr r1, _0809B7D8 @ =0xFFFFBF9F - adds r0, r0, r1 - cmp r0, #1 - bls _0809B7D6 - adds r0, r4, #0 - bl sub_0809B7DC -_0809B7D6: - pop {r4, pc} - .align 2, 0 -_0809B7D8: .4byte 0xFFFFBF9F - - thumb_func_start sub_0809B7DC -sub_0809B7DC: @ 0x0809B7DC - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0xc3 - lsls r0, r0, #2 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldr r5, _0809B838 @ =gRoomControls - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #2 - bl sub_0807B7D8 - ldr r0, _0809B83C @ =0x00004062 - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldrh r2, [r5, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - movs r3, #0x32 - ldrsh r2, [r6, r3] - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl SetTile - movs r0, #1 - strb r0, [r6, #0xe] - pop {r4, r5, r6, pc} - .align 2, 0 -_0809B838: .4byte gRoomControls -_0809B83C: .4byte 0x00004062 diff --git a/linker.ld b/linker.ld index 486ed6d5..b0184df2 100644 --- a/linker.ld +++ b/linker.ld @@ -846,7 +846,7 @@ SECTIONS { asm/object8A.o(.text); asm/object8B.o(.text); src/object/book.o(.text); - asm/fireplace.o(.text); + src/fireplace.o(.text); asm/object8E.o(.text); asm/frozenWaterElement.o(.text); asm/object90.o(.text); diff --git a/src/fireplace.c b/src/fireplace.c new file mode 100644 index 00000000..65725729 --- /dev/null +++ b/src/fireplace.c @@ -0,0 +1,50 @@ +#include "entity.h" +#include "functions.h" +#include "player.h" +#include "script.h" +#include "flags.h" +#include "room.h" + +extern void (*gUnk_08123D98[])(Entity *); + +void sub_0809B7A0(Entity *e); +void sub_0809B7DC(Entity *this); +void sub_0809B7C0(Entity *this); + +void Fireplace(Entity *e) { + gUnk_08123D98[e->action](e); +} + +void sub_0809B708(Entity *this) { + this->action = 1; + this->spriteSettings.draw = 1; + this->speed = 0x80; + if (CheckFlags(this->field_0x86.HWORD)) { + sub_0809B7DC(this); + DeleteThisEntity(); + } else { + sub_0807B7D8(0x30b, TILE(this->x.HALF.HI, this->y.HALF.HI), 2); + SetTile(0x4061, TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); + } + sub_0809B7A0(this); +} + +void sub_0809B7A0(Entity *this) { + sub_0809B7C0(this); + if (this->actionDelay) { + SetFlag(this->field_0x86.HWORD); + DeleteThisEntity(); + } +} + +void sub_0809B7C0(Entity *this) { + if (GetTileTypeByEntity(this) - 0x4061 > 1) { + sub_0809B7DC(this); + } +} + +void sub_0809B7DC(Entity *this) { + sub_0807B7D8(0xc3 << 2, TILE(this->x.HALF.HI, this->y.HALF.HI), 2); + SetTile(0x4062, TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); + this->actionDelay = 1; +} From a1944ca979d4856f96f0756b937eb7995f4acdda Mon Sep 17 00:00:00 2001 From: jorun Date: Tue, 30 Nov 2021 14:13:29 +0100 Subject: [PATCH 004/168] moved fireplace.c into object folder --- linker.ld | 2 +- src/{ => object}/fireplace.c | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/{ => object}/fireplace.c (100%) diff --git a/linker.ld b/linker.ld index b0184df2..18bf22d7 100644 --- a/linker.ld +++ b/linker.ld @@ -846,7 +846,7 @@ SECTIONS { asm/object8A.o(.text); asm/object8B.o(.text); src/object/book.o(.text); - src/fireplace.o(.text); + src/object/fireplace.o(.text); asm/object8E.o(.text); asm/frozenWaterElement.o(.text); asm/object90.o(.text); diff --git a/src/fireplace.c b/src/object/fireplace.c similarity index 100% rename from src/fireplace.c rename to src/object/fireplace.c From 43a22c586220e6e2405cafee7006498fa3a31dbb Mon Sep 17 00:00:00 2001 From: jorun Date: Tue, 30 Nov 2021 14:14:33 +0100 Subject: [PATCH 005/168] clang-format --- src/object/fireplace.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/object/fireplace.c b/src/object/fireplace.c index 65725729..f7e9bbaa 100644 --- a/src/object/fireplace.c +++ b/src/object/fireplace.c @@ -5,17 +5,17 @@ #include "flags.h" #include "room.h" -extern void (*gUnk_08123D98[])(Entity *); +extern void (*gUnk_08123D98[])(Entity*); -void sub_0809B7A0(Entity *e); -void sub_0809B7DC(Entity *this); -void sub_0809B7C0(Entity *this); +void sub_0809B7A0(Entity* e); +void sub_0809B7DC(Entity* this); +void sub_0809B7C0(Entity* this); -void Fireplace(Entity *e) { - gUnk_08123D98[e->action](e); +void Fireplace(Entity* e) { + gUnk_08123D98[e->action](e); } -void sub_0809B708(Entity *this) { +void sub_0809B708(Entity* this) { this->action = 1; this->spriteSettings.draw = 1; this->speed = 0x80; @@ -29,7 +29,7 @@ void sub_0809B708(Entity *this) { sub_0809B7A0(this); } -void sub_0809B7A0(Entity *this) { +void sub_0809B7A0(Entity* this) { sub_0809B7C0(this); if (this->actionDelay) { SetFlag(this->field_0x86.HWORD); @@ -37,13 +37,13 @@ void sub_0809B7A0(Entity *this) { } } -void sub_0809B7C0(Entity *this) { +void sub_0809B7C0(Entity* this) { if (GetTileTypeByEntity(this) - 0x4061 > 1) { sub_0809B7DC(this); } } -void sub_0809B7DC(Entity *this) { +void sub_0809B7DC(Entity* this) { sub_0807B7D8(0xc3 << 2, TILE(this->x.HALF.HI, this->y.HALF.HI), 2); SetTile(0x4062, TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); this->actionDelay = 1; From 27789fa94972aca60ad5742d1b9fb438414d2c9c Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Tue, 30 Nov 2021 14:50:02 +0100 Subject: [PATCH 006/168] Manager14.c: ok --- asm/non_matching/manager14/Manager14_Main.inc | 19 -- asm/non_matching/manager14/nullsub_495.inc | 4 - asm/non_matching/manager14/sub_08059E80.inc | 55 ----- asm/non_matching/manager14/sub_08059EF8.inc | 81 ------- asm/non_matching/manager14/sub_08059F9C.inc | 61 ------ asm/non_matching/manager14/sub_0805A040.inc | 5 - asm/non_matching/manager14/sub_0805A048.inc | 40 ---- asm/non_matching/manager14/sub_0805A098.inc | 24 --- asm/non_matching/manager14/sub_0805A0C0.inc | 41 ---- asm/non_matching/manager14/sub_0805A114.inc | 92 -------- asm/non_matching/manager14/sub_0805A1D8.inc | 61 ------ asm/non_matching/manager14/sub_0805A25C.inc | 17 -- assets/assets.json | 12 +- data/const/manager/manager14.s | 18 -- linker.ld | 2 +- src/manager/manager14.c | 201 ++++++++++++++++-- 16 files changed, 191 insertions(+), 542 deletions(-) delete mode 100644 asm/non_matching/manager14/Manager14_Main.inc delete mode 100644 asm/non_matching/manager14/nullsub_495.inc delete mode 100644 asm/non_matching/manager14/sub_08059E80.inc delete mode 100644 asm/non_matching/manager14/sub_08059EF8.inc delete mode 100644 asm/non_matching/manager14/sub_08059F9C.inc delete mode 100644 asm/non_matching/manager14/sub_0805A040.inc delete mode 100644 asm/non_matching/manager14/sub_0805A048.inc delete mode 100644 asm/non_matching/manager14/sub_0805A098.inc delete mode 100644 asm/non_matching/manager14/sub_0805A0C0.inc delete mode 100644 asm/non_matching/manager14/sub_0805A114.inc delete mode 100644 asm/non_matching/manager14/sub_0805A1D8.inc delete mode 100644 asm/non_matching/manager14/sub_0805A25C.inc delete mode 100644 data/const/manager/manager14.s diff --git a/asm/non_matching/manager14/Manager14_Main.inc b/asm/non_matching/manager14/Manager14_Main.inc deleted file mode 100644 index da20afe1..00000000 --- a/asm/non_matching/manager14/Manager14_Main.inc +++ /dev/null @@ -1,19 +0,0 @@ - .syntax unified - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - ldr r1, _08059E7C @ =gUnk_081085A4 - 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_0805A1D8 - pop {r4, pc} - .align 2, 0 -_08059E7C: .4byte gUnk_081085A4 - .syntax divided diff --git a/asm/non_matching/manager14/nullsub_495.inc b/asm/non_matching/manager14/nullsub_495.inc deleted file mode 100644 index 807ea5e0..00000000 --- a/asm/non_matching/manager14/nullsub_495.inc +++ /dev/null @@ -1,4 +0,0 @@ - .syntax unified - bx lr - .align 2, 0 - .syntax divided diff --git a/asm/non_matching/manager14/sub_08059E80.inc b/asm/non_matching/manager14/sub_08059E80.inc deleted file mode 100644 index 1b598506..00000000 --- a/asm/non_matching/manager14/sub_08059E80.inc +++ /dev/null @@ -1,55 +0,0 @@ - .syntax unified - push {r4, r5, lr} - adds r4, r0, #0 - bl EntityHasDuplicateID - cmp r0, #0 - beq _08059E90 - bl DeleteThisEntity -_08059E90: - adds r1, r4, #0 - adds r1, #0x22 - movs r2, #0 - movs r0, #1 - strb r0, [r1] - movs r0, #0 - strh r2, [r4, #0x20] - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0xf] - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r3, _08059EE4 @ =gScreen - ldr r0, _08059EE8 @ =0x00001E04 - strh r0, [r3, #0x2c] - ldrh r0, [r3] - movs r5, #0x80 - lsls r5, r5, #4 - adds r1, r5, #0 - orrs r0, r1 - strh r0, [r3] - adds r1, r3, #0 - adds r1, #0x66 - ldr r0, _08059EEC @ =0x00003E48 - strh r0, [r1] - adds r1, #2 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - movs r0, #0x80 - strh r0, [r3, #0x2e] - strh r2, [r3, #0x30] - ldr r1, _08059EF0 @ =nullsub_495 - ldr r2, _08059EF4 @ =sub_0805A25C - adds r0, r4, #0 - bl sub_08052D74 - pop {r4, r5, pc} - .align 2, 0 -_08059EE4: .4byte gScreen -_08059EE8: .4byte 0x00001E04 -_08059EEC: .4byte 0x00003E48 -_08059EF0: .4byte nullsub_495 -_08059EF4: .4byte sub_0805A25C - .syntax divided diff --git a/asm/non_matching/manager14/sub_08059EF8.inc b/asm/non_matching/manager14/sub_08059EF8.inc deleted file mode 100644 index 08bcb5db..00000000 --- a/asm/non_matching/manager14/sub_08059EF8.inc +++ /dev/null @@ -1,81 +0,0 @@ - .syntax unified - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r6, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08059F90 - movs r0, #4 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08059F9C - cmp r0, #0 - beq _08059F64 - ldr r2, _08059F50 @ =gUnk_08108588 - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - ldr r0, _08059F54 @ =0x00000808 - cmp r1, r0 - beq _08059F5C - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x24 - strb r5, [r0] - ldr r1, _08059F58 @ =gScreen - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - ands r0, r6 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, #0x68 - strh r0, [r1] - b _08059F90 - .align 2, 0 -_08059F50: .4byte gUnk_08108588 -_08059F54: .4byte 0x00000808 -_08059F58: .4byte gScreen -_08059F5C: - adds r0, r4, #0 - adds r0, #0x22 - strb r5, [r0] - b _08059F90 -_08059F64: - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #1 - strb r0, [r1] - ldr r3, _08059F94 @ =gUnk_08108588 - ldrb r2, [r4, #0xe] - lsls r0, r2, #1 - adds r0, r0, r3 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #5 - cmp r1, r0 - beq _08059F90 - ldr r0, _08059F98 @ =gScreen - subs r1, r2, #1 - strb r1, [r4, #0xe] - ands r1, r6 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r1, [r1] - adds r0, #0x68 - strh r1, [r0] -_08059F90: - pop {r4, r5, r6, pc} - .align 2, 0 -_08059F94: .4byte gUnk_08108588 -_08059F98: .4byte gScreen - .syntax divided diff --git a/asm/non_matching/manager14/sub_08059F9C.inc b/asm/non_matching/manager14/sub_08059F9C.inc deleted file mode 100644 index 55a7686f..00000000 --- a/asm/non_matching/manager14/sub_08059F9C.inc +++ /dev/null @@ -1,61 +0,0 @@ - .syntax unified - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08059FB4 @ =gRoomControls - ldrb r0, [r0, #5] - cmp r0, #0x17 - bhi _0805A03A - lsls r0, r0, #2 - ldr r1, _08059FB8 @ =_08059FBC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08059FB4: .4byte gRoomControls -_08059FB8: .4byte _08059FBC -_08059FBC: @ jump table - .4byte _0805A036 @ case 0 - .4byte _0805A01C @ case 1 - .4byte _0805A03A @ case 2 - .4byte _0805A03A @ case 3 - .4byte _0805A03A @ case 4 - .4byte _0805A03A @ case 5 - .4byte _0805A03A @ case 6 - .4byte _0805A02A @ case 7 - .4byte _0805A036 @ case 8 - .4byte _0805A036 @ case 9 - .4byte _0805A03A @ case 10 - .4byte _0805A03A @ case 11 - .4byte _0805A03A @ case 12 - .4byte _0805A03A @ case 13 - .4byte _0805A03A @ case 14 - .4byte _0805A03A @ case 15 - .4byte _0805A03A @ case 16 - .4byte _0805A03A @ case 17 - .4byte _0805A03A @ case 18 - .4byte _0805A03A @ case 19 - .4byte _0805A03A @ case 20 - .4byte _0805A03A @ case 21 - .4byte _0805A03A @ case 22 - .4byte _0805A036 @ case 23 -_0805A01C: - movs r0, #0x16 - bl CheckLocalFlag - cmp r0, #0 - beq _0805A02A - movs r0, #0 - b _0805A03C -_0805A02A: - adds r0, r4, #0 - bl sub_0805A25C - bl DeleteThisEntity - b _0805A03C -_0805A036: - movs r0, #1 - b _0805A03C -_0805A03A: - movs r0, #0 -_0805A03C: - pop {r4, pc} - .align 2, 0 - .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A040.inc b/asm/non_matching/manager14/sub_0805A040.inc deleted file mode 100644 index b326f001..00000000 --- a/asm/non_matching/manager14/sub_0805A040.inc +++ /dev/null @@ -1,5 +0,0 @@ - .syntax unified - push {lr} - bl sub_0805A098 - pop {pc} - .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A048.inc b/asm/non_matching/manager14/sub_0805A048.inc deleted file mode 100644 index 1e744aea..00000000 --- a/asm/non_matching/manager14/sub_0805A048.inc +++ /dev/null @@ -1,40 +0,0 @@ - .syntax unified - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805A086 - movs r0, #4 - strb r0, [r4, #0xf] - ldr r2, _0805A090 @ =gScreen - ldr r3, _0805A094 @ =gUnk_08108588 - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r3 - ldrh r0, [r0] - adds r2, #0x68 - strh r0, [r2] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #9 - bne _0805A086 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #0 - strb r0, [r1] -_0805A086: - adds r0, r4, #0 - bl sub_0805A098 - pop {r4, pc} - .align 2, 0 -_0805A090: .4byte gScreen -_0805A094: .4byte gUnk_08108588 - .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A098.inc b/asm/non_matching/manager14/sub_0805A098.inc deleted file mode 100644 index 76e0471d..00000000 --- a/asm/non_matching/manager14/sub_0805A098.inc +++ /dev/null @@ -1,24 +0,0 @@ - .syntax unified - push {lr} - adds r1, r0, #0 - ldr r0, _0805A0B0 @ =gRoomControls - ldrb r0, [r0, #5] - cmp r0, #9 - bgt _0805A0B4 - cmp r0, #8 - bge _0805A0BC - cmp r0, #0 - beq _0805A0BC - b _0805A0B8 - .align 2, 0 -_0805A0B0: .4byte gRoomControls -_0805A0B4: - cmp r0, #0x17 - beq _0805A0BC -_0805A0B8: - movs r0, #3 - strb r0, [r1, #0xc] -_0805A0BC: - pop {pc} - .align 2, 0 - .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A0C0.inc b/asm/non_matching/manager14/sub_0805A0C0.inc deleted file mode 100644 index 0e67a842..00000000 --- a/asm/non_matching/manager14/sub_0805A0C0.inc +++ /dev/null @@ -1,41 +0,0 @@ - .syntax unified - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xf] - subs r0, #1 - strb r0, [r3, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805A106 - movs r0, #4 - strb r0, [r3, #0xf] - ldr r4, _0805A108 @ =gScreen - ldr r2, _0805A10C @ =gUnk_08108588 - ldrb r0, [r3, #0xe] - adds r1, r0, #0 - adds r1, #0xff - strb r1, [r3, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strh r2, [r0] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0xff - bne _0805A106 - ldrh r1, [r4] - ldr r0, _0805A110 @ =0x0000F7FF - ands r0, r1 - strh r0, [r4] - bl sub_08056250 - bl DeleteThisEntity -_0805A106: - pop {r4, pc} - .align 2, 0 -_0805A108: .4byte gScreen -_0805A10C: .4byte gUnk_08108588 -_0805A110: .4byte 0x0000F7FF - .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A114.inc b/asm/non_matching/manager14/sub_0805A114.inc deleted file mode 100644 index 553675ce..00000000 --- a/asm/non_matching/manager14/sub_0805A114.inc +++ /dev/null @@ -1,92 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r6, r1, #0 - ldr r2, _0805A154 @ =gUnk_03003DE4 - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _0805A158 @ =gUnk_02017AA0 - adds r4, r0, r1 - movs r5, #0 - mov r8, r2 - mov sb, r1 - ldr r2, _0805A15C @ =gScreen - ldr r0, _0805A160 @ =gSineTable - mov ip, r0 -_0805A13A: - movs r1, #0x30 - ldrsh r0, [r2, r1] - adds r3, r5, r0 - asrs r1, r3, #3 - movs r0, #7 - ands r1, r0 - cmp r1, #7 - bhi _0805A190 - lsls r0, r1, #2 - ldr r1, _0805A164 @ =_0805A168 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805A154: .4byte gUnk_03003DE4 -_0805A158: .4byte gUnk_02017AA0 -_0805A15C: .4byte gScreen -_0805A160: .4byte gSineTable -_0805A164: .4byte _0805A168 -_0805A168: @ jump table - .4byte _0805A190 @ case 0 - .4byte _0805A18C @ case 1 - .4byte _0805A190 @ case 2 - .4byte _0805A190 @ case 3 - .4byte _0805A188 @ case 4 - .4byte _0805A190 @ case 5 - .4byte _0805A190 @ case 6 - .4byte _0805A18C @ case 7 -_0805A188: - subs r3, #8 - b _0805A190 -_0805A18C: - movs r0, #0xf0 - b _0805A192 -_0805A190: - movs r0, #0xf8 -_0805A192: - ands r3, r0 - adds r0, r6, r3 - movs r1, #0xff - ands r0, r1 - lsls r0, r0, #1 - add r0, ip - movs r1, #0 - ldrsh r0, [r0, r1] - muls r0, r7, r0 - lsrs r0, r0, #8 - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r4] - adds r4, #2 - adds r5, #1 - cmp r5, #0x9f - ble _0805A13A - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - add r0, sb - ldr r1, _0805A1D0 @ =0x0400001C - ldr r2, _0805A1D4 @ =0xA2600001 - bl sub_0805622C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805A1D0: .4byte 0x0400001C -_0805A1D4: .4byte 0xA2600001 - .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A1D8.inc b/asm/non_matching/manager14/sub_0805A1D8.inc deleted file mode 100644 index a91affc4..00000000 --- a/asm/non_matching/manager14/sub_0805A1D8.inc +++ /dev/null @@ -1,61 +0,0 @@ - .syntax unified - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _0805A244 @ =gRoomControls - ldr r0, [r1, #0x28] - ldr r2, _0805A248 @ =0xFFFFF000 - adds r0, r0, r2 - str r0, [r1, #0x28] - ldr r5, _0805A24C @ =gScreen - ldrh r0, [r1, #0x2a] - strh r0, [r5, #0x2e] - ldr r0, [r1, #0x2c] - adds r0, r0, r2 - str r0, [r1, #0x2c] - ldrh r0, [r1, #0x2e] - strh r0, [r5, #0x30] - ldrh r1, [r5] - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0805A240 - ldrh r1, [r4, #0x20] - lsrs r1, r1, #1 - movs r0, #6 - bl sub_0805A114 - adds r0, r4, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #0 - bne _0805A240 - ldr r0, _0805A250 @ =gMain - ldrh r1, [r0, #0xc] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0805A240 - adds r2, r4, #0 - adds r2, #0x24 - ldrb r0, [r2] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r2] - ldr r1, _0805A254 @ =gUnk_0810859A - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r5, #0 - adds r0, #0x68 - strh r1, [r0] -_0805A240: - pop {r4, r5, pc} - .align 2, 0 -_0805A244: .4byte gRoomControls -_0805A248: .4byte 0xFFFFF000 -_0805A24C: .4byte gScreen -_0805A250: .4byte gMain -_0805A254: .4byte gUnk_0810859A - .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A25C.inc b/asm/non_matching/manager14/sub_0805A25C.inc deleted file mode 100644 index 6a989185..00000000 --- a/asm/non_matching/manager14/sub_0805A25C.inc +++ /dev/null @@ -1,17 +0,0 @@ - .syntax unified - push {lr} - ldr r1, _0805A278 @ =gScreen - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0 - strh r0, [r2] - ldrh r2, [r1] - ldr r0, _0805A27C @ =0x0000F7FF - ands r0, r2 - strh r0, [r1] - bl sub_08056250 - pop {pc} - .align 2, 0 -_0805A278: .4byte gScreen -_0805A27C: .4byte 0x0000F7FF - .syntax divided diff --git a/assets/assets.json b/assets/assets.json index d00b1836..6320d5ab 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -33520,16 +33520,6 @@ "start": 1082672, "size": 88 }, - { - "path": "manager14/gUnk_08108588.bin", - "start": 1082760, - "size": 18 - }, - { - "path": "manager14/gUnk_0810859A.bin", - "start": 1082778, - "size": 10 - }, { "path": "manager15/gUnk_081085B8.bin", "start": 1082808, @@ -52701,4 +52691,4 @@ }, "size": 129 } -] \ No newline at end of file +] diff --git a/data/const/manager/manager14.s b/data/const/manager/manager14.s deleted file mode 100644 index 806b0dcf..00000000 --- a/data/const/manager/manager14.s +++ /dev/null @@ -1,18 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08108588:: @ 08108588 - .incbin "manager14/gUnk_08108588.bin" - -gUnk_0810859A:: @ 0810859A - .incbin "manager14/gUnk_0810859A.bin" - -gUnk_081085A4:: @ 081085A4 - .4byte sub_08059E80 - .4byte sub_0805A040 - .4byte sub_0805A048 - .4byte sub_0805A0C0 - .4byte sub_08059EF8 diff --git a/linker.ld b/linker.ld index 486ed6d5..28c9e80d 100644 --- a/linker.ld +++ b/linker.ld @@ -1206,7 +1206,7 @@ SECTIONS { src/manager/manager10.o(.rodata); data/const/manager/manager12.o(.rodata); data/const/manager/manager13.o(.rodata); - data/const/manager/manager14.o(.rodata); + src/manager/manager14.o(.rodata); data/const/manager/manager15.o(.rodata); data/const/manager/manager17.o(.rodata); data/const/manager/manager18.o(.rodata); diff --git a/src/manager/manager14.c b/src/manager/manager14.c index bb7388ef..e2baa74d 100644 --- a/src/manager/manager14.c +++ b/src/manager/manager14.c @@ -1,25 +1,202 @@ +#include "global.h" #include "manager.h" +#include "screen.h" +#include "room.h" +#include "flags.h" +#include "coord.h" +#include "main.h" -ASM_FUNC("asm/non_matching/manager14/Manager14_Main.inc", void Manager14_Main()) +typedef struct { + Manager manager; + u16 unk_20; + u8 unk_22; + u8 unk_23[1]; + u8 unk_24; + u8 unk_25[0x1B]; +} Manager14; -ASM_FUNC("asm/non_matching/manager14/sub_08059E80.inc", void sub_08059E80()) +extern u8 gUnk_03003DE4; +extern u16 gUnk_02017AA0[]; -ASM_FUNC("asm/non_matching/manager14/sub_08059EF8.inc", void sub_08059EF8()) +const u16 gUnk_08108588[] = { 0x1000, 0xF01, 0xE02, 0xD03, 0xC04, 0xB05, 0xA06, 0x907, 0x808 }; -ASM_FUNC("asm/non_matching/manager14/sub_08059F9C.inc", void sub_08059F9C()) +const u16 gUnk_0810859A[] = { 0x808, 0x907, 0xA06, 0x907 }; -ASM_FUNC("asm/non_matching/manager14/sub_0805A040.inc", void sub_0805A040()) +extern void sub_08052D74(void*, void (*)(), void (*)()); +extern void sub_08056250(void); +extern void sub_0805622C(u16*, u32, u32); -ASM_FUNC("asm/non_matching/manager14/sub_0805A048.inc", void sub_0805A048()) +void Manager14_Main(Manager14*); +void sub_08059E80(Manager14*); +void sub_08059EF8(Manager14*); +u32 sub_08059F9C(Manager14*); +void sub_0805A040(Manager14*); +void sub_0805A048(Manager14*); +void sub_0805A098(Manager14*); +void sub_0805A0C0(Manager14*); +void sub_0805A114(u32, u32); +void sub_0805A1D8(Manager14*); +void nullsub_495(); +void sub_0805A25C(); -ASM_FUNC("asm/non_matching/manager14/sub_0805A098.inc", void sub_0805A098()) +void Manager14_Main(Manager14* this) { + static void (*const gUnk_081085A4[])(Manager14*) = { + sub_08059E80, sub_0805A040, sub_0805A048, sub_0805A0C0, sub_08059EF8, + }; + this->unk_20++; + gUnk_081085A4[this->manager.action](this); + sub_0805A1D8(this); +} -ASM_FUNC("asm/non_matching/manager14/sub_0805A0C0.inc", void sub_0805A0C0()) +void sub_08059E80(Manager14* this) { + if (EntityHasDuplicateID((Entity*)this)) { + DeleteThisEntity(); + } + this->unk_22 = 1; + this->unk_20 = 0; + this->manager.unk_0e = 0; + this->manager.unk_0f = 4; + this->manager.action = 4; + this->manager.unk_10 |= 0x20; + gScreen.bg3.control = 0x1E04; + gScreen.lcd.displayControl |= 0x800; + gScreen.controls.layerFXControl = 0x3E48; + gScreen.controls.alphaBlend = 0x1000; + gScreen.bg3.xOffset = 0x80; + gScreen.bg3.yOffset = 0; + sub_08052D74(this, nullsub_495, sub_0805A25C); +} -ASM_FUNC("asm/non_matching/manager14/sub_0805A114.inc", void sub_0805A114()) +void sub_08059EF8(Manager14* this) { + u32 tmp = --this->manager.unk_0f; + if (tmp == 0) { + this->manager.unk_0f = 4; + if (sub_08059F9C(this)) { + if (gUnk_08108588[this->manager.unk_0e] != 0x808) { + this->unk_22 = 1; + this->unk_24 = tmp; + gScreen.controls.alphaBlend = gUnk_08108588[++this->manager.unk_0e]; + } else { + this->unk_22 = tmp; + } + } else { + this->unk_22 = 1; + if (gUnk_08108588[this->manager.unk_0e] != 0x1000) { + gScreen.controls.alphaBlend = gUnk_08108588[--this->manager.unk_0e]; + } + } + } +} -ASM_FUNC("asm/non_matching/manager14/sub_0805A1D8.inc", void sub_0805A1D8()) +u32 sub_08059F9C(Manager14* this) { + switch (gRoomControls.roomID) { + case 1: + if (CheckLocalFlag(0x16)) { + return 0; + } + sub_0805A25C(this); + DeleteThisEntity(); + break; + case 7: + sub_0805A25C(this); + DeleteThisEntity(); + break; + case 0: + case 8 ... 9: + case 23: + return 1; + case 2 ... 6: + case 10 ... 22: + default: + return 0; + } +} -ASM_FUNC("asm/non_matching/manager14/nullsub_495.inc", void nullsub_495()) +void sub_0805A040(Manager14* this) { + sub_0805A098(this); +} -ASM_FUNC("asm/non_matching/manager14/sub_0805A25C.inc", void sub_0805A25C()) +void sub_0805A048(Manager14* this) { + if (--this->manager.unk_0f == 0) { + this->manager.unk_0f = 4; + gScreen.controls.alphaBlend = gUnk_08108588[this->manager.unk_0e++]; + if (this->manager.unk_0e == 9) { + this->manager.action = 1; + this->unk_22 = 0; + } + } + sub_0805A098(this); +} + +void sub_0805A098(Manager14* this) { + switch (gRoomControls.roomID) { + case 0: + case 8: + case 9: + case 0x17: + return; + default: + this->manager.action = 3; + } +} + +void sub_0805A0C0(Manager14* this) { + if (--this->manager.unk_0f == 0) { + this->manager.unk_0f = 4; + gScreen.controls.alphaBlend = gUnk_08108588[this->manager.unk_0e--]; + if (this->manager.unk_0e == 0xFF) { + gScreen.lcd.displayControl &= ~0x800; + sub_08056250(); + DeleteThisEntity(); + } + } +} + +void sub_0805A114(u32 unk0, u32 unk1) { + s32 i; + u16* p = &gUnk_02017AA0[gUnk_03003DE4 * 0x500]; + for (i = 0; i < 0xA0; i++) { + s32 tmp = i + gScreen.bg3.yOffset; + switch ((tmp >> 3) & 7) { + case 4: + tmp -= 8; + tmp &= 0xF8; + break; + case 1: + case 7: + tmp &= 0xF0; + break; + case 0: + case 2 ... 3: + case 5 ... 6: + default: + tmp &= 0xF8; + } + *p++ = gScreen.bg3.xOffset + ((gSineTable[(unk1 + tmp) & 0xFF] * unk0) >> 8); + } + sub_0805622C(&gUnk_02017AA0[gUnk_03003DE4 * 0x500], 0x0400001C, 0xA2600001); +} + +void sub_0805A1D8(Manager14* this) { + gRoomControls.bg3OffsetX.WORD -= 0x1000; + gScreen.bg3.xOffset = gRoomControls.bg3OffsetX.HALF.HI; + gRoomControls.bg3OffsetY.WORD -= 0x1000; + gScreen.bg3.yOffset = gRoomControls.bg3OffsetY.HALF.HI; + if (gScreen.lcd.displayControl & 0x800) { + sub_0805A114(6, this->unk_20 >> 1); + if (this->unk_22 == 0 && (gMain.ticks & 0x1F) == 0) { + this->unk_24++; + this->unk_24 &= 3; + gScreen.controls.alphaBlend = gUnk_0810859A[this->unk_24]; + } + } +} + +void nullsub_495() { +} + +void sub_0805A25C() { + gScreen.controls.layerFXControl = 0; + gScreen.lcd.displayControl &= ~0x800; + sub_08056250(); +} From fc087427bd9d94c5bc806d328112b4f8608ed695 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Tue, 30 Nov 2021 14:59:23 +0100 Subject: [PATCH 007/168] Moved some stuff to headers --- include/functions.h | 2 +- include/main.h | 1 + src/manager/manager14.c | 7 ++----- src/manager/manager1A.c | 2 -- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/include/functions.h b/include/functions.h index 65913c68..b4316733 100644 --- a/include/functions.h +++ b/include/functions.h @@ -222,7 +222,7 @@ extern void sub_08080CB4(Entity*); extern u32 sub_0800442E(Entity*); extern void sub_08081404(Entity*, u32); extern void sub_0807B7D8(u32, u32, u32); -extern void sub_08052D74(void*, void*, void*); +extern void sub_08052D74(void*, void (*)(), void (*)()); extern void sub_0800451C(Entity*); extern u32 sub_080002F0(u32, u32, u32); extern u32 sub_080040D8(Entity*, u8*, s32, s32); diff --git a/include/main.h b/include/main.h index 99007163..3225f2ed 100644 --- a/include/main.h +++ b/include/main.h @@ -97,6 +97,7 @@ extern u16 gPaletteBuffer[]; extern void VBlankInterruptWait(void); extern void DisableInterruptsAndDMA(void); extern void EnableVBlankIntr(void); +extern void sub_08056250(void); static void sub_08055F70(void); static bool32 SoftResetKeysPressed(void); diff --git a/src/manager/manager14.c b/src/manager/manager14.c index e2baa74d..0b98f542 100644 --- a/src/manager/manager14.c +++ b/src/manager/manager14.c @@ -5,6 +5,7 @@ #include "flags.h" #include "coord.h" #include "main.h" +#include "functions.h" typedef struct { Manager manager; @@ -15,16 +16,12 @@ typedef struct { u8 unk_25[0x1B]; } Manager14; -extern u8 gUnk_03003DE4; -extern u16 gUnk_02017AA0[]; - const u16 gUnk_08108588[] = { 0x1000, 0xF01, 0xE02, 0xD03, 0xC04, 0xB05, 0xA06, 0x907, 0x808 }; const u16 gUnk_0810859A[] = { 0x808, 0x907, 0xA06, 0x907 }; -extern void sub_08052D74(void*, void (*)(), void (*)()); -extern void sub_08056250(void); extern void sub_0805622C(u16*, u32, u32); +extern u16 gUnk_02017AA0[]; void Manager14_Main(Manager14*); void sub_08059E80(Manager14*); diff --git a/src/manager/manager1A.c b/src/manager/manager1A.c index b0401f28..d828bff5 100644 --- a/src/manager/manager1A.c +++ b/src/manager/manager1A.c @@ -31,8 +31,6 @@ void Manager1A_Main(Manager1A* this) { gUnk_08108668[this->manager.action](this); } -extern void sub_08052D74(void*, void*, void*); - typedef struct struct_08108764 { u8 unk_00; u8 unk_01; // area ID? From fc20ec78fc9d01c2a7030d48fa3a3c0cfdc5902d Mon Sep 17 00:00:00 2001 From: jorun Date: Tue, 30 Nov 2021 18:04:53 +0100 Subject: [PATCH 008/168] cleaner decomp for sub_0809B7C0 --- src/object/fireplace.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/object/fireplace.c b/src/object/fireplace.c index f7e9bbaa..fe2dc0d6 100644 --- a/src/object/fireplace.c +++ b/src/object/fireplace.c @@ -38,7 +38,8 @@ void sub_0809B7A0(Entity* this) { } void sub_0809B7C0(Entity* this) { - if (GetTileTypeByEntity(this) - 0x4061 > 1) { + u32 tileType = GetTileTypeByEntity(this); + if (tileType != 0x4061 && tileType != 0x4062) { sub_0809B7DC(this); } } From d4fc05d9cc03944ca7918439c8f5dfab50471339 Mon Sep 17 00:00:00 2001 From: Elliptic Ellipsis Date: Thu, 9 Dec 2021 05:24:45 +0000 Subject: [PATCH 009/168] Update progress script with new csv format, text mode, etc. --- progress.py | 54 ++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 13 deletions(-) mode change 100644 => 100755 progress.py diff --git a/progress.py b/progress.py old mode 100644 new mode 100755 index 512dc31a..141fbc30 --- a/progress.py +++ b/progress.py @@ -1,4 +1,7 @@ +#!/usr/bin/env python3 + import argparse +import json import git import os import re @@ -80,9 +83,13 @@ def parse_map(non_matching_funcs): def main(): parser = argparse.ArgumentParser() - parser.add_argument('-m', '--matching', dest='matching', action='store_true', - help='Output matching progress instead of decompilation progress') + + parser = argparse.ArgumentParser(description="Computes current progress throughout the whole project.") + parser.add_argument("format", nargs="?", default="text", choices=["text", "csv", "shield-json"]) + parser.add_argument("-m", "--matching", dest='matching', action='store_true', + help="Output matching progress instead of decompilation progress") args = parser.parse_args() + matching = args.matching non_matching_funcs = [] @@ -101,21 +108,42 @@ def main(): total = src + asm data_total = src_data + data - src_pct = '%.4f' % (100 * src / total) - asm_pct = '%.4f' % (100 * asm / total) + src_percent = 100 * src / total + asm_percent = 100 * asm / total - src_data_pct = '%.4f' % (100 * src_data / data_total) - data_pct = '%.4f' % (100 * data / data_total) + src_data_percent = 100 * src_data / data_total + data_percent = 100 * data / data_total - version = 1 - git_object = git.Repo().head.object - timestamp = str(git_object.committed_date) - git_hash = git_object.hexsha - csv_list = [str(version), timestamp, git_hash, str(src_pct), - str(asm_pct), str(src_data_pct), str(data_pct)] + if args.format == 'csv': + version = 2 + git_object = git.Repo().head.object + timestamp = str(git_object.committed_date) + git_hash = git_object.hexsha - print(','.join(csv_list)) + csv_list = [str(version), timestamp, git_hash, str(src), + str(total), str(src_data), str(data_total)] + + print(','.join(csv_list)) + + elif args.format == 'shield-json': + # https://shields.io/endpoint + print(json.dumps({ + "schemaVersion": 1, + "label": "progress", + "message": f"{src_percent:.3g}%", + "color": 'yellow', + })) + + elif args.format == 'text': + adjective = "decompiled" if not args.matching else "matched" + + print("src: {:>9} / {:>8} total bytes {:<10} {:>9.4f}%".format(src, total, adjective, round(src_percent, 4))) + # print() + print("data: {:>9} / {:>8} total bytes analysed {:>9.4f}%".format(src_data, data_total, round(src_data_percent, 4))) + + else: + print("Unknown format argument: " + args.format) if __name__ == '__main__': From 64f36f47400598ed8482513fab8ae54e8c0e1f77 Mon Sep 17 00:00:00 2001 From: Elliptic Ellipsis Date: Thu, 9 Dec 2021 05:26:41 +0000 Subject: [PATCH 010/168] Update Jenkinsfile --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a01f6b2d..93efaa65 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -26,8 +26,8 @@ pipeline { } steps { sh 'mkdir reports' - sh 'python3 progress.py >> reports/progress_tmc.csv' - sh 'python3 progress.py -m >> reports/progress_tmc_matching.csv' + sh 'python3 progress.py csv >> reports/progress_tmc.csv' + sh 'python3 progress.py csv -m >> reports/progress_tmc_matching.csv' stash includes: 'reports/*', name: 'reports' } } From 10d0d9e58982f37881342f6e3704745956b7481d Mon Sep 17 00:00:00 2001 From: theo3 Date: Sun, 12 Dec 2021 01:48:25 -0800 Subject: [PATCH 011/168] overworld --- .gitignore | 1 + asm/beanstalk.s | 4 +- asm/bigBarrel.s | 8 +- asm/bigPushableLever.s | 2 +- asm/bird.s | 18 +- asm/businessScrubPrologue.s | 4 +- asm/chestSpawner.s | 6 +- asm/code_08018500.s | 8 +- asm/code_0801967C.s | 2 +- asm/code_0801D79C.s | 8 +- asm/code_080300AC.s | 4 +- asm/code_0804A720.s | 4 +- asm/code_0804AA84.s | 4 +- asm/code_080526F8.s | 1977 +---------------- asm/code_0805436C.s | 8 +- asm/code_08054C04.s | 8 +- asm/code_0807059C.s | 4 +- asm/code_080732D0.s | 4 +- asm/code_08077698.s | 2 +- asm/code_08078778.s | 12 +- asm/code_0807B9B8.s | 4 +- asm/code_0807CAA0.s | 10 +- asm/code_0807F0D8.s | 4 +- asm/code_080A29BC.s | 2 +- asm/code_080A3480.s | 10 +- asm/code_080A3BD0.s | 6 +- asm/code_080A5574.s | 24 +- asm/code_080A7C00.s | 2 +- asm/code_080ADD30.s | 8 +- asm/crenalBeanSprout.s | 2 +- asm/deathFx.s | 2 +- asm/enemy64.s | 6 +- asm/fairy.s | 4 +- asm/figurineDevice.s | 16 +- asm/fileScreen.s | 40 +- asm/fourElements.s | 12 +- asm/getEmptyEntity.s | 8 +- asm/giantBookLadder.s | 2 +- asm/gyorgFemale.s | 2 +- asm/intr.s | 10 +- asm/itemForSale.s | 4 +- asm/macroBook.s | 4 +- asm/macros/scripts.inc | 4 +- asm/non_matching/eu/Manager7_Main.inc | 2 +- asm/non_matching/eu/sub_08057A18.inc | 2 +- asm/non_matching/game/sub_08052418.inc | 66 - asm/non_matching/manager1/sub_08057450.inc | 4 +- asm/non_matching/manager16/Manager16_Main.inc | 2 +- asm/non_matching/manager22/Manager22_Main.inc | 2 +- .../mountainMinish/sub_08067EF0.inc | 2 +- asm/non_matching/ocarina/OcarinaUpdate.inc | 2 +- asm/non_matching/sub_unk3_HyruleTown_0.inc | 2 +- asm/object1E.s | 2 +- asm/object28.s | 2 +- asm/object30.s | 2 +- asm/object3E.s | 2 +- asm/object6A.s | 30 +- asm/object74.s | 8 +- asm/object79.s | 2 +- asm/object8B.s | 2 +- asm/object8E.s | 10 +- asm/object9.s | 2 +- asm/object91.s | 4 +- asm/object98.s | 2 +- asm/objectA8.s | 4 +- asm/objectAB.s | 2 +- asm/objectB.s | 2 +- asm/objectBA.s | 2 +- asm/objectBlockingStairs.s | 10 +- asm/objectC1.s | 4 +- asm/pushableFurniture.s | 8 +- asm/pushableGrave.s | 4 +- asm/pushableLever.s | 2 +- asm/specialFx.s | 2 +- asm/sub_080A276C.s | 4 +- asm/windTribeTeleporter.s | 12 +- assets/assets.json | 15 - data/data_080FC8A4.s | 1252 ----------- data/data_080FCAC8.s | 1218 ++++++++++ data/scripts/script_0800AF44.inc | 2 +- data/scripts/script_0800AF68.inc | 2 +- data/scripts/script_0800AF8C.inc | 2 +- data/scripts/script_0800AFB0.inc | 2 +- data/scripts/script_0800AFE8.inc | 2 +- data/scripts/script_0800E0BC.inc | 8 +- data/scripts/script_0800EF40.inc | 2 +- data/scripts/script_08012D18.inc | 2 +- data/scripts/script_08016384.inc | 10 +- include/area.h | 196 +- include/entity.h | 77 +- include/fileScreen.h | 5 +- include/flags.h | 34 +- include/functions.h | 18 +- include/global.h | 2 + include/main.h | 15 +- include/player.h | 40 +- include/room.h | 74 +- include/save.h | 25 +- include/screen.h | 2 +- include/structures.h | 59 +- include/textbox.h | 8 + include/utils.h | 4 +- linker.ld | 9 +- src/code_080300AC.c | 2 +- src/code_0804AA84.c | 2 +- src/code_0805436C.c | 2 +- src/code_0808091C.c | 15 +- src/collision.c | 17 +- src/debugScreen.c | 2 +- src/enemy/businessScrub.c | 14 +- src/enemy/likeLike.c | 2 +- src/enemy/mazaalHead.c | 2 +- src/enemy/mazaalMacro.c | 1 - src/enemy/vaatiArm.c | 4 +- src/enemy/vaatiProjectile.c | 4 +- src/enemy/vaatiWrath.c | 10 +- src/enemy/wallMaster.c | 4 +- src/enemy/wallMaster2.c | 4 +- src/entity.c | 241 +- src/fileScreen.c | 4 +- src/flags.c | 30 +- src/game.c | 374 ---- src/item/itemLantern.c | 2 +- src/item/itemOcarina.c | 8 +- src/item/itemPegasusBoots.c | 4 +- src/item/itemSword.c | 2 +- src/loadRoom.c | 2 +- src/main.c | 17 +- src/manager/manager1.c | 2 +- src/manager/manager10.c | 2 +- src/manager/manager12.c | 11 +- src/manager/manager13.c | 3 +- src/manager/manager14.c | 2 +- src/manager/manager15.c | 10 +- src/manager/manager18.c | 8 +- src/manager/manager19.c | 8 +- src/manager/manager1A.c | 36 +- src/manager/manager1B.c | 4 +- src/manager/manager2.c | 2 +- src/manager/manager24.c | 14 +- src/manager/manager26.c | 2 +- src/manager/manager27.c | 4 +- src/manager/manager2C.c | 18 +- src/manager/manager2E.c | 10 +- src/manager/manager2F.c | 8 +- src/manager/manager3.c | 2 +- src/manager/manager32.c | 9 +- src/manager/manager34.c | 2 +- src/manager/manager35.c | 8 +- src/manager/manager36.c | 2 +- src/manager/manager37.c | 8 +- src/manager/manager39.c | 6 +- src/manager/manager4.c | 6 +- src/manager/manager6.c | 2 +- src/manager/manager7.c | 4 +- src/manager/manager8.c | 2 +- src/manager/manager9.c | 2 +- src/manager/managerA.c | 14 +- src/manager/managerB.c | 4 +- src/manager/managerC.c | 16 +- src/manager/managerE.c | 2 +- src/manager/managerF.c | 20 +- src/npc/beedle.c | 5 +- src/npc/bigGoron.c | 16 +- src/npc/bladeBrothers.c | 4 +- src/npc/brocco.c | 2 +- src/npc/carpenter.c | 4 +- src/npc/castleMaid.c | 2 +- src/npc/castorWildsStatue.c | 2 +- src/npc/cat.c | 8 +- src/npc/cow.c | 4 +- src/npc/cucco.c | 4 +- src/npc/cuccoChick.c | 4 +- src/npc/dampe.c | 2 +- src/npc/din.c | 2 +- src/npc/dog.c | 22 +- src/npc/drLeft.c | 4 +- src/npc/emma.c | 2 +- src/npc/epona.c | 6 +- src/npc/ezloCap.c | 2 +- src/npc/farmers.c | 2 +- src/npc/farore.c | 2 +- src/npc/festari.c | 4 +- src/npc/forestMinish.c | 8 +- src/npc/gentari.c | 4 +- src/npc/ghostBrothers.c | 4 +- src/npc/goron.c | 4 +- src/npc/goronMerchant.c | 6 +- src/npc/gregal.c | 10 +- src/npc/guard.c | 2 +- src/npc/hurdyGurdyMan.c | 6 +- src/npc/kid.c | 4 +- src/npc/kingGustaf.c | 2 +- src/npc/librari.c | 2 +- src/npc/mama.c | 4 +- src/npc/marcy.c | 2 +- src/npc/mayorHagen.c | 4 +- src/npc/melari.c | 2 +- src/npc/minishEzlo.c | 2 +- src/npc/mutoh.c | 4 +- src/npc/nayru.c | 2 +- src/npc/npc4E.c | 4 +- src/npc/npc5.c | 2 +- src/npc/npc9.c | 4 +- src/npc/phonograph.c | 2 +- src/npc/pina.c | 2 +- src/npc/pita.c | 2 +- src/npc/postman.c | 4 +- src/npc/rem.c | 6 +- src/npc/simon.c | 4 +- src/npc/sittingPerson.c | 2 +- src/npc/smallTownMinish.c | 4 +- src/npc/smith.c | 4 +- src/npc/stamp.c | 4 +- src/npc/stockwell.c | 10 +- src/npc/syrup.c | 2 +- src/npc/teachers.c | 4 +- src/npc/townMinish.c | 4 +- src/npc/townsperson.c | 2 +- src/npc/vaati.c | 2 +- src/npc/wheaton.c | 2 +- src/npc/windTribespeople.c | 2 +- src/npc/zelda.c | 2 +- src/npc/zeldaFollower.c | 2 +- src/object/bigVortex.c | 2 +- src/object/bird.c | 2 +- src/object/book.c | 2 +- src/object/button.c | 12 +- src/object/cloud.c | 2 +- src/object/greatFairy.c | 22 +- src/object/heartContainer.c | 4 +- src/object/houseDoorExterior.c | 2 +- src/object/itemOnGround.c | 7 +- src/object/lilypadSmall.c | 2 +- src/object/lockedDoor.c | 4 +- src/object/mask.c | 2 +- src/object/minishSizedEntrance.c | 2 +- src/object/object86.c | 4 +- src/object/objectA2.c | 2 +- src/object/pot.c | 4 +- src/object/treeHidingPortal.c | 4 +- src/object/warpPoint.c | 26 +- src/overworld.c | 1131 ++++++++++ src/player.c | 104 +- src/playerItem/playerItemLantern.c | 2 +- src/room.c | 102 +- src/save.c | 5 +- src/script.c | 34 +- src/sub_0807CA18.c | 26 +- src/sub_080A3B84.c | 4 +- src/utils.c | 19 +- 251 files changed, 3671 insertions(+), 4701 deletions(-) delete mode 100644 asm/non_matching/game/sub_08052418.inc create mode 100644 data/data_080FCAC8.s delete mode 100644 src/game.c create mode 100644 src/overworld.c diff --git a/.gitignore b/.gitignore index e808e398..9d6c1b6c 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,4 @@ __pycache__ .vscode/settings.json .vscode/c_cpp_properties.json .vscode/tasks.json +Info.plist diff --git a/asm/beanstalk.s b/asm/beanstalk.s index 21d9c53b..c6934032 100644 --- a/asm/beanstalk.s +++ b/asm/beanstalk.s @@ -40,7 +40,7 @@ sub_08089D1C: @ 0x08089D1C strb r0, [r5, #0x1b] adds r0, r5, #0 movs r1, #4 - bl sub_0805E3A0 + bl SetDefaultPriority ldrb r0, [r5, #0xa] cmp r0, #7 bne _08089688 @@ -288,7 +288,7 @@ _080897FE: strb r0, [r5, #0x1b] adds r0, r5, #0 movs r1, #4 - bl sub_0805E3A0 + bl SetDefaultPriority ldrb r0, [r5, #0xa] cmp r0, #7 bne _08089D90 diff --git a/asm/bigBarrel.s b/asm/bigBarrel.s index f721b772..237d053a 100644 --- a/asm/bigBarrel.s +++ b/asm/bigBarrel.s @@ -500,7 +500,7 @@ _08088DEC: strb r0, [r1] adds r0, r4, #0 movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority ldrb r0, [r4, #0xb] movs r1, #0x16 cmp r0, #0 @@ -688,7 +688,7 @@ _08088F6E: movs r1, #0x87 lsls r1, r1, #1 adds r0, r4, #0 - bl sub_0805E4E0 + bl RequestPriorityDuration movs r0, #0x2a movs r1, #1 movs r2, #0 @@ -815,7 +815,7 @@ _0808905C: beq _08089088 adds r0, r4, #0 movs r1, #0x3c - bl sub_0805E4E0 + bl RequestPriorityDuration movs r0, #0x72 bl SoundReq _08089088: @@ -883,7 +883,7 @@ sub_080890EC: @ 0x080890EC cmp r4, #0 beq _08089132 movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority ldrh r0, [r5, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r5, #0x32] diff --git a/asm/bigPushableLever.s b/asm/bigPushableLever.s index 6c1b7753..e24791fd 100644 --- a/asm/bigPushableLever.s +++ b/asm/bigPushableLever.s @@ -69,7 +69,7 @@ sub_08098F14: @ 0x08098F14 bl EnqueueSFX adds r0, r5, #0 movs r1, #0x1e - bl sub_0805E4E0 + bl RequestPriorityDuration bl sub_08079F8C cmp r0, #0 beq _08098F84 diff --git a/asm/bird.s b/asm/bird.s index cdbaf811..2c43ef24 100644 --- a/asm/bird.s +++ b/asm/bird.s @@ -84,7 +84,7 @@ _0809D234: str r3, [r5, #0x54] adds r0, r5, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r5, #0 movs r1, #0 bl InitAnimationForceUpdate @@ -212,7 +212,7 @@ _0809D2D6: rsbs r0, r0, #0 ands r0, r1 strb r0, [r6, #0x18] - ldr r1, _0809D43C @ =gUnk_03003DC0 + ldr r1, _0809D43C @ =gPriorityHandler movs r0, #6 strb r0, [r1] ldr r0, _0809D440 @ =gUnk_02034490 @@ -287,7 +287,7 @@ _0809D3DA: _0809D430: .4byte gPlayerEntity _0809D434: .4byte gMessage _0809D438: .4byte gPlayerState -_0809D43C: .4byte gUnk_03003DC0 +_0809D43C: .4byte gPriorityHandler _0809D440: .4byte gUnk_02034490 _0809D444: .4byte 0xFFF80000 _0809D448: @@ -384,7 +384,7 @@ sub_0809D498: @ 0x0809D498 strb r1, [r5, #0x1b] adds r0, r5, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority ldr r0, _0809D53C @ =gRoomControls ldrh r0, [r0, #0xa] strh r0, [r5, #0x2e] @@ -500,7 +500,7 @@ _0809D5E6: orrs r0, r1 strb r0, [r6, #0x18] bl sub_080791D0 - bl UnfreezeTime + bl ResetPlayerEventPriority ldr r1, _0809D664 @ =gUnk_02034490 movs r0, #0 strb r0, [r1] @@ -609,7 +609,7 @@ _0809D6A2: strb r1, [r4, #0x1b] adds r0, r4, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r4, #0 movs r1, #0xe0 bl InitAnimationForceUpdate @@ -631,7 +631,7 @@ CreateBird: @ 0x0809D700 push {r4, lr} sub sp, #4 .ifdef EU - bl sub_08052620 @ TODO correct function? + bl CheckIsOverworld @ TODO correct function? .else bl sub_08052654 .endif @@ -674,8 +674,8 @@ sub_0809D738: @ 0x0809D738 str r0, [r1, #0x30] adds r0, r4, #0 movs r1, #6 - bl sub_0805E3A0 - bl FreezeTime + bl SetDefaultPriority + bl SetPlayerEventPriority movs r0, #0x95 movs r1, #0xa movs r2, #0 diff --git a/asm/businessScrubPrologue.s b/asm/businessScrubPrologue.s index 8a48c644..ee5b6397 100644 --- a/asm/businessScrubPrologue.s +++ b/asm/businessScrubPrologue.s @@ -88,7 +88,7 @@ _08045C16: bl EnqueueSFX adds r0, r4, #0 movs r1, #2 - bl sub_0805E3A0 + bl SetDefaultPriority _08045C2C: pop {r4, pc} .align 2, 0 @@ -419,7 +419,7 @@ _08045E70: strh r0, [r2, #0x36] adds r0, r2, #0 movs r1, #2 - bl sub_0805E3A0 + bl SetDefaultPriority _08045EBA: adds r0, r4, #0 bl GetNextFrame diff --git a/asm/chestSpawner.s b/asm/chestSpawner.s index bc6f7bc2..756dfa62 100644 --- a/asm/chestSpawner.s +++ b/asm/chestSpawner.s @@ -100,7 +100,7 @@ sub_08083EB0: @ 0x08083EB0 strb r0, [r4, #0x19] adds r0, r4, #0 movs r1, #0x1e - bl sub_0805E4E0 + bl RequestPriorityDuration bl sub_0805BC4C _08083F0A: pop {r4, pc} @@ -113,7 +113,7 @@ sub_08083F14: @ 0x08083F14 push {r4, r5, lr} adds r4, r0, #0 movs r0, #0x1e - bl sub_0805E510 + bl SetPriorityTimer ldrb r0, [r4, #0xd] cmp r0, #0 beq _08083F78 @@ -236,7 +236,7 @@ sub_08083FEC: @ 0x08083FEC bl sub_080788E0 adds r0, r4, #0 movs r1, #0x3c - bl sub_0805E4E0 + bl RequestPriorityDuration ldr r0, _08084020 @ =0x0000011B bl SoundReq _0808401E: diff --git a/asm/code_08018500.s b/asm/code_08018500.s index c937ee09..b12aa134 100644 --- a/asm/code_08018500.s +++ b/asm/code_08018500.s @@ -118,16 +118,16 @@ _080185C2: _080185D4: cmp r0, #0xfd beq _080185F0 - ldr r1, _080185EC @ =gUnk_0811E454 + ldr r1, _080185EC @ =gLocalFlagBanks ldrb r0, [r2] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] ldrb r1, [r2, #1] - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank b _080185F6 .align 2, 0 -_080185EC: .4byte gUnk_0811E454 +_080185EC: .4byte gLocalFlagBanks _080185F0: ldrb r0, [r2, #1] bl CheckKinstoneFused @@ -648,7 +648,7 @@ _080189D0: .endif .endif .endif - bl SetLocalFlagByOffset + bl SetLocalFlagByBank ldr r0, _080189E8 @ =gUnk_080FEE38 bl LoadRoomEntityList _080189E4: diff --git a/asm/code_0801967C.s b/asm/code_0801967C.s index badafeba..d4982be5 100644 --- a/asm/code_0801967C.s +++ b/asm/code_0801967C.s @@ -34,7 +34,7 @@ sub_08019698: @ 0x08019698 movs r0, #0x80 lsls r0, r0, #1 ldrh r1, [r4, #4] - bl SetLocalFlagByOffset + bl SetLocalFlagByBank ldrh r0, [r4] ldrh r1, [r4, #2] bl sub_08052FD8 diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index 89dac585..8a693cff 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -487,7 +487,7 @@ _0801DC26: ldrb r1, [r4, #1] mov r0, r8 str r3, [sp] - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank ldr r3, [sp] cmp r0, #0 bne _0801DCA6 @@ -682,7 +682,7 @@ sub_0801DDA0: @ 0x0801DDA0 push {r5, r6, r7} sub sp, #0x14 adds r4, r0, #0 - bl sub_08052690 + bl CheckHasMap cmp r0, #0 bne _0801DDB8 b _0801DEEA @@ -865,7 +865,7 @@ sub_0801DF10: @ 0x0801DF10 b _0801DF26 _0801DF20: ldrb r0, [r1] - bl sub_08052D58 + bl GetFlagBankOffset _0801DF26: pop {pc} @@ -941,7 +941,7 @@ sub_0801DF90: @ 0x0801DF90 _0801DF9A: ldrb r1, [r0, #1] adds r0, r2, #0 - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank b _0801DFB2 _0801DFA4: cmp r1, #1 diff --git a/asm/code_080300AC.s b/asm/code_080300AC.s index 9533deb0..2b7e1ec0 100644 --- a/asm/code_080300AC.s +++ b/asm/code_080300AC.s @@ -48,7 +48,7 @@ sub_08030118: @ 0x08030118 lsls r0, r0, #2 adds r1, r2, #0 adds r1, #0x67 - bl SetLocalFlagByOffset + bl SetLocalFlagByBank b _0803014C .align 2, 0 _0803013C: .4byte gScreenTransition @@ -57,7 +57,7 @@ _08030140: lsls r0, r0, #2 adds r1, r2, #0 adds r1, #0x67 - bl ClearLocalFlagByOffset + bl ClearLocalFlagByBank _0803014C: pop {pc} .align 2, 0 diff --git a/asm/code_0804A720.s b/asm/code_0804A720.s index 7d7deb47..480ab1df 100644 --- a/asm/code_0804A720.s +++ b/asm/code_0804A720.s @@ -203,7 +203,7 @@ _0804A864: strb r0, [r5, #0xe] adds r0, r5, #0 movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority ldrb r1, [r5, #9] movs r0, #1 movs r2, #0 @@ -299,7 +299,7 @@ _0804A940: strb r0, [r5, #0x18] adds r0, r5, #0 movs r1, #0 - bl sub_0805E3A0 + bl SetDefaultPriority b _0804A982 _0804A95E: lsls r0, r1, #0x18 diff --git a/asm/code_0804AA84.s b/asm/code_0804AA84.s index db72cf8c..4dda3c9a 100644 --- a/asm/code_0804AA84.s +++ b/asm/code_0804AA84.s @@ -58,7 +58,7 @@ _0804ABA4: adds r0, r0, r1 ldr r0, [r0] bl LoadRoomEntityList - bl sub_0805E5B4 + bl ResetSystemPriority ldr r1, _0804AC04 @ =gArea ldrb r0, [r1, #0xe] adds r0, #1 @@ -195,7 +195,7 @@ sub_0804ACF8: @ 0x0804ACF8 beq _0804AD12 ldr r0, _0804AD14 @ =gRoomControls bl sub_0804AD6C - bl sub_0805E5A8 + bl SetInitializationPriority movs r0, #0xf8 bl SoundReq _0804AD12: diff --git a/asm/code_080526F8.s b/asm/code_080526F8.s index 798ec263..db0707fb 100644 --- a/asm/code_080526F8.s +++ b/asm/code_080526F8.s @@ -6,1967 +6,6 @@ .text - thumb_func_start sub_080526F8 -sub_080526F8: @ 0x080526F8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08052724 - cmp r0, #0 - beq _08052718 - ldr r0, _0805271C @ =gArea - ldrb r1, [r0, #3] - ldr r0, _08052720 @ =gUnk_02002E9C - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, r0, r4 - cmp r0, #0 - bge _08052716 - movs r0, #0 -_08052716: - strb r0, [r1] -_08052718: - pop {r4, pc} - .align 2, 0 -_0805271C: .4byte gArea -_08052720: .4byte gUnk_02002E9C - - thumb_func_start sub_08052724 -sub_08052724: @ 0x08052724 - ldr r0, _08052730 @ =gArea - ldrb r0, [r0] - lsrs r0, r0, #1 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_08052730: .4byte gArea - - thumb_func_start sub_08052734 -sub_08052734: @ 0x08052734 - push {r4, lr} - bl sub_08052724 - cmp r0, #0 - beq _0805274C - ldr r0, _08052758 @ =gSave - ldr r1, _0805275C @ =gArea - ldr r2, _08052760 @ =0x0000045C - adds r0, r0, r2 - ldrb r1, [r1, #3] - adds r0, r0, r1 - ldrb r4, [r0] -_0805274C: - adds r0, r4, #0 - cmp r0, #0 - beq _08052754 - movs r0, #1 -_08052754: - pop {r4, pc} - .align 2, 0 -_08052758: .4byte gSave -_0805275C: .4byte gArea -_08052760: .4byte 0x0000045C - - thumb_func_start sub_08052764 -sub_08052764: @ 0x08052764 - push {r4, lr} - bl sub_08052724 - cmp r0, #0 - beq _08052784 - ldr r0, _08052790 @ =gSave - ldr r1, _08052794 @ =gArea - ldr r2, _08052798 @ =0x0000046C - adds r0, r0, r2 - ldrb r1, [r1, #3] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08052784: - adds r0, r4, #0 - cmp r0, #0 - beq _0805278C - movs r0, #1 -_0805278C: - pop {r4, pc} - .align 2, 0 -_08052790: .4byte gSave -_08052794: .4byte gArea -_08052798: .4byte 0x0000046C - - thumb_func_start sub_0805279C -sub_0805279C: @ 0x0805279C - push {lr} - bl sub_08052724 - cmp r0, #0 - beq _080527C8 - ldr r0, _080527BC @ =gSave - ldr r1, _080527C0 @ =gArea - ldr r2, _080527C4 @ =0x0000046C - adds r0, r0, r2 - ldrb r1, [r1, #3] - adds r0, r0, r1 - ldrb r0, [r0] - lsrs r0, r0, #1 - movs r1, #1 - ands r0, r1 - b _080527CA - .align 2, 0 -_080527BC: .4byte gSave -_080527C0: .4byte gArea -_080527C4: .4byte 0x0000046C -_080527C8: - movs r0, #0 -_080527CA: - pop {pc} - - thumb_func_start sub_080527CC -sub_080527CC: @ 0x080527CC - push {lr} - bl sub_08052724 - cmp r0, #0 - beq _080527F8 - ldr r0, _080527EC @ =gSave - ldr r1, _080527F0 @ =gArea - ldr r2, _080527F4 @ =0x0000046C - adds r0, r0, r2 - ldrb r1, [r1, #3] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - b _080527FA - .align 2, 0 -_080527EC: .4byte gSave -_080527F0: .4byte gArea -_080527F4: .4byte 0x0000046C -_080527F8: - movs r0, #0 -_080527FA: - pop {pc} - - thumb_func_start sub_080527FC -sub_080527FC: @ 0x080527FC - push {r4, lr} - adds r4, r0, #0 - bl sub_08053320 -.ifndef EU - bl CleanUpGFXSlots -.endif - bl sub_080ADE24 - movs r0, #1 - bl sub_0801C370 - adds r0, r4, #0 - bl sub_0801AE44 - ldr r0, _08052830 @ =gUnk_02024090 - ldr r1, _08052834 @ =gPaletteBuffer - movs r2, #0x80 - lsls r2, r2, #3 - bl MemCopy - ldr r1, _08052838 @ =gUsedPalettes - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1] - pop {r4, pc} - .align 2, 0 -_08052830: .4byte gUnk_02024090 -_08052834: .4byte gPaletteBuffer -_08052838: .4byte gUsedPalettes - - thumb_func_start sub_0805283C -sub_0805283C: @ 0x0805283C - push {r4, lr} - ldr r0, _08052868 @ =gArea - ldr r1, _0805286C @ =0x00000864 - adds r4, r0, r1 - ldr r1, _08052870 @ =gAreaMetadata - ldr r0, _08052874 @ =gRoomControls - ldrb r0, [r0, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #3] - str r0, [r4] - movs r0, #0x8c - lsls r0, r0, #4 - movs r1, #0x7c - bl CheckLocalFlagByOffset - cmp r0, #0 - beq _08052864 - movs r0, #0x33 - str r0, [r4] -_08052864: - pop {r4, pc} - .align 2, 0 -_08052868: .4byte gArea -_0805286C: .4byte 0x00000864 -_08052870: .4byte gAreaMetadata -_08052874: .4byte gRoomControls - -.ifndef EU - thumb_func_start sub_08052878 -sub_08052878: @ 0x08052878 - push {lr} - ldr r0, _08052894 @ =gArea - movs r2, #0x86 - lsls r2, r2, #4 - adds r1, r0, r2 - adds r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - ldr r0, _08052898 @ =0x80010000 - bl SoundReq - pop {pc} - .align 2, 0 -_08052894: .4byte gArea -_08052898: .4byte 0x80010000 - - thumb_func_start sub_0805289C -sub_0805289C: @ 0x0805289C - ldr r0, _080528AC @ =gArea - ldr r2, _080528B0 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - bx lr - .align 2, 0 -_080528AC: .4byte gArea -_080528B0: .4byte 0x00000864 -.endif - - thumb_func_start sub_080528B4 -sub_080528B4: @ 0x080528B4 - push {lr} - ldr r0, _080528C4 @ =gScreenTransition - ldrb r0, [r0, #5] - cmp r0, #0 - bne _080528C8 - movs r0, #0 - b _080528E6 - .align 2, 0 -_080528C4: .4byte gScreenTransition -_080528C8: - bl sub_0804FFE4 - ldr r1, _080528E8 @ =gMain - movs r2, #0 - movs r0, #3 - strb r0, [r1, #3] - strb r2, [r1, #4] - movs r0, #5 - movs r1, #8 - bl DoFade - ldr r0, _080528EC @ =0x80100000 - bl SoundReq - movs r0, #1 -_080528E6: - pop {pc} - .align 2, 0 -_080528E8: .4byte gMain -_080528EC: .4byte 0x80100000 - - thumb_func_start sub_080528F0 -sub_080528F0: @ 0x080528F0 - push {lr} - ldr r1, _08052914 @ =gArea - ldr r2, _08052918 @ =0x00000888 - adds r0, r1, r2 - ldr r2, [r0] - cmp r2, #0 - beq _08052910 - movs r3, #0x89 - lsls r3, r3, #4 - adds r0, r1, r3 - ldr r1, [r0] - cmp r1, #0 - beq _08052910 - adds r0, r2, #0 - bl _call_via_r1 -_08052910: - pop {pc} - .align 2, 0 -_08052914: .4byte gArea -_08052918: .4byte 0x00000888 - - thumb_func_start sub_0805291C -sub_0805291C: @ 0x0805291C - push {r4, lr} - ldr r4, _08052948 @ =gScreenTransition - ldrb r0, [r4, #8] - cmp r0, #0 - beq _080529F4 - ldr r0, _0805294C @ =gSave - adds r0, #0xaa - ldrb r0, [r0] - cmp r0, #0 - beq _080529F4 - ldr r0, _08052950 @ =gPlayerState - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x12 - beq _080529F4 - bl sub_080529F8 - cmp r0, #0 - beq _08052954 - movs r0, #0 - strb r0, [r4, #8] - b _080529F6 - .align 2, 0 -_08052948: .4byte gScreenTransition -_0805294C: .4byte gSave -_08052950: .4byte gPlayerState -_08052954: - ldrb r0, [r4, #9] - subs r0, #1 - cmp r0, #8 - bhi _080529D4 - lsls r0, r0, #2 - ldr r1, _08052968 @ =_0805296C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08052968: .4byte _0805296C -_0805296C: @ jump table - .4byte _08052990 @ case 0 - .4byte _080529A4 @ case 1 - .4byte _080529D4 @ case 2 - .4byte _080529A8 @ case 3 - .4byte _080529B2 @ case 4 - .4byte _080529BC @ case 5 - .4byte _080529C8 @ case 6 - .4byte _080529C8 @ case 7 - .4byte _0805299A @ case 8 -_08052990: - movs r0, #0xd - movs r1, #8 - bl DoFade - b _080529DC -_0805299A: - movs r0, #0xd - movs r1, #3 - bl DoFade - b _080529DC -_080529A4: - movs r0, #7 - b _080529AA -_080529A8: - movs r0, #5 -_080529AA: - movs r1, #4 - bl DoFade - b _080529DC -_080529B2: - movs r0, #5 - movs r1, #0x10 - bl DoFade - b _080529DC -_080529BC: - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl DoFade - b _080529DC -_080529C8: - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #7 - bl DoFade - b _080529DC -_080529D4: - movs r0, #7 - movs r1, #0x10 - bl DoFade -_080529DC: - bl sub_080528F0 - ldr r0, _080529F0 @ =gMain - movs r1, #3 - strb r1, [r0, #4] - movs r1, #1 - strb r1, [r0, #0xb] - movs r0, #1 - b _080529F6 - .align 2, 0 -_080529F0: .4byte gMain -_080529F4: - movs r0, #0 -_080529F6: - pop {r4, pc} - - thumb_func_start sub_080529F8 -sub_080529F8: @ 0x080529F8 - push {r4, r5, r6, lr} - ldr r1, _08052A34 @ =gScreenTransition - ldrh r4, [r1, #0xa] - ldr r2, _08052A38 @ =gUnk_080FCAD6 - ldrh r0, [r2] - cmp r0, #0 - beq _08052A48 - ldr r3, _08052A3C @ =gPlayerState - movs r6, #0 - movs r0, #0x39 - adds r0, r0, r3 - mov ip, r0 - movs r5, #0x1e -_08052A12: - ldrh r0, [r2] - cmp r4, r0 - bne _08052A40 - strb r5, [r3, #0xc] - adds r0, r3, #0 - adds r0, #0x38 - strb r6, [r0] - ldrh r0, [r2, #2] - mov r3, ip - strb r0, [r3] - ldrb r0, [r1, #0xf] - cmp r0, #0 - bne _08052A30 - ldrh r0, [r2, #2] - strb r0, [r1, #0xf] -_08052A30: - movs r0, #1 - b _08052A4A - .align 2, 0 -_08052A34: .4byte gScreenTransition -_08052A38: .4byte gUnk_080FCAD6 -_08052A3C: .4byte gPlayerState -_08052A40: - adds r2, #4 - ldrh r0, [r2] - cmp r0, #0 - bne _08052A12 -_08052A48: - movs r0, #0 -_08052A4A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08052A4C -sub_08052A4C: @ 0x08052A4C - push {r4, r5, lr} - ldr r2, _08052A88 @ =gScreenTransition - movs r0, #1 - strb r0, [r2, #8] - ldr r5, _08052A8C @ =gPlayerEntity - ldr r3, _08052A90 @ =gRoomControls - ldrh r0, [r5, #0x2e] - ldrh r1, [r3, #6] - subs r0, r0, r1 - movs r1, #0xfe - lsls r1, r1, #2 - adds r4, r1, #0 - ands r0, r4 - strh r0, [r2, #0x10] - ldrh r0, [r5, #0x32] - ldrh r1, [r3, #8] - subs r0, r0, r1 - ands r0, r4 - strh r0, [r2, #0x12] - movs r0, #4 - strb r0, [r2, #0xe] - movs r0, #0xa - strb r0, [r2, #0xf] - ldrb r0, [r3, #4] - strb r0, [r2, #0xc] - ldrb r0, [r3, #5] - subs r0, #1 - strb r0, [r2, #0xd] - pop {r4, r5, pc} - .align 2, 0 -_08052A88: .4byte gScreenTransition -_08052A8C: .4byte gPlayerEntity -_08052A90: .4byte gRoomControls - - thumb_func_start sub_08052A94 -sub_08052A94: @ 0x08052A94 - push {lr} - ldr r0, _08052AAC @ =gScreenTransition - ldrb r0, [r0, #9] - subs r0, #1 - cmp r0, #8 - bhi _08052B1C - lsls r0, r0, #2 - ldr r1, _08052AB0 @ =_08052AB4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08052AAC: .4byte gScreenTransition -_08052AB0: .4byte _08052AB4 -_08052AB4: @ jump table - .4byte _08052AD8 @ case 0 - .4byte _08052AE6 @ case 1 - .4byte _08052B22 @ case 2 - .4byte _08052B1C @ case 3 - .4byte _08052B08 @ case 4 - .4byte _08052AF0 @ case 5 - .4byte _08052AFC @ case 6 - .4byte _08052B12 @ case 7 - .4byte _08052ADC @ case 8 -_08052AD8: - movs r0, #0xc - b _08052B14 -_08052ADC: - movs r0, #0xc - movs r1, #3 - bl DoFade - b _08052B22 -_08052AE6: - movs r0, #6 - movs r1, #4 - bl DoFade - b _08052B22 -_08052AF0: - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl DoFade - b _08052B22 -_08052AFC: - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #7 - bl DoFade - b _08052B22 -_08052B08: - movs r0, #4 - movs r1, #0x10 - bl DoFade - b _08052B22 -_08052B12: - movs r0, #6 -_08052B14: - movs r1, #8 - bl DoFade - b _08052B22 -_08052B1C: - movs r0, #0x10 - bl sub_080500F4 -_08052B22: - pop {pc} - - thumb_func_start sub_08052B24 -sub_08052B24: @ 0x08052B24 - push {lr} - ldr r0, _08052B90 @ =gInput - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08052B8A - ldr r2, _08052B94 @ =gPlayerState - adds r0, r2, #0 - adds r0, #0x8b - ldrb r0, [r0] - cmp r0, #0 - bne _08052B8A - ldr r0, _08052B98 @ =gUnk_02034490 - ldrb r0, [r0] - cmp r0, #0 - bne _08052B8A - ldr r0, _08052B9C @ =gUnk_0200AF00 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _08052B8A - ldr r0, [r2, #0x30] - movs r1, #0x8c - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08052B8A - adds r0, r2, #0 - adds r0, #0xa9 - ldrb r0, [r0] - cmp r0, #1 - bgt _08052B8A - ldr r0, [r2, #0x2c] - cmp r0, #0 - bne _08052B8A - ldr r1, _08052BA0 @ =gPlayerEntity - adds r0, r1, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0 - bne _08052B8A - movs r3, #0x36 - ldrsh r0, [r1, r3] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08052BA4 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08052BA4 -_08052B8A: - movs r0, #0 - b _08052BB4 - .align 2, 0 -_08052B90: .4byte gInput -_08052B94: .4byte gPlayerState -_08052B98: .4byte gUnk_02034490 -_08052B9C: .4byte gUnk_0200AF00 -_08052BA0: .4byte gPlayerEntity -_08052BA4: - bl sub_0801862C - movs r0, #0x13 - bl sub_08078160 - bl FreezeTime - movs r0, #1 -_08052BB4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08052BB8 -sub_08052BB8: @ 0x08052BB8 - push {lr} - ldr r0, _08052BE0 @ =gScreenTransition - adds r2, r0, #0 -.ifdef JP - adds r2, #0x34 -.else -.ifdef EU - adds r2, #0x34 -.else - adds r2, #0x35 -.endif -.endif - ldrb r1, [r2] - adds r3, r0, #0 - cmp r1, #0 - bne _08052BEC - ldr r0, _08052BE4 @ =gPlayerEntity - movs r2, #0x32 - ldrsh r1, [r0, r2] - ldr r0, _08052BE8 @ =gRoomControls - movs r2, #0xc - ldrsh r0, [r0, r2] - subs r1, r1, r0 - movs r2, #0xd - cmp r1, #0x60 - ble _08052BEE - movs r2, #1 - b _08052BEE - .align 2, 0 -_08052BE0: .4byte gScreenTransition -_08052BE4: .4byte gPlayerEntity -_08052BE8: .4byte gRoomControls -_08052BEC: - ldrb r2, [r2] -_08052BEE: - ldrh r0, [r3, #0x36] - adds r1, r2, #0 - bl MessageAtHeight - pop {pc} - -.ifdef USA - thumb_func_start sub_08052BF8 -sub_08052BF8: @ 0x08052BF8 - push {lr} - ldr r2, _08052C34 @ =gScreenTransition - adds r1, r2, #0 - adds r1, #0x31 - ldrb r0, [r1] - cmp r0, #0 - bne _08052C30 - movs r0, #1 - strb r0, [r1] - ldr r0, _08052C38 @ =gArea - ldrb r1, [r0, #1] - adds r0, r2, #0 - adds r0, #0x2e - strb r1, [r0] - bl GetEmptyManager - adds r1, r0, #0 - cmp r1, #0 - beq _08052C30 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0xf - strb r0, [r1, #9] - strb r0, [r1, #0xa] - adds r0, r1, #0 - movs r1, #0 - bl AppendEntityToList -_08052C30: - pop {pc} - .align 2, 0 -_08052C34: .4byte gScreenTransition -_08052C38: .4byte gArea -.else -.ifdef DEMO_USA @TODO deduplicate - thumb_func_start sub_08052BF8 -sub_08052BF8: @ 0x08052BF8 - push {lr} - ldr r2, _08052C34 @ =gScreenTransition - adds r1, r2, #0 - adds r1, #0x31 - ldrb r0, [r1] - cmp r0, #0 - bne _08052C30 - movs r0, #1 - strb r0, [r1] - ldr r0, _08052C38 @ =gArea - ldrb r1, [r0, #1] - adds r0, r2, #0 - adds r0, #0x2e - strb r1, [r0] - bl GetEmptyManager - adds r1, r0, #0 - cmp r1, #0 - beq _08052C30 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0xf - strb r0, [r1, #9] - strb r0, [r1, #0xa] - adds r0, r1, #0 - movs r1, #0 - bl AppendEntityToList -_08052C30: - pop {pc} - .align 2, 0 -_08052C34: .4byte gScreenTransition -_08052C38: .4byte gArea -.endif -.endif - - -.ifdef DEMO_JP - thumb_func_start sub_08052BF8 -sub_08052BF8: @ 0x08052BF8 - push {lr} - ldr r0, _08052B38 @ =gScreenTransition - adds r1, r0, #0 - adds r1, #0x31 - ldrb r0, [r1] - cmp r0, #0 - bne _08052B36 - movs r0, #1 - strb r0, [r1] - bl GetEmptyManager - adds r1, r0, #0 - cmp r1, #0 - beq _08052B36 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0xf - strb r0, [r1, #9] - strb r0, [r1, #0xa] - adds r0, r1, #0 - movs r1, #0 - bl AppendEntityToList -_08052B36: - pop {pc} - .align 2, 0 -_08052B38: .4byte gScreenTransition -.endif - - thumb_func_start sub_08052C3C -sub_08052C3C: @ 0x08052C3C - push {lr} - ldr r2, _08052C58 @ =gArea - ldrb r0, [r2, #0x18] - cmp r0, #0 - bne _08052C48 - strb r0, [r2, #0x1a] -_08052C48: - ldrb r0, [r2, #0x1a] - cmp r0, #0 - beq _08052C56 - subs r0, #1 - movs r1, #0 - strb r0, [r2, #0x1a] - strb r1, [r2, #0x18] -_08052C56: - pop {pc} - .align 2, 0 -_08052C58: .4byte gArea - - thumb_func_start sub_08052C5C -sub_08052C5C: @ 0x08052C5C - push {lr} - bl sub_08052680 - cmp r0, #0 - bne _08052C98 - bl sub_08052620 - cmp r0, #0 - beq _08052C84 - ldr r2, _08052C7C @ =gScreenTransition - ldr r1, _08052C80 @ =gPlayerEntity - ldrh r0, [r1, #0x2e] - strh r0, [r2, #0x20] - ldrh r0, [r1, #0x32] - strh r0, [r2, #0x22] - b _08052C98 - .align 2, 0 -_08052C7C: .4byte gScreenTransition -_08052C80: .4byte gPlayerEntity -_08052C84: - bl CheckIsDungeon - cmp r0, #0 - beq _08052C98 - ldr r2, _08052C9C @ =gScreenTransition - ldr r1, _08052CA0 @ =gPlayerEntity - ldrh r0, [r1, #0x2e] - strh r0, [r2, #0x1c] - ldrh r0, [r1, #0x32] - strh r0, [r2, #0x1e] -_08052C98: - pop {pc} - .align 2, 0 -_08052C9C: .4byte gScreenTransition -_08052CA0: .4byte gPlayerEntity - - thumb_func_start sub_08052CA4 -sub_08052CA4: @ 0x08052CA4 - push {r4, lr} - ldr r4, _08052CC8 @ =gAreaRoomHeaders - lsls r0, r0, #2 - adds r0, r0, r4 - lsls r4, r1, #2 - adds r4, r4, r1 - lsls r4, r4, #1 - ldr r1, [r0] - adds r1, r1, r4 - ldr r4, _08052CCC @ =gScreenTransition - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - adds r0, r0, r3 - strh r0, [r4, #0x22] - pop {r4, pc} - .align 2, 0 -_08052CC8: .4byte gAreaRoomHeaders -_08052CCC: .4byte gScreenTransition - - thumb_func_start sub_08052CD0 -sub_08052CD0: @ 0x08052CD0 - push {r4, lr} - ldr r4, _08052CF4 @ =gAreaRoomHeaders - lsls r0, r0, #2 - adds r0, r0, r4 - lsls r4, r1, #2 - adds r4, r4, r1 - lsls r4, r4, #1 - ldr r1, [r0] - adds r1, r1, r4 - ldr r4, _08052CF8 @ =gScreenTransition - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r4, #0x1c] - ldrh r0, [r1, #2] - adds r0, r0, r3 - strh r0, [r4, #0x1e] - pop {r4, pc} - .align 2, 0 -_08052CF4: .4byte gAreaRoomHeaders -_08052CF8: .4byte gScreenTransition - - thumb_func_start sub_08052CFC -sub_08052CFC: @ 0x08052CFC - push {r4, lr} - ldr r4, _08052D44 @ =gArea - ldr r1, _08052D48 @ =0x00000894 - adds r0, r4, #0 - bl MemClear - ldr r0, _08052D4C @ =gRoomControls - ldrb r1, [r0, #4] - lsls r1, r1, #2 - ldr r0, _08052D50 @ =gAreaMetadata - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r4] - ldrb r0, [r1, #1] - strb r0, [r4, #1] - ldrb r0, [r1, #1] - subs r0, #0x17 - strb r0, [r4, #3] - ldr r2, _08052D54 @ =gUnk_0811E454 - ldrb r0, [r1, #2] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4, #4] - ldrb r0, [r1, #2] - strb r0, [r4, #6] - movs r0, #0xb4 - strb r0, [r4, #0x1a] - adds r0, #0x4c - strh r0, [r4, #0xa] - bl sub_08052A94 - bl sub_08052DA8 - pop {r4, pc} - .align 2, 0 -_08052D44: .4byte gArea -_08052D48: .4byte 0x00000894 -_08052D4C: .4byte gRoomControls -_08052D50: .4byte gAreaMetadata -_08052D54: .4byte gUnk_0811E454 - - thumb_func_start sub_08052D58 -sub_08052D58: @ 0x08052D58 - lsls r0, r0, #2 - ldr r1, _08052D6C @ =gAreaMetadata - adds r0, r0, r1 - ldr r1, _08052D70 @ =gUnk_0811E454 - ldrb r0, [r0, #2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_08052D6C: .4byte gAreaMetadata -_08052D70: .4byte gUnk_0811E454 - - thumb_func_start sub_08052D74 -sub_08052D74: @ 0x08052D74 - push {r4, r5, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldr r0, _08052D98 @ =gMain - ldrb r0, [r0, #4] - cmp r0, #7 - beq _08052D96 - ldr r0, _08052D9C @ =gArea - ldr r5, _08052DA0 @ =0x00000888 - adds r1, r0, r5 - str r3, [r1] - ldr r3, _08052DA4 @ =0x0000088C - adds r1, r0, r3 - str r4, [r1] - adds r5, #8 - adds r0, r0, r5 - str r2, [r0] -_08052D96: - pop {r4, r5, pc} - .align 2, 0 -_08052D98: .4byte gMain -_08052D9C: .4byte gArea -_08052DA0: .4byte 0x00000888 -_08052DA4: .4byte 0x0000088C - - thumb_func_start sub_08052DA8 -sub_08052DA8: @ 0x08052DA8 - push {r4, r5, r6, r7, lr} - ldr r1, _08052DF8 @ =gAreaRoomHeaders - ldr r0, _08052DFC @ =gRoomControls - ldrb r0, [r0, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - ldr r7, _08052E00 @ =gUnk_02033ACC - movs r5, #0 - ldrh r0, [r4] - ldr r1, _08052E04 @ =0x0000FFFF - cmp r0, r1 - beq _08052DE8 - adds r6, r1, #0 -_08052DC4: - ldrh r0, [r4, #8] - cmp r0, r6 - beq _08052DD8 - ldr r0, _08052DFC @ =gRoomControls - ldrb r2, [r0, #4] - adds r0, r7, #0 - adds r1, r4, #0 - adds r3, r5, #0 - bl sub_08052E10 -_08052DD8: - adds r7, #0x20 - adds r5, #1 - adds r4, #0xa - cmp r5, #0x3f - bhi _08052DE8 - ldrh r0, [r4] - cmp r0, r6 - bne _08052DC4 -_08052DE8: - bl sub_08052E8C - ldr r1, _08052E08 @ =gArea - ldr r2, _08052E0C @ =0x0000085C - adds r1, r1, r2 - str r0, [r1] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08052DF8: .4byte gAreaRoomHeaders -_08052DFC: .4byte gRoomControls -_08052E00: .4byte gUnk_02033ACC -_08052E04: .4byte 0x0000FFFF -_08052E08: .4byte gArea -_08052E0C: .4byte 0x0000085C - - thumb_func_start sub_08052E10 -sub_08052E10: @ 0x08052E10 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r1] - strh r0, [r5, #4] - ldrh r0, [r1, #2] - strh r0, [r5, #6] - ldrh r0, [r1, #4] - strh r0, [r5] - ldrh r0, [r1, #6] - strh r0, [r5, #2] - ldr r4, _08052E74 @ =gAreaTilesets - lsls r2, r2, #2 - adds r4, r2, r4 - ldrh r0, [r1, #8] - ldr r1, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r5, #8] - ldr r0, _08052E78 @ =gAreaRoomMaps - adds r0, r2, r0 - ldr r0, [r0] - lsls r3, r3, #2 - adds r0, r3, r0 - ldr r0, [r0] - str r0, [r5, #0xc] - ldr r0, _08052E7C @ =gAreaMetatiles - adds r0, r2, r0 - ldr r0, [r0] - str r0, [r5, #0x10] - ldr r0, _08052E80 @ =gUnk_080B755C - adds r0, r2, r0 - ldr r0, [r0] - str r0, [r5, #0x14] - ldr r0, _08052E84 @ =gExitLists - adds r0, r2, r0 - ldr r0, [r0] - adds r0, r3, r0 - ldr r0, [r0] - str r0, [r5, #0x18] - ldr r0, _08052E88 @ =gAreaTable - adds r2, r2, r0 - ldr r0, [r2] - cmp r0, #0 - beq _08052E70 - adds r0, r3, r0 - ldr r0, [r0] - str r0, [r5, #0x1c] -_08052E70: - pop {r4, r5, pc} - .align 2, 0 -_08052E74: .4byte gAreaTilesets -_08052E78: .4byte gAreaRoomMaps -_08052E7C: .4byte gAreaMetatiles -_08052E80: .4byte gUnk_080B755C -_08052E84: .4byte gExitLists -_08052E88: .4byte gAreaTable - - thumb_func_start sub_08052E8C -sub_08052E8C: @ 0x08052E8C - ldr r0, _08052E98 @ =gRoomControls - ldrb r0, [r0, #5] - lsls r0, r0, #5 - ldr r1, _08052E9C @ =gUnk_02033ACC - adds r0, r0, r1 - bx lr - .align 2, 0 -_08052E98: .4byte gRoomControls -_08052E9C: .4byte gUnk_02033ACC - - thumb_func_start sub_08052EA0 -sub_08052EA0: @ 0x08052EA0 - push {r4, lr} - ldr r4, _08052EE4 @ =gRoomVars - adds r0, r4, #0 - movs r1, #0xcc - bl MemClear - movs r0, #0xff - strb r0, [r4, #0x10] - strb r0, [r4, #0x11] - strb r0, [r4, #0x12] - strb r0, [r4, #0x13] - adds r0, #1 - strh r0, [r4, #0xc] - ldr r2, _08052EE8 @ =gArea - ldr r1, _08052EEC @ =gAreaMetadata - ldr r0, _08052EF0 @ =gRoomControls - ldrb r0, [r0, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #1] - strb r0, [r2, #1] - bl sub_08049D30 - bl InitScriptData - bl sub_08054524 - bl sub_080186D4 - bl sub_0806F364 - bl sub_080530C8 - pop {r4, pc} - .align 2, 0 -_08052EE4: .4byte gRoomVars -_08052EE8: .4byte gArea -_08052EEC: .4byte gAreaMetadata -_08052EF0: .4byte gRoomControls - - thumb_func_start sub_08052EF4 -sub_08052EF4: @ 0x08052EF4 - push {lr} - cmp r0, #0 - bge _08052EFE - ldr r0, _08052F10 @ =gRoomControls - ldrb r0, [r0, #4] -_08052EFE: - lsls r0, r0, #2 - ldr r1, _08052F14 @ =gAreaMetadata - adds r0, r0, r1 - ldr r1, _08052F18 @ =gUnk_0811E454 - ldrb r0, [r0, #2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - pop {pc} - .align 2, 0 -_08052F10: .4byte gRoomControls -_08052F14: .4byte gAreaMetadata -_08052F18: .4byte gUnk_0811E454 - - thumb_func_start sub_08052F1C -sub_08052F1C: @ 0x08052F1C - push {r4, r5, r6, lr} - ldr r2, _08052F4C @ =gArea - ldrb r1, [r2, #0xd] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08052FCC - ldr r0, _08052F50 @ =gRoomVars - ldrb r0, [r0] - cmp r0, #0 - beq _08052FCC - movs r5, #0 - movs r4, #0 - ldr r0, _08052F54 @ =gRoomControls - ldrb r1, [r0, #0x10] - adds r3, r0, #0 - cmp r1, #1 - beq _08052F62 - cmp r1, #1 - bgt _08052F58 - cmp r1, #0 - beq _08052F62 - b _08052F72 - .align 2, 0 -_08052F4C: .4byte gArea -_08052F50: .4byte gRoomVars -_08052F54: .4byte gRoomControls -_08052F58: - cmp r1, #2 - beq _08052F62 - cmp r1, #3 - beq _08052F6A - b _08052F72 -_08052F62: - ldr r1, _08052FD0 @ =0x0000085C - adds r0, r2, r1 - ldr r0, [r0] - ldrh r5, [r0, #2] -_08052F6A: - ldr r1, _08052FD0 @ =0x0000085C - adds r0, r2, r1 - ldr r0, [r0] - ldrh r4, [r0] -_08052F72: - ldr r0, _08052FD0 @ =0x0000085C - adds r2, r2, r0 - ldr r1, [r2] - ldrh r0, [r1, #4] - adds r0, r0, r4 - strh r0, [r1, #4] - ldr r1, [r2] - ldrh r0, [r1, #6] - adds r0, r0, r5 - strh r0, [r1, #6] - ldrh r0, [r3, #6] - adds r0, r0, r4 - strh r0, [r3, #6] - ldrh r0, [r3, #8] - adds r0, r0, r5 - strh r0, [r3, #8] - ldrh r0, [r3, #0xa] - adds r0, r0, r4 - strh r0, [r3, #0xa] - ldrh r0, [r3, #0xc] - adds r0, r0, r5 - strh r0, [r3, #0xc] - ldr r2, _08052FD4 @ =gEntityLists - adds r6, r2, #0 - adds r6, #0x48 -_08052FA4: - ldr r1, [r2, #4] - adds r3, r2, #0 - adds r3, #8 - cmp r1, r2 - beq _08052FC6 -_08052FAE: - ldrb r0, [r1, #8] - cmp r0, #9 - beq _08052FC0 - ldrh r0, [r1, #0x2e] - adds r0, r0, r4 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, r0, r5 - strh r0, [r1, #0x32] -_08052FC0: - ldr r1, [r1, #4] - cmp r1, r2 - bne _08052FAE -_08052FC6: - adds r2, r3, #0 - cmp r2, r6 - blo _08052FA4 -_08052FCC: - pop {r4, r5, r6, pc} - .align 2, 0 -_08052FD0: .4byte 0x0000085C -_08052FD4: .4byte gEntityLists - - thumb_func_start sub_08052FD8 -sub_08052FD8: @ 0x08052FD8 - push {lr} - bl sub_08052FF4 - ldr r1, _08052FF0 @ =gRoomControls - movs r0, #0 - str r0, [r1, #0x30] - bl sub_0807C860 - bl sub_0807C740 - pop {pc} - .align 2, 0 -_08052FF0: .4byte gRoomControls - - thumb_func_start sub_08052FF4 -sub_08052FF4: @ 0x08052FF4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - bl sub_08080668 - bl sub_080197AC - ldr r0, _0805306C @ =gRoomControls - strb r6, [r0, #4] - strb r4, [r0, #5] - ldr r1, _08053070 @ =gScreen - movs r0, #0xba - lsls r0, r0, #5 - strh r0, [r1] - ldr r5, _08053074 @ =gUnk_020342CC - adds r0, r5, #0 - movs r1, #0x20 - bl MemClear - str r5, [r5, #0x20] - ldr r0, _08053078 @ =gAreaRoomHeaders - lsls r6, r6, #2 - adds r0, r6, r0 - lsls r2, r4, #2 - adds r4, r2, r4 - lsls r4, r4, #1 - ldr r0, [r0] - adds r0, r0, r4 - ldrh r1, [r0] - strh r1, [r5, #4] - ldrh r1, [r0, #2] - strh r1, [r5, #6] - ldrh r1, [r0, #4] - strh r1, [r5] - ldrh r1, [r0, #6] - strh r1, [r5, #2] - ldr r1, _0805307C @ =gAreaTilesets - adds r1, r6, r1 - ldrh r0, [r0, #8] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r5, #8] - ldr r0, _08053080 @ =gAreaRoomMaps - adds r0, r6, r0 - ldr r0, [r0] - adds r2, r2, r0 - ldr r0, [r2] - str r0, [r5, #0xc] - ldr r0, _08053084 @ =gAreaMetatiles - adds r0, r6, r0 - ldr r0, [r0] - str r0, [r5, #0x10] - ldr r0, _08053088 @ =gUnk_080B755C - adds r6, r6, r0 - ldr r0, [r6] - str r0, [r5, #0x14] - pop {r4, r5, r6, pc} - .align 2, 0 -_0805306C: .4byte gRoomControls -_08053070: .4byte gScreen -_08053074: .4byte gUnk_020342CC -_08053078: .4byte gAreaRoomHeaders -_0805307C: .4byte gAreaTilesets -_08053080: .4byte gAreaRoomMaps -_08053084: .4byte gAreaMetatiles -_08053088: .4byte gUnk_080B755C - - thumb_func_start sub_0805308C -sub_0805308C: @ 0x0805308C - push {lr} - adds r1, r0, #0 - ldr r2, _080530AC @ =gRoomVars - movs r3, #0xc - ldrsh r0, [r2, r3] - adds r1, r1, r0 - cmp r1, #0 - bge _0805309E - movs r1, #0 -_0805309E: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - ble _080530A8 - adds r1, r0, #0 -_080530A8: - strh r1, [r2, #0xc] - pop {pc} - .align 2, 0 -_080530AC: .4byte gRoomVars - - thumb_func_start sub_080530B0 -sub_080530B0: @ 0x080530B0 - push {lr} - ldr r0, _080530C0 @ =gUnk_080FCAF8 - ldr r1, _080530C4 @ =gUnk_030010EC - movs r2, #0x20 - bl MemCopy - pop {pc} - .align 2, 0 -_080530C0: .4byte gUnk_080FCAF8 -_080530C4: .4byte gUnk_030010EC - - thumb_func_start sub_080530C8 -sub_080530C8: @ 0x080530C8 - push {r4, r5, lr} - movs r4, #1 - movs r5, #0xc0 - lsls r5, r5, #2 - adds r0, r5, #0 - movs r1, #0x78 - bl CheckLocalFlagByOffset - cmp r0, #0 - beq _080530E0 - movs r4, #9 - b _08053138 -_080530E0: - movs r0, #6 - bl CheckGlobalFlag - cmp r0, #0 - beq _080530EE - movs r4, #8 - b _08053138 -_080530EE: - adds r0, r5, #0 - movs r1, #0x32 - bl CheckLocalFlagByOffset - cmp r0, #0 - beq _080530FE - movs r4, #7 - b _08053138 -_080530FE: - movs r0, #5 - bl CheckGlobalFlag - cmp r0, #0 - beq _0805310C - movs r4, #6 - b _08053138 -_0805310C: - movs r0, #4 - bl CheckGlobalFlag - cmp r0, #0 - beq _0805311A - movs r4, #5 - b _08053138 -_0805311A: - movs r0, #0x80 - lsls r0, r0, #1 -.ifdef JP @ TODO deduplicate - movs r1, #0x9b -.else -.ifdef EU - movs r1, #0x9b -.else -.ifdef DEMO_JP - movs r1, #0x9b -.else - movs r1, #0x9c -.endif -.endif -.endif - bl CheckLocalFlagByOffset - cmp r0, #0 - beq _0805312C - movs r4, #4 - b _08053138 -_0805312C: - movs r0, #2 - bl CheckGlobalFlag - cmp r0, #0 - beq _08053138 - movs r4, #2 -_08053138: - ldr r0, _08053140 @ =gSave - strb r4, [r0, #8] - pop {r4, r5, pc} - .align 2, 0 -_08053140: .4byte gSave - - thumb_func_start sub_08053144 -sub_08053144: @ 0x08053144 - push {lr} - movs r0, #0x51 - bl CheckGlobalFlag - cmp r0, #0 - beq _08053154 - movs r0, #0 - b _0805316E -_08053154: - movs r1, #0 - ldr r0, _08053170 @ =gArea - ldrb r2, [r0, #1] - cmp r2, #0 - beq _0805316C - ldr r0, _08053174 @ =gScreenTransition - adds r0, #0x2e - ldrb r1, [r0] - eors r1, r2 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r1, r0, #0x1f -_0805316C: - adds r0, r1, #0 -_0805316E: - pop {pc} - .align 2, 0 -_08053170: .4byte gArea -_08053174: .4byte gScreenTransition - - thumb_func_start sub_08053178 -sub_08053178: @ 0x08053178 - push {r4, r5, lr} - bl sub_08053144 - cmp r0, #0 - beq _080531E6 - ldr r0, _080531E8 @ =gScreenTransition - ldr r5, _080531EC @ =gArea - ldrb r1, [r5, #1] - adds r0, #0x2e - strb r1, [r0] - movs r0, #0x15 - bl CheckGlobalFlag - cmp r0, #0 - beq _080531E6 - movs r0, #0x51 - bl CheckGlobalFlag - cmp r0, #0 - bne _080531DC - bl GetEmptyManager - adds r4, r0, #0 - cmp r4, #0 - beq _080531DC - movs r0, #9 - strb r0, [r4, #8] - movs r0, #0x39 - strb r0, [r4, #9] - adds r0, r4, #0 - movs r1, #8 - bl AppendEntityToList - ldr r0, _080531F0 @ =gRoomVars - ldrb r0, [r0] - cmp r0, #0 - bne _080531DC - ldr r0, _080531F4 @ =gUnk_02002AA0 - ldrb r1, [r5, #1] - bl ReadBit - cmp r0, #0 - bne _080531DC - movs r0, #1 - strb r0, [r4, #0xb] - movs r0, #3 - bl sub_08078A90 - bl sub_0805E5A8 -_080531DC: - ldr r0, _080531F4 @ =gUnk_02002AA0 - ldr r1, _080531EC @ =gArea - ldrb r1, [r1, #1] - bl WriteBit -_080531E6: - pop {r4, r5, pc} - .align 2, 0 -_080531E8: .4byte gScreenTransition -_080531EC: .4byte gArea -_080531F0: .4byte gRoomVars -_080531F4: .4byte gUnk_02002AA0 - - thumb_func_start sub_080531F8 -sub_080531F8: @ 0x080531F8 - push {r4, r5, lr} - ldr r1, _0805323C @ =gPlayerState - ldr r4, _08053240 @ =gPlayerEntity - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x16] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x18] - bl sub_08053144 - cmp r0, #0 - beq _08053238 - ldr r5, _08053244 @ =gUnk_030010AC - ldr r1, _08053248 @ =gUnk_02002AC8 - adds r0, r5, #0 - movs r2, #0x20 - bl MemCopy - bl CheckIsDungeon - cmp r0, #0 - beq _08053238 - adds r1, r5, #0 - subs r1, #0xc - ldr r2, _0805324C @ =gRoomControls - ldrb r0, [r2, #4] - strb r0, [r1, #0x16] - ldrb r0, [r2, #5] - strb r0, [r1, #0x17] - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x18] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x1a] -_08053238: - pop {r4, r5, pc} - .align 2, 0 -_0805323C: .4byte gPlayerState -_08053240: .4byte gPlayerEntity -_08053244: .4byte gUnk_030010AC -_08053248: .4byte gUnk_02002AC8 -_0805324C: .4byte gRoomControls - - thumb_func_start sub_08053250 -sub_08053250: @ 0x08053250 - push {r4, lr} - ldr r0, _0805328C @ =gScreenTransition - movs r1, #0 - strb r1, [r0, #0xf] - ldr r3, _08053290 @ =gPlayerEntity - ldr r4, _08053294 @ =gRoomControls - ldrh r1, [r3, #0x2e] - ldrh r2, [r4, #6] - subs r1, r1, r2 - strh r1, [r0, #0x10] - ldrh r1, [r3, #0x32] - ldrh r2, [r4, #8] - subs r1, r1, r2 - strh r1, [r0, #0x12] - ldrb r1, [r3, #0x14] - strb r1, [r0, #0xe] - adds r3, #0x38 - ldrb r1, [r3] - strb r1, [r0, #0x14] - ldrb r1, [r4, #4] - strb r1, [r0, #0xc] - ldrb r1, [r4, #5] - strb r1, [r0, #0xd] - adds r0, #0xc - ldr r1, _08053298 @ =gUnk_02002AC8 - movs r2, #0x20 - bl MemCopy - pop {r4, pc} - .align 2, 0 -_0805328C: .4byte gScreenTransition -_08053290: .4byte gPlayerEntity -_08053294: .4byte gRoomControls -_08053298: .4byte gUnk_02002AC8 - - thumb_func_start sub_0805329C -sub_0805329C: @ 0x0805329C - push {lr} - bl sub_08053144 - cmp r0, #0 - beq _080532E0 - ldr r0, _080532B8 @ =gRoomControls - ldrb r0, [r0, #4] - cmp r0, #0x48 - beq _080532C2 - cmp r0, #0x48 - bgt _080532BC - cmp r0, #0x18 - beq _080532D6 - b _080532DC - .align 2, 0 -_080532B8: .4byte gRoomControls -_080532BC: - cmp r0, #0x50 - beq _080532D0 - b _080532DC -_080532C2: - ldr r1, _080532CC @ =gSave - movs r0, #0 - strb r0, [r1, #7] - b _080532E0 - .align 2, 0 -_080532CC: .4byte gSave -_080532D0: - bl sub_080530B0 - b _080532E0 -_080532D6: - bl sub_080532E4 - b _080532E0 -_080532DC: - bl sub_08053460 -_080532E0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080532E4 -sub_080532E4: @ 0x080532E4 - ldr r0, _08053318 @ =gAreaRoomHeaders - movs r1, #0xb0 - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r0, [r0] - movs r3, #0xa5 - lsls r3, r3, #1 - adds r2, r0, r3 - ldr r1, _0805331C @ =gScreenTransition - movs r0, #0x58 - strb r0, [r1, #0x16] - movs r0, #0x21 - strb r0, [r1, #0x17] - ldrh r0, [r2, #4] - lsrs r0, r0, #1 - ldrh r3, [r2] - adds r0, r0, r3 - strh r0, [r1, #0x18] - strh r0, [r1, #0x1c] - ldrh r0, [r2, #6] - ldrh r2, [r2, #2] - adds r0, r0, r2 - adds r0, #0xa0 - strh r0, [r1, #0x1a] - strh r0, [r1, #0x1e] - bx lr - .align 2, 0 -_08053318: .4byte gAreaRoomHeaders -_0805331C: .4byte gScreenTransition - - thumb_func_start sub_08053320 -sub_08053320: @ 0x08053320 - push {r4, lr} - ldr r0, _0805337C @ =gBG0Buffer - movs r4, #0x80 - lsls r4, r4, #4 - adds r1, r4, #0 - bl MemClear - ldr r0, _08053380 @ =gBG1Buffer - adds r1, r4, #0 - bl MemClear - ldr r0, _08053384 @ =gBG2Buffer - adds r1, r4, #0 - bl MemClear - ldr r0, _08053388 @ =gBG3Buffer - movs r1, #0x80 - lsls r1, r1, #5 - bl MemClear - movs r0, #0x10 - bl LoadGfxGroup - movs r0, #0x17 - bl LoadGfxGroup - ldr r0, _0805338C @ =gRoomControls - ldrb r0, [r0, #4] - cmp r0, #4 - bne _08053362 - movs r0, #0x1a - bl LoadGfxGroup -_08053362: - bl sub_08053390 - movs r0, #0xb - bl LoadPaletteGroup - movs r0, #0xc - bl LoadPaletteGroup - movs r0, #0 - movs r1, #0 - bl sub_0801D79C - pop {r4, pc} - .align 2, 0 -_0805337C: .4byte gBG0Buffer -_08053380: .4byte gBG1Buffer -_08053384: .4byte gBG2Buffer -_08053388: .4byte gBG3Buffer -_0805338C: .4byte gRoomControls - - thumb_func_start sub_08053390 -sub_08053390: @ 0x08053390 - push {lr} - movs r0, #8 - bl GetInventoryValue - movs r1, #0x19 - cmp r0, #0 - beq _080533A0 - movs r1, #0x18 -_080533A0: - adds r0, r1, #0 - bl LoadGfxGroup - movs r0, #0xa - bl GetInventoryValue - cmp r0, #0 - beq _080533B6 - movs r0, #0x1d - bl LoadGfxGroup -_080533B6: - movs r0, #0xc - bl GetInventoryValue - movs r1, #0x1b - cmp r0, #0 - beq _080533C4 - movs r1, #0x1c -_080533C4: - adds r0, r1, #0 - bl LoadGfxGroup - pop {pc} - - thumb_func_start sub_080533CC -sub_080533CC: @ 0x080533CC - ldr r0, _08053400 @ =gUnk_020178E0 - ldr r2, _08053404 @ =0xFFFFFE00 - adds r1, r0, r2 - ldrh r2, [r0] - strh r2, [r1] - adds r0, #2 - adds r1, #2 - ldrh r2, [r0] - strh r2, [r1] - adds r0, #2 - adds r1, #2 - ldrh r2, [r0] - strh r2, [r1] - adds r0, #2 - adds r1, #2 - ldrh r2, [r0] - strh r2, [r1] - ldrh r0, [r0, #2] - strh r0, [r1, #2] - ldr r2, _08053408 @ =gUsedPalettes - ldr r0, [r2] - movs r1, #8 - orrs r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_08053400: .4byte gUnk_020178E0 -_08053404: .4byte 0xFFFFFE00 -_08053408: .4byte gUsedPalettes - - thumb_func_start sub_0805340C -sub_0805340C: @ 0x0805340C - push {r4, r5, r6, lr} - ldr r5, _08053428 @ =gUnk_02002ECC - movs r4, #0 - ldr r6, _0805342C @ =gUnk_080FCB18 -_08053414: - ldm r6!, {r1} - adds r0, r5, #0 - bl _call_via_r1 - adds r4, #1 - adds r5, #4 - cmp r4, #7 - bls _08053414 - pop {r4, r5, r6, pc} - .align 2, 0 -_08053428: .4byte gUnk_02002ECC -_0805342C: .4byte gUnk_080FCB18 - - thumb_func_start nullsub_480 -nullsub_480: @ 0x08053430 - bx lr - .align 2, 0 - - thumb_func_start sub_08053434 -sub_08053434: @ 0x08053434 - push {lr} - adds r1, r0, #0 - ldr r0, _0805345C @ =gArea - ldrb r0, [r0, #1] - cmp r0, #0x1d - bne _0805345A - ldr r0, [r1] - cmp r0, #0 - beq _0805345A - subs r0, #1 - str r0, [r1] - cmp r0, #0 - bne _0805345A - bl sub_08053460 - movs r0, #5 - movs r1, #6 - bl MenuFadeIn -_0805345A: - pop {pc} - .align 2, 0 -_0805345C: .4byte gArea - - thumb_func_start sub_08053460 -sub_08053460: @ 0x08053460 - push {lr} - ldr r0, _08053488 @ =gSave - ldr r1, _0805348C @ =0x0000048C - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] - movs r0, #0x8c - lsls r0, r0, #4 - movs r1, #0x79 - bl CheckLocalFlagByOffset - cmp r0, #0 - beq _08053480 - movs r0, #0x1c - bl ClearGlobalFlag -_08053480: - ldr r0, _08053490 @ =gUnk_080FCB38 - bl sub_0805356C - pop {pc} - .align 2, 0 -_08053488: .4byte gSave -_0805348C: .4byte 0x0000048C -_08053490: .4byte gUnk_080FCB38 - - thumb_func_start sub_08053494 -sub_08053494: @ 0x08053494 - ldr r0, _080534A0 @ =gSave - ldr r1, _080534A4 @ =0x0000048C - adds r0, r0, r1 - ldr r1, _080534A8 @ =0x00002A30 - str r1, [r0] - bx lr - .align 2, 0 -_080534A0: .4byte gSave -_080534A4: .4byte 0x0000048C -_080534A8: .4byte 0x00002A30 - - thumb_func_start sub_080534AC -sub_080534AC: @ 0x080534AC - push {r4, lr} - movs r4, #0x8c - lsls r4, r4, #4 - adds r0, r4, #0 - movs r1, #0x7c - bl CheckLocalFlagByOffset - cmp r0, #0 - beq _080534D6 - adds r0, r4, #0 - movs r1, #0x7c - bl ClearLocalFlagByOffset - ldr r0, _080534D8 @ =gSave - ldr r1, _080534DC @ =0x0000048C - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] - ldr r0, _080534E0 @ =0x80100000 - bl SoundReq -_080534D6: - pop {r4, pc} - .align 2, 0 -_080534D8: .4byte gSave -_080534DC: .4byte 0x0000048C -_080534E0: .4byte 0x80100000 - - thumb_func_start sub_080534E4 -sub_080534E4: @ 0x080534E4 - push {lr} - adds r1, r0, #0 - ldr r0, _080534FC @ =gRoomControls - ldrb r0, [r0, #4] - cmp r0, #0x1a - beq _080534FA - ldr r0, [r1] - cmp r0, #0 - beq _080534FA - subs r0, #1 - str r0, [r1] -_080534FA: - pop {pc} - .align 2, 0 -_080534FC: .4byte gRoomControls - - thumb_func_start sub_08053500 -sub_08053500: @ 0x08053500 - ldr r0, _0805350C @ =gSave - ldr r1, _08053510 @ =0x00000494 - adds r0, r0, r1 - ldr r1, _08053514 @ =0x00008CA0 - str r1, [r0] - bx lr - .align 2, 0 -_0805350C: .4byte gSave -_08053510: .4byte 0x00000494 -_08053514: .4byte 0x00008CA0 - - thumb_func_start sub_08053518 -sub_08053518: @ 0x08053518 - push {lr} - bl sub_08053460 - ldr r0, _08053568 @ =gUnk_080FCB62 - bl sub_0805356C - movs r0, #0x1b - bl CheckGlobalFlag - cmp r0, #0 - bne _08053534 - movs r0, #0x1a - bl ClearGlobalFlag -_08053534: - movs r0, #0x40 - bl GetInventoryValue - cmp r0, #0 - bne _08053544 - movs r0, #2 - bl ClearGlobalFlag -_08053544: - movs r0, #0x41 - bl GetInventoryValue - cmp r0, #0 - bne _08053554 - movs r0, #3 - bl ClearGlobalFlag -_08053554: - movs r0, #0x42 - bl GetInventoryValue - cmp r0, #0 - bne _08053564 - movs r0, #5 - bl ClearGlobalFlag -_08053564: - pop {pc} - .align 2, 0 -_08053568: .4byte gUnk_080FCB62 - - thumb_func_start sub_0805356C -sub_0805356C: @ 0x0805356C - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4] - ldr r1, _0805358C @ =0x0000FFFF - cmp r0, r1 - beq _0805358A - adds r5, r1, #0 -_0805357A: - ldrh r0, [r4] - ldrh r1, [r4, #2] - bl ClearLocalFlagByOffset - adds r4, #4 - ldrh r0, [r4] - cmp r0, r5 - bne _0805357A -_0805358A: - pop {r4, r5, pc} - .align 2, 0 -_0805358C: .4byte 0x0000FFFF - thumb_func_start sub_08053590 sub_08053590: @ 0x08053590 push {lr} @@ -2020,7 +59,7 @@ sub_080535F4: @ 0x080535F4 ldrb r0, [r0] cmp r0, #0 bne _08053608 - bl sub_0805E5B4 + bl ResetSystemPriority ldr r1, _08053610 @ =gMenu movs r0, #2 strb r0, [r1, #6] @@ -2263,7 +302,7 @@ sub_08053758: @ 0x08053758 strh r0, [r2, #0x20] movs r0, #0xf bl SoundReq - bl sub_0805E5B4 + bl ResetSystemPriority movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 @@ -2732,8 +771,8 @@ sub_08053B74: @ 0x08053B74 strb r0, [r1] ldr r0, _08053BA8 @ =gUnk_080FCDE0 bl LoadRoomEntityList - bl sub_0805E5B4 - bl sub_0805E470 + bl ResetSystemPriority + bl ResetEntityPriority movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 @@ -2953,7 +992,7 @@ sub_08053D34: @ 0x08053D34 lsls r4, r4, #3 adds r0, r4, #0 movs r1, #0x3d - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank cmp r0, #0 beq _08053D5C movs r0, #0x74 @@ -2963,7 +1002,7 @@ sub_08053D34: @ 0x08053D34 _08053D5C: adds r0, r4, #0 movs r1, #0x3e - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank cmp r0, #0 beq _08053D72 movs r0, #0x74 @@ -3123,7 +1162,7 @@ sub_08053E74: @ 0x08053E74 movs r0, #1 strb r0, [r1] movs r0, #1 - bl sub_0805E450 + bl SetMinPriority movs r0, #4 movs r1, #8 bl DoFade @@ -3248,7 +1287,7 @@ sub_08053F88: @ 0x08053F88 ldrb r0, [r1, #5] adds r0, #1 strb r0, [r1, #5] - bl sub_0805E470 + bl ResetEntityPriority _08053FAA: pop {pc} .align 2, 0 diff --git a/asm/code_0805436C.s b/asm/code_0805436C.s index 3e00265f..2def72dc 100644 --- a/asm/code_0805436C.s +++ b/asm/code_0805436C.s @@ -131,7 +131,7 @@ sub_08054974: @ 0x08054974 strb r0, [r4, #5] bl sub_08053320 ldrb r0, [r4, #4] - bl sub_08052D58 + bl GetFlagBankOffset ldr r1, _080549B8 @ =gArea strh r0, [r1, #4] cmp r5, #0 @@ -194,14 +194,14 @@ sub_08054A14: @ 0x08054A14 ldrb r0, [r2, #0x11] cmp r0, #0xd bhi _08054A34 - ldr r1, _08054A3C @ =gUnk_0811E454 + ldr r1, _08054A3C @ =gLocalFlagBanks lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] ldrh r1, [r2, #0x12] - bl SetLocalFlagByOffset + bl SetLocalFlagByBank _08054A34: pop {pc} .align 2, 0 _08054A38: .4byte gUnk_080FE320 -_08054A3C: .4byte gUnk_0811E454 +_08054A3C: .4byte gLocalFlagBanks diff --git a/asm/code_08054C04.s b/asm/code_08054C04.s index 56bd9e02..c10cd693 100644 --- a/asm/code_08054C04.s +++ b/asm/code_08054C04.s @@ -531,7 +531,7 @@ _08054FCA: movs r0, #0x80 lsls r0, r0, #3 movs r1, #0x77 - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank cmp r0, #0 beq _08055004 ldrb r0, [r5, #2] @@ -1288,13 +1288,13 @@ sub_080555B8: @ 0x080555B8 push {r4, r5, lr} ldr r5, _08055600 @ =gMenu ldr r4, [r5, #0xc] - ldr r1, _08055604 @ =gUnk_0811E454 + ldr r1, _08055604 @ =gLocalFlagBanks ldrb r0, [r4, #0x11] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] ldrh r1, [r4, #0x12] - bl SetLocalFlagByOffset + bl SetLocalFlagByBank ldrb r0, [r4, #2] ldrb r1, [r4, #3] bl sub_0804B0E8 @@ -1317,7 +1317,7 @@ sub_080555B8: @ 0x080555B8 pop {r4, r5, pc} .align 2, 0 _08055600: .4byte gMenu -_08055604: .4byte gUnk_0811E454 +_08055604: .4byte gLocalFlagBanks _08055608: .4byte gUpdateVisibleTiles thumb_func_start sub_0805560C diff --git a/asm/code_0807059C.s b/asm/code_0807059C.s index b7bcb418..370d8b49 100644 --- a/asm/code_0807059C.s +++ b/asm/code_0807059C.s @@ -56,7 +56,7 @@ sub_080705AC: @ 0x080705AC ldrb r0, [r0] cmp r0, #0 bne _08070674 - ldr r0, _0807062C @ =gUnk_03003DC0 + ldr r0, _0807062C @ =gPriorityHandler ldrh r0, [r0, #8] cmp r0, #0 bne _08070674 @@ -76,7 +76,7 @@ _0807061C: .4byte gUnk_02034490 _08070620: .4byte gMessage _08070624: .4byte gSave _08070628: .4byte gPlayerState -_0807062C: .4byte gUnk_03003DC0 +_0807062C: .4byte gPriorityHandler _08070630: ldrb r0, [r2] _08070632: diff --git a/asm/code_080732D0.s b/asm/code_080732D0.s index d6ba3f5d..b4cb9e7f 100644 --- a/asm/code_080732D0.s +++ b/asm/code_080732D0.s @@ -814,7 +814,7 @@ _080738E0: .4byte gPlayerState _080738E4: .4byte gUnk_0811BC40 _080738E8: .4byte gUnk_0813AD88 _080738EC: - bl sub_08052A4C + bl InitParachuteRoom _080738F0: ldr r1, _08073900 @ =0xFFFFE800 adds r0, r4, #0 @@ -4266,7 +4266,7 @@ _08075270: cmp r0, #0 beq _0807528C movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority _0807528C: pop {r4, r5, r6, r7, pc} .align 2, 0 diff --git a/asm/code_08077698.s b/asm/code_08077698.s index ef0b4211..82a5c161 100644 --- a/asm/code_08077698.s +++ b/asm/code_08077698.s @@ -218,7 +218,7 @@ _08077810: ands r1, r2 strb r1, [r0, #0x10] movs r1, #0xb4 - bl sub_0805E4E0 + bl RequestPriorityDuration b _080777CC .align 2, 0 _08077834: .4byte gPlayerEntity diff --git a/asm/code_08078778.s b/asm/code_08078778.s index 4137d25e..c1242ad4 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -289,8 +289,8 @@ _08078A88: pop {r4, r5, r6, r7, pc} .align 2, 0 - thumb_func_start sub_08078A90 -sub_08078A90: @ 0x08078A90 + thumb_func_start SetPlayerControl +SetPlayerControl: @ 0x08078A90 push {lr} adds r1, r0, #0 ldr r0, _08078AA4 @ =gPlayerState @@ -1966,7 +1966,7 @@ sub_08079708: @ 0x08079708 ands r0, r1 cmp r0, #0 bne _0807973E - bl FreezeTime + bl SetPlayerEventPriority _0807973E: pop {r4, pc} .align 2, 0 @@ -3378,7 +3378,7 @@ sub_0807A1B8: @ 0x0807A1B8 adds r0, r4, #0 movs r1, #0 movs r2, #0 - bl sub_0807A1E8 + bl GetSurfaceCalcType ldr r1, _0807A1E0 @ =gPlayerState strb r0, [r1, #0x12] ldr r2, _0807A1E4 @ =gUnk_0811C120 @@ -3394,8 +3394,8 @@ _0807A1DC: .4byte gPlayerEntity _0807A1E0: .4byte gPlayerState _0807A1E4: .4byte gUnk_0811C120 - thumb_func_start sub_0807A1E8 -sub_0807A1E8: @ 0x0807A1E8 + thumb_func_start GetSurfaceCalcType +GetSurfaceCalcType: @ 0x0807A1E8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} diff --git a/asm/code_0807B9B8.s b/asm/code_0807B9B8.s index 33572525..5a9cf42e 100644 --- a/asm/code_0807B9B8.s +++ b/asm/code_0807B9B8.s @@ -456,7 +456,7 @@ sub_0807BD14: @ 0x0807BD14 strh r4, [r1] strb r3, [r1, #5] strb r5, [r1, #0x10] - bl sub_08052E8C + bl GetCurrentRoomInfo adds r2, r0, #0 ldr r1, _0807BD6C @ =gArea ldr r3, _0807BD70 @ =0x0000085C @@ -511,7 +511,7 @@ _0807BD98: movs r1, #6 orrs r0, r1 strb r0, [r2, #0x11] - bl sub_0805E5A8 + bl SetInitializationPriority movs r0, #1 b _0807BDB6 .align 2, 0 diff --git a/asm/code_0807CAA0.s b/asm/code_0807CAA0.s index 45cd2503..96368728 100644 --- a/asm/code_0807CAA0.s +++ b/asm/code_0807CAA0.s @@ -65,8 +65,8 @@ _0807CB04: .4byte gSave _0807CB08: .4byte gArea _0807CB0C: .4byte 0x0000047C - thumb_func_start CheckLocalFlagByOffset -CheckLocalFlagByOffset: @ 0x0807CB10 + thumb_func_start CheckLocalFlagByBank +CheckLocalFlagByBank: @ 0x0807CB10 push {lr} adds r2, r0, #0 ldr r0, _0807CB20 @ =gGlobalFlags @@ -114,17 +114,17 @@ _0807CB84: movs r1, #0 b _0807CBCA _0807CB88: - ldr r0, _0807CB9C @ =gUnk_0811E454 + ldr r0, _0807CB9C @ =gLocalFlagBanks lsls r1, r2, #1 adds r1, r1, r0 ldrh r0, [r1] adds r1, r3, #0 - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank _0807CB96: adds r1, r0, #0 b _0807CBCA .align 2, 0 -_0807CB9C: .4byte gUnk_0811E454 +_0807CB9C: .4byte gLocalFlagBanks _0807CBA0: adds r0, r3, #0 bl GetInventoryValue diff --git a/asm/code_0807F0D8.s b/asm/code_0807F0D8.s index 6eaef89b..78ccdd83 100644 --- a/asm/code_0807F0D8.s +++ b/asm/code_0807F0D8.s @@ -429,7 +429,7 @@ sub_0807FF1C: @ 0x0807FF1C bls _0807FF48 movs r0, #0 strb r0, [r2, #2] - bl sub_0805E5B4 + bl ResetSystemPriority _0807FF48: pop {pc} .align 2, 0 @@ -794,7 +794,7 @@ _08080232: bne _08080268 strb r0, [r5, #2] strh r0, [r5] - bl sub_0805E5B4 + bl ResetSystemPriority ldr r1, _08080260 @ =gScreen ldrh r2, [r1] ldr r0, _08080264 @ =0x0000BFFF diff --git a/asm/code_080A29BC.s b/asm/code_080A29BC.s index e5088b9d..63d65add 100644 --- a/asm/code_080A29BC.s +++ b/asm/code_080A29BC.s @@ -391,7 +391,7 @@ CreateSpeechBubble: @ 0x080A2D2C lsls r1, r1, #0x1c lsrs r1, r1, #0x1c adds r0, r4, #0 - bl sub_0805E3A0 + bl SetDefaultPriority _080A2D6E: adds r0, r4, #0 pop {r4, r5, r6, r7, pc} diff --git a/asm/code_080A3480.s b/asm/code_080A3480.s index 78965ce9..43c751e4 100644 --- a/asm/code_080A3480.s +++ b/asm/code_080A3480.s @@ -78,7 +78,7 @@ _080A365E: bl LoadPaletteGroup movs r0, #0 movs r1, #0 - bl sub_0801D79C + bl SetColor ldr r2, _080A36B4 @ =gScreen movs r0, #0xc8 lsls r0, r0, #3 @@ -96,7 +96,7 @@ _080A365E: subs r0, #0x8a strh r0, [r2, #0x20] bl InitSoundPlayingInfo - bl sub_0805E5B4 + bl ResetSystemPriority movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 @@ -511,7 +511,7 @@ _080A39C8: bl LoadPaletteGroup movs r0, #0 movs r1, #0 - bl sub_0801D79C + bl SetColor movs r0, #4 bl LoadGfxGroup movs r0, #0xc0 @@ -520,7 +520,7 @@ _080A39C8: bl MemClear movs r0, #0 movs r1, #0 - bl sub_08052418 + bl SetPopupState ldr r2, _080A3A2C @ =gScreen ldrh r0, [r2] movs r3, #0xc0 @@ -604,7 +604,7 @@ _080A3A9A: strb r4, [r1, #3] movs r0, #0 adds r1, r4, #0 - bl sub_08052418 + bl SetPopupState movs r0, #0x69 bl SoundReq b _080A3B36 diff --git a/asm/code_080A3BD0.s b/asm/code_080A3BD0.s index 5290794f..fe5e7913 100644 --- a/asm/code_080A3BD0.s +++ b/asm/code_080A3BD0.s @@ -1364,14 +1364,14 @@ sub_080A4608: @ 0x080A4608 adds r0, r4, r1 ldrh r1, [r0] movs r0, #0 - bl sub_0801D79C + bl SetColor movs r0, #0xae lsls r0, r0, #1 movs r2, #0xd3 lsls r2, r2, #1 adds r1, r4, r2 ldrh r1, [r1] - bl sub_0801D79C + bl SetColor ldr r0, _080A46A4 @ =gBG0Buffer movs r1, #0x80 lsls r1, r1, #4 @@ -2923,7 +2923,7 @@ sub_080A50A0: @ 0x080A50A0 adds r1, r0, #0 cmp r1, #0xf bne _080A50B4 - bl sub_08052690 + bl CheckHasMap movs r1, #4 cmp r0, #0 beq _080A50B4 diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index b1829231..60c6ca18 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -813,7 +813,7 @@ sub_080A59AC: @ 0x080A59AC movs r0, #0 strb r0, [r1, #3] movs r1, #0 - bl sub_08052418 + bl SetPopupState movs r0, #1 bl sub_080A7114 pop {pc} @@ -887,7 +887,7 @@ _080A5A3C: strb r2, [r1, #3] movs r0, #0 adds r1, r2, #0 - bl sub_08052418 + bl SetPopupState movs r0, #0x69 bl SoundReq _080A5A52: @@ -998,7 +998,7 @@ sub_080A5AF4: @ 0x080A5AF4 .endif movs r0, #2 movs r1, #0 - bl sub_08052418 + bl SetPopupState .ifndef EU movs r0, #0x80 lsls r0, r0, #0x12 @@ -1077,7 +1077,7 @@ _080A5B76: strb r4, [r1, #3] movs r0, #2 adds r1, r4, #0 - bl sub_08052418 + bl SetPopupState movs r0, #0x69 bl SoundReq _080A5B8E: @@ -1796,7 +1796,7 @@ sub_080A5F24: @ 0x080A5F24 movs r0, #0x8c lsls r0, r0, #4 movs r1, #0x7b - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank cmp r0, #0 beq _080A5F40 movs r4, #0 @@ -2873,7 +2873,7 @@ sub_080A6534: @ 0x080A6534 adds r0, #0xa2 ldrh r1, [r0] movs r0, #0 - bl sub_0801D79C + bl SetColor ldr r1, _080A659C @ =gUnk_08128F4C ldr r0, _080A65A0 @ =gUnk_02032EC0 ldrb r0, [r0, #3] @@ -3851,10 +3851,10 @@ sub_080A6B04: @ 0x080A6B04 ldr r4, _080A6C00 @ =0x0000475F movs r0, #0 adds r1, r4, #0 - bl sub_0801D79C + bl SetColor movs r0, #0x5f adds r1, r4, #0 - bl sub_0801D79C + bl SetColor ldr r0, _080A6C04 @ =0x00005001 ldr r1, _080A6C08 @ =gBG3Buffer movs r2, #0x80 @@ -5033,10 +5033,10 @@ _080A73B4: movs r2, #0x7c bl MemCopy ldrb r0, [r4, #4] - bl sub_08052D58 + bl GetFlagBankOffset ldr r4, _080A749C @ =gArea strh r0, [r4, #4] - bl sub_08052E8C + bl GetCurrentRoomInfo ldr r1, _080A74A0 @ =0x0000085C adds r4, r4, r1 str r0, [r4] @@ -5104,7 +5104,7 @@ sub_080A74C8: @ 0x080A74C8 strb r2, [r0, #4] strb r3, [r1] strb r3, [r1, #2] - bl sub_0805E5B4 + bl ResetSystemPriority _080A74E6: pop {pc} .align 2, 0 @@ -5115,7 +5115,7 @@ _080A74F0: .4byte gUnk_02032EC0 thumb_func_start sub_080A74F4 sub_080A74F4: @ 0x080A74F4 push {lr} - bl sub_0805E5A8 + bl SetInitializationPriority ldr r1, _080A7524 @ =gMain movs r0, #0 strb r0, [r1, #0xb] diff --git a/asm/code_080A7C00.s b/asm/code_080A7C00.s index 5a45ca57..988666cd 100644 --- a/asm/code_080A7C00.s +++ b/asm/code_080A7C00.s @@ -133,7 +133,7 @@ _080A7CDC: bl sub_0807B7D8 movs r0, #0 movs r1, #0x78 - bl sub_0805E4E0 + bl RequestPriorityDuration ldr r0, _080A7CF8 @ =0x0000011B bl SoundReq _080A7CF4: diff --git a/asm/code_080ADD30.s b/asm/code_080ADD30.s index 2190d709..f4c1ec86 100644 --- a/asm/code_080ADD30.s +++ b/asm/code_080ADD30.s @@ -3050,7 +3050,7 @@ sub_080AF244: @ 0x080AF244 sub_080AF250: @ 0x080AF250 push {r4, lr} adds r4, r0, #0 - bl sub_08052E8C + bl GetCurrentRoomInfo adds r1, r0, #0 ldr r0, _080AF26C @ =gArea ldr r2, _080AF270 @ =0x0000085C @@ -3084,7 +3084,7 @@ sub_080AF284: @ 0x080AF284 bl CheckPlayerInRegion cmp r0, #0 beq _080AF2BC - bl sub_08052E8C + bl GetCurrentRoomInfo ldr r1, _080AF2B0 @ =gArea ldr r2, _080AF2B4 @ =0x0000085C adds r1, r1, r2 @@ -3101,7 +3101,7 @@ _080AF2BC: bl GetInventoryValue cmp r0, #0 beq _080AF2D6 - bl sub_08052E8C + bl GetCurrentRoomInfo ldr r1, _080AF2D8 @ =gArea ldr r2, _080AF2DC @ =0x0000085C adds r1, r1, r2 @@ -3123,7 +3123,7 @@ sub_080AF2E4: @ 0x080AF2E4 bl GetInventoryValue cmp r0, #0 beq _080AF300 - bl sub_08052E8C + bl GetCurrentRoomInfo ldr r1, _080AF304 @ =gArea ldr r2, _080AF308 @ =0x0000085C adds r1, r1, r2 diff --git a/asm/crenalBeanSprout.s b/asm/crenalBeanSprout.s index f89d5250..10d49ea1 100644 --- a/asm/crenalBeanSprout.s +++ b/asm/crenalBeanSprout.s @@ -194,7 +194,7 @@ _08096494: strb r0, [r5, #0x19] adds r0, r5, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority b _0809650A _080964A6: ldrb r0, [r5, #0xb] diff --git a/asm/deathFx.s b/asm/deathFx.s index 018ef831..ef4a1b39 100644 --- a/asm/deathFx.s +++ b/asm/deathFx.s @@ -129,7 +129,7 @@ _08081702: _0808170C: adds r0, r4, #0 movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority pop {r4, r5, pc} .align 2, 0 _08081718: .4byte gUnk_0811EC08 diff --git a/asm/enemy64.s b/asm/enemy64.s index d70851ed..8d706fde 100644 --- a/asm/enemy64.s +++ b/asm/enemy64.s @@ -887,7 +887,7 @@ sub_080496EC: @ 0x080496EC cmp r0, #0 bne _08049720 movs r0, #2 - bl sub_08078A90 + bl SetPlayerControl movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x1e @@ -916,7 +916,7 @@ sub_0804972C: @ 0x0804972C cmp r0, #0 bne _08049750 movs r0, #2 - bl sub_08078A90 + bl SetPlayerControl movs r0, #2 strb r0, [r4, #0xd] movs r0, #1 @@ -1098,7 +1098,7 @@ sub_08049888: @ 0x08049888 movs r0, #0x7c bl SetFlag movs r0, #1 - bl sub_08078A90 + bl SetPlayerControl _080498AE: pop {pc} .align 2, 0 diff --git a/asm/fairy.s b/asm/fairy.s index 236beb3f..9ae61b7f 100644 --- a/asm/fairy.s +++ b/asm/fairy.s @@ -185,7 +185,7 @@ sub_0808D7B4: @ 0x0808D7B4 strh r0, [r1] adds r0, r4, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority movs r0, #0x9b lsls r0, r0, #1 bl EnqueueSFX @@ -335,7 +335,7 @@ _0808D8EE: _0808D910: adds r0, r4, #0 bl sub_080AEFB4 - bl sub_0805E40C + bl AnyPrioritySet cmp r0, #0 bne _0808D954 ldrb r0, [r4, #0xb] diff --git a/asm/figurineDevice.s b/asm/figurineDevice.s index 0b58d4db..fa20a78c 100644 --- a/asm/figurineDevice.s +++ b/asm/figurineDevice.s @@ -108,7 +108,7 @@ _08087C64: strb r5, [r0] adds r0, r4, #0 movs r1, #7 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r4, #0 movs r1, #1 bl InitializeAnimation @@ -136,7 +136,7 @@ _08087C7C: bl sub_0808804C adds r0, r4, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority _08087CA6: pop {r4, r5, pc} @@ -951,7 +951,7 @@ _08088072: movs r0, #0x80 lsls r0, r0, #4 movs r1, #0x77 - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank cmp r0, #0 beq _08088084 movs r4, #6 @@ -960,7 +960,7 @@ _08088084: movs r0, #0xc0 lsls r0, r0, #2 movs r1, #0x32 - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank cmp r0, #0 beq _08088096 movs r4, #5 @@ -995,7 +995,7 @@ _080880B2: .endif .endif .endif - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank cmp r0, #0 beq _080880C4 movs r4, #2 @@ -1129,7 +1129,7 @@ _08087FB4: _08087FBC: ldr r0, [r1] ldrh r1, [r1, #4] - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank b _08088064EU _08087FC6: ldrh r0, [r1, #4] @@ -1246,7 +1246,7 @@ _08087B48: _08087B50: ldr r0, [r1] ldrh r1, [r1, #4] - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank b _08087BF8 _08087B5A: ldrh r0, [r1, #4] @@ -1361,7 +1361,7 @@ _0808818C: _08088194: ldr r0, [r1] ldrh r1, [r1, #4] - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank b _08088262 _0808819E: ldrh r0, [r1, #4] diff --git a/asm/fileScreen.s b/asm/fileScreen.s index 7a5c96f5..50f5a585 100755 --- a/asm/fileScreen.s +++ b/asm/fileScreen.s @@ -171,7 +171,7 @@ _08051AA8: .4byte gMain thumb_func_start InitializeNewRoom InitializeNewRoom: @ 0x08051AAC push {lr} - bl sub_0805E5A8 + bl SetInitializationPriority ldr r1, _08051AE4 @ =gScreen movs r2, #0 movs r0, #0xba @@ -248,14 +248,14 @@ _08051796: cmp r4, #0 bne _080517DC bl sub_08052C5C - bl sub_0805E5B4 + bl ResetSystemPriority bl sub_08051E04 bl sub_080300C4 ldr r1, _080517F0 @ =gMain movs r0, #2 strb r0, [r1, #4] movs r0, #0 - bl sub_08078A90 + bl SetPlayerControl ldr r0, _080517F4 @ =gUnk_02034490 strb r4, [r0] bl sub_08053178 @@ -266,7 +266,7 @@ _08051796: bne _080517DC movs r0, #0 movs r1, #1 - bl sub_0805E4E0 + bl RequestPriorityDuration _080517DC: pop {r4, pc} .align 2, 0 @@ -330,14 +330,14 @@ _08051B5A: cmp r4, #0 bne _08051BAE bl sub_08052C5C - bl sub_0805E5B4 + bl ResetSystemPriority bl sub_08051E04 bl sub_080300C4 ldr r1, _08051BC4 @ =gMain movs r0, #2 strb r0, [r1, #4] movs r0, #0 - bl sub_08078A90 + bl SetPlayerControl ldr r0, _08051BC8 @ =gUnk_02034490 strb r4, [r0] .ifdef DEMO_JP @@ -394,7 +394,7 @@ _08051B96: bne _08051BAE movs r0, #0 movs r1, #1 - bl sub_0805E4E0 + bl RequestPriorityDuration _08051BAE: pop {r4, r5, pc} .align 2, 0 @@ -433,7 +433,7 @@ sub_08051BD0: @ 0x08051BD0 ands r0, r1 cmp r0, #0 bne _08051C02 - ldr r0, _08051C64 @ =gUnk_03003DC0 + ldr r0, _08051C64 @ =gPriorityHandler ldrh r0, [r0, #8] cmp r0, #0 beq _08051C06 @@ -453,7 +453,7 @@ _08051C06: bl sub_0801C208 bl sub_08078CB4 bl sub_080AD9B0 - bl sub_0805291C + bl HandleRoomExit bl sub_08052C5C bl sub_080528B4 bl sub_080185F8 @@ -468,7 +468,7 @@ _08051C06: .align 2, 0 _08051C5C: .4byte gMain _08051C60: .4byte gMessage -_08051C64: .4byte gUnk_03003DC0 +_08051C64: .4byte gPriorityHandler _08051C68: .4byte gRoomControls _08051C6C: ldr r0, _08051C80 @ =gPlayerState @@ -476,7 +476,7 @@ _08051C6C: strb r1, [r0, #0xc] ldr r0, _08051C84 @ =gMain strb r2, [r0, #4] - bl sub_0805E59C + bl SetRoomReloadPriority bl sub_08051D98 b _08051C9C .align 2, 0 @@ -489,7 +489,7 @@ _08051C88: ldr r1, _08051CA4 @ =gMain movs r0, #1 strb r0, [r1, #4] - bl sub_0805E59C + bl SetRoomReloadPriority bl sub_08051DCC _08051C9C: pop {pc} @@ -511,14 +511,14 @@ sub_08051CA8: @ 0x08051CA8 bl sub_0801C208 bl sub_08078CB4 bl sub_080AD9B0 - bl sub_0805291C + bl HandleRoomExit bl sub_080528B4 bl sub_080AD918 ldr r0, _08051CEC @ =gFadeControl ldrb r0, [r0] cmp r0, #0 bne _08051CEA - bl sub_0805E5B4 + bl ResetSystemPriority _08051CEA: pop {pc} .align 2, 0 @@ -592,7 +592,7 @@ InitializeEntities: @ 0x08051D40 bl sub_0805283C movs r0, #0 movs r1, #0 - bl sub_0801D79C + bl SetColor bl LoadRoom bl CreateZeldaFollower bl sub_0804AFF4 @@ -622,7 +622,7 @@ sub_08051D98: @ 0x08051D98 bl LoadRoom bl sub_0804AFF4 movs r0, #1 - bl sub_08078A90 + bl SetPlayerControl pop {pc} .align 2, 0 _08051DC8: .4byte gRoomVars @@ -636,7 +636,7 @@ sub_08051DCC: @ 0x08051DCC strb r0, [r1, #4] ldrb r0, [r4, #0xd] strb r0, [r1, #5] - bl sub_080528F0 + bl RoomExitCallback movs r0, #3 strb r0, [r4, #9] bl sub_08052CFC @@ -653,7 +653,7 @@ _08051E00: .4byte gScreenTransition thumb_func_start sub_08051E04 sub_08051E04: @ 0x08051E04 push {lr} - bl sub_08052620 + bl CheckIsOverworld cmp r0, #0 beq _08051E60 ldr r1, _08051E2C @ =gPlayerEntity @@ -735,7 +735,7 @@ sub_08051E84: @ 0x08051E84 strb r0, [r5, #5] bl sub_08053320 ldrb r0, [r5, #4] - bl sub_08052D58 + bl GetFlagBankOffset ldr r1, _08051EFC @ =gArea movs r6, #0 strh r0, [r1, #4] @@ -927,7 +927,7 @@ sub_08052010: @ 0x08052010 bl LoadPaletteGroup movs r0, #0 movs r1, #0 - bl sub_0801D79C + bl SetColor movs r0, #4 bl LoadGfxGroup movs r0, #0xc0 diff --git a/asm/fourElements.s b/asm/fourElements.s index 6ed7f1b2..781da69f 100644 --- a/asm/fourElements.s +++ b/asm/fourElements.s @@ -216,14 +216,14 @@ sub_080A034C: @ 0x080A034C bne _080A038C ldr r0, _080A0374 @ =gPlayerEntity movs r1, #0 - bl sub_0805E3A0 + bl SetDefaultPriority b _080A038C .align 2, 0 _080A0374: .4byte gPlayerEntity _080A0378: movs r0, #0 movs r1, #0x3c - bl sub_0805E4E0 + bl RequestPriorityDuration bl sub_0808C67C cmp r0, #0 beq _080A038C @@ -239,7 +239,7 @@ sub_080A0390: @ 0x080A0390 adds r4, r0, #0 movs r0, #0 movs r1, #0x3c - bl sub_0805E4E0 + bl RequestPriorityDuration ldr r0, _080A03B4 @ =gFadeControl ldrb r0, [r0] cmp r0, #0 @@ -262,7 +262,7 @@ sub_080A03B8: @ 0x080A03B8 adds r4, r0, #0 movs r0, #0 movs r1, #0xa - bl sub_0805E4E0 + bl RequestPriorityDuration adds r1, r4, #0 adds r1, #0x68 ldrh r0, [r1] @@ -286,7 +286,7 @@ sub_080A03E8: @ 0x080A03E8 push {lr} movs r0, #0 movs r1, #0xa - bl sub_0805E4E0 + bl RequestPriorityDuration ldr r0, _080A041C @ =gMessage ldrb r1, [r0] movs r0, #0x7f @@ -294,7 +294,7 @@ sub_080A03E8: @ 0x080A03E8 cmp r0, #0 bne _080A041A movs r0, #0x5a - bl sub_0805E510 + bl SetPriorityTimer ldr r0, _080A0420 @ =gPlayerState adds r0, #0x8b movs r1, #1 diff --git a/asm/getEmptyEntity.s b/asm/getEmptyEntity.s index 3ab8e820..faa6d4d6 100644 --- a/asm/getEmptyEntity.s +++ b/asm/getEmptyEntity.s @@ -35,7 +35,7 @@ _0805E6A8: ands r0, r1 cmp r0, #0 beq _0805E6D4 - ldr r0, _0805E6D0 @ =gUnk_03003DD0 + ldr r0, _0805E6D0 @ =gUpdateContext ldr r0, [r0, #8] cmp r4, r0 beq _0805E6D4 @@ -45,7 +45,7 @@ _0805E6A8: b _0805E730 .align 2, 0 _0805E6CC: .4byte gPlayerEntity -_0805E6D0: .4byte gUnk_03003DD0 +_0805E6D0: .4byte gUpdateContext _0805E6D4: adds r4, #0x88 ldr r0, _0805E738 @ =gUnk_03003BE0 @@ -65,7 +65,7 @@ _0805E6EA: cmp r4, r2 beq _0805E718 movs r7, #0x1c - ldr r6, _0805E740 @ =gUnk_03003DD0 + ldr r6, _0805E740 @ =gUpdateContext _0805E6F8: ldrb r0, [r4, #8] cmp r0, #9 @@ -103,5 +103,5 @@ _0805E730: .align 2, 0 _0805E738: .4byte gUnk_03003BE0 _0805E73C: .4byte gEntityLists -_0805E740: .4byte gUnk_03003DD0 +_0805E740: .4byte gUpdateContext .syntax divided diff --git a/asm/giantBookLadder.s b/asm/giantBookLadder.s index bde8c303..a17733ef 100644 --- a/asm/giantBookLadder.s +++ b/asm/giantBookLadder.s @@ -82,7 +82,7 @@ _0808E4C8: ldr r1, _0808E548 @ =sub_0808E55C adds r0, r4, #0 movs r2, #0 - bl sub_08052D74 + bl RegisterTransitionManager b _0808E55A .align 2, 0 _0808E540: .4byte gUnk_08121C40 diff --git a/asm/gyorgFemale.s b/asm/gyorgFemale.s index 42d10c34..3d90df67 100644 --- a/asm/gyorgFemale.s +++ b/asm/gyorgFemale.s @@ -129,7 +129,7 @@ sub_0804614C: @ 0x0804614C ldr r1, _08046258 @ =sub_08046498 adds r0, r6, #0 movs r2, #0 - bl sub_08052D74 + bl RegisterTransitionManager _08046244: pop {r4, r5, r6, pc} .align 2, 0 diff --git a/asm/intr.s b/asm/intr.s index 1be83dc3..64f46e95 100644 --- a/asm/intr.s +++ b/asm/intr.s @@ -657,7 +657,7 @@ _080B21A4: .4byte 0x01010101 _080B21A8: .4byte gUnk_02000006 _080B21AC: .4byte gUnk_08000F54 - ldr r11, _080B2270 @ =gUnk_03003DD0 + ldr r11, _080B2270 @ =gUpdateContext ldr r1, [r11] ldm r1, {r7, r8, r9, r10} ldr sp, [r11, #0xc] @@ -665,7 +665,7 @@ _080B21AC: .4byte gUnk_08000F54 ldr r0, [r11, #8] add pc, pc, #0x60 @ =_080B2230 -@ gUnk_03003DD0 { +@ gUpdateContext { @ void* chosen_table; @ void* linked_list_top; @ void* curr_entity; @@ -679,7 +679,7 @@ UpdateEntities_arm: @ 0x080B21B0 ldr r1, _080B2274 @ =gUnk_080026A4 add r1, r1, r0, lsl #4 push {r4 - r11, lr} - ldr r11, _080B2278 @ =gUnk_03003DD0 + ldr r11, _080B2278 @ =gUpdateContext str r1, [r11, #0x0] str sp, [r11, #0xc] ldm r1, {r7, r8, r9, r10} @@ -724,9 +724,9 @@ _080B2264: .4byte NPCUpdate _080B2268: .4byte ItemUpdate _080B226C: .4byte ManagerUpdate -_080B2270: .4byte gUnk_03003DD0 +_080B2270: .4byte gUpdateContext _080B2274: .4byte gUnk_080026A4 -_080B2278: .4byte gUnk_03003DD0 +_080B2278: .4byte gUpdateContext arm_func_start sub_080B227C sub_080B227C: @ 0x080B227C diff --git a/asm/itemForSale.s b/asm/itemForSale.s index 512d589a..8b5a7c02 100644 --- a/asm/itemForSale.s +++ b/asm/itemForSale.s @@ -64,7 +64,7 @@ sub_08081854: @ 0x08081854 .ifdef EU adds r0, r4, #0x0 movs r1, #0x6 - bl sub_0805E3A0 + bl SetDefaultPriority .endif str r4, [r4, #0x54] adds r0, r4, #0 @@ -358,7 +358,7 @@ sub_08081AB0: @ 0x08081AB0 str r0, [r1, #0x68] strb r0, [r1, #6] strb r0, [r1, #7] - bl sub_08078A90 + bl SetPlayerControl pop {pc} .align 2, 0 _08081AC4: .4byte gRoomVars diff --git a/asm/macroBook.s b/asm/macroBook.s index 654f182a..bb20fefb 100644 --- a/asm/macroBook.s +++ b/asm/macroBook.s @@ -159,7 +159,7 @@ _0809A87C: bl InitAnimationForceUpdate adds r0, r4, #0 movs r1, #0x78 - bl sub_0805E4E0 + bl RequestPriorityDuration _0809A8A0: pop {r4, pc} .align 2, 0 @@ -206,7 +206,7 @@ _0809A8E2: ands r0, r1 strb r0, [r2] movs r0, #0xff - bl sub_08078A90 + bl SetPlayerControl movs r0, #0x2a bl SetGlobalFlag _0809A8FC: diff --git a/asm/macros/scripts.inc b/asm/macros/scripts.inc index 66a3f1dc..6b78fc2c 100644 --- a/asm/macros/scripts.inc +++ b/asm/macros/scripts.inc @@ -139,7 +139,7 @@ .2byte \s .endm -.macro CheckLocalFlagByOffset a:req, b:req +.macro CheckLocalFlagByBank a:req, b:req .2byte 0x0c13 .2byte \a .2byte \b @@ -262,7 +262,7 @@ .2byte \s .endm -.macro SetLocalFlagByOffset a:req, b:req +.macro SetLocalFlagByBank a:req, b:req .2byte 0x0c2b .2byte \a .2byte \b diff --git a/asm/non_matching/eu/Manager7_Main.inc b/asm/non_matching/eu/Manager7_Main.inc index 83617e4d..4f31a4cf 100644 --- a/asm/non_matching/eu/Manager7_Main.inc +++ b/asm/non_matching/eu/Manager7_Main.inc @@ -15,7 +15,7 @@ ldr r1, _0805791C @ =sub_080582F8 adds r0, r4, #0 movs r2, #0 - bl sub_08052D74 + bl RegisterTransitionManager _080578C4: ldr r0, _08057920 @ =gRoomControls ldrh r5, [r0] diff --git a/asm/non_matching/eu/sub_08057A18.inc b/asm/non_matching/eu/sub_08057A18.inc index 3ea092df..3787ba7e 100644 --- a/asm/non_matching/eu/sub_08057A18.inc +++ b/asm/non_matching/eu/sub_08057A18.inc @@ -4,7 +4,7 @@ push {r6} mov r8, r0 adds r4, r1, #0 - bl sub_0805E5A8 + bl SetInitializationPriority ldr r5, _080575E8 @ =gUnk_03004030 ldrb r0, [r5, #9] strb r0, [r5, #0xa] diff --git a/asm/non_matching/game/sub_08052418.inc b/asm/non_matching/game/sub_08052418.inc deleted file mode 100644 index bd30db21..00000000 --- a/asm/non_matching/game/sub_08052418.inc +++ /dev/null @@ -1,66 +0,0 @@ - .syntax unified - push {r4, r5, r6, lr} - sub sp, #0x18 - adds r6, r0, #0 - adds r4, r1, #0 - ldr r0, _08052494 @ =gBG1Buffer - movs r1, #0x80 - lsls r1, r1, #4 - bl MemClear - ldr r0, _08052498 @ =gUnk_020227E8 - movs r1, #0xf - str r1, [r0] - str r1, [r0, #8] - str r1, [r0, #0x10] - str r1, [r0, #0x18] - lsls r4, r4, #3 - adds r0, #1 - adds r4, r4, r0 - movs r5, #1 - strb r5, [r4] - ldr r4, _0805249C @ =gUnk_080FCA8C - adds r0, r4, #0 - mov r1, sp - movs r2, #0x18 - bl MemCopy - lsls r2, r6, #1 - adds r2, r2, r6 - lsls r2, r2, #2 - ldr r0, _080524A0 @ =gUnk_080FCAA4 - adds r2, r2, r0 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r1, [r0, #7] - adds r1, r2, r1 - ldrb r0, [r2, #8] - lsls r0, r0, #5 - ldrb r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, [r4] - adds r1, r1, r0 - str r1, [sp] - mov r4, sp - ldrb r0, [r2, #9] - adds r1, r5, #0 - ands r1, r0 - ldrb r3, [r4, #0x13] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x13] - ldrh r0, [r2, #0xa] - mov r1, sp - bl sub_0805F46C - ldr r0, _080524A4 @ =gScreen - strh r5, [r0, #0x1a] - add sp, #0x18 - pop {r4, r5, r6, pc} - .align 2, 0 -_08052494: .4byte gBG1Buffer -_08052498: .4byte gUnk_020227E8 -_0805249C: .4byte gUnk_080FCA8C -_080524A0: .4byte gUnk_080FCAA4 -_080524A4: .4byte gScreen - .syntax divided diff --git a/asm/non_matching/manager1/sub_08057450.inc b/asm/non_matching/manager1/sub_08057450.inc index c1608a37..62143543 100644 --- a/asm/non_matching/manager1/sub_08057450.inc +++ b/asm/non_matching/manager1/sub_08057450.inc @@ -76,11 +76,11 @@ _080574DC: adds r0, r5, #0 adds r0, #0x87 ldrh r1, [r4] - bl sub_0801D79C + bl SetColor adds r0, r5, #0 adds r0, #0x8c ldrh r1, [r4, #0xa] - bl sub_0801D79C + bl SetColor adds r4, #2 adds r5, #1 cmp r5, #3 diff --git a/asm/non_matching/manager16/Manager16_Main.inc b/asm/non_matching/manager16/Manager16_Main.inc index 8c424e8d..0e8bf5a5 100644 --- a/asm/non_matching/manager16/Manager16_Main.inc +++ b/asm/non_matching/manager16/Manager16_Main.inc @@ -25,7 +25,7 @@ _0805AB68: strb r0, [r1] adds r0, r6, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority ldr r2, _0805ABF4 @ =gUnk_02031EC0 ldrb r0, [r6, #0xb] mov r3, r8 diff --git a/asm/non_matching/manager22/Manager22_Main.inc b/asm/non_matching/manager22/Manager22_Main.inc index 42e1a86e..2c07a5d9 100644 --- a/asm/non_matching/manager22/Manager22_Main.inc +++ b/asm/non_matching/manager22/Manager22_Main.inc @@ -27,7 +27,7 @@ _0805B90A: str r2, [r5, #0x20] adds r0, r5, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority bl sub_0801E120 ldrb r0, [r5, #0xe] bl sub_0801E154 diff --git a/asm/non_matching/mountainMinish/sub_08067EF0.inc b/asm/non_matching/mountainMinish/sub_08067EF0.inc index a1953289..6dc123ef 100644 --- a/asm/non_matching/mountainMinish/sub_08067EF0.inc +++ b/asm/non_matching/mountainMinish/sub_08067EF0.inc @@ -40,7 +40,7 @@ _08067F1E: strb r4, [r0] adds r0, r5, #0 movs r1, #2 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r5, #0 bl sub_0807DD50 ldr r1, _08067F54 @ =gUnk_08111304 diff --git a/asm/non_matching/ocarina/OcarinaUpdate.inc b/asm/non_matching/ocarina/OcarinaUpdate.inc index 6e203081..ffd951df 100644 --- a/asm/non_matching/ocarina/OcarinaUpdate.inc +++ b/asm/non_matching/ocarina/OcarinaUpdate.inc @@ -24,7 +24,7 @@ ldr r1, _08076C7C @ =gUnk_02034490 strb r4, [r1] bl CreateBird - bl UnfreezeTime + bl ResetPlayerEventPriority adds r0, r5, #0 adds r1, r6, #0 bl sub_08077E78 diff --git a/asm/non_matching/sub_unk3_HyruleTown_0.inc b/asm/non_matching/sub_unk3_HyruleTown_0.inc index 508dae20..b2cdc19e 100644 --- a/asm/non_matching/sub_unk3_HyruleTown_0.inc +++ b/asm/non_matching/sub_unk3_HyruleTown_0.inc @@ -1,6 +1,6 @@ .syntax unified push {r4, r5, r6, lr} - bl sub_080530C8 + bl UpdateGlobalProgress movs r0, #0xb bl CheckKinstoneFused cmp r0, #0 diff --git a/asm/object1E.s b/asm/object1E.s index 5191f789..0bb09357 100644 --- a/asm/object1E.s +++ b/asm/object1E.s @@ -125,7 +125,7 @@ _080875CE: _080875DC: adds r0, r4, #0 movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority ldrb r1, [r4, #0xb] lsls r1, r1, #2 ldrb r0, [r4, #0x14] diff --git a/asm/object28.s b/asm/object28.s index f011a04e..8845a4f6 100644 --- a/asm/object28.s +++ b/asm/object28.s @@ -59,7 +59,7 @@ _080897BA: strh r0, [r1] adds r0, r4, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority _080897D0: ldrb r1, [r4, #0x10] movs r0, #0x10 diff --git a/asm/object30.s b/asm/object30.s index c89903a3..084b0cfc 100644 --- a/asm/object30.s +++ b/asm/object30.s @@ -198,7 +198,7 @@ sub_0808A968: @ 0x0808A968 str r0, [r4, #0x48] adds r0, r4, #0 movs r1, #2 - bl sub_0805E3A0 + bl SetDefaultPriority movs r0, #0xa0 lsls r0, r0, #6 str r0, [r4, #0x70] diff --git a/asm/object3E.s b/asm/object3E.s index ee4b5d42..031a6fdf 100644 --- a/asm/object3E.s +++ b/asm/object3E.s @@ -295,7 +295,7 @@ sub_0808D2CC: @ 0x0808D2CC strb r0, [r1, #0xa] adds r0, r1, #0 movs r1, #2 - bl sub_0805E3A0 + bl SetDefaultPriority _0808D2F2: add sp, #4 pop {pc} diff --git a/asm/object6A.s b/asm/object6A.s index 4004db87..6ce1e494 100644 --- a/asm/object6A.s +++ b/asm/object6A.s @@ -283,7 +283,7 @@ _08094C44: strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 - bl sub_0805E3A0 + bl SetDefaultPriority ldr r1, _08094C84 @ =gUnk_08114F30 ldrb r0, [r5, #0x19] lsrs r0, r0, #6 @@ -333,7 +333,7 @@ _08094CA0: strb r0, [r5, #0x18] adds r0, r5, #0 movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority ldrb r0, [r5, #0xb] cmp r0, #0x43 bgt _08094CCC @@ -478,7 +478,7 @@ _08094DAC: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r4, #0 movs r1, #0 bl InitAnimationForceUpdate @@ -603,7 +603,7 @@ _08094EA6: str r1, [r4, #0x20] adds r0, r4, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r4, #0 movs r1, #0 bl InitializeAnimation @@ -863,7 +863,7 @@ _08094FF0: movs r1, #0x36 strb r1, [r0] movs r0, #2 - bl sub_08078A90 + bl SetPlayerControl b _08095086 .align 2, 0 _08095020: .4byte gPlayerState @@ -913,7 +913,7 @@ _08095070: movs r0, #5 strb r0, [r4, #0xc] movs r0, #1 - bl sub_08078A90 + bl SetPlayerControl _08095086: pop {r4, pc} .endif @@ -1005,7 +1005,7 @@ sub_08095120: @ 0x08095120 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r4, #0 adds r1, r4, #0 bl sub_0806FAD8 @@ -1056,7 +1056,7 @@ sub_08095188: @ 0x08095188 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r4, #0 adds r1, r4, #0 bl sub_0806FAD8 @@ -1182,7 +1182,7 @@ sub_08095288: @ 0x08095288 strb r1, [r4, #0xd] adds r0, r4, #0 movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r4, #0 movs r1, #0 bl InitAnimationForceUpdate @@ -1326,7 +1326,7 @@ sub_080953A4: @ 0x080953A4 strh r0, [r4, #0x36] adds r0, r4, #0 movs r1, #2 - bl sub_0805E3A0 + bl SetDefaultPriority ldr r1, _08095418 @ =gUnk_08114F30 ldrb r2, [r4, #0x19] lsrs r0, r2, #6 @@ -2025,7 +2025,7 @@ sub_08095918: @ 0x08095918 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 @@ -2116,7 +2116,7 @@ sub_080959CC: @ 0x080959CC strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r4, #0 bl sub_0807DD64 _080959F2: @@ -2533,7 +2533,7 @@ sub_08095CE0: @ 0x08095CE0 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r4, #0 bl sub_0807DD64 _08095D06: @@ -2956,14 +2956,14 @@ sub_08096028: @ 0x08096028 lsls r5, r5, #2 adds r0, r5, #0 movs r1, #0x7b - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank cmp r0, #0 bne _0809603E movs r4, #4 _0809603E: adds r0, r5, #0 movs r1, #0x7a - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank cmp r0, #0 bne _0809604C movs r4, #3 diff --git a/asm/object74.s b/asm/object74.s index cc2ea1f6..8f81ac3b 100644 --- a/asm/object74.s +++ b/asm/object74.s @@ -75,13 +75,13 @@ sub_08097BDC: @ 0x08097BDC cmp r0, #0 beq _08097C10 movs r0, #1 - bl sub_08078A90 + bl SetPlayerControl ldr r0, _08097C14 @ =gUnk_02034490 movs r1, #1 strb r1, [r0] adds r0, r4, #0 movs r1, #0x1e - bl sub_0805E4E0 + bl RequestPriorityDuration adds r0, r4, #0 bl sub_08097CB0 cmp r0, #0 @@ -108,7 +108,7 @@ sub_08097C20: @ 0x08097C20 push {r4, r5, r6, lr} adds r4, r0, #0 movs r0, #0x1e - bl sub_0805E510 + bl SetPriorityTimer adds r0, r4, #0 bl sub_0800445C movs r1, #0x2e @@ -146,7 +146,7 @@ sub_08097C20: @ 0x08097C20 cmp r0, #0x10 bne _08097CA6 movs r0, #0 - bl sub_08078A90 + bl SetPlayerControl ldr r1, _08097CAC @ =gUnk_02034490 movs r0, #0 strb r0, [r1] diff --git a/asm/object79.s b/asm/object79.s index c25f887a..579a16d0 100644 --- a/asm/object79.s +++ b/asm/object79.s @@ -62,7 +62,7 @@ sub_08097FB4: @ 0x08097FB4 str r0, [r4, #0x74] adds r0, r4, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority ldrb r0, [r4, #0xa] cmp r0, #0 bne _08098018 diff --git a/asm/object8B.s b/asm/object8B.s index a02afe6b..0a6e701a 100644 --- a/asm/object8B.s +++ b/asm/object8B.s @@ -165,7 +165,7 @@ sub_0809B050: @ 0x0809B050 adds r0, #0x80 strh r1, [r0] movs r0, #0 - bl sub_08078A90 + bl SetPlayerControl adds r0, r4, #0 bl sub_0809B0B0 movs r0, #0x86 diff --git a/asm/object8E.s b/asm/object8E.s index ff4bb033..94969da8 100644 --- a/asm/object8E.s +++ b/asm/object8E.s @@ -25,7 +25,7 @@ sub_0809B858: @ 0x0809B858 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x1e - bl sub_0805E4E0 + bl RequestPriorityDuration ldrb r3, [r4, #0xc] cmp r3, #1 beq _0809B8CC @@ -206,7 +206,7 @@ sub_0809B9BC: @ 0x0809B9BC push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x1e - bl sub_0805E4E0 + bl RequestPriorityDuration ldrb r0, [r4, #0xc] cmp r0, #1 beq _0809BA34 @@ -344,7 +344,7 @@ sub_0809BAD0: @ 0x0809BAD0 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0xa - bl sub_0805E4E0 + bl RequestPriorityDuration ldrb r0, [r4, #0xc] cmp r0, #4 bls _0809BAE2 @@ -545,7 +545,7 @@ sub_0809BC70: @ 0x0809BC70 push {r4, r5, r6, lr} adds r4, r0, #0 movs r1, #0x1e - bl sub_0805E4E0 + bl RequestPriorityDuration ldrb r5, [r4, #0xc] cmp r5, #1 beq _0809BCDC @@ -701,7 +701,7 @@ sub_0809BDB0: @ 0x0809BDB0 push {r4, lr} adds r4, r0, #0 movs r1, #0x1e - bl sub_0805E4E0 + bl RequestPriorityDuration ldrb r0, [r4, #0xc] cmp r0, #1 beq _0809BE00 diff --git a/asm/object9.s b/asm/object9.s index 4207e9ec..83e07658 100644 --- a/asm/object9.s +++ b/asm/object9.s @@ -125,7 +125,7 @@ _08083942: strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority pop {r4, pc} .align 2, 0 .ifdef EU diff --git a/asm/object91.s b/asm/object91.s index 6ae9e0b9..9a3ffce8 100644 --- a/asm/object91.s +++ b/asm/object91.s @@ -58,7 +58,7 @@ _0809C410: @ jump table _0809C430: adds r0, r4, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority adds r1, r4, #0 adds r1, #0x7e movs r0, #0 @@ -451,7 +451,7 @@ _0809C738: beq _0809C74A adds r0, r5, #0 movs r1, #0x1e - bl sub_0805E4E0 + bl RequestPriorityDuration _0809C74A: ldr r1, _0809C7A8 @ =gUnk_08123DF8 ldrb r0, [r5, #0xd] diff --git a/asm/object98.s b/asm/object98.s index 18f11555..5732bd0b 100644 --- a/asm/object98.s +++ b/asm/object98.s @@ -69,7 +69,7 @@ _0809E3A6: strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #0 - bl sub_0805E3A0 + bl SetDefaultPriority ldrb r0, [r4, #0xa] cmp r0, #0 beq _0809E3D8 diff --git a/asm/objectA8.s b/asm/objectA8.s index 47032256..52c6a36d 100644 --- a/asm/objectA8.s +++ b/asm/objectA8.s @@ -62,7 +62,7 @@ _0809FAE6: strh r0, [r1] adds r0, r3, #0 movs r1, #3 - bl sub_0805E3A0 + bl SetDefaultPriority movs r0, #0x9b lsls r0, r0, #1 bl EnqueueSFX @@ -277,7 +277,7 @@ _0809FC8A: _0809FCAC: adds r0, r4, #0 bl sub_080AEFB4 - bl sub_0805E40C + bl AnyPrioritySet cmp r0, #0 bne _0809FCF8 ldrb r0, [r4, #0xa] diff --git a/asm/objectAB.s b/asm/objectAB.s index a954dd21..bc40b3a5 100644 --- a/asm/objectAB.s +++ b/asm/objectAB.s @@ -84,7 +84,7 @@ sub_080A0158: @ 0x080A0158 bl sub_080A0190 adds r0, r4, #0 movs r1, #0x1e - bl sub_0805E4E0 + bl RequestPriorityDuration ldr r1, _080A018C @ =gPlayerEntity adds r0, r4, #0 movs r2, #0x10 diff --git a/asm/objectB.s b/asm/objectB.s index cd3200fc..8d19df05 100644 --- a/asm/objectB.s +++ b/asm/objectB.s @@ -57,7 +57,7 @@ sub_08083BE0: @ 0x08083BE0 push {r4, lr} adds r4, r0, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority movs r0, #1 strb r0, [r4, #0xc] pop {r4, pc} diff --git a/asm/objectBA.s b/asm/objectBA.s index 66229321..aaa2d687 100644 --- a/asm/objectBA.s +++ b/asm/objectBA.s @@ -774,7 +774,7 @@ _080A1B80: ldr r0, _080A1C00 @ =gRoomControls str r4, [r0, #0x30] movs r0, #2 - bl sub_08078A90 + bl SetPlayerControl _080A1BD0: ldr r2, _080A1BF8 @ =gPlayerState ldr r1, _080A1C00 @ =gRoomControls diff --git a/asm/objectBlockingStairs.s b/asm/objectBlockingStairs.s index 99edc949..590f7e5c 100644 --- a/asm/objectBlockingStairs.s +++ b/asm/objectBlockingStairs.s @@ -182,7 +182,7 @@ _08092FF2: strb r0, [r6, #0xe] adds r0, r6, #0 movs r1, #0x50 - bl sub_0805E4E0 + bl RequestPriorityDuration ldr r0, _0809303C @ =0x0000010F bl EnqueueSFX adds r0, r6, #0 @@ -554,7 +554,7 @@ sub_080932D8: @ 0x080932D8 adds r4, r0, r1 ldr r0, [r4] ldrh r1, [r4, #4] - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank cmp r0, #0 beq _080932F4 movs r0, #1 @@ -564,7 +564,7 @@ _080932F0: .4byte gUnk_08122898 _080932F4: ldr r0, [r4] ldrh r1, [r4, #6] - bl CheckLocalFlagByOffset + bl CheckLocalFlagByBank cmp r0, #0 bne _08093304 movs r0, #0 @@ -585,7 +585,7 @@ sub_08093308: @ 0x08093308 bne _08093324 ldr r0, [r1] ldrh r1, [r1, #4] - bl SetLocalFlagByOffset + bl SetLocalFlagByBank b _08093330 .align 2, 0 _08093320: .4byte gUnk_08122898 @@ -594,7 +594,7 @@ _08093324: bne _08093330 ldr r0, [r1] ldrh r1, [r1, #6] - bl SetLocalFlagByOffset + bl SetLocalFlagByBank _08093330: pop {pc} .align 2, 0 diff --git a/asm/objectC1.s b/asm/objectC1.s index 88bd02ef..d66a016b 100644 --- a/asm/objectC1.s +++ b/asm/objectC1.s @@ -31,7 +31,7 @@ sub_080A2578: @ 0x080A2578 thumb_func_start sub_080A2584 sub_080A2584: @ 0x080A2584 push {lr} - bl UnfreezeTime + bl ResetPlayerEventPriority ldr r1, _080A2598 @ =gUnk_02034490 movs r0, #0 strb r0, [r1] @@ -132,7 +132,7 @@ _080A25E6: strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority ldr r0, _080A2670 @ =gPlayerState ldr r0, [r0, #0x30] movs r1, #8 diff --git a/asm/pushableFurniture.s b/asm/pushableFurniture.s index 2e0e74d0..263df8cd 100644 --- a/asm/pushableFurniture.s +++ b/asm/pushableFurniture.s @@ -310,7 +310,7 @@ sub_0808FB68: @ 0x0808FB68 orrs r0, r1 strb r0, [r4, #0x15] movs r0, #1 - bl sub_08078A90 + bl SetPlayerControl adds r0, r4, #0 movs r1, #0 bl sub_0808FD44 @@ -343,7 +343,7 @@ _0808FBB0: orrs r0, r1 strb r0, [r4, #0x15] movs r0, #1 - bl sub_08078A90 + bl SetPlayerControl adds r0, r4, #0 movs r1, #1 bl sub_0808FD44 @@ -378,7 +378,7 @@ sub_0808FBFC: @ 0x0808FBFC lsls r0, r0, #3 strb r0, [r4, #0x15] movs r0, #1 - bl sub_08078A90 + bl SetPlayerControl adds r0, r4, #0 movs r1, #0 bl sub_0808FD44 @@ -399,7 +399,7 @@ sub_0808FC3C: @ 0x0808FC3C movs r0, #1 strb r0, [r4, #0xc] movs r0, #0 - bl sub_08078A90 + bl SetPlayerControl _0808FC58: pop {r4, pc} .align 2, 0 diff --git a/asm/pushableGrave.s b/asm/pushableGrave.s index 780b29c7..8cf7c13b 100644 --- a/asm/pushableGrave.s +++ b/asm/pushableGrave.s @@ -218,7 +218,7 @@ sub_08097730: @ 0x08097730 beq _08097744 ldrb r1, [r4, #0xe] adds r0, r4, #0 - bl sub_0805E4E0 + bl RequestPriorityDuration _08097744: pop {r4, pc} .align 2, 0 @@ -262,7 +262,7 @@ _08097774: strb r0, [r2, #0xf] adds r0, r2, #0 movs r1, #0x60 - bl sub_0805E4E0 + bl RequestPriorityDuration ldr r0, _0809779C @ =0x0000010F bl SoundReq _0809779A: diff --git a/asm/pushableLever.s b/asm/pushableLever.s index cb21b55c..a3c4e401 100644 --- a/asm/pushableLever.s +++ b/asm/pushableLever.s @@ -65,7 +65,7 @@ sub_08098294: @ 0x08098294 bl EnqueueSFX adds r0, r4, #0 movs r1, #0x1e - bl sub_0805E4E0 + bl RequestPriorityDuration bl sub_08079F8C cmp r0, #0 beq _080982FA diff --git a/asm/specialFx.s b/asm/specialFx.s index 383cd385..76ae6dfc 100644 --- a/asm/specialFx.s +++ b/asm/specialFx.s @@ -39,7 +39,7 @@ sub_080844E0: @ 0x080844E0 strb r0, [r5, #0x18] adds r0, r5, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] diff --git a/asm/sub_080A276C.s b/asm/sub_080A276C.s index 00794d7b..3ba2ceab 100644 --- a/asm/sub_080A276C.s +++ b/asm/sub_080A276C.s @@ -37,7 +37,7 @@ sub_080A276C: @ 0x080A276C adds r0, r4, #0 adds r1, r6, #0 bl CopyPosition - ldr r0, _080A282C @ =gUnk_03003DC0 + ldr r0, _080A282C @ =gPriorityHandler mov r1, r8 strb r1, [r0] ldr r1, _080A2830 @ =gUnk_02034490 @@ -101,6 +101,6 @@ _080A2820: pop {r4, r5, r6, r7, pc} .align 2, 0 _080A2828: .4byte gPlayerEntity -_080A282C: .4byte gUnk_03003DC0 +_080A282C: .4byte gPriorityHandler _080A2830: .4byte gUnk_02034490 _080A2834: .4byte gPlayerState diff --git a/asm/windTribeTeleporter.s b/asm/windTribeTeleporter.s index e1919f76..15a1b7a2 100644 --- a/asm/windTribeTeleporter.s +++ b/asm/windTribeTeleporter.s @@ -44,7 +44,7 @@ sub_080A0F44: @ 0x080A0F44 str r0, [r5, #0x48] adds r0, r5, #0 movs r1, #6 - bl sub_0805E3A0 + bl SetDefaultPriority adds r0, r5, #0 bl sub_080A11C0 cmp r0, #0 @@ -56,9 +56,9 @@ sub_080A0F44: @ 0x080A0F44 ldrh r0, [r5, #0x32] strh r0, [r1, #0x32] movs r0, #3 - bl sub_08078A90 + bl SetPlayerControl bl sub_08078B48 - bl FreezeTime + bl SetPlayerEventPriority movs r0, #0x89 lsls r0, r0, #1 bl SoundReq @@ -94,9 +94,9 @@ sub_080A0FB0: @ 0x080A0FB0 ldrh r0, [r5, #0x32] strh r0, [r1, #0x32] movs r0, #3 - bl sub_08078A90 + bl SetPlayerControl bl sub_08078B48 - bl FreezeTime + bl SetPlayerEventPriority movs r0, #0x89 lsls r0, r0, #1 bl SoundReq @@ -693,7 +693,7 @@ _080A11A8: ldr r0, _080A11BC @ =gPlayerState adds r0, #0x8b strb r1, [r0] - bl UnfreezeTime + bl ResetPlayerEventPriority _080A11BA: pop {r4, pc} .align 2, 0 diff --git a/assets/assets.json b/assets/assets.json index 6320d5ab..3363aa4e 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -31160,21 +31160,6 @@ "start": 1034916, "size": 36 }, - { - "path": "data_080FC8A4/gUnk_080FCAC8.bin", - "start": 1034952, - "size": 14 - }, - { - "path": "data_080FC8A4/gUnk_080FCAD6.bin", - "start": 1034966, - "size": 34 - }, - { - "path": "data_080FC8A4/gUnk_080FCAF8.bin", - "start": 1035000, - "size": 32 - }, { "path": "data_080FC8A4/gUnk_080FCB38.bin", "start": 1035064, diff --git a/data/data_080FC8A4.s b/data/data_080FC8A4.s index 7832a903..db597a8d 100644 --- a/data/data_080FC8A4.s +++ b/data/data_080FC8A4.s @@ -102,1255 +102,3 @@ gUnk_080FCA8C:: @ 080FCA8C gUnk_080FCAA4:: @ 080FCAA4 .incbin "data_080FC8A4/gUnk_080FCAA4.bin" - -gUnk_080FCAC8:: @ 080FCAC8 - .incbin "data_080FC8A4/gUnk_080FCAC8.bin" - -gUnk_080FCAD6:: @ 080FCAD6 - .incbin "data_080FC8A4/gUnk_080FCAD6.bin" - -gUnk_080FCAF8:: @ 080FCAF8 - .incbin "data_080FC8A4/gUnk_080FCAF8.bin" - -gUnk_080FCB18:: @ 080FCB18 - .4byte sub_08053434 - .4byte nullsub_480 - .4byte sub_080534E4 - .4byte nullsub_480 - .4byte nullsub_480 - .4byte nullsub_480 - .4byte nullsub_480 - .4byte nullsub_480 - -gUnk_080FCB38:: @ 080FCB38 - .incbin "data_080FC8A4/gUnk_080FCB38.bin" - -gUnk_080FCB62:: @ 080FCB62 -.ifdef JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FCB62_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FCB62_1_DEMO_JP.bin" -.else -.ifdef EU - .incbin "data_080FC8A4/gUnk_080FCB62_2_EU.bin" -.else - .incbin "data_080FC8A4/gUnk_080FCB62_3_USA-DEMO_USA.bin" -.endif -.endif -.endif - -gUnk_080FCB94:: @ 080FCB94 - .incbin "data_080FC8A4/gUnk_080FCB94.bin" - -gUnk_080FCBB4:: @ 080FCBB4 - .4byte sub_080535AC - .4byte sub_080535F4 - .4byte nullsub_481 - .4byte sub_08053618 - -gUnk_080FCBC4:: @ 080FCBC4 - .incbin "data_080FC8A4/gUnk_080FCBC4.bin" - .4byte script_08009A50 - .incbin "data_080FC8A4/gUnk_080FCBC4_1.bin" - .4byte script_08009A84 - .incbin "data_080FC8A4/gUnk_080FCBC4_2.bin" - .4byte script_08009AF8 - .incbin "data_080FC8A4/gUnk_080FCBC4_3.bin" - .4byte script_08009A34 - .incbin "data_080FC8A4/gUnk_080FCBC4_4.bin" - -gUnk_080FCC14:: @ 080FCC14 - .incbin "data_080FC8A4/gUnk_080FCC14.bin" - .4byte script_08009918 - .incbin "data_080FC8A4/gUnk_080FCC14_1.bin" - .4byte script_08009950 - .incbin "data_080FC8A4/gUnk_080FCC14_2.bin" - .4byte script_080099DC - .incbin "data_080FC8A4/gUnk_080FCC14_3.bin" - -gUnk_080FCC54:: @ 080FCC54 - .incbin "data_080FC8A4/gUnk_080FCC54.bin" - .4byte script_08009D6C - .incbin "data_080FC8A4/gUnk_080FCC54_1.bin" - -gUnk_080FCC84:: @ 080FCC84 - .incbin "data_080FC8A4/gUnk_080FCC84.bin" - -gUnk_080FCC9C:: @ 080FCC9C - .incbin "data_080FC8A4/gUnk_080FCC9C.bin" - -gUnk_080FCCB4:: @ 080FCCB4 - .4byte gUnk_080FCC84 - .incbin "data_080FC8A4/gUnk_080FCCB4.bin" - .4byte gUnk_080FCC84 - .incbin "data_080FC8A4/gUnk_080FCCB4_1.bin" - .4byte gUnk_080FCC9C - .incbin "data_080FC8A4/gUnk_080FCCB4_2.bin" - .4byte gUnk_080FCC9C - .incbin "data_080FC8A4/gUnk_080FCCB4_3.bin" - .4byte gUnk_080FCC84 - .incbin "data_080FC8A4/gUnk_080FCCB4_4.bin" - .4byte gUnk_080FCC84 - .incbin "data_080FC8A4/gUnk_080FCCB4_5.bin" - -gUnk_080FCCFC:: @ 080FCCFC - .4byte sub_08053758 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053904 - .4byte sub_08053974 - .4byte nullsub_482 - .4byte sub_080539BC - .4byte nullsub_482 - -gUnk_080FCD38:: @ 080FCD38 - .4byte sub_0805370C - .4byte nullsub_482 - -gUnk_080FCD40:: @ 080FCD40 - .4byte sub_08053758 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_08053800 - .4byte sub_08053894 - .4byte sub_080539F4 - .4byte sub_08053A1C - .4byte sub_08053A5C - .4byte sub_08053A90 - -gUnk_080FCD84:: @ 080FCD84 - .incbin "data_080FC8A4/gUnk_080FCD84.bin" - .4byte script_080153EC - .incbin "data_080FC8A4/gUnk_080FCD84_1.bin" - .4byte script_0801550C - .incbin "data_080FC8A4/gUnk_080FCD84_2.bin" - .4byte script_08015618 - .incbin "data_080FC8A4/gUnk_080FCD84_3.bin" - .4byte script_08015684 - .incbin "data_080FC8A4/gUnk_080FCD84_4.bin" - -gUnk_080FCDD4:: @ 080FCDD4 - .4byte sub_08053ACC - .4byte sub_08053B00 - .4byte sub_08053B10 - -gUnk_080FCDE0:: @ 080FCDE0 - .incbin "data_080FC8A4/gUnk_080FCDE0.bin" - .4byte script_08015CD4 - .incbin "data_080FC8A4/gUnk_080FCDE0_1.bin" - .4byte script_08015DF0 - .incbin "data_080FC8A4/gUnk_080FCDE0_2.bin" - .4byte script_08015E58 - .incbin "data_080FC8A4/gUnk_080FCDE0_3.bin" - .4byte script_08015FA4 - .incbin "data_080FC8A4/gUnk_080FCDE0_4.bin" - -gUnk_080FCE30:: @ 080FCE30 - .incbin "data_080FC8A4/gUnk_080FCE30.bin" - .4byte script_08015F08 - .incbin "data_080FC8A4/gUnk_080FCE30_1.bin" - .4byte script_08015F3C - .incbin "data_080FC8A4/gUnk_080FCE30_2.bin" - .4byte script_08015F3C - .incbin "data_080FC8A4/gUnk_080FCE30_3.bin" - .4byte script_08015F3C - .incbin "data_080FC8A4/gUnk_080FCE30_4.bin" - .4byte script_08015F3C - .incbin "data_080FC8A4/gUnk_080FCE30_5.bin" - .4byte script_08015F3C - .incbin "data_080FC8A4/gUnk_080FCE30_6.bin" - .4byte script_08015F3C - .incbin "data_080FC8A4/gUnk_080FCE30_7.bin" - -gUnk_080FCEB0:: @ 080FCEB0 - .4byte sub_08053B74 - .4byte sub_08053BAC - .4byte sub_08053BBC - -gUnk_080FCEBC:: @ 080FCEBC - .incbin "data_080FC8A4/gUnk_080FCEBC.bin" - .4byte script_0800DB18 - .incbin "data_080FC8A4/gUnk_080FCEBC_1.bin" - .4byte script_0800E58C - .incbin "data_080FC8A4/gUnk_080FCEBC_2.bin" - -gUnk_080FCEEC:: @ 080FCEEC - .4byte sub_08053C20 - .4byte nullsub_483 - .4byte sub_08053C60 - -gUnk_080FCEF8:: @ 080FCEF8 - .4byte sub_08053CAC - .4byte sub_08053CAC - .4byte sub_08053E58 - -gUnk_080FCF04:: @ 080FCF04 - .4byte gUnk_080FCF24 - .4byte 0x00001c58 - .4byte gUnk_080FCF44 - .4byte 0x00002058 - .4byte gUnk_080FCF64 - .4byte 0x00001d58 - .4byte gUnk_080FCF84 - .4byte 0x00002258 - -gUnk_080FCF24:: @ 080FCF24 - .incbin "data_080FC8A4/gUnk_080FCF24.bin" - -gUnk_080FCF44:: @ 080FCF44 - .incbin "data_080FC8A4/gUnk_080FCF44.bin" - -gUnk_080FCF64:: @ 080FCF64 - .incbin "data_080FC8A4/gUnk_080FCF64.bin" - -gUnk_080FCF84:: @ 080FCF84 - .incbin "data_080FC8A4/gUnk_080FCF84.bin" - -gUnk_080FCFA4:: @ 080FCFA4 - .4byte sub_08053CC8 - .4byte sub_08053D34 - .4byte sub_08053D90 - .4byte sub_08053DB4 - .4byte sub_08053E30 - -gUnk_080FCFB8:: @ 080FCFB8 - .4byte gUnk_080FCFE8 - .4byte gUnk_080FD008 - .4byte 0x10100e88 - .4byte gUnk_080FD028 - .4byte gUnk_080FD048 - .4byte 0x10101088 - .4byte gUnk_080FD078 - .4byte gUnk_080FD098 - .4byte 0x10101388 - .4byte gUnk_080FD0C8 - .4byte gUnk_080FD0E8 - .4byte 0x10101588 - -gUnk_080FCFE8:: @ 080FCFE8 - .incbin "data_080FC8A4/gUnk_080FCFE8.bin" - -gUnk_080FD008:: @ 080FD008 - .incbin "data_080FC8A4/gUnk_080FD008.bin" - -gUnk_080FD028:: @ 080FD028 - .incbin "data_080FC8A4/gUnk_080FD028.bin" - -gUnk_080FD048:: @ 080FD048 - .incbin "data_080FC8A4/gUnk_080FD048.bin" - -gUnk_080FD078:: @ 080FD078 - .incbin "data_080FC8A4/gUnk_080FD078.bin" - -gUnk_080FD098:: @ 080FD098 - .incbin "data_080FC8A4/gUnk_080FD098.bin" - -gUnk_080FD0C8:: @ 080FD0C8 - .incbin "data_080FC8A4/gUnk_080FD0C8.bin" - -gUnk_080FD0E8:: @ 080FD0E8 - .incbin "data_080FC8A4/gUnk_080FD0E8.bin" - -gUnk_080FD108:: @ 080FD108 - .4byte sub_08053E74 - .4byte sub_08053EC4 - .4byte sub_08053EFC - .4byte sub_08053F20 - .4byte sub_08053EC4 - .4byte sub_08053EFC - .4byte sub_08053F20 - .4byte sub_08053EC4 - .4byte sub_08053EFC - .4byte sub_08053F20 - .4byte sub_08053EC4 - .4byte sub_08053F88 - -gUnk_080FD138:: @ 080FD138 - .4byte sub_080536D4 - .4byte sub_08053B58 - .4byte sub_0805373C - .4byte sub_08053AB0 - .4byte sub_080536F0 - .4byte sub_08053C04 - -gHitbox_0:: @ 080FD150 - .incbin "data_080FC8A4/gHitbox_0.bin" - -gHitbox_30:: @ 080FD158 - .incbin "data_080FC8A4/gHitbox_30.bin" - -gHitbox_31:: @ 080FD160 - .incbin "data_080FC8A4/gHitbox_31.bin" - -gHitbox_1:: @ 080FD168 - .incbin "data_080FC8A4/gHitbox_1.bin" - -gHitbox_2:: @ 080FD170 - .incbin "data_080FC8A4/gHitbox_2.bin" - -gUnk_080FD178:: @ 080FD178 - .incbin "data_080FC8A4/gUnk_080FD178.bin" - -gHitbox_3:: @ 080FD180 - .incbin "data_080FC8A4/gHitbox_3.bin" - -gHitbox_4:: @ 080FD188 - .incbin "data_080FC8A4/gHitbox_4.bin" - -gUnk_080FD190:: @ 080FD190 - .incbin "data_080FC8A4/gUnk_080FD190.bin" - -gHitbox_5:: @ 080FD198 - .incbin "data_080FC8A4/gHitbox_5.bin" - -gHitbox_6:: @ 080FD1A0 - .incbin "data_080FC8A4/gHitbox_6.bin" - -gUnk_080FD1A8:: @ 080FD1A8 - .incbin "data_080FC8A4/gUnk_080FD1A8.bin" - -gUnk_080FD1B4:: @ 080FD1B4 - .incbin "data_080FC8A4/gUnk_080FD1B4.bin" - -gHitbox_7:: @ 080FD1C4 - .incbin "data_080FC8A4/gHitbox_7.bin" - -gHitbox_8:: @ 080FD1CC - .incbin "data_080FC8A4/gHitbox_8.bin" - -gUnk_080FD1D4:: @ 080FD1D4 - .incbin "data_080FC8A4/gUnk_080FD1D4.bin" - -gUnk_080FD1DC:: @ 080FD1DC - .incbin "data_080FC8A4/gUnk_080FD1DC.bin" - -gUnk_080FD1E4:: @ 080FD1E4 - .incbin "data_080FC8A4/gUnk_080FD1E4.bin" - -gUnk_080FD1EC:: @ 080FD1EC - .incbin "data_080FC8A4/gUnk_080FD1EC.bin" - -gUnk_080FD1F4:: @ 080FD1F4 - .incbin "data_080FC8A4/gUnk_080FD1F4.bin" - -gUnk_080FD1FC:: @ 080FD1FC - .incbin "data_080FC8A4/gUnk_080FD1FC.bin" - -gUnk_080FD204:: @ 080FD204 - .incbin "data_080FC8A4/gUnk_080FD204.bin" - -gUnk_080FD20C:: @ 080FD20C - .incbin "data_080FC8A4/gUnk_080FD20C.bin" - -gUnk_080FD214:: @ 080FD214 - .incbin "data_080FC8A4/gUnk_080FD214.bin" - -gUnk_080FD21C:: @ 080FD21C - .incbin "data_080FC8A4/gUnk_080FD21C.bin" - -gUnk_080FD224:: @ 080FD224 - .incbin "data_080FC8A4/gUnk_080FD224.bin" - -gUnk_080FD22C:: @ 080FD22C - .incbin "data_080FC8A4/gUnk_080FD22C.bin" - -gUnk_080FD238:: @ 080FD238 - .incbin "data_080FC8A4/gUnk_080FD238.bin" - -gUnk_080FD240:: @ 080FD240 - .incbin "data_080FC8A4/gUnk_080FD240.bin" - -gUnk_080FD248:: @ 080FD248 - .incbin "data_080FC8A4/gUnk_080FD248.bin" - -gHitbox_9:: @ 080FD250 - .incbin "data_080FC8A4/gHitbox_9.bin" - -gUnk_080FD258:: @ 080FD258 - .incbin "data_080FC8A4/gUnk_080FD258.bin" - -gUnk_080FD260:: @ 080FD260 - .incbin "data_080FC8A4/gUnk_080FD260.bin" - -gHitbox_10:: @ 080FD268 - .incbin "data_080FC8A4/gHitbox_10.bin" - -gUnk_080FD270:: @ 080FD270 - .incbin "data_080FC8A4/gUnk_080FD270.bin" - -gUnk_080FD278:: @ 080FD278 - .incbin "data_080FC8A4/gUnk_080FD278.bin" - -gUnk_080FD280:: @ 080FD280 - .incbin "data_080FC8A4/gUnk_080FD280.bin" - -gUnk_080FD288:: @ 080FD288 - .incbin "data_080FC8A4/gUnk_080FD288.bin" - -gUnk_080FD290:: @ 080FD290 - .incbin "data_080FC8A4/gUnk_080FD290.bin" - -gUnk_080FD298:: @ 080FD298 - .incbin "data_080FC8A4/gUnk_080FD298.bin" - -gUnk_080FD2A0:: @ 080FD2A0 - .incbin "data_080FC8A4/gUnk_080FD2A0.bin" - -gUnk_080FD2A8:: @ 080FD2A8 - .incbin "data_080FC8A4/gUnk_080FD2A8.bin" - -gHitbox_11:: @ 080FD2B0 - .incbin "data_080FC8A4/gHitbox_11.bin" - -gHitbox_12:: @ 080FD2B8 - .incbin "data_080FC8A4/gHitbox_12.bin" - -gHitbox_13:: @ 080FD2C0 - .incbin "data_080FC8A4/gHitbox_13.bin" - -gHitbox_14:: @ 080FD2C8 - .incbin "data_080FC8A4/gHitbox_14.bin" - -gUnk_080FD2D0:: @ 080FD2D0 - .incbin "data_080FC8A4/gUnk_080FD2D0.bin" - -gUnk_080FD2D8:: @ 080FD2D8 - .incbin "data_080FC8A4/gUnk_080FD2D8.bin" - -gUnk_080FD2E0:: @ 080FD2E0 - .incbin "data_080FC8A4/gUnk_080FD2E0.bin" - -gUnk_080FD2E8:: @ 080FD2E8 - .incbin "data_080FC8A4/gUnk_080FD2E8.bin" - -gUnk_080FD2F0:: @ 080FD2F0 - .incbin "data_080FC8A4/gUnk_080FD2F0.bin" - -gHitbox_15:: @ 080FD2F8 - .incbin "data_080FC8A4/gHitbox_15.bin" - -gHitbox_16:: @ 080FD300 - .incbin "data_080FC8A4/gHitbox_16.bin" - -gUnk_080FD308:: @ 080FD308 - .incbin "data_080FC8A4/gUnk_080FD308.bin" - -gUnk_080FD310:: @ 080FD310 - .incbin "data_080FC8A4/gUnk_080FD310.bin" - -gHitbox_17:: @ 080FD318 - .incbin "data_080FC8A4/gHitbox_17.bin" - -gUnk_080FD320:: @ 080FD320 - .incbin "data_080FC8A4/gUnk_080FD320.bin" - -gUnk_080FD328:: @ 080FD328 - .incbin "data_080FC8A4/gUnk_080FD328.bin" - -gUnk_080FD330:: @ 080FD330 - .incbin "data_080FC8A4/gUnk_080FD330.bin" - -gHitbox_18:: @ 080FD338 - .incbin "data_080FC8A4/gHitbox_18.bin" - -gUnk_080FD340:: @ 080FD340 - .incbin "data_080FC8A4/gUnk_080FD340.bin" - -gUnk_080FD34C:: @ 080FD34C - .incbin "data_080FC8A4/gUnk_080FD34C.bin" - -gUnk_080FD354:: @ 080FD354 - .incbin "data_080FC8A4/gUnk_080FD354.bin" - -gUnk_080FD35C:: @ 080FD35C - .incbin "data_080FC8A4/gUnk_080FD35C.bin" - -gUnk_080FD364:: @ 080FD364 - .incbin "data_080FC8A4/gUnk_080FD364.bin" - -gUnk_080FD36C:: @ 080FD36C - .incbin "data_080FC8A4/gUnk_080FD36C.bin" - -gUnk_080FD374:: @ 080FD374 - .incbin "data_080FC8A4/gUnk_080FD374.bin" - -gUnk_080FD37C:: @ 080FD37C - .incbin "data_080FC8A4/gUnk_080FD37C.bin" - -gUnk_080FD384:: @ 080FD384 - .incbin "data_080FC8A4/gUnk_080FD384.bin" - -gUnk_080FD38C:: @ 080FD38C - .incbin "data_080FC8A4/gUnk_080FD38C.bin" - -gUnk_080FD394:: @ 080FD394 - .incbin "data_080FC8A4/gUnk_080FD394.bin" - -gUnk_080FD39C:: @ 080FD39C - .incbin "data_080FC8A4/gUnk_080FD39C.bin" - -gUnk_080FD3A4:: @ 080FD3A4 - .incbin "data_080FC8A4/gUnk_080FD3A4.bin" - -gUnk_080FD3AC:: @ 080FD3AC - .incbin "data_080FC8A4/gUnk_080FD3AC.bin" - -gUnk_080FD3B4:: @ 080FD3B4 - .incbin "data_080FC8A4/gUnk_080FD3B4.bin" - -gUnk_080FD3BC:: @ 080FD3BC - .incbin "data_080FC8A4/gUnk_080FD3BC.bin" - -gUnk_080FD3C4:: @ 080FD3C4 - .incbin "data_080FC8A4/gUnk_080FD3C4.bin" - -gUnk_080FD3CC:: @ 080FD3CC - .incbin "data_080FC8A4/gUnk_080FD3CC.bin" - -gUnk_080FD3DC:: @ 080FD3DC - .incbin "data_080FC8A4/gUnk_080FD3DC.bin" - -gUnk_080FD3E4:: @ 080FD3E4 - .incbin "data_080FC8A4/gUnk_080FD3E4.bin" - -gUnk_080FD3EC:: @ 080FD3EC - .incbin "data_080FC8A4/gUnk_080FD3EC.bin" - -gUnk_080FD3F4:: @ 080FD3F4 - .incbin "data_080FC8A4/gUnk_080FD3F4.bin" - -gUnk_080FD3FC:: @ 080FD3FC - .incbin "data_080FC8A4/gUnk_080FD3FC.bin" - -gUnk_080FD408:: @ 080FD408 - .incbin "data_080FC8A4/gUnk_080FD408.bin" - -gHitbox_19:: @ 080FD410 - .incbin "data_080FC8A4/gHitbox_19.bin" - -gUnk_080FD41C:: @ 080FD41C - .incbin "data_080FC8A4/gUnk_080FD41C.bin" - -gUnk_080FD424:: @ 080FD424 - .incbin "data_080FC8A4/gUnk_080FD424.bin" - -gUnk_080FD42C:: @ 080FD42C - .incbin "data_080FC8A4/gUnk_080FD42C.bin" - -gUnk_080FD434:: @ 080FD434 - .incbin "data_080FC8A4/gUnk_080FD434.bin" - -gUnk_080FD43C:: @ 080FD43C - .incbin "data_080FC8A4/gUnk_080FD43C.bin" - -gHitbox_20:: @ 080FD448 - .incbin "data_080FC8A4/gHitbox_20.bin" - -gUnk_080FD450:: @ 080FD450 - .incbin "data_080FC8A4/gUnk_080FD450.bin" - -gHitbox_21:: @ 080FD458 - .incbin "data_080FC8A4/gHitbox_21.bin" - -gHitbox_22:: @ 080FD460 - .incbin "data_080FC8A4/gHitbox_22.bin" - -gHitbox_23:: @ 080FD468 - .incbin "data_080FC8A4/gHitbox_23.bin" - -gHitbox_32:: @ 080FD470 - .incbin "data_080FC8A4/gHitbox_32.bin" - -gHitbox_24:: @ 080FD480 - .incbin "data_080FC8A4/gHitbox_24.bin" - -gUnk_080FD488:: @ 080FD488 - .incbin "data_080FC8A4/gUnk_080FD488.bin" - -gUnk_080FD490:: @ 080FD490 - .incbin "data_080FC8A4/gUnk_080FD490.bin" - -gHitbox_25:: @ 080FD498 - .incbin "data_080FC8A4/gHitbox_25.bin" - -gHitbox_26:: @ 080FD4A4 - .incbin "data_080FC8A4/gHitbox_26.bin" - -gUnk_080FD4B8:: @ 080FD4B8 - .incbin "data_080FC8A4/gUnk_080FD4B8.bin" - -gUnk_080FD4C0:: @ 080FD4C0 - .incbin "data_080FC8A4/gUnk_080FD4C0.bin" - -gUnk_080FD4C8:: @ 080FD4C8 - .incbin "data_080FC8A4/gUnk_080FD4C8.bin" - -gUnk_080FD4D0:: @ 080FD4D0 - .incbin "data_080FC8A4/gUnk_080FD4D0.bin" - -gUnk_080FD4D8:: @ 080FD4D8 - .incbin "data_080FC8A4/gUnk_080FD4D8.bin" - -gUnk_080FD4E0:: @ 080FD4E0 - .incbin "data_080FC8A4/gUnk_080FD4E0.bin" - -gUnk_080FD4E8:: @ 080FD4E8 - .incbin "data_080FC8A4/gUnk_080FD4E8.bin" - -gUnk_080FD4F0:: @ 080FD4F0 - .incbin "data_080FC8A4/gUnk_080FD4F0.bin" - -gUnk_080FD4F8:: @ 080FD4F8 - .incbin "data_080FC8A4/gUnk_080FD4F8.bin" - -gUnk_080FD500:: @ 080FD500 - .incbin "data_080FC8A4/gUnk_080FD500.bin" - -gUnk_080FD508:: @ 080FD508 - .incbin "data_080FC8A4/gUnk_080FD508.bin" - -gUnk_080FD510:: @ 080FD510 - .incbin "data_080FC8A4/gUnk_080FD510.bin" - -gUnk_080FD518:: @ 080FD518 - .incbin "data_080FC8A4/gUnk_080FD518.bin" - -gUnk_080FD520:: @ 080FD520 - .incbin "data_080FC8A4/gUnk_080FD520.bin" - -gHitbox_27:: @ 080FD528 - .incbin "data_080FC8A4/gHitbox_27.bin" - -gUnk_080FD530:: @ 080FD530 - .incbin "data_080FC8A4/gUnk_080FD530.bin" - -gUnk_080FD538:: @ 080FD538 - .incbin "data_080FC8A4/gUnk_080FD538.bin" - -gUnk_080FD544:: @ 080FD544 - .incbin "data_080FC8A4/gUnk_080FD544.bin" - -gHitbox_28:: @ 080FD54C - .incbin "data_080FC8A4/gHitbox_28.bin" - -gUnk_080FD558:: @ 080FD558 - .incbin "data_080FC8A4/gUnk_080FD558.bin" - -gUnk_080FD560:: @ 080FD560 - .incbin "data_080FC8A4/gUnk_080FD560.bin" - -gHitbox_29:: @ 080FD568 - .incbin "data_080FC8A4/gHitbox_29.bin" - -gUnk_080FD570:: @ 080FD570 - .incbin "data_080FC8A4/gUnk_080FD570.bin" - -gUnk_080FD578:: @ 080FD578 - .incbin "data_080FC8A4/gUnk_080FD578.bin" - -gUnk_080FD580:: @ 080FD580 - .incbin "data_080FC8A4/gUnk_080FD580.bin" - -gUnk_080FD588:: @ 080FD588 - .incbin "data_080FC8A4/gUnk_080FD588.bin" - -gWalletSizes:: @ 080FD590 - .incbin "data_080FC8A4/gWalletSizes.bin" - -gBombBagSizes:: @ 080FD5A0 - .incbin "data_080FC8A4/gBombBagSizes.bin" - -gQuiverSizes:: @ 080FD5A4 - .incbin "data_080FC8A4/gQuiverSizes.bin" - -gUnk_080FD5A8:: @ 080FD5A8 - .incbin "data_080FC8A4/gUnk_080FD5A8.bin" - -gUnk_080FD5B4:: @ 080FD5B4 - .incbin "data_080FC8A4/gUnk_080FD5B4.bin" - -gUnk_080FD964:: @ 080FD964 -.ifdef EU - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FD964_EU.bin" -.else - .incbin "data_080FC8A4/gUnk_080FD964_1_USA-JP-DEMO_USA-DEMO_JP.bin" -.endif - -gSpriteAnimations_322_0:: @ 080FDD14 - .include "animations/gSpriteAnimations_322_0.s" - -gSpriteAnimations_322_1:: @ 080FDD19 - .include "animations/gSpriteAnimations_322_1.s" - -gSpriteAnimations_322_2:: @ 080FDD1E - .include "animations/gSpriteAnimations_322_2.s" - -gSpriteAnimations_322_3:: @ 080FDD23 - .include "animations/gSpriteAnimations_322_3.s" - -gSpriteAnimations_322_4:: @ 080FDD28 - .include "animations/gSpriteAnimations_322_4.s" - -gSpriteAnimations_322_6:: @ 080FDD2D - .include "animations/gSpriteAnimations_322_6.s" - -gSpriteAnimations_322_7:: @ 080FDD32 - .include "animations/gSpriteAnimations_322_7.s" - -gSpriteAnimations_322_8:: @ 080FDD37 - .include "animations/gSpriteAnimations_322_8.s" - -gSpriteAnimations_322_9:: @ 080FDD48 - .include "animations/gSpriteAnimations_322_9.s" - -gSpriteAnimations_322_10:: @ 080FDD4D - .include "animations/gSpriteAnimations_322_10.s" - -gSpriteAnimations_322_11:: @ 080FDD52 - .include "animations/gSpriteAnimations_322_11.s" - -gSpriteAnimations_322_12:: @ 080FDD57 - .include "animations/gSpriteAnimations_322_12.s" - -gSpriteAnimations_322_13:: @ 080FDD5C - .include "animations/gSpriteAnimations_322_13.s" - -gSpriteAnimations_322_14:: @ 080FDD61 - .include "animations/gSpriteAnimations_322_14.s" - -gSpriteAnimations_322_15:: @ 080FDD92 - .include "animations/gSpriteAnimations_322_15.s" - -gSpriteAnimations_322_5:: @ 080FDD97 - .include "animations/gSpriteAnimations_322_5.s" - -gSpriteAnimations_322_17:: @ 080FDDA8 - .include "animations/gSpriteAnimations_322_17.s" - -gSpriteAnimations_322_18:: @ 080FDDAD - .include "animations/gSpriteAnimations_322_18.s" - -gSpriteAnimations_322_19:: @ 080FDDB2 - .include "animations/gSpriteAnimations_322_19.s" - -gSpriteAnimations_322_20:: @ 080FDDB7 - .include "animations/gSpriteAnimations_322_20.s" - -gSpriteAnimations_322_21:: @ 080FDDBC - .include "animations/gSpriteAnimations_322_21.s" - -gSpriteAnimations_322_22:: @ 080FDDC1 - .include "animations/gSpriteAnimations_322_22.s" - -gSpriteAnimations_322_23:: @ 080FDDC6 - .include "animations/gSpriteAnimations_322_23.s" - -gSpriteAnimations_322_28:: @ 080FDDCB - .include "animations/gSpriteAnimations_322_28.s" - -gSpriteAnimations_322_38:: @ 080FDDD0 - .include "animations/gSpriteAnimations_322_38.s" - -gSpriteAnimations_322_39:: @ 080FDDD5 - .include "animations/gSpriteAnimations_322_39.s" - -gSpriteAnimations_322_34:: @ 080FDDDA - .include "animations/gSpriteAnimations_322_34.s" - -gSpriteAnimations_322_35:: @ 080FDDDF - .include "animations/gSpriteAnimations_322_35.s" - -gSpriteAnimations_322_40:: @ 080FDDE4 - .include "animations/gSpriteAnimations_322_40.s" - -gSpriteAnimations_322_41:: @ 080FDDF5 - .include "animations/gSpriteAnimations_322_41.s" - -gSpriteAnimations_322_42:: @ 080FDE0E - .include "animations/gSpriteAnimations_322_42.s" - -gSpriteAnimations_322_43:: @ 080FDE27 - .include "animations/gSpriteAnimations_322_43.s" - -gSpriteAnimations_322_44:: @ 080FDE40 - .include "animations/gSpriteAnimations_322_44.s" - -gSpriteAnimations_322_45:: @ 080FDE59 - .include "animations/gSpriteAnimations_322_45.s" - -gSpriteAnimations_322_46:: @ 080FDE72 - .include "animations/gSpriteAnimations_322_46.s" - -gSpriteAnimations_322_36:: @ 080FDE8B - .include "animations/gSpriteAnimations_322_36.s" - -gSpriteAnimations_322_37:: @ 080FDE90 - .include "animations/gSpriteAnimations_322_37.s" - -gSpriteAnimations_322_54:: @ 080FDE95 - .include "animations/gSpriteAnimations_322_54.s" - -gSpriteAnimations_322_33:: @ 080FDE9A - .include "animations/gSpriteAnimations_322_33.s" - -gSpriteAnimations_322_47:: @ 080FDE9F - .include "animations/gSpriteAnimations_322_47.s" - -gSpriteAnimations_322_48:: @ 080FDEA4 - .include "animations/gSpriteAnimations_322_48.s" - -gSpriteAnimations_322_49:: @ 080FDEA9 - .include "animations/gSpriteAnimations_322_49.s" - -gSpriteAnimations_322_52:: @ 080FDEAE - .include "animations/gSpriteAnimations_322_52.s" - -gSpriteAnimations_322_53:: @ 080FDEB3 - .include "animations/gSpriteAnimations_322_53.s" - -gSpriteAnimations_322_24:: @ 080FDEB8 - .include "animations/gSpriteAnimations_322_24.s" - -gSpriteAnimations_322_58:: @ 080FDEBD - .include "animations/gSpriteAnimations_322_58.s" - -gSpriteAnimations_322_59:: @ 080FDEC2 - .include "animations/gSpriteAnimations_322_59.s" - -gSpriteAnimations_322_25:: @ 080FDEC7 - .include "animations/gSpriteAnimations_322_25.s" - -gSpriteAnimations_322_60:: @ 080FDECC - .include "animations/gSpriteAnimations_322_60.s" - -gSpriteAnimations_322_55:: @ 080FDED1 - .include "animations/gSpriteAnimations_322_55.s" - -gSpriteAnimations_322_68:: @ 080FDED6 - .include "animations/gSpriteAnimations_322_68.s" - -gSpriteAnimations_322_69:: @ 080FDEDB - .include "animations/gSpriteAnimations_322_69.s" - -gSpriteAnimations_322_26:: @ 080FDEE0 - .include "animations/gSpriteAnimations_322_26.s" - -gSpriteAnimations_322_64:: @ 080FDEE5 - .include "animations/gSpriteAnimations_322_64.s" - -gSpriteAnimations_322_65:: @ 080FDEEA - .include "animations/gSpriteAnimations_322_65.s" - -gSpriteAnimations_322_66:: @ 080FDEEF - .include "animations/gSpriteAnimations_322_66.s" - -gSpriteAnimations_322_67:: @ 080FDEF4 - .include "animations/gSpriteAnimations_322_67.s" - -gSpriteAnimations_322_71:: @ 080FDEF9 - .include "animations/gSpriteAnimations_322_71.s" - -gSpriteAnimations_322_81:: @ 080FDEFE - .include "animations/gSpriteAnimations_322_81.s" - -gSpriteAnimations_322_82:: @ 080FDF03 - .include "animations/gSpriteAnimations_322_82.s" - -gSpriteAnimations_322_83:: @ 080FDF08 - .include "animations/gSpriteAnimations_322_83.s" - -gSpriteAnimations_322_84:: @ 080FDF0D - .include "animations/gSpriteAnimations_322_84.s" - -gSpriteAnimations_322_95:: @ 080FDF12 - .include "animations/gSpriteAnimations_322_95.s" - -gSpriteAnimations_322_96:: @ 080FDF17 - .include "animations/gSpriteAnimations_322_96.s" - -gSpriteAnimations_322_98:: @ 080FDF28 - .include "animations/gSpriteAnimations_322_98.s" - -gSpriteAnimations_322_99:: @ 080FDF45 - .include "animations/gSpriteAnimations_322_99.s" - -gSpriteAnimations_322_87:: @ 080FDF4A - .include "animations/gSpriteAnimations_322_87.s" - -gSpriteAnimations_322_104:: @ 080FDF4F - .include "animations/gSpriteAnimations_322_104.s" - -gSpriteAnimations_322_105:: @ 080FDF54 - .include "animations/gSpriteAnimations_322_105.s" - -gSpriteAnimations_322_106:: @ 080FDF59 - .include "animations/gSpriteAnimations_322_106.s" - -gSpriteAnimations_322_107:: @ 080FDF5E - .include "animations/gSpriteAnimations_322_107.s" - -gSpriteAnimations_322_93:: @ 080FDF63 - .include "animations/gSpriteAnimations_322_93.s" - -gSpriteAnimations_322_94:: @ 080FDF68 - .include "animations/gSpriteAnimations_322_94.s" - -gSpriteAnimations_322_63:: @ 080FDF6D - .include "animations/gSpriteAnimations_322_63.s" - -gSpriteAnimations_322_100:: @ 080FDF72 - .include "animations/gSpriteAnimations_322_100.s" - -gSpriteAnimations_322_101:: @ 080FDF77 - .include "animations/gSpriteAnimations_322_101.s" - -gSpriteAnimations_322_102:: @ 080FDF7C - .include "animations/gSpriteAnimations_322_102.s" - -gSpriteAnimations_322_103:: @ 080FDF81 - .include "animations/gSpriteAnimations_322_103.s" - -gSpriteAnimations_322_91:: @ 080FDF86 - .include "animations/gSpriteAnimations_322_91.s" - -gSpriteAnimations_322_92:: @ 080FDF8F - .include "animations/gSpriteAnimations_322_92.s" - -gSpriteAnimations_322_108:: @ 080FDF94 - .include "animations/gSpriteAnimations_322_108.s" - -gSpriteAnimations_322_109:: @ 080FDF99 - .include "animations/gSpriteAnimations_322_109.s" - -gSpriteAnimations_322_110:: @ 080FDF9E - .include "animations/gSpriteAnimations_322_110.s" - -gSpriteAnimations_322_111:: @ 080FDFA3 - .include "animations/gSpriteAnimations_322_111.s" - -gSpriteAnimations_322_112:: @ 080FDFA8 - .include "animations/gSpriteAnimations_322_112.s" - -gSpriteAnimations_322_72:: @ 080FDFC1 - .include "animations/gSpriteAnimations_322_72.s" - -gSpriteAnimations_322_97:: @ 080FDFC6 - .include "animations/gSpriteAnimations_322_97.s" - -gSpriteAnimations_322_61:: @ 080FDFCB - .include "animations/gSpriteAnimations_322_61.s" - -gSpriteAnimations_322_62:: @ 080FDFD0 - .include "animations/gSpriteAnimations_322_62.s" - -gSpriteAnimations_322:: @ 080FDFD8 - .4byte gSpriteAnimations_322_0 - .4byte gSpriteAnimations_322_1 - .4byte gSpriteAnimations_322_2 - .4byte gSpriteAnimations_322_3 - .4byte gSpriteAnimations_322_4 - .4byte gSpriteAnimations_322_5 - .4byte gSpriteAnimations_322_6 - .4byte gSpriteAnimations_322_7 - .4byte gSpriteAnimations_322_8 - .4byte gSpriteAnimations_322_9 - .4byte gSpriteAnimations_322_10 - .4byte gSpriteAnimations_322_11 - .4byte gSpriteAnimations_322_12 - .4byte gSpriteAnimations_322_13 - .4byte gSpriteAnimations_322_14 - .4byte gSpriteAnimations_322_15 - .4byte gSpriteAnimations_322_5 - .4byte gSpriteAnimations_322_17 - .4byte gSpriteAnimations_322_18 - .4byte gSpriteAnimations_322_19 - .4byte gSpriteAnimations_322_20 - .4byte gSpriteAnimations_322_21 - .4byte gSpriteAnimations_322_22 - .4byte gSpriteAnimations_322_23 - .4byte gSpriteAnimations_322_24 - .4byte gSpriteAnimations_322_25 - .4byte gSpriteAnimations_322_26 - .4byte gSpriteAnimations_322_5 - .4byte gSpriteAnimations_322_28 - .4byte gSpriteAnimations_322_28 - .4byte gSpriteAnimations_322_28 - .4byte gSpriteAnimations_322_28 - .4byte gSpriteAnimations_322_28 - .4byte gSpriteAnimations_322_33 - .4byte gSpriteAnimations_322_34 - .4byte gSpriteAnimations_322_35 - .4byte gSpriteAnimations_322_36 - .4byte gSpriteAnimations_322_37 - .4byte gSpriteAnimations_322_38 - .4byte gSpriteAnimations_322_39 - .4byte gSpriteAnimations_322_40 - .4byte gSpriteAnimations_322_41 - .4byte gSpriteAnimations_322_42 - .4byte gSpriteAnimations_322_43 - .4byte gSpriteAnimations_322_44 - .4byte gSpriteAnimations_322_45 - .4byte gSpriteAnimations_322_46 - .4byte gSpriteAnimations_322_47 - .4byte gSpriteAnimations_322_48 - .4byte gSpriteAnimations_322_49 - .4byte gSpriteAnimations_322_5 - .4byte gSpriteAnimations_322_5 - .4byte gSpriteAnimations_322_52 - .4byte gSpriteAnimations_322_53 - .4byte gSpriteAnimations_322_54 - .4byte gSpriteAnimations_322_55 - .4byte gSpriteAnimations_322_25 - .4byte gSpriteAnimations_322_24 - .4byte gSpriteAnimations_322_58 - .4byte gSpriteAnimations_322_59 - .4byte gSpriteAnimations_322_60 - .4byte gSpriteAnimations_322_61 - .4byte gSpriteAnimations_322_62 - .4byte gSpriteAnimations_322_63 - .4byte gSpriteAnimations_322_64 - .4byte gSpriteAnimations_322_65 - .4byte gSpriteAnimations_322_66 - .4byte gSpriteAnimations_322_67 - .4byte gSpriteAnimations_322_68 - .4byte gSpriteAnimations_322_69 - .4byte gSpriteAnimations_322_26 - .4byte gSpriteAnimations_322_71 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_72 - .4byte gSpriteAnimations_322_71 - .4byte gSpriteAnimations_322_81 - .4byte gSpriteAnimations_322_82 - .4byte gSpriteAnimations_322_83 - .4byte gSpriteAnimations_322_84 - .4byte gSpriteAnimations_322_84 - .4byte gSpriteAnimations_322_84 - .4byte gSpriteAnimations_322_87 - .4byte gSpriteAnimations_322_87 - .4byte gSpriteAnimations_322_87 - .4byte gSpriteAnimations_322_5 - .4byte gSpriteAnimations_322_91 - .4byte gSpriteAnimations_322_92 - .4byte gSpriteAnimations_322_93 - .4byte gSpriteAnimations_322_94 - .4byte gSpriteAnimations_322_95 - .4byte gSpriteAnimations_322_96 - .4byte gSpriteAnimations_322_97 - .4byte gSpriteAnimations_322_98 - .4byte gSpriteAnimations_322_99 - .4byte gSpriteAnimations_322_100 - .4byte gSpriteAnimations_322_101 - .4byte gSpriteAnimations_322_102 - .4byte gSpriteAnimations_322_103 - .4byte gSpriteAnimations_322_104 - .4byte gSpriteAnimations_322_105 - .4byte gSpriteAnimations_322_106 - .4byte gSpriteAnimations_322_107 - .4byte gSpriteAnimations_322_108 - .4byte gSpriteAnimations_322_109 - .4byte gSpriteAnimations_322_110 - .4byte gSpriteAnimations_322_111 - .4byte gSpriteAnimations_322_112 - .4byte gSpriteAnimations_322_112 - .4byte gSpriteAnimations_322_112 - .4byte gSpriteAnimations_322_0 - .4byte gSpriteAnimations_322_0 - .4byte gSpriteAnimations_322_0 - .4byte 00000000 - -gUnk_080FE1B4:: @ 080FE1B4 - .incbin "data_080FC8A4/gUnk_080FE1B4.bin" - -gUnk_080FE1C6:: @ 080FE1C6 - .incbin "data_080FC8A4/gUnk_080FE1C6.bin" - -gUnk_080FE1DD:: @ 080FE1DD - .incbin "data_080FC8A4/gUnk_080FE1DD.bin" - -gUnk_080FE2A0:: @ 080FE2A0 - .4byte sub_0805488C - .4byte sub_080548E8 - .4byte sub_08054920 - -gUnk_080FE2AC:: @ 080FE2AC - .4byte sub_08055D80 - .4byte sub_08054E00 - .4byte sub_080558EC - .4byte sub_08054CE8 - .4byte sub_08054C04 - .4byte sub_08055168 - .4byte sub_080552FC - .4byte sub_08055BB0 - .4byte sub_08055414 - .4byte sub_080559E0 - .4byte sub_0805559C - .4byte sub_080554FC - .4byte sub_08055818 - .4byte sub_08055094 - .4byte sub_080550F8 - .4byte sub_080556F4 - .4byte sub_08055038 - .4byte sub_08054F90 - .4byte sub_08054F90 - .4byte sub_08054D90 - .4byte sub_08055888 - .4byte sub_08055690 - .4byte sub_08055E08 - .4byte sub_080557B4 - .4byte sub_08055CD8 - .4byte sub_08055AD0 - .4byte sub_08055D80 - .4byte sub_08055D80 - .4byte sub_08055D80 - -gUnk_080FE320:: @ 080FE320 -.ifdef JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FE320_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FE320_1_DEMO_JP.bin" -.else -.ifdef EU - .incbin "data_080FC8A4/gUnk_080FE320_2_EU.bin" -.else - .incbin "data_080FC8A4/gUnk_080FE320_3_USA-DEMO_USA.bin" -.endif -.endif -.endif - -.ifdef JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FE320_4_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FE320_5_DEMO_JP.bin" -.else -.ifdef EU - .incbin "data_080FC8A4/gUnk_080FE320_6_EU.bin" -.else - .incbin "data_080FC8A4/gUnk_080FE320_7_USA-DEMO_USA.bin" -.endif -.endif -.endif - -gUnk_080FEAC8:: @ 080FEAC8 - .incbin "data_080FC8A4/gUnk_080FEAC8.bin" -.ifdef JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FEAC8_1_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FEAC8_2_DEMO_JP.bin" -.else -.ifdef EU - .incbin "data_080FC8A4/gUnk_080FEAC8_3_EU.bin" -.else - .incbin "data_080FC8A4/gUnk_080FEAC8_4_USA-DEMO_USA.bin" -.endif -.endif -.endif - -.ifdef JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FEAC8_5_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FEAC8_6_DEMO_JP.bin" -.else -.ifdef EU - .incbin "data_080FC8A4/gUnk_080FEAC8_7_EU.bin" -.else - .incbin "data_080FC8A4/gUnk_080FEAC8_8_USA-DEMO_USA.bin" -.endif -.endif -.endif - - .incbin "data_080FC8A4/gUnk_080FEAC8_9.bin" - -gUnk_080FEBE8:: @ 080FEBE8 - .incbin "data_080FC8A4/gUnk_080FEBE8.bin" - -gUnk_080FEC28:: @ 080FEC28 - .incbin "data_080FC8A4/gUnk_080FEC28.bin" - -gUnk_080FECC8:: @ 080FECC8 - .incbin "data_080FC8A4/gUnk_080FECC8.bin" - -gUnk_080FED18:: @ 080FED18 - .incbin "data_080FC8A4/gUnk_080FED18.bin" - -gUnk_080FED58:: @ 080FED58 - .incbin "data_080FC8A4/gUnk_080FED58.bin" - -gUnk_080FED98:: @ 080FED98 - .4byte gUnk_080FEDA4 - .4byte gUnk_080FEDDA - .4byte gUnk_080FEDF8 - -gUnk_080FEDA4:: @ 080FEDA4 - .incbin "data_080FC8A4/gUnk_080FEDA4.bin" - -gUnk_080FEDDA:: @ 080FEDDA - .incbin "data_080FC8A4/gUnk_080FEDDA.bin" - -gUnk_080FEDF8:: @ 080FEDF8 - .incbin "data_080FC8A4/gUnk_080FEDF8.bin" - -gUnk_080FEE18:: @ 080FEE18 - .incbin "data_080FC8A4/gUnk_080FEE18.bin" - -gUnk_080FEE38:: @ 080FEE38 - .incbin "data_080FC8A4/gUnk_080FEE38.bin" - -gUnk_080FEE48:: @ 080FEE48 - .incbin "data_080FC8A4/gUnk_080FEE48.bin" - -gUnk_080FEE58:: @ 080FEE58 -.ifdef JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FEE58_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "data_080FC8A4/gUnk_080FEE58_1_DEMO_JP.bin" -.else -.ifdef EU - .incbin "data_080FC8A4/gUnk_080FEE58_2_EU.bin" -.else - .incbin "data_080FC8A4/gUnk_080FEE58_3_USA-DEMO_USA.bin" -.endif -.endif -.endif - -gUnk_080FEE78:: @ 080FEE78 - .incbin "data_080FC8A4/gUnk_080FEE78.bin" diff --git a/data/data_080FCAC8.s b/data/data_080FCAC8.s new file mode 100644 index 00000000..888bf0ca --- /dev/null +++ b/data/data_080FCAC8.s @@ -0,0 +1,1218 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gUnk_080FCB94:: @ 080FCB94 + .incbin "data_080FC8A4/gUnk_080FCB94.bin" + +gUnk_080FCBB4:: @ 080FCBB4 + .4byte sub_080535AC + .4byte sub_080535F4 + .4byte nullsub_481 + .4byte sub_08053618 + +gUnk_080FCBC4:: @ 080FCBC4 + .incbin "data_080FC8A4/gUnk_080FCBC4.bin" + .4byte script_08009A50 + .incbin "data_080FC8A4/gUnk_080FCBC4_1.bin" + .4byte script_08009A84 + .incbin "data_080FC8A4/gUnk_080FCBC4_2.bin" + .4byte script_08009AF8 + .incbin "data_080FC8A4/gUnk_080FCBC4_3.bin" + .4byte script_08009A34 + .incbin "data_080FC8A4/gUnk_080FCBC4_4.bin" + +gUnk_080FCC14:: @ 080FCC14 + .incbin "data_080FC8A4/gUnk_080FCC14.bin" + .4byte script_08009918 + .incbin "data_080FC8A4/gUnk_080FCC14_1.bin" + .4byte script_08009950 + .incbin "data_080FC8A4/gUnk_080FCC14_2.bin" + .4byte script_080099DC + .incbin "data_080FC8A4/gUnk_080FCC14_3.bin" + +gUnk_080FCC54:: @ 080FCC54 + .incbin "data_080FC8A4/gUnk_080FCC54.bin" + .4byte script_08009D6C + .incbin "data_080FC8A4/gUnk_080FCC54_1.bin" + +gUnk_080FCC84:: @ 080FCC84 + .incbin "data_080FC8A4/gUnk_080FCC84.bin" + +gUnk_080FCC9C:: @ 080FCC9C + .incbin "data_080FC8A4/gUnk_080FCC9C.bin" + +gUnk_080FCCB4:: @ 080FCCB4 + .4byte gUnk_080FCC84 + .incbin "data_080FC8A4/gUnk_080FCCB4.bin" + .4byte gUnk_080FCC84 + .incbin "data_080FC8A4/gUnk_080FCCB4_1.bin" + .4byte gUnk_080FCC9C + .incbin "data_080FC8A4/gUnk_080FCCB4_2.bin" + .4byte gUnk_080FCC9C + .incbin "data_080FC8A4/gUnk_080FCCB4_3.bin" + .4byte gUnk_080FCC84 + .incbin "data_080FC8A4/gUnk_080FCCB4_4.bin" + .4byte gUnk_080FCC84 + .incbin "data_080FC8A4/gUnk_080FCCB4_5.bin" + +gUnk_080FCCFC:: @ 080FCCFC + .4byte sub_08053758 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053904 + .4byte sub_08053974 + .4byte nullsub_482 + .4byte sub_080539BC + .4byte nullsub_482 + +gUnk_080FCD38:: @ 080FCD38 + .4byte sub_0805370C + .4byte nullsub_482 + +gUnk_080FCD40:: @ 080FCD40 + .4byte sub_08053758 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_08053800 + .4byte sub_08053894 + .4byte sub_080539F4 + .4byte sub_08053A1C + .4byte sub_08053A5C + .4byte sub_08053A90 + +gUnk_080FCD84:: @ 080FCD84 + .incbin "data_080FC8A4/gUnk_080FCD84.bin" + .4byte script_080153EC + .incbin "data_080FC8A4/gUnk_080FCD84_1.bin" + .4byte script_0801550C + .incbin "data_080FC8A4/gUnk_080FCD84_2.bin" + .4byte script_08015618 + .incbin "data_080FC8A4/gUnk_080FCD84_3.bin" + .4byte script_08015684 + .incbin "data_080FC8A4/gUnk_080FCD84_4.bin" + +gUnk_080FCDD4:: @ 080FCDD4 + .4byte sub_08053ACC + .4byte sub_08053B00 + .4byte sub_08053B10 + +gUnk_080FCDE0:: @ 080FCDE0 + .incbin "data_080FC8A4/gUnk_080FCDE0.bin" + .4byte script_08015CD4 + .incbin "data_080FC8A4/gUnk_080FCDE0_1.bin" + .4byte script_08015DF0 + .incbin "data_080FC8A4/gUnk_080FCDE0_2.bin" + .4byte script_08015E58 + .incbin "data_080FC8A4/gUnk_080FCDE0_3.bin" + .4byte script_08015FA4 + .incbin "data_080FC8A4/gUnk_080FCDE0_4.bin" + +gUnk_080FCE30:: @ 080FCE30 + .incbin "data_080FC8A4/gUnk_080FCE30.bin" + .4byte script_08015F08 + .incbin "data_080FC8A4/gUnk_080FCE30_1.bin" + .4byte script_08015F3C + .incbin "data_080FC8A4/gUnk_080FCE30_2.bin" + .4byte script_08015F3C + .incbin "data_080FC8A4/gUnk_080FCE30_3.bin" + .4byte script_08015F3C + .incbin "data_080FC8A4/gUnk_080FCE30_4.bin" + .4byte script_08015F3C + .incbin "data_080FC8A4/gUnk_080FCE30_5.bin" + .4byte script_08015F3C + .incbin "data_080FC8A4/gUnk_080FCE30_6.bin" + .4byte script_08015F3C + .incbin "data_080FC8A4/gUnk_080FCE30_7.bin" + +gUnk_080FCEB0:: @ 080FCEB0 + .4byte sub_08053B74 + .4byte sub_08053BAC + .4byte sub_08053BBC + +gUnk_080FCEBC:: @ 080FCEBC + .incbin "data_080FC8A4/gUnk_080FCEBC.bin" + .4byte script_0800DB18 + .incbin "data_080FC8A4/gUnk_080FCEBC_1.bin" + .4byte script_0800E58C + .incbin "data_080FC8A4/gUnk_080FCEBC_2.bin" + +gUnk_080FCEEC:: @ 080FCEEC + .4byte sub_08053C20 + .4byte nullsub_483 + .4byte sub_08053C60 + +gUnk_080FCEF8:: @ 080FCEF8 + .4byte sub_08053CAC + .4byte sub_08053CAC + .4byte sub_08053E58 + +gUnk_080FCF04:: @ 080FCF04 + .4byte gUnk_080FCF24 + .4byte 0x00001c58 + .4byte gUnk_080FCF44 + .4byte 0x00002058 + .4byte gUnk_080FCF64 + .4byte 0x00001d58 + .4byte gUnk_080FCF84 + .4byte 0x00002258 + +gUnk_080FCF24:: @ 080FCF24 + .incbin "data_080FC8A4/gUnk_080FCF24.bin" + +gUnk_080FCF44:: @ 080FCF44 + .incbin "data_080FC8A4/gUnk_080FCF44.bin" + +gUnk_080FCF64:: @ 080FCF64 + .incbin "data_080FC8A4/gUnk_080FCF64.bin" + +gUnk_080FCF84:: @ 080FCF84 + .incbin "data_080FC8A4/gUnk_080FCF84.bin" + +gUnk_080FCFA4:: @ 080FCFA4 + .4byte sub_08053CC8 + .4byte sub_08053D34 + .4byte sub_08053D90 + .4byte sub_08053DB4 + .4byte sub_08053E30 + +gUnk_080FCFB8:: @ 080FCFB8 + .4byte gUnk_080FCFE8 + .4byte gUnk_080FD008 + .4byte 0x10100e88 + .4byte gUnk_080FD028 + .4byte gUnk_080FD048 + .4byte 0x10101088 + .4byte gUnk_080FD078 + .4byte gUnk_080FD098 + .4byte 0x10101388 + .4byte gUnk_080FD0C8 + .4byte gUnk_080FD0E8 + .4byte 0x10101588 + +gUnk_080FCFE8:: @ 080FCFE8 + .incbin "data_080FC8A4/gUnk_080FCFE8.bin" + +gUnk_080FD008:: @ 080FD008 + .incbin "data_080FC8A4/gUnk_080FD008.bin" + +gUnk_080FD028:: @ 080FD028 + .incbin "data_080FC8A4/gUnk_080FD028.bin" + +gUnk_080FD048:: @ 080FD048 + .incbin "data_080FC8A4/gUnk_080FD048.bin" + +gUnk_080FD078:: @ 080FD078 + .incbin "data_080FC8A4/gUnk_080FD078.bin" + +gUnk_080FD098:: @ 080FD098 + .incbin "data_080FC8A4/gUnk_080FD098.bin" + +gUnk_080FD0C8:: @ 080FD0C8 + .incbin "data_080FC8A4/gUnk_080FD0C8.bin" + +gUnk_080FD0E8:: @ 080FD0E8 + .incbin "data_080FC8A4/gUnk_080FD0E8.bin" + +gUnk_080FD108:: @ 080FD108 + .4byte sub_08053E74 + .4byte sub_08053EC4 + .4byte sub_08053EFC + .4byte sub_08053F20 + .4byte sub_08053EC4 + .4byte sub_08053EFC + .4byte sub_08053F20 + .4byte sub_08053EC4 + .4byte sub_08053EFC + .4byte sub_08053F20 + .4byte sub_08053EC4 + .4byte sub_08053F88 + +gUnk_080FD138:: @ 080FD138 + .4byte sub_080536D4 + .4byte sub_08053B58 + .4byte sub_0805373C + .4byte sub_08053AB0 + .4byte sub_080536F0 + .4byte sub_08053C04 + +gHitbox_0:: @ 080FD150 + .incbin "data_080FC8A4/gHitbox_0.bin" + +gHitbox_30:: @ 080FD158 + .incbin "data_080FC8A4/gHitbox_30.bin" + +gHitbox_31:: @ 080FD160 + .incbin "data_080FC8A4/gHitbox_31.bin" + +gHitbox_1:: @ 080FD168 + .incbin "data_080FC8A4/gHitbox_1.bin" + +gHitbox_2:: @ 080FD170 + .incbin "data_080FC8A4/gHitbox_2.bin" + +gUnk_080FD178:: @ 080FD178 + .incbin "data_080FC8A4/gUnk_080FD178.bin" + +gHitbox_3:: @ 080FD180 + .incbin "data_080FC8A4/gHitbox_3.bin" + +gHitbox_4:: @ 080FD188 + .incbin "data_080FC8A4/gHitbox_4.bin" + +gUnk_080FD190:: @ 080FD190 + .incbin "data_080FC8A4/gUnk_080FD190.bin" + +gHitbox_5:: @ 080FD198 + .incbin "data_080FC8A4/gHitbox_5.bin" + +gHitbox_6:: @ 080FD1A0 + .incbin "data_080FC8A4/gHitbox_6.bin" + +gUnk_080FD1A8:: @ 080FD1A8 + .incbin "data_080FC8A4/gUnk_080FD1A8.bin" + +gUnk_080FD1B4:: @ 080FD1B4 + .incbin "data_080FC8A4/gUnk_080FD1B4.bin" + +gHitbox_7:: @ 080FD1C4 + .incbin "data_080FC8A4/gHitbox_7.bin" + +gHitbox_8:: @ 080FD1CC + .incbin "data_080FC8A4/gHitbox_8.bin" + +gUnk_080FD1D4:: @ 080FD1D4 + .incbin "data_080FC8A4/gUnk_080FD1D4.bin" + +gUnk_080FD1DC:: @ 080FD1DC + .incbin "data_080FC8A4/gUnk_080FD1DC.bin" + +gUnk_080FD1E4:: @ 080FD1E4 + .incbin "data_080FC8A4/gUnk_080FD1E4.bin" + +gUnk_080FD1EC:: @ 080FD1EC + .incbin "data_080FC8A4/gUnk_080FD1EC.bin" + +gUnk_080FD1F4:: @ 080FD1F4 + .incbin "data_080FC8A4/gUnk_080FD1F4.bin" + +gUnk_080FD1FC:: @ 080FD1FC + .incbin "data_080FC8A4/gUnk_080FD1FC.bin" + +gUnk_080FD204:: @ 080FD204 + .incbin "data_080FC8A4/gUnk_080FD204.bin" + +gUnk_080FD20C:: @ 080FD20C + .incbin "data_080FC8A4/gUnk_080FD20C.bin" + +gUnk_080FD214:: @ 080FD214 + .incbin "data_080FC8A4/gUnk_080FD214.bin" + +gUnk_080FD21C:: @ 080FD21C + .incbin "data_080FC8A4/gUnk_080FD21C.bin" + +gUnk_080FD224:: @ 080FD224 + .incbin "data_080FC8A4/gUnk_080FD224.bin" + +gUnk_080FD22C:: @ 080FD22C + .incbin "data_080FC8A4/gUnk_080FD22C.bin" + +gUnk_080FD238:: @ 080FD238 + .incbin "data_080FC8A4/gUnk_080FD238.bin" + +gUnk_080FD240:: @ 080FD240 + .incbin "data_080FC8A4/gUnk_080FD240.bin" + +gUnk_080FD248:: @ 080FD248 + .incbin "data_080FC8A4/gUnk_080FD248.bin" + +gHitbox_9:: @ 080FD250 + .incbin "data_080FC8A4/gHitbox_9.bin" + +gUnk_080FD258:: @ 080FD258 + .incbin "data_080FC8A4/gUnk_080FD258.bin" + +gUnk_080FD260:: @ 080FD260 + .incbin "data_080FC8A4/gUnk_080FD260.bin" + +gHitbox_10:: @ 080FD268 + .incbin "data_080FC8A4/gHitbox_10.bin" + +gUnk_080FD270:: @ 080FD270 + .incbin "data_080FC8A4/gUnk_080FD270.bin" + +gUnk_080FD278:: @ 080FD278 + .incbin "data_080FC8A4/gUnk_080FD278.bin" + +gUnk_080FD280:: @ 080FD280 + .incbin "data_080FC8A4/gUnk_080FD280.bin" + +gUnk_080FD288:: @ 080FD288 + .incbin "data_080FC8A4/gUnk_080FD288.bin" + +gUnk_080FD290:: @ 080FD290 + .incbin "data_080FC8A4/gUnk_080FD290.bin" + +gUnk_080FD298:: @ 080FD298 + .incbin "data_080FC8A4/gUnk_080FD298.bin" + +gUnk_080FD2A0:: @ 080FD2A0 + .incbin "data_080FC8A4/gUnk_080FD2A0.bin" + +gUnk_080FD2A8:: @ 080FD2A8 + .incbin "data_080FC8A4/gUnk_080FD2A8.bin" + +gHitbox_11:: @ 080FD2B0 + .incbin "data_080FC8A4/gHitbox_11.bin" + +gHitbox_12:: @ 080FD2B8 + .incbin "data_080FC8A4/gHitbox_12.bin" + +gHitbox_13:: @ 080FD2C0 + .incbin "data_080FC8A4/gHitbox_13.bin" + +gHitbox_14:: @ 080FD2C8 + .incbin "data_080FC8A4/gHitbox_14.bin" + +gUnk_080FD2D0:: @ 080FD2D0 + .incbin "data_080FC8A4/gUnk_080FD2D0.bin" + +gUnk_080FD2D8:: @ 080FD2D8 + .incbin "data_080FC8A4/gUnk_080FD2D8.bin" + +gUnk_080FD2E0:: @ 080FD2E0 + .incbin "data_080FC8A4/gUnk_080FD2E0.bin" + +gUnk_080FD2E8:: @ 080FD2E8 + .incbin "data_080FC8A4/gUnk_080FD2E8.bin" + +gUnk_080FD2F0:: @ 080FD2F0 + .incbin "data_080FC8A4/gUnk_080FD2F0.bin" + +gHitbox_15:: @ 080FD2F8 + .incbin "data_080FC8A4/gHitbox_15.bin" + +gHitbox_16:: @ 080FD300 + .incbin "data_080FC8A4/gHitbox_16.bin" + +gUnk_080FD308:: @ 080FD308 + .incbin "data_080FC8A4/gUnk_080FD308.bin" + +gUnk_080FD310:: @ 080FD310 + .incbin "data_080FC8A4/gUnk_080FD310.bin" + +gHitbox_17:: @ 080FD318 + .incbin "data_080FC8A4/gHitbox_17.bin" + +gUnk_080FD320:: @ 080FD320 + .incbin "data_080FC8A4/gUnk_080FD320.bin" + +gUnk_080FD328:: @ 080FD328 + .incbin "data_080FC8A4/gUnk_080FD328.bin" + +gUnk_080FD330:: @ 080FD330 + .incbin "data_080FC8A4/gUnk_080FD330.bin" + +gHitbox_18:: @ 080FD338 + .incbin "data_080FC8A4/gHitbox_18.bin" + +gUnk_080FD340:: @ 080FD340 + .incbin "data_080FC8A4/gUnk_080FD340.bin" + +gUnk_080FD34C:: @ 080FD34C + .incbin "data_080FC8A4/gUnk_080FD34C.bin" + +gUnk_080FD354:: @ 080FD354 + .incbin "data_080FC8A4/gUnk_080FD354.bin" + +gUnk_080FD35C:: @ 080FD35C + .incbin "data_080FC8A4/gUnk_080FD35C.bin" + +gUnk_080FD364:: @ 080FD364 + .incbin "data_080FC8A4/gUnk_080FD364.bin" + +gUnk_080FD36C:: @ 080FD36C + .incbin "data_080FC8A4/gUnk_080FD36C.bin" + +gUnk_080FD374:: @ 080FD374 + .incbin "data_080FC8A4/gUnk_080FD374.bin" + +gUnk_080FD37C:: @ 080FD37C + .incbin "data_080FC8A4/gUnk_080FD37C.bin" + +gUnk_080FD384:: @ 080FD384 + .incbin "data_080FC8A4/gUnk_080FD384.bin" + +gUnk_080FD38C:: @ 080FD38C + .incbin "data_080FC8A4/gUnk_080FD38C.bin" + +gUnk_080FD394:: @ 080FD394 + .incbin "data_080FC8A4/gUnk_080FD394.bin" + +gUnk_080FD39C:: @ 080FD39C + .incbin "data_080FC8A4/gUnk_080FD39C.bin" + +gUnk_080FD3A4:: @ 080FD3A4 + .incbin "data_080FC8A4/gUnk_080FD3A4.bin" + +gUnk_080FD3AC:: @ 080FD3AC + .incbin "data_080FC8A4/gUnk_080FD3AC.bin" + +gUnk_080FD3B4:: @ 080FD3B4 + .incbin "data_080FC8A4/gUnk_080FD3B4.bin" + +gUnk_080FD3BC:: @ 080FD3BC + .incbin "data_080FC8A4/gUnk_080FD3BC.bin" + +gUnk_080FD3C4:: @ 080FD3C4 + .incbin "data_080FC8A4/gUnk_080FD3C4.bin" + +gUnk_080FD3CC:: @ 080FD3CC + .incbin "data_080FC8A4/gUnk_080FD3CC.bin" + +gUnk_080FD3DC:: @ 080FD3DC + .incbin "data_080FC8A4/gUnk_080FD3DC.bin" + +gUnk_080FD3E4:: @ 080FD3E4 + .incbin "data_080FC8A4/gUnk_080FD3E4.bin" + +gUnk_080FD3EC:: @ 080FD3EC + .incbin "data_080FC8A4/gUnk_080FD3EC.bin" + +gUnk_080FD3F4:: @ 080FD3F4 + .incbin "data_080FC8A4/gUnk_080FD3F4.bin" + +gUnk_080FD3FC:: @ 080FD3FC + .incbin "data_080FC8A4/gUnk_080FD3FC.bin" + +gUnk_080FD408:: @ 080FD408 + .incbin "data_080FC8A4/gUnk_080FD408.bin" + +gHitbox_19:: @ 080FD410 + .incbin "data_080FC8A4/gHitbox_19.bin" + +gUnk_080FD41C:: @ 080FD41C + .incbin "data_080FC8A4/gUnk_080FD41C.bin" + +gUnk_080FD424:: @ 080FD424 + .incbin "data_080FC8A4/gUnk_080FD424.bin" + +gUnk_080FD42C:: @ 080FD42C + .incbin "data_080FC8A4/gUnk_080FD42C.bin" + +gUnk_080FD434:: @ 080FD434 + .incbin "data_080FC8A4/gUnk_080FD434.bin" + +gUnk_080FD43C:: @ 080FD43C + .incbin "data_080FC8A4/gUnk_080FD43C.bin" + +gHitbox_20:: @ 080FD448 + .incbin "data_080FC8A4/gHitbox_20.bin" + +gUnk_080FD450:: @ 080FD450 + .incbin "data_080FC8A4/gUnk_080FD450.bin" + +gHitbox_21:: @ 080FD458 + .incbin "data_080FC8A4/gHitbox_21.bin" + +gHitbox_22:: @ 080FD460 + .incbin "data_080FC8A4/gHitbox_22.bin" + +gHitbox_23:: @ 080FD468 + .incbin "data_080FC8A4/gHitbox_23.bin" + +gHitbox_32:: @ 080FD470 + .incbin "data_080FC8A4/gHitbox_32.bin" + +gHitbox_24:: @ 080FD480 + .incbin "data_080FC8A4/gHitbox_24.bin" + +gUnk_080FD488:: @ 080FD488 + .incbin "data_080FC8A4/gUnk_080FD488.bin" + +gUnk_080FD490:: @ 080FD490 + .incbin "data_080FC8A4/gUnk_080FD490.bin" + +gHitbox_25:: @ 080FD498 + .incbin "data_080FC8A4/gHitbox_25.bin" + +gHitbox_26:: @ 080FD4A4 + .incbin "data_080FC8A4/gHitbox_26.bin" + +gUnk_080FD4B8:: @ 080FD4B8 + .incbin "data_080FC8A4/gUnk_080FD4B8.bin" + +gUnk_080FD4C0:: @ 080FD4C0 + .incbin "data_080FC8A4/gUnk_080FD4C0.bin" + +gUnk_080FD4C8:: @ 080FD4C8 + .incbin "data_080FC8A4/gUnk_080FD4C8.bin" + +gUnk_080FD4D0:: @ 080FD4D0 + .incbin "data_080FC8A4/gUnk_080FD4D0.bin" + +gUnk_080FD4D8:: @ 080FD4D8 + .incbin "data_080FC8A4/gUnk_080FD4D8.bin" + +gUnk_080FD4E0:: @ 080FD4E0 + .incbin "data_080FC8A4/gUnk_080FD4E0.bin" + +gUnk_080FD4E8:: @ 080FD4E8 + .incbin "data_080FC8A4/gUnk_080FD4E8.bin" + +gUnk_080FD4F0:: @ 080FD4F0 + .incbin "data_080FC8A4/gUnk_080FD4F0.bin" + +gUnk_080FD4F8:: @ 080FD4F8 + .incbin "data_080FC8A4/gUnk_080FD4F8.bin" + +gUnk_080FD500:: @ 080FD500 + .incbin "data_080FC8A4/gUnk_080FD500.bin" + +gUnk_080FD508:: @ 080FD508 + .incbin "data_080FC8A4/gUnk_080FD508.bin" + +gUnk_080FD510:: @ 080FD510 + .incbin "data_080FC8A4/gUnk_080FD510.bin" + +gUnk_080FD518:: @ 080FD518 + .incbin "data_080FC8A4/gUnk_080FD518.bin" + +gUnk_080FD520:: @ 080FD520 + .incbin "data_080FC8A4/gUnk_080FD520.bin" + +gHitbox_27:: @ 080FD528 + .incbin "data_080FC8A4/gHitbox_27.bin" + +gUnk_080FD530:: @ 080FD530 + .incbin "data_080FC8A4/gUnk_080FD530.bin" + +gUnk_080FD538:: @ 080FD538 + .incbin "data_080FC8A4/gUnk_080FD538.bin" + +gUnk_080FD544:: @ 080FD544 + .incbin "data_080FC8A4/gUnk_080FD544.bin" + +gHitbox_28:: @ 080FD54C + .incbin "data_080FC8A4/gHitbox_28.bin" + +gUnk_080FD558:: @ 080FD558 + .incbin "data_080FC8A4/gUnk_080FD558.bin" + +gUnk_080FD560:: @ 080FD560 + .incbin "data_080FC8A4/gUnk_080FD560.bin" + +gHitbox_29:: @ 080FD568 + .incbin "data_080FC8A4/gHitbox_29.bin" + +gUnk_080FD570:: @ 080FD570 + .incbin "data_080FC8A4/gUnk_080FD570.bin" + +gUnk_080FD578:: @ 080FD578 + .incbin "data_080FC8A4/gUnk_080FD578.bin" + +gUnk_080FD580:: @ 080FD580 + .incbin "data_080FC8A4/gUnk_080FD580.bin" + +gUnk_080FD588:: @ 080FD588 + .incbin "data_080FC8A4/gUnk_080FD588.bin" + +gWalletSizes:: @ 080FD590 + .incbin "data_080FC8A4/gWalletSizes.bin" + +gBombBagSizes:: @ 080FD5A0 + .incbin "data_080FC8A4/gBombBagSizes.bin" + +gQuiverSizes:: @ 080FD5A4 + .incbin "data_080FC8A4/gQuiverSizes.bin" + +gUnk_080FD5A8:: @ 080FD5A8 + .incbin "data_080FC8A4/gUnk_080FD5A8.bin" + +gUnk_080FD5B4:: @ 080FD5B4 + .incbin "data_080FC8A4/gUnk_080FD5B4.bin" + +gUnk_080FD964:: @ 080FD964 +.ifdef EU + @ TODO only small differences + .incbin "data_080FC8A4/gUnk_080FD964_EU.bin" +.else + .incbin "data_080FC8A4/gUnk_080FD964_1_USA-JP-DEMO_USA-DEMO_JP.bin" +.endif + +gSpriteAnimations_322_0:: @ 080FDD14 + .include "animations/gSpriteAnimations_322_0.s" + +gSpriteAnimations_322_1:: @ 080FDD19 + .include "animations/gSpriteAnimations_322_1.s" + +gSpriteAnimations_322_2:: @ 080FDD1E + .include "animations/gSpriteAnimations_322_2.s" + +gSpriteAnimations_322_3:: @ 080FDD23 + .include "animations/gSpriteAnimations_322_3.s" + +gSpriteAnimations_322_4:: @ 080FDD28 + .include "animations/gSpriteAnimations_322_4.s" + +gSpriteAnimations_322_6:: @ 080FDD2D + .include "animations/gSpriteAnimations_322_6.s" + +gSpriteAnimations_322_7:: @ 080FDD32 + .include "animations/gSpriteAnimations_322_7.s" + +gSpriteAnimations_322_8:: @ 080FDD37 + .include "animations/gSpriteAnimations_322_8.s" + +gSpriteAnimations_322_9:: @ 080FDD48 + .include "animations/gSpriteAnimations_322_9.s" + +gSpriteAnimations_322_10:: @ 080FDD4D + .include "animations/gSpriteAnimations_322_10.s" + +gSpriteAnimations_322_11:: @ 080FDD52 + .include "animations/gSpriteAnimations_322_11.s" + +gSpriteAnimations_322_12:: @ 080FDD57 + .include "animations/gSpriteAnimations_322_12.s" + +gSpriteAnimations_322_13:: @ 080FDD5C + .include "animations/gSpriteAnimations_322_13.s" + +gSpriteAnimations_322_14:: @ 080FDD61 + .include "animations/gSpriteAnimations_322_14.s" + +gSpriteAnimations_322_15:: @ 080FDD92 + .include "animations/gSpriteAnimations_322_15.s" + +gSpriteAnimations_322_5:: @ 080FDD97 + .include "animations/gSpriteAnimations_322_5.s" + +gSpriteAnimations_322_17:: @ 080FDDA8 + .include "animations/gSpriteAnimations_322_17.s" + +gSpriteAnimations_322_18:: @ 080FDDAD + .include "animations/gSpriteAnimations_322_18.s" + +gSpriteAnimations_322_19:: @ 080FDDB2 + .include "animations/gSpriteAnimations_322_19.s" + +gSpriteAnimations_322_20:: @ 080FDDB7 + .include "animations/gSpriteAnimations_322_20.s" + +gSpriteAnimations_322_21:: @ 080FDDBC + .include "animations/gSpriteAnimations_322_21.s" + +gSpriteAnimations_322_22:: @ 080FDDC1 + .include "animations/gSpriteAnimations_322_22.s" + +gSpriteAnimations_322_23:: @ 080FDDC6 + .include "animations/gSpriteAnimations_322_23.s" + +gSpriteAnimations_322_28:: @ 080FDDCB + .include "animations/gSpriteAnimations_322_28.s" + +gSpriteAnimations_322_38:: @ 080FDDD0 + .include "animations/gSpriteAnimations_322_38.s" + +gSpriteAnimations_322_39:: @ 080FDDD5 + .include "animations/gSpriteAnimations_322_39.s" + +gSpriteAnimations_322_34:: @ 080FDDDA + .include "animations/gSpriteAnimations_322_34.s" + +gSpriteAnimations_322_35:: @ 080FDDDF + .include "animations/gSpriteAnimations_322_35.s" + +gSpriteAnimations_322_40:: @ 080FDDE4 + .include "animations/gSpriteAnimations_322_40.s" + +gSpriteAnimations_322_41:: @ 080FDDF5 + .include "animations/gSpriteAnimations_322_41.s" + +gSpriteAnimations_322_42:: @ 080FDE0E + .include "animations/gSpriteAnimations_322_42.s" + +gSpriteAnimations_322_43:: @ 080FDE27 + .include "animations/gSpriteAnimations_322_43.s" + +gSpriteAnimations_322_44:: @ 080FDE40 + .include "animations/gSpriteAnimations_322_44.s" + +gSpriteAnimations_322_45:: @ 080FDE59 + .include "animations/gSpriteAnimations_322_45.s" + +gSpriteAnimations_322_46:: @ 080FDE72 + .include "animations/gSpriteAnimations_322_46.s" + +gSpriteAnimations_322_36:: @ 080FDE8B + .include "animations/gSpriteAnimations_322_36.s" + +gSpriteAnimations_322_37:: @ 080FDE90 + .include "animations/gSpriteAnimations_322_37.s" + +gSpriteAnimations_322_54:: @ 080FDE95 + .include "animations/gSpriteAnimations_322_54.s" + +gSpriteAnimations_322_33:: @ 080FDE9A + .include "animations/gSpriteAnimations_322_33.s" + +gSpriteAnimations_322_47:: @ 080FDE9F + .include "animations/gSpriteAnimations_322_47.s" + +gSpriteAnimations_322_48:: @ 080FDEA4 + .include "animations/gSpriteAnimations_322_48.s" + +gSpriteAnimations_322_49:: @ 080FDEA9 + .include "animations/gSpriteAnimations_322_49.s" + +gSpriteAnimations_322_52:: @ 080FDEAE + .include "animations/gSpriteAnimations_322_52.s" + +gSpriteAnimations_322_53:: @ 080FDEB3 + .include "animations/gSpriteAnimations_322_53.s" + +gSpriteAnimations_322_24:: @ 080FDEB8 + .include "animations/gSpriteAnimations_322_24.s" + +gSpriteAnimations_322_58:: @ 080FDEBD + .include "animations/gSpriteAnimations_322_58.s" + +gSpriteAnimations_322_59:: @ 080FDEC2 + .include "animations/gSpriteAnimations_322_59.s" + +gSpriteAnimations_322_25:: @ 080FDEC7 + .include "animations/gSpriteAnimations_322_25.s" + +gSpriteAnimations_322_60:: @ 080FDECC + .include "animations/gSpriteAnimations_322_60.s" + +gSpriteAnimations_322_55:: @ 080FDED1 + .include "animations/gSpriteAnimations_322_55.s" + +gSpriteAnimations_322_68:: @ 080FDED6 + .include "animations/gSpriteAnimations_322_68.s" + +gSpriteAnimations_322_69:: @ 080FDEDB + .include "animations/gSpriteAnimations_322_69.s" + +gSpriteAnimations_322_26:: @ 080FDEE0 + .include "animations/gSpriteAnimations_322_26.s" + +gSpriteAnimations_322_64:: @ 080FDEE5 + .include "animations/gSpriteAnimations_322_64.s" + +gSpriteAnimations_322_65:: @ 080FDEEA + .include "animations/gSpriteAnimations_322_65.s" + +gSpriteAnimations_322_66:: @ 080FDEEF + .include "animations/gSpriteAnimations_322_66.s" + +gSpriteAnimations_322_67:: @ 080FDEF4 + .include "animations/gSpriteAnimations_322_67.s" + +gSpriteAnimations_322_71:: @ 080FDEF9 + .include "animations/gSpriteAnimations_322_71.s" + +gSpriteAnimations_322_81:: @ 080FDEFE + .include "animations/gSpriteAnimations_322_81.s" + +gSpriteAnimations_322_82:: @ 080FDF03 + .include "animations/gSpriteAnimations_322_82.s" + +gSpriteAnimations_322_83:: @ 080FDF08 + .include "animations/gSpriteAnimations_322_83.s" + +gSpriteAnimations_322_84:: @ 080FDF0D + .include "animations/gSpriteAnimations_322_84.s" + +gSpriteAnimations_322_95:: @ 080FDF12 + .include "animations/gSpriteAnimations_322_95.s" + +gSpriteAnimations_322_96:: @ 080FDF17 + .include "animations/gSpriteAnimations_322_96.s" + +gSpriteAnimations_322_98:: @ 080FDF28 + .include "animations/gSpriteAnimations_322_98.s" + +gSpriteAnimations_322_99:: @ 080FDF45 + .include "animations/gSpriteAnimations_322_99.s" + +gSpriteAnimations_322_87:: @ 080FDF4A + .include "animations/gSpriteAnimations_322_87.s" + +gSpriteAnimations_322_104:: @ 080FDF4F + .include "animations/gSpriteAnimations_322_104.s" + +gSpriteAnimations_322_105:: @ 080FDF54 + .include "animations/gSpriteAnimations_322_105.s" + +gSpriteAnimations_322_106:: @ 080FDF59 + .include "animations/gSpriteAnimations_322_106.s" + +gSpriteAnimations_322_107:: @ 080FDF5E + .include "animations/gSpriteAnimations_322_107.s" + +gSpriteAnimations_322_93:: @ 080FDF63 + .include "animations/gSpriteAnimations_322_93.s" + +gSpriteAnimations_322_94:: @ 080FDF68 + .include "animations/gSpriteAnimations_322_94.s" + +gSpriteAnimations_322_63:: @ 080FDF6D + .include "animations/gSpriteAnimations_322_63.s" + +gSpriteAnimations_322_100:: @ 080FDF72 + .include "animations/gSpriteAnimations_322_100.s" + +gSpriteAnimations_322_101:: @ 080FDF77 + .include "animations/gSpriteAnimations_322_101.s" + +gSpriteAnimations_322_102:: @ 080FDF7C + .include "animations/gSpriteAnimations_322_102.s" + +gSpriteAnimations_322_103:: @ 080FDF81 + .include "animations/gSpriteAnimations_322_103.s" + +gSpriteAnimations_322_91:: @ 080FDF86 + .include "animations/gSpriteAnimations_322_91.s" + +gSpriteAnimations_322_92:: @ 080FDF8F + .include "animations/gSpriteAnimations_322_92.s" + +gSpriteAnimations_322_108:: @ 080FDF94 + .include "animations/gSpriteAnimations_322_108.s" + +gSpriteAnimations_322_109:: @ 080FDF99 + .include "animations/gSpriteAnimations_322_109.s" + +gSpriteAnimations_322_110:: @ 080FDF9E + .include "animations/gSpriteAnimations_322_110.s" + +gSpriteAnimations_322_111:: @ 080FDFA3 + .include "animations/gSpriteAnimations_322_111.s" + +gSpriteAnimations_322_112:: @ 080FDFA8 + .include "animations/gSpriteAnimations_322_112.s" + +gSpriteAnimations_322_72:: @ 080FDFC1 + .include "animations/gSpriteAnimations_322_72.s" + +gSpriteAnimations_322_97:: @ 080FDFC6 + .include "animations/gSpriteAnimations_322_97.s" + +gSpriteAnimations_322_61:: @ 080FDFCB + .include "animations/gSpriteAnimations_322_61.s" + +gSpriteAnimations_322_62:: @ 080FDFD0 + .include "animations/gSpriteAnimations_322_62.s" + +gSpriteAnimations_322:: @ 080FDFD8 + .4byte gSpriteAnimations_322_0 + .4byte gSpriteAnimations_322_1 + .4byte gSpriteAnimations_322_2 + .4byte gSpriteAnimations_322_3 + .4byte gSpriteAnimations_322_4 + .4byte gSpriteAnimations_322_5 + .4byte gSpriteAnimations_322_6 + .4byte gSpriteAnimations_322_7 + .4byte gSpriteAnimations_322_8 + .4byte gSpriteAnimations_322_9 + .4byte gSpriteAnimations_322_10 + .4byte gSpriteAnimations_322_11 + .4byte gSpriteAnimations_322_12 + .4byte gSpriteAnimations_322_13 + .4byte gSpriteAnimations_322_14 + .4byte gSpriteAnimations_322_15 + .4byte gSpriteAnimations_322_5 + .4byte gSpriteAnimations_322_17 + .4byte gSpriteAnimations_322_18 + .4byte gSpriteAnimations_322_19 + .4byte gSpriteAnimations_322_20 + .4byte gSpriteAnimations_322_21 + .4byte gSpriteAnimations_322_22 + .4byte gSpriteAnimations_322_23 + .4byte gSpriteAnimations_322_24 + .4byte gSpriteAnimations_322_25 + .4byte gSpriteAnimations_322_26 + .4byte gSpriteAnimations_322_5 + .4byte gSpriteAnimations_322_28 + .4byte gSpriteAnimations_322_28 + .4byte gSpriteAnimations_322_28 + .4byte gSpriteAnimations_322_28 + .4byte gSpriteAnimations_322_28 + .4byte gSpriteAnimations_322_33 + .4byte gSpriteAnimations_322_34 + .4byte gSpriteAnimations_322_35 + .4byte gSpriteAnimations_322_36 + .4byte gSpriteAnimations_322_37 + .4byte gSpriteAnimations_322_38 + .4byte gSpriteAnimations_322_39 + .4byte gSpriteAnimations_322_40 + .4byte gSpriteAnimations_322_41 + .4byte gSpriteAnimations_322_42 + .4byte gSpriteAnimations_322_43 + .4byte gSpriteAnimations_322_44 + .4byte gSpriteAnimations_322_45 + .4byte gSpriteAnimations_322_46 + .4byte gSpriteAnimations_322_47 + .4byte gSpriteAnimations_322_48 + .4byte gSpriteAnimations_322_49 + .4byte gSpriteAnimations_322_5 + .4byte gSpriteAnimations_322_5 + .4byte gSpriteAnimations_322_52 + .4byte gSpriteAnimations_322_53 + .4byte gSpriteAnimations_322_54 + .4byte gSpriteAnimations_322_55 + .4byte gSpriteAnimations_322_25 + .4byte gSpriteAnimations_322_24 + .4byte gSpriteAnimations_322_58 + .4byte gSpriteAnimations_322_59 + .4byte gSpriteAnimations_322_60 + .4byte gSpriteAnimations_322_61 + .4byte gSpriteAnimations_322_62 + .4byte gSpriteAnimations_322_63 + .4byte gSpriteAnimations_322_64 + .4byte gSpriteAnimations_322_65 + .4byte gSpriteAnimations_322_66 + .4byte gSpriteAnimations_322_67 + .4byte gSpriteAnimations_322_68 + .4byte gSpriteAnimations_322_69 + .4byte gSpriteAnimations_322_26 + .4byte gSpriteAnimations_322_71 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_72 + .4byte gSpriteAnimations_322_71 + .4byte gSpriteAnimations_322_81 + .4byte gSpriteAnimations_322_82 + .4byte gSpriteAnimations_322_83 + .4byte gSpriteAnimations_322_84 + .4byte gSpriteAnimations_322_84 + .4byte gSpriteAnimations_322_84 + .4byte gSpriteAnimations_322_87 + .4byte gSpriteAnimations_322_87 + .4byte gSpriteAnimations_322_87 + .4byte gSpriteAnimations_322_5 + .4byte gSpriteAnimations_322_91 + .4byte gSpriteAnimations_322_92 + .4byte gSpriteAnimations_322_93 + .4byte gSpriteAnimations_322_94 + .4byte gSpriteAnimations_322_95 + .4byte gSpriteAnimations_322_96 + .4byte gSpriteAnimations_322_97 + .4byte gSpriteAnimations_322_98 + .4byte gSpriteAnimations_322_99 + .4byte gSpriteAnimations_322_100 + .4byte gSpriteAnimations_322_101 + .4byte gSpriteAnimations_322_102 + .4byte gSpriteAnimations_322_103 + .4byte gSpriteAnimations_322_104 + .4byte gSpriteAnimations_322_105 + .4byte gSpriteAnimations_322_106 + .4byte gSpriteAnimations_322_107 + .4byte gSpriteAnimations_322_108 + .4byte gSpriteAnimations_322_109 + .4byte gSpriteAnimations_322_110 + .4byte gSpriteAnimations_322_111 + .4byte gSpriteAnimations_322_112 + .4byte gSpriteAnimations_322_112 + .4byte gSpriteAnimations_322_112 + .4byte gSpriteAnimations_322_0 + .4byte gSpriteAnimations_322_0 + .4byte gSpriteAnimations_322_0 + .4byte 00000000 + +gUnk_080FE1B4:: @ 080FE1B4 + .incbin "data_080FC8A4/gUnk_080FE1B4.bin" + +gUnk_080FE1C6:: @ 080FE1C6 + .incbin "data_080FC8A4/gUnk_080FE1C6.bin" + +gUnk_080FE1DD:: @ 080FE1DD + .incbin "data_080FC8A4/gUnk_080FE1DD.bin" + +gUnk_080FE2A0:: @ 080FE2A0 + .4byte sub_0805488C + .4byte sub_080548E8 + .4byte sub_08054920 + +gUnk_080FE2AC:: @ 080FE2AC + .4byte sub_08055D80 + .4byte sub_08054E00 + .4byte sub_080558EC + .4byte sub_08054CE8 + .4byte sub_08054C04 + .4byte sub_08055168 + .4byte sub_080552FC + .4byte sub_08055BB0 + .4byte sub_08055414 + .4byte sub_080559E0 + .4byte sub_0805559C + .4byte sub_080554FC + .4byte sub_08055818 + .4byte sub_08055094 + .4byte sub_080550F8 + .4byte sub_080556F4 + .4byte sub_08055038 + .4byte sub_08054F90 + .4byte sub_08054F90 + .4byte sub_08054D90 + .4byte sub_08055888 + .4byte sub_08055690 + .4byte sub_08055E08 + .4byte sub_080557B4 + .4byte sub_08055CD8 + .4byte sub_08055AD0 + .4byte sub_08055D80 + .4byte sub_08055D80 + .4byte sub_08055D80 + +gUnk_080FE320:: @ 080FE320 +.ifdef JP + @ TODO only small differences + .incbin "data_080FC8A4/gUnk_080FE320_JP.bin" +.else +.ifdef DEMO_JP + @ TODO only small differences + .incbin "data_080FC8A4/gUnk_080FE320_1_DEMO_JP.bin" +.else +.ifdef EU + .incbin "data_080FC8A4/gUnk_080FE320_2_EU.bin" +.else + .incbin "data_080FC8A4/gUnk_080FE320_3_USA-DEMO_USA.bin" +.endif +.endif +.endif + +.ifdef JP + @ TODO only small differences + .incbin "data_080FC8A4/gUnk_080FE320_4_JP.bin" +.else +.ifdef DEMO_JP + @ TODO only small differences + .incbin "data_080FC8A4/gUnk_080FE320_5_DEMO_JP.bin" +.else +.ifdef EU + .incbin "data_080FC8A4/gUnk_080FE320_6_EU.bin" +.else + .incbin "data_080FC8A4/gUnk_080FE320_7_USA-DEMO_USA.bin" +.endif +.endif +.endif + +gUnk_080FEAC8:: @ 080FEAC8 + .incbin "data_080FC8A4/gUnk_080FEAC8.bin" +.ifdef JP + @ TODO only small differences + .incbin "data_080FC8A4/gUnk_080FEAC8_1_JP.bin" +.else +.ifdef DEMO_JP + @ TODO only small differences + .incbin "data_080FC8A4/gUnk_080FEAC8_2_DEMO_JP.bin" +.else +.ifdef EU + .incbin "data_080FC8A4/gUnk_080FEAC8_3_EU.bin" +.else + .incbin "data_080FC8A4/gUnk_080FEAC8_4_USA-DEMO_USA.bin" +.endif +.endif +.endif + +.ifdef JP + @ TODO only small differences + .incbin "data_080FC8A4/gUnk_080FEAC8_5_JP.bin" +.else +.ifdef DEMO_JP + @ TODO only small differences + .incbin "data_080FC8A4/gUnk_080FEAC8_6_DEMO_JP.bin" +.else +.ifdef EU + .incbin "data_080FC8A4/gUnk_080FEAC8_7_EU.bin" +.else + .incbin "data_080FC8A4/gUnk_080FEAC8_8_USA-DEMO_USA.bin" +.endif +.endif +.endif + + .incbin "data_080FC8A4/gUnk_080FEAC8_9.bin" + +gUnk_080FEBE8:: @ 080FEBE8 + .incbin "data_080FC8A4/gUnk_080FEBE8.bin" + +gUnk_080FEC28:: @ 080FEC28 + .incbin "data_080FC8A4/gUnk_080FEC28.bin" + +gUnk_080FECC8:: @ 080FECC8 + .incbin "data_080FC8A4/gUnk_080FECC8.bin" + +gUnk_080FED18:: @ 080FED18 + .incbin "data_080FC8A4/gUnk_080FED18.bin" + +gUnk_080FED58:: @ 080FED58 + .incbin "data_080FC8A4/gUnk_080FED58.bin" + +gUnk_080FED98:: @ 080FED98 + .4byte gUnk_080FEDA4 + .4byte gUnk_080FEDDA + .4byte gUnk_080FEDF8 + +gUnk_080FEDA4:: @ 080FEDA4 + .incbin "data_080FC8A4/gUnk_080FEDA4.bin" + +gUnk_080FEDDA:: @ 080FEDDA + .incbin "data_080FC8A4/gUnk_080FEDDA.bin" + +gUnk_080FEDF8:: @ 080FEDF8 + .incbin "data_080FC8A4/gUnk_080FEDF8.bin" + +gUnk_080FEE18:: @ 080FEE18 + .incbin "data_080FC8A4/gUnk_080FEE18.bin" + +gUnk_080FEE38:: @ 080FEE38 + .incbin "data_080FC8A4/gUnk_080FEE38.bin" + +gUnk_080FEE48:: @ 080FEE48 + .incbin "data_080FC8A4/gUnk_080FEE48.bin" + +gUnk_080FEE58:: @ 080FEE58 +.ifdef JP + @ TODO only small differences + .incbin "data_080FC8A4/gUnk_080FEE58_JP.bin" +.else +.ifdef DEMO_JP + @ TODO only small differences + .incbin "data_080FC8A4/gUnk_080FEE58_1_DEMO_JP.bin" +.else +.ifdef EU + .incbin "data_080FC8A4/gUnk_080FEE58_2_EU.bin" +.else + .incbin "data_080FC8A4/gUnk_080FEE58_3_USA-DEMO_USA.bin" +.endif +.endif +.endif + +gUnk_080FEE78:: @ 080FEE78 + .incbin "data_080FC8A4/gUnk_080FEE78.bin" diff --git a/data/scripts/script_0800AF44.inc b/data/scripts/script_0800AF44.inc index ccadf635..8ff3f94a 100644 --- a/data/scripts/script_0800AF44.inc +++ b/data/scripts/script_0800AF44.inc @@ -3,7 +3,7 @@ SCRIPT_START script_0800AF44 Call sub_0807DF28 _0807EB28 0x1c01 WaitUntilTextboxCloses - SetLocalFlagByOffset 0x0100, 0x0001 + SetLocalFlagByBank 0x0100, 0x0001 Call sub_0807DF50 _0807E878 DoPostScriptAction 0x0006 diff --git a/data/scripts/script_0800AF68.inc b/data/scripts/script_0800AF68.inc index 471cbc59..e9ae8510 100644 --- a/data/scripts/script_0800AF68.inc +++ b/data/scripts/script_0800AF68.inc @@ -3,7 +3,7 @@ SCRIPT_START script_0800AF68 Call sub_0807DF28 _0807EB28 0x1c02 WaitUntilTextboxCloses - SetLocalFlagByOffset 0x0100, 0x0002 + SetLocalFlagByBank 0x0100, 0x0002 Call sub_0807DF50 _0807E878 DoPostScriptAction 0x0006 diff --git a/data/scripts/script_0800AF8C.inc b/data/scripts/script_0800AF8C.inc index f7842a73..b4477b56 100644 --- a/data/scripts/script_0800AF8C.inc +++ b/data/scripts/script_0800AF8C.inc @@ -3,7 +3,7 @@ SCRIPT_START script_0800AF8C Call sub_0807DF28 _0807EB28 0x1c03 WaitUntilTextboxCloses - SetLocalFlagByOffset 0x0100, 0x0003 + SetLocalFlagByBank 0x0100, 0x0003 Call sub_0807DF50 _0807E878 DoPostScriptAction 0x0006 diff --git a/data/scripts/script_0800AFB0.inc b/data/scripts/script_0800AFB0.inc index 2cd141c9..88878bca 100644 --- a/data/scripts/script_0800AFB0.inc +++ b/data/scripts/script_0800AFB0.inc @@ -10,7 +10,7 @@ script_0800AFB2: Call sub_0807DF28 _0807EB28 0x1c04 WaitUntilTextboxCloses - SetLocalFlagByOffset 0x0100, 0x0004 + SetLocalFlagByBank 0x0100, 0x0004 Call sub_0807DF50 _0807E878 DoPostScriptAction 0x0006 diff --git a/data/scripts/script_0800AFE8.inc b/data/scripts/script_0800AFE8.inc index b9558c53..9dc089b6 100644 --- a/data/scripts/script_0800AFE8.inc +++ b/data/scripts/script_0800AFE8.inc @@ -3,7 +3,7 @@ SCRIPT_START script_0800AFE8 Call sub_0807DF28 _0807EB28 0x1c05 WaitUntilTextboxCloses - SetLocalFlagByOffset 0x0100, 0x0005 + SetLocalFlagByBank 0x0100, 0x0005 Call sub_0807DF50 _0807E878 DoPostScriptAction 0x0006 diff --git a/data/scripts/script_0800E0BC.inc b/data/scripts/script_0800E0BC.inc index df275e25..dadd18a9 100644 --- a/data/scripts/script_0800E0BC.inc +++ b/data/scripts/script_0800E0BC.inc @@ -317,11 +317,11 @@ script_0800E4B6: _0807E864 .ifdef JP .ifndef DEMO_JP - Call FreezeTime + Call SetPlayerEventPriority .endif .else .ifdef EU - Call FreezeTime + Call SetPlayerEventPriority .endif .endif EndBlock @@ -341,11 +341,11 @@ script_0800E4B6: SetLocalFlag 0x007c .ifdef JP .ifndef DEMO_JP - Call UnfreezeTime + Call ResetPlayerEventPriority .endif .else .ifdef EU - Call UnfreezeTime + Call ResetPlayerEventPriority .endif .endif script_0800E4FA: diff --git a/data/scripts/script_0800EF40.inc b/data/scripts/script_0800EF40.inc index 920a220f..f10aba5e 100644 --- a/data/scripts/script_0800EF40.inc +++ b/data/scripts/script_0800EF40.inc @@ -8,7 +8,7 @@ script_0800EF50: Call sub_080869A4 JumpIfNot script_0800EF50 _0807E864 - CheckLocalFlagByOffset 0x0200, 0x006d + CheckLocalFlagByBank 0x0200, 0x006d JumpIf script_0800EF82 MessageFromTarget 0x4d01 WaitUntilTextboxCloses diff --git a/data/scripts/script_08012D18.inc b/data/scripts/script_08012D18.inc index da5129bb..206fd304 100644 --- a/data/scripts/script_08012D18.inc +++ b/data/scripts/script_08012D18.inc @@ -3,7 +3,7 @@ SCRIPT_START script_08012D18 BeginBlock CheckGlobalFlag 0x0014 JumpIfNot script_08012D18 - CheckLocalFlagByOffset 0x0200, 0x008d + CheckLocalFlagByBank 0x0200, 0x008d JumpIf script_08012D68 CheckPlayerInRegion 0x0000, 0x01a8, 0x2010 JumpIfNot script_08012D18 diff --git a/data/scripts/script_08016384.inc b/data/scripts/script_08016384.inc index 6f6aaa07..34c36c59 100644 --- a/data/scripts/script_08016384.inc +++ b/data/scripts/script_08016384.inc @@ -18,15 +18,15 @@ SCRIPT_START script_08016384 HasRoomItemForSale CheckLocalFlag 0x0067 .ifdef JP - CheckLocalFlagByOffset 0x0100, 0x0069 + CheckLocalFlagByBank 0x0100, 0x0069 .else .ifdef EU - CheckLocalFlagByOffset 0x0100, 0x0069 + CheckLocalFlagByBank 0x0100, 0x0069 .else .ifdef DEMO_JP - CheckLocalFlagByOffset 0x0100, 0x0069 @ TODO deduplicate + CheckLocalFlagByBank 0x0100, 0x0069 @ TODO deduplicate .else - CheckLocalFlagByOffset 0x0100, 0x006b + CheckLocalFlagByBank 0x0100, 0x006b .endif .endif .endif @@ -52,7 +52,7 @@ SCRIPT_START script_08016384 _0807E5F8 0x00000001 _0807E610 0x00000002 SetLocalFlag 0x0067 - SetLocalFlagByOffset 0x0100, 0x0001 + SetLocalFlagByBank 0x0100, 0x0001 ClearLocalFlag 0x0067 SetGlobalFlag 0x0013 ClearGlobalFlag 0x0013 diff --git a/include/area.h b/include/area.h index 1b2e0d53..c8d10a53 100644 --- a/include/area.h +++ b/include/area.h @@ -3,11 +3,27 @@ #include "global.h" +#define MAX_ROOMS 64 + +typedef struct { + u16 pixel_width; + u16 pixel_height; + u16 map_x; + u16 map_y; + void* tileset; + void* map; + void* metatiles; + void* bg_anim; + void* exits; + void** properties; +} RoomResInfo; +static_assert(sizeof(RoomResInfo) == 0x20); + typedef struct { u8 areaMetadata; u8 locationIndex; u8 unk; - u8 regret; + u8 dungeon_idx; /* same index as global flags for dungeons */ u16 localFlagOffset; u8 filler[4]; u16 unk_0a; @@ -23,17 +39,183 @@ typedef struct { u8 unk1A; u8 filler2[13]; u8 field_0x28; - u8 filler4[0x833]; - void*** field_0x85c; + u8 filler4[0x13]; + RoomResInfo roomResInfos[MAX_ROOMS]; + RoomResInfo currentRoomInfo; + RoomResInfo* pCurrentRoomInfo; u32 musicIndex; u32 pMusicIndex; u8 filler5[0x20]; - u32 unk2; - u32 unk3; - u32 unk4; + void* transitionManager; + void (*onEnter)(); + void (*onExit)(); } Area; static_assert(sizeof(Area) == 0x894); - extern Area gArea; +typedef struct { + u16 map_x; + u16 map_y; + u16 pixel_width; + u16 pixel_height; + u16 tileset_id; +} FORCE_WORD_ALIGNED RoomHeader; +static_assert(sizeof(RoomHeader) == 0xa); +extern RoomHeader* gAreaRoomHeaders[]; + +typedef struct { + u8 flags; + u8 location; + u8 flag_bank; + u8 _3; +} AreaHeader; +extern AreaHeader gAreaMetadata[]; + +typedef enum { + AREA_MINISH_WOODS, + AREA_MINISH_VILLAGE, + AREA_HYRULE_TOWN, + AREA_HYRULE_FIELD, + AREA_CASTOR_WILDS, + AREA_RUINS, + AREA_MT_CRENEL, + AREA_CASTLE_GARDEN, + AREA_CLOUD_TOPS, + AREA_ROYAL_VALLEY, + AREA_VEIL_FALLS, + AREA_LAKE_HYLIA, + AREA_LAKE_WOODS_CAVE, + AREA_BEANSTALKS, + AREA_EMPTY, + AREA_HYRULE_DIG_CAVES, + AREA_MELARIS_MINE, + AREA_MINISH_PATHS_1, + AREA_CRENEL_MINISH_PATHS, + AREA_DIG_CAVES_1, + AREA_CRENEL_DIG_CAVE, + AREA_FESTIVAL_TOWN, + AREA_VEIL_FALLS_DIG_CAVE, + AREA_CASTOR_WILDS_DIG_CAVE, + AREA_OUTER_FORTRESS_OF_WINDS, + AREA_HYLIA_DIG_CAVES, + AREA_VEIL_FALLS_TOP, + AREA_NULL_1B, + AREA_NULL_1C, + AREA_NULL_1D, + AREA_NULL_1E, + AREA_NULL_1F, + AREA_MINISH_HOUSE_INTERIORS, + AREA_HOUSE_INTERIORS_1, + AREA_HOUSE_INTERIORS_2, + AREA_HOUSE_INTERIORS_3, + AREA_TREE_INTERIORS, + AREA_DOJOS, + AREA_CRENEL_CAVES, + AREA_MINISH_CRACKS, + AREA_HOUSE_INTERIORS_4, + AREA_GREAT_FAIRIES, + AREA_CASTOR_CAVES, + AREA_CASTOR_DARKNUT, + AREA_ARMOS_INTERIORS, + AREA_TOWN_MINISH_HOLES, + AREA_MINISH_RAFTERS, + AREA_GORON_CAVE, + AREA_WIND_TRIBE_TOWER, + AREA_WIND_TRIBE_TOWER_ROOF, + AREA_CAVES, + AREA_VEIL_FALLS_CAVES, + AREA_ROYAL_VALLEY_GRAVES, + AREA_MINISH_CAVES, + AREA_CASTLE_GARDEN_MINISH_HOLES, + AREA_37, + AREA_EZLO_CUTSCENE, + AREA_NULL_39, + AREA_NULL_3A, + AREA_NULL_3B, + AREA_NULL_3C, + AREA_NULL_3D, + AREA_NULL_3E, + AREA_NULL_3F, + AREA_40, + AREA_HYRULE_TOWN_UNDERGROUND, + AREA_GARDEN_FOUNTAINS, + AREA_HYRULE_CASTLE_CELLAR, + AREA_SIMONS_SIMULATION, + AREA_45, + AREA_NULL_46, + AREA_47, + AREA_DEEPWOOD_SHRINE, + AREA_DEEPWOOD_SHRINE_BOSS, + AREA_DEEPWOOD_SHRINE_ENTRY, + AREA_NULL_4B, + AREA_NULL_4C, + AREA_4D, + AREA_NULL_4E, + AREA_NULL_4F, + AREA_CAVE_OF_FLAMES, + AREA_CAVE_OF_FLAMES_BOSS, + AREA_NULL_52, + AREA_NULL_53, + AREA_NULL_54, + AREA_NULL_55, + AREA_NULL_56, + AREA_57, + AREA_FORTRESS_OF_WINDS, + AREA_FORTRESS_OF_WINDS_TOP, + AREA_INNER_MAZAAL, + AREA_NULL_5B, + AREA_NULL_5C, + AREA_NULL_5D, + AREA_NULL_5E, + AREA_5F, + AREA_TEMPLE_OF_DROPLETS, + AREA_NULL_61, + AREA_HYRULE_TOWN_MINISH_CAVES, + AREA_NULL_63, + AREA_NULL_64, + AREA_NULL_65, + AREA_NULL_66, + AREA_67, + AREA_ROYAL_CRYPT, + AREA_NULL_69, + AREA_NULL_6A, + AREA_NULL_6B, + AREA_NULL_6C, + AREA_NULL_6D, + AREA_NULL_6E, + AREA_6F, + AREA_PALACE_OF_WINDS, + AREA_PALACE_OF_WINDS_BOSS, + AREA_NULL_72, + AREA_NULL_73, + AREA_NULL_74, + AREA_NULL_75, + AREA_NULL_76, + AREA_77, + AREA_SANCTUARY, + AREA_NULL_79, + AREA_NULL_7A, + AREA_NULL_7B, + AREA_NULL_7C, + AREA_NULL_7D, + AREA_NULL_7E, + AREA_7F, + AREA_HYRULE_CASTLE, + AREA_SANCTUARY_ENTRANCE, + AREA_NULL_82, + AREA_NULL_83, + AREA_NULL_84, + AREA_NULL_85, + AREA_NULL_86, + AREA_87, + AREA_DARK_HYRULE_CASTLE, + AREA_DARK_HYRULE_CASTLE_OUTSIDE, + AREA_VAATIS_ARMS, + AREA_VAATI_3, + AREA_VAATI_2, + AREA_DARK_HYRULE_CASTLE_BRIDGE, + AREA_NULL_8E, + AREA_8F, +} AreaID; + #endif diff --git a/include/entity.h b/include/entity.h index 432cea17..8c54edf0 100644 --- a/include/entity.h +++ b/include/entity.h @@ -51,8 +51,8 @@ typedef struct Entity { /*0x0e*/ u8 actionDelay; /*0x0f*/ u8 field_0xf; /*0x10*/ u8 flags; - /*0x11*/ u8 updateConditions : 4; // should we update this sprite during pause - /* */ u8 updateConditions2 : 4; + /*0x11*/ u8 updatePriority : 4; // Current priority -- See RequestPriority + /* */ u8 updatePriorityPrev : 4; // Priority to restore after request is over /*0x12*/ s16 spriteIndex; /*0x14*/ u8 animationState; /*0x15*/ u8 direction; @@ -195,7 +195,7 @@ enum { #define Direction8RoundUp(expr) Direction8Round((expr) + 2) #define Direction8TurnAround(expr) (Direction8RoundUp(expr) ^ 0x10) #define Direction8ToAnimationState(expr) (Direction8RoundUp(expr) >> 2) -#define Direction8FromAnimationState(expr) (((expr) << 2) +#define Direction8FromAnimationState(expr) ((expr) << 2) Entity* GetEmptyEntity(void); void DrawEntity(Entity*); @@ -217,11 +217,6 @@ void SetSpriteSubEntryOffsetData2(Entity*, u32, u32); u32 GetFacingDirection(Entity*, Entity*); -/** - * @brief Check if entity should sleep this frame. - */ -bool32 CheckDontUpdate(Entity* this); - /** * @brief Delete the entity currently in execution. */ @@ -232,14 +227,7 @@ void DeleteThisEntity(void); */ void DeleteEntity(Entity*); -/** - * @brief Append entity to linked list. - */ void AppendEntityToList(Entity* entity, u32 listIndex); - -/** - * @brief Prepend entity to linked list. - */ void PrependEntityToList(Entity* entity, u32 listIndex); /** @@ -274,4 +262,63 @@ Entity* FindEntity(u32 kind, u32 id, u32 listIndex, u32 type, u32 type2); void DeleteEntityAny(Entity* ent); +void UpdateEntities(void); +void UpdateManagers(void); + +void EraseAllEntities(void); + +enum { + PRIO_MIN = 0, + PRIO_PLAYER = 1, + PRIO_REQUESTED = 2, + PRIO_MESSAGE = 2, + PRIO_OVERRIDE_MESSAGE = 3, + PRIO_PLAYER_EVENT = 6, + PRIO_INITIALIZING = 7, +}; + +/** + * @brief Set the default priority for entity. + */ +void SetDefaultPriority(Entity* ent, u32 prio); + +/** + * @brief Check if entity should sleep this frame (according to priority). + */ +bool32 CheckDontUpdate(Entity* this); + +/** + * @brief Check if system or entity is blocking updates. + */ +bool32 AnyPrioritySet(void); + + +/// Entity Priority: Update blocking events requested by an entity. + +s32 SetMinPriority(u32 prio); + +void RequestPriority(Entity* this); +void RevokePriority(Entity* e); + +void RequestPriorityDuration(Entity* this, u32 time); +void SetPriorityTimer(u32 time); + +void RequestPriorityOverPlayer(Entity* this); +void RevokePriorityOverPlayer(Entity* this); + +void ResetEntityPriority(void); + + +/// System Priority: Update blocking events sent by the engine. + +void SetPlayerEventPriority(void); +void ResetPlayerEventPriority(void); +void SetRoomReloadPriority(void); +void SetInitializationPriority(void); + +void ResetSystemPriority(void); + +extern u8 gEntCount; +extern u8 gManagerCount; + #endif diff --git a/include/fileScreen.h b/include/fileScreen.h index ef528333..fd4b7c7e 100644 --- a/include/fileScreen.h +++ b/include/fileScreen.h @@ -33,10 +33,11 @@ typedef struct { } struct_080FC844; typedef struct { - union SplitWord _0[8]; + union SplitWord _0; + union SplitWord _4; } struct_020227E8; -extern struct_020227E8 gUnk_020227E8; +extern struct_020227E8 gUnk_020227E8[]; typedef struct { /*0x00*/ u8 isTransitioning; diff --git a/include/flags.h b/include/flags.h index 8e0a5809..e7219f3a 100644 --- a/include/flags.h +++ b/include/flags.h @@ -7,28 +7,52 @@ u32 CheckFlags(u32); u32 CheckGlobalFlag(u32); u32 CheckGlobalFlags(u32, u32); extern u32 CheckLocalFlag(u32); -extern u32 CheckLocalFlagByOffset(u32, u32); +extern u32 CheckLocalFlagByBank(u32, u32); u32 CheckLocalFlags(u32, u32); -u32 CheckLocalFlagsByOffset(u32, u32, u32); +u32 CheckLocalFlagsByBank(u32, u32, u32); u32 CheckRoomFlag(u32); u32 CheckRoomFlags(u32, u32); void ClearFlag(u32); void ClearGlobalFlag(u32); void ClearLocalFlag(u32); -void ClearLocalFlagByOffset(u32, u32); +void ClearLocalFlagByBank(u32, u32); void ClearRoomFlag(u32); void SetFlag(u32); void SetGlobalFlag(u32); void SetLocalFlag(u32); -void SetLocalFlagByOffset(u32, u32); +void SetLocalFlagByBank(u32, u32); void SetRoomFlag(u32); +extern u32 ReadBit(u32*, u32); +extern u32 CheckBits(u32*, u32, u32); +extern void WriteBit(u32*, u32); +extern void ClearBit(u32*, u32); + extern u32 gGlobalFlags; extern u32 gRoomFlags; -typedef enum _Flag { +extern const u16 gLocalFlagBanks[]; + +enum LocalFlagOffsets { + FLAG_BANK_G = 0, + FLAG_BANK_0 = 0, + FLAG_BANK_1 = 0x100, + FLAG_BANK_2 = 0x200, + FLAG_BANK_3 = 0x300, + FLAG_BANK_4 = 0x400, + FLAG_BANK_5 = 0x500, + FLAG_BANK_6 = 0x5C0, + FLAG_BANK_7 = 0x680, + FLAG_BANK_8 = 0x740, + FLAG_BANK_9 = 0x800, + FLAG_BANK_10 = 0x8C0, + FLAG_BANK_11 = 0x9C0, + FLAG_BANK_12 = 0xA80, +}; + +typedef enum { BEGIN, /*0x01*/ LV0_CLEAR, /* */ /*0x02*/ LV1_CLEAR, /* */ diff --git a/include/functions.h b/include/functions.h index b4316733..58e54500 100644 --- a/include/functions.h +++ b/include/functions.h @@ -22,7 +22,6 @@ extern void SetChildOffset(Entity*, s32, s32, s32); extern Entity* CreatePlayerItem(u32, u32, u32, u32); extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer); extern u32 GetTileType(u32 pos, u32 layer); -extern void EraseAllEntities(void); extern void SetTile(u32, u32, u32); extern void SetDirtTile(u32); extern void LoadRoomTileEntities(); // tba @@ -73,15 +72,12 @@ extern void sub_0805EC9C(); extern void sub_0805EC60(Entity*); extern u32 sub_080045D4(s16, s16, u32, u32); extern void sub_0806F69C(Entity*); -extern void sub_0805E3A0(void*, u32); extern void sub_0806D0B0(Entity*); extern void sub_0806D02C(Entity*); extern u32 sub_0806F5A4(u32); extern void sub_08078784(Entity*, u32); extern s32 sub_0806ED9C(Entity*, u32, u32); extern void sub_0807000C(Entity*); -extern void sub_0805E47C(Entity*); -extern void sub_0805E584(Entity*); extern void sub_08068BEC(Entity*, u32); extern s32 sub_0806F078(Entity*, s32); extern void sub_0801D2B4(Entity*, u32); @@ -104,8 +100,6 @@ extern void sub_08077F50(ItemBehavior* beh, u32 arg1); extern void sub_0807AA80(Entity*); extern s32 sub_0807887C(Entity*, u32, u32); extern s32 sub_08078904(); -extern void sub_0805E5A8(void); -extern void UpdateEntities(void); extern void sub_080AD9B0(void); extern void sub_080AD918(void); extern void sub_0801E104(void); @@ -133,11 +127,10 @@ extern void sub_0809F814(u32); extern void sub_080300E8(void); extern void sub_08058D34(void); extern void sub_0807AABC(Entity*); -extern void sub_08078A90(u32); -extern void sub_080530C8(void); +extern void UpdateGlobalProgress(void); extern void sub_0805B4D0(u32); extern void sub_0804D0B4(void); -extern void sub_0805308C(u32); +extern void sub_0805308C(s32); extern void sub_080534AC(); extern void sub_0807BA8C(u32, u32); extern void sub_0804D9B0(); @@ -222,12 +215,12 @@ extern void sub_08080CB4(Entity*); extern u32 sub_0800442E(Entity*); extern void sub_08081404(Entity*, u32); extern void sub_0807B7D8(u32, u32, u32); -extern void sub_08052D74(void*, void (*)(), void (*)()); +extern void RegisterTransitionManager(void*, void (*)(), void (*)()); extern void sub_0800451C(Entity*); extern u32 sub_080002F0(u32, u32, u32); extern u32 sub_080040D8(Entity*, u8*, s32, s32); extern void sub_08053320(); -extern void sub_0801D79C(u32, u32); +extern void SetColor(u32, u32); extern u32 sub_0805F8F8(u32); extern void sub_08002724(void*, u8*); extern void sub_080026C4(u8*, u8*, u8*, u32); @@ -277,8 +270,6 @@ extern void sub_080787B4(Entity*); extern void sub_0808C650(Entity*, u32); extern u32 sub_0808C67C(void); extern void sub_0808C688(void); -extern void sub_0805E4A0(Entity*); -extern void sub_0805E4CC(Entity*); extern Entity* sub_08077C94(ItemBehavior*, u32); extern Entity* sub_08077C0C(ItemBehavior*, u32); @@ -301,6 +292,5 @@ extern void sub_0801855C(void); extern u32 sub_0807CAEC(u32); extern void sub_0807CAC8(u32); -extern void sub_0805E4E0(Entity*, u32); extern void LoadObjPalette(Entity*, u32); #endif diff --git a/include/global.h b/include/global.h index 489f276d..669d2557 100644 --- a/include/global.h +++ b/include/global.h @@ -97,4 +97,6 @@ union SplitHWord { } PACKED HALF; } PACKED; +#define FORCE_WORD_ALIGNED __attribute__((packed, aligned(2))) + #endif // GUARD_GLOBAL_H diff --git a/include/main.h b/include/main.h index 3225f2ed..5721b22d 100644 --- a/include/main.h +++ b/include/main.h @@ -3,6 +3,11 @@ #include "global.h" +#define SIGNATURE 'MCZ3' +#define MAX_MSG_SPEED 3 +#define NUM_SAVE_SLOTS 3 +#define MAX_BRIGHTNESS 3 + typedef struct { // 0x03001000 u8 field_0x0; u8 field_0x1; @@ -17,11 +22,6 @@ typedef struct { // 0x03001000 u32 spritePriority; } MainStruct; -#define SIGNATURE 'MCZ3' -#define MAX_MSG_SPEED 3 -#define NUM_SAVE_SLOTS 3 -#define MAX_BRIGHTNESS 3 - typedef enum { LANGUAGE_JP, LANGUAGE_EN, @@ -79,6 +79,9 @@ static_assert(sizeof(UI) == 0x3b4); extern Main gMain; extern UI gUnk_02032EC0; +/** + * @brief Begin a subroutine. + */ void InitScreen(u32 screen); extern void sub_08056208(void); @@ -99,6 +102,4 @@ extern void DisableInterruptsAndDMA(void); extern void EnableVBlankIntr(void); extern void sub_08056250(void); -static void sub_08055F70(void); -static bool32 SoftResetKeysPressed(void); #endif diff --git a/include/player.h b/include/player.h index 816cea1f..e1ef7001 100644 --- a/include/player.h +++ b/include/player.h @@ -1,12 +1,10 @@ -// clang-format off - #ifndef PLAYER_H #define PLAYER_H #include "global.h" #include "entity.h" -enum { +enum PlayerActions { PLAYER_INIT, PLAYER_NORMAL, PLAYER_DUMMY, @@ -41,8 +39,32 @@ enum { PLAYER_PARACHUTE, }; -enum { - PL_IS_MINISH = (1 << 7), +enum PlayerSpawnType { + PL_SPAWN_DEFAULT, + PL_SPAWN_MINISH, + PL_SPAWN_DROP, + PL_SPAWN_WALKING, + PL_SPAWN_STEP_IN, + PL_SPAWN_SPECIAL, + PL_SPAWN_DROP_MINISH, + PL_SPAWN_STAIRS_ASCEND, + PL_SPAWN_STAIRS_DESCEND, + PL_SPAWN_9, + PL_SPAWN_PARACHUTE_FORWARD, + PL_SPAWN_PARACHUTE_UP, + PL_SPAWN_FAST_TRAVEL, +}; + +typedef enum { + CONTROL_ENABLED, + CONTROL_1, + CONTROL_2, + CONTROL_DISABLED, +} PlayerControlMode; + +enum PlayerFlags { + PL_NO_CAP = (1 << 3), + PL_MINISH = (1 << 7), }; typedef struct { @@ -115,7 +137,6 @@ typedef struct { /*0xae*/ u16 field_0xae; } PlayerState; - typedef struct { /*0x00*/ u8 walletType; /*0x01*/ u8 heartPieces; @@ -156,19 +177,18 @@ extern void (*const gPlayerItemFunctions[])(Entity*); extern u8 gBombBagSizes[]; extern u8 gQuiverSizes[]; +extern u16 gWalletSizes[]; extern PlayerState gPlayerState; extern Stats gStats; extern Entity gPlayerEntity; - extern u32 GetInventoryValue(u32); extern s32 ModHealth(s32); extern void ModRupees(s32); +extern void SetPlayerControl(PlayerControlMode); + #define COPY_FLAG_FROM_TO(base, src, dest) (base) = ((base) & ~(dest)) | (((dest) * ((base) & (src))) / src) - #endif - -// clang-format on diff --git a/include/room.h b/include/room.h index 04cc36e0..8561da49 100644 --- a/include/room.h +++ b/include/room.h @@ -11,6 +11,19 @@ typedef struct { } RoomID; */ +enum RoomTransition { + TRANSITION_DEFAULT, + TRANSITION_CUT, + TRANSITION_FADE_WHITE_SLOW, + TRANSITION_3, + TRANSITION_FADE_BLACK_SLOW, + TRANSITION_FADE_BLACK, + TRANSITION_FADE_BLACK_FAST, + TRANSITION_7, + TRANSITION_FADE_WHITE_FAST, + TRANSITION_CUT_FAST, +}; + typedef struct { /*0x00*/ u16 unk2; /*0x02*/ u8 unk3; @@ -38,6 +51,7 @@ typedef struct { /*0x2C*/ union SplitWord bg3OffsetY; /*0x30*/ Entity* cameraTarget; } RoomControls; +extern RoomControls gRoomControls; typedef struct { u8 field_0x0; @@ -52,16 +66,18 @@ typedef struct { u8 field_0x9; u8 unk2; u8 filler2; - u16 field_0xc; + s16 field_0xc; u8 filler3[2]; u8 unk_10[4]; u32 roomFlags; u32 unk3; u8 filler4[48]; u8 filler5[28]; - u32 greatFairyState; - void* field_0x6c[8]; + u32 animFlags; + void* field_0x6c[24]; } RoomVars; +static_assert(sizeof(RoomVars) == 0xCC); +extern RoomVars gRoomVars; // Packets used to store which entities to load in a room typedef struct { @@ -75,8 +91,56 @@ typedef struct { u32 spritePtr; } EntityData; -extern RoomControls gRoomControls; -extern RoomVars gRoomVars; +// Status of the player's positioning within the scene. +typedef struct { + u8 area_next; + u8 room_next; + u8 start_anim; + u8 spawn_type; + Coords start_pos; + u8 layer; + u8 field_0x15; + u8 field_0x16; + u8 field_0x17; + s16 field_0x18; + s16 field_0x1a; + s16 field_0x1c; + s16 field_0x1e; + s16 field_0x20; + s16 field_0x22; + u8 field_0x24[0x8]; +} PlayerWorldStatus; +static_assert(sizeof(PlayerWorldStatus) == 0x20); + +typedef struct { + s32 frameCount; // regular frame count? does anything reset it? + u8 field_0x4[0x2]; + u16 field_0x6; + bool8 transitioningOut; + u8 transitionType; // transition when changing areas + u16 stairs_idx; // seems to be a tile type + PlayerWorldStatus player_status; + u8 field_0x2c[0xa]; + u16 field_0x36; + u8 field_0x38; + u8 field_0x39; + u8 field_0x3a; + u8 field_0x3b; + u8 field_0x3c; + u8 field_0x3d; + u16 field_0x3e; + u16 hurtType; + u16 field_0x42; + u16 field_0x44; + u16 field_0x46; + u16 field_0x48; + u16 field_0x4a; + u8 minecart_data[0x20]; + u8 field_0x6c[0x40]; + u16 field_0xac; + u16 field_0xae; +} ScreenTransition; +extern ScreenTransition gScreenTransition; extern void SetTileType(u32, u32, u32); extern void sub_08080964(u32 time, u32 magnitude); // shake screen diff --git a/include/save.h b/include/save.h index adfb7f45..56e953a1 100644 --- a/include/save.h +++ b/include/save.h @@ -4,6 +4,7 @@ #include "global.h" #include "player.h" #include "structures.h" +#include "room.h" #define FILENAME_LENGTH 6 @@ -29,30 +30,22 @@ typedef struct { /*0x004*/ u8 filler4[0x2]; /*0x006*/ u8 unk6; /*0x007*/ u8 unk7; - /*0x008*/ u8 unk8; + /*0x008*/ u8 global_progress; /*0x009*/ u8 field_0x9[0x34]; /*0x040*/ u32 windcrests; /*0x044*/ u8 filler44[0xC]; /*0x050*/ u32 unk50; - /*0x054*/ u8 filler54[0x2C]; + /*0x054*/ u8 filler54[0xC]; + /*0x060*/ u32 areaVisitFlags[8]; /*0x080*/ u8 playerName[FILENAME_LENGTH]; /*0x086*/ u8 filler86[0x2]; - /*0x088*/ u8 unk_88; - /*0x089*/ u8 unk_89; - /*0x08A*/ u8 unk_8A; - /*0x08B*/ u8 unk_8B; - /*0x08C*/ u16 unk_8C; - /*0x08E*/ u16 unk_8E; - /*0x08F*/ u8 unk_8F; - /*0x090*/ u8 filler91[0x15]; + /*0x088*/ PlayerWorldStatus saved_status; /*0x0A8*/ Stats stats; /*0x0D0*/ u8 fillerD0[0x71]; - /*0x141*/ u8 unk141[0x34f]; - /*0x490*/ u32 unk490; - /*0x494*/ u32 unk494; - /*0x498*/ u32 unk498; - /*0x49C*/ u8 filler49C[0xC]; - /*0x4a8*/ u32 unk_4a8; + /*0x141*/ u8 unk141[0x45c - 0x141]; + /*0x45c*/ u8 unk45C[0x10]; + /*0x46c*/ u8 unk46C[0x20]; + /*0x48c*/ u32 unk48C[8]; /*0x4ac*/ u8 filler4ac[0x8]; } SaveFile; diff --git a/include/screen.h b/include/screen.h index 12c30c57..aaca4ef6 100644 --- a/include/screen.h +++ b/include/screen.h @@ -7,7 +7,7 @@ typedef struct { u16 displayControl; u8 filler2[0x2]; u16 unk4; - u16 unk6; + u16 displayControlMask; } LcdControls; typedef struct { diff --git a/include/structures.h b/include/structures.h index 3ad3e06b..671e41ea 100644 --- a/include/structures.h +++ b/include/structures.h @@ -36,44 +36,6 @@ typedef struct { extern struct_02000010 gUnk_02000010; -typedef struct { - s32 frameCount; // regular frame count? does anything reset it? - u8 field_0x4[0x2]; - u16 field_0x6; - bool8 transitioningOut; - u8 transitionType; // transition when changing areas - u16 field_0xa; // seems to be a tile type - u8 areaID; - u8 roomID; - u8 playerState; - u8 field_0xf; - Coords playerStartPos; - u8 playerLayer; - u8 field_0x13; - u8 field_0x14[0xa]; - u16 field_0x20; - u16 field_0x22; - u8 field_0x24[0x14]; - u8 field_0x38; - u8 field_0x39; - u8 field_0x3a; - u8 field_0x3b; - u8 field_0x3c; - u8 field_0x3d; - u16 field_0x3e; - u16 hurtType; - u16 field_0x42; - u16 field_0x44; - u16 field_0x46; - u16 field_0x48; - u16 field_0x4a; - u8 field_0x4c[0x60]; - u16 field_0xac; - u16 field_0xae; -} ScreenTransition; - -extern ScreenTransition gScreenTransition; - typedef struct { u16 transitionType; u8 field_0x2[4]; @@ -112,7 +74,6 @@ typedef struct { u8 unk1; u16 unk2; } struct_020354C0; - extern struct_020354C0 gUnk_020354C0[0x20]; typedef struct { @@ -124,13 +85,11 @@ typedef struct { u8 ezloNagFuncIndex; u8 filler25[0x30F]; } struct_0200AF00; - extern struct_0200AF00 gUnk_0200AF00; typedef struct { u8 unk0; } struct_02024490; - extern struct_02024490 gGFXSlots; typedef struct { @@ -140,7 +99,6 @@ typedef struct { u8 flags; u8 unk_08; } struct_02033280; - extern struct_02033280 gActiveScriptInfo; typedef struct { @@ -175,15 +133,14 @@ struct { static_assert(sizeof(gUnk_03000B80) == 0x70); typedef struct { - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - Entity* unk4; - u16 unk_0xc; -} EntityHandler; - -extern EntityHandler gUnk_03003DC0; + u8 sys_priority; // system requested priority + u8 ent_priority; // entity requested priority + u8 queued_priority; + u8 queued_priority_reset; + Entity* requester; + u16 priority_timer; +} PriorityHandler; +extern PriorityHandler gPriorityHandler; extern u8 gUnk_02022740[]; extern u8 gUnk_02034490[]; diff --git a/include/textbox.h b/include/textbox.h index b2603fbf..894c5d9d 100644 --- a/include/textbox.h +++ b/include/textbox.h @@ -118,6 +118,14 @@ void MessageNoOverlap(u32 index, Entity* entity); */ void MessageFromTarget(u32 index); +/** + * @brief Display message at y position. + * + * @param index u32 Message index + * @param y u32 Screen y + */ +void MessageAtHeight(u32 index, u32 y); + void DispMessageFrame(u16*, u32, u32, u32); #endif diff --git a/include/utils.h b/include/utils.h index 004a5ada..19c57f14 100644 --- a/include/utils.h +++ b/include/utils.h @@ -40,8 +40,8 @@ void ReadKeyInput(void); void LoadPalettes(const u8*, int, int); void LoadPaletteGroup(u32 group); -void sub_0801D79C(u32 colorIndex, u32 color); -void sub_0801D7BC(u32 color, u32 arg1); +void SetColor(u32 colorIndex, u32 color); +void SetFillColor(u32 color, u32 arg1); /** * Allocate memory on heap. diff --git a/linker.ld b/linker.ld index 052e3042..2013d083 100644 --- a/linker.ld +++ b/linker.ld @@ -214,8 +214,8 @@ SECTIONS { . = 0x00003DB0; gUnk_03003DB0 = .; . = 0x00003DB8; gCollidableCount = .; . = 0x00003DBC; gEntCount = .; - . = 0x00003DC0; gUnk_03003DC0 = .; - . = 0x00003DD0; gUnk_03003DD0 = .; + . = 0x00003DC0; gPriorityHandler = .; + . = 0x00003DD0; gUpdateContext = .; . = 0x00003DE0; gUnk_03003DE0 = .; . = 0x00003DE4; gUnk_03003DE4 = .; . = 0x00003DF0; gUnk_03003DF0 = .; @@ -490,7 +490,7 @@ SECTIONS { asm/code_08050038.o(.text); src/fileScreen.o(.text); asm/fileScreen.o(.text); - src/game.o(.text); + src/overworld.o(.text); asm/code_080526F8.o(.text); asm/modBombs.o(.text); asm/modArrows.o(.text); @@ -1182,6 +1182,8 @@ SECTIONS { data/data_080FC3C4.o(.rodata); src/fileScreen.o(.rodata); data/data_080FC8A4.o(.rodata); + src/overworld.o(.rodata); + data/data_080FCAC8.o(.rodata); data/const/playerItem/playerItemLantern.o(.rodata); data/data_080FEEB8.o(.rodata); data/gfx/palette_groups.o(.rodata); @@ -1405,6 +1407,7 @@ SECTIONS { data/const/item/itemJarEmpty.o(.rodata); data/data_0811BE38.o(.rodata); data/map/room_headers.o(.rodata); + src/flags.o(.rodata); src/save.o(.rodata); data/data_0811E454.o(.rodata); src/script.o(.rodata); diff --git a/src/code_080300AC.c b/src/code_080300AC.c index 993de6ee..612df34a 100644 --- a/src/code_080300AC.c +++ b/src/code_080300AC.c @@ -18,6 +18,6 @@ void sub_080300AC(void) { void sub_080300C4(void) { if (gScreenTransition.field_0xae == 0xff) { gScreenTransition.field_0xac = 0; - MemClear(&gScreenTransition.field_0x4c[32], 0x40); + MemClear(gScreenTransition.field_0x6c, sizeof gScreenTransition.field_0x6c); } } diff --git a/src/code_0804AA84.c b/src/code_0804AA84.c index e3839d74..c9f70c55 100644 --- a/src/code_0804AA84.c +++ b/src/code_0804AA84.c @@ -23,7 +23,7 @@ u32 sub_0804AA84(void) { gArea.filler[8] = 0; gArea.filler[9] = 0; *(u16*)&gArea.filler[10] = 0; - sub_0805E5A8(); + SetInitializationPriority(); return 1; } else { gArea.filler[18] = gArea.playShrinkSeq; diff --git a/src/code_0805436C.c b/src/code_0805436C.c index 8eb7df11..a2352185 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -152,7 +152,7 @@ NONMATCH("asm/non_matching/sub_08054524.inc", void sub_08054524(void)) { bVar1 = gArea.locationIndex; if (gArea.locationIndex == 0) { - bVar1 = gScreenTransition.field_0x24[0xa]; + bVar1 = gScreenTransition.player_status.field_0x24[0xa]; } if (bVar1 > 0x16) { bVar1 = 0; diff --git a/src/code_0808091C.c b/src/code_0808091C.c index 49c654d7..4e9d7561 100644 --- a/src/code_0808091C.c +++ b/src/code_0808091C.c @@ -11,24 +11,23 @@ extern u32 gUnk_02025EB0; extern u8 gUpdateVisibleTiles; void sub_080808D8(void) { - gScreenTransition.transitionType = 0; + gScreenTransition.transitionType = TRANSITION_DEFAULT; } void sub_080808E4(void) { - - if (sub_08052638(gScreenTransition.areaID)) { - gScreenTransition.transitionType = 0; + if (sub_08052638(gScreenTransition.player_status.area_next)) { + gScreenTransition.transitionType = TRANSITION_DEFAULT; } else { - gScreenTransition.transitionType = 5; + gScreenTransition.transitionType = TRANSITION_FADE_BLACK; } } void sub_08080904(void) { - gScreenTransition.transitionType = 1; + gScreenTransition.transitionType = TRANSITION_CUT; } void sub_08080910(void) { - gScreenTransition.transitionType = 1; + gScreenTransition.transitionType = TRANSITION_CUT; } void sub_0808091C(ScreenTransitionData* param_1, u32 param_2) { @@ -43,7 +42,7 @@ void sub_08080930(void) gRoomControls.unk4 = 0; gRoomControls.unk2 = 2; gRoomControls.unk_10 = 0; - sub_0805E5A8(); + SetInitializationPriority(); } u32* GetLayerByIndex(u32 param_1) { diff --git a/src/collision.c b/src/collision.c index 4e0995e2..026724ed 100644 --- a/src/collision.c +++ b/src/collision.c @@ -52,12 +52,15 @@ void ClearHitboxList(void) { void CollisionMain(void) { void (*doCollision)(void); - u32 temp; + u32 prio; - temp = gUnk_03003DC0.unk0; - if (gUnk_03003DC0.unk0 <= gUnk_03003DC0.unk1) - temp = gUnk_03003DC0.unk1; - if (temp != 0) + // pick highest priority + prio = gPriorityHandler.sys_priority; + if (gPriorityHandler.sys_priority <= gPriorityHandler.ent_priority) + prio = gPriorityHandler.ent_priority; + + // if any min priority is set, dont do collision + if (prio) return; doCollision = &gDoCollision; @@ -476,7 +479,7 @@ int sub_08017DD4(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) tgt->damage = 4; gPlayerEntity.health = sub_08017874(&gPlayerEntity, tgt); tgt->iframes = -12; - if ((gPlayerState.flags & PL_IS_MINISH) == 0) { + if ((gPlayerState.flags & PL_MINISH) == 0) { sub_08079D84(); org->iframes = 90; } else { @@ -532,7 +535,7 @@ s32 sub_08017F40(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) #ifdef EU (gPlayerState.flags & 0x81) == 0 && #else - (gPlayerState.flags & PL_IS_MINISH) == 0 && + (gPlayerState.flags & PL_MINISH) == 0 && #endif !gPlayerState.swimState) { gPlayerState.field_0x1a[0] |= 0x80u; diff --git a/src/debugScreen.c b/src/debugScreen.c index c34abe12..a12ec0a1 100644 --- a/src/debugScreen.c +++ b/src/debugScreen.c @@ -29,7 +29,7 @@ void sub_0805FA04(void) { MemClear((void*)&gMenu, sizeof(Menu)); gMenu.unk16 = gSaveHeader->gameLanguage; sub_08053320(); - sub_0801D79C(0, 0x1144); + SetColor(0, 0x1144); gMain.funcIndex = 1; InitSoundPlayingInfo(); sub_08050008(); diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index a9c7bbd4..a0c18290 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -210,7 +210,7 @@ void sub_08028BC4(Entity* this) { if (iVar1 != NULL) { iVar1->spritePriority.b0 = 3; iVar1->z.HALF.HI -= 12; - sub_0805E3A0(iVar1, 2); + SetDefaultPriority(iVar1, 2); } SetFlag(this->field_0x86.HWORD); sub_0802925C(this); @@ -251,7 +251,7 @@ void sub_08028CE8(Entity* this) { if (sub_080291DC(this)) { /* Bag full. */ MessageFromTarget(0x2904); - sub_08078A90(0); + SetPlayerControl(0); } else { ModRupees(-offer->price); switch (offer->field_0x0 >> 2) { @@ -286,7 +286,7 @@ void sub_08028CE8(Entity* this) { } else { /* Not enough money. */ MessageFromTarget(0x2903); - sub_08078A90(0); + SetPlayerControl(0); } } @@ -299,7 +299,7 @@ void sub_08028CE8(Entity* this) { void sub_08028DE8(Entity* this) { if (gPlayerEntity.action == 8) { if (this->field_0x80.HALF.HI == 0) { - sub_08078A90(1); + SetPlayerControl(1); this->field_0x80.HALF.HI = 1; } } else { @@ -308,7 +308,7 @@ void sub_08028DE8(Entity* this) { this->field_0x80.HALF.HI = 0; this->actionDelay = 1; sub_08028EDC(this); - sub_08078A90(0); + SetPlayerControl(0); sub_0800445C(this); GetNextFrame(this); } @@ -324,7 +324,7 @@ void sub_08028E40(Entity* this) { if (CheckLocalFlag(offer->field_0xa) == 0) { SetLocalFlag(offer->field_0xa); } - sub_08078A90(0); + SetPlayerControl(0); } sub_0800445C(this); GetNextFrame(this); @@ -381,7 +381,7 @@ void sub_08028F0C(Entity* this) { this->action = 7; } dialog = offer->field_0x4; - sub_08078A90(1); + SetPlayerControl(1); } MessageFromTarget(dialog); gMessage.field_0x10 = offer->price; diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c index 0eadf657..6dce5fba 100644 --- a/src/enemy/likeLike.c +++ b/src/enemy/likeLike.c @@ -58,7 +58,7 @@ void sub_08027DA4(Entity* this) { void sub_08027E40(Entity* this) { if (this->actionDelay == 2 && this->field_0x80.HALF.LO != 0xff) { - sub_0805E3A0(this, 3); + SetDefaultPriority(this, 3); sub_08028224(this->field_0x80.HALF.LO); } sub_0804A7D4(this); diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c index c450170f..ce77d2c4 100644 --- a/src/enemy/mazaalHead.c +++ b/src/enemy/mazaalHead.c @@ -816,7 +816,7 @@ void sub_08034BC8(Entity* this) { } void sub_08034C00(Entity* this) { - if (((gPlayerState.flags & PL_IS_MINISH) != 0) && + if (((gPlayerState.flags & PL_MINISH) != 0) && CheckPlayerInRegion(this->x.HALF.HI - gRoomControls.roomOriginX, this->y.HALF.HI - gRoomControls.roomOriginY + 0xd, 3, 3) != 0) { if (gScreenTransition.field_0x39 >= 0x3d) { diff --git a/src/enemy/mazaalMacro.c b/src/enemy/mazaalMacro.c index fbb030b8..89eed0d1 100644 --- a/src/enemy/mazaalMacro.c +++ b/src/enemy/mazaalMacro.c @@ -10,7 +10,6 @@ extern void sub_0807B600(u32); extern const u16 script_08012E20[]; -extern const u8 gEntCount; void sub_08034E18(Entity*); void sub_08034FA0(Entity*); diff --git a/src/enemy/vaatiArm.c b/src/enemy/vaatiArm.c index c660bda9..139b1fe0 100644 --- a/src/enemy/vaatiArm.c +++ b/src/enemy/vaatiArm.c @@ -1352,13 +1352,13 @@ void sub_08043DB0(Entity* this) { Entity* pEVar3; Entity* pEVar4; - if (((gPlayerState.flags & PL_IS_MINISH) != 0)) { + if (((gPlayerState.flags & PL_MINISH) != 0)) { pEVar3 = ((VaatiArm_HeapStruct*)this->myHeap)->entities[3]; if (CheckPlayerInRegion(pEVar3->x.HALF.HI - gRoomControls.roomOriginX, pEVar3->y.HALF.HI - gRoomControls.roomOriginY + 2, 3, 3)) { DoExitTransition((ScreenTransitionData*)&gUnk_080D13EC); if ((gScreenTransition.field_0x39 & 3) != 3) { - gScreenTransition.roomID = 1; + gScreenTransition.player_status.room_next = 1; } cVar1 = this->field_0x7a.HWORD; gScreenTransition.field_0x3d = 0x1e - (cVar1 / 0x3c); diff --git a/src/enemy/vaatiProjectile.c b/src/enemy/vaatiProjectile.c index c1cf9435..c8c85e44 100644 --- a/src/enemy/vaatiProjectile.c +++ b/src/enemy/vaatiProjectile.c @@ -68,7 +68,7 @@ void VaatiProjectileFunction1(Entity* this) { gPlayerEntity.spriteRendering.b3 = this->spriteRendering.b3; sub_0803E444(this); #ifndef EU - sub_08078A90(2); + SetPlayerControl(2); entity = this->parent; if (entity != NULL) { entity->flags = entity->flags & 0x7f; @@ -196,7 +196,7 @@ void VaatiProjectileFunction0Action7(Entity* this) { sub_0806F69C(this); sub_0803E4D8(this); if ((gRoomControls.roomOriginY + gRoomControls.height + -0x10) <= this->y.HALF.HI) { - sub_0805E5A8(); + SetInitializationPriority(); DoExitTransition((ScreenTransitionData*)&gUnk_0813AB94); } } diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index 87acecc2..43d870c1 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -567,7 +567,7 @@ void sub_08041BE8(Entity* this) { if (sub_08079F8C() != 0) { this->subAction = 1; this->actionDelay = 120; - this->updateConditions = 3; + this->updatePriority = 3; InitAnimationForceUpdate(this, 10); entity = ((VaatiWrathHeapStruct*)this->myHeap)->type1; @@ -576,7 +576,7 @@ void sub_08041BE8(Entity* this) { ((VaatiWrathHeapStruct*)this->myHeap)->type1 = NULL; entity = ((VaatiWrathHeapStruct*)this->myHeap)->type2; - entity->updateConditions = 3; + entity->updatePriority = 3; sub_080AE068(entity); LoadFixedGFX(entity, 0x1f5); sub_0801D2B4(entity, 0x16b); @@ -614,7 +614,7 @@ void sub_08041BE8(Entity* this) { DeleteEntity(entity); ((VaatiWrathHeapStruct*)this->myHeap)->eyes[3] = NULL; - sub_08078A90(2); + SetPlayerControl(2); } } @@ -1001,8 +1001,8 @@ void sub_0804235C(Entity* this) { void VaatiWrathType0PreAction(Entity* this) { int temp; if ((gScreenTransition.field_0x38 & 2) == 0) { - if (gSave.unk498 != 0) { - gSave.unk498--; + if (gSave.unk48C[3] != 0) { + gSave.unk48C[3]--; } else { temp = gPlayerState.field_0xa9; if (temp < 2) { diff --git a/src/enemy/wallMaster.c b/src/enemy/wallMaster.c index fdc73c5b..a0d612f7 100644 --- a/src/enemy/wallMaster.c +++ b/src/enemy/wallMaster.c @@ -165,8 +165,8 @@ void sub_0802A69C(Entity* this) { void sub_0802A734(Entity* this) { sub_0802A7D0(this); if (--this->actionDelay == 0) { - sub_0805E5A8(); - DoExitTransition(gUnk_0813AB1C[gArea.regret]); + SetInitializationPriority(); + DoExitTransition(gUnk_0813AB1C[gArea.dungeon_idx]); } else { this->z.WORD -= 0x20000; gPlayerState.field_0xa |= 0x80; diff --git a/src/enemy/wallMaster2.c b/src/enemy/wallMaster2.c index cde62fa1..03d35e80 100644 --- a/src/enemy/wallMaster2.c +++ b/src/enemy/wallMaster2.c @@ -138,8 +138,8 @@ void sub_0802CE68(Entity* this) { void sub_0802CEF4(Entity* this) { sub_0802CFD8(this); if (--this->actionDelay == 0) { - sub_0805E5A8(); - DoExitTransition(gUnk_0813AB1C[gArea.regret]); + SetInitializationPriority(); + DoExitTransition(gUnk_0813AB1C[gArea.dungeon_idx]); } else { this->z.WORD -= 0x20000; if (this->z.HALF.HI < -0x30) { diff --git a/src/entity.c b/src/entity.c index 8914c1e0..c308b2b6 100644 --- a/src/entity.c +++ b/src/entity.c @@ -7,30 +7,48 @@ #include "script.h" #include "textbox.h" -extern void sub_0805E3A0(void*, u32); extern u8 gUnk_081091F8[]; extern u8 gUnk_081091EE[]; extern u8 gUpdateVisibleTiles; -extern u8 gEntCount; -extern u8 gManagerCount; extern Manager gUnk_02033290; - -void sub_0805E524(void); -void sub_0805E510(u32); void sub_0805ED30(void); void ClearHitboxList(void); void sub_0806F0A4(void); -void UpdateEntities_arm(u32); void sub_0805EE88(void); void ClearAllDeletedEntities(void); void DeleteAllEntities(void); void sub_0805E98C(void); +extern void sub_080AE068(); +extern void UnloadOBJPalette(); +extern void sub_0806FE84(); +extern void sub_080788E0(); +extern void sub_08078954(); +extern void sub_0805EC60(); +extern void sub_08017744(Entity*); +extern void UnloadHitbox(); +extern void sub_0804AA1C(); + +extern void _ClearAndUpdateEntities(); +extern void UpdateEntities_arm(u32); + +void SetPriorityTimer(u32); +static void UpdatePriorityTimer(void); +static void ReleaseTransitionManager(); +static void UnlinkEntity(); + +typedef struct { + void* table; + void* list_top; + Entity* current_entity; + void* restore_sp; +} UpdateContext; +extern UpdateContext gUpdateContext; void sub_0805E248(void) { s32 v0; v0 = gUnk_03004030.unk_00->unk_06; - if (gRoomControls.areaID == 10 || gRoomControls.areaID == 22) { + if (gRoomControls.areaID == AREA_VEIL_FALLS || gRoomControls.areaID == AREA_VEIL_FALLS_DIG_CAVE) { SetTileType(636, v0 - 65, 1); SetTileType(643, v0 - 65, 2); SetTileType(637, v0 - 64, 1); @@ -54,20 +72,19 @@ void sub_0805E248(void) { gUpdateVisibleTiles = 0; } -void sub_0805E374(Entity* param_1) { - u8 r3 = gScreenTransition.field_0x24[8]; +void sub_0805E374(Entity* e) { + u8 r3 = gScreenTransition.player_status.field_0x24[8]; u8* array = gUnk_081091F8; if (r3 != 2) { array = gUnk_081091EE; } - sub_0805E3A0(param_1, array[param_1->kind]); + SetDefaultPriority(e, array[e->kind]); } -void sub_0805E3A0(void* ent, u32 param) { - Entity* e = (Entity*)ent; - e->updateConditions2 = param; - e->updateConditions = param; +void SetDefaultPriority(Entity* ent, u32 prio) { + ent->updatePriorityPrev = prio; + ent->updatePriority = prio; } bool32 CheckDontUpdate(Entity* this) { @@ -78,118 +95,113 @@ bool32 CheckDontUpdate(Entity* this) { if (this->action == 0) return FALSE; - if (gUnk_03003DC0.unk0 > gUnk_03003DC0.unk1) - value = gUnk_03003DC0.unk0; + // pick highest + if (gPriorityHandler.sys_priority > gPriorityHandler.ent_priority) + value = gPriorityHandler.sys_priority; else - value = gUnk_03003DC0.unk1; + value = gPriorityHandler.ent_priority; if (gMessage.doTextBox & 0x7F) - value = value < 2 ? 2 : value; - return value > this->updateConditions; + value = max(value, PRIO_MESSAGE); + return value > this->updatePriority; } -bool32 sub_0805E40C(void) { - u32 v0 = gUnk_03003DC0.unk0; - if (gUnk_03003DC0.unk0 <= gUnk_03003DC0.unk1) - v0 = gUnk_03003DC0.unk1; - return v0 != 0; +bool32 AnyPrioritySet(void) { + u32 prio = gPriorityHandler.sys_priority; + if (gPriorityHandler.sys_priority <= gPriorityHandler.ent_priority) + prio = gPriorityHandler.ent_priority; + return prio != PRIO_MIN; } -s32 sub_0805E428() { - s32 result; - - sub_0805E524(); - if (gUnk_03003DC0.unk2) { - result = 0; - gUnk_03003DC0.unk1 = gUnk_03003DC0.unk2; - gUnk_03003DC0.unk2 = 0; - } else { - result = gUnk_03003DC0.unk3; - if (gUnk_03003DC0.unk3) { - gUnk_03003DC0.unk1 = gUnk_03003DC0.unk3 = 0; - } +static void UpdatePriority() { + UpdatePriorityTimer(); + if (gPriorityHandler.queued_priority) { + gPriorityHandler.ent_priority = gPriorityHandler.queued_priority; + gPriorityHandler.queued_priority = PRIO_MIN; + } else if (gPriorityHandler.queued_priority_reset) { + gPriorityHandler.ent_priority = gPriorityHandler.queued_priority_reset = PRIO_MIN; } - return result; } -s32 sub_0805E450(u32 a1) { - if (a1 < gUnk_03003DC0.unk2 || a1 < gUnk_03003DC0.unk1) +s32 SetMinPriority(u32 prio) { + if (prio < gPriorityHandler.queued_priority || prio < gPriorityHandler.ent_priority) return 0; - gUnk_03003DC0.unk2 = a1; + gPriorityHandler.queued_priority = prio; return 1; } -void sub_0805E470(void) { - gUnk_03003DC0.unk3 = 1; +void ResetEntityPriority(void) { + gPriorityHandler.queued_priority_reset = 1; } -void sub_0805E47C(Entity* this) { - this->updateConditions2 = this->updateConditions; - this->updateConditions = 2; - if (sub_0805E450(2)) - gUnk_03003DC0.unk4 = this; +void RequestPriority(Entity* this) { + this->updatePriorityPrev = this->updatePriority; + this->updatePriority = PRIO_REQUESTED; + if (SetMinPriority(PRIO_REQUESTED)) + gPriorityHandler.requester = this; } -void sub_0805E4A0(Entity* this) { - sub_08078A90(1); - this->updateConditions2 = this->updateConditions; - this->updateConditions = 3; - if (sub_0805E450(1)) - gUnk_03003DC0.unk4 = this; +void RequestPriorityOverPlayer(Entity* this) { + SetPlayerControl(1); + this->updatePriorityPrev = this->updatePriority; + this->updatePriority = PRIO_OVERRIDE_MESSAGE; + if (SetMinPriority(PRIO_PLAYER)) + gPriorityHandler.requester = this; } -void sub_0805E4CC(Entity* this) { - sub_08078A90(0); - sub_0805E584(this); +void RevokePriorityOverPlayer(Entity* this) { + SetPlayerControl(0); + RevokePriority(this); } -void sub_0805E4E0(Entity* a1, u32 a2) { - if (a1 != NULL) { - a1->updateConditions2 = a1->updateConditions; - a1->updateConditions = 3; +void RequestPriorityDuration(Entity* this, u32 time) { + if (this != NULL) { + this->updatePriorityPrev = this->updatePriority; + this->updatePriority = PRIO_OVERRIDE_MESSAGE; } - if (sub_0805E450(1u)) - gUnk_03003DC0.unk4 = a1; - sub_0805E510(a2); + if (SetMinPriority(PRIO_PLAYER)) + gPriorityHandler.requester = this; + SetPriorityTimer(time); } -void sub_0805E510(u32 a1) { - if (gUnk_03003DC0.unk_0xc < a1) - gUnk_03003DC0.unk_0xc = a1; +void SetPriorityTimer(u32 time) { + if (gPriorityHandler.priority_timer < time) + gPriorityHandler.priority_timer = time; } -void sub_0805E524(void) { - if (gUnk_03003DC0.unk_0xc != 0) { - if (--gUnk_03003DC0.unk_0xc << 16 == 0) - sub_0805E470(); +static void UpdatePriorityTimer(void) { + // if timer initialized to zero, priority is indeterminate + if (gPriorityHandler.priority_timer != 0) { + if (--gPriorityHandler.priority_timer == 0) + ResetEntityPriority(); } } -void FreezeTime(void) { - gUnk_03003DC0.unk0 = 6; - gPlayerEntity.updateConditions = 6; +void SetPlayerEventPriority(void) { + gPriorityHandler.sys_priority = PRIO_PLAYER_EVENT; + gPlayerEntity.updatePriority = PRIO_PLAYER_EVENT; } -void UnfreezeTime() { - gUnk_03003DC0.unk0 = 0; - gPlayerEntity.updateConditions = 1; +void ResetPlayerEventPriority() { + gPriorityHandler.sys_priority = PRIO_MIN; + gPlayerEntity.updatePriority = PRIO_PLAYER; } -void sub_0805E584(Entity* e) { - e->updateConditions = e->updateConditions2; - sub_0805E470(); +void RevokePriority(Entity* e) { + e->updatePriority = e->updatePriorityPrev; + ResetEntityPriority(); } -void sub_0805E59C() { - gUnk_03003DC0.unk0 = 6; +void SetRoomReloadPriority() { + gPriorityHandler.sys_priority = PRIO_PLAYER_EVENT; } -void sub_0805E5A8() { - gUnk_03003DC0.unk0 = 7; +void SetInitializationPriority() { + gPriorityHandler.sys_priority = PRIO_INITIALIZING; } -void sub_0805E5B4() { - gUnk_03003DC0.unk0 = 0; +void ResetSystemPriority() { + gPriorityHandler.sys_priority = PRIO_MIN; } void UpdateEntities() { @@ -198,7 +210,7 @@ void UpdateEntities() { gRoomVars.filler1[0] = gRoomVars.field_0x4; gRoomVars.field_0x4 = 0; sub_0805ED30(); - sub_0805E428(); + UpdatePriority(); ClearHitboxList(); sub_0806F0A4(); f = UpdateEntities_arm; @@ -217,7 +229,7 @@ void UpdateManagers() { void EraseAllEntities() { extern u8 gUnk_03000000[]; DeleteAllEntities(); - MemClear(&gUnk_03003DC0, 12); + MemClear(&gPriorityHandler, 12); MemClear(&gPlayerEntity, 10880); MemClear(&gUnk_02033290, 2048); sub_0805E98C(); @@ -258,20 +270,11 @@ void* GetEmptyEntityByKind(u32 kind) { return getter(); } -typedef struct { - int field_0x0; - int field_0x4; - Entity* field_0x8; - int field_0xc; -} struct_03003DD0; - -extern struct_03003DD0 gUnk_03003DD0; -extern u32 _call_via_r0(u32*); -extern u32 _ClearAndUpdateEntities; - void DeleteThisEntity(void) { - DeleteEntityAny(gUnk_03003DD0.field_0x8); - _call_via_r0((u32*)&_ClearAndUpdateEntities); + void (*f)(void); + DeleteEntityAny(gUpdateContext.current_entity); + f = _ClearAndUpdateEntities; + f(); } void DeleteManager(Manager*); @@ -288,18 +291,6 @@ void DeleteEntityAny(Entity* ent) { deleter(ent); } -extern void sub_080AE068(); -extern void UnloadOBJPalette(); -extern void sub_0806FE84(); -extern void sub_080788E0(); -extern void sub_08078954(); -extern void sub_0805EC60(); -extern void sub_08017744(Entity*); -extern void sub_0805E92C(); -extern void UnloadHitbox(); -extern void sub_0804AA1C(); -void UnlinkEntity(); - void DeleteEntity(Entity* ent) { if (ent->next) { sub_080AE068(ent); @@ -309,7 +300,7 @@ void DeleteEntity(Entity* ent) { sub_08078954(ent); sub_0805EC60(ent); sub_08017744(ent); - sub_0805E92C(ent); + ReleaseTransitionManager(ent); UnloadCutsceneData(ent); UnloadHitbox(ent); zFree(ent->myHeap); @@ -335,6 +326,7 @@ void ClearDeletedEntity(Entity*); void ClearAllDeletedEntities(void) { Entity* ent = &gPlayerEntity; do { + //! @bug if prev pointed to a VALID location higher than a signed int, would still be deleted if ((int)ent->prev < 0) { ClearDeletedEntity(ent); } @@ -390,17 +382,18 @@ void DeleteManager(Manager* ent) { if (!ent->next) return; - sub_0805E92C(ent); + ReleaseTransitionManager(ent); UnlinkEntity(ent); MemClear(ent, sizeof(Temp)); gManagerCount--; } -void sub_0805E92C(u32 param_1) { - if (param_1 == gArea.unk2) { - gArea.unk2 = 0; - gArea.unk3 = 0; - gArea.unk4 = 0; +// Removes the entity from the transition manager duty, if applicable +void ReleaseTransitionManager(void* mgr) { + if (mgr == gArea.transitionManager) { + gArea.transitionManager = NULL; + gArea.onEnter = NULL; + gArea.onExit = NULL; } } @@ -485,9 +478,9 @@ void PrependEntityToList(Entity* entity, u32 listIndex) { list->first = entity; } -void UnlinkEntity(Entity* ent) { - if (ent == gUnk_03003DD0.field_0x8) { - gUnk_03003DD0.field_0x8 = ent->prev; +static void UnlinkEntity(Entity* ent) { + if (ent == gUpdateContext.current_entity) { + gUpdateContext.current_entity = ent->prev; } ent->prev->next = ent->next; ent->next->prev = ent->prev; diff --git a/src/fileScreen.c b/src/fileScreen.c index 6f13939d..8a7fe482 100644 --- a/src/fileScreen.c +++ b/src/fileScreen.c @@ -102,7 +102,7 @@ void CreateDialogBox(u32 arg0, u32 arg1) { sub_08050384(); MemCopy(&gUnk_080FC844, &var0, sizeof(gUnk_080FC844)); - sub_08056FEC(arg1, &gUnk_020227E8); + sub_08056FEC(arg1, gUnk_020227E8); var0.unk10 |= gUnk_080FC85C[arg0][0] << 0xC; sub_0805F46C(gUnk_080FC85C[arg0][1], &var0); sfx = gUnk_080FC85C[arg0][2]; @@ -1098,7 +1098,7 @@ NONMATCH("asm/non_matching/fileScreen/sub_08051738.inc", void sub_08051738(void) for (i = 0; i < 3; i++) { if (gUnk_02019EE0.saveStatus[i] == 1) { temp = gUnk_02019EE0.unk6 ^ i; - uVar3 = BOOLCAST(temp) & 4; + uVar3 = !!temp & 4; } else { uVar3++; } diff --git a/src/flags.c b/src/flags.c index f1080cde..8efa3d5b 100644 --- a/src/flags.c +++ b/src/flags.c @@ -3,13 +3,13 @@ #include "flags.h" #include "area.h" -extern u32 ReadBit(u32*, u32); -extern u32 CheckBits(u32*, u32, u32); -extern void WriteBit(u32*, u32); -extern void ClearBit(u32*, u32); +const u16 gLocalFlagBanks[] = { + FLAG_BANK_G, FLAG_BANK_0, FLAG_BANK_1, FLAG_BANK_2, FLAG_BANK_3, FLAG_BANK_4, FLAG_BANK_5, + FLAG_BANK_6, FLAG_BANK_7, FLAG_BANK_8, FLAG_BANK_9, FLAG_BANK_10, FLAG_BANK_11, FLAG_BANK_12, +}; u32 CheckLocalFlag(u32 flag) { - return CheckLocalFlagByOffset(gArea.localFlagOffset, flag); + return CheckLocalFlagByBank(gArea.localFlagOffset, flag); } u32 CheckFlags(u32 flags) { @@ -32,38 +32,38 @@ u32 CheckFlags(u32 flags) { } u32 CheckGlobalFlag(u32 flag) { - return CheckLocalFlagByOffset(0, flag); + return CheckLocalFlagByBank(0, flag); } u32 CheckRoomFlag(u32 flag) { return ReadBit(&gRoomVars.roomFlags, flag); } -u32 CheckLocalFlagsByOffset(u32 flag, u32 offset, u32 length) { +u32 CheckLocalFlagsByBank(u32 flag, u32 offset, u32 length) { return CheckBits(&gGlobalFlags, flag + offset, length); } u32 CheckLocalFlags(u32 flag, u32 length) { - return CheckLocalFlagsByOffset(gArea.localFlagOffset, flag, length); + return CheckLocalFlagsByBank(gArea.localFlagOffset, flag, length); } u32 CheckGlobalFlags(u32 flag, u32 length) { - return CheckLocalFlagsByOffset(0, flag, length); + return CheckLocalFlagsByBank(0, flag, length); } u32 CheckRoomFlags(u32 flag, u32 length) { return CheckBits(&gRoomVars.roomFlags, flag, length); } -void SetLocalFlagByOffset(u32 offset, u32 flag) { +void SetLocalFlagByBank(u32 offset, u32 flag) { if (flag != 0) { WriteBit(&gGlobalFlags, offset + flag); } } void SetLocalFlag(u32 flag) { - SetLocalFlagByOffset(gArea.localFlagOffset, flag); + SetLocalFlagByBank(gArea.localFlagOffset, flag); } void SetFlag(u32 flag) { @@ -88,19 +88,19 @@ void SetFlag(u32 flag) { } void SetGlobalFlag(u32 flag) { - SetLocalFlagByOffset(0, flag); + SetLocalFlagByBank(0, flag); } void SetRoomFlag(u32 flag) { WriteBit(&gRoomFlags, flag); } -void ClearLocalFlagByOffset(u32 offset, u32 flag) { +void ClearLocalFlagByBank(u32 offset, u32 flag) { ClearBit(&gGlobalFlags, offset + flag); } void ClearLocalFlag(u32 flag) { - ClearLocalFlagByOffset(gArea.localFlagOffset, flag); + ClearLocalFlagByBank(gArea.localFlagOffset, flag); } void ClearFlag(u32 flag) { @@ -123,7 +123,7 @@ void ClearFlag(u32 flag) { } void ClearGlobalFlag(u32 flag) { - ClearLocalFlagByOffset(0, flag); + ClearLocalFlagByBank(0, flag); } void ClearRoomFlag(u32 flag) { diff --git a/src/game.c b/src/game.c deleted file mode 100644 index 410ccf38..00000000 --- a/src/game.c +++ /dev/null @@ -1,374 +0,0 @@ -#include "global.h" -#include "screen.h" -#include "screen.h" -#include "entity.h" -#include "player.h" -#include "room.h" -#include "main.h" -#include "flags.h" -#include "save.h" -#include "utils.h" -#include "fileScreen.h" -#include "menu.h" -#include "functions.h" -#include "structures.h" - -extern u8 gArea; -extern Entity gPlayerEntity; -extern u32 gUnk_03003FC0; - -extern u16 gWalletSizes[4]; -extern u8 gUnk_080FCA84[]; -extern u8 gUnk_080FCAC8[]; -extern u8 gAreaMetadata[]; - -void sub_080520C4(); -void sub_08052418(); - -typedef struct { - u8 _0[8]; - u8 _8[2]; - u16 _a[13]; -} struct_080FCAA4; -static_assert(sizeof(struct_080FCAA4) == 0x24); - -typedef struct { - void* _0; - void* _4; - void* _8; - u32 _c; - u8 _10; - u8 _11; - u8 _12; - u8 _13; - u32 _14; -} struct_080FCA8C; -static_assert(sizeof(struct_080FCA8C) == 0x18); - -extern struct_080FCA8C gUnk_080FCA8C; -extern struct_080FCAA4 gUnk_080FCAA4; - -extern void CreateDialogBox(); - -void sub_0805212C(void) { - if (gFadeControl.active) - return; - - if (gMain.field_0x5 == 0) { - if (gMenu.focusCoords[0] >= 0x26) { - gMenu.focusCoords[0]--; - } else { - gMenu.transitionTimer--; - if (gMenu.transitionTimer == 0) { - sub_080520C4(2); -#if defined(DEMO_USA) || defined(DEMO_JP) - SoundReq(0x80080000); - DoFade(7, 4); -#else - sub_08052418(0, 0); - gScreen.lcd.displayControl |= 0x600; - gFadeControl.mask = 0x0000ffff; - DoFade(4, 0x10); -#endif - } - } - } else { - gMain.field_0x5--; - } -} - -#if defined(DEMO_USA) || defined(DEMO_JP) -void sub_080521A0(void) { - if (gFadeControl.active == 0) { - DoSoftReset(); - } -} -#else -void sub_080521A0(void) { - s32 temp3; - u32 temp2; - - if (gFadeControl.active) - return; - - switch (gMenu.menuType) { - case 0: - gMenu.transitionTimer = 0x1e; - gMenu.field_0x3 = 0; - sub_080A7114(1); - sub_08052418(0, 0); - gFadeControl.mask = 0xffffffff; - break; - case 1: - if (gMenu.transitionTimer == 0) { - u32 temp = gMenu.field_0x3; - switch (gInput.newKeys) { - case 0x40: - temp = 0; - break; - case 0x80: - temp = 1; - break; - case 0x1: - if (gMenu.field_0x3 != 0) { - temp2 = 4; - } else { - CreateDialogBox(8, 0); - temp2 = 2; - } - gMenu.transitionTimer = 0x3c; - sub_080A7114(temp2); - SoundReq(SFX_TEXTBOX_SELECT); - break; - } - if (gMenu.field_0x3 != temp) { - gMenu.field_0x3 = temp; - sub_08052418(0, temp); - SoundReq(SFX_TEXTBOX_CHOICE); - } - break; - } - gMenu.transitionTimer--; - break; - case 2: - temp3 = HandleSave(0); - gMenu.field_0x0 = temp3; - switch (temp3) { - case 1: - sub_080A7114(4); - break; - case -1: - gMenu.transitionTimer = 0x3c; - CreateDialogBox(9, 0); - sub_080A7114(3); - break; - } - break; - case 3: - if (gMenu.transitionTimer != 0) { - gMenu.transitionTimer--; - } else if ((gInput.newKeys & 0xb) != 0) { - sub_080A7114(0); - } - break; - case 4: - default: - gScreen.lcd.displayControl = gScreen.lcd.displayControl & 0xfdff; - sub_08050384(); - sub_080520C4(3); - break; - } -} -#endif - -void sub_080522F4(void) { - switch (gMenu.menuType) { - case 0x0: - gMenu.transitionTimer = 0x1e; - gMenu.field_0x3 = 0; - sub_080A7114(1); - sub_08052418(1, 0); - break; - case 0x1: - gScreen.lcd.displayControl |= 0x200; - if (gMenu.transitionTimer != 0) { - gMenu.transitionTimer--; - } else { - u32 temp = gMenu.field_0x3; - switch (gInput.newKeys) { - case 0x40: - temp = 0; - break; - case 0x80: - temp = 1; - break; - case 0x1: - sub_080A7114(2); - SoundReq(SFX_TEXTBOX_SELECT); - if (temp == 0) { - DoFade(5, 8); - } else { - DoFade(7, 8); - } - break; - } - if (gMenu.field_0x3 != temp) { - gMenu.field_0x3 = temp; - sub_08052418(1, temp); - SoundReq(SFX_TEXTBOX_CHOICE); - } - } - break; - case 0x2: - default: - if (gFadeControl.active == 0) { - if (gMenu.field_0x3 == 0) { - InitScreen(2); - } else { - DoSoftReset(); - } - } - break; - } -} - -void nullsub_107(void) { -} - -void sub_080523D4(void) { - u32 i; - - gOamCmd._4 = 0; - gOamCmd._6 = 0; - gOamCmd._8 = 0x8600; - gOamCmd.y = gMenu.focusCoords[0]; - for (i = 0; i < 8; ++i) { - gOamCmd.x = gUnk_080FCA84[i]; -#ifdef EU - sub_080ADA14(0x1fc, i); -#else - sub_080ADA14(0x1fd, i); -#endif - } -} - -// not sure how to approach this! -NONMATCH("asm/non_matching/game/sub_08052418.inc", void sub_08052418(int param_1, int param_2)) { - int i; - struct_080FCA8C temp; - - MemClear(&gBG1Buffer, 0x800); - gUnk_020227E8._0[0].WORD = 0xf; - gUnk_020227E8._0[2].WORD = 0xf; - gUnk_020227E8._0[4].WORD = 0xf; - gUnk_020227E8._0[6].WORD = 0xf; - gUnk_020227E8._0[param_2 * 2].BYTES.byte1 = 1; - MemCopy(&gUnk_080FCA8C, &temp, sizeof(temp)); - i = param_1 * 0xc; - // temp._0 = gBG1Buffer[gUnk_080FCAA4._8[param_1]][gUnk_080FCAA4._0[gSaveHeader->gameLanguage + i]] * 2; - temp._13 = ((temp._13 & 0xfe) | gUnk_080FCAA4._8[i + 1]) & 1; - sub_0805F46C(gUnk_080FCAA4._a[param_1], &temp); - gScreen.bg1.xOffset = 1; -} -END_NONMATCH - -void InitializePlayer(void) { - Entity* pl; - - sub_080784C8(); - MemClear((void*)&gUnk_03000B80, sizeof(gUnk_03000B80)); - MemClear((void*)&gPlayerState, 0xb0); - - MemFill32(0xffffffff, &gPlayerState.hurtType, 0x40); - pl = &gPlayerEntity; - MemClear((void*)pl, 0x88); - gRoomControls.cameraTarget = pl; - gPlayerState.playerAction = gUnk_080FCAC8[gScreenTransition.field_0xf]; - if (!CheckGlobalFlag(EZERO_1ST)) { - gPlayerState.flags |= 8; - } - switch (gScreenTransition.field_0xf) { - case 0x2: - case 0x6: - pl->z.HALF.HI = -0xc0; - break; - case 0x4: - gPlayerState.field_0x34[4] = 0x10; - pl->direction = gScreenTransition.playerState << 2; - case 0x3: - pl->speed = 0xe0; - break; - case 0x7: - case 0x8: - gPlayerState.field_0x34[4] = 1; - gPlayerState.field_0x34[5] = gScreenTransition.field_0xf; - break; - case 0xa: - gPlayerState.field_0x34[4] = 1; - break; - case 0xb: - gPlayerState.field_0x34[4] = 3; - break; - case 0xc: - gPlayerState.field_0x34[4] = 4; - } - pl->kind = 1; - pl->flags |= 0xa0; - pl->spritePriority.b0 = 4; - pl->health = gSave.stats.health; - pl->x.HALF.HI = gScreenTransition.playerStartPos.HALF.x; - pl->y.HALF.HI = gScreenTransition.playerStartPos.HALF.y; - pl->animationState = gScreenTransition.playerState; - pl->collisionLayer = gScreenTransition.playerLayer; - UpdateSpriteForCollisionLayer(pl); - AppendEntityToList(pl, 1); - RegisterPlayerHitbox(); -} - -bool32 sub_08052620(u32 r0) { -#ifdef EU - return gArea == 0x01; -#else - return gArea == 0x81; -#endif -} - -bool32 sub_08052638(u32 r0) { -#if EU - return gAreaMetadata[r0 * 4] == 0x01; -#else - return gAreaMetadata[r0 * 4] == 0x81; -#endif -} - -#ifndef EU -u32 sub_08052654() { - return (gArea >> 7) & 1; -} -#endif - -u32 CheckIsDungeon(void) { - return (gArea >> 2) & 1; -} - -u32 sub_08052670() { - return (gArea >> 4) & 1; -} - -u32 sub_08052680() { - return (gArea >> 6) & 1; -} - -u32 sub_08052690() { - return (gArea >> 3) & 1; -} - -s32 ModHealth(s32 deltaHealth) { - s32 newHealth; - - newHealth = gStats.health + deltaHealth; - if (newHealth < 0) { - newHealth = 0; - } - if (gStats.maxHealth < newHealth) { - newHealth = (u32)gStats.maxHealth; - } - gStats.health = newHealth; - gPlayerEntity.health = newHealth; - return newHealth; -} - -void ModRupees(s32 rupeeDelta) { - s32 newRupeeCount; - Stats* s = &gStats; - - newRupeeCount = s->rupees + rupeeDelta; - if (newRupeeCount < 0) { - newRupeeCount = 0; - } else { - if (newRupeeCount > gWalletSizes[s->walletType * 2]) { - newRupeeCount = gWalletSizes[s->walletType * 2]; - } - } - s->rupees = newRupeeCount; -} diff --git a/src/item/itemLantern.c b/src/item/itemLantern.c index 0f49cec6..acb3a728 100644 --- a/src/item/itemLantern.c +++ b/src/item/itemLantern.c @@ -21,7 +21,7 @@ void sub_08075A0C(ItemBehavior* this, u32 arg1) { s8* tmp; itemSlot = IsItemEquipped(this->behaviorID); if (gPlayerState.heldObject != 0 || gPlayerState.playerAction == 0x18 || gPlayerState.jumpStatus != 0 || - gPlayerState.field_0x2c != NULL || (gPlayerState.flags & PL_IS_MINISH) != 0) { + gPlayerState.field_0x2c != NULL || (gPlayerState.flags & PL_MINISH) != 0) { ForceEquipItem(0xf, itemSlot); gPlayerState.flags &= 0xff7fffff; ForceEquipItem(0xf, itemSlot); diff --git a/src/item/itemOcarina.c b/src/item/itemOcarina.c index bd5e044e..7b705446 100644 --- a/src/item/itemOcarina.c +++ b/src/item/itemOcarina.c @@ -5,10 +5,10 @@ extern void (*const gOcarinaStates[4])(ItemBehavior*, u32); extern void sub_08078F60(void); -extern void FreezeTime(void); +extern void SetPlayerEventPriority(void); extern void CreateBird(void); -extern void UnfreezeTime(void); +extern void ResetPlayerEventPriority(void); void ItemOcarina(ItemBehavior* this, u32 arg1) { gOcarinaStates[this->stateID](this, arg1); @@ -32,7 +32,7 @@ void OcarinaUse(ItemBehavior* this, u32 arg1) { sub_08078F60(); sub_08077D38(this, arg1); SoundReq(SFX_216); - FreezeTime(); + SetPlayerEventPriority(); } } @@ -45,7 +45,7 @@ NONMATCH("asm/non_matching/ocarina/OcarinaUpdate.inc", void OcarinaUpdate(ItemBe gPlayerState.field_0x27[0] = 0; gUnk_02034490[0] = 0; CreateBird(); - UnfreezeTime(); + ResetPlayerEventPriority(); sub_08077E78(this, arg1); } } diff --git a/src/item/itemPegasusBoots.c b/src/item/itemPegasusBoots.c index 07b78a94..6804c425 100644 --- a/src/item/itemPegasusBoots.c +++ b/src/item/itemPegasusBoots.c @@ -23,7 +23,7 @@ void ItemPegasusBoots(ItemBehavior* this, u32 arg1) { if ((bVar1 & 7) == 0) { SoundReq(SFX_PLY_LAND); } - if (((gPlayerState.flags & PL_IS_MINISH) == 0) && ((this->field_0x5[2] & 7) == 0)) { + if (((gPlayerState.flags & PL_MINISH) == 0) && ((this->field_0x5[2] & 7) == 0)) { if (gPlayerState.field_0x10[2] == 0x11) { if (gPlayerEntity.spriteOffsetY == 0) { CreateFx(&gPlayerEntity, FX_GREEN_SPLASH, 0); @@ -58,7 +58,7 @@ void sub_080768F8(ItemBehavior* this, u32 arg1) { if (bVar1 == 0) { gPlayerState.field_0x1d[1] = 1; gPlayerState.field_0x1d[4] = bVar1; - if ((gPlayerState.flags & PL_IS_MINISH) == 0) { + if ((gPlayerState.flags & PL_MINISH) == 0) { this->field_0x5[2] = 0x10; } else { gPlayerState.field_0x8 = 0xc14; diff --git a/src/item/itemSword.c b/src/item/itemSword.c index ea6789bb..50abf71a 100644 --- a/src/item/itemSword.c +++ b/src/item/itemSword.c @@ -121,7 +121,7 @@ void sub_080758B0(ItemBehavior* this, u32 arg1) { ASM_FUNC("asm/non_matching/itemSword/sub_08075900.inc", void sub_08075900(ItemBehavior* this, u32 arg1)) void sub_080759B8(ItemBehavior* this, u32 arg1) { - if ((gPlayerState.flags & PL_IS_MINISH) == 0) { + if ((gPlayerState.flags & PL_MINISH) == 0) { gPlayerEntity.hurtType = 0; } gPlayerState.flags &= 0xf7ffffff; diff --git a/src/loadRoom.c b/src/loadRoom.c index b7bccd3a..4ca4aa43 100644 --- a/src/loadRoom.c +++ b/src/loadRoom.c @@ -114,7 +114,7 @@ void sub_0804AF0C(Entity* ent, EntityData* dat) { } void sub_0804AF90(void) { - sub_0804AFB0(gArea.field_0x85c[7]); + sub_0804AFB0(gArea.pCurrentRoomInfo->properties); sub_080A7C7C(); } diff --git a/src/main.c b/src/main.c index a3735224..820b5560 100644 --- a/src/main.c +++ b/src/main.c @@ -18,6 +18,9 @@ extern void HandleGameOverScreen(void); extern void HandleCreditsScreen(void); extern void HandleDebugTextScreen(void); +static void sub_08055F70(void); +static bool32 SoftResetKeysPressed(void); + void (*const sScreenHandlers[])(void) = { [SCREEN_INTRO] = HandleIntroScreen, #ifdef DEMO_USA @@ -197,7 +200,7 @@ NONMATCH("asm/non_matching/sub_080560B8.inc", static void sub_080560B8(void)) { } temp = gUnk_02000010.signature ^ SIGNATURE; - b = BOOLCAST(temp); + b = !!temp; if ((gUnk_02000010.field_0x4 != 0) && (gUnk_02000010.field_0x4 != 0xc1)) { b = TRUE; @@ -210,15 +213,15 @@ NONMATCH("asm/non_matching/sub_080560B8.inc", static void sub_080560B8(void)) { END_NONMATCH u32 sub_08056134(void) { + + if ((gSaveHeader->signature != SIGNATURE) || (gSaveHeader->saveFileId >= NUM_SAVE_SLOTS) || + (gSaveHeader->messageSpeed >= MAX_MSG_SPEED) || (gSaveHeader->brightnessPref >= MAX_BRIGHTNESS) #ifdef EU - if ((gSaveHeader->signature != SIGNATURE) || (gSaveHeader->saveFileId >= NUM_SAVE_SLOTS) || - (gSaveHeader->messageSpeed >= MAX_MSG_SPEED) || (gSaveHeader->brightnessPref >= MAX_BRIGHTNESS) || - (gSaveHeader->gameLanguage <= GAME_LANGUAGE) || (gSaveHeader->gameLanguage >= 7) || (gSaveHeader->_e != 0)) + || (gSaveHeader->gameLanguage <= GAME_LANGUAGE) || (gSaveHeader->gameLanguage > NUM_LANGUAGES) #else - if ((gSaveHeader->signature != SIGNATURE) || (gSaveHeader->saveFileId >= NUM_SAVE_SLOTS) || - (gSaveHeader->messageSpeed >= MAX_MSG_SPEED) || (gSaveHeader->brightnessPref >= MAX_BRIGHTNESS) || - (gSaveHeader->gameLanguage != GAME_LANGUAGE) || (gSaveHeader->_e != 0)) + || (gSaveHeader->gameLanguage != GAME_LANGUAGE) #endif + || (gSaveHeader->_e != 0)) return FALSE; return TRUE; diff --git a/src/manager/manager1.c b/src/manager/manager1.c index 037d5182..bbc743ce 100644 --- a/src/manager/manager1.c +++ b/src/manager/manager1.c @@ -54,7 +54,7 @@ void sub_08057118(Entity* this) { gScreen.lcd.displayControl |= 0x800; gScreen.controls.layerFXControl = 0x3648; gScreen.controls.alphaBlend = 0x1000; - sub_08052D74(this, sub_080570B8, sub_080570F8); + RegisterTransitionManager(this, sub_080570B8, sub_080570F8); } ASM_FUNC("asm/non_matching/manager1/sub_08057174.inc", void sub_08057174()) diff --git a/src/manager/manager10.c b/src/manager/manager10.c index 2207a7eb..04e78cd5 100644 --- a/src/manager/manager10.c +++ b/src/manager/manager10.c @@ -44,7 +44,7 @@ void Manager10_Main(Manager10* this) { this->unk_22 = 5; } gRoomVars.unk_10[0] = 0xFF; - sub_08052D74(this, sub_080595E4, 0); + RegisterTransitionManager(this, sub_080595E4, 0); } sub_08059608(this); sub_08059690(this); diff --git a/src/manager/manager12.c b/src/manager/manager12.c index 7ab89be8..36a044d4 100644 --- a/src/manager/manager12.c +++ b/src/manager/manager12.c @@ -1,3 +1,4 @@ +#include "area.h" #include "manager.h" #include "room.h" #include "functions.h" @@ -46,8 +47,8 @@ void Manager12_Main(Manager12* this) { this->field_0x22 = 0xff; this->field_0x21 = 0xff; this->field_0x20 = 0xff; - sub_08052D74(this, sub_08059A2C, NULL); - sub_0805E3A0(this, 6); + RegisterTransitionManager(this, sub_08059A2C, NULL); + SetDefaultPriority((Entity*)this, 6); } sub_08059A58(this); } @@ -63,7 +64,7 @@ void sub_08059A2C(Manager12* this) { } void sub_08059A58(Manager12* this) { - if (gRoomControls.areaID != 0x15) { + if (gRoomControls.areaID != AREA_FESTIVAL_TOWN) { if (sub_08059C8C(this, 0, &this->field_0x20, &gUnk_08108398) != 0) { sub_08059CC0(0, (u32)this->field_0x20); } @@ -140,7 +141,7 @@ void sub_08059CC0(u32 param_1, u32 param_2) { Unknown* unknown; gRoomVars.unk_10[param_1] = param_2; - if (gRoomControls.areaID != 0x15) { + if (gRoomControls.areaID != AREA_FESTIVAL_TOWN) { unknown = &gUnk_08108408[param_2]; } else { unknown = &gUnk_08108468[param_2]; @@ -152,7 +153,7 @@ void sub_08059CC0(u32 param_1, u32 param_2) { void TryLoadPrologueHyruleTown(void) { u32 tmp; - if (gRoomControls.areaID != 0x15) { + if (gRoomControls.areaID != AREA_FESTIVAL_TOWN) { tmp = sub_08056300(&gUnk_08108398); if (tmp != 0xff) { sub_08059CC0(0, tmp); diff --git a/src/manager/manager13.c b/src/manager/manager13.c index 36598b1e..409fdbb7 100644 --- a/src/manager/manager13.c +++ b/src/manager/manager13.c @@ -1,3 +1,4 @@ +#include "area.h" #include "manager.h" #include "room.h" #include "object.h" @@ -32,7 +33,7 @@ void Manager13_Main(Manager13* this) { if (this->manager.action == 0) { this->manager.action = 1; } - if (gRoomControls.areaID == 0x15) { + if (gRoomControls.areaID == AREA_FESTIVAL_TOWN) { spawnData = gUnk_08108530; } else { spawnData = gUnk_081084C8; diff --git a/src/manager/manager14.c b/src/manager/manager14.c index 0b98f542..31f827c0 100644 --- a/src/manager/manager14.c +++ b/src/manager/manager14.c @@ -61,7 +61,7 @@ void sub_08059E80(Manager14* this) { gScreen.controls.alphaBlend = 0x1000; gScreen.bg3.xOffset = 0x80; gScreen.bg3.yOffset = 0; - sub_08052D74(this, nullsub_495, sub_0805A25C); + RegisterTransitionManager(this, nullsub_495, sub_0805A25C); } void sub_08059EF8(Manager14* this) { diff --git a/src/manager/manager15.c b/src/manager/manager15.c index a326116b..27a5e825 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -304,8 +304,8 @@ void sub_0805A76C(Manager15* this) { this->manager.action++; sub_08004168(&gPlayerEntity); gPlayerEntity.animationState = 4; - sub_0805E4E0((Entity*)this, 0x258); - sub_08078A90(0xFF); + RequestPriorityDuration((Entity*)this, 0x258); + SetPlayerControl(0xFF); gUnk_02034490[0] = 1; gRoomControls.cameraTarget = 0; sub_08077B20(); @@ -332,7 +332,7 @@ void sub_0805A804(Manager15* this) { } this->manager.unk_0d = 1; this->manager.unk_10 |= 0x20; - sub_0805E3A0(this, 6); + SetDefaultPriority((Entity*)this, 6); break; case 1: if (CheckLocalFlag(this->unk_3e)) @@ -364,7 +364,7 @@ void sub_0805A804(Manager15* this) { void sub_0805AAC8(Manager15*); void sub_0805A89C(Manager15* this) { - sub_0805E3A0(this, 6); + SetDefaultPriority((Entity*)this, 6); this->manager.action = 1; this->manager.unk_10 |= 0x20; this->manager.unk_0e = 8; @@ -374,7 +374,7 @@ void sub_0805A89C(Manager15* this) { this->unk_20 = gRoomControls.roomID; this->unk_24 = gRoomControls.roomOriginX; this->unk_26 = gRoomControls.roomOriginY; - sub_08052D74(this, sub_0805AAC8, 0); + RegisterTransitionManager(this, sub_0805AAC8, 0); } void sub_0805A94C(Manager15* this); diff --git a/src/manager/manager18.c b/src/manager/manager18.c index dd7d553e..1d797c5c 100644 --- a/src/manager/manager18.c +++ b/src/manager/manager18.c @@ -14,7 +14,7 @@ extern u16 gUnk_0810865C[]; void Manager18_Main(Manager18* this) { if (this == NULL) { - if (gArea.unk3 != (u32)sub_0805AEDC) { + if (gArea.onEnter != sub_0805AEDC) { sub_0805AEDC(NULL); } } else { @@ -24,9 +24,9 @@ void Manager18_Main(Manager18* this) { this->manager.unk_0e = 0; this->manager.unk_0f = 8; this->field_0x20 = gUnk_0810865C[0]; - sub_0805E3A0(this, 6); - if (gArea.unk3 == 0) { - sub_08052D74(this, sub_0805AEDC, sub_0805AF3C); + SetDefaultPriority((Entity*)this, 6); + if (gArea.onEnter == NULL) { + RegisterTransitionManager(this, sub_0805AEDC, sub_0805AF3C); } else { DeleteThisEntity(); } diff --git a/src/manager/manager19.c b/src/manager/manager19.c index 6c03287a..a6118c5c 100644 --- a/src/manager/manager19.c +++ b/src/manager/manager19.c @@ -8,16 +8,16 @@ void sub_0805AFFC(Manager*); void Manager19_Main(Manager* this) { if (this == NULL) { - if ((void*)gArea.unk3 != sub_0805AFFC) { + if ((void*)gArea.onEnter != sub_0805AFFC) { sub_0805AFFC(this); } } else { if (this->action == 0) { this->action = 1; this->unk_10 |= 0x20; - sub_0805E3A0(this, 6); - if (gArea.unk3 == 0) { - sub_08052D74(this, sub_0805AFFC, NULL); + SetDefaultPriority((Entity*)this, 6); + if (gArea.onEnter == NULL) { + RegisterTransitionManager(this, sub_0805AFFC, NULL); } else { DeleteThisEntity(); } diff --git a/src/manager/manager1A.c b/src/manager/manager1A.c index d828bff5..cc5ab45e 100644 --- a/src/manager/manager1A.c +++ b/src/manager/manager1A.c @@ -68,7 +68,7 @@ void sub_0805B328(Manager1A*); void sub_0805B048(Manager1A* this) { struct_08108764* tmp; Entity* obj; - sub_0805E3A0(&this->manager, 6); + SetDefaultPriority((Entity*)&this->manager, 6); MemClear(&this->unk_20, 0x20); this->manager.action = 1; this->unk_3f = gRoomControls.roomID; @@ -94,7 +94,7 @@ void sub_0805B048(Manager1A* this) { sub_0805BC4C(); sub_0805B2B0(this); sub_0805B328(this); - sub_08052D74(this, sub_0805B328, 0); + RegisterTransitionManager(this, sub_0805B328, 0); } if (!tmp->unk_10) return; @@ -149,30 +149,32 @@ u32 sub_0805B1CC(Manager1A* this) { void sub_0805B210(Manager1A* this) { struct_08108764* tmp; gScreenTransition.transitioningOut = 1; - gScreenTransition.transitionType = 1; - gScreenTransition.playerState = 4; + gScreenTransition.transitionType = TRANSITION_CUT; + gScreenTransition.player_status.start_anim = 4; tmp = &gUnk_08108764[this->manager.unk_0a]; - gScreenTransition.areaID = tmp->unk_01; - gScreenTransition.roomID = tmp->unk_02; - gScreenTransition.playerLayer = tmp->unk_03; - if (gPlayerState.flags & PL_IS_MINISH) { - gScreenTransition.field_0xf = 6; + gScreenTransition.player_status.area_next = tmp->unk_01; + gScreenTransition.player_status.room_next = tmp->unk_02; + gScreenTransition.player_status.layer = tmp->unk_03; + if (gPlayerState.flags & PL_MINISH) { + gScreenTransition.player_status.spawn_type = 6; } else { - gScreenTransition.field_0xf = 2; + gScreenTransition.player_status.spawn_type = 2; } switch (tmp->unk_00) { case 0: - gScreenTransition.playerStartPos.HALF.x = tmp->unk_04; - gScreenTransition.playerStartPos.HALF.y = tmp->unk_06; + gScreenTransition.player_status.start_pos.HALF.x = tmp->unk_04; + gScreenTransition.player_status.start_pos.HALF.y = tmp->unk_06; break; case 1: - gScreenTransition.playerStartPos.HALF.x = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX + tmp->unk_04; - gScreenTransition.playerStartPos.HALF.y = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY + tmp->unk_06; + gScreenTransition.player_status.start_pos.HALF.x = + gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX + tmp->unk_04; + gScreenTransition.player_status.start_pos.HALF.y = + gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY + tmp->unk_06; break; case 2: - gScreenTransition.playerStartPos.HALF.x = tmp->unk_04; - gScreenTransition.playerStartPos.HALF.y = tmp->unk_06; - gScreenTransition.field_0xf = 6; + gScreenTransition.player_status.start_pos.HALF.x = tmp->unk_04; + gScreenTransition.player_status.start_pos.HALF.y = tmp->unk_06; + gScreenTransition.player_status.spawn_type = 6; break; } } diff --git a/src/manager/manager1B.c b/src/manager/manager1B.c index 47fd8714..c2392fdc 100644 --- a/src/manager/manager1B.c +++ b/src/manager/manager1B.c @@ -29,9 +29,9 @@ void Manager1B_Main(Manager1B* this) { if (this->manager.action == 0) { this->manager.action = 1; this->manager.unk_10 |= 0x20; - sub_0805E3A0(this, 6); + SetDefaultPriority((Entity*)this, 6); if (this->manager.unk_0a != 0) { - sub_08052D74(this, sub_0805B4B4, NULL); + RegisterTransitionManager(this, sub_0805B4B4, NULL); } iVar3 = 0x100 - (u32)gRoomControls.height; if (iVar3 < 0) { diff --git a/src/manager/manager2.c b/src/manager/manager2.c index 05fe08f7..9dcb74f2 100644 --- a/src/manager/manager2.c +++ b/src/manager/manager2.c @@ -23,7 +23,7 @@ void Manager2_Main(Manager2* this) { this->manager.action = 1; gScreen.bg3.updated = 0; gScreen.bg1.updated = 0; - sub_08052D74(this, sub_080576A0, 0); + RegisterTransitionManager(this, sub_080576A0, 0); } sub_0805754C(this); } diff --git a/src/manager/manager24.c b/src/manager/manager24.c index 88a5a8e9..df298020 100644 --- a/src/manager/manager24.c +++ b/src/manager/manager24.c @@ -28,7 +28,7 @@ extern u32 sub_080002C8(u16, u8); extern void (*const gUnk_08108CE8[])(u32, u32); u32 sub_0805C608(void); -extern u32 sub_08052670(void); +extern u32 CheckIsInteriorWithEnemies(void); extern u8 gUnk_08108CFC[]; @@ -103,7 +103,7 @@ void sub_0805C050(u32 pos, u32 layer) { SetTileType(0xb4, pos - 1, layer); SetTileType(0xb7, pos + 1, layer); if (layer == 1) { - if (sub_08052670() != 0) { + if (CheckIsInteriorWithEnemies() != 0) { Entity* object = CreateObject(ARCHWAY, 0xe, 0); if (object != NULL) { object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; @@ -147,7 +147,7 @@ void sub_0805C178(u32 pos, u32 layer) { SetTileType(0xf7, pos + 0x41, layer); if (layer == 1) { - if (sub_08052670() != 0) { + if (CheckIsInteriorWithEnemies() != 0) { object = CreateObject(ARCHWAY, 0xe, 1); if (object != NULL) { @@ -189,7 +189,7 @@ void sub_0805C294(u32 pos, u32 layer) { SetTileType(0xd6, pos + 0x40, layer); SetTileType(0xd7, pos + 0x41, layer); if (layer == 1) { - if (sub_08052670() != 0) { + if (CheckIsInteriorWithEnemies() != 0) { object = CreateObject(0x4f, 0xe, 2); if (object != NULL) { object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; @@ -230,7 +230,7 @@ void sub_0805C3B4(u32 pos, u32 layer) { SetTileType(0xe3, pos + 0x3f, layer); SetTileType(0xe7, pos + 0x40, layer); if (layer == 1) { - if (sub_08052670() != 0) { + if (CheckIsInteriorWithEnemies() != 0) { object = CreateObject(ARCHWAY, 0xe, 3); if (object != NULL) { object->x.HALF.HI = ((pos & 0x3f) << 4) + -0x10 + gRoomControls.roomOriginX; @@ -272,7 +272,7 @@ void sub_0805C4E0(u32 pos, u32 layer) { SetTileType(0xc4, pos - 1, layer); SetTileType(0xc7, pos + 1, layer); if (layer == 1) { - if (sub_08052670() != 0) { + if (CheckIsInteriorWithEnemies() != 0) { object = CreateObject(ARCHWAY, 0xe, 0); if (object != NULL) { object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; @@ -306,5 +306,5 @@ void sub_0805C4E0(u32 pos, u32 layer) { } u32 sub_0805C608(void) { - return gUnk_08108CFC[gArea.regret]; + return gUnk_08108CFC[gArea.dungeon_idx]; } diff --git a/src/manager/manager26.c b/src/manager/manager26.c index 3eb4329e..3a143e21 100644 --- a/src/manager/manager26.c +++ b/src/manager/manager26.c @@ -76,7 +76,7 @@ void sub_0805C7C4(Manager26* this) { } void sub_0805C7CC(Manager26* this) { - if (gPlayerState.flags & PL_IS_MINISH) { + if (gPlayerState.flags & PL_MINISH) { if (gPlayerEntity.y.HALF.HI < this->unk_2a + 0x10) { this->manager.unk_0d = 1; } else { diff --git a/src/manager/manager27.c b/src/manager/manager27.c index 89964893..1addc549 100644 --- a/src/manager/manager27.c +++ b/src/manager/manager27.c @@ -18,7 +18,7 @@ const u8 gUnk_08108D20[] = { 0x6F, 0x70, 0x71, 0x72, 0x71, 0x70 }; void Manager27_Main(Entity* this) { gUnk_08108D10[this->action](this); - if (CheckLocalFlagByOffset(0x300, this->type + 0x67)) { + if (CheckLocalFlagByBank(0x300, this->type + 0x67)) { gScreenTransition.field_0xac |= (1 << this->type); } else { gScreenTransition.field_0xac &= ~(1 << this->type); @@ -75,5 +75,5 @@ void sub_0805C908(Entity* this) { } u32 sub_0805C920(Entity* this) { - return CheckLocalFlagByOffset(0x300, this->type + 0x67); + return CheckLocalFlagByBank(0x300, this->type + 0x67); } diff --git a/src/manager/manager2C.c b/src/manager/manager2C.c index 08865658..1ff17776 100644 --- a/src/manager/manager2C.c +++ b/src/manager/manager2C.c @@ -21,15 +21,15 @@ void Manager2C_Main(Manager2C* manager) { if (((CheckPlayerInRegion(manager->field_0x38, manager->field_0x3a, 0x14, 0x40) != 0) && (((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) + gPlayerEntity.z.HALF.HI) < 0)) && (gRoomControls.roomScrollY == gRoomControls.roomOriginY)) { - MemClear(&gScreenTransition.areaID, 0x20); + MemClear(&gScreenTransition.player_status, 0x20); gScreenTransition.transitioningOut = 1; - gScreenTransition.transitionType = 0; - gScreenTransition.field_0xf = 0xb; - gScreenTransition.areaID = manager->manager.unk_0b; - gScreenTransition.roomID = manager->manager.unk_0e; - gScreenTransition.playerState = manager->field_0x37; - gScreenTransition.playerStartPos.HALF.x = manager->field_0x3c; - gScreenTransition.playerStartPos.HALF.y = manager->field_0x3e; - gScreenTransition.playerLayer = manager->field_0x36; + gScreenTransition.transitionType = TRANSITION_DEFAULT; + gScreenTransition.player_status.spawn_type = 0xb; + gScreenTransition.player_status.area_next = manager->manager.unk_0b; + gScreenTransition.player_status.room_next = manager->manager.unk_0e; + gScreenTransition.player_status.start_anim = manager->field_0x37; + gScreenTransition.player_status.start_pos.HALF.x = manager->field_0x3c; + gScreenTransition.player_status.start_pos.HALF.y = manager->field_0x3e; + gScreenTransition.player_status.layer = manager->field_0x36; } } diff --git a/src/manager/manager2E.c b/src/manager/manager2E.c index f52c185e..19205a28 100644 --- a/src/manager/manager2E.c +++ b/src/manager/manager2E.c @@ -42,21 +42,21 @@ void sub_0805D280(Manager2E* this) { if (this->manager.unk_0e == 0) { this->manager.unk_0e = 0x1e; } - sub_0805E3A0(this, 6); + SetDefaultPriority((Entity*)this, 6); } void sub_0805D2C0(Manager2E* this) { - if ((CheckFlags(this->field_0x3e) != 0) && (gUnk_03003DC0.unk_0xc < 2)) { + if ((CheckFlags(this->field_0x3e) != 0) && (gPriorityHandler.priority_timer < 2)) { this->manager.action = 2; if (this->manager.unk_0e == 1) { sub_0805D2F4(this); } - sub_0805E4E0((Entity*)this, this->manager.unk_0e); + RequestPriorityDuration((Entity*)this, this->manager.unk_0e); } } void sub_0805D2F4(Manager2E* this) { - if (gUnk_03003DC0.unk_0xc == 0) { + if (gPriorityHandler.priority_timer == 0) { if (this->field_0x38 != SFX_NONE) { SoundReq(this->field_0x38); } else { @@ -80,7 +80,7 @@ void sub_0805D344(Manager2E* this) { this->manager.unk_0e = 0x1e; } this->manager.unk_0f = this->manager.unk_0e; - sub_0805E3A0(this, 6); + SetDefaultPriority((Entity*)this, 6); } void sub_0805D36C(Manager2E* this) { diff --git a/src/manager/manager2F.c b/src/manager/manager2F.c index a86073ae..84619e66 100644 --- a/src/manager/manager2F.c +++ b/src/manager/manager2F.c @@ -9,16 +9,16 @@ void sub_0805D470(Manager*); void Manager2F_Main(Manager* this) { if (this == NULL) { - if ((void*)gArea.unk3 != sub_0805D470) { + if (gArea.onEnter != 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); + SetDefaultPriority((Entity*)this, 6); + if (gArea.onEnter == NULL) { + RegisterTransitionManager(this, sub_0805D470, NULL); } else { DeleteThisEntity(); } diff --git a/src/manager/manager3.c b/src/manager/manager3.c index 42b20e75..b71d8a51 100644 --- a/src/manager/manager3.c +++ b/src/manager/manager3.c @@ -94,7 +94,7 @@ void CreateMagicSparkles(u32 baseX, u32 baseY, u32 layer) { } u32 sub_08057810(void) { - if ((gPlayerState.flags & PL_IS_MINISH) && !gPlayerState.field_0xaa && (gArea.curPortalType != 0x6) && + if ((gPlayerState.flags & PL_MINISH) && !gPlayerState.field_0xaa && (gArea.curPortalType != 0x6) && (gPlayerState.heldObject == 0)) { switch (gPlayerState.field_0xa8) { case 0: diff --git a/src/manager/manager32.c b/src/manager/manager32.c index 8360492e..409840de 100644 --- a/src/manager/manager32.c +++ b/src/manager/manager32.c @@ -18,7 +18,7 @@ extern void (*const gUnk_08108D7C[])(Manager32*); void sub_0805D9D8(Manager32*); void sub_0805DA08(u32, u32, u32); -extern void sub_080528F0(); +extern void RoomExitCallback(); extern u8 gUnk_08108D74[]; @@ -176,9 +176,10 @@ void sub_0805DA90(Manager32* this, u32 param_2) { manager->parent = &this->manager; AppendEntityToList((Entity*)manager, 8); } - if (gArea.unk3 != 0) { + if (gArea.onEnter != NULL) { gScreen.lcd.displayControl &= 0xf7ff; - sub_080528F0(); - DeleteManager((Manager*)gArea.unk3); + RoomExitCallback(); + //! @bug: this always variable points to ROM, not a Manager* + DeleteManager((Manager*)gArea.onEnter); } } diff --git a/src/manager/manager34.c b/src/manager/manager34.c index 1fb2b9ef..6ca4773c 100644 --- a/src/manager/manager34.c +++ b/src/manager/manager34.c @@ -63,6 +63,6 @@ void sub_0805DBF0(Manager34* this) { } void sub_0805DC70(void) { - sub_0805E5A8(); + SetInitializationPriority(); DoExitTransition(&gUnk_0813AC48); } diff --git a/src/manager/manager35.c b/src/manager/manager35.c index 0afd3b02..cc9090d0 100644 --- a/src/manager/manager35.c +++ b/src/manager/manager35.c @@ -17,7 +17,7 @@ typedef struct { extern void (*const gUnk_08108D98[])(Manager35*); -extern void sub_0805E4E0(Entity*, u32); +extern void RequestPriorityDuration(Entity*, u32); void Manager35_Main(Manager35* this) { gUnk_08108D98[this->manager.action](this); @@ -50,13 +50,13 @@ void sub_0805DCC8(Manager35* this) { object->y.HALF.HI = this->field_0x3a + gRoomControls.roomOriginY; *(Entity**)this->manager.unk_18 = object; gRoomControls.cameraTarget = object; - sub_0805E4E0(object, 0x1e); + RequestPriorityDuration(object, 0x1e); } } } void sub_0805DD24(Manager35* this) { - sub_0805E4E0(0, 8); + RequestPriorityDuration(0, 8); if ((gRoomControls.unk6 & 4) == 0 && --this->manager.unk_0e == 0) { this->manager.action = 3; SetFlag(this->field_0x3c); @@ -67,7 +67,7 @@ void sub_0805DD24(Manager35* this) { } void sub_0805DD68(Manager35* this) { - sub_0805E4E0(0, 8); + RequestPriorityDuration(0, 8); if (this->field_0x36 != 0) { if (--this->field_0x36 == 0) { gRoomControls.cameraTarget = (Entity*)this->manager.parent; diff --git a/src/manager/manager36.c b/src/manager/manager36.c index e7251db2..c955425f 100644 --- a/src/manager/manager36.c +++ b/src/manager/manager36.c @@ -32,7 +32,7 @@ void CreateManager36(Entity* entity, ScriptExecutionContext* context) { manager->subtype = 0x36; manager->unk_0a = context->intVariable; AppendEntityToList((Entity*)manager, 6); - sub_0805E3A0(manager, 6); + SetDefaultPriority((Entity*)manager, 6); } } diff --git a/src/manager/manager37.c b/src/manager/manager37.c index 270b8162..c1af96f2 100644 --- a/src/manager/manager37.c +++ b/src/manager/manager37.c @@ -39,7 +39,7 @@ void sub_0805DE68(Manager* this) { *(u8*)&gScreenTransition.field_0x3a = 0x20; *((u8*)&gScreenTransition.field_0x3a + 1) = 0x20; #if !defined(EU) && !defined(JP) - gSave.unk498 = 0x1194; + gSave.unk48C[3] = 0x1194; #endif } @@ -54,7 +54,7 @@ void sub_0805DEB8(Manager* this) { this->action = 2; this->unk_0d = 0; this->unk_0e = 0x78; - sub_08078A90(2); + SetPlayerControl(2); sub_08078B48(); object = CreateObject(OBJECT_64, 0, 0); if (object != NULL) { @@ -119,7 +119,7 @@ void sub_0805E000(Manager* this) { } *(Entity**)this->unk_18 = enemy; this->action = 1; - sub_08078A90(3); + SetPlayerControl(3); gArea.pMusicIndex = 0x80010000; DoFade(6, 4); SoundReq(SFX_APPARATE); @@ -134,6 +134,6 @@ void sub_0805E078(Manager* this) { } void sub_0805E094(void) { - sub_0805E5A8(); + SetInitializationPriority(); sub_0808091C((ScreenTransitionData*)&gUnk_0813AC34, 7); } diff --git a/src/manager/manager39.c b/src/manager/manager39.c index 567a38dd..1e51d22e 100644 --- a/src/manager/manager39.c +++ b/src/manager/manager39.c @@ -28,7 +28,7 @@ extern const u8 gUnk_08108E48[0x18]; extern const u8 gUnk_08108E60[]; extern void sub_0805F46C(void*, const void*); -extern void sub_0805E5B4(void); +extern void ResetSystemPriority(void); void sub_0805E140(Manager39*); void sub_0805E18C(Manager39*); // unused? @@ -48,7 +48,7 @@ void sub_0805E140(Manager39* this) { this->unk_20 = gRoomControls.roomID; this->manager.unk_0e = 0x78; this->manager.unk_0f = 0x3c; - sub_0805E3A0((Entity*)this, 7); + SetDefaultPriority((Entity*)this, 7); sub_0805E1F8(gUnk_08108DE8[gArea.locationIndex], CheckIsDungeon()); } @@ -59,7 +59,7 @@ void sub_0805E18C(Manager39* this) { if (!--this->manager.unk_0f) { this->manager.unk_0b = 0; gPlayerState.field_0x8b = 1; - sub_0805E5B4(); + ResetSystemPriority(); } } if (!--this->manager.unk_0e) { diff --git a/src/manager/manager4.c b/src/manager/manager4.c index 50c497b5..42eb1ad6 100644 --- a/src/manager/manager4.c +++ b/src/manager/manager4.c @@ -95,11 +95,11 @@ ASM_FUNC("asm/non_matching/eu/sub_08057A18.inc", void sub_08057A18(Manager* this #else void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { u16 tmp; - sub_0805E5A8(); + SetInitializationPriority(); gUnk_03004030.unk_0a = gUnk_03004030.unk_09; gUnk_03004030.unk_09 = gRoomControls.areaID; - gScreenTransition.areaID = entr->target_areaID; - gScreenTransition.roomID = entr->target_roomID; + gScreenTransition.player_status.area_next = entr->target_areaID; + gScreenTransition.player_status.room_next = entr->target_roomID; gRoomControls.areaID = entr->target_areaID; gRoomControls.roomID = entr->target_roomID; gUnk_03004030.unk_00 = entr; diff --git a/src/manager/manager6.c b/src/manager/manager6.c index 79d0a0bf..dfacaf3a 100644 --- a/src/manager/manager6.c +++ b/src/manager/manager6.c @@ -18,7 +18,7 @@ void Manager6_Main(Manager6* this) { for (i = this->warpList; i->posX != 0xFFFF; i++) { tmp = (i->unk_07.all & 0x3); if (((tmp & (gPlayerEntity.collisionLayer)) != 0) && - (((gPlayerState.flags & PL_IS_MINISH) != 0) || ((i->unk_07.b.unk2) != 0)) && + (((gPlayerState.flags & PL_MINISH) != 0) || ((i->unk_07.b.unk2) != 0)) && (CheckPlayerInRegion(i->posX, i->posY, i->width, i->height) != 0) && (gPlayerEntity.z.HALF.HI == 0)) { DoExitTransition(GetCurrentRoomProperty(i->unk_06)); } diff --git a/src/manager/manager7.c b/src/manager/manager7.c index 8c7ce57f..b081b4ff 100644 --- a/src/manager/manager7.c +++ b/src/manager/manager7.c @@ -66,8 +66,8 @@ void Manager7_Main(Manager7* this) { this->manager.unk_0e = 8; this->unk_20 = 0xFF; - sub_0805E3A0(this, 6); - sub_08052D74(this, sub_08057E30, 0); + SetDefaultPriority((Entity*)this, 6); + RegisterTransitionManager(this, sub_08057E30, 0); } if (sub_08057E40(this)) { tmp = (u32)gRoomVars.unk_10[0]; diff --git a/src/manager/manager8.c b/src/manager/manager8.c index 4debcb08..20298d1f 100644 --- a/src/manager/manager8.c +++ b/src/manager/manager8.c @@ -25,7 +25,7 @@ void Manager8_Main(Manager8* this) { this->manager.action = 1; gScreen.bg1.updated = 0; gScreen.bg3.updated = 0; - sub_08052D74(this, sub_08057EFC, 0); + RegisterTransitionManager(this, sub_08057EFC, 0); } } diff --git a/src/manager/manager9.c b/src/manager/manager9.c index 7cc81df0..c16fefa0 100644 --- a/src/manager/manager9.c +++ b/src/manager/manager9.c @@ -25,7 +25,7 @@ void Manager9_Main(Manager9* this) { if (!this->manager.action) { this->manager.action = 1; gScreen.bg1.updated = 0; - sub_08052D74(this, sub_08058204, NULL); + RegisterTransitionManager(this, sub_08058204, NULL); } } diff --git a/src/manager/managerA.c b/src/manager/managerA.c index 88a3f42f..76cab147 100644 --- a/src/manager/managerA.c +++ b/src/manager/managerA.c @@ -27,7 +27,7 @@ void sub_08058398(ManagerA* this) { this->unk_26 = this->unk_3b << 3; this->unk_20 = this->unk_24 + (this->unk_38 << 4); this->unk_22 = this->unk_26 + (this->unk_39 << 4); - sub_0805E3A0(&this->manager, 0x06); + SetDefaultPriority((Entity*)&this->manager, 0x06); if (this->unk_3e == 0) { this->manager.action = 2; } else { @@ -42,7 +42,7 @@ void sub_080583EC(ManagerA* this) { } } -extern void FreezeTime(void); +extern void SetPlayerEventPriority(void); u32 sub_0805848C(ManagerA*); void sub_080585DC(ManagerA*); @@ -59,16 +59,16 @@ void sub_08058408(ManagerA* this) { return; case 2: sub_080585DC(this); - if ((gPlayerState.flags & PL_IS_MINISH) == 0) + if ((gPlayerState.flags & PL_MINISH) == 0) return; case 0: default: sub_080585DC(this); if (sub_0805848C(this) == 0) return; - sub_08078A90(3); + SetPlayerControl(3); sub_08078B48(); - FreezeTime(); + SetPlayerEventPriority(); this->manager.action = 3; this->manager.unk_0d = 0; this->manager.unk_0e = 0x1e; @@ -113,7 +113,7 @@ u32 sub_0805848C(ManagerA* this) { } } -extern void UnfreezeTime(void); +extern void ResetPlayerEventPriority(void); void sub_08058514(ManagerA* this) { switch (this->manager.unk_0d) { @@ -137,7 +137,7 @@ void sub_08058514(ManagerA* this) { if (gPlayerEntity.action != 1 && gPlayerEntity.action != 9) return; gPlayerState.field_0x8b = 1; - UnfreezeTime(); + ResetPlayerEventPriority(); SetFlag(this->unk_3c); DeleteThisEntity(); return; diff --git a/src/manager/managerB.c b/src/manager/managerB.c index 0de51aae..f52c4138 100644 --- a/src/manager/managerB.c +++ b/src/manager/managerB.c @@ -42,7 +42,7 @@ void ManagerB_Init(ManagerB* this) { if (!this->unk_3c) { ManagerB_LoadFight(&this->manager); } - sub_0805E3A0(this, 3); + SetDefaultPriority((Entity*)this, 3); } else { DeleteThisEntity(); } @@ -148,7 +148,7 @@ void ManagerBHelper_Main(Manager* this) { Entity* current; if (this->action == 0) { this->action = 1; - sub_0805E3A0(this, 3); + SetDefaultPriority((Entity*)this, 3); } // go through and check all monitored enemies. anyRemaining = 0; diff --git a/src/manager/managerC.c b/src/manager/managerC.c index 126186e3..d4a83f64 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -71,7 +71,7 @@ void sub_08058894(ManagerC* this) { this->unk_28 = 0x1234; this->manager.unk_0e = CheckLocalFlags(0x15, 0x2) != 0; sub_08058CB0(this); - sub_08052D74(this, sub_08058D34, 0); + RegisterTransitionManager(this, sub_08058D34, 0); } void sub_080588CC(ManagerC* this) { @@ -204,13 +204,13 @@ const u16 gUnk_081082E8[0xC] = { 0xB8, 0x80, 0x0, 0xB8, 0x110, 0x2, 0x118, 0x80, void sub_08058B5C(ManagerC* this, u32 unk1) { gScreenTransition.transitioningOut = 1; - gScreenTransition.transitionType = 0; - gScreenTransition.field_0xf = 4; - gScreenTransition.areaID = gRoomControls.areaID; - gScreenTransition.roomID = 6; - gScreenTransition.playerState = unk1 & 1 ? 4 : 0; - gScreenTransition.playerStartPos.HALF.x = gUnk_081082E8[unk1 * 3]; - gScreenTransition.playerStartPos.HALF.y = gUnk_081082E8[unk1 * 3 + 1]; + gScreenTransition.transitionType = TRANSITION_DEFAULT; + gScreenTransition.player_status.spawn_type = 4; + gScreenTransition.player_status.area_next = gRoomControls.areaID; + gScreenTransition.player_status.room_next = 6; + gScreenTransition.player_status.start_anim = unk1 & 1 ? 4 : 0; + gScreenTransition.player_status.start_pos.HALF.x = gUnk_081082E8[unk1 * 3]; + gScreenTransition.player_status.start_pos.HALF.y = gUnk_081082E8[unk1 * 3 + 1]; gSave.unk7 = gUnk_081082E8[unk1 * 3 + 2]; SoundReq(SFX_STAIRS); } diff --git a/src/manager/managerE.c b/src/manager/managerE.c index 261e5c00..1cdb8ab8 100644 --- a/src/manager/managerE.c +++ b/src/manager/managerE.c @@ -18,7 +18,7 @@ void ManagerE_Main(ManagerE* this) { return; if (this->manager.unk_0b != 0) { this->manager.unk_0b = 0; - sub_08078A90(0xff); + SetPlayerControl(0xff); sub_08078B48(); } if (this->unk_3a == 0) { diff --git a/src/manager/managerF.c b/src/manager/managerF.c index a736bfa4..432ec49f 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -151,13 +151,13 @@ void sub_08058FB0(ManagerF* this) { if (CheckFlags(this->unk_3e)) { this->manager.action = 2; this->manager.unk_0e = 120; - sub_0805E4E0((Entity*)this, 0xF0); + RequestPriorityDuration((Entity*)this, 0xF0); sub_08059064(this); } break; case 2: if (this->manager.unk_0e == 90) { - sub_08078A90(2); + SetPlayerControl(2); sub_08077B20(); } if (this->manager.unk_0e == 60) { @@ -170,7 +170,7 @@ void sub_08058FB0(ManagerF* this) { break; default: SetFlag(this->unk_3e); - sub_08078A90(1); + SetPlayerControl(1); DeleteThisEntity(); } } @@ -209,7 +209,7 @@ void sub_08059094(ManagerF* this) { void sub_080590E0(ManagerF* this) { if (!this->manager.action) { this->manager.action = 1; - sub_0805E3A0(this, 6); + SetDefaultPriority((Entity*)this, 6); } if (CheckLocalFlag(0x6c)) { if (CheckLocalFlag(0x4b)) { @@ -241,7 +241,7 @@ void sub_08059124(ManagerF* this) { break; case 1: if (CheckFlags(this->unk_3e)) { - sub_0805E4E0((Entity*)this, 0x4b); + RequestPriorityDuration((Entity*)this, 0x4b); this->manager.unk_0e = 0x2d; this->manager.action++; } @@ -360,7 +360,7 @@ void sub_0805938C(ManagerF* this) { } u32 sub_080593CC(ManagerF* this) { - if (!(gPlayerState.flags & PL_IS_MINISH) && gPlayerState.swimState != 0 && gPlayerEntity.animationState == 0 && + if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.swimState != 0 && gPlayerEntity.animationState == 0 && (gPlayerState.field_0x90.HALF.LO & 0xF00) == 0x400) { return sub_0806FCB8(&gPlayerEntity, this->unk_38, this->unk_3a + 0xC, 6); } @@ -386,7 +386,7 @@ void sub_08059424(ManagerF* this) { void sub_0805947C(ManagerF* this) { if (!CheckFlags(this->unk_3e)) { - sub_08078A90(3); + SetPlayerControl(3); if (gRoomControls.unk2) return; if (gRoomVars.field_0x0) { @@ -407,7 +407,7 @@ void sub_080594DC(ManagerF* this) { case 1: if (!GetInventoryValue(6)) return; - if (CheckLocalFlagByOffset(0x8c0, 0x85)) + if (CheckLocalFlagByBank(0x8c0, 0x85)) return; this->manager.action = 2; sub_080186C0(0xB0F); @@ -417,7 +417,7 @@ void sub_080594DC(ManagerF* this) { if (gArea.field_0x28 != 0xFF) { DeleteThisEntity(); } - if (CheckLocalFlagByOffset(0x8c0, 0x85)) { + if (CheckLocalFlagByBank(0x8c0, 0x85)) { sub_0801855C(); DeleteThisEntity(); } @@ -427,7 +427,7 @@ void sub_080594DC(ManagerF* this) { #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) void sub_08059548(ManagerF* this) { - sub_0805E3A0(this, 6); + SetDefaultPriority((Entity*)this, 6); if (gPlayerEntity.action == 0x16) { DeleteThisEntity(); } diff --git a/src/npc/beedle.c b/src/npc/beedle.c index 73f14f41..ce9c7722 100644 --- a/src/npc/beedle.c +++ b/src/npc/beedle.c @@ -157,8 +157,5 @@ void sub_080634EC(Entity* this) { } void sub_08063504(Entity* this, ScriptExecutionContext* context) { - u32 uVar1; - - uVar1 = GetBottleContaining(gUnk_0810C88C[this->type2]); - context->condition = BOOLCAST(uVar1); + context->condition = !!GetBottleContaining(gUnk_0810C88C[this->type2]); } diff --git a/src/npc/bigGoron.c b/src/npc/bigGoron.c index 8aacc772..797c9f6f 100644 --- a/src/npc/bigGoron.c +++ b/src/npc/bigGoron.c @@ -44,7 +44,7 @@ void sub_0806CF30(Entity* this) { this->action = 1; this->subAction = 1; this->field_0x68.HWORD = this->x.HALF.HI; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0806D0B0(this); sub_0807DD64(this); } else { @@ -133,7 +133,7 @@ void sub_0806D1D0(Entity* this) { this->spriteSettings.draw = 3; this->frameIndex = 0; this->actionDelay = 0x1e; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); } switch (this->subAction) { @@ -174,7 +174,7 @@ void sub_0806D274(Entity* this) { this->spritePriority.b0 = 7; this->frameIndex = 2; this->actionDelay = 8; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); npc = CreateNPC(0x4c, 3, 0); if (npc != NULL) { npc->child = this; @@ -221,7 +221,7 @@ void sub_0806D348(Entity* this) { this->spritePriority.b0 = 6; this->spriteSettings.draw = 0; this->frameIndex = 5; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); } if (this->child->frameIndex == 4) { this->spriteSettings.draw = 3; @@ -239,7 +239,7 @@ void sub_0806D3C0(Entity* this) { } this->action = 1; this->hitbox = &gHitbox_3; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD64(this); } else { this->x.HALF.HI = this->parent->x.HALF.HI; @@ -262,7 +262,7 @@ void sub_0806D41C(Entity* this) { sub_0806D4C0(this, 1); sub_0806D4C0(this, 2); sub_0806D4C0(this, 3); - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); } else { ExecuteScriptForEntity(this, NULL); HandleEntity0x82Actions(this); @@ -286,7 +286,7 @@ void sub_0806D4C0(Entity* this, u32 param) { npc->parent = this; CopyPosition(this, npc); ResolveEntityOnTop(this, npc); - sub_0805E3A0(npc, 2); + SetDefaultPriority(npc, 2); } } @@ -322,7 +322,7 @@ NONMATCH("asm/non_matching/bigGoron/sub_0806D5D4.inc", void sub_0806D5D4(void)) END_NONMATCH void sub_0806D600(Entity* this, ScriptExecutionContext* context) { - context->condition = gSave.unk494 == 0; + context->condition = gSave.unk48C[2] == 0; } void sub_0806D620(void) { diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c index c4e2b4ab..95c447f0 100644 --- a/src/npc/bladeBrothers.c +++ b/src/npc/bladeBrothers.c @@ -52,7 +52,7 @@ void sub_08068A1C(Entity* this) { int offset; this->type2 = this->type; - if (gScreenTransition.field_0x24[8] != 0) { + if (gScreenTransition.player_status.field_0x24[8] != 0) { offset = 6; bVar1 = 3; @@ -106,7 +106,7 @@ void sub_08068AA4(Entity* this) { } void sub_08068ADC(Entity* this) { - if (gScreenTransition.field_0x24[8] == 2) { + if (gScreenTransition.player_status.field_0x24[8] == 2) { GetNextFrame(this); } sub_0806FD3C(this); diff --git a/src/npc/brocco.c b/src/npc/brocco.c index bf00088d..ee03fa3a 100644 --- a/src/npc/brocco.c +++ b/src/npc/brocco.c @@ -73,7 +73,7 @@ void sub_0806362C(Entity* this) { } void sub_080636D8(Entity* this) { - ShowNPCDialogue(this, &gUnk_0810CAAC[gSave.unk8]); + ShowNPCDialogue(this, &gUnk_0810CAAC[gSave.global_progress]); } void sub_080636F4(Entity* this) { diff --git a/src/npc/carpenter.c b/src/npc/carpenter.c index 5369ca96..f489ad72 100644 --- a/src/npc/carpenter.c +++ b/src/npc/carpenter.c @@ -24,7 +24,7 @@ void Carpenter(Entity* this) { break; this->action = 1; this->field_0x68.HALF.HI = 0; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD64(this); case 1: @@ -94,7 +94,7 @@ void Carpenter_Fusion(Entity* this) { if (LoadExtraSpriteData(this, &gUnk_08110CA8[this->type * 4]) != 0) { this->action = this->action + 1; this->spriteSettings.draw = 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); InitializeAnimation(this, (u32)this->type * 8 + 2); } } else { diff --git a/src/npc/castleMaid.c b/src/npc/castleMaid.c index f9cc2c81..af001b63 100644 --- a/src/npc/castleMaid.c +++ b/src/npc/castleMaid.c @@ -107,7 +107,7 @@ void sub_0806464C(Entity* this) { } void sub_08064688(Entity* this) { - ShowNPCDialogue(this, &gUnk_0810F894[gSave.unk8]); + ShowNPCDialogue(this, &gUnk_0810F894[gSave.global_progress]); } ASM_FUNC("asm/non_matching/castleMaid/sub_080646A4.inc", diff --git a/src/npc/castorWildsStatue.c b/src/npc/castorWildsStatue.c index 5bbeb15b..366e568d 100644 --- a/src/npc/castorWildsStatue.c +++ b/src/npc/castorWildsStatue.c @@ -23,7 +23,7 @@ void CastorWildsStatue(Entity* this) { } void sub_080673C0(Entity* this) { - if (gScreenTransition.field_0x24[8] != 0) { + if (gScreenTransition.player_status.field_0x24[8] != 0) { this->action = 3; } else { this->action = 1; diff --git a/src/npc/cat.c b/src/npc/cat.c index f7cb833f..3371284c 100644 --- a/src/npc/cat.c +++ b/src/npc/cat.c @@ -46,7 +46,7 @@ extern u32 sub_0806FCA0(Entity*, Entity*); extern Entity* sub_08049DF4(u32); void sub_08067790(Entity* this) { - ShowNPCDialogue(this, &gUnk_08110EF8 + this->type * 10 + gSave.unk8); + ShowNPCDialogue(this, &gUnk_08110EF8 + this->type * 10 + gSave.global_progress); } // Main @@ -153,7 +153,7 @@ void sub_0806799C(Entity* this) { UpdateAnimationSingleFrame(this); if ((gMessage.doTextBox & 0x7f) == 0) { sub_08067B08(this); - sub_0805E3A0(this, 1); + SetDefaultPriority(this, 1); } } @@ -272,7 +272,7 @@ void sub_08067C44(Entity* this) { s32 iVar4; u32 uVar5; - uVar5 = -((s32) - (gPlayerState.flags & PL_IS_MINISH) >> 0x1f); + uVar5 = -((s32) - (gPlayerState.flags & PL_MINISH) >> 0x1f); if (uVar5 != this->field_0x68.HALF.HI) { if (uVar5 == 0) { sub_08078778(this); @@ -319,7 +319,7 @@ void sub_08067C44(Entity* this) { } else { this->action = 4; sub_08067790(this); - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); } this->interactType = 0; SoundReq(SFX_VO_CAT); diff --git a/src/npc/cow.c b/src/npc/cow.c index 1f7ca1c0..fa57d88c 100644 --- a/src/npc/cow.c +++ b/src/npc/cow.c @@ -181,7 +181,7 @@ void Cow_ShowDialogue(Entity* ent) { void sub_0806920C(Entity* ent) { // TODO: figure out what bitfield flag this is - u32 var0 = gPlayerState.flags & PL_IS_MINISH; + u32 var0 = gPlayerState.flags & PL_MINISH; u32 var1 = -var0 >> 0x1F; if (var1 != ent->field_0x6c.HALF.HI) { @@ -200,7 +200,7 @@ void sub_0806924C(Entity* ent) { s8 itype = ent->interactType; if (itype != 0) { // TODO: figure out what bitfield flag this is - if ((gPlayerState.flags & PL_IS_MINISH) != 0) { + if ((gPlayerState.flags & PL_MINISH) != 0) { if (itype == 2) { ent->action = 4; sub_0806F118(ent); diff --git a/src/npc/cucco.c b/src/npc/cucco.c index f2e608b8..8bd30005 100644 --- a/src/npc/cucco.c +++ b/src/npc/cucco.c @@ -21,7 +21,7 @@ void sub_0806E4B8(Entity* this) { this->action += 1; this->field_0x68.HALF.LO = sub_0801E99C(this); sub_080787A8(this, this->field_0x68.HALF.LO); - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); this->subAction = 0; sub_0806E4EC(this); } @@ -59,7 +59,7 @@ void sub_0806E648(Entity* this) { void sub_0806E65C(Entity* this) { if (this->interactType != 0) { - if ((gPlayerState.flags & PL_IS_MINISH) != 0) { + if ((gPlayerState.flags & PL_MINISH) != 0) { if (this->interactType == 2) { this->action = 4; sub_0806F118(this); diff --git a/src/npc/cuccoChick.c b/src/npc/cuccoChick.c index 34c00503..0cb4b76c 100644 --- a/src/npc/cuccoChick.c +++ b/src/npc/cuccoChick.c @@ -22,7 +22,7 @@ void sub_0806E730(Entity* this) { this->action += 1; this->field_0x68.HALF.LO = sub_0801E99C(this); sub_080787A8(this, this->field_0x68.HALF.LO); - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); this->subAction = 0; sub_0806E764(this); } @@ -53,7 +53,7 @@ void sub_0806E824(Entity* this) { void sub_0806E838(Entity* this) { if (this->interactType != 0) { - if ((gPlayerState.flags & PL_IS_MINISH) != 0) { + if ((gPlayerState.flags & PL_MINISH) != 0) { if (this->interactType == 2) { this->action = 3; sub_0806F118(this); diff --git a/src/npc/dampe.c b/src/npc/dampe.c index 1a62e10a..096ac1e8 100644 --- a/src/npc/dampe.c +++ b/src/npc/dampe.c @@ -16,7 +16,7 @@ void Dampe(Entity* this) { case 0: this->action = 1; this->spriteSettings.draw = 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); return; case 1: diff --git a/src/npc/din.c b/src/npc/din.c index 4a2d5e5f..51026a2e 100644 --- a/src/npc/din.c +++ b/src/npc/din.c @@ -34,7 +34,7 @@ void Din(Entity* this) { void sub_08064828(Entity* this) { u32 tmp = sub_0801E99C(this); - if ((gSave.unk141[sub_08002632(this)] != 0) && (gSave.unk8 < 7)) { + if ((gSave.unk141[sub_08002632(this)] != 0) && (gSave.global_progress < 7)) { tmp = 0; } sub_08078784(this, tmp); diff --git a/src/npc/dog.c b/src/npc/dog.c index f17adad8..3dc8641e 100644 --- a/src/npc/dog.c +++ b/src/npc/dog.c @@ -66,12 +66,12 @@ void sub_08069B44(Entity* this) { this->animationState = 2; this->field_0x6a.HALF.LO = 0xff; this->field_0x74.HALF.LO = sub_0801E99C(this); - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); InitAnimationForceUpdate(this, 10); if ((this->flags & 2) != 0) { sub_0807DD50(this); } - if (((this->type == 0) && ((gPlayerState.flags & PL_IS_MINISH) == 0)) && (GetInventoryValue(0x36) != 2)) { + if (((this->type == 0) && ((gPlayerState.flags & PL_MINISH) == 0)) && (GetInventoryValue(0x36) != 2)) { this->action = 4; } #if defined(JP) || defined(EU) || defined(DEMO_JP) @@ -87,7 +87,7 @@ void sub_08069B44(Entity* this) { void sub_08069C40(Entity* this) { UpdateAnimationSingleFrame(this); if (sub_08069F90(this) != 0) { - if ((gPlayerState.flags & PL_IS_MINISH) != 0) { + if ((gPlayerState.flags & PL_MINISH) != 0) { sub_08069CB8(this); } else { this->animationState = GetAnimationState(this); @@ -278,14 +278,14 @@ u32 sub_08069F90(Entity* this) { } void sub_08069FBC(Entity* this) { - u32 tmp = (gPlayerState.flags & PL_IS_MINISH) != 0 ? 0x24 : 0x20; + u32 tmp = (gPlayerState.flags & PL_MINISH) != 0 ? 0x24 : 0x20; if ((this->animationState == 1) || (this->animationState == 3)) { this->field_0x6a.HALF.HI = tmp; } } void sub_08069FE8(Entity* this) { - u32 tmp = -((s32) - (gPlayerState.flags & PL_IS_MINISH) >> 0x1f); + u32 tmp = -((s32) - (gPlayerState.flags & PL_MINISH) >> 0x1f); if (tmp != this->field_0x6a.HALF.LO) { if (tmp == 0) { sub_08078778(this); @@ -298,7 +298,7 @@ void sub_08069FE8(Entity* this) { void sub_0806A028(Entity* this) { if (this->interactType != 0) { - if ((gPlayerState.flags & PL_IS_MINISH) != 0) { + if ((gPlayerState.flags & PL_MINISH) != 0) { if (this->interactType == 2) { this->action = 6; sub_0806F118(this); @@ -316,13 +316,13 @@ void sub_0806A028(Entity* this) { } void sub_0806A080(Entity* this) { - ShowNPCDialogue(this, (Dialog*)&gUnk_08111E34 + this->type2 * 10 + gSave.unk8); + ShowNPCDialogue(this, (Dialog*)&gUnk_08111E34 + this->type2 * 10 + gSave.global_progress); } void sub_0806A0A4(Entity* this) { s32 dialog; - if (gPlayerState.flags & PL_IS_MINISH) { + if (gPlayerState.flags & PL_MINISH) { dialog = 4; if (CheckLocalFlag(MACHI_02_DOG) == 0) { dialog = 3; @@ -339,12 +339,12 @@ void sub_0806A0A4(Entity* this) { } } } - MessageNoOverlap(gUnk_08111F74[(u32)gSave.unk8 * 5 + dialog], this); + MessageNoOverlap(gUnk_08111F74[(u32)gSave.global_progress * 5 + dialog], this); } void sub_0806A144(Entity* this) { s32 dialog = 4; - if (gPlayerState.flags & PL_IS_MINISH) { + if (gPlayerState.flags & PL_MINISH) { dialog = 3; if (GetInventoryValue(0x46) == 0 && CheckGlobalFlag(MIZUKAKI_START)) { if (CheckLocalFlag(0x85) == 0) { @@ -362,7 +362,7 @@ void Dog_Fusion(Entity* this) { if (sub_08069EF0(this) != 0) { this->action += 1; this->spriteSettings.draw = 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); InitializeAnimation(this, 0x23); } } else { diff --git a/src/npc/drLeft.c b/src/npc/drLeft.c index 1ee1b863..cdc05551 100644 --- a/src/npc/drLeft.c +++ b/src/npc/drLeft.c @@ -17,7 +17,7 @@ void DrLeft(Entity* this) { if (this->type == 0) { if (this->action == 0) { this->action += 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); } ExecuteScriptForEntity(this, NULL); @@ -59,7 +59,7 @@ void sub_0806C028(Entity* this, ScriptExecutionContext* context) { void sub_0806C038(Entity* this) { s32 index; - index = gSave.unk8 - 5; + index = gSave.global_progress - 5; if (index != 0) { index = 0; } diff --git a/src/npc/emma.c b/src/npc/emma.c index cdbfe8e3..fa75eea0 100644 --- a/src/npc/emma.c +++ b/src/npc/emma.c @@ -10,7 +10,7 @@ extern ScreenTransitionData gUnk_0813AD38; void Emma(Entity* this) { if (this->action == 0) { this->action += 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); } else { sub_0807DD94(this, 0); diff --git a/src/npc/epona.c b/src/npc/epona.c index 4648f004..540184c2 100644 --- a/src/npc/epona.c +++ b/src/npc/epona.c @@ -58,7 +58,7 @@ void sub_08065A50(Entity* this) { void sub_08065A64(Entity* this) { u32 uVar2; - uVar2 = -(gPlayerState.flags & PL_IS_MINISH) >> 0x1f; + uVar2 = -(gPlayerState.flags & PL_MINISH) >> 0x1f; if (uVar2 != this->field_0x68.HALF.HI) { if (uVar2 == 0) { sub_08078778(this); @@ -71,13 +71,13 @@ void sub_08065A64(Entity* this) { void sub_08065AA4(Entity* this) { if (this->interactType != 0) { - if (gPlayerState.flags & PL_IS_MINISH) { + if (gPlayerState.flags & PL_MINISH) { if (this->interactType == 2) { this->action = 4; sub_0806F118(this); } else { this->action = 3; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_08065A50(this); } InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); diff --git a/src/npc/ezloCap.c b/src/npc/ezloCap.c index 4eca8f35..6860455b 100644 --- a/src/npc/ezloCap.c +++ b/src/npc/ezloCap.c @@ -12,7 +12,7 @@ const u8 gUnk_08114144[]; void EzloCap(Entity* this) { if (this->action == 0) { this->action += 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); } ExecuteScriptForEntity(this, NULL); diff --git a/src/npc/farmers.c b/src/npc/farmers.c index 88ea6005..c2f633fe 100644 --- a/src/npc/farmers.c +++ b/src/npc/farmers.c @@ -12,7 +12,7 @@ void sub_0806BC58(Entity* this); ASM_FUNC("asm/non_matching/farmers/Farmers.inc", void Farmers(Entity* this)) void sub_0806BC58(Entity* this) { - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); } void Farmers_Head(Entity* this) { diff --git a/src/npc/farore.c b/src/npc/farore.c index a19d1599..0249171d 100644 --- a/src/npc/farore.c +++ b/src/npc/farore.c @@ -36,7 +36,7 @@ void Farore(Entity* this) { void sub_08064A28(Entity* this) { u32 tmp = sub_0801E99C(this); - if ((gSave.unk141[sub_08002632(this)] != 0) && (gSave.unk8 < 7)) { + if ((gSave.unk141[sub_08002632(this)] != 0) && (gSave.global_progress < 7)) { tmp = 0; } sub_08078784(this, tmp); diff --git a/src/npc/festari.c b/src/npc/festari.c index 4a1a6492..114ac046 100644 --- a/src/npc/festari.c +++ b/src/npc/festari.c @@ -18,7 +18,7 @@ void Festari(Entity* this) { void sub_0805FE10(Entity* this) { this->action = 1; this->spriteSettings.draw = TRUE; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); this->field_0x68.HALF.LO = sub_0801E99C(this); sub_08078784(this, this->field_0x68.HALF.LO); sub_0807DD50(this); @@ -113,7 +113,7 @@ void Festari_Fusion(Entity* this) { if (this->action == 0) { this->action += 1; this->spriteSettings.draw = 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); InitAnimationForceUpdate(this, 8); } else { UpdateAnimationSingleFrame(this); diff --git a/src/npc/forestMinish.c b/src/npc/forestMinish.c index 366132c5..c0a9f88d 100644 --- a/src/npc/forestMinish.c +++ b/src/npc/forestMinish.c @@ -32,7 +32,7 @@ void ForestMinish(Entity* this) { this->spriteSettings.draw = TRUE; this->field_0x68.HALF.HI = this->animationState = this->actionDelay << 1; this->actionDelay = 0; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); StartCutscene(this, (u16*)gUnk_08109D18[this->type2]); sub_0807DD50(this); } @@ -234,14 +234,14 @@ void sub_08060318(void) { } void sub_08060340(void) { - gSave.unk490 = gSave.unk50; + gSave.unk48C[1] = gSave.unk50; } u32 sub_08060354(void) { u32 iVar1; s32 iVar2; - iVar2 = gSave.unk50 - gSave.unk490; + iVar2 = gSave.unk50 - gSave.unk48C[1]; if (CheckGlobalFlag(DRUG_1) == 0) { if (4 < iVar2) { return 0x8444; @@ -267,7 +267,7 @@ void ForestMinish_Fusion(Entity* this) { if (LoadExtraSpriteData(this, &gUnk_0810A348)) { this->action++; this->spriteSettings.draw = TRUE; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); InitializeAnimation(this, 6); } } else { diff --git a/src/npc/gentari.c b/src/npc/gentari.c index ed79f153..46b8500f 100644 --- a/src/npc/gentari.c +++ b/src/npc/gentari.c @@ -10,7 +10,7 @@ void Gentari(Entity* this) { case 0: this->action = 1; this->spriteSettings.draw = TRUE; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); this->field_0x68.HALF.LO = sub_0801E99C(this); sub_08078784(this, this->field_0x68.HALF.LO); sub_0807DD50(this); @@ -36,7 +36,7 @@ void Gentari_Fusion(Entity* this) { if (this->action == 0) { this->action++; this->spriteSettings.draw = TRUE; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); InitAnimationForceUpdate(this, 10); } else { UpdateAnimationSingleFrame(this); diff --git a/src/npc/ghostBrothers.c b/src/npc/ghostBrothers.c index adebaf68..1cdbdd8a 100644 --- a/src/npc/ghostBrothers.c +++ b/src/npc/ghostBrothers.c @@ -94,7 +94,7 @@ void sub_08065D18(Entity* this) { this->spriteSettings.draw = 1; this->spriteRendering.alphaBlend = 1; *(u32**)&this->field_0x6c = &gUnk_08110188; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); InitAnimationForceUpdate(this, 2); gScreen.controls.layerFXControl = 0x3f40; gScreen.controls.alphaBlend = 0x1000; @@ -125,7 +125,7 @@ void sub_08065F20(Entity* this) { } void sub_08065F64(Entity* this) { - s32 tmp = gSave.unk8 - 2; + s32 tmp = gSave.global_progress - 2; if (tmp < 0) { tmp = 0; } diff --git a/src/npc/goron.c b/src/npc/goron.c index 2cdc3051..c7e70d29 100644 --- a/src/npc/goron.c +++ b/src/npc/goron.c @@ -39,7 +39,7 @@ void sub_08069328(Entity* this) { } if (this->interactType != 0) { this->action = 2; - sub_0805E47C(this); + RequestPriority(this); InitAnimationForceUpdate(this, 8); MessageFromTarget(this->actionDelay + (0x90 << 5)); } @@ -50,7 +50,7 @@ void sub_08069390(Entity* this) { if ((gMessage.doTextBox & 0x7F) == 0) { this->action = 1; this->interactType = 0; - sub_0805E584(this); + RevokePriority(this); InitAnimationForceUpdate(this, this->animationState); } } diff --git a/src/npc/goronMerchant.c b/src/npc/goronMerchant.c index 1c1dbf6f..28962706 100644 --- a/src/npc/goronMerchant.c +++ b/src/npc/goronMerchant.c @@ -27,7 +27,7 @@ void GoronMerchant(Entity* this) { } void sub_08069584(Entity* this) { - if (gScreenTransition.field_0x24[8] != 0) { + if (gScreenTransition.player_status.field_0x24[8] != 0) { this->action = 3; } else { this->action = 1; @@ -55,13 +55,13 @@ void sub_080695E8(Entity* this) { if ((gMessage.doTextBox & 0x7f) == 0) { this->action = 1; this->interactType = gMessage.doTextBox & 0x7f; - sub_0805E584(this); + RevokePriority(this); InitAnimationForceUpdate(this, this->animationState); } } void sub_0806961C(Entity* this) { - if (gScreenTransition.field_0x24[8] == 2) { + if (gScreenTransition.player_status.field_0x24[8] == 2) { UpdateAnimationSingleFrame(this); } sub_0806FD3C(this); diff --git a/src/npc/gregal.c b/src/npc/gregal.c index 8f7ce5ed..db60132d 100644 --- a/src/npc/gregal.c +++ b/src/npc/gregal.c @@ -19,7 +19,7 @@ void sub_0806CAF4(Entity* this) { if (this->action == 0) { this->action += 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); npc = CreateNPC(0x4a, 1, 0); if (npc != NULL) { npc->parent = this; @@ -46,7 +46,7 @@ void sub_0806CB80(Entity* this) { this->action += 1; this->animationState = 2; this->frameIndex = 0; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); } if (this->parent != NULL) { this->frameIndex = (this->parent->frame & 3) + 0x21; @@ -57,7 +57,7 @@ void sub_0806CBB4(Entity* this) { if (this->action == 0) { this->action += 1; this->animationState = 2; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); InitializeAnimation(this, 0x11); } GetNextFrame(this); @@ -74,7 +74,7 @@ void sub_0806CC08(Entity* this) { case 0: this->action = 1; this->spriteSettings.draw = 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD64(this); case 1: if (this->interactType == 2) { @@ -154,7 +154,7 @@ void Gregal_Fusion(Entity* this) { if (this->action == 0) { this->action += 1; this->spriteSettings.draw = 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); InitAnimationForceUpdate(this, 6); } else { UpdateAnimationSingleFrame(this); diff --git a/src/npc/guard.c b/src/npc/guard.c index 843219fa..aa2d95bd 100644 --- a/src/npc/guard.c +++ b/src/npc/guard.c @@ -204,7 +204,7 @@ void Guard_Head(Entity* this) { } void sub_08064030(Entity* arg0, Entity* arg1) { - *(u32*)&arg1->animationState = (-gRoomVars.greatFairyState | gRoomVars.greatFairyState) >> 0x1f; + *(u32*)&arg1->animationState = !!gRoomVars.animFlags; } void sub_08064044(void) { diff --git a/src/npc/hurdyGurdyMan.c b/src/npc/hurdyGurdyMan.c index 6bc1e0a2..8fbd8b0d 100644 --- a/src/npc/hurdyGurdyMan.c +++ b/src/npc/hurdyGurdyMan.c @@ -20,7 +20,7 @@ void HurdyGurdyMan(Entity* this) { if (LoadExtraSpriteData(this, &gUnk_081144F0) != 0) { this->action = 1; this->field_0x68.HALF.HI = 0; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); } break; @@ -59,7 +59,7 @@ void HurdyGurdyMan_Head(Entity* this) { } void sub_0806E418(Entity* this) { - s32 tmp = gSave.unk8 - 2; + s32 tmp = gSave.global_progress - 2; if (tmp < 0) { tmp = 0; } @@ -79,7 +79,7 @@ void HurdyGurdyMan_Fusion(Entity* this) { if (uVar1 != 0) { this->action += 1; this->spriteSettings.draw = 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); InitializeAnimation(this, 10); } } else { diff --git a/src/npc/kid.c b/src/npc/kid.c index b98341f1..03ebf3b8 100644 --- a/src/npc/kid.c +++ b/src/npc/kid.c @@ -208,10 +208,10 @@ NONMATCH("asm/non_matching/kid/sub_08062634.inc", void sub_08062634(Entity* this END_NONMATCH NONMATCH("asm/non_matching/kid/sub_0806265C.inc", void sub_0806265C(Entity* this, ScriptExecutionContext* context)) { - if (gSave.unk8 == 0) { + if (gSave.global_progress == 0) { MessageNoOverlap(0, this); } else { - ShowNPCDialogue(this, &gUnk_0810BE10[this->type * 9 + gSave.unk8]); + ShowNPCDialogue(this, &gUnk_0810BE10[this->type * 9 + gSave.global_progress]); } } END_NONMATCH diff --git a/src/npc/kingGustaf.c b/src/npc/kingGustaf.c index ef5b7971..596e0b90 100644 --- a/src/npc/kingGustaf.c +++ b/src/npc/kingGustaf.c @@ -11,7 +11,7 @@ void KingGustaf(Entity* this) { this->action += 1; this->spriteRendering.alphaBlend = 1; this->collisionLayer = 2; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); gScreen.controls.layerFXControl = 0x3f40; gScreen.controls.alphaBlend = 0x1000; diff --git a/src/npc/librari.c b/src/npc/librari.c index 3e961f65..0d484d2a 100644 --- a/src/npc/librari.c +++ b/src/npc/librari.c @@ -16,7 +16,7 @@ void Librari(Entity* this) { this->animationState = this->actionDelay; this->field_0x68.HALF.LO = sub_0801E99C(this); sub_08078784(this, this->field_0x68.HALF.LO); - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); break; case 1: diff --git a/src/npc/mama.c b/src/npc/mama.c index 50bd99fe..5c85f121 100644 --- a/src/npc/mama.c +++ b/src/npc/mama.c @@ -48,7 +48,7 @@ bool32 sub_0806C454(Entity* this) { if (LoadExtraSpriteData(this, &gUnk_08113754) == 0) { return FALSE; } else { - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); return TRUE; } } @@ -76,7 +76,7 @@ void sub_0806C4A8(Entity* this, ScriptExecutionContext* context) { } void sub_0806C4DC(Entity* this) { - ShowNPCDialogue(this, &gUnk_08113760[gSave.unk8]); + ShowNPCDialogue(this, &gUnk_08113760[gSave.global_progress]); } void sub_0806C4F8(Entity* this) { diff --git a/src/npc/marcy.c b/src/npc/marcy.c index 89937936..0b6d0dcc 100644 --- a/src/npc/marcy.c +++ b/src/npc/marcy.c @@ -9,7 +9,7 @@ extern u16 gUnk_0810C34C[]; void Marcy(Entity* this) { if (this->action == 0) { this->action += 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD64(this); } sub_0807DD94(this, NULL); diff --git a/src/npc/mayorHagen.c b/src/npc/mayorHagen.c index d5fffd9a..a9353164 100644 --- a/src/npc/mayorHagen.c +++ b/src/npc/mayorHagen.c @@ -19,7 +19,7 @@ void MayorHagen(Entity* this) { this->action = 1; this->field_0x68.HALF.HI = 0; this->field_0x68.HALF.LO = sub_0801E99C(this); - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); break; case 1: @@ -52,7 +52,7 @@ void sub_0806CE5C(Entity* this) { void sub_0806CE80(Entity* this) { u32 v; u32 v2; - v = gSave.unk8; + v = gSave.global_progress; if (v == 5) { // flippers if (GetInventoryValue(0x46) == 0) { diff --git a/src/npc/melari.c b/src/npc/melari.c index 91f803b5..e0879f3b 100644 --- a/src/npc/melari.c +++ b/src/npc/melari.c @@ -65,7 +65,7 @@ void sub_08068780(Entity* this) { this->action = 1; this->spriteSettings.draw = TRUE; this->animationState = this->type; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); break; case 1: diff --git a/src/npc/minishEzlo.c b/src/npc/minishEzlo.c index 2ab3ac16..a6824c50 100644 --- a/src/npc/minishEzlo.c +++ b/src/npc/minishEzlo.c @@ -12,7 +12,7 @@ void MinishEzlo(Entity* this) { } this->action += 1; this->animationState = this->actionDelay * 2; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); } ExecuteScriptForEntity(this, NULL); diff --git a/src/npc/mutoh.c b/src/npc/mutoh.c index 8cae57cd..b1263127 100644 --- a/src/npc/mutoh.c +++ b/src/npc/mutoh.c @@ -23,7 +23,7 @@ void Mutoh(Entity* this) { if (LoadExtraSpriteData(this, &gUnk_08110C00)) { this->action = 1; this->spriteSettings.draw = TRUE; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); } break; @@ -64,7 +64,7 @@ void sub_080670B4(Entity* this) { } void sub_080670E4(Entity* this) { - ShowNPCDialogue(this, &gUnk_08110C10[gSave.unk8]); + ShowNPCDialogue(this, &gUnk_08110C10[gSave.global_progress]); } void sub_08067100(Entity* this) { diff --git a/src/npc/nayru.c b/src/npc/nayru.c index f6e799d8..bfc4a3a3 100644 --- a/src/npc/nayru.c +++ b/src/npc/nayru.c @@ -36,7 +36,7 @@ void Nayru(Entity* this) { void sub_08064928(Entity* this) { u32 tmp = sub_0801E99C(this); - if ((gSave.unk141[sub_08002632(this)] != 0) && (gSave.unk8 < 7)) { + if ((gSave.unk141[sub_08002632(this)] != 0) && (gSave.global_progress < 7)) { tmp = 0; } sub_08078784(this, tmp); diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index 3041da84..f4a87161 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -205,8 +205,8 @@ void sub_0806DCA0() { } void sub_0806DCC0() { - gScreenTransition.field_0x20 = 0x7c8; - gScreenTransition.field_0x22 = 0xf8; + gScreenTransition.player_status.field_0x20 = 0x7c8; + gScreenTransition.player_status.field_0x22 = 0xf8; } void NPC4E_Fusion(Entity* this) { diff --git a/src/npc/npc5.c b/src/npc/npc5.c index 8808e81e..f6b04a24 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -878,7 +878,7 @@ void sub_08061B58(Entity* this) { this->action = 1; InitAnimationForceUpdate(this, 2); } - if (gScreenTransition.field_0x24[8] == 2) { + if (gScreenTransition.player_status.field_0x24[8] == 2) { UpdateAnimationSingleFrame(this); } sub_0806FD3C(this); diff --git a/src/npc/npc9.c b/src/npc/npc9.c index deab57c0..97b32871 100644 --- a/src/npc/npc9.c +++ b/src/npc/npc9.c @@ -22,7 +22,7 @@ void sub_08062B14(Entity* this) { this->interactType = 0; this->action++; InitializeAnimation(this, 1); - sub_0805E47C(this); + RequestPriority(this); } sub_0806ED78(this); } @@ -39,6 +39,6 @@ void sub_08062B70(Entity* this) { if ((gMessage.doTextBox & 0x7f) == 0) { InitializeAnimation(this, 2); this->action = 1; - sub_0805E584(this); + RevokePriority(this); } } diff --git a/src/npc/phonograph.c b/src/npc/phonograph.c index 2e047f35..38aa8569 100644 --- a/src/npc/phonograph.c +++ b/src/npc/phonograph.c @@ -30,7 +30,7 @@ ASM_FUNC("asm/non_matching/eu/sub_0806EABC.inc", void sub_0806EABC(Entity* this, #else void sub_0806EABC(Entity* this, u32 param) { sub_08050384(); - sub_08057044(param, &gUnk_020227E8, 0x202020); + sub_08057044(param, &gUnk_020227E8[0], 0x202020); sub_0805F46C(0x3302, &gUnk_081146B8); gScreen.bg0.updated = 1; } diff --git a/src/npc/pina.c b/src/npc/pina.c index 0d286049..11a2b55b 100644 --- a/src/npc/pina.c +++ b/src/npc/pina.c @@ -110,7 +110,7 @@ void sub_08063C74(void) { } void sub_08063C90(Entity* this) { - ShowNPCDialogue(this, &gUnk_0810CE04[gSave.unk8]); + ShowNPCDialogue(this, &gUnk_0810CE04[gSave.global_progress]); } void sub_08063CAC(Entity* this) { diff --git a/src/npc/pita.c b/src/npc/pita.c index 37090104..b379ba8f 100644 --- a/src/npc/pita.c +++ b/src/npc/pita.c @@ -15,7 +15,7 @@ extern u32 sub_080028F4(const u8*); void Pita(Entity* this) { if (this->action == 0) { this->action += 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); ResolveEntityOnTop(this, this); this->hitbox = &gUnk_0810C428; sub_0807DD64(this); diff --git a/src/npc/postman.c b/src/npc/postman.c index 2a78d066..0ea13635 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -103,7 +103,7 @@ void sub_080604DC(Entity* this) { ent = CreateFx(this, 17, 0x40); if (ent != NULL) { ent->y.HALF.HI++; - sub_0805E3A0(ent, 3); + SetDefaultPriority(ent, 3); } } } @@ -184,7 +184,7 @@ void sub_080606C0(Entity* this) { void sub_080606D8(Entity* this) { s32 index; - index = gSave.unk8 - 2; + index = gSave.global_progress - 2; if (index < 0) { index = 0; } diff --git a/src/npc/rem.c b/src/npc/rem.c index 27aec22b..7298b531 100644 --- a/src/npc/rem.c +++ b/src/npc/rem.c @@ -55,7 +55,7 @@ void sub_0806A3D8(Entity* this) { this->action = 1; this->actionDelay = 0xb4; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0806A8C8(this); uVar1 = StartCutscene(this, &script_08012F0C); *(ScriptExecutionContext**)&this->cutsceneBeh = uVar1; @@ -196,7 +196,7 @@ void sub_0806A830(Entity* this) { if (this->action == 0) { this->action = 1; InitializeAnimation(this, 0x14); - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); } if ((gActiveScriptInfo.unk_00 & 0x200) != 0) { DeleteThisEntity(); @@ -215,7 +215,7 @@ void sub_0806A890(Entity* this) { if (this->action == 0) { this->action = 1; InitializeAnimation(this, 0x15); - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); } GetNextFrame(this); if ((this->frame & 0x80) != 0) { diff --git a/src/npc/simon.c b/src/npc/simon.c index 740ffa7e..09f4b40c 100644 --- a/src/npc/simon.c +++ b/src/npc/simon.c @@ -26,7 +26,7 @@ void Simon(Entity* this) { void sub_0806C224(void) { DoExitTransition(&gUnk_0813AD60); - gScreenTransition.transitionType = 6; + gScreenTransition.transitionType = TRANSITION_FADE_BLACK_FAST; } void Simon_CreateChest(Entity* this) { @@ -38,7 +38,7 @@ void Simon_CreateChest(Entity* this) { void sub_0806C280(void) { SetGlobalFlag(MAROYA_WAKEUP); DoExitTransition(&gUnk_0813AD74); - gScreenTransition.transitionType = 6; + gScreenTransition.transitionType = TRANSITION_FADE_BLACK_FAST; } void sub_0806C2A0(Entity* this, ScriptExecutionContext* context) { diff --git a/src/npc/sittingPerson.c b/src/npc/sittingPerson.c index 5a7d7d7a..8a9a7e0d 100644 --- a/src/npc/sittingPerson.c +++ b/src/npc/sittingPerson.c @@ -63,7 +63,7 @@ void sub_08063944(Entity* this, ScriptExecutionContext* context) { s32 tmp; context->condition = 0; - tmp = gSave.unk8 - 2; + tmp = gSave.global_progress - 2; if (tmp < 0) { tmp = 0; } diff --git a/src/npc/smallTownMinish.c b/src/npc/smallTownMinish.c index ead7605f..f34ecd7d 100644 --- a/src/npc/smallTownMinish.c +++ b/src/npc/smallTownMinish.c @@ -20,7 +20,7 @@ void SmallTownMinish(Entity* this) { } else { sub_0807DD94(this, NULL); } - if ((gPlayerState.flags & PL_IS_MINISH) != 0) { + if ((gPlayerState.flags & PL_MINISH) != 0) { this->spriteSettings.draw = 1; } else { this->spriteSettings.draw = 0; @@ -28,7 +28,7 @@ void SmallTownMinish(Entity* this) { } void sub_0806E2DC(Entity* this) { - s32 dialog = gSave.unk8 - 2; + s32 dialog = gSave.global_progress - 2; if (dialog < 0) { dialog = 0; } diff --git a/src/npc/smith.c b/src/npc/smith.c index 4bbe2f84..3f187b73 100644 --- a/src/npc/smith.c +++ b/src/npc/smith.c @@ -141,10 +141,10 @@ void sub_08066218(Entity* this) { void sub_0806622C(Entity* this) { u32 index; - if (gSave.unk8 - 2 < 0) { + if (gSave.global_progress - 2 < 0) { index = 0; } else { - index = gSave.unk8 - 2; + index = gSave.global_progress - 2; } ShowNPCDialogue(this, &gUnk_08110390[index]); } diff --git a/src/npc/stamp.c b/src/npc/stamp.c index 293e16b1..7c71744e 100644 --- a/src/npc/stamp.c +++ b/src/npc/stamp.c @@ -32,7 +32,7 @@ void sub_08062BF8(Entity* ent) { if (ent->interactType != 0) { ent->interactType = 0; ent->action++; - sub_0805E47C(ent); + RequestPriority(ent); } sub_0806ED78(ent); } @@ -50,7 +50,7 @@ void sub_08062C54(Entity* ent) { if ((gMessage.doTextBox & 127) == 0) { ent->action = 1; InitializeAnimation(ent, 0); - sub_0805E584(ent); + RevokePriority(ent); } } diff --git a/src/npc/stockwell.c b/src/npc/stockwell.c index c324c681..dc38b634 100644 --- a/src/npc/stockwell.c +++ b/src/npc/stockwell.c @@ -28,7 +28,7 @@ void sub_08065080(Entity* this) { this->action = 1; this->spriteSettings.draw = 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); InitializeAnimation(this, 4); sub_08078778(this); #ifndef EU @@ -60,7 +60,7 @@ void sub_080651F8(Entity* this) { this->actionDelay = 0x3c; InitializeAnimation(this, 1); CreateSpeechBubbleExclamationMark(this, 8, 0xffffffe8); - sub_08078A90(1); + SetPlayerControl(1); } } @@ -98,7 +98,7 @@ void sub_080652B0(Entity* this) { if ((gMessage.doTextBox & 0x7f) == 0) { this->subAction += 1; this->actionDelay = 10; - gRoomVars.greatFairyState = this->field_0xf; + gRoomVars.animFlags = this->field_0xf; CreateItemEntity(0x36, 0, 0); } } @@ -125,7 +125,7 @@ void sub_08065338(Entity* this) { if ((gMessage.doTextBox & 0x7f) == 0) { this->action = 1; this->subAction = gMessage.doTextBox & 0x7f; - gRoomVars.greatFairyState = this->field_0xf; + gRoomVars.animFlags = this->field_0xf; InitializeAnimation(this, 4); } } @@ -154,5 +154,5 @@ void sub_080654FC(Entity* this) { } void sub_08065528(Entity* this, ScriptExecutionContext* context) { - gRoomVars.greatFairyState = context->intVariable; + gRoomVars.animFlags = context->intVariable; } diff --git a/src/npc/syrup.c b/src/npc/syrup.c index f201422c..92b4c8b5 100644 --- a/src/npc/syrup.c +++ b/src/npc/syrup.c @@ -27,7 +27,7 @@ void sub_0806A1F8(Entity* this) { iVar1 = LoadExtraSpriteData(this, paVar2); if (iVar1) { this->action = 1; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); InitializeAnimation(this, 0); } diff --git a/src/npc/teachers.c b/src/npc/teachers.c index 9e411a7a..dc811ab9 100644 --- a/src/npc/teachers.c +++ b/src/npc/teachers.c @@ -18,7 +18,7 @@ void Teachers(Entity* this) { this->spriteSettings.draw = TRUE; this->animationState = this->actionDelay; this->field_0x68.HALF.HI = 0; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); } break; @@ -73,7 +73,7 @@ void Teachers_Head(Entity* this) { void sub_0806C70C(Entity* this) { int offset; - offset = gSave.unk8 - 2; + offset = gSave.global_progress - 2; if (offset < 0) offset = 0; diff --git a/src/npc/townMinish.c b/src/npc/townMinish.c index 97304d65..5f97093c 100644 --- a/src/npc/townMinish.c +++ b/src/npc/townMinish.c @@ -241,7 +241,7 @@ void sub_0806AFA0(Entity* this) { } void sub_0806AFBC(Entity* this) { - int idx = gSave.unk8 - 2; + int idx = gSave.global_progress - 2; if (idx < 0) idx = 0; @@ -326,7 +326,7 @@ void sub_0806B134(Entity* this) { idx = 0; SetGlobalFlag(POWERGLOVE_HINT); } - if (5 < gSave.unk8) { + if (5 < gSave.global_progress) { idx = 3; } MessageNoOverlap(gUnk_08112C60[idx], this); diff --git a/src/npc/townsperson.c b/src/npc/townsperson.c index 0ad55311..2a9033a5 100644 --- a/src/npc/townsperson.c +++ b/src/npc/townsperson.c @@ -276,7 +276,7 @@ void sub_08062048(Entity* this) { int iVar1; if (this->id == 6) { - iVar1 = gSave.unk8 - 2; + iVar1 = gSave.global_progress - 2; if (iVar1 < 0) { iVar1 = 0; } diff --git a/src/npc/vaati.c b/src/npc/vaati.c index 065b81ff..bae2bdac 100644 --- a/src/npc/vaati.c +++ b/src/npc/vaati.c @@ -27,7 +27,7 @@ void VaatiAction0(Entity* this) { this->spriteSettings.draw = 1; this->field_0x68.HALF.LO = 0; this->field_0x68.HALF.HI = 0; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD64(this); VaatiAction1(this); } diff --git a/src/npc/wheaton.c b/src/npc/wheaton.c index 1d2170a8..338ff377 100644 --- a/src/npc/wheaton.c +++ b/src/npc/wheaton.c @@ -9,7 +9,7 @@ void Wheaton(Entity* this) { if (this->action == 0) { this->action++; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); ResolveEntityOnTop(this, this); diff --git a/src/npc/windTribespeople.c b/src/npc/windTribespeople.c index c88c32f5..80da0d08 100644 --- a/src/npc/windTribespeople.c +++ b/src/npc/windTribespeople.c @@ -123,7 +123,7 @@ void sub_0806C90C(Entity* this, ScriptExecutionContext* context) { } void sub_0806C928(Entity* this) { - ShowNPCDialogue(this, &gUnk_08113ABC[gSave.unk8]); + ShowNPCDialogue(this, &gUnk_08113ABC[gSave.global_progress]); } void sub_0806C944(Entity* this) { diff --git a/src/npc/zelda.c b/src/npc/zelda.c index e9e16171..f1da1c47 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -23,7 +23,7 @@ void sub_08066CCC(Entity* this) { this->action = 1; this->spriteSettings.draw = 1; PrependEntityToList(this, 7); - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); sub_0807DD50(this); } diff --git a/src/npc/zeldaFollower.c b/src/npc/zeldaFollower.c index be6d633c..72e650ff 100644 --- a/src/npc/zeldaFollower.c +++ b/src/npc/zeldaFollower.c @@ -16,7 +16,7 @@ void ZeldaFollower(Entity* this) { this->animationState = 4; this->field_0x68.HALF.LO = 0; this->field_0x68.HALF.HI = 0; - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); InitAnimationForceUpdate(this, 0); sub_0806854C(this, NULL); } diff --git a/src/object/bigVortex.c b/src/object/bigVortex.c index f6864d37..f2743031 100644 --- a/src/object/bigVortex.c +++ b/src/object/bigVortex.c @@ -34,7 +34,7 @@ void sub_08098D1C(Entity* this) { this->spriteSettings.draw = TRUE; sub_08098E88(this); } - sub_0805E3A0(this, 6); + SetDefaultPriority(this, 6); InitAnimationForceUpdate(this, 0); } diff --git a/src/object/bird.c b/src/object/bird.c index bf0a0f14..12bf1815 100644 --- a/src/object/bird.c +++ b/src/object/bird.c @@ -119,7 +119,7 @@ void sub_0809D10C(Entity* this) { } void sub_0809D130(Entity* this) { - if ((gPlayerState.flags & PL_IS_MINISH) != 0) { + if ((gPlayerState.flags & PL_MINISH) != 0) { sub_0800445C(this); } else if (sub_08017850(this) != 0) { CreateItemEntity(0x17, 0, 0); diff --git a/src/object/book.c b/src/object/book.c index d2ce8c6e..d069a149 100644 --- a/src/object/book.c +++ b/src/object/book.c @@ -143,7 +143,7 @@ void sub_0809B56C(Entity* this) { } void sub_0809B5B4(Entity* this) { - if (gPlayerState.flags & PL_IS_MINISH) { + if (gPlayerState.flags & PL_MINISH) { sub_0800445C(this); } else if (sub_08017850(this)) { CreateItemEntity(this->type + 0x39, 0, 0); diff --git a/src/object/button.c b/src/object/button.c index 7a00b5bb..c1efa9ae 100644 --- a/src/object/button.c +++ b/src/object/button.c @@ -16,7 +16,7 @@ extern u32 sub_08081E3C(Entity*); void sub_08081AE0(Entity* this) { COLLISION_OFF(this); - this->updateConditions = 3; + this->updatePriority = 3; this->y.HALF.HI++; if (this->cutsceneBeh.HWORD != 0) { this->collisionLayer = this->cutsceneBeh.HWORD; @@ -44,14 +44,14 @@ void sub_08081B84(Entity* this) { } u32 sub_08081CB0(Entity*); -void sub_0805E4E0(Entity*, u32); +void RequestPriorityDuration(Entity*, u32); void sub_08081FF8(Entity*); void sub_08081BAC(Entity* this) { if (sub_08081CB0(this)) { this->subAction = 0; this->actionDelay = 0xA; - sub_0805E4E0(this, 0xA); + RequestPriorityDuration(this, 0xA); sub_08081FF8(this); if (this->type == 1) { this->action = 3; @@ -153,7 +153,7 @@ Entity* sub_08081D74(Entity* this) { } ent = 0; if (sub_08081E0C(this)) { - if (!(gPlayerState.flags & 0x10) && !(gPlayerState.flags & PL_IS_MINISH)) { + if (!(gPlayerState.flags & 0x10) && !(gPlayerState.flags & PL_MINISH)) { ent = &gPlayerEntity; } } else { @@ -234,13 +234,13 @@ u32 sub_08081F00(u32* unk1, u32* unk2) { void sub_08081F24(Entity* this) { Entity* fx = CreateFx(this, FX_DASH, 0x40); if (fx) { - fx->updateConditions = 3; + fx->updatePriority = 3; fx->x.HALF.HI += 7; fx->y.HALF.HI += 5; } fx = CreateFx(this, FX_DASH, 0x40); if (fx) { - fx->updateConditions = 3; + fx->updatePriority = 3; fx->x.HALF.HI -= 7; fx->y.HALF.HI += 5; } diff --git a/src/object/cloud.c b/src/object/cloud.c index 75fc7be6..8b53e550 100644 --- a/src/object/cloud.c +++ b/src/object/cloud.c @@ -80,7 +80,7 @@ void sub_0809F5F0(Entity* this) { if (iVar1 != 0) { this->action = 2; this->actionDelay = 120; - sub_08078A90(3); + SetPlayerControl(3); sub_08078B48(); gRoomControls.cameraTarget = this; } diff --git a/src/object/greatFairy.c b/src/object/greatFairy.c index 8eb5513f..0aca5575 100644 --- a/src/object/greatFairy.c +++ b/src/object/greatFairy.c @@ -101,7 +101,7 @@ void GreatFairy_SpawningUpdate(Entity* this) { Entity* mini; u32 var; - if (gRoomVars.greatFairyState & 1) { + if (gRoomVars.animFlags & 1) { mini = GreatFairy_CreateForm(this, WAKE, 0); //??? if (mini != NULL) { CopyPosition(this, mini); @@ -167,7 +167,7 @@ void GreatFairy_WingsUpdate(Entity* this) { if (this->speed == 256) { this->action = 2; sub_0805EC60(this); - gRoomVars.greatFairyState |= 32; + gRoomVars.animFlags |= 32; gActiveScriptInfo.unk_00 |= 4; } else { sub_0805EC9C(this, this->speed, 256, 0); @@ -232,7 +232,7 @@ void GreatFairy_MiniRisingUpdate(Entity* this) { void GreatFairy_MiniRemoveMe(Entity* this) { GetNextFrame(this); sub_080873D0(this); - if (gRoomVars.greatFairyState & 1) { + if (gRoomVars.animFlags & 1) { DeleteEntity(this); } } @@ -266,7 +266,7 @@ void GreatFairy_MiniAffineInit2(Entity* this) { // Mini great fairy stretch void GreatFairy_MiniAffineUpdate(Entity* this) { if (--this->actionDelay == 0) { - gRoomVars.greatFairyState |= 1; + gRoomVars.animFlags |= 1; this->action = 3; sub_0805EC60(this); } else { @@ -307,7 +307,7 @@ void GreatFairy_RippleInit(Entity* this) { } void GreatFairy_RippleUpdate(Entity* this) { - if (gRoomVars.greatFairyState & 2) { + if (gRoomVars.animFlags & 2) { DeleteEntity(this); } else { GetNextFrame(this); @@ -337,7 +337,7 @@ void GreatFairy_BigRippleUpdate(Entity* this) { target = GreatFairy_CreateForm(this, MINI, 0); if (target != NULL) { PositionRelative(this, target, 0, -0x80000); - gRoomVars.greatFairyState |= 2; + gRoomVars.animFlags |= 2; DeleteEntity(this); } } @@ -389,13 +389,13 @@ void sub_080871A8(Entity* this) { if (--this->actionDelay == 0) { this->action = 3; this->actionDelay = 60; - gRoomVars.greatFairyState |= 4; + gRoomVars.animFlags |= 4; } } void sub_080871D0(Entity* this) { if (--this->actionDelay == 0) { - gRoomVars.greatFairyState |= 8; + gRoomVars.animFlags |= 8; DeleteEntity(this); } } @@ -412,7 +412,7 @@ void sub_080871F8(Entity* this) { } void sub_08087240(Entity* this) { - if (gRoomVars.greatFairyState & 4) { + if (gRoomVars.animFlags & 4) { this->action = 3; this->actionDelay = 20; this->direction = 16; @@ -469,7 +469,7 @@ void GreatFairy_InitializeAnimation(Entity* this) { this->type2 = this->type % temp; this->collisionLayer = 2; InitializeAnimation(this, this->type2); - sub_0805E3A0(this, 2); + SetDefaultPriority(this, 2); } Entity* GreatFairy_CreateForm(Entity* this, u32 curForm, u32 parameter) { @@ -516,7 +516,7 @@ void sub_08087424(Entity* this, ScriptExecutionContext* context) { if (ent != NULL) { ent->parent = &gPlayerEntity; CopyPosition(&gPlayerEntity, ent); - sub_0805E3A0(ent, 2); + SetDefaultPriority(ent, 2); } switch (context->intVariable) { diff --git a/src/object/heartContainer.c b/src/object/heartContainer.c index cbaff954..7664546c 100644 --- a/src/object/heartContainer.c +++ b/src/object/heartContainer.c @@ -31,7 +31,7 @@ static void sub_0808E6A0(Entity* this) { this->spriteSettings.draw = 0; this->hitbox = &gUnk_08121C58; this->collisionLayer = 3; - this->updateConditions = 3; + this->updatePriority = 3; } static void sub_0808E6E4(Entity* this) { @@ -59,7 +59,7 @@ static void sub_0808E714(Entity* this) { static void sub_0808E764(Entity* this) { sub_08080CB4(this); - if (!(gPlayerState.flags & PL_IS_MINISH) && sub_08017850(this)) { + if (!(gPlayerState.flags & PL_MINISH) && sub_08017850(this)) { SetFlag(this->cutsceneBeh.HWORD); CreateItemEntity(0x62, 0, 0); DeleteThisEntity(); diff --git a/src/object/houseDoorExterior.c b/src/object/houseDoorExterior.c index 41a3ee77..ae4f133d 100644 --- a/src/object/houseDoorExterior.c +++ b/src/object/houseDoorExterior.c @@ -46,7 +46,7 @@ void sub_080866D8(Entity* this) { this->action = 1; *((u32*)(&this->field_0x68)) = 0; this->field_0x6c.HALF.LO = this->actionDelay; - sub_0805E3A0(this, 6); + SetDefaultPriority(this, 6); } prop = GetCurrentRoomProperty(this->field_0x6c.HALF.LO); diff --git a/src/object/itemOnGround.c b/src/object/itemOnGround.c index a5c1770b..de9e52a0 100644 --- a/src/object/itemOnGround.c +++ b/src/object/itemOnGround.c @@ -20,7 +20,6 @@ bool32 CheckShouldPlayItemGetCutscene(Entity*); extern u32 sub_080002D0(Entity*); extern u32 sub_080177A0(Entity*, Entity*); extern void GiveItem(u32, u32); -extern u32 sub_0805E40C(Entity*); extern void (*const gUnk_0811E7D4[])(Entity*); extern void (*const gUnk_0811E7E8[])(Entity*); @@ -121,7 +120,7 @@ void sub_08080F20(Entity* this) { this->field_0x6c.HWORD = 0; this->field_0x68.HALF.LO = 0; this->actionDelay = 0; - sub_0805E3A0(this, 3); + SetDefaultPriority(this, 3); this->field_0x1c = sub_0808147C(this->type); gUnk_0811E7E8[this->field_0x68.HALF.HI](this); } else { @@ -339,7 +338,7 @@ void sub_08081404(Entity* this, u32 arg1) { bool32 sub_08081420(Entity* this) { if (CheckShouldPlayItemGetCutscene(this)) { - sub_0805E3A0(this, 6); + SetDefaultPriority(this, 6); CreateItemEntity(this->type, this->type2, 0); return TRUE; } else { @@ -377,7 +376,7 @@ void sub_080814A4(Entity* this) { } u32 sub_080814C0(Entity* this) { - if (!sub_0805E40C(this)) { + if (!AnyPrioritySet()) { if (--this->field_0x6c.HWORD == 0) { return TRUE; } diff --git a/src/object/lilypadSmall.c b/src/object/lilypadSmall.c index 8df6197f..b98ff330 100644 --- a/src/object/lilypadSmall.c +++ b/src/object/lilypadSmall.c @@ -32,7 +32,7 @@ void LilypadSmall(Entity* this) { } u32 sub_08097ADC(Entity* this) { - if ((gPlayerState.flags & PL_IS_MINISH) == 0) { + if ((gPlayerState.flags & PL_MINISH) == 0) { return 0; } else if (sub_080041A0(this, &gPlayerEntity, 8, 8) == 0) { return 0; diff --git a/src/object/lockedDoor.c b/src/object/lockedDoor.c index 1e15867e..c7f3c437 100644 --- a/src/object/lockedDoor.c +++ b/src/object/lockedDoor.c @@ -37,7 +37,7 @@ extern Hitbox gHitbox_2; extern u32 sub_080001DA(u32, u32); extern void sub_08078850(Entity*, u32, u32, u32); -extern void sub_0805E4E0(Entity*, u32); +extern void RequestPriorityDuration(Entity*, u32); typedef struct PACKED { s8 x; @@ -238,7 +238,7 @@ void sub_08083658(Entity* this) { tmp = &gUnk_0811F680[this->field_0x7c.BYTES.byte2]; this->x.HALF.HI += tmp->x; this->y.HALF.HI += tmp->y; - sub_0805E4E0(this, 0x3c); + RequestPriorityDuration(this, 0x3c); SoundReq(0x10b); } diff --git a/src/object/mask.c b/src/object/mask.c index c5e0c12d..837614bd 100644 --- a/src/object/mask.c +++ b/src/object/mask.c @@ -27,7 +27,7 @@ void sub_080929A4(Entity* this) { switch (this->type2 & 0xC0) { case 0x40: - field_0x0a = gScreenTransition.field_0xa; + field_0x0a = gScreenTransition.stairs_idx; switch (field_0x0a) { case 0x44D ... 0x44F: diff --git a/src/object/minishSizedEntrance.c b/src/object/minishSizedEntrance.c index 9d409f39..4d7bc406 100644 --- a/src/object/minishSizedEntrance.c +++ b/src/object/minishSizedEntrance.c @@ -31,7 +31,7 @@ void sub_08090F00(Entity* this) { DeleteThisEntity(); } } - if ((gPlayerState.flags & PL_IS_MINISH) && sub_080041A0(this, &gPlayerEntity, 4, 4) && + if ((gPlayerState.flags & PL_MINISH) && sub_080041A0(this, &gPlayerEntity, 4, 4) && (gPlayerEntity.z.HALF.HI == 0) && (((u16)gPlayerState.field_0x90.HALF.LO) & gUnk_0812225C[this->type2])) { DoExitTransition(GetCurrentRoomProperty(this->actionDelay)); } diff --git a/src/object/object86.c b/src/object/object86.c index a9bf512d..6829c813 100644 --- a/src/object/object86.c +++ b/src/object/object86.c @@ -6,7 +6,7 @@ #include "functions.h" void sub_08099ECC(Entity*); -extern void sub_0805E4E0(Entity*, u32); +extern void RequestPriorityDuration(Entity*, u32); extern void sub_0805B390(u32); extern void (*const gUnk_081237F8[])(Entity*); @@ -59,7 +59,7 @@ void sub_08099E8C(Entity* this) { if (sub_080041A0(this, &gPlayerEntity, 0xc, 0xc)) { if (this->subAction == 0) { sub_08099ECC(this); - sub_0805E4E0(this, 0x1e); + RequestPriorityDuration(this, 0x1e); } if (CheckLocalFlag(0x75)) { sub_0805B390(0x7); diff --git a/src/object/objectA2.c b/src/object/objectA2.c index 09a698a9..de21a664 100644 --- a/src/object/objectA2.c +++ b/src/object/objectA2.c @@ -40,7 +40,7 @@ void sub_0809F318(Entity* this) { this->spriteOrientation.flipY = 2; this->action = 1; sub_0801D2B4(this, gUnk_08124704[this->type]); - sub_0805E3A0(this, 7); + SetDefaultPriority(this, 7); } void sub_0809F374(Entity* this) { diff --git a/src/object/pot.c b/src/object/pot.c index 382fec40..110c1eb8 100644 --- a/src/object/pot.c +++ b/src/object/pot.c @@ -85,7 +85,7 @@ void sub_08082310(Entity* this) { this->direction = (tileType - 0x4001) * 8; this->actionDelay = 32; this->action = 4; - if (gPlayerState.flags & PL_IS_MINISH) { + if (gPlayerState.flags & PL_MINISH) { this->speed >>= 1; this->actionDelay = 64; } @@ -184,7 +184,7 @@ void sub_08082614(Entity* this) { } this->action = 1; - if (gPlayerState.flags & PL_IS_MINISH) { + if (gPlayerState.flags & PL_MINISH) { this->speed <<= 1; } diff --git a/src/object/treeHidingPortal.c b/src/object/treeHidingPortal.c index 94ba273a..69db7173 100644 --- a/src/object/treeHidingPortal.c +++ b/src/object/treeHidingPortal.c @@ -44,7 +44,7 @@ void sub_0809E86C(Entity* this) { if (sub_0809E9A0() == 0x54) { this->action = 2; this->actionDelay = 0xf; - sub_08078A90(1); + SetPlayerControl(1); } } @@ -61,7 +61,7 @@ void sub_0809E8BC(Entity* this) { void sub_0809E8EC(Entity* this) { if (--this->actionDelay == 0) { SetFlag(this->field_0x86.HWORD); - sub_08078A90(0); + SetPlayerControl(0); SoundReq(SFX_SECRET_BIG); DeleteThisEntity(); } diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index 43ee32d2..a43d9552 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -41,7 +41,7 @@ void sub_0808B474(Entity* this) { this->palette.b.b0 = tmp; this->spritePriority.b0 = 6; this->hitbox = &gHitbox_1; - this->updateConditions = 3; + this->updatePriority = 3; InitializeAnimation(this, 0); if (CheckFlags(this->field_0x86.HWORD)) { sub_0808B830(this); @@ -58,7 +58,7 @@ void sub_0808B474(Entity* this) { gPlayerEntity.y.HALF.HI = this->y.HALF.HI; gPlayerEntity.animationState = 4; EnqueueSFX(0x112); - sub_0805E4E0(this, this->field_0xf + 0x10); + RequestPriorityDuration(this, this->field_0xf + 0x10); } void sub_0808B530(Entity* this) { @@ -93,7 +93,7 @@ void sub_0808B590(Entity* this) { gPlayerEntity.y.HALF.HI = this->y.HALF.HI; gPlayerEntity.animationState = 4; gPlayerEntity.flags &= ~0x80; - sub_0805E4E0(this, this->field_0xf + 0x10); + RequestPriorityDuration(this, this->field_0xf + 0x10); SoundReq(0x113); } else { this->actionDelay = 0; @@ -146,16 +146,16 @@ void sub_0808B684(Entity* this) { u32 tmp; if (!--this->field_0xf) { gScreenTransition.transitioningOut = 1; - gScreenTransition.transitionType = 0; - gScreenTransition.areaID = this->field_0x7c.BYTES.byte0; - gScreenTransition.roomID = this->field_0x7c.BYTES.byte1; - gScreenTransition.playerStartPos.HALF.x = ((this->cutsceneBeh.HWORD & 0x3f) << 4) + 8; - gScreenTransition.playerStartPos.HALF.y = ((this->cutsceneBeh.HWORD & 0xfc0) >> 2) + 8; - gScreenTransition.playerLayer = 0; - gScreenTransition.playerState = 4; - gScreenTransition.field_0xf = 0; + gScreenTransition.transitionType = TRANSITION_DEFAULT; + gScreenTransition.player_status.area_next = this->field_0x7c.BYTES.byte0; + gScreenTransition.player_status.room_next = this->field_0x7c.BYTES.byte1; + gScreenTransition.player_status.start_pos.HALF.x = ((this->cutsceneBeh.HWORD & 0x3f) << 4) + 8; + gScreenTransition.player_status.start_pos.HALF.y = ((this->cutsceneBeh.HWORD & 0xfc0) >> 2) + 8; + gScreenTransition.player_status.layer = 0; + gScreenTransition.player_status.start_anim = 4; + gScreenTransition.player_status.spawn_type = 0; if (this->type == 2) { - gScreenTransition.transitionType = 2; + gScreenTransition.transitionType = TRANSITION_FADE_WHITE_SLOW; } return; } @@ -206,7 +206,7 @@ void sub_0808B73C(Entity* this) { } u32 sub_0808B7C8(Entity* this) { - if (!(gPlayerState.flags & PL_IS_MINISH) && gPlayerState.field_0xa8 != 0x12 && gPlayerEntity.health != 0 && + if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.field_0xa8 != 0x12 && gPlayerEntity.health != 0 && sub_08079F8C() && sub_080041A0(this, &gPlayerEntity, 5, 5) && gPlayerEntity.z.HALF.HI == 0) { if (this->actionDelay == 0 && gPlayerEntity.action == 0x1b) { sub_080791D0(); diff --git a/src/overworld.c b/src/overworld.c new file mode 100644 index 00000000..c529f530 --- /dev/null +++ b/src/overworld.c @@ -0,0 +1,1131 @@ +#include "global.h" +#include "audio.h" +#include "screen.h" +#include "entity.h" +#include "player.h" +#include "room.h" +#include "main.h" +#include "flags.h" +#include "save.h" +#include "utils.h" +#include "fileScreen.h" +#include "menu.h" +#include "functions.h" +#include "structures.h" +#include "area.h" +#include "textbox.h" + +extern u32 gUnk_03003FC0; + +extern u8 gUnk_080FCA84[]; +extern u8 gUnk_080FCAC8[]; +extern u32 gUsedPalettes; +extern u8 gUnk_02024090[]; +extern u16 gUnk_080FCAD6[]; + +extern void** gAreaTilesets[]; +extern void** gAreaRoomMaps[]; +extern void* gAreaMetatiles[]; +extern void* gUnk_080B755C[]; +extern void** gExitLists[]; +extern void** gAreaTable[]; + +extern u8 gUnk_080FCAF8[]; +extern u16 gUnk_020178E0[]; + +void sub_080520C4(); +void SetPopupState(); +u32 sub_08052724(); +void CleanUpGFXSlots(); +void sub_080ADE24(); +void sub_0801C370(u32); +void sub_0801AE44(u32); +void sub_0801862C(void); +void sub_08078160(u32); +void SetPlayerEventPriority(void); +void InitAllRoomResInfo(void); +void InitRoomResInfo(RoomResInfo* info, RoomHeader* hdr, u32 area, u32 room); +RoomResInfo* GetCurrentRoomInfo(void); +void sub_08049D30(void); +void InitScriptData(void); +void sub_08054524(void); +void sub_080186D4(void); +void sub_0806F364(void); +void sub_08052FF4(u32 area, u32 room); +void sub_0807C860(void); +void sub_0807C740(void); +void sub_080197AC(void); +void sub_080532E4(void); +void sub_08053460(void); +void sub_08053390(void); + +static u32 StairsAreValid(); +static void ClearFlagArray(const u16*); +static void DummyHandler(u32* a1); +static void sub_08053434(u32* a1); +static void sub_080534E4(u32* a1); + +typedef struct { + u16* dest; + void* gfx_dest; + void* buffer_loc; + u32 _c; + u16 gfx_src; + u8 width; + u8 right_align : 1; + u8 sm_border : 1; + u8 unused : 1; + u8 draw_border : 1; + u8 border_type : 4; + u8 fill_type; + u8 _15; + u8 _16; + u8 stylized; +} Font; + +typedef struct { + u8 dest_off[8]; + u8 _8; + u8 right_align; + u16 _a; +} PopupOption; + +extern Font gUnk_080FCA8C; +extern PopupOption gUnk_080FCAA4[4]; + +extern void CreateDialogBox(); + +void sub_0805212C(void) { + if (gFadeControl.active) + return; + + if (gMain.field_0x5 == 0) { + if (gMenu.focusCoords[0] >= 38) { + gMenu.focusCoords[0]--; + } else { + gMenu.transitionTimer--; + if (gMenu.transitionTimer == 0) { + sub_080520C4(2); +#if defined(DEMO_USA) || defined(DEMO_JP) + SoundReq(SONG_VOL_FADE_OUT); + DoFade(7, 4); +#else + SetPopupState(0, 0); + gScreen.lcd.displayControl |= DISPCNT_BG1_ON | DISPCNT_BG2_ON; + gFadeControl.mask = 0x0000ffff; + DoFade(4, 0x10); +#endif + } + } + } else { + gMain.field_0x5--; + } +} + +#if defined(DEMO_USA) || defined(DEMO_JP) +void sub_080521A0(void) { + if (gFadeControl.active == 0) { + DoSoftReset(); + } +} +#else +void sub_080521A0(void) { + s32 temp3; + u32 temp2; + + if (gFadeControl.active) + return; + + switch (gMenu.menuType) { + case 0: + gMenu.transitionTimer = 30; + gMenu.field_0x3 = 0; + sub_080A7114(1); + SetPopupState(0, 0); + gFadeControl.mask = 0xffffffff; + return; + case 1: + if (gMenu.transitionTimer == 0) { + u32 temp = gMenu.field_0x3; + switch (gInput.newKeys) { + case DPAD_UP: + temp = 0; + break; + case DPAD_DOWN: + temp = 1; + break; + case A_BUTTON: + if (gMenu.field_0x3 != 0) { + temp2 = 4; + } else { + CreateDialogBox(8, 0); + temp2 = 2; + } + gMenu.transitionTimer = 60; + sub_080A7114(temp2); + SoundReq(SFX_TEXTBOX_SELECT); + break; + } + if (gMenu.field_0x3 != temp) { + gMenu.field_0x3 = temp; + SetPopupState(0, temp); + SoundReq(SFX_TEXTBOX_CHOICE); + } + return; + } + gMenu.transitionTimer--; + return; + case 2: + temp3 = HandleSave(0); + gMenu.field_0x0 = temp3; + switch (temp3) { + case 1: + sub_080A7114(4); + break; + case -1: + gMenu.transitionTimer = 60; + CreateDialogBox(9, 0); + sub_080A7114(3); + break; + } + return; + case 3: + if (gMenu.transitionTimer != 0) { + gMenu.transitionTimer--; + } else if (gInput.newKeys & (A_BUTTON | B_BUTTON | START_BUTTON)) { + sub_080A7114(0); + } + return; + case 4: + default: + gScreen.lcd.displayControl &= ~DISPCNT_BG1_ON; + sub_08050384(); + sub_080520C4(3); + return; + } +} +#endif + +void sub_080522F4(void) { + switch (gMenu.menuType) { + case 0x0: + gMenu.transitionTimer = 0x1e; + gMenu.field_0x3 = 0; + sub_080A7114(1); + SetPopupState(1, 0); + return; + case 0x1: + gScreen.lcd.displayControl |= DISPCNT_BG1_ON; + if (gMenu.transitionTimer != 0) { + gMenu.transitionTimer--; + return; + } else { + u32 temp = gMenu.field_0x3; + switch (gInput.newKeys) { + case DPAD_UP: + temp = 0; + break; + case DPAD_DOWN: + temp = 1; + break; + case A_BUTTON: + sub_080A7114(2); + SoundReq(SFX_TEXTBOX_SELECT); + if (temp == 0) { + DoFade(5, 8); + } else { + DoFade(7, 8); + } + break; + } + if (gMenu.field_0x3 != temp) { + gMenu.field_0x3 = temp; + SetPopupState(1, temp); + SoundReq(SFX_TEXTBOX_CHOICE); + } + } + return; + case 0x2: + default: + if (gFadeControl.active == 0) { + if (gMenu.field_0x3 == 0) { + InitScreen(2); + } else { + DoSoftReset(); + } + } + return; + } +} + +void nullsub_107(void) { +} + +void sub_080523D4(void) { + u32 i; + + gOamCmd._4 = 0; + gOamCmd._6 = 0; + gOamCmd._8 = 0x8600; + gOamCmd.y = gMenu.focusCoords[0]; + for (i = 0; i < 8; ++i) { + gOamCmd.x = gUnk_080FCA84[i]; +#ifdef EU + sub_080ADA14(0x1fc, i); +#else + sub_080ADA14(0x1fd, i); +#endif + } +} + +void SetPopupState(u32 type, u32 choice_idx) { + Font font; + PopupOption* opt; + u32 fakematch; + + MemClear(gBG1Buffer, sizeof gBG1Buffer); + gUnk_020227E8[0]._0.WORD = 0xf; + gUnk_020227E8[1]._0.WORD = 0xf; + gUnk_020227E8[2]._0.WORD = 0xf; + gUnk_020227E8[3]._0.WORD = 0xf; + *(&gUnk_020227E8[choice_idx]._0.BYTES.byte0 + 1) = fakematch = 1; + + MemCopy(&gUnk_080FCA8C, &font, sizeof font); + opt = &gUnk_080FCAA4[type]; + font.dest = gUnk_080FCA8C.dest + (opt->dest_off[gSaveHeader->gameLanguage] + opt->_8 * 32); + font.right_align = opt->right_align; + sub_0805F46C(opt->_a, &font); + gScreen.bg1.updated = fakematch; +} + +void InitializePlayer(void) { + static const u8 sPlayerSpawnStates[] = { + [PL_SPAWN_DEFAULT] = PLAYER_INIT, + [PL_SPAWN_MINISH] = PLAYER_MINISH, + [PL_SPAWN_DROP] = PLAYER_INIT, + [PL_SPAWN_WALKING] = PLAYER_ROOMTRANSITION, + [PL_SPAWN_STEP_IN] = PLAYER_080720DC, + [PL_SPAWN_SPECIAL] = PLAYER_08074C44, + [PL_SPAWN_DROP_MINISH] = PLAYER_MINISH, + [PL_SPAWN_STAIRS_ASCEND] = PLAYER_USEENTRANCE, + [PL_SPAWN_STAIRS_DESCEND] = PLAYER_USEENTRANCE, + [PL_SPAWN_9] = PLAYER_MINISH, + [PL_SPAWN_PARACHUTE_FORWARD] = PLAYER_WARP, + [PL_SPAWN_PARACHUTE_UP] = PLAYER_WARP, + [PL_SPAWN_FAST_TRAVEL] = PLAYER_WARP, + }; + + Entity* pl; + + sub_080784C8(); + MemClear(&gUnk_03000B80, sizeof gUnk_03000B80); + MemClear(&gPlayerState, sizeof gPlayerState); + MemFill32(0xffffffff, &gPlayerState.hurtType, sizeof gPlayerState.hurtType); + MemClear(&gPlayerEntity, sizeof gPlayerEntity); + + pl = &gPlayerEntity; + + gRoomControls.cameraTarget = pl; + gPlayerState.playerAction = sPlayerSpawnStates[gScreenTransition.player_status.spawn_type]; + if (!CheckGlobalFlag(EZERO_1ST)) { + gPlayerState.flags |= PL_NO_CAP; + } + switch (gScreenTransition.player_status.spawn_type) { + case PL_SPAWN_DROP: + case PL_SPAWN_DROP_MINISH: + pl->z.HALF.HI = -0xc0; + break; + case PL_SPAWN_STEP_IN: + gPlayerState.field_0x34[4] = 16; + pl->direction = Direction8FromAnimationState(gScreenTransition.player_status.start_anim); + case PL_SPAWN_WALKING: + pl->speed = 224; + break; + case PL_SPAWN_STAIRS_ASCEND: + case PL_SPAWN_STAIRS_DESCEND: + gPlayerState.field_0x34[4] = 1; + gPlayerState.field_0x34[5] = gScreenTransition.player_status.spawn_type; + break; + case PL_SPAWN_PARACHUTE_FORWARD: + gPlayerState.field_0x34[4] = 1; + break; + case PL_SPAWN_PARACHUTE_UP: + gPlayerState.field_0x34[4] = 3; + break; + case PL_SPAWN_FAST_TRAVEL: + gPlayerState.field_0x34[4] = 4; + } + + pl->kind = PLAYER; + pl->flags |= ENT_COLLIDE | ENT_20; + pl->spritePriority.b0 = 4; + pl->health = gSave.stats.health; + pl->x.HALF.HI = gScreenTransition.player_status.start_pos.HALF.x; + pl->y.HALF.HI = gScreenTransition.player_status.start_pos.HALF.y; + pl->animationState = gScreenTransition.player_status.start_anim; + pl->collisionLayer = gScreenTransition.player_status.layer; + UpdateSpriteForCollisionLayer(pl); + AppendEntityToList(pl, 1); + RegisterPlayerHitbox(); +} + +bool32 CheckIsOverworld(void) { +#ifdef EU + return gArea.areaMetadata == 0x01; +#else + return gArea.areaMetadata == 0x81; +#endif +} + +bool32 sub_08052638(u32 r0) { +#if EU + return gAreaMetadata[r0].flags == 0x01; +#else + return gAreaMetadata[r0].flags == 0x81; +#endif +} + +#ifndef EU +u32 sub_08052654(void) { + return (gArea.areaMetadata >> 7) & 1; +} +#endif + +u32 CheckIsDungeon(void) { + return (gArea.areaMetadata >> 2) & 1; +} + +u32 CheckIsInteriorWithEnemies(void) { + return (gArea.areaMetadata >> 4) & 1; +} + +u32 CheckIsInteriorNoEnemies(void) { + return (gArea.areaMetadata >> 6) & 1; +} + +u32 CheckHasMap(void) { + return (gArea.areaMetadata >> 3) & 1; +} + +s32 ModHealth(s32 deltaHealth) { + s32 newHealth; + + newHealth = gStats.health + deltaHealth; + if (newHealth < 0) { + newHealth = 0; + } + if (gStats.maxHealth < newHealth) { + newHealth = (u32)gStats.maxHealth; + } + gStats.health = newHealth; + gPlayerEntity.health = newHealth; + return newHealth; +} + +void ModRupees(s32 rupeeDelta) { + s32 newRupeeCount; + Stats* s = &gStats; + + newRupeeCount = s->rupees + rupeeDelta; + if (newRupeeCount < 0) { + newRupeeCount = 0; + } else { + if (newRupeeCount > gWalletSizes[s->walletType * 2]) { + newRupeeCount = gWalletSizes[s->walletType * 2]; + } + } + s->rupees = newRupeeCount; +} + +void sub_080526F8(int a1) { + if (sub_08052724()) { + u8* p = &gSave.unk45C[gArea.dungeon_idx]; + if (*p + a1 < 0) + *p = 0; + else + *p += a1; + } +} + +u32 sub_08052724(void) { + return (gArea.areaMetadata >> 1) & 1; +} + +u32 sub_08052734(u32 x, u32 y) { + u32 tmp; + + if (sub_08052724()) + tmp = gSave.unk45C[gArea.dungeon_idx]; + return tmp ? 1 : 0; +} + +u32 sub_08052764(u32 x, u32 y) { + u32 tmp; + + if (sub_08052724()) + tmp = gSave.unk46C[gArea.dungeon_idx] & 4; + return tmp ? 1 : 0; +} + +u32 sub_0805279C(u32 x, u32 y) { + if (!sub_08052724()) + return 0; + return (gSave.unk46C[gArea.dungeon_idx] >> 1) & 1; +} + +u32 sub_080527CC(u32 x, u32 y) { + u32 tmp; + + if (!sub_08052724()) + return 0; + return gSave.unk46C[gArea.dungeon_idx] & 1; +} + +void sub_080527FC(u32 a1, u32 a2) { + sub_08053320(a1, a2); +#ifndef EU + CleanUpGFXSlots(); +#endif + sub_080ADE24(); + sub_0801C370(1); + sub_0801AE44(a1); + MemCopy(gUnk_02024090, gPaletteBuffer, 1024); + gUsedPalettes = -1; +} + +void sub_0805283C(void) { + gArea.pMusicIndex = gAreaMetadata[gRoomControls.areaID]._3; + if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START)) { + gArea.pMusicIndex = BGM_FIGHT_THEME2; + } +} + +#ifndef EU +void sub_08052878(void) { + gArea.musicIndex = gArea.pMusicIndex; + SoundReq(SONG_STOP_ALL); +} + +void sub_0805289C(void) { + gArea.pMusicIndex = gArea.musicIndex; +} +#endif + +u32 sub_080528B4(void) { + if (gScreenTransition.field_0x4[1]) { + sub_0804FFE4(); + gMain.funcIndex = 3; + gMain.transition = 0; + DoFade(5, 8); + SoundReq(SONG_STOP_BGM); + return 1; + } + return 0; +} + +void RoomExitCallback(void) { + if (gArea.transitionManager != NULL && gArea.onExit != NULL) + gArea.onExit(gArea.transitionManager); +} + +u32 HandleRoomExit(void) { + if (gScreenTransition.transitioningOut && gSave.stats.health != 0 && gPlayerState.field_0xa8 != 18) { + if (StairsAreValid()) { + gScreenTransition.transitioningOut = 0; + return 0; + } + + switch (gScreenTransition.transitionType) { + case TRANSITION_CUT: + DoFade(13, 8); + break; + case TRANSITION_CUT_FAST: + DoFade(13, 3); + break; + case TRANSITION_FADE_WHITE_SLOW: + DoFade(7, 4); + break; + case TRANSITION_FADE_BLACK_SLOW: + DoFade(5, 4); + break; + case TRANSITION_FADE_BLACK: + DoFade(5, 16); + break; + case TRANSITION_FADE_BLACK_FAST: + DoFade(5, 256); + break; + case TRANSITION_7: + case TRANSITION_FADE_WHITE_FAST: + DoFade(7, 256); + break; + default: + DoFade(7, 16); + break; + } + RoomExitCallback(); + gMain.transition = 3; + *(&gMain.field_0xa + 1) = 1; + return 1; + } + return 0; +} + +static u32 StairsAreValid(void) { + static const u16 sStairTypes[] = { 0x91, PL_SPAWN_STAIRS_ASCEND, 0x92, PL_SPAWN_STAIRS_DESCEND, + 0x93, PL_SPAWN_STAIRS_ASCEND, 0x94, PL_SPAWN_STAIRS_DESCEND, + 0x95, PL_SPAWN_STAIRS_ASCEND, 0x96, PL_SPAWN_STAIRS_DESCEND, + 0x97, PL_SPAWN_STAIRS_ASCEND, 0x98, PL_SPAWN_STAIRS_DESCEND, + 0 }; + + const u16* i; + u32 tgt = gScreenTransition.stairs_idx; + + for (i = sStairTypes; i[0] != 0; i += 2) { + if (tgt == i[0]) { + gPlayerState.playerAction = 30; + gPlayerState.field_0x38 = 0; + gPlayerState.field_0x39 = i[1]; + if (!gScreenTransition.player_status.spawn_type) + gScreenTransition.player_status.spawn_type = i[1]; + return 1; + } + } + return 0; +} + +void InitParachuteRoom(void) { + gScreenTransition.transitioningOut = 1; + gScreenTransition.player_status.start_pos.HALF.x = (gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX) & 0x3F8; + gScreenTransition.player_status.start_pos.HALF.y = (gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) & 0x3F8; + gScreenTransition.player_status.start_anim = 4; + gScreenTransition.player_status.spawn_type = PL_SPAWN_PARACHUTE_FORWARD; + gScreenTransition.player_status.area_next = gRoomControls.areaID; + gScreenTransition.player_status.room_next = gRoomControls.roomID - 1; +} + +static void HandleRoomEnter(void) { + switch (gScreenTransition.transitionType) { + case TRANSITION_CUT: + DoFade(12, 8); + break; + case TRANSITION_CUT_FAST: + DoFade(12, 3); + break; + case TRANSITION_FADE_WHITE_SLOW: + DoFade(6, 4); + break; + case TRANSITION_3: + break; + case TRANSITION_FADE_BLACK_FAST: + DoFade(5, 256); + break; + case TRANSITION_7: + DoFade(7, 256); + break; + case TRANSITION_FADE_BLACK: + DoFade(4, 16); + break; + case TRANSITION_FADE_WHITE_FAST: + DoFade(6, 8); + break; + default: + sub_080500F4(16); + break; + } +} + +u32 sub_08052B24(void) { + s32 tmp = 1; + + if (!(gInput.heldKeys & SELECT_BUTTON) || gPlayerState.field_0x8b || gUnk_02034490[0] || gUnk_0200AF00.filler0[1]) + return 0; + + if ((gPlayerState.flags & 0x118) || (gPlayerState.field_0xa9 > tmp) || gPlayerState.field_0x2c || + gPlayerEntity.field_0x7a.HWORD) + return 0; + + if ((gPlayerEntity.z.HALF.HI & 0x8000) && !gPlayerState.field_0xa) + return 0; + + sub_0801862C(); + sub_08078160(19); + SetPlayerEventPriority(); + return 1; +} + +void DisplayEzloMessage(void) { + u32 height; + u32 idx; +#if defined(JP) || defined(EU) + idx = 0x10; +#else + idx = 0x11; +#endif + + if (gScreenTransition.player_status.field_0x24[idx] == 0) { + height = gPlayerEntity.y.HALF.HI - gRoomControls.roomScrollY > 96 ? 1 : 13; + } else { + height = gScreenTransition.player_status.field_0x24[idx]; + } + MessageAtHeight(gScreenTransition.field_0x36, height); +} + +#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) +void sub_08052BF8(void) { + Entity* e = NULL; + + if (gScreenTransition.player_status.field_0x24[13]) + return; + gScreenTransition.player_status.field_0x24[13] = 1; +#ifndef DEMO_JP + gScreenTransition.player_status.field_0x24[10] = gArea.locationIndex; +#endif + e = (Entity*)GetEmptyManager(); + if (e == NULL) + return; + e->kind = MANAGER; + e->id = 15; + e->type = 15; + AppendEntityToList(e, 0); +} +#endif + +void sub_08052C3C(void) { + if (gArea.field_0x18 == 0) + gArea.unk1A = gArea.field_0x18; + if (gArea.unk1A) { + gArea.unk1A--; + gArea.field_0x18 = 0; + } +} + +void sub_08052C5C(void) { + if (!CheckIsInteriorNoEnemies()) { + if (CheckIsOverworld()) { + gScreenTransition.player_status.field_0x20 = gPlayerEntity.x.HALF_U.HI; + gScreenTransition.player_status.field_0x22 = gPlayerEntity.y.HALF_U.HI; + } else if (CheckIsDungeon()) { + gScreenTransition.player_status.field_0x1c = gPlayerEntity.x.HALF.HI; + gScreenTransition.player_status.field_0x1e = gPlayerEntity.y.HALF.HI; + } + } +} + +void sub_08052CA4(u32 area, u32 room, u32 x, u32 y) { + RoomHeader* hdr = gAreaRoomHeaders[area] + room; + gScreenTransition.player_status.field_0x20 = hdr->map_x + x; + gScreenTransition.player_status.field_0x22 = hdr->map_y + y; +} + +void sub_08052CD0(u32 area, u32 room, u32 x, u32 y) { + RoomHeader* hdr = gAreaRoomHeaders[area] + room; + gScreenTransition.player_status.field_0x1c = hdr->map_x + x; + gScreenTransition.player_status.field_0x1e = hdr->map_y + y; +} + +void sub_08052CFC() { + AreaHeader* a_hdr = NULL; + + MemClear(&gArea, sizeof gArea); + a_hdr = &gAreaMetadata[gRoomControls.areaID]; + gArea.areaMetadata = a_hdr->flags; + gArea.locationIndex = a_hdr->location; + gArea.dungeon_idx = a_hdr->location - 23; + gArea.localFlagOffset = gLocalFlagBanks[a_hdr->flag_bank]; + gArea.filler[0] = a_hdr->flag_bank; + gArea.unk1A = 180; + gArea.unk_0a = 256; + HandleRoomEnter(); + InitAllRoomResInfo(); +} + +u32 GetFlagBankOffset(u32 idx) { + AreaHeader* a_hdr = &gAreaMetadata[idx]; + return gLocalFlagBanks[a_hdr->flag_bank]; +} + +void RegisterTransitionManager(void* mgr, void (*onEnter)(), void (*onExit)()) { + if (gMain.transition != 7) { + gArea.transitionManager = mgr; + gArea.onEnter = onEnter; + gArea.onExit = onExit; + } +} + +void InitAllRoomResInfo(void) { + RoomHeader* r_hdr = gAreaRoomHeaders[gRoomControls.areaID]; + RoomResInfo* info = gArea.roomResInfos; + u32 i; + for (i = 0; i < MAX_ROOMS && *(u16*)r_hdr != 0xFFFF; i++, r_hdr++) { + if (r_hdr->tileset_id != 0xFFFF) + InitRoomResInfo(info, r_hdr, gRoomControls.areaID, i); + info++; + } + gArea.pCurrentRoomInfo = GetCurrentRoomInfo(); +} + +void InitRoomResInfo(RoomResInfo* info, RoomHeader* r_hdr, u32 area, u32 room) { + info->map_x = r_hdr->map_x; + info->map_y = r_hdr->map_y; + info->pixel_width = r_hdr->pixel_width; + info->pixel_height = r_hdr->pixel_height; + info->tileset = *(gAreaTilesets[area] + r_hdr->tileset_id); + info->map = *(gAreaRoomMaps[area] + room); + info->metatiles = gAreaMetatiles[area]; + info->bg_anim = gUnk_080B755C[area]; + info->exits = *(gExitLists[area] + room); + if (gAreaTable[area] != NULL) { + info->properties = *(gAreaTable[area] + room); + } +} + +RoomResInfo* GetCurrentRoomInfo(void) { + return &gArea.roomResInfos[gRoomControls.roomID]; +} + +void sub_08052EA0(void) { + MemClear(&gRoomVars, sizeof gRoomVars); + gRoomVars.unk_10[0] = -1; + gRoomVars.unk_10[1] = gRoomVars.unk_10[0]; + gRoomVars.unk_10[2] = gRoomVars.unk_10[0]; + gRoomVars.unk_10[3] = gRoomVars.unk_10[0]; + gRoomVars.field_0xc = 256; + gArea.locationIndex = gAreaMetadata[gRoomControls.areaID].location; + sub_08049D30(); + InitScriptData(); + sub_08054524(); + sub_080186D4(); + sub_0806F364(); + UpdateGlobalProgress(); +} + +u32 sub_08052EF4(s32 idx) { + AreaHeader* a_hdr = NULL; + u32 i = idx < 0 ? gRoomControls.areaID : idx; + a_hdr = &gAreaMetadata[i]; + return gLocalFlagBanks[a_hdr->flag_bank]; +} + +void sub_08052F1C(void) { + u32 x, y; + LinkedList* ll; + Entity* e; + + if ((gArea.filler3[1] & 1) == 0 || !gRoomVars.field_0x0) + return; + + y = 0; + x = 0; + + // WTF? + switch (gRoomControls.unk_10) { + case 0: + y = gArea.pCurrentRoomInfo->pixel_height; + case 1: + y = gArea.pCurrentRoomInfo->pixel_height; + case 2: + y = gArea.pCurrentRoomInfo->pixel_height; + case 3: + x = gArea.pCurrentRoomInfo->pixel_width; + } + + gArea.pCurrentRoomInfo->map_x += x; + gArea.pCurrentRoomInfo->map_y += y; + gRoomControls.roomOriginX += x; + gRoomControls.roomOriginY += y; + gRoomControls.roomScrollX += x; + gRoomControls.roomScrollY += y; + + ll = gEntityLists; + do { + for (e = ll->first; e != (Entity*)ll; e = e->next) { + if (e->kind != MANAGER) { + e->x.HALF.HI += x; + e->y.HALF.HI += y; + } + } + } while (++ll < gEntityLists + 9); +} + +void sub_08052FD8(u32 area, u32 room) { + sub_08052FF4(area, room); + gRoomControls.cameraTarget = NULL; + sub_0807C860(); + sub_0807C740(); +} + +void sub_08052FF4(u32 area, u32 room) { + RoomHeader* r_hdr = NULL; + + sub_08080668(); + sub_080197AC(); + gRoomControls.areaID = area; + gRoomControls.roomID = room; + gScreen.lcd.displayControl = 0x1740; + MemClear(&gArea.currentRoomInfo, sizeof gArea.currentRoomInfo); + gArea.pCurrentRoomInfo = &gArea.currentRoomInfo; + r_hdr = gAreaRoomHeaders[area] + room; + gArea.currentRoomInfo.map_x = r_hdr->map_x; + gArea.currentRoomInfo.map_y = r_hdr->map_y; + gArea.currentRoomInfo.pixel_width = r_hdr->pixel_width; + gArea.currentRoomInfo.pixel_height = r_hdr->pixel_height; + gArea.currentRoomInfo.tileset = *(gAreaTilesets[area] + r_hdr->tileset_id); + gArea.currentRoomInfo.map = *(gAreaRoomMaps[area] + room); + gArea.currentRoomInfo.metatiles = gAreaMetatiles[area]; + gArea.currentRoomInfo.bg_anim = gUnk_080B755C[area]; +} + +void sub_0805308C(s32 a1) { + a1 += gRoomVars.field_0xc; + if (a1 < 0) + a1 = 0; + if (a1 > 256) + a1 = 256; + gRoomVars.field_0xc = a1; +} + +void sub_080530B0(void) { + static const u16 sMinecartData[] = { 0x189, 0x0, 0x102, 0x4, 0x1af, 0x0, 0x204, 0x0, + 0x1cf, 0x0, 0x10, 0x4, 0x0, 0x0, 0x0, 0x0 }; + + MemCopy(sMinecartData, gScreenTransition.minecart_data, sizeof sMinecartData); +} + +void UpdateGlobalProgress(void) { + u8 pcnt = 1; + if (CheckLocalFlagByBank(FLAG_BANK_3, SEIIKI_STAINED_GLASS)) { + pcnt = 9; + } else if (CheckGlobalFlag(LV5_CLEAR)) { + pcnt = 8; + } else if (CheckLocalFlagByBank(FLAG_BANK_3, OUBO_KAKERA)) { + pcnt = 7; + } else if (CheckGlobalFlag(LV4_CLEAR)) { + pcnt = 6; + } else if (CheckGlobalFlag(LV3_CLEAR)) { + pcnt = 5; + } else if (CheckLocalFlagByBank(FLAG_BANK_1, SOUGEN_08_TORITSUKI)) { + pcnt = 4; + } else if (CheckGlobalFlag(LV1_CLEAR)) { + pcnt = 2; + } + gSave.global_progress = pcnt; +} + +u32 sub_08053144(void) { + u32 ret; + + if (CheckGlobalFlag(ENDING)) + return 0; + ret = 0; + if (gArea.locationIndex != 0) + ret = !!(gScreenTransition.player_status.field_0x24[10] ^ gArea.locationIndex); + return ret; +} + +void sub_08053178(void) { + if (!sub_08053144()) + return; + + gScreenTransition.player_status.field_0x24[10] = gArea.locationIndex; + + if (!CheckGlobalFlag(TABIDACHI)) + return; + + if (!CheckGlobalFlag(ENDING)) { + Entity* e = (Entity*)GetEmptyManager(); + if (e != NULL) { + e->kind = MANAGER; + e->id = 0x39; + AppendEntityToList(e, 8); + if (!gRoomVars.field_0x0 && !ReadBit(gSave.areaVisitFlags, gArea.locationIndex)) { + e->type2 = 1; + SetPlayerControl(3); + SetInitializationPriority(); + } + } + } + WriteBit(gSave.areaVisitFlags, gArea.locationIndex); +} + +void sub_080531F8(void) { + gPlayerState.startPosX = gPlayerEntity.x.HALF.HI; + gPlayerState.startPosY = gPlayerEntity.y.HALF.HI; + if (sub_08053144()) { + MemCopy(&gScreenTransition.player_status, &gSave.saved_status, sizeof gScreenTransition.player_status); + if (CheckIsDungeon()) { + gScreenTransition.player_status.field_0x16 = gRoomControls.areaID; + gScreenTransition.player_status.field_0x17 = gRoomControls.roomID; + gScreenTransition.player_status.field_0x18 = gPlayerEntity.x.HALF.HI; + gScreenTransition.player_status.field_0x1a = gPlayerEntity.y.HALF.HI; + } + } +} + +void sub_08053250(void) { + gScreenTransition.player_status.spawn_type = PL_SPAWN_DEFAULT; + gScreenTransition.player_status.start_pos.HALF.x = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX; + gScreenTransition.player_status.start_pos.HALF.y = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY; + gScreenTransition.player_status.start_anim = gPlayerEntity.animationState; + gScreenTransition.player_status.layer = gPlayerEntity.collisionLayer; + gScreenTransition.player_status.area_next = gRoomControls.areaID; + gScreenTransition.player_status.room_next = gRoomControls.roomID; + MemCopy(&gScreenTransition.player_status, &gSave.saved_status, sizeof gScreenTransition.player_status); +} + +void sub_0805329C(void) { + if (sub_08053144()) { + switch (gRoomControls.areaID) { + case AREA_DEEPWOOD_SHRINE: + gSave.unk7 = 0; + break; + case AREA_CAVE_OF_FLAMES: + sub_080530B0(); + break; + case AREA_OUTER_FORTRESS_OF_WINDS: + sub_080532E4(); + break; + default: + sub_08053460(); + break; + } + } +} + +void sub_080532E4(void) { + s32 x, y; + + RoomHeader* r_hdr = gAreaRoomHeaders[AREA_FORTRESS_OF_WINDS] + 33; + + gScreenTransition.player_status.field_0x16 = AREA_FORTRESS_OF_WINDS; + gScreenTransition.player_status.field_0x17 = 33; + + gScreenTransition.player_status.field_0x18 = r_hdr->map_x + r_hdr->pixel_width / 2; + gScreenTransition.player_status.field_0x1c = gScreenTransition.player_status.field_0x18; + gScreenTransition.player_status.field_0x1a = r_hdr->map_y + r_hdr->pixel_height + 0xa0; + gScreenTransition.player_status.field_0x1e = gScreenTransition.player_status.field_0x1a; +} + +void sub_08053320(void) { + MemClear(&gBG0Buffer, sizeof gBG0Buffer); + MemClear(&gBG1Buffer, sizeof gBG1Buffer); + MemClear(&gBG2Buffer, sizeof gBG2Buffer); + MemClear(&gBG3Buffer, sizeof gBG3Buffer); + LoadGfxGroup(16); + LoadGfxGroup(23); + if (gRoomControls.areaID == AREA_CASTOR_WILDS) + LoadGfxGroup(26); + sub_08053390(); + LoadPaletteGroup(11); + LoadPaletteGroup(12); + SetColor(0, 0); +} + +void sub_08053390(void) { + LoadGfxGroup(GetInventoryValue(8) ? 24 : 25); + if (GetInventoryValue(0xAu)) + LoadGfxGroup(29); + LoadGfxGroup(GetInventoryValue(12) ? 28 : 27); +} + +void sub_080533CC(void) { + u16* p1 = gUnk_020178E0; + u16* p2 = gUnk_020178E0 - 0x100; + *p2++ = *p1++; + *p2++ = *p1++; + *p2++ = *p1++; + *p2++ = *p1++; + *p2++ = *p1++; + gUsedPalettes |= 8; +} + +void sub_0805340C(void) { + static void (*const sHandlers[])(u32*) = { + sub_08053434, DummyHandler, sub_080534E4, DummyHandler, DummyHandler, DummyHandler, DummyHandler, DummyHandler, + }; + + u32* p; + u32 i; + + p = gSave.unk48C; + for (i = 0; i < 8; i++, p++) { + (sHandlers[i])(p); + } +} + +static void DummyHandler(u32* a1) { +} + +static void sub_08053434(u32* a1) { + if (gArea.locationIndex == 29 && *a1) { + if (!--*a1) { + sub_08053460(); + MenuFadeIn(5, 6); + } + } +} + +void sub_08053460(void) { + static const u16 sClearFlags[] = { FLAG_BANK_10, LV6_GUFUU1_GISHIKI, FLAG_BANK_10, LV6_GUFUU1_DEMO, + FLAG_BANK_10, LV6_ZELDA_DISCURSE, FLAG_BANK_10, LV6_00_ESCAPE, + FLAG_BANK_10, LV6_GUFUU2_DEAD, FLAG_BANK_G, ENDING, + FLAG_BANK_10, LV6_KANE_START, FLAG_BANK_10, LV6_KANE_1ST, + FLAG_BANK_10, LV6_KANE_2ND, FLAG_BANK_10, LV6_SOTO_ENDING, + 0xFFFF }; + + gSave.unk48C[0] = 0; + if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_ZELDA_DISCURSE)) + ClearGlobalFlag(ZELDA_CHASE); + ClearFlagArray(sClearFlags); +} + +void sub_08053494(void) { + gSave.unk48C[0] = 10800; +} + +void sub_080534AC(void) { + if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START)) { + ClearLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START); + gSave.unk48C[0] = 0; + SoundReq(SONG_STOP_BGM); + } +} + +static void sub_080534E4(u32* a1) { + if (gRoomControls.areaID != AREA_VEIL_FALLS_TOP) { + if (*a1) + --*a1; + } +} + +void sub_08053500(void) { + gSave.unk48C[2] = 36000; +} + +void sub_08053518(void) { + static const u16 sClearFlags[] = { FLAG_BANK_2, BILL00_SHICHOU_00, FLAG_BANK_2, BILL0A_YADO_TAKARA_00, + FLAG_BANK_2, BILL0C_SCHOOLR_00, FLAG_BANK_1, MACHI00_00, + FLAG_BANK_1, MACHI00_02, FLAG_BANK_2, MHOUSE06_00, + FLAG_BANK_2, MHOUSE14_00, FLAG_BANK_2, MHOUSE2_00_02, + FLAG_BANK_2, MHOUSE2_01_T0, FLAG_BANK_2, MHOUSE2_02_KAME, + FLAG_BANK_2, SHOP00_ITEM_01, FLAG_BANK_2, SHOP01_CAFE_01, + 0xFFFF }; + + sub_08053460(); + ClearFlagArray(sClearFlags); + + if (!CheckGlobalFlag(WATERBEAN_PUT)) + ClearGlobalFlag(WATERBEAN_OUT); + if (!GetInventoryValue(0x40u)) + ClearGlobalFlag(LV1_CLEAR); + if (!GetInventoryValue(0x41u)) + ClearGlobalFlag(LV2_CLEAR); + if (!GetInventoryValue(0x42u)) + ClearGlobalFlag(LV4_CLEAR); +} + +static void ClearFlagArray(const u16* p) { + const u16* i; + + for (i = p; i[0] != 0xFFFF; i += 2) + ClearLocalFlagByBank(i[0], i[1]); +} diff --git a/src/player.c b/src/player.c index 907be6ec..78b22379 100644 --- a/src/player.c +++ b/src/player.c @@ -30,11 +30,11 @@ extern void sub_08079E08(); extern void sub_08078F60(); extern void sub_0806F948(); extern void sub_08077698(); -extern void FreezeTime(); +extern void SetPlayerEventPriority(); extern void sub_080717F8(); -extern void UnfreezeTime(); +extern void ResetPlayerEventPriority(); extern void sub_08071A6C(); -extern void sub_08052BB8(); +extern void DisplayEzloMessage(); extern void sub_08079258(); extern void sub_08071AF0(); extern void sub_080728AC(); @@ -61,13 +61,13 @@ extern void sub_0807B068(); extern u32 sub_080001DA(); extern void sub_08072A60(); extern u32 sub_0807A2F8(); -extern u32 sub_08052620(); +extern u32 CheckIsOverworld(); extern u32 sub_0806F730(); extern u32 sub_08007DD6(); -extern u32 sub_0807A1E8(); +extern u32 GetSurfaceCalcType(); extern void sub_08073094(); extern void sub_08074808(); -extern void sub_0805E4E0(); +extern void RequestPriorityDuration(); typedef struct { u8 frame; @@ -160,7 +160,7 @@ void sub_08070C3C(Entity* this) { gPlayerState.jumpStatus = 0; - if ((gPlayerState.flags & PL_IS_MINISH) != 0) + if ((gPlayerState.flags & PL_MINISH) != 0) gPlayerState.field_0x8 = 0x1ba; else if ((gPlayerState.flags & 8) != 0) gPlayerState.field_0x8 = 0x458; @@ -205,7 +205,7 @@ void sub_08070D38(Entity* this) { this->actionDelay = gPlayerState.field_0x38; this->spriteIndex = 1; - if ((gPlayerState.flags & PL_IS_MINISH) == 0) { + if ((gPlayerState.flags & PL_MINISH) == 0) { this->zVelocity = 0x20000; gPlayerState.field_0x8 = 0x114; sub_08080964(16, 0); @@ -259,7 +259,7 @@ NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void sub_08070DC4(Entity* t this->actionDelay = 8; this->subAction++; - if ((gPlayerState.flags & PL_IS_MINISH) == 0) + if ((gPlayerState.flags & PL_MINISH) == 0) gPlayerState.field_0x8 = 0x100; } END_NONMATCH @@ -285,12 +285,12 @@ void sub_08070E9C(Entity* this) { } void sub_08070EDC(Entity* this) { - this->updateConditions = 2; + this->updatePriority = 2; if ((gMessage.doTextBox & 0x7f) != 0) this->subAction = 1; - if ((gPlayerState.flags & PL_IS_MINISH) == 0) + if ((gPlayerState.flags & PL_MINISH) == 0) sub_08079938(); else gPlayerState.field_0x8 = 0xc18; @@ -299,7 +299,7 @@ void sub_08070EDC(Entity* this) { void sub_08070f24(Entity* this) { UpdateAnimationSingleFrame(this); if ((gMessage.doTextBox & 0x7f) == 0) { - this->updateConditions = this->updateConditions2; + this->updatePriority = this->updatePriorityPrev; sub_080791D0(); } } @@ -330,7 +330,7 @@ void sub_08070FA4(Entity* this) { gPlayerState.flags |= 1; gPlayerState.jumpStatus = 0; - if ((gPlayerState.flags & PL_IS_MINISH) == 0) { + if ((gPlayerState.flags & PL_MINISH) == 0) { if (gPlayerState.flags & 0x8) { if (sub_080542AC(gPlayerState.field_0x38)) { temp = 0x45e; @@ -390,7 +390,7 @@ void sub_080710A8(Entity* this) { gPlayerState.playerAction = 0; if ((gPlayerState.heldObject | gPlayerState.field_0x1a[1]) == 0) { - if ((gPlayerState.flags & PL_IS_MINISH) == 0) { + if ((gPlayerState.flags & PL_MINISH) == 0) { ResetPlayer(); if ((gPlayerState.flags & 0x8) != 0) { @@ -455,7 +455,7 @@ void sub_08071130(Entity* this) { this->actionDelay = 6; - if (((gPlayerState.heldObject | gPlayerState.keepFacing) == 0) && ((gPlayerState.flags & PL_IS_MINISH) == 0)) { + if (((gPlayerState.heldObject | gPlayerState.keepFacing) == 0) && ((gPlayerState.flags & PL_MINISH) == 0)) { if (gPlayerState.flags & 0x8) { gPlayerState.field_0x8 = 0x424; } else { @@ -472,7 +472,7 @@ void sub_08071130(Entity* this) { void sub_08071208(Entity* this) { if ((gPlayerState.heldObject | gPlayerState.keepFacing) == 0) { - if ((gPlayerState.flags & PL_IS_MINISH) == 0) { + if ((gPlayerState.flags & PL_MINISH) == 0) { UpdateAnimationSingleFrame(this); } } @@ -494,7 +494,7 @@ void sub_0807127C(Entity* this) { this->subAction = 1; this->spritePriority.b1 = 0; - if (gPlayerState.flags & PL_IS_MINISH) { + if (gPlayerState.flags & PL_MINISH) { this->actionDelay = 0x3c; gPlayerState.field_0x8 = 0xc19; SoundReq(SFX_WATER_SPLASH); @@ -519,7 +519,7 @@ void sub_080712F0(Entity* this) { temp = FALSE; - if ((gPlayerState.flags & PL_IS_MINISH) != 0) { + if ((gPlayerState.flags & PL_MINISH) != 0) { if (--this->actionDelay == 0) temp = TRUE; } else if ((this->frame & 0x80) != 0) { @@ -648,7 +648,7 @@ void PortalActivateInit(Entity* this) { gPlayerState.field_0x8 = 0x738; CreateObjectWithParent(this, OBJECT_6, 1, 0); sub_08077B20(); - FreezeTime(); + SetPlayerEventPriority(); } void PortalActivateUpdate(Entity* this) { @@ -657,7 +657,7 @@ void PortalActivateUpdate(Entity* this) { UpdateAnimationSingleFrame(this); - if (gPlayerState.flags & PL_IS_MINISH) + if (gPlayerState.flags & PL_MINISH) this->subAction = 4; } @@ -726,7 +726,7 @@ void sub_080717F8(Entity* this) { this->subAction = 0; gPlayerState.flags = (gPlayerState.flags & ~0x20) | 0x80; sub_0805EC60(this); - UnfreezeTime(); + ResetPlayerEventPriority(); } void PlayerTalkEzlo(Entity* this) { @@ -744,13 +744,13 @@ void sub_080718A0(Entity* this) { ResetPlayer(); gUnk_03000B80.filler[0x63] = 0; this->iframes = 0; - gUnk_03003DC0.unk0 = 6; - this->updateConditions = 6; + gPriorityHandler.sys_priority = 6; + this->updatePriority = 6; - if (gPlayerState.flags & PL_IS_MINISH) { + if (gPlayerState.flags & PL_MINISH) { this->subAction = 2; this->spritePriority.b1 = 0; - sub_08052BB8(); + DisplayEzloMessage(); return; } @@ -783,7 +783,7 @@ void sub_0807193C(Entity* this) { gPlayerState.field_0x8 = 0x3cc; else gPlayerState.field_0x8 = 0x3c7; - sub_08052BB8(); + DisplayEzloMessage(); } } } @@ -794,7 +794,7 @@ void sub_08071990(Entity* this) { if ((gMessage.doTextBox & 0x7f) == 0) { this->subAction++; - if ((gPlayerState.flags & PL_IS_MINISH) == 0) { + if ((gPlayerState.flags & PL_MINISH) == 0) { if (this->animationState == 2) gPlayerState.field_0x8 = 0x3cd; else @@ -806,7 +806,7 @@ void sub_08071990(Entity* this) { return; } - if (gPlayerState.flags & PL_IS_MINISH) + if (gPlayerState.flags & PL_MINISH) return; if (this->animationState == 2) @@ -837,8 +837,8 @@ void sub_08071A4C(Entity* this) { } void sub_08071A6C(void) { - gUnk_03003DC0.unk0 = 0; - gPlayerEntity.updateConditions = gPlayerEntity.updateConditions2; + gPriorityHandler.sys_priority = 0; + gPlayerEntity.updatePriority = gPlayerEntity.updatePriorityPrev; } void PlayerPush(Entity* this) { @@ -856,7 +856,7 @@ void sub_08071AB0(Entity* this) { this->actionDelay = 0; this->field_0xf = 1; } else { - this->speed = (gPlayerState.flags & PL_IS_MINISH) ? 64 : 128; + this->speed = (gPlayerState.flags & PL_MINISH) ? 64 : 128; } sub_08071AF0(this); } @@ -891,7 +891,7 @@ void sub_08071B60(Entity* this) { this->knockbackDuration = 0; sub_080728AC(this); this->field_0xf = 6; - if ((gPlayerState.flags & PL_IS_MINISH) == 0) { + if ((gPlayerState.flags & PL_MINISH) == 0) { gPlayerState.field_0x8 = 0x104; this->spriteIndex = 3; InitAnimationForceUpdate(this, (this->animationState >> 1) + 0x3c); @@ -921,7 +921,7 @@ void sub_08071BDC(Entity* this) { } gPlayerState.playerAction = 0; - if (gPlayerState.flags & PL_IS_MINISH) { + if (gPlayerState.flags & PL_MINISH) { if ((u8)(gPlayerState.field_0x10[2] - 8) < 3) { sub_0807A298(this); RespawnPlayer(); @@ -949,7 +949,7 @@ void sub_08071CAC(Entity* this) { UpdateAnimationSingleFrame(this); if (this->frame & 0x80) { u32 temp; - if ((gPlayerState.flags & PL_IS_MINISH) == 0) + if ((gPlayerState.flags & PL_MINISH) == 0) temp = (gPlayerState.flags & 8) ? 0x45a : 0x2bd; else temp = 0xc1b; @@ -999,7 +999,7 @@ void sub_08071D80(Entity* this) { if ((gPlayerState.jumpStatus & 7) == 3) { gPlayerState.jumpStatus = 0; this->iframes = 226; - UnfreezeTime(); + ResetPlayerEventPriority(); sub_080791D0(); } } @@ -1273,7 +1273,7 @@ void sub_080722DC(Entity* this) { Entity* ent; COLLISION_OFF(this); - if (!(gPlayerState.flags & PL_IS_MINISH)) { + if (!(gPlayerState.flags & PL_MINISH)) { this->subAction = 1; this->zVelocity = 0x28000; ent = CreateObject(OBJECT_42, 0x80, 0); @@ -1368,7 +1368,7 @@ void sub_080724DC(Entity* this) { sub_0807AE20(this); } if (gRoomControls.unk2 == 0) { - this->updateConditions = this->updateConditions2; + this->updatePriority = this->updatePriorityPrev; sub_080728AC(this); } else if (gPlayerState.field_0x1c == 0) { UpdateAnimationSingleFrame(this); @@ -1377,7 +1377,7 @@ void sub_080724DC(Entity* this) { this->spriteSettings.draw = 3; this->subAction = 1; if (gRoomVars.field_0x0 == 0) { - if (gPlayerState.flags & PL_IS_MINISH) { + if (gPlayerState.flags & PL_MINISH) { gPlayerState.field_0x8 = 0xc18; } else { gPlayerState.field_0x8 = 0x104; @@ -1394,7 +1394,7 @@ void sub_0807258C(Entity* this) { if (sub_080797C4() != 0) { gPlayerState.startPosX = gPlayerEntity.x.HALF.HI; gPlayerState.startPosY = gPlayerEntity.y.HALF.HI; - this->updateConditions = this->updateConditions2; + this->updatePriority = this->updatePriorityPrev; sub_080728AC(this); } else { UpdateAnimationSingleFrame(this); @@ -1402,7 +1402,7 @@ void sub_0807258C(Entity* this) { } else { gPlayerState.startPosX = gPlayerEntity.x.HALF.HI; gPlayerState.startPosY = gPlayerEntity.y.HALF.HI; - this->updateConditions = this->updateConditions2; + this->updatePriority = this->updatePriorityPrev; sub_080728AC(this); } } @@ -1423,17 +1423,17 @@ void sub_08072650(Entity* this) { if ((gPlayerState.flags & 0x200000) == 0) { sub_0806F948(&gPlayerEntity); - this->direction = this->animationState << 2; + this->direction = Direction8FromAnimationState(this->animationState); } this->subAction = 1; this->actionDelay = 0; ResetPlayer(); temp = gPlayerState.flags; - if (gPlayerState.flags & PL_IS_MINISH) { + if (gPlayerState.flags & PL_MINISH) { this->spritePriority.b1 = 0; gPlayerState.field_0x8 = 0xc08; } else { - *(u8*)&this->hurtType = 0x1e; + this->hurtType = 0x1e; if (temp & 8) { gPlayerState.field_0x8 = 0x438; } else { @@ -1459,7 +1459,7 @@ void sub_080726F4(Entity* this) { } this->direction = (this->animationState & 6) << 2; - if (((gPlayerState.flags & PL_IS_MINISH) == 0) && (--this->actionDelay == 0xff)) { + if (((gPlayerState.flags & PL_MINISH) == 0) && (--this->actionDelay == 0xff)) { CreateFx(&gPlayerEntity, FX_DASH, 0x40); this->actionDelay = 4; } @@ -1508,7 +1508,7 @@ void sub_080726F4(Entity* this) { sub_08078F24(); sub_08079E08(); } - if (((this->frame & 0x10) == 0) && ((gPlayerState.flags & PL_IS_MINISH) == 0)) { + if (((this->frame & 0x10) == 0) && ((gPlayerState.flags & PL_MINISH) == 0)) { *(u8*)&this->hurtType = 0; } if ((this->frame & 0x40) != 0) { @@ -1525,7 +1525,7 @@ void sub_080726F4(Entity* this) { void sub_080728AC(Entity* this) { sub_08079938(); - if (gPlayerState.flags & PL_IS_MINISH) + if (gPlayerState.flags & PL_MINISH) sub_0807B068(this); else sub_08078F60(); @@ -1534,7 +1534,7 @@ void sub_080728AC(Entity* this) { this->speed = 0; if (!(gPlayerState.flags & 0x40)) gPlayerEntity.spriteSettings.draw = 3; - if (!(gPlayerState.flags & PL_IS_MINISH)) + if (!(gPlayerState.flags & PL_MINISH)) gPlayerEntity.spritePriority.b1 = 1; if (!(gRoomControls.unk6 & 4)) { @@ -1644,7 +1644,7 @@ void sub_08072B5C(Entity* this) { return; } - if (!sub_08052620()) { + if (!CheckIsOverworld()) { sub_08004542(this); } this->subAction++; @@ -1667,7 +1667,7 @@ void sub_08072C48(Entity* this) { if (gPlayerState.field_0x14) { if (sub_08008B22()) { gPlayerState.field_0x10[1] = 7; - if (!(gPlayerState.flags & PL_IS_MINISH)) { + if (!(gPlayerState.flags & PL_MINISH)) { sub_080791BC(); } } @@ -1783,7 +1783,7 @@ NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(Entity* t if (gPlayerState.field_0x14 != 0) { if (sub_08008B22() == 0) { gPlayerState.field_0x10[1] = 7; - if (!(gPlayerState.flags & PL_IS_MINISH)) { + if (!(gPlayerState.flags & PL_MINISH)) { sub_080791BC(); } } @@ -1815,7 +1815,7 @@ extern void (*const gUnk_0811BBE4[])(Entity*); void sub_08072F34(Entity* this) { if (!sub_08078EFC()) { gPlayerState.field_0xa8 = 0x18; - gPlayerState.field_0x10[2] = sub_0807A1E8(this, 0, 0); + gPlayerState.field_0x10[2] = GetSurfaceCalcType(this, 0, 0); gUnk_0811BBE4[this->subAction](this); if (this->knockbackDuration != 0) { sub_080792D8(); @@ -1934,7 +1934,7 @@ extern void (*const gUnk_0811BBF8[])(Entity*); void PlayerUseEntrance(Entity* this) { gPlayerState.field_0xa8 = 0x1c; - sub_0805E4E0(NULL, 8); + RequestPriorityDuration(NULL, 8); gUnk_0811BBF8[this->subAction](this); } diff --git a/src/playerItem/playerItemLantern.c b/src/playerItem/playerItemLantern.c index 1adf8859..9bfdc127 100644 --- a/src/playerItem/playerItemLantern.c +++ b/src/playerItem/playerItemLantern.c @@ -18,7 +18,7 @@ NONMATCH("asm/non_matching/playerItemLantern/sub_08054A60.inc", void sub_08054A6 this->actionDelay = 0x04; this->frameIndex = -1; // TODO regalloc and mov 6 too early - this->updateConditions = (this->updateConditions & 0xf0) | 6; + this->updatePriority = (this->updatePriority & 0xf0) | 6; this->field_0x3c = 7; this->flags2 = -0x80; this->animationState = gPlayerEntity.animationState & 0xe; diff --git a/src/room.c b/src/room.c index e23f8de4..aad169d9 100644 --- a/src/room.c +++ b/src/room.c @@ -239,7 +239,7 @@ extern EntityData Entities_HouseInteriors1_Mayor_080D6210; void sub_StateChange_HouseInteriors1_Mayor(void) { - if ((u16)gScreenTransition.playerStartPos.HALF.y > 0x40) + if ((u16)gScreenTransition.player_status.start_pos.HALF.y > 0x40) LoadRoomEntityList(&Entities_HouseInteriors1_Mayor_080D6210); } @@ -351,7 +351,7 @@ extern EntityData gUnk_additional_9_HouseInteriors1_Library1F; extern EntityData gUnk_additional_8_HouseInteriors1_Library1F; void sub_StateChange_HouseInteriors1_Library1F(void) { - if (gSave.unk8 > 4) { + if (gSave.global_progress > 4) { LoadRoomEntityList(&gUnk_080D6714); } // flippers @@ -369,7 +369,7 @@ u32 sub_unk3_HouseInteriors1_Inn1F() { extern EntityData gUnk_080D6924; void sub_StateChange_HouseInteriors1_Inn1F(void) { - if (gSave.unk8 > 7) { + if (gSave.global_progress > 7) { LoadRoomEntityList(&gUnk_080D6924); } } @@ -469,7 +469,7 @@ extern EntityData UpperInn_Din; void sub_StateChange_HouseInteriors1_InnWest2F(void) { int iVar1; - if (gSave.unk8 < 4) + if (gSave.global_progress < 4) return; if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { @@ -519,7 +519,7 @@ u32 sub_unk3_HouseInteriors1_SchoolWest() { extern EntityData gUnk_080D7038; void sub_StateChange_HouseInteriors1_SchoolWest(void) { - if (gSave.unk8 < 8) { + if (gSave.global_progress < 8) { LoadRoomEntityList(&gUnk_080D7038); } if (gRoomVars.field_0x0 == 0) { @@ -539,13 +539,13 @@ extern EntityData gUnk_080D71F0; void sub_StateChange_HouseInteriors1_SchoolEast(void) { - if (gSave.unk8 == 6) + if (gSave.global_progress == 6) LoadRoomEntityList(&gUnk_080D7140); - if (gSave.unk8 == 7) + if (gSave.global_progress == 7) LoadRoomEntityList(&gUnk_080D7170); - if ((gSave.unk8 < 8) || (LoadRoomEntityList(&gUnk_080D71A0), gSave.unk8 < 8)) + if ((gSave.global_progress < 8) || (LoadRoomEntityList(&gUnk_080D71A0), gSave.global_progress < 8)) LoadRoomEntityList(&gUnk_080D71D0); else LoadRoomEntityList(&gUnk_080D71F0); @@ -676,7 +676,7 @@ u32 sub_unk3_HyruleCastle_4(void) { #else if (!CheckLocalFlag(0x9f)) { #endif - gScreenTransition.field_0xf = 5; + gScreenTransition.player_status.spawn_type = 5; ClearGlobalFlag(ZELDA_CHASE); } return 1; @@ -1077,7 +1077,7 @@ void sub_StateChange_RoyalValley_Main(void) { SetTile(0x4072, 0xc47, 1); if (CheckGlobalFlag(MAZE_CLEAR)) - if (gScreenTransition.playerStartPos.WORD == 0x2780078) // todo: wtf + if (gScreenTransition.player_status.start_pos.WORD == 0x2780078) // todo: wtf SoundReq(SFX_SECRET); ClearGlobalFlag(MAZE_CLEAR); @@ -1494,7 +1494,7 @@ extern EntityData gUnk_080DB238; void sub_StateChange_MinishHouseInteriors_Librari(void) { - if (gSave.unk8 > 8) + if (gSave.global_progress > 8) LoadRoomEntityList(&gUnk_080DB238); sub_0801AFE4(); @@ -1748,7 +1748,7 @@ void sub_StateChange_MinishVillage_Main(void) { // jabber nut if (!GetInventoryValue(0x5b)) { LoadRoomEntityList(&gUnk_080DC390); - if (!CheckLocalFlagByOffset(0x200, 0x80)) { + if (!CheckLocalFlagByBank(0x200, 0x80)) { LoadRoomEntityList(&gUnk_080DC3F0); } } else { @@ -1758,7 +1758,7 @@ void sub_StateChange_MinishVillage_Main(void) { LoadRoomEntityList(&gUnk_080DC530); } } - if ((!CheckLocalFlagByOffset(0x200, 0x83)) && GetInventoryValue(0x11)) { + if ((!CheckLocalFlagByBank(0x200, 0x83)) && GetInventoryValue(0x11)) { LoadRoomEntityList(&gUnk_080DC470); } if (!CheckLocalFlag(0x8d)) { @@ -2061,9 +2061,9 @@ void sub_StateChange_Ruins_TripleTektites(void) { void sub_unk1_Ruins_TripleTektites(void) { #if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlagByOffset(0x100, 0x28)) { + if (CheckLocalFlagByBank(0x100, 0x28)) { #else - if (CheckLocalFlagByOffset(0x100, 0x27)) { + if (CheckLocalFlagByBank(0x100, 0x27)) { #endif SetDirtTile(0x85); } @@ -2351,7 +2351,7 @@ u32 sub_unk3_DeepwoodShrineEntry_Main() { extern EntityData gUnk_080DFB78; void sub_StateChange_DeepwoodShrineEntry_Main(void) { - if (CheckGlobalFlag(LV1_CLEAR) && !CheckLocalFlagByOffset(0x100, 1)) { + if (CheckGlobalFlag(LV1_CLEAR) && !CheckLocalFlagByBank(0x100, 1)) { LoadRoomEntityList(&gUnk_080DFB78); } } @@ -2618,7 +2618,7 @@ void sub_StateChange_FortressOfWinds_Mazaal(void) { } else { if (gScreenTransition.field_0x39 == 0) { SoundReq(SONG_STOP); - sub_08078A90(3); + SetPlayerControl(3); } } gArea.musicIndex = gArea.pMusicIndex; @@ -2725,7 +2725,7 @@ extern EntityData gUnk_080E3850; void sub_StateChange_FortressOfWindsTop_Main(void) { SetGlobalFlag(LV3_CLEAR); - sub_080530C8(); + UpdateGlobalProgress(); sub_0805B4D0(3); // wind ocarina if (!GetInventoryValue(0x17) && CheckLocalFlag(0x45)) { @@ -3178,7 +3178,7 @@ void sub_StateChange_PalaceOfWinds_0(void) { SetGlobalFlag(LV5_CLEAR); // wind element if (!GetInventoryValue(0x43)) { - sub_08078A90(3); + SetPlayerControl(3); LoadRoomEntityList(&gUnk_additional_8_PalaceOfWinds_0); gArea.musicIndex = gArea.pMusicIndex; SoundReq(SONG_STOP_BGM); @@ -4324,14 +4324,14 @@ void sub_StateChange_HyruleTown_0(void) { #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) SetTileType(0x176, 0x66b, 1); #endif - if (gSave.unk8 == 1) { + if (gSave.global_progress == 1) { sub_0801D000(0); } else { sub_08018C58(0xdb4); - if (!CheckLocalFlagByOffset(0x200, 0x84)) { + if (!CheckLocalFlagByBank(0x200, 0x84)) { LoadRoomEntityList(&gUnk_080EEB6C); } - if (!CheckLocalFlagByOffset(0x200, 0x85)) { + if (!CheckLocalFlagByBank(0x200, 0x85)) { LoadRoomEntityList(&gUnk_080EEB8C); } // kinstone bag @@ -4349,7 +4349,7 @@ void sub_StateChange_HyruleTown_0(void) { } else { LoadRoomEntityList(&gUnk_080EECBC); } - if (CheckKinstoneFused(0x1b) && (gSave.unk8 > 3)) { + if (CheckKinstoneFused(0x1b) && (gSave.global_progress > 3)) { if (!CheckGlobalFlag(NEW_HOUSE_DIN) && !CheckGlobalFlag(NEW_HOUSE_NAYRU) && !CheckGlobalFlag(NEW_HOUSE_FARORE)) { if (!CheckGlobalFlag(RENTED_HOUSE_DIN) && !CheckGlobalFlag(RENTED_HOUSE_NAYRU) && @@ -4375,7 +4375,7 @@ void sub_StateChange_HyruleTown_0(void) { } else { LoadRoomEntityList(&gUnk_080EE9DC); } - if ((gSave.unk8 > 4) && !CheckKinstoneFused(0xb) && + if ((gSave.global_progress > 4) && !CheckKinstoneFused(0xb) && (CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || CheckGlobalFlag(RENTED_HOUSE_FARORE))) { LoadRoomEntityList(&gUnk_080EEA5C); @@ -4388,10 +4388,10 @@ void sub_StateChange_HyruleTown_0(void) { #endif LoadRoomEntityList(&gUnk_080EEABC); } - if ((gSave.unk8 > 3) && CheckGlobalFlag(INLOCK)) { + if ((gSave.global_progress > 3) && CheckGlobalFlag(INLOCK)) { LoadRoomEntityList(&gUnk_080EEA7C); } - if ((gSave.unk8 < 6) && !CheckGlobalFlag(MIZUKAKI_START)) { + if ((gSave.global_progress < 6) && !CheckGlobalFlag(MIZUKAKI_START)) { LoadRoomEntityList(&gUnk_080EEA9C); } if ((gSave.windcrests & 0x8000000) == 0) { @@ -4682,7 +4682,7 @@ void sub_StateChange_HouseInteriors2_DrLeft(void) { if (!GetInventoryValue(0x3a) && CheckGlobalFlag(MIZUKAKI_HARIFALL)) { LoadRoomEntityList(&gUnk_080F2194); } - if (gScreenTransition.field_0xf == 1) { + if (gScreenTransition.player_status.spawn_type == 1) { LoadRoomEntityList(&gUnk_080F21B4); } } @@ -4697,7 +4697,7 @@ extern EntityData gUnk_additional_c_HouseInteriors2_Romio; void sub_StateChange_HouseInteriors2_Romio(void) { - if (gSave.unk8 > 7) { + if (gSave.global_progress > 7) { LoadRoomEntityList(&gUnk_080F23BC); } // flippers @@ -4718,7 +4718,7 @@ extern EntityData gUnk_080F25C0; extern EntityData gUnk_080F2600; void sub_StateChange_HouseInteriors2_Julietta(void) { - switch (gSave.unk8) { + switch (gSave.global_progress) { case 0: case 2: case 4: @@ -4872,7 +4872,7 @@ extern EntityData gUnk_080F30CC; void sub_StateChange_HouseInteriors2_Stockwell(void) { // dog food - if ((GetInventoryValue(0x36) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) && (gPlayerState.flags & PL_IS_MINISH) == 0) { + if ((GetInventoryValue(0x36) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) && (gPlayerState.flags & PL_MINISH) == 0) { LoadRoomEntityList(&gUnk_080F30CC); } } @@ -4945,7 +4945,7 @@ extern EntityData gUnk_080F3604; void sub_StateChange_HouseInteriors4_RanchHouseWest(void) { if (!CheckGlobalFlag(INLOCK)) { LoadRoomEntityList(&gUnk_080F36FC); - } else if (gSave.unk8 < 4) { + } else if (gSave.global_progress < 4) { LoadRoomEntityList(&gUnk_080F3604); } } @@ -4980,8 +4980,8 @@ void sub_StateChange_HouseInteriors4_Mayor(void) { if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(0x3b)) { LoadRoomEntityList(&gUnk_080F3A48); } - gScreenTransition.field_0x20 = 0xf28; - gScreenTransition.field_0x22 = 0x82d; + gScreenTransition.player_status.field_0x20 = 0xf28; + gScreenTransition.player_status.field_0x22 = 0x82d; } extern u32 Enemies_LakeHylia_Main; @@ -5007,7 +5007,7 @@ void sub_StateChange_LakeHylia_Main(void) { if (CheckKinstoneFused(0x12)) { LoadRoomEntityList(&gUnk_080F3C94); } - if ((gSave.unk8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { + if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F3C44); } SetTile(0x4091, 0x590, 1); @@ -5328,7 +5328,7 @@ extern EntityData gUnk_080F5788; void sub_StateChange_HouseInteriors3_StockwellShop(void) { LoadRoomEntityList(&gUnk_080F5758); - if (!GetInventoryValue(0x36) && CheckLocalFlagByOffset(0x200, 0x8f)) { + if (!GetInventoryValue(0x36) && CheckLocalFlagByBank(0x200, 0x8f)) { LoadRoomEntityList(&gUnk_080F57E8); } if (!CheckLocalFlag(0x55)) { @@ -5389,7 +5389,7 @@ void sub_StateChange_HouseInteriors3_Bakery() { u32 sub_unk3_HouseInteriors3_Simon(void) { if (CheckGlobalFlag(MAROYA_WAKEUP)) { - gScreenTransition.field_0xf = 5; + gScreenTransition.player_status.spawn_type = 5; } return 1; } @@ -5398,7 +5398,7 @@ extern EntityData gUnk_080F5DD0; extern u32 script_08011C50; void sub_StateChange_HouseInteriors3_Simon(void) { - if (gSave.unk8 > 7) { + if (gSave.global_progress > 7) { LoadRoomEntityList(&gUnk_080F5DD0); } if (CheckGlobalFlag(MAROYA_WAKEUP)) { @@ -5414,9 +5414,9 @@ extern EntityData gUnk_080F5E68; void sub_StateChange_HouseInteriors3_FigurineHouse(void) { #if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlagByOffset(0x100, 0xce)) { + if (!CheckLocalFlagByBank(0x100, 0xce)) { #else - if (!CheckLocalFlagByOffset(0x100, 0xd1)) { + if (!CheckLocalFlagByBank(0x100, 0xd1)) { #endif LoadRoomEntityList(&gUnk_080F5E68); } @@ -5432,7 +5432,7 @@ extern EntityData gUnk_additional_a_HouseInteriors3_BorlovEntrance; void sub_StateChange_HouseInteriors3_BorlovEntrance(void) { - if (gSave.unk8 > 4) { + if (gSave.global_progress > 4) { LoadRoomEntityList(&gUnk_additional_8_HouseInteriors3_BorlovEntrance); } if (!CheckLocalFlag(0x92)) { @@ -5458,9 +5458,9 @@ void sub_StateChange_HouseInteriors3_Borlov() { u32 sub_unk3_WindTribeTower_Entrance(void) { #if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByOffset(0x100, 0xd9)) { + if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByBank(0x100, 0xd9)) { #else - if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByOffset(0x100, 0xdc)) { + if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByBank(0x100, 0xdc)) { #endif SetGlobalFlag(WARP_EVENT_END); } @@ -5471,9 +5471,9 @@ extern EntityData gUnk_080F61BC; void sub_StateChange_WindTribeTower_Entrance(void) { #if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlagByOffset(0x100, 0xd9)) { + if (CheckLocalFlagByBank(0x100, 0xd9)) { #else - if (CheckLocalFlagByOffset(0x100, 0xdc)) { + if (CheckLocalFlagByBank(0x100, 0xdc)) { #endif SetLocalFlag(0x90); } @@ -5535,7 +5535,7 @@ extern EntityData gUnk_080F66AC; void sub_StateChange_WindTribeTowerRoof_Main(void) { sub_0805B4D0(5); - if (CheckGlobalFlag(LV5_CLEAR) && !CheckLocalFlagByOffset(0x100, 5)) { + if (CheckGlobalFlag(LV5_CLEAR) && !CheckLocalFlagByBank(0x100, 5)) { LoadRoomEntityList(&gUnk_080F66AC); } sub_08052CA4(8, 0, 0x1e8, 0x158); @@ -5654,7 +5654,7 @@ void sub_StateChange_HyruleField_LinksHouseExterior(void) { if ((gSave.windcrests & 0x40000000) == 0) { LoadRoomEntityList(&gUnk_080F70D8); } - if (gSave.unk8 > 3) { + if (gSave.global_progress > 3) { LoadRoomEntityList(&gUnk_080F7088); } } @@ -5695,7 +5695,7 @@ extern EntityData gUnk_080F7550; void sub_StateChange_HyruleField_Farmers(void) { Manager18_Main(0); - if (gSave.unk8 > 3) { + if (gSave.global_progress > 3) { LoadRoomEntityList(&gUnk_080F7500); } if (GetInventoryValue(0x11) && !GetInventoryValue(0x12)) { @@ -5720,7 +5720,7 @@ extern EntityData gUnk_080F78A0; void sub_StateChange_HyruleField_LonLonRanch(void) { Manager18_Main(0); - if (CheckLocalFlagByOffset(0x200, 0x8f)) { + if (CheckLocalFlagByBank(0x200, 0x8f)) { if (!CheckGlobalFlag(INLOCK)) { LoadRoomEntityList(&gUnk_080F77C0); } @@ -5735,7 +5735,7 @@ void sub_StateChange_HyruleField_LonLonRanch(void) { SetTile(0x4072, 0xd88, 1); SetTile(0x4096, 0xdc8, 1); } - if ((gSave.unk8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { + if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F78A0); } } @@ -5958,7 +5958,7 @@ extern EntityData gUnk_080F806C; void sub_StateChange_HyruleField_OutsideCastleWest(void) { Manager18_Main(0); - if ((gSave.unk8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { + if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F806C); } } @@ -5989,7 +5989,7 @@ extern EntityData gUnk_080F8430; void sub_StateChange_HyruleField_PercysHouse(void) { Manager18_Main(0); - if (CheckKinstoneFused(0x21) && !CheckLocalFlagByOffset(0x200, 0x42)) { + if (CheckKinstoneFused(0x21) && !CheckLocalFlagByBank(0x200, 0x42)) { LoadRoomEntityList(&gUnk_080F8430); } } diff --git a/src/save.c b/src/save.c index 71657e58..36727c41 100644 --- a/src/save.c +++ b/src/save.c @@ -38,9 +38,6 @@ u32 DataRead(u32 address, void* data, u32 size); u32 DataWrite(u32 address, const void* data, u32 size); u32 DataCompare(u32 address, const void* data, u32 size); -const u16 gUnk_0811E454[] = { 0x0, 0x0, 0x100, 0x200, 0x300, 0x400, 0x500, - 0x5C0, 0x680, 0x740, 0x800, 0x8C0, 0x9C0, 0xA80 }; - const char gUnk_0811E470[4] = "LINK"; #if defined(DEMO_USA) || defined(DEMO_JP) @@ -92,7 +89,7 @@ const SaveFileEEPROMAddresses gSaveFileEEPROMAddresses[] = { { 0x500, 0x30, 0x10 { 0x8, 0xfa0, 0x1fa0, 0xfa0, 0x1fa0 } }; #endif void sub_0807CD9C() { - sub_080530C8(); + UpdateGlobalProgress(); } SaveResult HandleSave(u32 arg0) { diff --git a/src/script.c b/src/script.c index 3cb3aac1..34da5deb 100644 --- a/src/script.c +++ b/src/script.c @@ -36,7 +36,7 @@ void ScriptCommand_TestBit(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckInventory1(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckInventory2(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckLocalFlag(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_CheckLocalFlagByOffset(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckLocalFlagByBank(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckGlobalFlag(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckRoomFlag(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckPlayerInRegion(Entity* entity, ScriptExecutionContext* context); @@ -61,7 +61,7 @@ void ScriptCommand_ComparePlayerAnimationState(Entity* entity, ScriptExecutionCo void ScriptCommand_0807E5F8(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E610(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetLocalFlag(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_SetLocalFlagByOffset(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetLocalFlagByBank(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_ClearLocalFlag(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetGlobalFlag(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_ClearGlobalFlag(Entity* entity, ScriptExecutionContext* context); @@ -182,7 +182,7 @@ const ScriptCommand gScriptCommands[] = { ScriptCommandNop, ScriptCommand_CheckInventory2, ScriptCommand_HasRoomItemForSale, ScriptCommand_CheckLocalFlag, - ScriptCommand_CheckLocalFlagByOffset, + ScriptCommand_CheckLocalFlagByBank, ScriptCommand_CheckGlobalFlag, ScriptCommand_CheckRoomFlag, ScriptCommand_CheckPlayerInRegion, @@ -206,7 +206,7 @@ const ScriptCommand gScriptCommands[] = { ScriptCommandNop, ScriptCommand_0807E5F8, ScriptCommand_0807E610, ScriptCommand_SetLocalFlag, - ScriptCommand_SetLocalFlagByOffset, + ScriptCommand_SetLocalFlagByBank, ScriptCommand_ClearLocalFlag, ScriptCommand_SetGlobalFlag, ScriptCommand_ClearGlobalFlag, @@ -757,9 +757,9 @@ void ScriptCommand_CheckLocalFlag(Entity* entity, ScriptExecutionContext* contex gActiveScriptInfo.flags |= 1; } -void ScriptCommand_CheckLocalFlagByOffset(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_CheckLocalFlagByBank(Entity* entity, ScriptExecutionContext* context) { context->condition = - CheckLocalFlagByOffset(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]); + CheckLocalFlagByBank(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]); gActiveScriptInfo.flags |= 1; } @@ -806,7 +806,7 @@ void ScriptCommand_CheckEntityInteractType(Entity* entity, ScriptExecutionContex } void ScriptCommand_0807E30C(Entity* entity, ScriptExecutionContext* context) { - if ((context->unk_1A & 0xF) == 0 && (gPlayerState.flags & PL_IS_MINISH) == 0 && + if ((context->unk_1A & 0xF) == 0 && (gPlayerState.flags & PL_MINISH) == 0 && sub_080041A0(entity, &gPlayerEntity, 0x28, 0x28)) { entity->animationState = sub_0806F5B0(GetFacingDirection(entity, &gPlayerEntity)); } @@ -926,8 +926,8 @@ void ScriptCommand_SetLocalFlag(Entity* entity, ScriptExecutionContext* context) SetLocalFlag(context->scriptInstructionPointer[1]); } -void ScriptCommand_SetLocalFlagByOffset(Entity* entity, ScriptExecutionContext* context) { - SetLocalFlagByOffset(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]); +void ScriptCommand_SetLocalFlagByBank(Entity* entity, ScriptExecutionContext* context) { + SetLocalFlagByBank(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]); } void ScriptCommand_ClearLocalFlag(Entity* entity, ScriptExecutionContext* context) { @@ -1535,7 +1535,7 @@ extern u8 gUnk_0811E758[]; extern u8 gUnk_0811E760[]; void sub_0807F0D8(Entity* entity, ScriptExecutionContext* context) { - context->condition = (-(u32)gInput.newKeys | ((u32)gInput.newKeys)) >> 0x1f; + context->condition = !!gInput.newKeys; } void sub_0807F0EC(Entity* entity, ScriptExecutionContext* context) { @@ -1672,15 +1672,15 @@ void sub_0807F338(Entity* entity, ScriptExecutionContext* context) { } void sub_0807F348(Entity* entity, ScriptExecutionContext* context) { - sub_0805E3A0(entity, 2); + SetDefaultPriority(entity, 2); } void sub_0807F354(Entity* entity, ScriptExecutionContext* context) { - sub_0805E3A0(entity, 6); + SetDefaultPriority(entity, 6); } void sub_0807F360(Entity* entity, ScriptExecutionContext* context) { - sub_0805E3A0(entity, 3); + SetDefaultPriority(entity, 3); } void sub_0807F36C(Entity* entity, ScriptExecutionContext* context) { @@ -2087,11 +2087,11 @@ void sub_0807FADC(Entity* entity, ScriptExecutionContext* context) { void sub_0807FB28(Entity* entity, ScriptExecutionContext* context) { if (!context->unk_18) - sub_0801D7BC(0x7fff, 1); + SetFillColor(0x7fff, 1); context->unk_18++; if (context->unk_18 >= context->intVariable) - sub_0801D7BC(0, 0); + SetFillColor(0, 0); else gActiveScriptInfo.commandSize = 0; } @@ -2119,11 +2119,11 @@ void sub_0807FBB4(Entity* entity, ScriptExecutionContext* context) { } void sub_0807FBC4(Entity* entity, ScriptExecutionContext* context) { - sub_0805E4A0(entity); + RequestPriorityOverPlayer(entity); } void sub_0807FBCC(Entity* entity, ScriptExecutionContext* context) { - sub_0805E4CC(entity); + RevokePriorityOverPlayer(entity); } void sub_0807FBD4(Entity* entity, ScriptExecutionContext* context) { diff --git a/src/sub_0807CA18.c b/src/sub_0807CA18.c index 7dd5603a..3e99e52b 100644 --- a/src/sub_0807CA18.c +++ b/src/sub_0807CA18.c @@ -7,19 +7,19 @@ u8 sub_0807CA18() { if (gSave.unk_00 != 0x00 || gSave.unk_01 != 1) { gSave.unk_00 = 0; gSave.unk_01 = 1; - gSave.unk8 = 1; - gSave.stats.health = 0x18; - gSave.stats.maxHealth = 0x18; - gSave.unk_88 = 0x22; - gSave.unk_89 = 0x15; - gSave.unk_8A = 0; - gSave.unk_8B = 0; - gSave.unk_8F = 1; - gSave.unk_8C = 0x90; - gSave.unk_8E = 0x38; + gSave.global_progress = 1; + gSave.stats.health = 24; + gSave.stats.maxHealth = 24; + gSave.saved_status.area_next = 0x22; + gSave.saved_status.room_next = 0x15; // links room + gSave.saved_status.start_anim = 0; + gSave.saved_status.spawn_type = 0; + gSave.saved_status.layer = 1; + gSave.saved_status.start_pos.HALF.x = 0x90; + gSave.saved_status.start_pos.HALF.y = 0x38; } - if (gSave.playerName[0] == 0) { - MemCopy(gUnk_0811E470, &gSave.playerName, 5); + if (gSave.playerName[0] == '\0') { + MemCopy(gUnk_0811E470, &gSave.playerName, FILENAME_LENGTH - 1); } #ifdef DEMO_USA { @@ -34,7 +34,7 @@ u8 sub_0807CA18() { ModHealth(0xA0); ModRupees(-9999); tmp = demoUnknown1 + gUnk_02000010.field_0x7 * 3; - gSave.unk_4a8 = tmp[gSaveHeader->saveFileId] * 3600; + gSave.unk48C[7] = tmp[gSaveHeader->saveFileId] * 3600; } #endif return 1; diff --git a/src/sub_080A3B84.c b/src/sub_080A3B84.c index d3bf3363..e796dff0 100644 --- a/src/sub_080A3B84.c +++ b/src/sub_080A3B84.c @@ -8,7 +8,7 @@ extern void (*const gUnk_081280C4[])(); void DrawKinstoneMenu(void) { #if !(defined(DEMO_USA) || defined(DEMO_JP)) - gScreenTransition.field_0x24[8] = 2; + gScreenTransition.player_status.field_0x24[8] = 2; FlushSprites(); gUnk_081280C4[gMenu.menuType](); sub_080A3B74(); @@ -18,7 +18,7 @@ void DrawKinstoneMenu(void) { UpdateEntities(); sub_080AD9B0(); sub_080AD918(); - gScreenTransition.field_0x24[8] = 0; + gScreenTransition.player_status.field_0x24[8] = 0; #endif } diff --git a/src/utils.c b/src/utils.c index 76feb455..feb31265 100644 --- a/src/utils.c +++ b/src/utils.c @@ -40,7 +40,8 @@ void MemFill32(u32 value, void* dest, u32 size) { void MemClear(void* dest, u32 size) { u32 zero = 0; - switch (((u32)dest | size) & 3) { + // alignment check + switch (((intptr_t)dest | size) % 4) { case 0: MemFill32(0, dest, size); break; @@ -57,7 +58,7 @@ void MemClear(void* dest, u32 size) { } void MemCopy(const void* src, void* dest, u32 size) { - switch (((u32)src | (u32)dest | size) & 3) { + switch (((intptr_t)src | (intptr_t)dest | size) % 4) { case 0: DmaCopy32(3, src, dest, size); break; @@ -90,7 +91,7 @@ static void StoreKeyInput(Input* input, u32 keyInput) { input->unk4 = 0; } } else { - input->unk7 = 0x14; + input->unk7 = 20; input->unk4 = difference; } input->heldKeys = keyInput; @@ -124,18 +125,18 @@ void LoadPalettes(const u8* src, int destPaletteNum, int numPalettes) { DmaCopy32(3, src, dest, size); } -void sub_0801D79C(u32 colorIndex, u32 color) { +void SetColor(u32 colorIndex, u32 color) { gPaletteBuffer[colorIndex] = color; gUsedPalettes |= 1 << (colorIndex / 16); } -void sub_0801D7BC(u32 color, u32 arg1) { - if (arg1) { - gScreen.lcd.unk6 = 0xE0FF; +void SetFillColor(u32 color, u32 disable_layers) { + if (disable_layers) { + gScreen.lcd.displayControlMask = ~(DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON); } else { - gScreen.lcd.unk6 = 0xFFFF; + gScreen.lcd.displayControlMask = ~0; } - sub_0801D79C(0, color); + SetColor(0, color); } void LoadGfxGroup(u32 group) { From 2580b33a20fa15b4ee66ab1c17700888a826ea65 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Mon, 13 Dec 2021 21:53:29 +0100 Subject: [PATCH 012/168] Decompile OctorokBoss --- asm/cloudPiranha.s | 4 +- asm/code_080011C4.s | 4 +- asm/code_0801CEC0.s | 4 +- asm/code_08054C04.s | 2 +- asm/code_08078778.s | 2 +- asm/figurineDevice.s | 2 +- asm/furniture.s | 4 +- asm/giantTwig.s | 4 +- asm/gleerok.s | 4 +- asm/macroDecorations.s | 6 +- asm/macroPlayer.s | 4 +- .../octorokBoss/OctorokBoss_Init.inc | 331 ++ asm/non_matching/octorokBoss/sub_08036998.inc | 33 + asm/non_matching/octorokBoss/sub_080369D0.inc | 149 + asm/non_matching/octorokBoss/sub_08036AF0.inc | 210 + .../OctorokBossObject_Action1.inc} | 507 +- .../playerItemSword/sub_080A758C.inc | 2 +- asm/object1E.s | 2 +- asm/object21.s | 4 +- asm/object29.s | 4 +- asm/object3E.s | 4 +- asm/object6A.s | 20 +- asm/object91.s | 12 +- asm/object96.s | 2 +- asm/objectB3.s | 2 +- asm/objectB4.s | 4 +- asm/objectOnSpinyBeetle.s | 6 +- asm/octorokBoss.s | 4789 ----------------- asm/pullableMushroom.s | 2 +- asm/whirlwind.s | 2 +- data/const/enemy/octorokBoss.s | 111 - data/const/object/object87.s | 19 - include/coord.h | 2 +- include/functions.h | 8 +- include/object.h | 4 +- include/projectile.h | 44 + include/room.h | 2 +- linker.ld | 8 +- src/coord.c | 2 +- src/enemy/madderpillar.c | 14 +- src/enemy/mazaalBracelet.c | 2 +- src/enemy/moldworm.c | 4 +- src/enemy/octorokBoss.c | 1568 ++++++ src/enemy/puffstool.c | 10 +- src/enemy/treeItem.c | 4 +- src/enemy/vaatiTransfiguredEye.c | 26 +- src/enemy/vaatiWrath.c | 14 +- src/manager/manager23.c | 8 +- src/manager/manager37.c | 2 - src/manager/managerF.c | 14 +- src/npc/bladeBrothers.c | 2 +- src/npc/castorWildsStatue.c | 2 +- src/npc/drLeft.c | 2 +- src/npc/gregal.c | 18 +- src/npc/pina.c | 2 - src/npc/pita.c | 4 +- src/npc/rem.c | 2 +- src/npc/stockwell.c | 3 - src/npc/vaatiReborn.c | 2 +- src/object.c | 2 +- src/object/bird.c | 2 +- src/object/fileScreenObjects.c | 4 +- src/object/lockedDoor.c | 4 +- src/object/object49.c | 4 +- src/object/objectA2.c | 2 +- src/object/octorokBossObject.c | 405 ++ src/overworld.c | 16 +- src/playerItem/playerItemSwordBeam.c | 2 +- src/projectile/mandiblesProjectile.c | 2 +- src/projectile/octorokBossProjectile.c | 10 +- src/projectile/v1DarkMagicProjectile.c | 2 +- src/projectile/v2Projectile.c | 2 +- src/room.c | 4 +- src/script.c | 4 +- 74 files changed, 2906 insertions(+), 5587 deletions(-) create mode 100644 asm/non_matching/octorokBoss/OctorokBoss_Init.inc create mode 100644 asm/non_matching/octorokBoss/sub_08036998.inc create mode 100644 asm/non_matching/octorokBoss/sub_080369D0.inc create mode 100644 asm/non_matching/octorokBoss/sub_08036AF0.inc rename asm/{object87.s => non_matching/octorokBossObject/OctorokBossObject_Action1.inc} (53%) delete mode 100644 asm/octorokBoss.s delete mode 100644 data/const/enemy/octorokBoss.s delete mode 100644 data/const/object/object87.s create mode 100644 include/projectile.h create mode 100644 src/enemy/octorokBoss.c create mode 100644 src/object/octorokBossObject.c diff --git a/asm/cloudPiranha.s b/asm/cloudPiranha.s index 9dd83b3c..b5829666 100644 --- a/asm/cloudPiranha.s +++ b/asm/cloudPiranha.s @@ -383,7 +383,7 @@ sub_080386B8: @ 0x080386B8 bl EnqueueSFX adds r0, r4, #0 movs r1, #0x70 - bl sub_0801D2B4 + bl ChangeObjPalette ldrb r1, [r4, #0x15] lsrs r1, r1, #2 adds r0, r4, #0 @@ -470,7 +470,7 @@ sub_08038754: @ 0x08038754 bl EnqueueSFX adds r0, r4, #0 movs r1, #0x71 - bl sub_0801D2B4 + bl ChangeObjPalette ldrb r2, [r4, #0x15] movs r0, #0xf ands r0, r2 diff --git a/asm/code_080011C4.s b/asm/code_080011C4.s index 4a8cd46a..a08f6287 100644 --- a/asm/code_080011C4.s +++ b/asm/code_080011C4.s @@ -1443,8 +1443,8 @@ _080028EE: _080028F2: bx lr - thumb_func_start sub_080028F4 -sub_080028F4: @ 0x080028F4 + thumb_func_start GetRandomByWeight +GetRandomByWeight: @ 0x080028F4 push {r4, lr} adds r4, r0, #0 bl Random diff --git a/asm/code_0801CEC0.s b/asm/code_0801CEC0.s index cd2bb1f4..e7fbc193 100644 --- a/asm/code_0801CEC0.s +++ b/asm/code_0801CEC0.s @@ -433,8 +433,8 @@ _0801D2AE: .align 2, 0 _0801D2B0: .4byte gPaletteList - thumb_func_start sub_0801D2B4 -sub_0801D2B4: @ 0x0801D2B4 + thumb_func_start ChangeObjPalette +ChangeObjPalette: @ 0x0801D2B4 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 diff --git a/asm/code_08054C04.s b/asm/code_08054C04.s index c10cd693..8cf1ccc5 100644 --- a/asm/code_08054C04.s +++ b/asm/code_08054C04.s @@ -446,7 +446,7 @@ sub_08054EFC: @ 0x08054EFC subs r0, #0x10 strh r0, [r1, #0x32] adds r0, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow _08054F54: movs r0, #0xfd bl SoundReq diff --git a/asm/code_08078778.s b/asm/code_08078778.s index c1242ad4..52fad31a 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -3204,7 +3204,7 @@ _0807A06A: beq _0807A084 strb r1, [r0] ldr r0, _0807A090 @ =gPlayerEntity - bl sub_0801D2B4 + bl ChangeObjPalette _0807A084: pop {pc} .align 2, 0 diff --git a/asm/figurineDevice.s b/asm/figurineDevice.s index fa20a78c..988d7aac 100644 --- a/asm/figurineDevice.s +++ b/asm/figurineDevice.s @@ -311,7 +311,7 @@ sub_08087DBC: @ 0x08087DBC adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 - bl sub_0801D2B4 + bl ChangeObjPalette adds r0, r4, #0 movs r1, #2 bl InitializeAnimation diff --git a/asm/furniture.s b/asm/furniture.s index 88a5b769..9b2cf28d 100644 --- a/asm/furniture.s +++ b/asm/furniture.s @@ -242,7 +242,7 @@ _0809075C: bne _080907C8 adds r0, r7, #0 movs r1, #0x7e - bl sub_0801D2B4 + bl ChangeObjPalette b _080907C8 .align 2, 0 _08090778: .4byte gRoomControls @@ -1062,7 +1062,7 @@ sub_08090E4C: @ 0x08090E4C lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] - bl sub_0801D2B4 + bl ChangeObjPalette pop {pc} .align 2, 0 _08090E60: .4byte gUnk_08122244 diff --git a/asm/giantTwig.s b/asm/giantTwig.s index c4ddf8e7..18e680b7 100644 --- a/asm/giantTwig.s +++ b/asm/giantTwig.s @@ -295,7 +295,7 @@ _0809396C: bl sub_08093984 adds r0, r5, #0 movs r1, #0x7b - bl sub_0801D2B4 + bl ChangeObjPalette pop {r4, r5, r6, pc} .align 2, 0 _0809397C: .4byte gRoomControls @@ -377,7 +377,7 @@ sub_080939C0: @ 0x080939C0 bl sub_08093A1C adds r0, r4, #0 movs r1, #0x7a - bl sub_0801D2B4 + bl ChangeObjPalette pop {r4, r5, pc} .align 2, 0 _08093A14: .4byte gRoomControls diff --git a/asm/gleerok.s b/asm/gleerok.s index db1ba73b..a5cc71d5 100644 --- a/asm/gleerok.s +++ b/asm/gleerok.s @@ -3749,7 +3749,7 @@ sub_0802EB9C: @ 0x0802EB9C push {r4, lr} adds r4, r0, #0 ldr r0, _0802EBBC @ =gUnk_080CD850 - bl sub_080028F4 + bl GetRandomByWeight ldr r1, _0802EBC0 @ =gUnk_080CD854 adds r0, r0, r1 ldrb r1, [r0] @@ -3782,7 +3782,7 @@ sub_0802EBC4: @ 0x0802EBC4 lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] - bl sub_080028F4 + bl GetRandomByWeight ldr r2, _0802EC1C @ =gUnk_080CD878 ldrb r1, [r5] lsls r1, r1, #2 diff --git a/asm/macroDecorations.s b/asm/macroDecorations.s index 0d6cd142..562923e6 100644 --- a/asm/macroDecorations.s +++ b/asm/macroDecorations.s @@ -64,7 +64,7 @@ _08097E1C: adds r1, r0, #0 adds r1, #0xb adds r0, r4, #0 - bl sub_0801D2B4 + bl ChangeObjPalette b _08097EA2 _08097E46: ldrb r0, [r4, #0xb] @@ -83,7 +83,7 @@ _08097E5C: bne _08097E9C adds r0, r4, #0 movs r1, #0xd - bl sub_0801D2B4 + bl ChangeObjPalette _08097E68: ldrb r0, [r4, #0x1b] movs r1, #0x3f @@ -110,7 +110,7 @@ _08097E76: strb r0, [r2] adds r0, r4, #0 movs r1, #0xb - bl sub_0801D2B4 + bl ChangeObjPalette _08097E9C: adds r0, r4, #0 bl sub_08097F34 diff --git a/asm/macroPlayer.s b/asm/macroPlayer.s index c7c6bf90..26025e39 100644 --- a/asm/macroPlayer.s +++ b/asm/macroPlayer.s @@ -90,7 +90,7 @@ _0808CB70: movs r5, #0 str r5, [r4, #0x34] adds r1, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow ldrb r0, [r4, #0xd] cmp r0, #0 beq _0808CB98 @@ -212,7 +212,7 @@ sub_0808CBE8: @ 0x0808CBE8 bl sub_0807A094 adds r1, r0, #0 adds r0, r4, #0 - bl sub_0801D2B4 + bl ChangeObjPalette movs r0, #0x3c movs r1, #1 movs r2, #0 diff --git a/asm/non_matching/octorokBoss/OctorokBoss_Init.inc b/asm/non_matching/octorokBoss/OctorokBoss_Init.inc new file mode 100644 index 00000000..f9d23b7e --- /dev/null +++ b/asm/non_matching/octorokBoss/OctorokBoss_Init.inc @@ -0,0 +1,331 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + cmp r0, #6 + bls _0803573A + b _08035974 +_0803573A: + lsls r0, r0, #2 + ldr r1, _08035744 @ =_08035748 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08035744: .4byte _08035748 +_08035748: @ jump table + .4byte _08035764 @ case 0 + .4byte _080358D8 @ case 1 + .4byte _080358D8 @ case 2 + .4byte _080358D8 @ case 3 + .4byte _080358D8 @ case 4 + .4byte _08035920 @ case 5 + .4byte _08035940 @ case 6 +_08035764: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x7c + movs r5, #0 + strb r5, [r0] + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x30 + bl zMalloc + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x84 + str r2, [r0] + mov r8, r0 + cmp r2, #0 + bne _0803579E + adds r0, r4, #0 + bl sub_0804A7D4 + b _080359A6 +_0803579E: + str r2, [r4, #0x64] + mov r1, r8 + ldr r0, [r1] + strb r5, [r0, #6] + ldr r1, [r1] + movs r0, #2 + strb r0, [r1] + mov r2, r8 + ldr r0, [r2] + strb r5, [r0, #2] + ldr r1, [r2] + movs r0, #5 + strb r0, [r1, #1] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x6d + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r0, #6 + strh r5, [r0] + movs r5, #0 + movs r0, #0x79 + adds r0, r0, r4 + mov sb, r0 + mov r7, r8 +_080357E6: + adds r6, r5, #1 + movs r0, #0x39 + adds r1, r6, #0 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08035816 + adds r0, r4, #0 + bl CopyPosition + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r7] + lsls r0, r5, #2 + adds r1, #0x20 + adds r1, r1, r0 + ldr r0, [r4, #0x54] + str r0, [r1] +_08035816: + adds r5, r6, #0 + cmp r5, #3 + bls _080357E6 + movs r0, #0x39 + movs r1, #5 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08035840 + adds r0, r4, #0 + bl CopyPosition + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + mov r2, r8 + ldr r1, [r2] + str r1, [r0] +_08035840: + movs r0, #0x39 + movs r1, #6 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0803586A + adds r0, r4, #0 + bl CopyPosition + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + mov r2, r8 + ldr r1, [r2] + str r1, [r0] + ldr r1, [r2] + ldr r0, [r4, #0x54] + str r0, [r1, #0xc] +_0803586A: + movs r5, #0 + mov r7, r8 +_0803586E: + movs r0, #0x39 + movs r1, #7 + bl CreateEnemy + str r0, [r4, #0x54] + adds r6, r5, #1 + cmp r0, #0 + beq _080358A0 + strb r5, [r0, #0xb] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl CopyPosition + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r7] + lsls r0, r6, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r0, [r4, #0x54] + str r0, [r1] +_080358A0: + adds r5, r6, #0 + cmp r5, #3 + bls _0803586E + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x3c + mov r1, sb + strb r0, [r1] + ldr r1, _080358D0 @ =gPlayerEntity + ldrb r2, [r1, #0x18] + subs r0, #0x40 + ands r0, r2 + strb r0, [r1, #0x18] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + subs r0, #0xa0 + strh r0, [r1, #0x32] + ldr r0, _080358D4 @ =gRoomControls + str r4, [r0, #0x30] + b _08035974 + .align 2, 0 +_080358D0: .4byte gPlayerEntity +_080358D4: .4byte gRoomControls +_080358D8: + movs r1, #0 + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] + ldrb r1, [r4, #0xa] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _080358F4 + strb r2, [r4, #0xf] + b _080358F8 +_080358F4: + movs r0, #0xfe + strb r0, [r4, #0xf] +_080358F8: + adds r0, r4, #0 + adds r0, #0x74 + movs r2, #0x80 + lsls r2, r2, #1 + strh r2, [r0] + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08035918 + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r1] + b _08035974 +_08035918: + adds r0, r4, #0 + adds r0, #0x76 + strh r2, [r0] + b _08035974 +_08035920: + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x1c + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + str r4, [r0, #8] + b _08035974 +_08035940: + adds r0, r4, #0 + adds r0, #0x76 + movs r2, #0 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x79 + strb r2, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x80 + strb r0, [r1] +_08035974: + ldrb r0, [r4, #0xa] + cmp r0, #6 + beq _08035990 + ldr r0, _0803598C @ =gUnk_080CF08C + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl InitializeAnimation + b _080359A0 + .align 2, 0 +_0803598C: .4byte gUnk_080CF08C +_08035990: + ldr r0, _080359B0 @ =gUnk_080CF08C + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl InitAnimationForceUpdate +_080359A0: + adds r0, r4, #0 + bl OctorokBoss_Action1 +_080359A6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080359B0: .4byte gUnk_080CF08C + .syntax divided diff --git a/asm/non_matching/octorokBoss/sub_08036998.inc b/asm/non_matching/octorokBoss/sub_08036998.inc new file mode 100644 index 00000000..c718c47d --- /dev/null +++ b/asm/non_matching/octorokBoss/sub_08036998.inc @@ -0,0 +1,33 @@ + .syntax unified + push {r4, lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x79 + ldrb r0, [r2, #0xf] + ldrb r4, [r3] + adds r1, r0, r4 + strb r1, [r3] + ldrb r4, [r2, #0xf] + movs r0, #0xf + ldrsb r0, [r2, r0] + cmp r0, #0 + bge _080369BE + ldrb r0, [r2, #0xe] + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + cmn r1, r0 + bge _080369CC + b _080369C8 +_080369BE: + movs r0, #0 + ldrsb r0, [r3, r0] + ldrb r1, [r2, #0xe] + cmp r0, r1 + ble _080369CC +_080369C8: + rsbs r0, r4, #0 + strb r0, [r2, #0xf] +_080369CC: + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/octorokBoss/sub_080369D0.inc b/asm/non_matching/octorokBoss/sub_080369D0.inc new file mode 100644 index 00000000..13584527 --- /dev/null +++ b/asm/non_matching/octorokBoss/sub_080369D0.inc @@ -0,0 +1,149 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov ip, r1 + adds r6, r2, #0 + adds r1, r0, #0 + adds r1, #0x84 + ldr r4, [r1] + ldr r2, [r4, #0xc] + ldrb r1, [r4, #1] + subs r1, #1 + lsls r1, r1, #2 + adds r3, r4, #0 + adds r3, #0xc + adds r1, r3, r1 + ldr r1, [r1] + adds r1, #0x7b + adds r0, #0x79 + ldrb r0, [r0] + ldrb r1, [r1] + adds r0, r0, r1 + adds r2, #0x7b + strb r0, [r2] + ldrb r0, [r4, #1] + movs r2, #0 + cmp r0, #1 + beq _08036A58 + adds r5, r3, #0 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + rsbs r0, r6, #0 + lsls r0, r0, #0x18 + asrs r7, r0, #0x18 +_08036A16: + lsls r0, r2, #2 + adds r0, r5, r0 + ldr r1, [r0] + adds r1, #0x7b + adds r2, #1 + lsls r0, r2, #2 + adds r0, r5, r0 + ldr r0, [r0] + adds r3, r0, #0 + adds r3, #0x7b + ldrb r1, [r1] + ldrb r0, [r3] + cmp r1, r0 + beq _08036A4C + subs r0, r0, r1 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08036A44 + cmp r0, r8 + ble _08036A4C + adds r0, r1, r6 + b _08036A4A +_08036A44: + cmp r0, r7 + bge _08036A4C + subs r0, r1, r6 +_08036A4A: + strb r0, [r3] +_08036A4C: + ldrb r0, [r4, #1] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r2, r0 + blo _08036A16 +_08036A58: + ldrb r0, [r4, #1] + subs r2, r0, #1 + cmp r2, #0 + beq _08036AE4 + ldr r0, _08036AEC @ =gSineTable + mov sb, r0 + movs r1, #0x80 + mov r8, r1 + mov r1, ip + lsls r0, r1, #0x14 + asrs r6, r0, #0x10 + lsls r0, r2, #2 + adds r0, #8 + adds r5, r0, r4 + movs r7, #0x80 + lsls r7, r7, #1 +_08036A78: + subs r4, r2, #1 + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + mov r1, r8 + eors r0, r1 + lsls r0, r0, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r6, #0 + bl FixedMul + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl FixedDiv + ldr r2, [r5] + ldr r1, [r5, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + mov r1, r8 + eors r0, r1 + adds r0, #0x40 + lsls r0, r0, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r6, #0 + bl FixedMul + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl FixedDiv + ldr r2, [r5] + ldr r1, [r5, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x30] + subs r1, r1, r0 + str r1, [r2, #0x30] + subs r5, #4 + adds r2, r4, #0 + cmp r2, #0 + bne _08036A78 +_08036AE4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08036AEC: .4byte gSineTable + .syntax divided diff --git a/asm/non_matching/octorokBoss/sub_08036AF0.inc b/asm/non_matching/octorokBoss/sub_08036AF0.inc new file mode 100644 index 00000000..c8749e0f --- /dev/null +++ b/asm/non_matching/octorokBoss/sub_08036AF0.inc @@ -0,0 +1,210 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + str r1, [sp] + mov r8, r2 + adds r0, #0x84 + ldr r0, [r0] + str r0, [sp, #4] + ldrb r0, [r0, #1] + subs r4, r0, #1 + cmp r4, #0 + bne _08036B10 + b _08036C80 +_08036B10: + ldr r0, [sp, #4] + adds r0, #0xc + str r0, [sp, #8] + lsls r0, r1, #0x14 + asrs r0, r0, #0x10 + mov sl, r0 +_08036B1C: + mov r1, r8 + cmp r1, #0 + bne _08036BC0 + lsls r0, r4, #2 + ldr r2, [sp, #8] + adds r6, r2, r0 + ldr r0, [r6] + subs r4, #1 + lsls r1, r4, #2 + adds r5, r2, r1 + ldr r2, [r5] + movs r3, #0x2e + ldrsh r1, [r2, r3] + movs r3, #0x32 + ldrsh r2, [r2, r3] + bl sub_080041DC + mov sb, r4 + ldr r1, [sp] + cmp r1, r0 + blo _08036B48 + b _08036C78 +_08036B48: + ldr r2, [r5] + ldr r3, [r6] + ldr r0, [r2, #0x2c] + ldr r1, [r3, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r3, #0x30] + subs r1, r1, r2 + bl sub_080045DA + ldr r1, [r5] + adds r1, #0x7b + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + lsls r0, r0, #1 + ldr r2, _08036BBC @ =gSineTable + adds r0, r0, r2 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r1, sl + bl FixedMul + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl FixedDiv + ldr r2, [r5] + ldr r1, [r6] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x40 + lsls r0, r0, #1 + ldr r1, _08036BBC @ =gSineTable + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + mov r1, sl + bl FixedMul + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl FixedDiv + ldr r2, [r5] + ldr r1, [r6] + b _08036C6E + .align 2, 0 +_08036BBC: .4byte gSineTable +_08036BC0: + subs r2, r4, #1 + lsls r0, r2, #2 + ldr r3, [sp, #8] + adds r0, r3, r0 + ldr r0, [r0] + adds r5, r0, #0 + adds r5, #0x7b + lsls r1, r4, #2 + adds r0, r3, r1 + ldr r0, [r0] + adds r0, #0x7b + ldrb r4, [r5] + ldrb r3, [r0] + adds r7, r1, #0 + ldr r6, [sp, #4] + adds r6, #0xc + mov sb, r2 + cmp r4, r3 + beq _08036C0E + subs r0, r3, r4 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + ble _08036BFE + mov r2, r8 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + ble _08036C0E + subs r0, r3, r2 + b _08036C0C +_08036BFE: + mov r2, r8 + rsbs r0, r2, #0 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r1, r0 + bge _08036C0E + adds r0, r3, r2 +_08036C0C: + strb r0, [r5] +_08036C0E: + mov r3, sb + lsls r4, r3, #2 + adds r4, r6, r4 + ldr r0, [r4] + adds r0, #0x7b + ldrb r0, [r0] + lsls r0, r0, #1 + ldr r1, _08036C8C @ =gSineTable + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + mov r1, sl + bl FixedMul + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl FixedDiv + ldr r2, [r4] + adds r5, r6, r7 + ldr r1, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldr r0, [r4] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x40 + lsls r0, r0, #1 + ldr r3, _08036C8C @ =gSineTable + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + mov r1, sl + bl FixedMul + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl FixedDiv + ldr r2, [r4] + ldr r1, [r5] +_08036C6E: + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x30] + subs r1, r1, r0 + str r1, [r2, #0x30] +_08036C78: + mov r4, sb + cmp r4, #0 + beq _08036C80 + b _08036B1C +_08036C80: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08036C8C: .4byte gSineTable + .syntax divided diff --git a/asm/object87.s b/asm/non_matching/octorokBossObject/OctorokBossObject_Action1.inc similarity index 53% rename from asm/object87.s rename to asm/non_matching/octorokBossObject/OctorokBossObject_Action1.inc index 2af555eb..a4dc209d 100644 --- a/asm/object87.s +++ b/asm/non_matching/octorokBossObject/OctorokBossObject_Action1.inc @@ -1,353 +1,4 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - .syntax unified - - .text - - - thumb_func_start Object87 -Object87: @ 0x08099EFC - push {lr} - ldr r2, _08099F10 @ =gUnk_08123840 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08099F10: .4byte gUnk_08123840 - - thumb_func_start sub_08099F14 -sub_08099F14: @ 0x08099F14 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - ldrb r0, [r5, #0xa] - cmp r0, #9 - bls _08099F2A - b _0809A1B6 -_08099F2A: - lsls r0, r0, #2 - ldr r1, _08099F34 @ =_08099F38 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08099F34: .4byte _08099F38 -_08099F38: @ jump table - .4byte _08099F60 @ case 0 - .4byte _08099F70 @ case 1 - .4byte _08099F82 @ case 2 - .4byte _0809A00C @ case 3 - .4byte _0809A0AA @ case 4 - .4byte _0809A0B0 @ case 5 - .4byte _0809A058 @ case 6 - .4byte _0809A11C @ case 7 - .4byte _0809A132 @ case 8 - .4byte _0809A1B0 @ case 9 -_08099F60: - adds r2, r5, #0 - adds r2, #0x79 - movs r0, #0 - movs r1, #0x96 - strb r1, [r2] - strb r0, [r5, #0xe] - movs r0, #0x1e - strb r0, [r5, #0xf] -_08099F70: - adds r0, r5, #0 - movs r1, #0 - bl InitializeAnimation - movs r0, #0x92 - lsls r0, r0, #1 - bl EnqueueSFX - b _0809A1B6 -_08099F82: - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - adds r0, #0x80 - rsbs r0, r0, #0 - strb r0, [r5, #0x15] - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08099FCE - bl Random - adds r1, r0, #0 - movs r0, #3 - ands r1, r0 - cmp r1, #1 - beq _08099FBC - cmp r1, #1 - blo _08099FB6 - cmp r1, #2 - beq _08099FC2 - cmp r1, #3 - beq _08099FC8 - b _08099FCE -_08099FB6: - ldrb r0, [r5, #0x15] - subs r0, #0x10 - b _08099FCC -_08099FBC: - ldrb r0, [r5, #0x15] - adds r0, #0x10 - b _08099FCC -_08099FC2: - ldrb r0, [r5, #0x15] - subs r0, #8 - b _08099FCC -_08099FC8: - ldrb r0, [r5, #0x15] - adds r0, #8 -_08099FCC: - strb r0, [r5, #0x15] -_08099FCE: - bl Random - movs r1, #0x3f - ands r0, r1 - movs r1, #0xf0 - subs r1, r1, r0 - strh r1, [r5, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - lsls r1, r1, #8 - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - ldrh r1, [r5, #0x24] - lsls r1, r1, #0x10 - asrs r1, r1, #0x11 - lsls r1, r1, #8 - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - adds r0, r5, #0 - movs r1, #5 - bl InitializeAnimation - movs r0, #0xa6 - lsls r0, r0, #1 - bl SoundReq - b _0809A1B6 -_0809A00C: - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - adds r0, #0x80 - rsbs r0, r0, #0 - strb r0, [r5, #0x15] - movs r1, #0x90 - lsls r1, r1, #7 - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0809A040 - bl Random - movs r1, #0x3f - ands r0, r1 - ldrb r1, [r5, #0x15] - adds r0, r0, r1 - strb r0, [r5, #0x15] - b _0809A04E -_0809A040: - bl Random - movs r1, #0x3f - ands r0, r1 - ldrb r1, [r5, #0x15] - subs r1, r1, r0 - strb r1, [r5, #0x15] -_0809A04E: - adds r0, r5, #0 - movs r1, #6 - bl InitializeAnimation - b _0809A1B6 -_0809A058: - bl Random - movs r1, #0x2f - ands r1, r0 - movs r4, #0x30 - subs r4, r4, r1 - lsls r4, r4, #8 - bl Random - movs r2, #0xff - ands r2, r0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806F62C - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0809A092 - bl Random - movs r1, #0x3f - ands r0, r1 - ldrb r1, [r5, #0x15] - adds r0, r0, r1 - strb r0, [r5, #0x15] - b _0809A0A0 -_0809A092: - bl Random - movs r1, #0x3f - ands r0, r1 - ldrb r1, [r5, #0x15] - subs r1, r1, r0 - strb r1, [r5, #0x15] -_0809A0A0: - adds r0, r5, #0 - movs r1, #5 - bl InitializeAnimation - b _0809A1B6 -_0809A0AA: - movs r0, #0xc3 - lsls r0, r0, #2 - b _0809A1B4 -_0809A0B0: - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #0x18 - str r0, [r5, #0x78] - adds r7, r5, #0 - adds r7, #0x76 - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r7] - adds r4, r5, #0 - adds r4, #0x74 - strh r0, [r4] - adds r6, r5, #0 - adds r6, #0x7a - strh r1, [r6] - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r1, [r0] - rsbs r1, r1, #0 - lsls r1, r1, #0x18 - ldr r3, _0809A118 @ =gUnk_0812388C - ldrb r2, [r5, #0xb] - lsls r0, r2, #1 - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r3 - lsrs r1, r1, #0x18 - ldrh r0, [r0] - adds r1, r1, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldrh r2, [r2] - adds r0, r5, #0 - bl sub_0806F62C - ldrh r1, [r7] - ldrh r2, [r4] - ldrh r3, [r6] - adds r0, r5, #0 - bl sub_0805EC9C - adds r0, r5, #0 - movs r1, #7 - bl InitializeAnimation - b _0809A1B6 - .align 2, 0 -_0809A118: .4byte gUnk_0812388C -_0809A11C: - movs r0, #0 - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #8 - bl InitializeAnimation - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl CopyPosition - b _0809A1B6 -_0809A132: - ldr r0, [r5, #0x50] - adds r0, #0x7c - ldrb r0, [r0] - movs r1, #0 - strb r0, [r5, #0xb] - movs r0, #4 - strb r0, [r5, #0xe] - strb r1, [r5, #0xf] - ldr r3, _0809A1A0 @ =gRoomControls - ldrh r0, [r5, #0x2e] - ldrh r1, [r3, #6] - subs r0, r0, r1 - movs r1, #0xf8 - lsls r1, r1, #1 - adds r2, r1, #0 - ands r0, r2 - movs r1, #0x82 - adds r1, r1, r5 - mov ip, r1 - strh r0, [r1] - ldrh r1, [r5, #0x32] - ldrh r0, [r3, #8] - subs r1, r1, r0 - ands r1, r2 - adds r3, r5, #0 - adds r3, #0x80 - strh r1, [r3] - adds r4, r5, #0 - adds r4, #0x84 - mov r0, ip - ldrh r2, [r0] - subs r2, #0x10 - asrs r2, r2, #4 - lsrs r1, r1, #4 - lsls r0, r1, #5 - subs r0, r0, r1 - adds r2, r2, r0 - str r2, [r4] - mov r1, ip - ldrh r0, [r1] - ldrh r1, [r3] - ldrb r3, [r5, #0xb] - bl sub_0809A6F8 - ldr r0, [r5, #0x50] - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0809A1A8 - ldr r0, _0809A1A4 @ =0x000001A3 - bl SoundReq - b _0809A1B6 - .align 2, 0 -_0809A1A0: .4byte gRoomControls -_0809A1A4: .4byte 0x000001A3 -_0809A1A8: - movs r0, #0xe8 - bl SoundReq - b _0809A1B6 -_0809A1B0: - movs r0, #0xf0 - lsls r0, r0, #1 -_0809A1B4: - str r0, [r5, #0x78] -_0809A1B6: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0809A1B8 -sub_0809A1B8: @ 0x0809A1B8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -588,7 +239,7 @@ _0809A394: cmp r1, r0 beq _0809A38E movs r0, #8 - bl sub_0805308C + bl ChangeLightLevel b _0809A632 .align 2, 0 _0809A3B0: .4byte gRoomVars @@ -925,158 +576,4 @@ _0809A632: .align 2, 0 _0809A640: .4byte gRoomControls _0809A644: .4byte gPlayerEntity - - thumb_func_start sub_0809A648 -sub_0809A648: @ 0x0809A648 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - bl GetNextFrame - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0809A6EC - ldr r4, [r7, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - movs r2, #0x24 - ldrsh r1, [r7, r2] - adds r5, r1, #0 - muls r5, r0, r5 - adds r4, #0x7b - ldrb r1, [r4] - ldrb r0, [r7, #0x15] - subs r0, r0, r1 - movs r1, #0x7b - adds r1, r1, r7 - mov r8, r1 - strb r0, [r1] - ldr r6, _0809A6E8 @ =gSineTable - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r6 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r5, r5, #8 - asrs r5, r5, #0x10 - adds r1, r5, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - bl FixedDiv - ldr r1, [r7, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r7, #0x2c] - mov r1, r8 - ldrb r0, [r1] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r6 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r1, r5, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r4, #0 - bl FixedDiv - ldr r1, [r7, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x30] - subs r1, r1, r0 - str r1, [r7, #0x30] - b _0809A6F0 - .align 2, 0 -_0809A6E8: .4byte gSineTable -_0809A6EC: - bl DeleteThisEntity -_0809A6F0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0809A6F8 -sub_0809A6F8: @ 0x0809A6F8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r7, r3, #0 - bl sub_0809A758 - cmp r0, #0 - beq _0809A754 - ldr r0, _0809A738 @ =gUnk_081238A0 - lsls r1, r6, #1 - adds r1, r1, r0 - ldrh r0, [r1] - cmp r0, #0 - beq _0809A750 - movs r0, #1 - ands r0, r7 - cmp r0, #0 - beq _0809A73C - ldrh r0, [r1] - lsrs r1, r4, #4 - movs r3, #0x3f - ands r1, r3 - lsrs r2, r5, #4 - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #1 - bl sub_0807B9B8 - b _0809A750 - .align 2, 0 -_0809A738: .4byte gUnk_081238A0 -_0809A73C: - lsrs r0, r4, #4 - movs r2, #0x3f - ands r0, r2 - lsrs r1, r5, #4 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #1 - bl sub_0807BA8C -_0809A750: - movs r0, #1 - b _0809A756 -_0809A754: - movs r0, #0 -_0809A756: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0809A758 -sub_0809A758: @ 0x0809A758 - push {lr} - adds r2, r0, #0 - cmp r2, #0xf - bls _0809A770 - movs r0, #0xf8 - lsls r0, r0, #1 - cmp r2, r0 - bhi _0809A770 - cmp r1, #0xf0 - bhi _0809A770 - movs r0, #1 - b _0809A772 -_0809A770: - movs r0, #0 -_0809A772: - pop {pc} + .syntax divided diff --git a/asm/non_matching/playerItemSword/sub_080A758C.inc b/asm/non_matching/playerItemSword/sub_080A758C.inc index 8b41d1a3..ea464702 100644 --- a/asm/non_matching/playerItemSword/sub_080A758C.inc +++ b/asm/non_matching/playerItemSword/sub_080A758C.inc @@ -135,7 +135,7 @@ _080A7692: bl sub_08079BD8 ldr r4, _080A76B4 @ =gUnk_0812906C ldr r0, _080A76B8 @ =gUnk_08129068 - bl sub_080028F4 + bl GetRandomByWeight lsls r0, r0, #1 adds r0, r0, r4 ldrh r0, [r0] diff --git a/asm/object1E.s b/asm/object1E.s index 0bb09357..81b20f1a 100644 --- a/asm/object1E.s +++ b/asm/object1E.s @@ -92,7 +92,7 @@ _08087594: lsls r1, r1, #1 _080875A2: adds r0, r4, #0 - bl sub_0801D2B4 + bl ChangeObjPalette ldrb r0, [r4, #0x14] cmp r0, #1 beq _080875B8 diff --git a/asm/object21.s b/asm/object21.s index 1c03e043..d5afeabd 100644 --- a/asm/object21.s +++ b/asm/object21.s @@ -81,7 +81,7 @@ sub_08087A10: @ 0x08087A10 beq _08087A26 adds r0, r4, #0 movs r1, #3 - bl sub_0801D2B4 + bl ChangeObjPalette _08087A26: ldrb r0, [r4, #0xa] cmp r0, #2 @@ -92,7 +92,7 @@ _08087A26: adds r1, r1, r0 ldrb r1, [r1] adds r0, r4, #0 - bl sub_0801D2B4 + bl ChangeObjPalette _08087A3C: ldrb r0, [r4, #0xa] cmp r0, #4 diff --git a/asm/object29.s b/asm/object29.s index 72e20190..2bc1cfc4 100644 --- a/asm/object29.s +++ b/asm/object29.s @@ -119,7 +119,7 @@ _0808921C: bl sub_08016A30 adds r0, r4, #0 movs r1, #0x15 - bl sub_0801D2B4 + bl ChangeObjPalette b _08089246 _0808923A: ldrb r1, [r4, #0xb] @@ -225,7 +225,7 @@ _0808991A: bl sub_08016A30 adds r0, r4, #0 movs r1, #0x15 - bl sub_0801D2B4 + bl ChangeObjPalette b _08089940 _08089934: ldrb r1, [r4, #0xb] diff --git a/asm/object3E.s b/asm/object3E.s index 031a6fdf..2345a89d 100644 --- a/asm/object3E.s +++ b/asm/object3E.s @@ -222,7 +222,7 @@ _0808D24E: adds r0, r0, r4 ldrh r1, [r0] adds r0, r5, #0 - bl sub_0801D2B4 + bl ChangeObjPalette ldrb r0, [r5, #0xf] lsls r0, r0, #1 adds r0, r0, r4 @@ -668,7 +668,7 @@ sub_0808D59C: @ 0x0808D59C adds r0, r0, r4 ldrh r1, [r0] adds r0, r5, #0 - bl sub_0801D2B4 + bl ChangeObjPalette ldrb r0, [r5, #0xf] lsls r0, r0, #1 adds r0, r0, r4 diff --git a/asm/object6A.s b/asm/object6A.s index 6ce1e494..086fa52d 100644 --- a/asm/object6A.s +++ b/asm/object6A.s @@ -341,7 +341,7 @@ _08094CA0: blt _08094CCC adds r0, r5, #0 adds r1, r5, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow _08094CCC: ldrb r4, [r5, #0xa] ldrb r0, [r5, #0xb] @@ -1008,7 +1008,7 @@ sub_08095120: @ 0x08095120 bl SetDefaultPriority adds r0, r4, #0 adds r1, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 @@ -1059,7 +1059,7 @@ sub_08095188: @ 0x08095188 bl SetDefaultPriority adds r0, r4, #0 adds r1, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 @@ -1364,7 +1364,7 @@ _080953E0: movs r1, #0 _0809540C: adds r0, r4, #0 - bl sub_0801D2B4 + bl ChangeObjPalette _08095412: pop {r4, pc} .align 2, 0 @@ -1540,7 +1540,7 @@ _0809550A: adds r0, r0, r1 ldrh r1, [r0] adds r0, r4, #0 - bl sub_0801D2B4 + bl ChangeObjPalette adds r0, r4, #0 bl sub_0807DD64 ldrb r1, [r4, #0xb] @@ -1807,7 +1807,7 @@ sub_08095754: @ 0x08095754 bl CopyPosition adds r0, r5, #0 adds r1, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow _0809577A: pop {r4, r5, pc} @@ -1858,7 +1858,7 @@ sub_080957B4: @ 0x080957B4 bl CopyPosition adds r0, r5, #0 adds r1, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow _080957DA: pop {r4, r5, pc} @@ -2570,7 +2570,7 @@ sub_08095D30: @ 0x08095D30 rsbs r0, r0, #0 ands r1, r0 adds r0, r2, #0 - bl sub_0801D2B4 + bl ChangeObjPalette _08095D4E: pop {pc} .align 2, 0 @@ -2854,7 +2854,7 @@ _08095F68: movs r1, #4 _08095F6A: adds r0, r4, #0 - bl sub_0801D2B4 + bl ChangeObjPalette ldr r0, _08095F90 @ =gPlayerEntity adds r0, #0x5a ldrb r1, [r0] @@ -3056,7 +3056,7 @@ sub_080960C4: @ 0x080960C4 strb r0, [r4, #0x19] adds r0, r5, #0 adds r1, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow ldr r1, [r6, #4] adds r0, r4, #0 bl StartCutscene diff --git a/asm/object91.s b/asm/object91.s index 9a3ffce8..1df7bfef 100644 --- a/asm/object91.s +++ b/asm/object91.s @@ -291,7 +291,7 @@ _0809C5E0: @ jump table _0809C600: ldr r0, [r5, #0x50] adds r1, r5, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow ldr r0, [r5, #0x50] ldrb r0, [r0, #0xd] adds r6, r5, #0 @@ -382,7 +382,7 @@ _0809C6B4: .4byte gUnk_08123E1C _0809C6B8: ldr r0, [r5, #0x50] adds r1, r5, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow ldr r0, [r5, #0x50] ldrb r0, [r0, #0xd] adds r6, r5, #0 @@ -741,10 +741,10 @@ _0809C948: bl LoadFixedGFX adds r0, r5, #0 movs r1, #0xef - bl sub_0801D2B4 + bl ChangeObjPalette ldr r0, [r5, #0x50] movs r1, #0xef - bl sub_0801D2B4 + bl ChangeObjPalette adds r0, r5, #0 movs r1, #0xef bl sub_0809CC30 @@ -1112,7 +1112,7 @@ sub_0809CC30: @ 0x0809CC30 adds r4, #0x84 ldr r0, [r4] ldr r0, [r0, #8] - bl sub_0801D2B4 + bl ChangeObjPalette movs r5, #0 _0809CC42: ldr r0, [r4] @@ -1121,7 +1121,7 @@ _0809CC42: adds r0, r0, r1 ldr r0, [r0] adds r1, r6, #0 - bl sub_0801D2B4 + bl ChangeObjPalette adds r5, #1 cmp r5, #3 bls _0809CC42 diff --git a/asm/object96.s b/asm/object96.s index 26f40c61..4cc9016a 100644 --- a/asm/object96.s +++ b/asm/object96.s @@ -223,7 +223,7 @@ sub_0809D91C: @ 0x0809D91C cmp r1, #0 beq _0809D934 adds r0, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow _0809D934: movs r0, #0x72 bl SoundReq diff --git a/asm/objectB3.s b/asm/objectB3.s index 158006ad..bb58c920 100644 --- a/asm/objectB3.s +++ b/asm/objectB3.s @@ -70,7 +70,7 @@ _080A0A5E: adds r0, r0, r1 ldrb r1, [r0] adds r0, r4, #0 - bl sub_0801D2B4 + bl ChangeObjPalette _080A0AB0: adds r0, r4, #0 bl GetNextFrame diff --git a/asm/objectB4.s b/asm/objectB4.s index 1a6cea59..eb36b53e 100644 --- a/asm/objectB4.s +++ b/asm/objectB4.s @@ -95,7 +95,7 @@ _080A0C08: strh r0, [r4, #0x32] adds r0, r5, #0 adds r1, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow _080A0C40: ldrb r0, [r5, #0xf] adds r0, #1 @@ -136,7 +136,7 @@ _080A0C6E: strh r0, [r4, #0x32] adds r0, r5, #0 adds r1, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow _080A0C92: ldrb r0, [r5, #0xf] adds r0, #1 diff --git a/asm/objectOnSpinyBeetle.s b/asm/objectOnSpinyBeetle.s index 461d78a1..76679025 100644 --- a/asm/objectOnSpinyBeetle.s +++ b/asm/objectOnSpinyBeetle.s @@ -67,7 +67,7 @@ _080985AC: _080985AE: ldr r1, [r4, #0x50] adds r0, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow adds r0, r4, #0 bl sub_08098918 pop {r4, r5, pc} @@ -569,7 +569,7 @@ _0809892E: strb r0, [r2] ldr r1, [r4, #0x50] adds r0, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow _08098968: ldr r2, _0809898C @ =gUnk_08123558 adds r0, r6, #0 @@ -606,7 +606,7 @@ _08098990: strb r0, [r2] ldr r1, [r4, #0x50] adds r0, r4, #0 - bl sub_0806FAD8 + bl ResolveEntityBelow _080989B2: strh r5, [r4, #0x36] adds r1, r4, #0 diff --git a/asm/octorokBoss.s b/asm/octorokBoss.s deleted file mode 100644 index 8c6ff919..00000000 --- a/asm/octorokBoss.s +++ /dev/null @@ -1,4789 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start OctorokBoss -OctorokBoss: @ 0x080351BC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080351D4 @ =gUnk_080CF040 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080351D4: .4byte gUnk_080CF040 - - thumb_func_start sub_080351D8 -sub_080351D8: @ 0x080351D8 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - cmp r1, #0 - bne _08035204 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080368D8 - adds r0, r4, #0 - bl sub_0803520C - b _08035208 -_08035204: - bl DeleteThisEntity -_08035208: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803520C -sub_0803520C: @ 0x0803520C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _08035238 - ldrb r0, [r4, #0xd] - cmp r0, #3 - beq _0803524C - ldr r2, _08035234 @ =gRoomControls - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldr r0, [r1, #0xc] - str r0, [r2, #0x30] - movs r0, #0x5a - strb r0, [r1, #7] - bl sub_08078B48 - b _0803524C - .align 2, 0 -_08035234: .4byte gRoomControls -_08035238: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #7] - cmp r0, #0 - beq _0803524C - subs r0, #1 - strb r0, [r1, #7] - bl sub_08078B48 -_0803524C: - ldr r1, _08035284 @ =gUnk_080CF054 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xd] - cmp r0, #3 - bls _08035266 - bl sub_08078B48 -_08035266: - adds r0, r4, #0 - bl sub_0800445C - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_08035284: .4byte gUnk_080CF054 - - thumb_func_start sub_08035288 -sub_08035288: @ 0x08035288 - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x76 - movs r4, #0 - movs r1, #0xa0 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r3, r2, #0 - adds r3, #0x84 - ldr r0, [r3] - strb r4, [r0, #6] - adds r0, r2, #0 - adds r0, #0x7c - ldrb r1, [r0] - adds r0, r1, #0 - cmp r0, #4 - bne _080352C8 - strb r0, [r2, #0xd] - ldr r0, _080352C4 @ =gUnk_02034490 - movs r1, #1 - strb r1, [r0] - bl sub_08078B48 - movs r0, #0x94 - lsls r0, r0, #1 - bl SoundReq - b _080352FA - .align 2, 0 -_080352C4: .4byte gUnk_02034490 -_080352C8: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080352DA - strb r4, [r2, #0xb] - adds r1, r2, #0 - adds r1, #0x79 - movs r0, #0x3c - b _080352F4 -_080352DA: - ldr r1, [r3] - ldrb r0, [r1, #1] - cmp r0, #3 - bls _080352E6 - subs r0, #1 - strb r0, [r1, #1] -_080352E6: - ldr r0, [r3] - ldr r0, [r0, #0xc] - adds r0, #0x7d - strb r4, [r0] - adds r1, r2, #0 - adds r1, #0x79 - movs r0, #0x78 -_080352F4: - strb r0, [r1] - movs r0, #1 - strb r0, [r2, #0xd] -_080352FA: - pop {r4, pc} - - thumb_func_start sub_080352FC -sub_080352FC: @ 0x080352FC -.ifdef JP - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - adds r0, #0x7c - ldrb r0, [r0] - movs r6, #1 - adds r4, r6, #0 - ands r4, r0 - cmp r4, #0 - bne _08035390 - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldr r1, [r1, #0xc] - adds r1, #0x7d - ldrb r2, [r1] - mov sb, r0 - cmp r2, #0 - beq _080352D0 - subs r0, r2, #1 - strb r0, [r1] -_080352D0: - ldr r3, _08035334 @ =gRoomControls - movs r0, #0x84 - lsls r0, r0, #1 - adds r1, r0, #0 - ldrh r0, [r3, #6] - adds r1, r1, r0 - ldrh r0, [r5, #0x2e] - subs r1, r1, r0 - adds r1, #4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r0, [r3, #8] - ldrh r2, [r5, #0x32] - subs r0, r0, r2 - adds r0, #0x8c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, #8 - bhi _080352FAJP - cmp r0, #8 - bls _08035338 -_080352FAJP: - mov r1, sb - ldr r0, [r1] - strb r6, [r0, #2] - ldrh r0, [r3, #6] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldr r1, [r5, #0x2c] - subs r0, r0, r1 - ldrh r1, [r3, #8] - adds r1, #0x88 - lsls r1, r1, #0x10 - ldr r2, [r5, #0x30] - subs r1, r1, r2 - bl sub_080045DA - asrs r0, r0, #3 - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl ProcessMovement - adds r7, r5, #0 - adds r7, #0x79 - b _080353FA - .align 2, 0 -_08035334: .4byte gRoomControls -_08035338: - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _0803537C - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #0 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #1 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #2 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #3 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #4 - bl CreateObjectWithParent - strb r6, [r5, #0xb] -_0803537C: - mov r1, sb - ldr r0, [r1] - strb r4, [r0, #2] - adds r1, r5, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r7, r1, #0 - b _080353FA -_08035390: - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r1, [r1, #1] - subs r4, r1, #1 - mov sb, r0 - adds r7, r5, #0 - adds r7, #0x79 - cmp r4, #0 - beq _080353DC - mov ip, sb - movs r0, #1 - mov sl, r0 - lsls r0, r4, #2 - subs r6, r0, #4 - movs r1, #3 - mov r8, r1 -_080353B2: - mov r1, ip - ldr r0, [r1] - adds r0, #0xc - adds r0, r0, r6 - ldr r3, [r0] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - mov r0, sl - orrs r1, r0 - mov r0, r8 - ands r1, r0 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - subs r6, #4 - subs r4, #1 - cmp r4, #0 - bne _080353B2 -_080353DC: - ldr r1, _08035450 @ =gScreenTransition - ldr r0, [r1] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080353F4 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #6 - movs r3, #0 - bl CreateObjectWithParent -_080353F4: - ldrb r0, [r7] - subs r0, #1 - strb r0, [r7] -_080353FA: - ldrb r0, [r7] - cmp r0, #0 - bne _0803548C - movs r0, #2 - strb r0, [r5, #0xd] - adds r4, r5, #0 - adds r4, #0x7c - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - adds r0, r5, #0 - bl sub_080AE068 - ldrb r1, [r4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08035454 - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x5f - strb r0, [r1] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r5, #0 - bl LoadFixedGFX - adds r0, r5, #0 - movs r1, #0xef - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xef - bl sub_08036F14 - mov r1, sb - ldr r0, [r1] - ldr r0, [r0, #0xc] - movs r1, #1 - bl InitAnimationForceUpdate - b _08035480 - .align 2, 0 -_08035450: .4byte gScreenTransition -_08035454: - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x61 - strb r0, [r1] - ldr r1, _08035498 @ =0x00000109 - adds r0, r5, #0 - bl LoadFixedGFX - adds r0, r5, #0 - movs r1, #0xf0 - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xf3 - bl sub_08036F14 - mov r1, sb - ldr r0, [r1] - ldr r0, [r0, #0xc] - movs r1, #2 - bl InitAnimationForceUpdate -_08035480: - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #8 - movs r3, #0 - bl CreateObjectWithParent -_0803548C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08035498: .4byte 0x00000109 - -.else -.ifdef DEMO_JP @ TODO same as JP - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - adds r0, #0x7c - ldrb r0, [r0] - movs r6, #1 - adds r4, r6, #0 - ands r4, r0 - cmp r4, #0 - bne _08035390 - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldr r1, [r1, #0xc] - adds r1, #0x7d - ldrb r2, [r1] - mov sb, r0 - cmp r2, #0 - beq _080352D0 - subs r0, r2, #1 - strb r0, [r1] -_080352D0: - ldr r3, _08035334 @ =gRoomControls - movs r0, #0x84 - lsls r0, r0, #1 - adds r1, r0, #0 - ldrh r0, [r3, #6] - adds r1, r1, r0 - ldrh r0, [r5, #0x2e] - subs r1, r1, r0 - adds r1, #4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r0, [r3, #8] - ldrh r2, [r5, #0x32] - subs r0, r0, r2 - adds r0, #0x8c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, #8 - bhi _080352FAJP - cmp r0, #8 - bls _08035338 -_080352FAJP: - mov r1, sb - ldr r0, [r1] - strb r6, [r0, #2] - ldrh r0, [r3, #6] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldr r1, [r5, #0x2c] - subs r0, r0, r1 - ldrh r1, [r3, #8] - adds r1, #0x88 - lsls r1, r1, #0x10 - ldr r2, [r5, #0x30] - subs r1, r1, r2 - bl sub_080045DA - asrs r0, r0, #3 - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl ProcessMovement - adds r7, r5, #0 - adds r7, #0x79 - b _080353FA - .align 2, 0 -_08035334: .4byte gRoomControls -_08035338: - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _0803537C - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #0 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #1 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #2 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #3 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #4 - bl CreateObjectWithParent - strb r6, [r5, #0xb] -_0803537C: - mov r1, sb - ldr r0, [r1] - strb r4, [r0, #2] - adds r1, r5, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r7, r1, #0 - b _080353FA -_08035390: - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r1, [r1, #1] - subs r4, r1, #1 - mov sb, r0 - adds r7, r5, #0 - adds r7, #0x79 - cmp r4, #0 - beq _080353DC - mov ip, sb - movs r0, #1 - mov sl, r0 - lsls r0, r4, #2 - subs r6, r0, #4 - movs r1, #3 - mov r8, r1 -_080353B2: - mov r1, ip - ldr r0, [r1] - adds r0, #0xc - adds r0, r0, r6 - ldr r3, [r0] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - mov r0, sl - orrs r1, r0 - mov r0, r8 - ands r1, r0 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - subs r6, #4 - subs r4, #1 - cmp r4, #0 - bne _080353B2 -_080353DC: - ldr r1, _08035450 @ =gScreenTransition - ldr r0, [r1] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080353F4 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #6 - movs r3, #0 - bl CreateObjectWithParent -_080353F4: - ldrb r0, [r7] - subs r0, #1 - strb r0, [r7] -_080353FA: - ldrb r0, [r7] - cmp r0, #0 - bne _0803548C - movs r0, #2 - strb r0, [r5, #0xd] - adds r4, r5, #0 - adds r4, #0x7c - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - adds r0, r5, #0 - bl sub_080AE068 - ldrb r1, [r4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08035454 - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x5f - strb r0, [r1] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r5, #0 - bl LoadFixedGFX - adds r0, r5, #0 - movs r1, #0xef - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xef - bl sub_08036F14 - mov r1, sb - ldr r0, [r1] - ldr r0, [r0, #0xc] - movs r1, #1 - bl InitAnimationForceUpdate - b _08035480 - .align 2, 0 -_08035450: .4byte gScreenTransition -_08035454: - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x61 - strb r0, [r1] - ldr r1, _08035498 @ =0x00000109 - adds r0, r5, #0 - bl LoadFixedGFX - adds r0, r5, #0 - movs r1, #0xf0 - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xf3 - bl sub_08036F14 - mov r1, sb - ldr r0, [r1] - ldr r0, [r0, #0xc] - movs r1, #2 - bl InitAnimationForceUpdate -_08035480: - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #8 - movs r3, #0 - bl CreateObjectWithParent -_0803548C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08035498: .4byte 0x00000109 - -.else -.ifdef EU - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - adds r0, #0x7c - ldrb r0, [r0] - movs r6, #1 - adds r4, r6, #0 - ands r4, r0 - cmp r4, #0 - bne _0803536C - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldr r1, [r1, #0xc] - adds r1, #0x7d - ldrb r2, [r1] - mov sb, r0 - cmp r2, #0 - beq _080352AC - subs r0, r2, #1 - strb r0, [r1] -_080352AC: - ldr r3, _08035310 @ =gRoomControls - movs r0, #0x84 - lsls r0, r0, #1 - adds r1, r0, #0 - ldrh r0, [r3, #6] - adds r1, r1, r0 - ldrh r0, [r5, #0x2e] - subs r1, r1, r0 - adds r1, #4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r0, [r3, #8] - ldrh r2, [r5, #0x32] - subs r0, r0, r2 - adds r0, #0x8c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, #8 - bhi _080352D6 - cmp r0, #8 - bls _08035314 -_080352D6: - mov r1, sb - ldr r0, [r1] - strb r6, [r0, #2] - ldrh r0, [r3, #6] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldr r1, [r5, #0x2c] - subs r0, r0, r1 - ldrh r1, [r3, #8] - adds r1, #0x88 - lsls r1, r1, #0x10 - ldr r2, [r5, #0x30] - subs r1, r1, r2 - bl sub_080045DA - asrs r0, r0, #3 - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl ProcessMovement - adds r7, r5, #0 - adds r7, #0x79 - b _080353D6 - .align 2, 0 -_08035310: .4byte gRoomControls -_08035314: - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _08035358 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #0 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #1 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #2 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #3 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #4 - bl CreateObjectWithParent - strb r6, [r5, #0xb] -_08035358: - mov r1, sb - ldr r0, [r1] - strb r4, [r0, #2] - adds r1, r5, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r7, r1, #0 - b _080353D6 -_0803536C: - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r1, [r1, #1] - subs r4, r1, #1 - mov sb, r0 - adds r7, r5, #0 - adds r7, #0x79 - cmp r4, #0 - beq _080353B8 - mov ip, sb - movs r0, #1 - mov sl, r0 - lsls r0, r4, #2 - subs r6, r0, #4 - movs r1, #3 - mov r8, r1 -_0803538E: - mov r1, ip - ldr r0, [r1] - adds r0, #0xc - adds r0, r0, r6 - ldr r3, [r0] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - mov r0, sl - orrs r1, r0 - mov r0, r8 - ands r1, r0 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - subs r6, #4 - subs r4, #1 - cmp r4, #0 - bne _0803538E -_080353B8: - ldr r1, _0803542C @ =gScreenTransition - ldr r0, [r1] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080353D0 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #6 - movs r3, #0 - bl CreateObjectWithParent -_080353D0: - ldrb r0, [r7] - subs r0, #1 - strb r0, [r7] -_080353D6: - ldrb r0, [r7] - cmp r0, #0 - bne _08035468 - movs r0, #2 - strb r0, [r5, #0xd] - adds r4, r5, #0 - adds r4, #0x7c - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - adds r0, r5, #0 - bl sub_080AE068 - ldrb r1, [r4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08035430 - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x5f - strb r0, [r1] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r5, #0 - bl LoadFixedGFX - adds r0, r5, #0 - movs r1, #0xef - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xef - bl sub_08036F14 - mov r1, sb - ldr r0, [r1] - ldr r0, [r0, #0xc] - movs r1, #1 - bl InitAnimationForceUpdate - b _0803545C - .align 2, 0 -_0803542C: .4byte gScreenTransition -_08035430: - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x61 - strb r0, [r1] - ldr r1, _08035474 @ =0x00000109 - adds r0, r5, #0 - bl LoadFixedGFX - adds r0, r5, #0 - movs r1, #0xf0 - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xf3 - bl sub_08036F14 - mov r1, sb - ldr r0, [r1] - ldr r0, [r0, #0xc] - movs r1, #2 - bl InitAnimationForceUpdate -_0803545C: - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #8 - movs r3, #0 - bl CreateObjectWithParent -_08035468: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08035474: .4byte 0x00000109 - -.else - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - adds r0, #0x7c - ldrb r0, [r0] - movs r6, #1 - adds r4, r6, #0 - ands r4, r0 - cmp r4, #0 - bne _080353EC - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldr r1, [r1, #0xc] - adds r1, #0x7d - ldrb r2, [r1] - mov sb, r0 - cmp r2, #0 - beq _0803532C - subs r0, r2, #1 - strb r0, [r1] -_0803532C: - ldr r3, _0803538C @ =gRoomControls - movs r0, #0x84 - lsls r0, r0, #1 - adds r1, r0, #0 - ldrh r2, [r3, #6] - adds r1, r1, r2 - ldrh r0, [r5, #0x2e] - subs r1, r1, r0 - adds r1, #4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r0, [r3, #8] - ldrh r2, [r5, #0x32] - subs r0, r0, r2 - adds r0, #0x8c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, #8 - bhi _08035356 - cmp r0, #8 - bls _08035394 -_08035356: - mov r1, sb - ldr r0, [r1] - strb r6, [r0, #2] - ldrh r0, [r3, #6] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r2, _08035390 @ =0xFFFFFEF8 - adds r1, r1, r2 - subs r0, r0, r1 - ldrh r1, [r3, #8] - movs r3, #0x32 - ldrsh r2, [r5, r3] - subs r2, #0x88 - subs r1, r1, r2 - bl sub_080045DA - asrs r0, r0, #3 - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl ProcessMovement - adds r7, r5, #0 - adds r7, #0x79 - b _08035456 - .align 2, 0 -_0803538C: .4byte gRoomControls -_08035390: .4byte 0xFFFFFEF8 -_08035394: - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _080353D8 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #0 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #1 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #2 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #3 - bl CreateObjectWithParent - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #4 - bl CreateObjectWithParent - strb r6, [r5, #0xb] -_080353D8: - mov r1, sb - ldr r0, [r1] - strb r4, [r0, #2] - adds r1, r5, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r7, r1, #0 - b _08035456 -_080353EC: - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r1, [r1, #1] - subs r4, r1, #1 - mov sb, r0 - adds r7, r5, #0 - adds r7, #0x79 - cmp r4, #0 - beq _08035438 - mov ip, sb - movs r2, #1 - mov sl, r2 - lsls r0, r4, #2 - subs r6, r0, #4 - movs r3, #3 - mov r8, r3 -_0803540E: - mov r1, ip - ldr r0, [r1] - adds r0, #0xc - adds r0, r0, r6 - ldr r3, [r0] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - mov r0, sl - orrs r1, r0 - mov r0, r8 - ands r1, r0 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - subs r6, #4 - subs r4, #1 - cmp r4, #0 - bne _0803540E -_08035438: - ldr r1, _080354AC @ =gScreenTransition - ldr r0, [r1] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08035450 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #6 - movs r3, #0 - bl CreateObjectWithParent -_08035450: - ldrb r0, [r7] - subs r0, #1 - strb r0, [r7] -_08035456: - ldrb r0, [r7] - cmp r0, #0 - bne _080354E8 - movs r0, #2 - strb r0, [r5, #0xd] - adds r4, r5, #0 - adds r4, #0x7c - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - adds r0, r5, #0 - bl sub_080AE068 - ldrb r1, [r4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080354B0 - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x5f - strb r0, [r1] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r5, #0 - bl LoadFixedGFX - adds r0, r5, #0 - movs r1, #0xef - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xef - bl sub_08036F14 - mov r2, sb - ldr r0, [r2] - ldr r0, [r0, #0xc] - movs r1, #1 - bl InitAnimationForceUpdate - b _080354DC - .align 2, 0 -_080354AC: .4byte gScreenTransition -_080354B0: - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x61 - strb r0, [r1] - ldr r1, _080354F4 @ =0x00000109 - adds r0, r5, #0 - bl LoadFixedGFX - adds r0, r5, #0 - movs r1, #0xf0 - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xf3 - bl sub_08036F14 - mov r3, sb - ldr r0, [r3] - ldr r0, [r0, #0xc] - movs r1, #2 - bl InitAnimationForceUpdate -_080354DC: - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #8 - movs r3, #0 - bl CreateObjectWithParent -_080354E8: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080354F4: .4byte 0x00000109 -.endif -.endif -.endif - - thumb_func_start sub_080354F8 -sub_080354F8: @ 0x080354F8 - push {lr} - adds r1, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r0, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7d - ldrb r0, [r2] - cmp r0, #0x80 - beq _08035512 - adds r0, #1 - strb r0, [r2] - b _08035522 -_08035512: - movs r0, #3 - strb r0, [r1, #0xd] - adds r1, #0x79 - movs r0, #0x96 - strb r0, [r1] - ldr r1, _08035524 @ =gRoomControls - ldr r0, _08035528 @ =gPlayerEntity - str r0, [r1, #0x30] -_08035522: - pop {pc} - .align 2, 0 -_08035524: .4byte gRoomControls -_08035528: .4byte gPlayerEntity - - thumb_func_start sub_0803552C -sub_0803552C: @ 0x0803552C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - movs r3, #0 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035570 - ldr r1, _08035574 @ =gUnk_080CF070 - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r2, #0 - adds r1, #0x45 - strb r0, [r1] - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - movs r0, #1 - strb r0, [r2, #0xc] - strb r3, [r2, #0xd] - adds r0, r2, #0 - adds r0, #0x7e - strb r3, [r0] - adds r0, r2, #0 - bl sub_08036DA0 -_08035570: - pop {pc} - .align 2, 0 -_08035574: .4byte gUnk_080CF070 - - thumb_func_start sub_08035578 -sub_08035578: @ 0x08035578 - push {lr} - movs r1, #5 - strb r1, [r0, #0xd] - movs r1, #0x87 - movs r2, #9 - movs r3, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - cmp r1, #0 - beq _08035592 - ldr r0, _08035594 @ =gRoomControls - str r1, [r0, #0x30] -_08035592: - pop {pc} - .align 2, 0 -_08035594: .4byte gRoomControls - - thumb_func_start sub_08035598 -sub_08035598: @ 0x08035598 - adds r2, r0, #0 - movs r1, #0 - movs r0, #6 - strb r0, [r2, #0xd] - adds r3, r2, #0 - adds r3, #0x79 - movs r0, #0x78 - strb r0, [r3] - adds r0, r2, #0 - adds r0, #0x80 - strb r1, [r0] - adds r0, #2 - strb r1, [r0] - bx lr - - thumb_func_start sub_080355B4 -sub_080355B4: @ 0x080355B4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r1, r7, #0 - adds r1, #0x7b - ldrb r0, [r1] - subs r0, #4 - strb r0, [r1] - adds r1, #6 - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] - adds r4, r7, #0 - adds r4, #0x80 - ldrb r1, [r4] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080355FA - bl Random - movs r1, #3 - ands r0, r1 - ldrb r1, [r4] - subs r1, r1, r0 - strb r1, [r4] - ands r1, r5 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0 - bne _08035616 - b _08035614 -_080355FA: - bl Random - movs r1, #3 - ands r0, r1 - ldrb r2, [r4] - adds r1, r0, r2 - strb r1, [r4] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x18 - bls _08035616 - movs r0, #0x80 - orrs r1, r0 -_08035614: - strb r1, [r4] -_08035616: - ldr r0, _080356E4 @ =gSineTable - mov r8, r0 - movs r1, #0x81 - adds r1, r1, r7 - mov sb, r1 - ldrb r0, [r1] - lsls r0, r0, #1 - add r0, r8 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r6, r7, #0 - adds r6, #0x80 - ldrb r2, [r6] - movs r4, #0x7f - adds r1, r4, #0 - ands r1, r2 - lsls r1, r1, #8 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x80 - lsls r5, r5, #1 - adds r1, r5, #0 - bl FixedDiv - lsrs r0, r0, #8 - adds r1, r7, #0 - adds r1, #0x62 - strb r0, [r1] - mov r1, sb - ldrb r0, [r1] - adds r0, #0x40 - lsls r0, r0, #1 - add r0, r8 - movs r2, #0 - ldrsh r0, [r0, r2] - ldrb r1, [r6] - ands r4, r1 - lsls r4, r4, #8 - adds r1, r4, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r5, #0 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #8 - rsbs r0, r0, #0 - asrs r0, r0, #0x10 - adds r1, r7, #0 - adds r1, #0x63 - strb r0, [r1] - adds r1, #0x16 - ldrb r0, [r1] - cmp r0, #0 - bne _080356EC - ldr r0, _080356E8 @ =gScreenTransition - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _080356B2 - adds r0, r7, #0 - movs r1, #0x48 - movs r2, #0 - bl CreateFx - adds r0, r7, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r0, [r0, #0x20] - movs r1, #0x48 - movs r2, #0 - bl CreateFx -_080356B2: - adds r1, r7, #0 - adds r1, #0x82 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x79 - bne _080356F0 - adds r0, r7, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r0, [r0, #8] - adds r0, #0x45 - movs r1, #1 - strb r1, [r0] - movs r0, #0x94 - lsls r0, r0, #1 - bl SoundReq - adds r0, r7, #0 - bl sub_0804A7D4 - b _080356F0 - .align 2, 0 -_080356E4: .4byte gSineTable -_080356E8: .4byte gScreenTransition -_080356EC: - subs r0, #1 - strb r0, [r1] -_080356F0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080356F8 -sub_080356F8: @ 0x080356F8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08035718 @ =gUnk_080CF078 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - pop {r4, pc} - .align 2, 0 -_08035718: .4byte gUnk_080CF078 - - thumb_func_start sub_0803571C -sub_0803571C: @ 0x0803571C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - cmp r0, #6 - bls _0803573A - b _08035974 -_0803573A: - lsls r0, r0, #2 - ldr r1, _08035744 @ =_08035748 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08035744: .4byte _08035748 -_08035748: @ jump table - .4byte _08035764 @ case 0 - .4byte _080358D8 @ case 1 - .4byte _080358D8 @ case 2 - .4byte _080358D8 @ case 3 - .4byte _080358D8 @ case 4 - .4byte _08035920 @ case 5 - .4byte _08035940 @ case 6 -_08035764: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x7c - movs r5, #0 - strb r5, [r0] - movs r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x30 - bl zMalloc - adds r2, r0, #0 - adds r0, r4, #0 - adds r0, #0x84 - str r2, [r0] - mov r8, r0 - cmp r2, #0 - bne _0803579E - adds r0, r4, #0 - bl sub_0804A7D4 - b _080359A6 -_0803579E: - str r2, [r4, #0x64] - mov r1, r8 - ldr r0, [r1] - strb r5, [r0, #6] - ldr r1, [r1] - movs r0, #2 - strb r0, [r1] - mov r2, r8 - ldr r0, [r2] - strb r5, [r0, #2] - ldr r1, [r2] - movs r0, #5 - strb r0, [r1, #1] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x6d - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x76 - movs r1, #0xa0 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r0, #6 - strh r5, [r0] - movs r5, #0 - movs r0, #0x79 - adds r0, r0, r4 - mov sb, r0 - mov r7, r8 -_080357E6: - adds r6, r5, #1 - movs r0, #0x39 - adds r1, r6, #0 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08035816 - adds r0, r4, #0 - bl CopyPosition - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r7] - lsls r0, r5, #2 - adds r1, #0x20 - adds r1, r1, r0 - ldr r0, [r4, #0x54] - str r0, [r1] -_08035816: - adds r5, r6, #0 - cmp r5, #3 - bls _080357E6 - movs r0, #0x39 - movs r1, #5 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08035840 - adds r0, r4, #0 - bl CopyPosition - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - mov r2, r8 - ldr r1, [r2] - str r1, [r0] -_08035840: - movs r0, #0x39 - movs r1, #6 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0803586A - adds r0, r4, #0 - bl CopyPosition - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - mov r2, r8 - ldr r1, [r2] - str r1, [r0] - ldr r1, [r2] - ldr r0, [r4, #0x54] - str r0, [r1, #0xc] -_0803586A: - movs r5, #0 - mov r7, r8 -_0803586E: - movs r0, #0x39 - movs r1, #7 - bl CreateEnemy - str r0, [r4, #0x54] - adds r6, r5, #1 - cmp r0, #0 - beq _080358A0 - strb r5, [r0, #0xb] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl CopyPosition - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r7] - lsls r0, r6, #2 - adds r1, #0xc - adds r1, r1, r0 - ldr r0, [r4, #0x54] - str r0, [r1] -_080358A0: - adds r5, r6, #0 - cmp r5, #3 - bls _0803586E - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x3c - mov r1, sb - strb r0, [r1] - ldr r1, _080358D0 @ =gPlayerEntity - ldrb r2, [r1, #0x18] - subs r0, #0x40 - ands r0, r2 - strb r0, [r1, #0x18] - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - subs r0, #0xa0 - strh r0, [r1, #0x32] - ldr r0, _080358D4 @ =gRoomControls - str r4, [r0, #0x30] - b _08035974 - .align 2, 0 -_080358D0: .4byte gPlayerEntity -_080358D4: .4byte gRoomControls -_080358D8: - movs r1, #0 - movs r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] - ldrb r1, [r4, #0xa] - movs r2, #2 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _080358F4 - strb r2, [r4, #0xf] - b _080358F8 -_080358F4: - movs r0, #0xfe - strb r0, [r4, #0xf] -_080358F8: - adds r0, r4, #0 - adds r0, #0x74 - movs r2, #0x80 - lsls r2, r2, #1 - strh r2, [r0] - ldrb r1, [r4, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08035918 - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0xff - lsls r0, r0, #8 - strh r0, [r1] - b _08035974 -_08035918: - adds r0, r4, #0 - adds r0, #0x76 - strh r2, [r0] - b _08035974 -_08035920: - adds r0, r4, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x1c - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - str r4, [r0, #8] - b _08035974 -_08035940: - adds r0, r4, #0 - adds r0, #0x76 - movs r2, #0 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x79 - strb r2, [r0] - movs r0, #0x10 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x80 - strb r0, [r1] -_08035974: - ldrb r0, [r4, #0xa] - cmp r0, #6 - beq _08035990 - ldr r0, _0803598C @ =gUnk_080CF08C - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - bl InitializeAnimation - b _080359A0 - .align 2, 0 -_0803598C: .4byte gUnk_080CF08C -_08035990: - ldr r0, _080359B0 @ =gUnk_080CF08C - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - bl InitAnimationForceUpdate -_080359A0: - adds r0, r4, #0 - bl sub_08035B94 -_080359A6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080359B0: .4byte gUnk_080CF08C - - thumb_func_start sub_080359B4 -sub_080359B4: @ 0x080359B4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078B48 - ldr r1, _080359F0 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08036F60 - ldr r1, _080359F4 @ =gUnk_080CF0AC - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_080359F0: .4byte gUnk_02034490 -_080359F4: .4byte gUnk_080CF0AC - - thumb_func_start sub_080359F8 -sub_080359F8: @ 0x080359F8 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035A22 - movs r0, #1 - strb r0, [r2, #0xd] - adds r1, #9 - adds r0, #0xff - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #2 - strb r0, [r1] -_08035A22: - pop {pc} - - thumb_func_start sub_08035A24 -sub_08035A24: @ 0x08035A24 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0x80 - bne _08035A54 - adds r2, r4, #0 - adds r2, #0x79 - movs r1, #0 - movs r0, #0x3c - strb r0, [r2] - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0] - ldr r0, _08035A50 @ =0x00000159 - bl SoundReq - b _08035A64 - .align 2, 0 -_08035A50: .4byte 0x00000159 -_08035A54: - adds r1, r4, #0 - adds r1, #0x7a - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] -_08035A64: - adds r0, r4, #0 - movs r1, #0xf - bl sub_08036FAC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08035A70 -sub_08035A70: @ 0x08035A70 - push {r4, lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035AA8 - movs r0, #3 - strb r0, [r2, #0xd] - movs r0, #0x3c - strb r0, [r1] - ldr r2, _08035AAC @ =gPlayerEntity - ldrb r3, [r2, #0x18] - lsls r1, r3, #0x1e - lsrs r1, r1, #0x1e - movs r4, #1 - orrs r1, r4 - subs r0, #0x40 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #0x18] - ldr r0, _08035AB0 @ =gRoomControls - str r2, [r0, #0x30] - strb r4, [r0, #0xe] -_08035AA8: - pop {r4, pc} - .align 2, 0 -_08035AAC: .4byte gPlayerEntity -_08035AB0: .4byte gRoomControls - - thumb_func_start sub_08035AB4 -sub_08035AB4: @ 0x08035AB4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r6, #0 - adds r5, #0x79 - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035AE4 - ldr r1, _08035AE8 @ =gPlayerEntity - movs r0, #0x10 - strb r0, [r1, #0x15] - movs r4, #4 - strb r4, [r1, #0x14] - movs r0, #0x1e - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - movs r0, #0x3c - strb r0, [r5] - strb r4, [r6, #0xd] -_08035AE4: - pop {r4, r5, r6, pc} - .align 2, 0 -_08035AE8: .4byte gPlayerEntity - - thumb_func_start sub_08035AEC -sub_08035AEC: @ 0x08035AEC - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x79 - ldrb r0, [r2] - subs r1, r0, #1 - strb r1, [r2] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035B18 - movs r0, #5 - strb r0, [r3, #0xd] - movs r0, #0x2d - strb r0, [r2] - ldr r1, _08035B14 @ =gPlayerEntity - movs r0, #0 - strb r0, [r1, #0x14] - b _08035B2C - .align 2, 0 -_08035B14: .4byte gPlayerEntity -_08035B18: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bne _08035B2C - ldr r0, _08035B30 @ =gPlayerEntity - movs r2, #0x18 - rsbs r2, r2, #0 - movs r1, #0xc - bl CreateSpeechBubbleExclamationMark -_08035B2C: - pop {pc} - .align 2, 0 -_08035B30: .4byte gPlayerEntity - - thumb_func_start sub_08035B34 -sub_08035B34: @ 0x08035B34 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r2, _08035B70 @ =gPlayerEntity - ldrb r5, [r2, #0x14] - cmp r5, #4 - bne _08035B7C - adds r2, r3, #0 - adds r2, #0x79 - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bls _08035B92 - movs r4, #0 - movs r0, #1 - strb r0, [r3, #0xc] - strb r4, [r3, #0xd] - ldr r0, _08035B74 @ =gRoomControls - strb r5, [r0, #0xe] - adds r0, r3, #0 - bl sub_08036C90 - ldr r0, _08035B78 @ =gUnk_02034490 - strb r4, [r0] - movs r0, #0x2e - bl SoundReq - b _08035B92 - .align 2, 0 -_08035B70: .4byte gPlayerEntity -_08035B74: .4byte gRoomControls -_08035B78: .4byte gUnk_02034490 -_08035B7C: - adds r1, r3, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035B92 - movs r0, #4 - strb r0, [r2, #0x14] -_08035B92: - pop {r4, r5, pc} - - thumb_func_start sub_08035B94 -sub_08035B94: @ 0x08035B94 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - beq _08035BAE - ldr r0, [r5, #0x50] - adds r0, #0x3d - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x3d - strb r0, [r1] -_08035BAE: - ldrb r0, [r5, #0xa] - cmp r0, #7 - bls _08035BB6 - b _08035F6C -_08035BB6: - lsls r0, r0, #2 - ldr r1, _08035BC0 @ =_08035BC4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08035BC0: .4byte _08035BC4 -_08035BC4: @ jump table - .4byte _08035F16 @ case 0 - .4byte _08035BE4 @ case 1 - .4byte _08035BE4 @ case 2 - .4byte _08035BE4 @ case 3 - .4byte _08035BE4 @ case 4 - .4byte _08035E78 @ case 5 - .4byte _08035DB0 @ case 6 - .4byte _08035D14 @ case 7 -_08035BE4: - ldr r0, [r5, #0x50] - adds r0, #0x6d - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08035BF6 - bl DeleteThisEntity -_08035BF6: - adds r1, r5, #0 - adds r1, #0x84 - ldr r0, [r1] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - adds r6, r1, #0 - adds r7, r5, #0 - adds r7, #0x76 - movs r1, #0x74 - adds r1, r1, r5 - mov r8, r1 - cmp r0, #1 - bne _08035C42 - ldrh r1, [r7] - movs r2, #0 - ldrsh r0, [r7, r2] - cmp r0, #0 - bge _08035C20 - subs r0, r1, #4 - b _08035C22 -_08035C20: - adds r0, r1, #4 -_08035C22: - strh r0, [r7] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r2, [r0] - movs r3, #0 - ldrsh r1, [r0, r3] - mov r8, r0 - cmp r1, #0 - bge _08035C3C - subs r0, r2, #4 - mov r1, r8 - strh r0, [r1] - b _08035C42 -_08035C3C: - adds r0, r2, #4 - mov r2, r8 - strh r0, [r2] -_08035C42: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAD8 - ldr r0, [r6] - ldrb r0, [r0, #2] - cmp r0, #0 - bne _08035C66 - ldr r1, [r5, #0x50] - ldrb r0, [r1, #0xc] - cmp r0, #3 - beq _08035C66 - ldrb r0, [r1, #0xd] - subs r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08035C82 -_08035C66: - movs r0, #0xf - ldrsb r0, [r5, r0] - cmp r0, #0 - bge _08035C76 - ldr r0, [r6] - ldrb r0, [r0] - rsbs r0, r0, #0 - b _08035C7A -_08035C76: - ldr r0, [r6] - ldrb r0, [r0] -_08035C7A: - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_08036998 -_08035C82: - ldr r4, [r5, #0x50] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r3, r0, #0 - lsls r0, r3, #0xd - lsrs r3, r0, #8 - ldr r0, _08035CB0 @ =0xFFFFE000 - adds r3, r3, r0 - ldr r0, [r6] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - bne _08035CB4 - movs r1, #0x88 - lsls r1, r1, #6 - adds r3, r3, r1 - b _08035CBC - .align 2, 0 -_08035CB0: .4byte 0xFFFFE000 -_08035CB4: - lsrs r0, r3, #1 - movs r2, #0x88 - lsls r2, r2, #6 - adds r3, r0, r2 -_08035CBC: - adds r2, r4, #0 - adds r2, #0x7b - ldr r1, _08035D0C @ =gUnk_080CF0D8 - ldrb r0, [r5, #0xa] - subs r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r2, [r2] - adds r0, r0, r2 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r5, #0 - adds r2, r3, #0 - bl sub_08036914 - ldr r2, [r5, #0x50] - adds r2, #0x7b - ldr r1, _08035D10 @ =gUnk_080CF0DC - ldrb r0, [r5, #0xa] - subs r0, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r2, [r2] - adds r1, r1, r2 - adds r0, r5, #0 - adds r0, #0x79 - ldrb r0, [r0] - adds r0, r0, r1 - adds r1, r5, #0 - adds r1, #0x7b - strb r0, [r1] - ldrh r1, [r7] - mov r3, r8 - ldrh r2, [r3] - adds r0, r5, #0 - adds r0, #0x7a - ldrh r3, [r0] - b _08035E70 - .align 2, 0 -_08035D0C: .4byte gUnk_080CF0D8 -_08035D10: .4byte gUnk_080CF0DC -_08035D14: - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - bhi _08035D28 - bl DeleteThisEntity -_08035D28: - ldr r0, [r4] - ldrb r0, [r0, #1] - subs r0, #2 - ldrb r1, [r5, #0xb] - cmp r0, r1 - bge _08035D38 - bl DeleteThisEntity -_08035D38: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl ResolveEntityOnTop - ldr r0, [r4] - ldrb r0, [r0, #1] - subs r0, #2 - ldrb r2, [r5, #0xb] - cmp r0, r2 - bne _08035D8A - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl ResolveEntityOnTop - ldr r4, [r5, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r3, r0, #0 - lsls r0, r3, #0xd - lsrs r3, r0, #8 - adds r4, #0x7b - ldrb r0, [r4] - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r5, #0 - adds r2, r3, #0 - bl sub_08036914 - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - rsbs r0, r0, #0 - adds r1, r5, #0 - adds r1, #0x7b - strb r0, [r1] -_08035D8A: - ldr r0, [r5, #0x50] - adds r0, #0x7c - ldrb r1, [r0] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08035D9C - b _08035F6C -_08035D9C: - ldrb r2, [r5, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - orrs r1, r3 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - b _08035F6C -_08035DB0: - adds r6, r5, #0 - adds r6, #0x84 - ldr r0, [r6] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - bhi _08035DC4 - bl DeleteThisEntity -_08035DC4: - adds r0, r5, #0 - bl UpdateAnimationSingleFrame - ldr r0, [r5, #0x50] - adds r0, #0x7c - ldrb r1, [r0] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08035E24 - adds r0, r5, #0 - adds r0, #0x7d - ldrb r1, [r0] - adds r0, r5, #0 - movs r2, #0x10 - bl sub_08036AF0 - adds r2, r5, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r3, #0x7f - adds r0, r3, #0 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #7 - bne _08035E56 - ldrb r1, [r5, #0x10] - adds r0, r3, #0 - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _08035E56 - ldr r0, [r5, #0x50] - str r0, [r1, #0x50] - ldr r0, [r5, #0x54] - adds r0, #0x84 - ldr r1, [r6] - str r1, [r0] - b _08035E56 -_08035E24: - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - ldrb r2, [r5, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - orrs r1, r3 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r0, r5, #0 - bl sub_08036998 - adds r0, r5, #0 - adds r0, #0x7d - ldrb r1, [r0] - adds r0, r5, #0 - movs r2, #4 - bl sub_080369D0 - adds r4, r5, #0 - adds r4, #0x41 -_08035E56: - movs r0, #0 - strb r0, [r4] - adds r0, r5, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - rsbs r3, r3, #0 - movs r0, #0x80 - lsls r0, r0, #8 - eors r3, r0 -_08035E70: - adds r0, r5, #0 - bl sub_0805EC9C - b _08035F6C -_08035E78: - adds r4, r5, #0 - adds r4, #0x45 - ldrb r0, [r4] - cmp r0, #1 - bne _08035E88 - movs r0, #0 - strb r0, [r4] - b _08035F6C -_08035E88: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAD8 - ldr r0, [r5, #0x50] - ldrb r0, [r0, #0xd] - adds r7, r5, #0 - adds r7, #0x76 - adds r6, r5, #0 - adds r6, #0x79 - cmp r0, #4 - beq _08035EC2 - ldrb r0, [r4] - cmp r0, #1 - beq _08035EC2 - ldrb r0, [r6] - cmp r0, #0x1c - bls _08035EB0 - subs r0, #1 - strb r0, [r6] -_08035EB0: - ldrh r0, [r7] - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - bls _08035EC0 - subs r0, #1 - strh r0, [r7] - b _08035EC2 -_08035EC0: - strh r1, [r7] -_08035EC2: - ldr r4, [r5, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r3, r0, #0 - ldrb r0, [r6] - lsls r0, r0, #8 - muls r0, r3, r0 - lsrs r3, r0, #8 - adds r4, #0x7b - ldrb r0, [r4] - adds r0, #0x80 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r5, #0 - adds r2, r3, #0 - bl sub_08036914 - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x7b - strb r0, [r1] - ldrh r1, [r7] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r5, #0 - bl sub_0805EC9C - adds r0, r5, #0 - bl sub_0800445C - b _08035F6C -_08035F16: - adds r0, r5, #0 - bl sub_0800445C - adds r0, r5, #0 - bl sub_08036F60 - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #6] - cmp r0, #0 - beq _08035F48 - subs r0, #1 - strb r0, [r1, #6] - ldr r0, _08035F74 @ =gScreenTransition - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08035F48 - adds r0, r5, #0 - movs r1, #0xf - movs r2, #3 - bl CreateProjectileWithParent -_08035F48: - ldr r1, _08035F78 @ =gUnk_080CF0C4 - ldrb r0, [r5, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - adds r0, r5, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r5, #0 - bl sub_0805EC9C -_08035F6C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08035F74: .4byte gScreenTransition -_08035F78: .4byte gUnk_080CF0C4 - - thumb_func_start sub_08035F7C -sub_08035F7C: @ 0x08035F7C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _08035FD0 @ =gPlayerEntity - ldr r0, [r2, #0x2c] - ldr r1, [r4, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r4, #0 - adds r1, #0x7b - ldrb r1, [r1] - rsbs r1, r1, #0 - movs r2, #0x80 - eors r1, r2 - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - movs r1, #0x20 - cmp r0, #0 - bne _08035FB6 - movs r1, #8 -_08035FB6: - cmn r2, r1 - ble _08035FEE - cmp r2, r1 - bge _08035FEE - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0xff - beq _08035FD4 - adds r0, r4, #0 - bl sub_08036C90 - b _08036074 - .align 2, 0 -_08035FD0: .4byte gPlayerEntity -_08035FD4: - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0 - bne _08035FE6 - adds r0, r4, #0 - bl sub_08036E00 - b _08036028 -_08035FE6: - adds r0, r4, #0 - bl sub_08036D70 - b _08036028 -_08035FEE: - cmp r2, #0x80 - bls _0803600E - adds r2, r4, #0 - adds r2, #0x7a - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r1, [r2] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0, #4] - b _08036028 -_0803600E: - adds r2, r4, #0 - adds r2, #0x7a - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r2] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #4] -_08036028: - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - rsbs r0, r0, #0 - movs r1, #0x80 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - strb r0, [r4, #0x15] - adds r5, r4, #0 - adds r5, #0x7c - ldrb r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0803606C - adds r3, r4, #0 - adds r3, #0x82 - ldrh r2, [r3] - ldr r0, _08036060 @ =0x0000027F - cmp r2, r0 - bhi _0803606C - ldrb r1, [r5] - cmp r1, #1 - beq _08036064 - cmp r1, #3 - beq _08036068 - b _0803606C - .align 2, 0 -_08036060: .4byte 0x0000027F -_08036064: - adds r0, r2, #1 - b _0803606A -_08036068: - adds r0, r2, #2 -_0803606A: - strh r0, [r3] -_0803606C: - adds r0, r4, #0 - movs r1, #0x1f - bl sub_08036FAC -_08036074: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08036078 -sub_08036078: @ 0x08036078 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x79 - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080360A0 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - cmp r1, #0 - beq _080360A0 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080360B2 -_080360A0: - adds r1, r4, #0 - adds r1, #0x78 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08036D4C - b _080360BE -_080360B2: - adds r0, r4, #0 - bl ProcessMovement - cmp r0, #0 - bne _080360BE - strb r0, [r5] -_080360BE: - adds r0, r4, #0 - movs r1, #0x1f - bl sub_08036FAC - pop {r4, r5, pc} - - thumb_func_start sub_080360C8 -sub_080360C8: @ 0x080360C8 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080360E4 - adds r0, r2, #0 - bl sub_08036DA0 -_080360E4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080360E8 -sub_080360E8: @ 0x080360E8 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - cmp r0, #0 - bne _08036178 - adds r0, r4, #0 - bl ProcessMovement - movs r2, #0 - ldrb r0, [r4, #0x15] - cmp r0, #0 - beq _08036116 - cmp r0, #0x10 - beq _08036116 - ldrh r0, [r4, #0x2a] - movs r1, #0xee - lsls r1, r1, #8 - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r2, r0, #0x1f -_08036116: - ldrb r0, [r4, #0x15] - cmp r0, #0x18 - beq _0803612C - cmp r0, #8 - beq _0803612C - ldrh r1, [r4, #0x2a] - movs r0, #0xee - ands r0, r1 - cmp r0, #0 - beq _0803612C - movs r2, #1 -_0803612C: - cmp r2, #0 - beq _0803617C - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0x20 - strb r0, [r1] - adds r1, #4 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1] - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #6] - adds r0, #0x3c - strb r0, [r1, #6] - adds r0, r4, #0 - bl sub_08036C90 - movs r0, #0x3c - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl SoundReq - movs r0, #0xa6 - lsls r0, r0, #1 - bl SoundReq - b _0803617C -_08036178: - subs r0, #1 - strb r0, [r1] -_0803617C: - adds r0, r4, #0 - movs r1, #0xf - bl sub_08036FAC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08036188 -sub_08036188: @ 0x08036188 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _080361EC @ =gUnk_080CF0E0 - ldrb r0, [r5, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - adds r0, r5, #0 - bl sub_08036FE4 - adds r0, r5, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _080361EA - ldr r4, _080361F0 @ =gPlayerEntity - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - bl sub_08078B48 - bl sub_08077B20 - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x7b - ldrb r1, [r0] - adds r1, #0x80 - rsbs r1, r1, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0xe0 - lsls r2, r2, #6 - adds r0, r4, #0 - bl sub_08036914 -_080361EA: - pop {r4, r5, pc} - .align 2, 0 -_080361EC: .4byte gUnk_080CF0E0 -_080361F0: .4byte gPlayerEntity - - thumb_func_start sub_080361F4 -sub_080361F4: @ 0x080361F4 - push {lr} - adds r2, r0, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #4 - bne _08036208 - adds r0, r2, #0 - bl sub_08036D4C - b _08036236 -_08036208: - adds r1, r2, #0 - adds r1, #0x82 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1] - movs r0, #1 - strb r0, [r2, #0xb] - subs r1, #6 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _08036228 - adds r1, r2, #0 - adds r1, #0x79 - movs r0, #0x16 - b _0803622E -_08036228: - adds r1, r2, #0 - adds r1, #0x79 - movs r0, #0 -_0803622E: - strb r0, [r1] - ldr r0, _08036238 @ =0x00000155 - bl SoundReq -_08036236: - pop {pc} - .align 2, 0 -_08036238: .4byte 0x00000155 - - thumb_func_start sub_0803623C -sub_0803623C: @ 0x0803623C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x74 - ldrh r0, [r1] - cmp r0, #0xbf - bhi _08036250 - adds r0, #1 - strh r0, [r1] - b _080362A0 -_08036250: - adds r3, r2, #0 - adds r3, #0x79 - ldrb r0, [r3] - subs r0, #1 - strb r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080362A0 - adds r0, r2, #0 - adds r0, #0x7d - ldrb r1, [r0] - cmp r1, #1 - bne _08036292 - movs r0, #3 - strb r0, [r2, #0xb] - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08036280 - movs r0, #0x3c - b _08036282 -_08036280: - movs r0, #0x78 -_08036282: - strb r0, [r3] - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - subs r0, #9 - ldrb r0, [r0] - strb r0, [r1, #3] - b _0803629A -_08036292: - movs r0, #2 - strb r0, [r2, #0xb] - movs r0, #0x2d - strb r0, [r3] -_0803629A: - ldr r0, _080362A4 @ =0x00000155 - bl SoundReq -_080362A0: - pop {pc} - .align 2, 0 -_080362A4: .4byte 0x00000155 - - thumb_func_start sub_080362A8 -sub_080362A8: @ 0x080362A8 - push {r4, lr} - adds r2, r0, #0 - movs r0, #0x79 - adds r0, r0, r2 - mov ip, r0 - ldrb r0, [r0] - cmp r0, #0 - bne _080362FA - adds r4, r2, #0 - adds r4, #0x76 - adds r1, r2, #0 - adds r1, #0x74 - ldrh r3, [r1] - ldrh r0, [r4] - cmp r0, r3 - bhs _080362D0 - adds r0, r3, #0 - subs r0, #8 - strh r0, [r1] - b _08036300 -_080362D0: - movs r0, #3 - strb r0, [r2, #0xb] - ldrh r0, [r4] - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #2 - beq _080362E6 - movs r0, #0x3c - b _080362FC -_080362E6: - movs r0, #0 - mov r1, ip - strb r0, [r1] - adds r0, r2, #0 - movs r1, #0x87 - movs r2, #4 - movs r3, #0 - bl CreateObjectWithParent - b _08036300 -_080362FA: - subs r0, #1 -_080362FC: - mov r1, ip - strb r0, [r1] -_08036300: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08036304 -sub_08036304: @ 0x08036304 - push {lr} - mov ip, r0 - ldr r0, _08036328 @ =gScreenTransition - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0803632C - mov r2, ip - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #8 - strh r0, [r1] - b _08036350 - .align 2, 0 -_08036328: .4byte gScreenTransition -_0803632C: - mov r2, ip - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] - ldr r0, [r2] - ldr r0, [r0, #8] - adds r3, r0, #0 - adds r3, #0x76 - ldrh r0, [r3] - movs r1, #0xc0 - lsls r1, r1, #1 - cmp r0, r1 - bls _08036350 - strh r1, [r3] -_08036350: - mov r0, ip - adds r0, #0x7d - ldrb r1, [r0] - adds r3, r0, #0 - cmp r1, #1 - beq _0803637A - ldr r0, [r2] - ldr r0, [r0, #8] - adds r1, r0, #0 - adds r1, #0x79 - ldrb r0, [r1] - cmp r0, #0x1f - bhi _0803637A - adds r0, #1 - strb r0, [r1] - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] -_0803637A: - ldr r0, _0803638C @ =gUnk_080CF0F0 - ldrb r1, [r3] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - mov r0, ip - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803638C: .4byte gUnk_080CF0F0 - - thumb_func_start sub_08036390 -sub_08036390: @ 0x08036390 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xf - movs r2, #0 - bl CreateProjectileWithParent - str r0, [r4, #0x54] - cmp r0, #0 - beq _080363B4 - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x7b - ldrb r1, [r1] - rsbs r1, r1, #0 - movs r2, #0x80 - eors r1, r2 - strb r1, [r0, #0x15] -_080363B4: - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, [r0, #8] - adds r1, #0x79 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08036C90 - pop {r4, pc} - - thumb_func_start sub_080363CC -sub_080363CC: @ 0x080363CC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r7, r4, #0 - adds r7, #0x80 - ldrb r2, [r7] - cmp r2, #0 - bne _080364CC - ldr r5, _08036498 @ =gPlayerEntity - ldr r0, [r5, #0x2c] - ldr r1, [r4, #0x2c] - subs r0, r0, r1 - ldr r1, [r5, #0x30] - ldr r2, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - adds r2, r4, #0 - adds r2, #0x7b - ldrb r0, [r2] - adds r0, #0x80 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4, #0x15] - subs r3, r0, r1 - mov r8, r2 - cmp r3, #0 - bge _0803640C - rsbs r3, r3, #0 -_0803640C: - adds r6, r4, #0 - adds r6, #0x79 - cmp r3, #0xf - bgt _080364AA - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0xf0 - bl sub_0806FC80 - cmp r0, #0 - beq _080364AA - ldr r2, _0803649C @ =gPlayerState - ldr r1, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080364A4 - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080364AA - movs r1, #0xa0 - lsls r1, r1, #2 - mov r0, r8 - ldrb r2, [r0] - rsbs r2, r2, #0 - adds r0, r5, #0 - bl sub_0806F62C - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x48 - bl sub_0806FC80 - cmp r0, #0 - beq _080364AA - movs r0, #1 - strb r0, [r7] - movs r0, #2 - strb r0, [r6] - ldr r2, _080364A0 @ =gRoomControls - ldrh r0, [r2, #6] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldr r1, [r4, #0x2c] - subs r0, r0, r1 - ldrh r1, [r2, #8] - adds r1, #0x88 - lsls r1, r1, #0x10 - ldr r2, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - adds r2, r4, #0 - adds r2, #0x84 - ldr r1, [r2] - strb r0, [r1, #3] - ldr r1, [r2] - ldrb r0, [r1, #3] - adds r0, #0x80 - rsbs r0, r0, #0 - strb r0, [r1, #3] - movs r0, #0xed - bl SoundReq - b _080364AA - .align 2, 0 -_08036498: .4byte gPlayerEntity -_0803649C: .4byte gPlayerState -_080364A0: .4byte gRoomControls -_080364A4: - ldr r0, _080364C4 @ =0xFFFFF7FF - ands r1, r0 - str r1, [r2, #0x30] -_080364AA: - ldr r0, _080364C8 @ =gScreenTransition - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0803657A - adds r0, r4, #0 - movs r1, #0x87 - movs r2, #2 - movs r3, #0 - bl CreateObjectWithParent - b _0803657A - .align 2, 0 -_080364C4: .4byte 0xFFFFF7FF -_080364C8: .4byte gScreenTransition -_080364CC: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - adds r3, r4, #0 - adds r3, #0x84 - cmp r0, #0 - bne _080364F0 - ldr r0, [r3] - adds r1, r4, #0 - adds r1, #0x7b - ldrb r0, [r0, #3] - mov r8, r1 - ldrb r6, [r1] - cmp r0, r6 - bne _08036570 -_080364F0: - cmp r2, #1 - bne _08036510 - movs r0, #2 - strb r0, [r7] - strb r0, [r4, #0xb] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x2d - strb r0, [r1] - adds r1, #9 - movs r2, #0 - adds r0, #0xd3 - strh r0, [r1] - ldr r0, [r3] - strb r2, [r0, #2] - b _08036652 -_08036510: - movs r0, #0 - strb r0, [r7] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1] - ldr r0, [r3] - ldr r1, [r0, #8] - adds r1, #0x79 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _0803656C @ =gPlayerEntity - ldrb r2, [r1, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #1 - orrs r0, r2 - strb r0, [r1, #0x18] - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - adds r1, #0x38 - strb r5, [r1] - movs r0, #0x80 - lsls r0, r0, #3 - adds r1, r4, #0 - adds r1, #0x7b - ldrb r1, [r1] - adds r1, #0x80 - rsbs r1, r1, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - movs r2, #0x30 - bl sub_080792BC - adds r0, r4, #0 - bl sub_08036C90 - movs r0, #0xef - bl SoundReq - b _08036652 - .align 2, 0 -_0803656C: .4byte gPlayerEntity -_08036570: - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #2 - strb r0, [r1] - adds r6, r1, #0 -_0803657A: - ldrb r0, [r6] - cmp r0, #0 - bne _08036598 - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x74 - movs r2, #0 - strh r0, [r1] - strb r2, [r4, #0xb] - adds r0, r4, #0 - bl sub_08036C90 - b _08036652 -_08036598: - subs r2, r0, #1 - strb r2, [r6] - ldr r0, _080365E4 @ =gPlayerState - ldr r1, [r0, #0x30] - movs r0, #0x80 - lsls r0, r0, #4 - cmp r1, r0 - bne _080365F8 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bne _080365F8 - ldr r2, _080365E8 @ =gPlayerEntity - ldr r0, [r2, #0x2c] - ldr r1, [r4, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - mov r7, r8 - ldrb r2, [r7] - rsbs r0, r2, #0 - movs r1, #0x80 - eors r0, r1 - subs r0, r3, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - bls _080365EC - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r2, #0 - adds r0, #0x30 - b _080365F6 - .align 2, 0 -_080365E4: .4byte gPlayerState -_080365E8: .4byte gPlayerEntity -_080365EC: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r2, #0 - subs r0, #0x30 -_080365F6: - strb r0, [r1, #3] -_080365F8: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - movs r5, #1 - adds r2, r5, #0 - ands r2, r0 - cmp r2, #0 - bne _08036652 - adds r3, r4, #0 - adds r3, #0x84 - ldr r1, [r3] - ldrb r0, [r1, #3] - mov r6, r8 - ldrb r6, [r6] - cmp r0, r6 - beq _08036650 - strb r5, [r1, #2] - ldr r0, [r3] - ldrb r0, [r0, #3] - mov r7, r8 - ldrb r1, [r7] - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - bls _0803663E - adds r2, r4, #0 - adds r2, #0x7a - adds r0, r4, #0 - adds r0, #0x82 - ldrh r1, [r2] - ldrh r0, [r0] - subs r1, r1, r0 - strh r1, [r2] - b _08036652 -_0803663E: - adds r1, r4, #0 - adds r1, #0x7a - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - b _08036652 -_08036650: - strb r2, [r1, #2] -_08036652: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08036658 -sub_08036658: @ 0x08036658 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x79 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _08036678 - movs r0, #0 - strb r0, [r5, #0xb] - adds r0, r5, #0 - bl sub_08036C90 - movs r0, #0x78 - strb r0, [r4] - b _080366AC -_08036678: - adds r0, r1, #1 - strb r0, [r4] - movs r0, #1 - rsbs r0, r0, #0 - bl sub_0805308C - ldr r0, _080366B0 @ =gScreenTransition - ldr r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080366AC - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _080366A0 - movs r0, #0x92 - lsls r0, r0, #1 - bl SoundReq -_080366A0: - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #3 - movs r3, #0 - bl CreateObjectWithParent -_080366AC: - pop {r4, r5, pc} - .align 2, 0 -_080366B0: .4byte gScreenTransition - - thumb_func_start sub_080366B4 -sub_080366B4: @ 0x080366B4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x79 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - bne _080366D4 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0, #2] - adds r0, r4, #0 - bl sub_08036C90 - b _08036706 -_080366D4: - subs r0, #1 - strb r0, [r2] - ldr r0, _08036708 @ =gScreenTransition - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08036706 - adds r0, r4, #0 - movs r1, #0xf - movs r2, #2 - bl CreateProjectileWithParent - str r0, [r4, #0x54] - cmp r0, #0 - beq _08036706 - str r4, [r0, #0x50] - ldr r2, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - rsbs r0, r0, #0 - movs r1, #0x80 - eors r0, r1 - strb r0, [r2, #0x15] -_08036706: - pop {r4, pc} - .align 2, 0 -_08036708: .4byte gScreenTransition - - thumb_func_start sub_0803670C -sub_0803670C: @ 0x0803670C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803675C @ =gUnk_080CF100 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #6] - cmp r0, #0 - beq _08036746 - subs r0, #1 - strb r0, [r1, #6] - ldr r0, _08036760 @ =gScreenTransition - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08036746 - adds r0, r4, #0 - movs r1, #0xf - movs r2, #3 - bl CreateProjectileWithParent -_08036746: - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_0803675C: .4byte gUnk_080CF100 -_08036760: .4byte gScreenTransition - - thumb_func_start sub_08036764 -sub_08036764: @ 0x08036764 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - strh r1, [r4, #0x2a] - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - rsbs r0, r0, #0 - movs r1, #0x80 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x78 - strb r0, [r1] - adds r1, #9 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080368D8 - adds r0, r4, #0 - bl sub_080367B0 - pop {r4, pc} - - thumb_func_start sub_080367B0 -sub_080367B0: @ 0x080367B0 - push {r4, r5, lr} - adds r4, r0, #0 - bl ProcessMovement - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0803683A - movs r0, #2 - strb r0, [r4, #0xd] - adds r3, r4, #0 - adds r3, #0x84 - ldr r1, [r3] - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - strb r0, [r1, #3] - ldrh r1, [r4, #0x2a] - movs r0, #0xee - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080367E4 - ldr r1, [r3] - ldrb r0, [r1, #3] - rsbs r0, r0, #0 - strb r0, [r1, #3] -_080367E4: - ldrh r1, [r4, #0x2a] - movs r0, #0xee - ands r0, r1 - cmp r0, #0 - beq _080367FE - ldr r0, [r3] - ldrb r1, [r0, #3] - rsbs r1, r1, #0 - movs r5, #0x80 - rsbs r5, r5, #0 - adds r2, r5, #0 - eors r1, r2 - strb r1, [r0, #3] -_080367FE: - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0x18 - strb r0, [r1] - adds r1, #4 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1] - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - ldr r1, [r3] - ldrb r0, [r1, #6] - adds r0, #0x1e - strb r0, [r1, #6] - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl SoundReq - movs r0, #0xa6 - lsls r0, r0, #1 - bl SoundReq -_0803683A: - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08036852 - subs r1, #0x34 - movs r0, #0 - strb r0, [r1] -_08036852: - ldr r0, _08036868 @ =gScreenTransition - ldr r0, [r0] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _08036864 - ldr r0, _0803686C @ =0x00000159 - bl SoundReq -_08036864: - pop {r4, r5, pc} - .align 2, 0 -_08036868: .4byte gScreenTransition -_0803686C: .4byte 0x00000159 - - thumb_func_start sub_08036870 -sub_08036870: @ 0x08036870 - push {lr} - adds r3, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r1, [r0, #3] - movs r0, #0x7b - adds r0, r0, r3 - mov ip, r0 - ldrb r0, [r0] - subs r1, r1, r0 - adds r0, r1, #7 - cmp r0, #0xe - bhi _080368AA - movs r2, #0 - movs r0, #1 - strb r0, [r3, #0xd] - mov r1, ip - ldrb r0, [r1] - rsbs r0, r0, #0 - movs r1, #0x80 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - strb r0, [r3, #0x15] - strh r2, [r3, #0x2a] - adds r0, r3, #0 - bl ProcessMovement - b _080368D4 -_080368AA: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - bls _080368C4 - adds r2, r3, #0 - adds r2, #0x7a - adds r0, r3, #0 - adds r0, #0x82 - ldrh r1, [r2] - ldrh r0, [r0] - subs r1, r1, r0 - strh r1, [r2] - b _080368D4 -_080368C4: - adds r1, r3, #0 - adds r1, #0x7a - adds r0, r3, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] -_080368D4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080368D8 -sub_080368D8: @ 0x080368D8 - push {lr} - adds r3, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _08036902 - ldr r2, _08036910 @ =gPlayerEntity - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r2, #0x38 - movs r0, #1 - strb r0, [r2] -_08036902: - adds r0, r3, #0 - adds r0, #0x76 - movs r1, #0xa0 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - pop {pc} - .align 2, 0 -_08036910: .4byte gPlayerEntity - - thumb_func_start sub_08036914 -sub_08036914: @ 0x08036914 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - ldr r0, _08036994 @ =gSineTable - mov sb, r0 - lsls r0, r4, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - adds r1, r6, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - mov r8, r1 - bl FixedDiv - ldr r1, [r5, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r5, #0x2c] - adds r4, #0x40 - lsls r4, r4, #1 - add r4, sb - movs r1, #0 - ldrsh r0, [r4, r1] - adds r1, r6, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r1, r8 - bl FixedDiv - ldr r2, [r5, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r2, #0x30] - subs r1, r1, r0 - str r1, [r5, #0x30] - adds r2, #0x62 - ldrb r0, [r2] - adds r1, r5, #0 - adds r1, #0x62 - strb r0, [r1] - ldr r0, [r5, #0x50] - adds r0, #0x63 - ldrb r0, [r0] - adds r5, #0x63 - strb r0, [r5] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_08036994: .4byte gSineTable - - thumb_func_start sub_08036998 -sub_08036998: @ 0x08036998 - push {r4, lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x79 - ldrb r0, [r2, #0xf] - ldrb r4, [r3] - adds r1, r0, r4 - strb r1, [r3] - ldrb r4, [r2, #0xf] - movs r0, #0xf - ldrsb r0, [r2, r0] - cmp r0, #0 - bge _080369BE - ldrb r0, [r2, #0xe] - lsls r1, r1, #0x18 - lsls r0, r0, #0x18 - cmn r1, r0 - bge _080369CC - b _080369C8 -_080369BE: - movs r0, #0 - ldrsb r0, [r3, r0] - ldrb r1, [r2, #0xe] - cmp r0, r1 - ble _080369CC -_080369C8: - rsbs r0, r4, #0 - strb r0, [r2, #0xf] -_080369CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080369D0 -sub_080369D0: @ 0x080369D0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov ip, r1 - adds r6, r2, #0 - adds r1, r0, #0 - adds r1, #0x84 - ldr r4, [r1] - ldr r2, [r4, #0xc] - ldrb r1, [r4, #1] - subs r1, #1 - lsls r1, r1, #2 - adds r3, r4, #0 - adds r3, #0xc - adds r1, r3, r1 - ldr r1, [r1] - adds r1, #0x7b - adds r0, #0x79 - ldrb r0, [r0] - ldrb r1, [r1] - adds r0, r0, r1 - adds r2, #0x7b - strb r0, [r2] - ldrb r0, [r4, #1] - movs r2, #0 - cmp r0, #1 - beq _08036A58 - adds r5, r3, #0 - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - rsbs r0, r6, #0 - lsls r0, r0, #0x18 - asrs r7, r0, #0x18 -_08036A16: - lsls r0, r2, #2 - adds r0, r5, r0 - ldr r1, [r0] - adds r1, #0x7b - adds r2, #1 - lsls r0, r2, #2 - adds r0, r5, r0 - ldr r0, [r0] - adds r3, r0, #0 - adds r3, #0x7b - ldrb r1, [r1] - ldrb r0, [r3] - cmp r1, r0 - beq _08036A4C - subs r0, r0, r1 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08036A44 - cmp r0, r8 - ble _08036A4C - adds r0, r1, r6 - b _08036A4A -_08036A44: - cmp r0, r7 - bge _08036A4C - subs r0, r1, r6 -_08036A4A: - strb r0, [r3] -_08036A4C: - ldrb r0, [r4, #1] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r2, r0 - blo _08036A16 -_08036A58: - ldrb r0, [r4, #1] - subs r2, r0, #1 - cmp r2, #0 - beq _08036AE4 - ldr r0, _08036AEC @ =gSineTable - mov sb, r0 - movs r1, #0x80 - mov r8, r1 - mov r1, ip - lsls r0, r1, #0x14 - asrs r6, r0, #0x10 - lsls r0, r2, #2 - adds r0, #8 - adds r5, r0, r4 - movs r7, #0x80 - lsls r7, r7, #1 -_08036A78: - subs r4, r2, #1 - ldr r0, [r5] - adds r0, #0x7b - ldrb r0, [r0] - mov r1, r8 - eors r0, r1 - lsls r0, r0, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r6, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl FixedDiv - ldr r2, [r5] - ldr r1, [r5, #4] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r2, #0x2c] - ldr r0, [r5] - adds r0, #0x7b - ldrb r0, [r0] - mov r1, r8 - eors r0, r1 - adds r0, #0x40 - lsls r0, r0, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r6, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl FixedDiv - ldr r2, [r5] - ldr r1, [r5, #4] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x30] - subs r1, r1, r0 - str r1, [r2, #0x30] - subs r5, #4 - adds r2, r4, #0 - cmp r2, #0 - bne _08036A78 -_08036AE4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08036AEC: .4byte gSineTable - - thumb_func_start sub_08036AF0 -sub_08036AF0: @ 0x08036AF0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - str r1, [sp] - mov r8, r2 - adds r0, #0x84 - ldr r0, [r0] - str r0, [sp, #4] - ldrb r0, [r0, #1] - subs r4, r0, #1 - cmp r4, #0 - bne _08036B10 - b _08036C80 -_08036B10: - ldr r0, [sp, #4] - adds r0, #0xc - str r0, [sp, #8] - lsls r0, r1, #0x14 - asrs r0, r0, #0x10 - mov sl, r0 -_08036B1C: - mov r1, r8 - cmp r1, #0 - bne _08036BC0 - lsls r0, r4, #2 - ldr r2, [sp, #8] - adds r6, r2, r0 - ldr r0, [r6] - subs r4, #1 - lsls r1, r4, #2 - adds r5, r2, r1 - ldr r2, [r5] - movs r3, #0x2e - ldrsh r1, [r2, r3] - movs r3, #0x32 - ldrsh r2, [r2, r3] - bl sub_080041DC - mov sb, r4 - ldr r1, [sp] - cmp r1, r0 - blo _08036B48 - b _08036C78 -_08036B48: - ldr r2, [r5] - ldr r3, [r6] - ldr r0, [r2, #0x2c] - ldr r1, [r3, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r3, #0x30] - subs r1, r1, r2 - bl sub_080045DA - ldr r1, [r5] - adds r1, #0x7b - strb r0, [r1] - ldr r0, [r5] - adds r0, #0x7b - ldrb r0, [r0] - lsls r0, r0, #1 - ldr r2, _08036BBC @ =gSineTable - adds r0, r0, r2 - movs r3, #0 - ldrsh r0, [r0, r3] - mov r1, sl - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - bl FixedDiv - ldr r2, [r5] - ldr r1, [r6] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r2, #0x2c] - ldr r0, [r5] - adds r0, #0x7b - ldrb r0, [r0] - adds r0, #0x40 - lsls r0, r0, #1 - ldr r1, _08036BBC @ =gSineTable - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - mov r1, sl - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - bl FixedDiv - ldr r2, [r5] - ldr r1, [r6] - b _08036C6E - .align 2, 0 -_08036BBC: .4byte gSineTable -_08036BC0: - subs r2, r4, #1 - lsls r0, r2, #2 - ldr r3, [sp, #8] - adds r0, r3, r0 - ldr r0, [r0] - adds r5, r0, #0 - adds r5, #0x7b - lsls r1, r4, #2 - adds r0, r3, r1 - ldr r0, [r0] - adds r0, #0x7b - ldrb r4, [r5] - ldrb r3, [r0] - adds r7, r1, #0 - ldr r6, [sp, #4] - adds r6, #0xc - mov sb, r2 - cmp r4, r3 - beq _08036C0E - subs r0, r3, r4 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - ble _08036BFE - mov r2, r8 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - ble _08036C0E - subs r0, r3, r2 - b _08036C0C -_08036BFE: - mov r2, r8 - rsbs r0, r2, #0 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r1, r0 - bge _08036C0E - adds r0, r3, r2 -_08036C0C: - strb r0, [r5] -_08036C0E: - mov r3, sb - lsls r4, r3, #2 - adds r4, r6, r4 - ldr r0, [r4] - adds r0, #0x7b - ldrb r0, [r0] - lsls r0, r0, #1 - ldr r1, _08036C8C @ =gSineTable - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - mov r1, sl - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - bl FixedDiv - ldr r2, [r4] - adds r5, r6, r7 - ldr r1, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r2, #0x2c] - ldr r0, [r4] - adds r0, #0x7b - ldrb r0, [r0] - adds r0, #0x40 - lsls r0, r0, #1 - ldr r3, _08036C8C @ =gSineTable - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - mov r1, sl - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - bl FixedDiv - ldr r2, [r4] - ldr r1, [r5] -_08036C6E: - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x30] - subs r1, r1, r0 - str r1, [r2, #0x30] -_08036C78: - mov r4, sb - cmp r4, #0 - beq _08036C80 - b _08036B1C -_08036C80: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08036C8C: .4byte gSineTable - - thumb_func_start sub_08036C90 -sub_08036C90: @ 0x08036C90 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r2, [r0] - cmp r2, #4 - bne _08036CDC - adds r3, r4, #0 - adds r3, #0x81 - ldrb r0, [r3] - cmp r0, #0xff - beq _08036CDC - movs r1, #0 - strb r2, [r4, #0xd] - strb r1, [r4, #0xb] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - ldr r1, _08036CFC @ =gUnk_080CF124 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r2, r4, #0 - adds r2, #0x7e - ldrb r1, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldrb r0, [r1] - cmp r0, #5 - bne _08036D42 - movs r0, #0xff - strb r0, [r3] -_08036CDC: - movs r0, #3 - strb r0, [r4, #0xd] - adds r2, r4, #0 - adds r2, #0x7c - ldrb r1, [r2] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08036D14 - ldrb r1, [r2] - cmp r1, #1 - beq _08036D00 - cmp r1, #3 - beq _08036D0A - b _08036D42 - .align 2, 0 -_08036CFC: .4byte gUnk_080CF124 -_08036D00: - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x1e - strb r0, [r1] - b _08036D42 -_08036D0A: - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0xa - strb r0, [r1] - b _08036D42 -_08036D14: - ldr r0, _08036D2C @ =gRoomVars - movs r2, #0xc - ldrsh r1, [r0, r2] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08036D30 - adds r0, r4, #0 - adds r0, #0x79 - strb r3, [r0] - b _08036D42 - .align 2, 0 -_08036D2C: .4byte gRoomVars -_08036D30: - ldr r0, _08036D44 @ =gUnk_080CF10C - bl sub_080028F4 - ldr r1, _08036D48 @ =gUnk_080CF110 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] -_08036D42: - pop {r4, pc} - .align 2, 0 -_08036D44: .4byte gUnk_080CF10C -_08036D48: .4byte gUnk_080CF110 - - thumb_func_start sub_08036D4C -sub_08036D4C: @ 0x08036D4C - mov ip, r0 - mov r1, ip - adds r1, #0x82 - movs r3, #0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1] - mov r2, ip - adds r2, #0x84 - ldr r1, [r2] - movs r0, #2 - strb r0, [r1] - ldr r1, [r2] - movs r0, #0xff - strb r0, [r1, #4] - mov r0, ip - strb r3, [r0, #0xd] - bx lr - - thumb_func_start sub_08036D70 -sub_08036D70: @ 0x08036D70 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - strb r1, [r4, #0xd] - movs r0, #0xc0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0] - ldr r0, _08036D98 @ =gUnk_080CF134 - bl sub_080028F4 - ldr r1, _08036D9C @ =gUnk_080CF138 - adds r0, r0, r1 - ldrb r0, [r0] - adds r4, #0x79 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08036D98: .4byte gUnk_080CF134 -_08036D9C: .4byte gUnk_080CF138 - - thumb_func_start sub_08036DA0 -sub_08036DA0: @ 0x08036DA0 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - movs r2, #1 - ands r2, r0 - cmp r2, #0 - bne _08036DF0 - ldr r0, _08036DD0 @ =gRoomVars - movs r3, #0xc - ldrsh r1, [r0, r3] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08036DD4 - adds r0, r4, #0 - adds r0, #0x78 - strb r2, [r0] - b _08036DF8 - .align 2, 0 -_08036DD0: .4byte gRoomVars -_08036DD4: - ldr r0, _08036DE8 @ =gUnk_080CF13C - bl sub_080028F4 - ldr r1, _08036DEC @ =gUnk_080CF13F - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x78 - strb r1, [r0] - b _08036DF8 - .align 2, 0 -_08036DE8: .4byte gUnk_080CF13C -_08036DEC: .4byte gUnk_080CF13F -_08036DF0: - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0 - strb r0, [r1] -_08036DF8: - adds r0, r4, #0 - bl sub_08036D4C - pop {r4, pc} - - thumb_func_start sub_08036E00 -sub_08036E00: @ 0x08036E00 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r4, r0, #0 - movs r2, #0 - movs r0, #4 - strb r0, [r4, #0xd] - strb r2, [r4, #0xb] - adds r7, r4, #0 - adds r7, #0x81 - movs r0, #0xff - strb r0, [r7] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - adds r6, r4, #0 - adds r6, #0x84 - ldr r0, [r6] - strb r2, [r0, #2] - movs r0, #0x7c - adds r0, r0, r4 - mov r8, r0 - ldrb r5, [r0] - cmp r5, #0 - bne _08036E3E - adds r0, r4, #0 - adds r0, #0x7d - strb r2, [r0] - b _08036F00 -_08036E3E: - cmp r5, #4 - bne _08036ECC - str r2, [sp] - bl Random - movs r1, #3 - mov sb, r1 - ands r0, r1 - ldr r2, [sp] - cmp r0, #0 - beq _08036E62 - ldr r0, _08036E84 @ =gRoomVars - movs r3, #0xc - ldrsh r1, [r0, r3] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08036E8C -_08036E62: - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x3c - strb r0, [r1] - strh r2, [r4, #0x2a] - ldr r0, [r6] - strb r5, [r0] - ldr r0, _08036E88 @ =0x00000159 - bl SoundReq - b _08036F00 - .align 2, 0 -_08036E84: .4byte gRoomVars -_08036E88: .4byte 0x00000159 -_08036E8C: - mov r1, r8 - ldrb r0, [r1] - cmp r0, #4 - bne _08036ECC - adds r0, r4, #0 - adds r0, #0x7e - strb r2, [r0] - bl Random - adds r1, r0, #0 - mov r3, sb - ands r1, r3 - ldr r0, [r6] - ldrb r0, [r0, #5] - cmp r0, r1 - beq _08036EB0 - strb r1, [r7] - b _08036EB8 -_08036EB0: - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r7] -_08036EB8: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - subs r0, #3 - ldrb r0, [r0] - strb r0, [r1, #5] - adds r0, r4, #0 - bl sub_08036C90 - b _08036F00 -_08036ECC: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - ldr r1, _08036F0C @ =gUnk_080CF147 - cmp r0, #0 - bne _08036EDE - ldr r1, _08036F10 @ =gUnk_080CF142 -_08036EDE: - adds r2, r4, #0 - adds r2, #0x7e - ldrb r0, [r2] - adds r0, r1, r0 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x7d - strb r1, [r0] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _08036F00 - movs r0, #0 - strb r0, [r2] -_08036F00: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08036F0C: .4byte gUnk_080CF147 -_08036F10: .4byte gUnk_080CF142 - - thumb_func_start sub_08036F14 -sub_08036F14: @ 0x08036F14 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r4, #0x84 - ldr r0, [r4] - ldr r0, [r0, #8] - bl sub_0801D2B4 - movs r5, #0 - adds r7, r4, #0 -_08036F28: - ldr r0, [r7] - lsls r1, r5, #2 - adds r0, #0x20 - adds r0, r0, r1 - ldr r0, [r0] - adds r1, r6, #0 - bl sub_0801D2B4 - adds r5, #1 - cmp r5, #3 - bls _08036F28 - ldr r0, [r4] - ldrb r0, [r0, #1] - subs r5, r0, #1 - cmp r5, #0 - beq _08036F5E -_08036F48: - ldr r0, [r4] - lsls r1, r5, #2 - adds r0, #0xc - adds r0, r0, r1 - ldr r0, [r0] - adds r1, r6, #0 - bl sub_0801D2B4 - subs r5, #1 - cmp r5, #0 - bne _08036F48 -_08036F5E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08036F60 -sub_08036F60: @ 0x08036F60 - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #4 - beq _08036FA8 - adds r0, r2, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _08036FA8 - adds r3, r2, #0 - adds r3, #0x76 - movs r0, #0xe - ldrsb r0, [r2, r0] - ldrh r1, [r3] - adds r0, r0, r1 - strh r0, [r3] - adds r1, r2, #0 - adds r1, #0x74 - movs r0, #0xe - ldrsb r0, [r2, r0] - ldrh r5, [r1] - adds r0, r0, r5 - strh r0, [r1] - ldrh r0, [r3] - cmp r0, #0x9b - bhi _08036FA0 - strb r4, [r2, #0xe] - b _08036FA8 -_08036FA0: - cmp r0, #0xa4 - bls _08036FA8 - movs r0, #0xff - strb r0, [r2, #0xe] -_08036FA8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08036FAC -sub_08036FAC: @ 0x08036FAC - push {lr} - adds r2, r0, #0 - ldr r0, _08036FD0 @ =gScreenTransition - ldr r0, [r0] - ands r0, r1 - cmp r0, #0 - bne _08036FDE - adds r0, r2, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08036FD8 - ldr r0, _08036FD4 @ =0x00000163 - bl SoundReq - b _08036FDE - .align 2, 0 -_08036FD0: .4byte gScreenTransition -_08036FD4: .4byte 0x00000163 -_08036FD8: - ldr r0, _08036FE0 @ =0x000001B1 - bl SoundReq -_08036FDE: - pop {pc} - .align 2, 0 -_08036FE0: .4byte 0x000001B1 - - thumb_func_start sub_08036FE4 -sub_08036FE4: @ 0x08036FE4 - push {r4, r5, lr} - adds r2, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08037048 - adds r0, r2, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _08037048 - adds r0, r2, #0 - adds r0, #0x82 - ldrh r3, [r0] - adds r4, r0, #0 - cmp r3, #0 - beq _08037048 - adds r0, #2 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #0xff - beq _0803702C - cmp r0, #0 - bne _08037022 - adds r1, r2, #0 - adds r1, #0x7a - ldrh r5, [r1] - adds r0, r3, r5 - b _0803702A -_08037022: - adds r1, r2, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, r0, r3 -_0803702A: - strh r0, [r1] -_0803702C: - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #1 - beq _0803703C - cmp r0, #3 - beq _08037042 - b _08037048 -_0803703C: - ldrh r0, [r4] - subs r0, #1 - b _08037046 -_08037042: - ldrh r0, [r4] - subs r0, #2 -_08037046: - strh r0, [r4] -_08037048: - pop {r4, r5, pc} - .align 2, 0 diff --git a/asm/pullableMushroom.s b/asm/pullableMushroom.s index 61211893..5a2e5078 100644 --- a/asm/pullableMushroom.s +++ b/asm/pullableMushroom.s @@ -37,7 +37,7 @@ sub_0808AA1C: @ 0x0808AA1C bne _0808AA36 adds r0, r5, #0 movs r1, #0 - bl sub_0801D2B4 + bl ChangeObjPalette _0808AA36: ldrb r0, [r5, #0xa] cmp r0, #1 diff --git a/asm/whirlwind.s b/asm/whirlwind.s index 2d7befb7..5babbd3a 100644 --- a/asm/whirlwind.s +++ b/asm/whirlwind.s @@ -84,7 +84,7 @@ sub_08092CDC: @ 0x08092CDC bne _08092D50 ldr r1, _08092D4C @ =0x00000161 adds r0, r4, #0 - bl sub_0801D2B4 + bl ChangeObjPalette adds r0, r4, #0 movs r1, #1 bl InitializeAnimation diff --git a/data/const/enemy/octorokBoss.s b/data/const/enemy/octorokBoss.s deleted file mode 100644 index 01f1ce68..00000000 --- a/data/const/enemy/octorokBoss.s +++ /dev/null @@ -1,111 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_080CF040:: @ 080CF040 - .4byte sub_080356F8 - .4byte sub_080356F8 - .4byte sub_08001324 - .4byte sub_080351D8 - .4byte sub_08001242 - -gUnk_080CF054:: @ 080CF054 - .4byte sub_08035288 - .4byte sub_080352FC - .4byte sub_080354F8 - .4byte sub_0803552C - .4byte sub_08035578 - .4byte sub_08035598 - .4byte sub_080355B4 - -gUnk_080CF070:: @ 080CF070 - .incbin "octorokBoss/gUnk_080CF070.bin" - -gUnk_080CF078:: @ 080CF078 - .4byte sub_0803571C - .4byte sub_08035B94 - .4byte sub_0803520C - .4byte sub_080359B4 - .4byte sub_0803670C - -gUnk_080CF08C:: @ 080CF08C - .incbin "octorokBoss/gUnk_080CF08C.bin" - -gUnk_080CF0AC:: @ 080CF0AC - .4byte sub_080359F8 - .4byte sub_08035A24 - .4byte sub_08035A70 - .4byte sub_08035AB4 - .4byte sub_08035AEC - .4byte sub_08035B34 - -gUnk_080CF0C4:: @ 080CF0C4 - .4byte sub_08035F7C - .4byte sub_08036078 - .4byte sub_080360E8 - .4byte sub_080360C8 - .4byte sub_08036188 - -gUnk_080CF0D8:: @ 080CF0D8 - .incbin "octorokBoss/gUnk_080CF0D8.bin" - -gUnk_080CF0DC:: @ 080CF0DC - .incbin "octorokBoss/gUnk_080CF0DC.bin" - -gUnk_080CF0E0:: @ 080CF0E0 - .4byte sub_080361F4 - .4byte sub_0803623C - .4byte sub_080362A8 - .4byte sub_08036304 - -gUnk_080CF0F0:: @ 080CF0F0 - .4byte sub_08036390 - .4byte sub_080363CC - .4byte sub_08036658 - .4byte sub_080366B4 - -gUnk_080CF100:: @ 080CF100 - .4byte sub_08036764 - .4byte sub_080367B0 - .4byte sub_08036870 - -gUnk_080CF10C:: @ 080CF10C - .incbin "octorokBoss/gUnk_080CF10C.bin" - -gUnk_080CF110:: @ 080CF110 - .incbin "octorokBoss/gUnk_080CF110.bin" - -gUnk_080CF114:: @ 080CF114 - .incbin "octorokBoss/gUnk_080CF114.bin" - -gUnk_080CF119:: @ 080CF119 - .incbin "octorokBoss/gUnk_080CF119.bin" - -gUnk_080CF11E:: @ 080CF11E - .incbin "octorokBoss/gUnk_080CF11E.bin" - -gUnk_080CF124:: @ 080CF124 - .4byte gUnk_080CF114 - .4byte gUnk_080CF119 - .4byte gUnk_080CF11E - .4byte gUnk_080CF119 - -gUnk_080CF134:: @ 080CF134 - .incbin "octorokBoss/gUnk_080CF134.bin" - -gUnk_080CF138:: @ 080CF138 - .incbin "octorokBoss/gUnk_080CF138.bin" - -gUnk_080CF13C:: @ 080CF13C - .incbin "octorokBoss/gUnk_080CF13C.bin" - -gUnk_080CF13F:: @ 080CF13F - .incbin "octorokBoss/gUnk_080CF13F.bin" - -gUnk_080CF142:: @ 080CF142 - .incbin "octorokBoss/gUnk_080CF142.bin" - -gUnk_080CF147:: @ 080CF147 - .incbin "octorokBoss/gUnk_080CF147.bin" diff --git a/data/const/object/object87.s b/data/const/object/object87.s deleted file mode 100644 index 4ec58e72..00000000 --- a/data/const/object/object87.s +++ /dev/null @@ -1,19 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08123840:: @ 08123840 - .4byte sub_08099F14 - .4byte sub_0809A1B8 - .4byte sub_0809A648 - -gUnk_0812384C:: @ 0812384C - .incbin "object87/gUnk_0812384C.bin" - -gUnk_0812388C:: @ 0812388C - .incbin "object87/gUnk_0812388C.bin" - -gUnk_081238A0:: @ 081238A0 - .incbin "object87/gUnk_081238A0.bin" diff --git a/include/coord.h b/include/coord.h index 46494400..52dcf210 100644 --- a/include/coord.h +++ b/include/coord.h @@ -13,7 +13,7 @@ void PositionRelative(Entity*, Entity*, s32, s32); void CopyPositionAndSpriteOffset(Entity* param_1, Entity* param_2); void sub_0806FA90(Entity*, Entity*, s32, s32); void ResolveEntityOnTop(Entity*, Entity*); -void sub_0806FAD8(Entity*, Entity*); +void ResolveEntityBelow(Entity*, Entity*); extern const s16 gSineTable[64]; extern const s16 gCosineTable[256]; diff --git a/include/functions.h b/include/functions.h index 58e54500..4fbf644b 100644 --- a/include/functions.h +++ b/include/functions.h @@ -56,8 +56,11 @@ extern s32 GetItemPrice(); extern void DoExitTransition(ScreenTransitionData*); extern void CreateDustAt(s32, s32, u32); extern void PutItemOnSlot(u32 itemID); -extern void CreateSpeechBubbleSleep(Entity*, u32, u32); +extern Entity* CreateSpeechBubbleQuestionMark(Entity*, s32, s32); +extern Entity* CreateSpeechBubbleExclamationMark(Entity*, s32, s32); +extern Entity* CreateSpeechBubbleSleep(Entity*, s32, s32); extern u32 CheckPlayerProximity(u32, u32, u32, u32); +extern void ChangeLightLevel(s32); // Unidentified extern u32 sub_0806ED78(Entity*); @@ -80,7 +83,7 @@ extern s32 sub_0806ED9C(Entity*, u32, u32); extern void sub_0807000C(Entity*); extern void sub_08068BEC(Entity*, u32); extern s32 sub_0806F078(Entity*, s32); -extern void sub_0801D2B4(Entity*, u32); +extern void ChangeObjPalette(Entity*, u32); extern void sub_0806FD3C(Entity*); extern void sub_0805ED14(u32*); extern void sub_080A7C18(u32, u32, u32); @@ -130,7 +133,6 @@ extern void sub_0807AABC(Entity*); extern void UpdateGlobalProgress(void); extern void sub_0805B4D0(u32); extern void sub_0804D0B4(void); -extern void sub_0805308C(s32); extern void sub_080534AC(); extern void sub_0807BA8C(u32, u32); extern void sub_0804D9B0(); diff --git a/include/object.h b/include/object.h index dc2b6b43..0aec5767 100644 --- a/include/object.h +++ b/include/object.h @@ -140,7 +140,7 @@ typedef enum { SMALL_ICE_BLOCK, BIG_ICE_BLOCK, OBJECT_86, - OBJECT_87, + OCTOROK_BOSS_OBJECT, HUGE_BOOK, OBJECT_89, OBJECT_8A, @@ -336,7 +336,7 @@ extern void BigPushableLever(Entity*); extern void SmallIceBlock(Entity*); extern void BigIceBlock(Entity*); extern void Object86(Entity*); -extern void Object87(Entity*); +extern void OctorokBossObject(Entity*); extern void MacroBook(Entity*); extern void Object89(Entity*); extern void Object8A(Entity*); diff --git a/include/projectile.h b/include/projectile.h new file mode 100644 index 00000000..0ad6e7e9 --- /dev/null +++ b/include/projectile.h @@ -0,0 +1,44 @@ +#ifndef PROJECTILE_H +#define PROJECTILE_H + +typedef enum { + /*00*/ DARK_NUT_SWORD_SLASH, + /*01*/ ROCK_PROJECTILE, + /*02*/ BONE_PROJECTILE, + /*03*/ MOBLIN_SPEAR, + /*04*/ DEKU_SEED_PROJECTILE, + /*05*/ PROJECTILE_5, + /*06*/ DIRT_BALL_PROJECTILE, + /*07*/ WIND_PROJECTILE, + /*08*/ FIRE_PROJECTILE, + /*09*/ ICE_PROJECTILE, + /*0A*/ GLEEROK_PROJECTILE, + /*0B*/ KEATON_DAGGER, + /*0C*/ GUARD_LINE_OF_SIGHT, + /*0D*/ ARROW_PROJECTILE, + /*0E*/ MAZAAL_ENERGY_BEAM, + /*0F*/ OCTOROK_BOSS_PROJECTILE, + /*10*/ STALFOS_PROJECTILE, + /*11*/ LAKITU_CLOUD_PROJECTILE, + /*12*/ LAKITU_LIGHTNING, + /*13*/ MANDIBLES_PROJECTILE, + /*14*/ REMOVABLE_DUST, + /*15*/ SPIDER_WEB, + /*16*/ TORCH_TRAP_PROJECTILE, + /*17*/ GURUGURU_BAR_PROJECTILE, + /*18*/ V1_DARK_MAGIC_PROJECTILE, + /*19*/ BALL_AND_CHAIN, + /*1A*/ V1_FIRE_PROJECTILE, + /*1B*/ CANNONBALL_PROJECTILE, + /*1C*/ V1_EYE_LASER, + /*1D*/ WINDER, + /*1E*/ SPIKED_ROLLERS, + /*1F*/ V2_PROJECTILE, + /*20*/ V3_HAND_PROJECTILE, + /*21*/ V3_ELECTRIC_PROJECTILE, + /*22*/ GYORG_TAIL, + /*23*/ GYORG_MALE_ENERGY_PROJECTILE, + /*24*/ V3_TENNIS_BALL_PROJECTILE, +} Projectile; + +#endif \ No newline at end of file diff --git a/include/room.h b/include/room.h index 8561da49..e3fd4958 100644 --- a/include/room.h +++ b/include/room.h @@ -66,7 +66,7 @@ typedef struct { u8 field_0x9; u8 unk2; u8 filler2; - s16 field_0xc; + s16 lightLevel; u8 filler3[2]; u8 unk_10[4]; u32 roomFlags; diff --git a/linker.ld b/linker.ld index 2013d083..14529356 100644 --- a/linker.ld +++ b/linker.ld @@ -424,7 +424,7 @@ SECTIONS { src/enemy/mazaalHead.o(.text); src/enemy/mazaalMacro.o(.text); src/enemy/mazaalHand.o(.text); - asm/octorokBoss.o(.text); + src/enemy/octorokBoss.o(.text); asm/flyingPot.o(.text); src/enemy/gibdo.o(.text); asm/octorokGolden.o(.text); @@ -840,7 +840,7 @@ SECTIONS { asm/smallIceBlock.o(.text); asm/bigIceBlock.o(.text); src/object/object86.o(.text); - asm/object87.o(.text); + src/object/octorokBossObject.o(.text); asm/macroBook.o(.text); asm/object89.o(.text); asm/object8A.o(.text); @@ -1103,7 +1103,7 @@ SECTIONS { data/animations/enemy/mazaalMacro.o(.rodata); src/enemy/mazaalHand.o(.rodata); data/animations/enemy/mazaalHand.o(.rodata); - data/const/enemy/octorokBoss.o(.rodata); + src/enemy/octorokBoss.o(.rodata); data/animations/enemy/octorokBoss.o(.rodata); data/const/enemy/flyingPot.o(.rodata); data/const/enemy/gibdo.o(.rodata); @@ -1587,7 +1587,7 @@ SECTIONS { data/animations/object/bigIceBlock.o(.rodata); data/const/object/object86.o(.rodata); data/animations/object/object86.o(.rodata); - data/const/object/object87.o(.rodata); + src/object/octorokBossObject.o(.rodata); data/const/object/macroBook.o(.rodata); data/animations/object/macroBook.o(.rodata); data/const/object/object89.o(.rodata); diff --git a/src/coord.c b/src/coord.c index 82d994ea..1856c8a2 100644 --- a/src/coord.c +++ b/src/coord.c @@ -60,7 +60,7 @@ void ResolveEntityOnTop(Entity* param_1, Entity* param_2) { param_2->spritePriority.b0 = gUnk_08114F78[param_1->spritePriority.b0]; } -void sub_0806FAD8(Entity* param_1, Entity* param_2) { +void ResolveEntityBelow(Entity* param_1, Entity* param_2) { param_2->spritePriority.b0 = gUnk_08114F80[param_1->spritePriority.b0]; } diff --git a/src/enemy/madderpillar.c b/src/enemy/madderpillar.c index fd8d170a..45ac8b27 100644 --- a/src/enemy/madderpillar.c +++ b/src/enemy/madderpillar.c @@ -57,7 +57,7 @@ void sub_080298A4(Entity* this) { this->actionDelay = 0; this->hitType = 0x6b; this->field_0x76.HALF.HI = 0; - sub_0801D2B4(this, 0x7f); + ChangeObjPalette(this, 0x7f); EnqueueSFX(0xfe); this->child->action = 2; break; @@ -155,7 +155,7 @@ void sub_08029AE0(Entity* this) { this->speed = 0xa0; this->field_0x74.HALF.HI = 0; sub_08029EEC(this); - sub_0801D2B4(this, 0x77); + ChangeObjPalette(this, 0x77); EnqueueSFX(0x182); } } @@ -217,7 +217,7 @@ void sub_08029C08(Entity* this) { void sub_08029C2C(Entity* this) { if (--this->actionDelay == 0) { this->action = 4; - sub_0801D2B4(this, 0x7f); + ChangeObjPalette(this, 0x7f); EnqueueSFX(0x6c); } } @@ -234,7 +234,7 @@ void sub_08029C6C(Entity* this) { sub_08029BC4(this); if (this->parent->action != 3) { this->action = 1; - sub_0801D2B4(this, 0x77); + ChangeObjPalette(this, 0x77); } else { sub_0802A16C(this); } @@ -271,7 +271,7 @@ void sub_08029D14(Entity* this) { if (this->actionDelay) { if (--this->actionDelay == 0) { InitializeAnimation(this, this->animationState + 0xc); - sub_0801D2B4(this, 0x7f); + ChangeObjPalette(this, 0x7f); EnqueueSFX(0x6c); } } else { @@ -313,7 +313,7 @@ void sub_08029DE4(Entity* this) { sub_08029CF0(this); if (this->parent->action != 3) { this->action = 1; - sub_0801D2B4(this, 0x77); + ChangeObjPalette(this, 0x77); } else { sub_0802A16C(this); } @@ -486,7 +486,7 @@ bool32 sub_0802A14C(Entity* this) { } void sub_0802A16C(Entity* this) { - sub_0801D2B4(this, gUnk_080CCDD4[this->parent->field_0x7a.HWORD >> 2 & 3]); + ChangeObjPalette(this, gUnk_080CCDD4[this->parent->field_0x7a.HWORD >> 2 & 3]); } void sub_0802A18C(Entity* this) { diff --git a/src/enemy/mazaalBracelet.c b/src/enemy/mazaalBracelet.c index acccbab0..eb32b41b 100644 --- a/src/enemy/mazaalBracelet.c +++ b/src/enemy/mazaalBracelet.c @@ -1390,7 +1390,7 @@ void sub_0803BA8C(Entity* this, u32 unk) { } } if (sVar2 != 0) { - sub_0801D2B4(this, sVar2); + ChangeObjPalette(this, sVar2); (*(Entity**)&this->parent->field_0x78)->palette.b.b0 = this->palette.raw << 0x1c >> 0x1c; (*(Entity**)&this->parent->field_0x78)->palette.b.b4 = this->palette.b.b0; this->parent->child->palette.b.b0 = this->palette.raw << 0x1c >> 0x1c; diff --git a/src/enemy/moldworm.c b/src/enemy/moldworm.c index 7fb15f46..56b74703 100644 --- a/src/enemy/moldworm.c +++ b/src/enemy/moldworm.c @@ -483,13 +483,13 @@ bool32 sub_08023A38(u32 unk) { } void sub_08023A68(Entity* this) { - sub_0801D2B4(this, 5); + ChangeObjPalette(this, 5); this->spritePriority.b0 = 7; InitializeAnimation(this, 0x17); } void sub_08023A88(Entity* this, u32 unk) { - sub_0801D2B4(this, 0x22); + ChangeObjPalette(this, 0x22); this->spritePriority.b0 = 4; InitializeAnimation(this, unk); } diff --git a/src/enemy/octorokBoss.c b/src/enemy/octorokBoss.c new file mode 100644 index 00000000..7544b241 --- /dev/null +++ b/src/enemy/octorokBoss.c @@ -0,0 +1,1568 @@ +#include "global.h" +#include "audio.h" +#include "enemy.h" +#include "functions.h" +#include "object.h" +#include "projectile.h" +#include "random.h" +#include "room.h" +#include "structures.h" +#include "structures.h" +#include "utils.h" + +extern void sub_08078AC0(u32, u32, u32); +extern u32 GetRandomByWeight(const u8*); +extern u32 sub_0806FC80(Entity*, Entity*, s32); +extern void sub_080792BC(s32, u32, u32); + +enum OctorokRotation { ROTATION_CW, ROTATION_CCW, NO_ROTATION = 0xff }; + +typedef struct HelperStruct { + u8 field_0x0; // [0,1,2,4] is later stored in this->field_0xf + u8 tailCount; + u8 field_0x2; // [0,1] + u8 targetAngle; // relates to this->field_0x7a.HALF.HI + u8 rotation; // [0,1,0xff] + u8 phase4PrevAttackPattern; // [0-4], sets this->field_0x80.HALF.HI + u8 fallingStonesTimer; + u8 field_0x7; // some sort of counter that is only set when hit for the first time? + Entity* mouthObject; + Entity* tailObjects[5]; + Entity* legObjects[4]; +} HelperStruct; + +static_assert(sizeof(HelperStruct) == 0x30); + +/* +this->field_0x7c.BYTES.byte0 Boss Phase +0: unfrozen +1: frozen 1 +2: unfrozen +3: frozen 2 +4: unfrozen -> death +*/ +#define IS_FROZEN(this) (this->field_0x7c.BYTES.byte0 & 1) +#define GET_BOSS_PHASE(this) (this->field_0x7c.BYTES.byte0) +/* +this->field_0x78.HALF.HI reused timer +*/ +#define GET_TIMER(this) this->field_0x78.HALF.HI +/* +this->field_0x78.HALF.LO turns until the next attack +*/ +#define GET_ATTACK_WAIT_TURNS(this) this->field_0x78.HALF.LO +/* +this->field_0x7a.HALF.HI angle of legs +*/ +#define GET_ANGLE(this) this->field_0x7a.HWORD +#define GET_ANGLE_HI(this) this->field_0x7a.HALF.HI +/* +this->field_0x82.HWORD angular speed +*/ +#define GET_ANGULAR_VEL(this) this->field_0x82.HWORD + +enum OctorokBossPart { WHOLE, LEG_BR, LEG_FR, LEG_FL, LEG_BL, MOUTH, TAIL_END, TAIL }; +enum OctorokBossAction { + INIT, // 0 + ACTION1, // 1 + HIT, // 2 + INTRO, // 3 + BURNING, // 4 +}; + +enum OctorokBossAttack { + ATTACK_SPITROCK, // 0 + ATTACK_VACUUM, // 1 + ATTACK_SMOKE, // 2 + ATTACK_FREEZE, // 3 + NO_ATTACK, // 4 + END_OF_ATTACK_PATTERN // 5 +}; + +enum OctorokBossAction1SubAction { + ACTION1_AIMTOWARDSPLAYER, // Moving around with step sounds + ACTION1_WAITFORTURN, // Also step sounds + ACTION1_SUBACTION2, // Step sounds, some kind of attack that is started in OctorokBoss_StartRegularAttack? + ACTION1_WAITFORATTACK, // Wait for GET_TIMER(), then OctorokBoss_SetWaitTurnsForNextAttack + ACTION1_ATTACK, // Attack +}; + +/* +this->field_0x7c.BYTES.byte1 currentAttack +*/ +#define GET_CURRENT_ATTACK(this) this->field_0x7c.BYTES.byte1 +/* +this->field_0x7c.BYTES.byte2 nextAttackIndex +*/ +#define GET_NEXT_ATTACK_INDEX(this) this->field_0x7c.BYTES.byte2 + +/* +for TAIL_END object: +this->field_0x7c.BYTES.byte1 tailRadius +*/ +#define GET_TAIL_RADIUS(this) this->field_0x7c.BYTES.byte1 + +#define GET_HELPER(this) (*(HelperStruct**)&this->cutsceneBeh) + +// Which attack pattern is currently used in phase 4 +#define GET_PHASE4_ATTACK_PATTERN(this) this->field_0x80.HALF.HI + +extern void (*const OctorokBoss_Functions[])(Entity*); +extern void (*const OctorokBoss_Hit_SubActions[])(Entity*); +extern const u8 OctorokBoss_HealthPerPhase[]; +extern void (*const OctorokBoss_Actions[])(Entity*); +extern const u8 gUnk_080CF08C[]; +extern void (*const OctorokBoss_Intro_SubActions[])(Entity*); +extern void (*const OctorokBoss_Action1_SubActions[])(Entity*); +extern const u8 OctorokBoss_LegAngleOffset[]; +extern const u8 OctorokBoss_LegAngleOffset2[]; +extern void (*const OctorokBoss_Action1_Attack_Type2s[])(Entity*); +extern void (*const OctorokBoss_AttackFunctions[])(Entity*); +extern void (*const OctorokBoss_Burning_SubActions[])(Entity*); +extern const u8 OctorokBoss_AttackTimerWeights[]; +extern const u8 OctorokBoss_AttackTimerValues[]; +extern const u8* const OctorokBoss_Phase4AttackPatterns[]; +extern const u8 OctorokBoss_TurnTimeWeights[]; +extern const u8 OctorokBoss_TurnTimeValues[]; +extern const u8 OctorokBoss_WaitForAttackTurnsWeights[]; +extern const u8 OctorokBoss_WaitForAttackTurnsValues[]; +extern const u8 OctorokBoss_NormalAttackPatterns[]; +extern const u8 OctorokBoss_FrozenAttackPatterns[]; + +void OctorokBoss_Hit(Entity*); +void OctorokBoss_Action1(Entity*); +void OctorokBoss_Burning_SubAction1(Entity*); +void sub_080368D8(Entity*); +void sub_08036914(Entity*, s32, s32); +void sub_08036998(Entity*); +void sub_080369D0(Entity*, s32, s32); +void sub_08036AF0(Entity*, s32, s32); +void OctorokBoss_SetAttackTimer(Entity*); +void OctorokBoss_ResetToSubAction0(Entity*); +void OctorokBoss_WaitAnotherTurn(Entity*); +void OctorokBoss_SetWaitTurnsForNextAttack(Entity*); +void OctorokBoss_StartRegularAttack(Entity*); +void OctorokBoss_ChangePalette(Entity*, u32); +void sub_08036F60(Entity*); +void OctorokBoss_StepSound(Entity*, u32); +void sub_08036FE4(Entity*); + +void OctorokBoss(Entity* this) { + OctorokBoss_Functions[GetNextFunction(this)](this); +} + +void OctorokBoss_OnHealthZero(Entity* this) { + if (this->type == WHOLE) { + this->action = HIT; + this->subAction = 0; + this->knockbackDuration = 0; + this->health = 1; + sub_080368D8(this); + OctorokBoss_Hit(this); + } else { + DeleteThisEntity(); + } +} + +/* +Hit SubActions +0: Start +1-3: +4- +*/ +void OctorokBoss_Hit(Entity* this) { + if (GET_BOSS_PHASE(this) == 0) { + if (this->subAction != 3) { + gRoomControls.cameraTarget = GET_HELPER(this)->tailObjects[0]; + GET_HELPER(this)->field_0x7 = 0x5a; + sub_08078B48(); + } + } else { + if (GET_HELPER(this)->field_0x7 != 0) { + GET_HELPER(this)->field_0x7--; + sub_08078B48(); + } + } + OctorokBoss_Hit_SubActions[this->subAction](this); + if (this->subAction > 3) { + sub_08078B48(); + } + sub_0800445C(this); + sub_0805EC9C(this, this->field_0x76.HWORD, this->field_0x74.HWORD, GET_ANGLE(this)); +} + +void OctorokBoss_Hit_SubAction0(Entity* this) { + this->field_0x76.HWORD = 0xa0; + this->field_0x74.HWORD = 0xa0; + GET_HELPER(this)->fallingStonesTimer = 0; + if (GET_BOSS_PHASE(this) == 4) { + this->subAction = 4; + gUnk_02034490[0] = 1; + sub_08078B48(); + SoundReq(SFX_BOSS_DIE); + } else { + if (IS_FROZEN(this) == FALSE) { + this->type2 = 0; + GET_TIMER(this) = 0x3c; + } else { + if (GET_HELPER(this)->tailCount > 3) { + GET_HELPER(this)->tailCount--; + } + GET_HELPER(this)->tailObjects[0]->field_0x7c.BYTES.byte1 = 0; + GET_TIMER(this) = 0x78; + } + this->subAction = 1; + } +} + +void OctorokBoss_Hit_SubAction1(Entity* this) { + bool32 frozen = IS_FROZEN(this); + u16 diffX; + u16 diffY; + + if (frozen == 0) { + if (GET_HELPER(this)->tailObjects[0]->field_0x7c.BYTES.byte1 != 0) { + GET_HELPER(this)->tailObjects[0]->field_0x7c.BYTES.byte1--; + } + // Move to the center of the screen before freezing + diffX = 0x108 + gRoomControls.roomOriginX - this->x.HALF.HI + 0x4; + diffY = gRoomControls.roomOriginY - this->y.HALF.HI + 0x8c; + if (diffX > 8 || diffY > 8) { + GET_HELPER(this)->field_0x2 = 1; +#if defined(JP) || defined(DEMO_JP) || defined(EU) + this->direction = ((s32)sub_080045DA((((gRoomControls.roomOriginX + 0x108) << 0x10) - this->x.WORD), + (((gRoomControls.roomOriginY + 0x88) << 0x10) - this->y.WORD))) >> + 3; +#else + this->direction = ((s32)sub_080045DA(gRoomControls.roomOriginX + 0x108 - this->x.HALF.HI, + gRoomControls.roomOriginY + 0x88 - this->y.HALF.HI)) >> + 3; +#endif + this->speed = 0x100; + ProcessMovement(this); + } else { + // Freeze + if (this->type2 == 0) { + CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 5, 0); + CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 5, 1); + CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 5, 2); + CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 5, 3); + CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 5, 4); + this->type2 = 1; + } + GET_HELPER(this)->field_0x2 = frozen; + GET_TIMER(this)--; + } + } else { + u32 i; + for (i = GET_HELPER(this)->tailCount - 1; i != 0; i--) { + Entity* tail = GET_HELPER(this)->tailObjects[i - 1]; + tail->spriteSettings.draw |= 1; + } + if ((gScreenTransition.frameCount & 2) != 0) { + CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 6, 0); + } + GET_TIMER(this)--; + } + if (GET_TIMER(this) == 0) { + this->subAction = 2; + GET_BOSS_PHASE(this)++; + sub_080AE068(this); + if (IS_FROZEN(this) == FALSE) { + this->hitType = 0x5f; + LoadFixedGFX(this, 0x108); + ChangeObjPalette(this, 0xef); + OctorokBoss_ChangePalette(this, 0xef); + InitAnimationForceUpdate(GET_HELPER(this)->tailObjects[0], 1); + } else { + this->hitType = 0x61; + LoadFixedGFX(this, 0x109); + ChangeObjPalette(this, 0xf0); + OctorokBoss_ChangePalette(this, 0xf3); + InitAnimationForceUpdate(GET_HELPER(this)->tailObjects[0], 2); + } + CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 8, 0); + } +} + +void OctorokBoss_Hit_SubAction2(Entity* this) { + if (GET_HELPER(this)->tailObjects[0]->field_0x7c.BYTES.byte1 != 0x80) { + GET_HELPER(this)->tailObjects[0]->field_0x7c.BYTES.byte1++; + } else { + this->subAction = 3; + GET_TIMER(this) = 0x96; + gRoomControls.cameraTarget = &gPlayerEntity; + } +} + +void OctorokBoss_Hit_SubAction3(Entity* this) { + if (GET_TIMER(this)-- == 0) { + this->health = OctorokBoss_HealthPerPhase[GET_BOSS_PHASE(this)]; + COLLISION_ON(this); + this->action = ACTION1; + this->subAction = ACTION1_AIMTOWARDSPLAYER; + GET_NEXT_ATTACK_INDEX(this) = 0; + OctorokBoss_SetWaitTurnsForNextAttack(this); + } +} + +void OctorokBoss_Hit_SubAction4(Entity* this) { + Entity* object; + this->subAction = 5; + object = CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 9, 0); + if (object != NULL) { + gRoomControls.cameraTarget = object; + } +} + +void OctorokBoss_Hit_SubAction5(Entity* this) { + this->subAction = 6; + GET_TIMER(this) = 0x78; + this->field_0x80.HALF.LO = 0; + this->field_0x82.HALF.LO = 0; +} + +// Wildly rotating with explosion fx +void OctorokBoss_Hit_SubAction6(Entity* this) { + s16 tmp; + + GET_ANGLE_HI(this) -= 4; + this->field_0x80.HALF.HI += 8; + if ((this->field_0x80.HALF.LO & 0x80) != 0) { + this->field_0x80.HALF.LO -= (Random() & 3); + if ((this->field_0x80.HALF.LO & 0x80) == 0) { + this->field_0x80.HALF.LO = ((this->field_0x80.HALF.LO & 0x80) << 0x18) >> 0x18; + } + } else { + this->field_0x80.HALF.LO += (Random() & 3); + if ((this->field_0x80.HALF.LO) >= 0x19) { + this->field_0x80.HALF.LO |= 0x80; + } + } + tmp = FixedMul(gSineTable[this->field_0x80.HALF.HI], (this->field_0x80.HALF.LO & 0x7f) << 8); + tmp = FixedDiv(tmp, 0x100); + this->spriteOffsetX = tmp >> 8; + tmp = FixedMul(gSineTable[this->field_0x80.HALF.HI + 0x40], (this->field_0x80.HALF.LO & 0x7f) * 0x100); + tmp = FixedDiv(tmp, 0x100); + this->spriteOffsetY = -((tmp << 0x10) >> 8) >> 0x10; + if (GET_TIMER(this) == 0) { + if ((gScreenTransition.frameCount & 0xfU) == 0) { + // Explosion in the center + CreateFx(this, 0x48, 0); + // Explosion at the front right leg + CreateFx(GET_HELPER(this)->legObjects[0], 0x48, 0); + } + if (++this->field_0x82.HALF.LO == 0x79) { + GET_HELPER(this)->mouthObject->health = 1; + SoundReq(SFX_BOSS_DIE); + // Kill this boss + sub_0804A7D4(this); + } + } else { + GET_TIMER(this)--; + } +} + +void OctorokBoss_OnTick(Entity* this) { + OctorokBoss_Actions[this->action](this); + this->spriteRendering.b3 = 3; +} + +ASM_FUNC("asm/non_matching/octorokBoss/OctorokBoss_Init.inc", void OctorokBoss_Init(Entity* this)) +/*{ + + // TODO where to use GET_HELPER(this) and where to use helper? + u32 leg; + u32 nextLeg; + u32 tail; + u32 nextTail; + HelperStruct* helper; + + this->action = ACTION1; + this->spriteSettings.draw = 3; + switch (this->type) { + case WHOLE: + this->spritePriority.b0 = 4; + GET_BOSS_PHASE(this) = 0; + this->actionDelay = 1; + helper = (HelperStruct*)zMalloc(sizeof(HelperStruct)); + GET_HELPER(this) = helper; + if (helper == NULL) { + // Kill this boss + sub_0804A7D4(this); + return; + } + this->myHeap = (u32*)helper; + GET_HELPER(this)->fallingStonesTimer = 0; + helper->field_0x0 = 2; + helper->field_0x2 = 0; + helper->tailCount = 5; + this->spriteRendering.b0 = 3; + this->field_0x6c.HALF.HI |= 1; + this->field_0x76.HWORD = 0xa0; + this->field_0x74.HWORD = 0xa0; + GET_ANGLE(this) = 0; + + // Create legs + leg = 0; + while (leg < 4) { + this->child = CreateEnemy(OCTOROK_BOSS, leg + 1); + if (this->child != NULL) { + CopyPosition(this, this->child); + this->child->parent = this; + GET_HELPER(this->child) = helper; + helper->legObjects[leg] = this->child; + } + leg = leg + 1; + } + + // Create mouth + this->child = CreateEnemy(OCTOROK_BOSS, MOUTH); + if (this->child != NULL) { + CopyPosition(this, this->child); + this->child->parent = this; + GET_HELPER(this->child) = GET_HELPER(this); + } + + // Create tail end + this->child = CreateEnemy(OCTOROK_BOSS, TAIL_END); + if (this->child != NULL) { + CopyPosition(this, this->child); + this->child->parent = this; + GET_HELPER(this->child) = helper; + GET_HELPER(this)->tailObjects[0] = this->child; + } + + // Create tails + tail = 0; + while (tail < 4) { + this->child = CreateEnemy(OCTOROK_BOSS, TAIL); + nextTail = tail + 1; + if (this->child != NULL) { + this->child->type2 = tail; + CopyPosition(this, this->child); + this->child->parent = this; + GET_HELPER(this->child) = helper; + helper->tailObjects[tail + 1] = this->child; + } + tail = nextTail; + } + + this->action = INTRO; + this->subAction = 0; + GET_TIMER(this) = 0x3c; + gPlayerEntity.spriteSettings.draw = 0; + gPlayerEntity.x.HALF.HI = this->x.HALF.HI; + gPlayerEntity.y.HALF.HI = this->y.HALF.HI - 0xa0; + gRoomControls.cameraTarget = this; + break; + + case LEG_BR: + case LEG_FR: + case LEG_FL: + case LEG_BL: + this->actionDelay = 0x10; + GET_TIMER(this) = 0; + if ((this->type & 2) == 0) { + this->field_0xf = 2; + } else { + this->field_0xf = 0xfe; + } + this->field_0x74.HWORD = 0x100; + if ((this->type & 1) == 0) { + this->field_0x76.HWORD = 0xff00; + } else { + this->field_0x76.HWORD = 0x100; + } + break; + + case MOUTH: + this->field_0x76.HWORD = 0x100; + this->field_0x74.HWORD = 0x100; + GET_TIMER(this) = 0x1c; + GET_HELPER(this)->mouthObject = this; + break; + + case TAIL_END: + this->field_0x76.HWORD = 0x100; + this->field_0x74.HWORD = 0x100; + this->spritePriority.b0 = 0; + GET_TIMER(this) = 0; + this->actionDelay = 0x10; + this->field_0xf = 1; + GET_TAIL_RADIUS(this) = 0x80; + break; + } + if (this->type != TAIL_END) { + InitializeAnimation(this, gUnk_080CF08C[this->type * 4]); + } else { + InitAnimationForceUpdate(this, gUnk_080CF08C[this->type * 4]); + } + OctorokBoss_Action1(this); +} +*/ + +void OctorokBoss_Intro(Entity* this) { + sub_08078B48(); + gUnk_02034490[0] = 1; + sub_08036F60(this); + OctorokBoss_Intro_SubActions[this->subAction](this); + sub_0805EC9C(this, this->field_0x76.HWORD, this->field_0x74.HWORD, GET_ANGLE(this)); +} + +void OctorokBoss_Intro_SubAction0(Entity* this) { + // Wait until the camera is on the Octorok + if (GET_TIMER(this)-- == 0) { + this->subAction = 1; + GET_ANGULAR_VEL(this) = 0x100; + GET_HELPER(this)->field_0x0 = 2; + } +} + +void OctorokBoss_Intro_SubAction1(Entity* this) { + // Rotate Octorok to player + if (GET_ANGLE_HI(this) == 0x80) { + GET_TIMER(this) = 0x3c; + this->subAction = 2; + GET_HELPER(this)->field_0x0 = 0; + // Octorok scream + SoundReq(SFX_159); + } else { + GET_ANGLE(this) += GET_ANGULAR_VEL(this); + } + OctorokBoss_StepSound(this, 0xf); +} + +void OctorokBoss_Intro_SubAction2(Entity* this) { + // Wait for scream end + if (GET_TIMER(this)-- == 0) { + this->subAction = 3; + GET_TIMER(this) = 0x3c; + gPlayerEntity.spriteSettings.draw |= 1; + gRoomControls.cameraTarget = &gPlayerEntity; + gRoomControls.unk5 = 1; + } +} + +void OctorokBoss_Intro_SubAction3(Entity* this) { + // Move the camera to the player + if (GET_TIMER(this)-- == 0) { + // Move the player inside the arena + gPlayerEntity.direction = 0x10; + gPlayerEntity.animationState = 4; + sub_08078AC0(0x1e, 0, 0); + GET_TIMER(this) = 0x3c; + this->subAction = 4; + } +} + +void OctorokBoss_Intro_SubAction4(Entity* this) { + if (GET_TIMER(this)-- == 0) { + this->subAction = 5; + GET_TIMER(this) = 0x2d; + // Make the player look towards the exit + gPlayerEntity.animationState = 0; + } else { + // Spawn exclamation bubble at a certain time + if (GET_TIMER(this) == 0x1e) { + CreateSpeechBubbleExclamationMark(&gPlayerEntity, 0xc, -0x18); + } + } +} + +void OctorokBoss_Intro_SubAction5(Entity* this) { + if (gPlayerEntity.animationState == 4) { + if (GET_TIMER(this)++ > 0x1e) { + // Play boss theme, enable control and switch to main action + this->action = ACTION1; + this->subAction = 0; + gRoomControls.unk5 = gPlayerEntity.animationState; + OctorokBoss_SetAttackTimer(this); + gUnk_02034490[0] = 0; + SoundReq(BGM_BOSS_THEME); + } + } else { + if (GET_TIMER(this)-- == 0) { + // Player looks back towards Octorok + gPlayerEntity.animationState = 4; + } + } +} + +void OctorokBoss_Action1(Entity* this) { + Entity* object; + u32 radius; + u8 angle; + + if (this->type != WHOLE) { + this->iframes = this->parent->iframes; + } + switch (this->type) { + case LEG_BR: + case LEG_FR: + case LEG_FL: + case LEG_BL: + if ((this->parent->field_0x6c.HALF.HI & 2) != 0) { + DeleteThisEntity(); + } + if (GET_HELPER(this)->mouthObject->health == 1) { + if ((s16)this->field_0x76.HWORD < 0) { + this->field_0x76.HWORD -= 4; + } else { + this->field_0x76.HWORD += 4; + } + if ((s16)this->field_0x74.HWORD < 0) { + this->field_0x74.HWORD -= 4; + } else { + this->field_0x74.HWORD += 4; + } + } + ResolveEntityBelow(this->parent, this); + if (((GET_HELPER(this)->field_0x2 != 0) || (this->parent->action == INTRO)) || + (1 < (u8)(this->parent->subAction - 3))) { + if ((s8)this->field_0xf < 0) { + this->field_0xf = -GET_HELPER(this)->field_0x0; + } else { + this->field_0xf = GET_HELPER(this)->field_0x0; + } + sub_08036998(this); + } + radius = 0x10000 / this->parent->field_0x76.HWORD; + radius = radius << 0xd >> 0x8; + radius = radius - 0x2000; + if (GET_HELPER(this)->mouthObject->health == 1) { + radius = radius + 0x2200; + } else { + radius = (radius >> 1) + 0x2200; + } + angle = -(this->parent->field_0x7a.HALF.HI + OctorokBoss_LegAngleOffset[this->type - 1]); + sub_08036914(this, angle, radius); + GET_ANGLE_HI(this) = + this->parent->field_0x7a.HALF.HI + OctorokBoss_LegAngleOffset2[this->type - 1] + GET_TIMER(this); + sub_0805EC9C(this, this->field_0x76.HWORD, this->field_0x74.HWORD, GET_ANGLE(this)); + break; + + case TAIL: + if (GET_HELPER(this)->mouthObject->health < 2) { + DeleteThisEntity(); + } + if ((GET_HELPER(this)->tailCount - 2) < this->type2) { + DeleteThisEntity(); + } + ResolveEntityOnTop(this->parent, this); + if (GET_HELPER(this)->tailCount - 2 == this->type2) { + ResolveEntityOnTop(this->parent, this); + radius = 0x10000 / this->parent->field_0x74.HWORD; + radius = radius << 0xd >> 0x8; + angle = -this->parent->field_0x7a.HALF.HI; + sub_08036914(this, angle, radius); + GET_ANGLE_HI(this) = -this->parent->field_0x7a.HALF.HI; + } + if (IS_FROZEN(this->parent) == 0) { + this->spriteSettings.draw |= 1; + } + break; + + case TAIL_END: + if (GET_HELPER(this)->mouthObject->health < 2) { + DeleteThisEntity(); + } + UpdateAnimationSingleFrame(this); + if (IS_FROZEN(this->parent)) { + sub_08036AF0(this, GET_TAIL_RADIUS(this), 0x10); + if ((this->bitfield & 0x7f) == 7) { + COLLISION_OFF(this); + object = CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 0, 0); + this->child = object; + if (object != NULL) { + object->parent = this->parent; + GET_HELPER(this->child) = GET_HELPER(this); + } + } + } else { + COLLISION_ON(this); + this->spriteSettings.draw |= 1; + sub_08036998(this); + sub_080369D0(this, GET_TAIL_RADIUS(this), 4); + } + this->bitfield = 0; + sub_0805EC9C(this, this->field_0x76.HWORD, this->field_0x74.HWORD, -GET_ANGLE(this) ^ 0x8000); + break; + + case MOUTH: + if (this->health == 1) { + this->health = 0; + } else { + ResolveEntityBelow(this->parent, this); + if ((this->parent->subAction != 4) && (this->health != 1)) { + if (GET_TIMER(this) > 0x1c) { + GET_TIMER(this)--; + } + if (this->field_0x76.HWORD > 0x100) { + this->field_0x76.HWORD--; + } else { + this->field_0x76.HWORD = 0x100; + } + } + radius = 0x10000 / this->parent->field_0x74.HWORD; + radius = radius * (GET_TIMER(this) << 8) >> 8; + angle = -(this->parent->field_0x7a.HALF.HI + 0x80); + sub_08036914(this, angle, radius); + + GET_ANGLE_HI(this) = this->parent->field_0x7a.HALF.HI; + sub_0805EC9C(this, this->field_0x76.HWORD, this->field_0x74.HWORD, GET_ANGLE(this)); + sub_0800445C(this); + } + break; + + case WHOLE: + sub_0800445C(this); + sub_08036F60(this); + if (GET_HELPER(this)->fallingStonesTimer != 0) { + GET_HELPER(this)->fallingStonesTimer--; + if ((gScreenTransition.frameCount & 3) == 0) { + // Falling stones + CreateProjectileWithParent(this, OCTOROK_BOSS_PROJECTILE, 3); + } + } + OctorokBoss_Action1_SubActions[this->subAction](this); + sub_0805EC9C(this, this->field_0x76.HWORD, this->field_0x74.HWORD, GET_ANGLE(this)); + break; + } +} + +void OctorokBoss_Action1_AimTowardsPlayer(Entity* this) { + s32 tmp1; + s32 tmp2; + + tmp1 = (u8)(sub_080045DA(gPlayerEntity.x.WORD - this->x.WORD, gPlayerEntity.y.WORD - this->y.WORD) - + (((u8)(-GET_ANGLE_HI(this)) ^ 0x80))); + if (IS_FROZEN(this) == FALSE) { + tmp2 = 8; + } else { + tmp2 = 32; + } + // Probably that the boss is aiming at the player? + if (tmp1 > -tmp2 && tmp1 < tmp2) { + if (GET_PHASE4_ATTACK_PATTERN(this) != 0xff) { + OctorokBoss_SetAttackTimer(this); + return; + } + if (GET_ATTACK_WAIT_TURNS(this) == 0) { + OctorokBoss_StartRegularAttack(this); + } else { + OctorokBoss_WaitAnotherTurn(this); // Resets to subaction1 + } + } else { + // Rotate to face the player + if ((u32)tmp1 > 0x80) { + GET_ANGLE(this) += GET_ANGULAR_VEL(this); + GET_HELPER(this)->rotation = ROTATION_CW; + } else { + GET_ANGLE(this) -= GET_ANGULAR_VEL(this); + GET_HELPER(this)->rotation = ROTATION_CCW; + } + } + this->direction = (u8)(-GET_ANGLE_HI(this) ^ 0x80U) >> 3; + if (IS_FROZEN(this)) { + if (GET_ANGULAR_VEL(this) < 0x280) { + switch (GET_BOSS_PHASE(this)) { + case 1: + GET_ANGULAR_VEL(this)++; + break; + case 3: + GET_ANGULAR_VEL(this) += 2; + break; + } + } + } + OctorokBoss_StepSound(this, 0x1f); +} + +void OctorokBoss_Action1_WaitForTurn(Entity* this) { + if (((GET_TIMER(this)-- == 0) || (GET_BOSS_PHASE(this) == 0)) || (IS_FROZEN(this))) { + GET_ATTACK_WAIT_TURNS(this)--; + OctorokBoss_ResetToSubAction0(this); + } else { + if (ProcessMovement(this) == 0) { + GET_TIMER(this) = 0; + } + } + OctorokBoss_StepSound(this, 0x1f); +} + +void OctorokBoss_Action1_WaitForAttack(Entity* this) { + if (GET_TIMER(this)-- == 0) { + OctorokBoss_SetWaitTurnsForNextAttack(this); + } +} + +// Charge forwards and let stones fall when a collision occurs. +void OctorokBoss_Action1_ChargeAttack(Entity* this) { + bool32 knockbackCondition; + + if (GET_TIMER(this) == 0) { + ProcessMovement(this); + knockbackCondition = 0; + if ((this->direction != 0) && (this->direction != 0x10)) { + knockbackCondition = BOOLCAST((u32)this->collisions & 0xee00); + } + if (((this->direction != 0x18) && (this->direction != 8)) && ((this->collisions & 0xee) != 0)) { + knockbackCondition = 1; + } + if (knockbackCondition != 0) { + this->knockbackDuration = 0x20; + this->field_0x46 = 0x200; + this->knockbackDirection = this->direction ^ 0x10; + GET_HELPER(this)->fallingStonesTimer += 0x3c; + OctorokBoss_SetAttackTimer(this); + sub_08080964(0x3c, 0); + SoundReq(SFX_158); + SoundReq(SFX_14C); + } + } else { + GET_TIMER(this)--; + } + OctorokBoss_StepSound(this, 0xf); +} + +void OctorokBoss_Action1_Attack(Entity* this) { + OctorokBoss_Action1_Attack_Type2s[this->type2](this); + sub_08036FE4(this); + + if (this->field_0x80.HALF.LO != 0) { + gPlayerEntity.spriteSettings.draw = 0; + gPlayerEntity.flags &= 0x7f; + gPlayerEntity.collisionLayer = 2; + sub_08078B48(); + sub_08077B20(); + gPlayerEntity.parent = this; + sub_08036914(&gPlayerEntity, (u8) - (GET_ANGLE_HI(this) + 0x80), 0x3800); + } +} + +void OctorokBoss_Action1_Attack_Type2_0(Entity* this) { + if (GET_CURRENT_ATTACK(this) == NO_ATTACK) { + OctorokBoss_ResetToSubAction0(this); + } else { + GET_ANGULAR_VEL(this) = 0x100; + this->type2 = 1; + if (IS_FROZEN(this) == FALSE) { + GET_TIMER(this) = 0x16; + } else { + GET_TIMER(this) = 0; + } + SoundReq(SFX_155); + } +} + +void OctorokBoss_Action1_Attack_Type2_1(Entity* this) { + if (this->field_0x74.HWORD < 0xc0) { + this->field_0x74.HWORD++; + } else { + if (GET_TIMER(this)-- == 0) { + if (GET_CURRENT_ATTACK(this) == ATTACK_VACUUM) { + this->type2 = 3; + if (IS_FROZEN(this)) { + GET_TIMER(this) = 0x3c; + } else { + GET_TIMER(this) = 0x78; + } + GET_HELPER(this)->targetAngle = GET_ANGLE_HI(this); + } else { + this->type2 = 2; + GET_TIMER(this) = 0x2d; + } + SoundReq(SFX_155); + } + } +} + +void OctorokBoss_Action1_Attack_Type2_2(Entity* this) { + if (GET_TIMER(this) == 0) { + if (this->field_0x76.HWORD < this->field_0x74.HWORD) { + this->field_0x74.HWORD -= 8; + return; + } + this->type2 = 3; + this->field_0x74.HWORD = this->field_0x76.HWORD; + if (GET_CURRENT_ATTACK(this) != ATTACK_SMOKE) { + GET_TIMER(this) = 0x3c; + } else { + GET_TIMER(this) = 0; + CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 4, 0); + } + } else { + GET_TIMER(this)--; + } +} + +void OctorokBoss_Action1_Attack_Type2_3(Entity* this) { + if ((gScreenTransition.frameCount & 2) != 0) { + GET_HELPER(this)->mouthObject->field_0x76.HWORD -= 8; + } else { + GET_HELPER(this)->mouthObject->field_0x76.HWORD += 8; + if (0x180 < GET_HELPER(this)->mouthObject->field_0x76.HWORD) { + GET_HELPER(this)->mouthObject->field_0x76.HWORD = 0x180; + } + } + if (GET_CURRENT_ATTACK(this) != ATTACK_VACUUM) { + if (GET_HELPER(this)->mouthObject->field_0x78.HALF.HI < 0x20) { + GET_HELPER(this)->mouthObject->field_0x78.HALF.HI++; + GET_HELPER(this)->mouthObject->field_0x76.HWORD += 8; + } + } + OctorokBoss_AttackFunctions[GET_CURRENT_ATTACK(this)](this); +} + +void OctorokBoss_ExecuteAttackSpitRock(Entity* this) { + this->child = CreateProjectileWithParent(this, OCTOROK_BOSS_PROJECTILE, 0); + if (this->child != NULL) { + this->child->parent = this; + this->child->direction = ((u8)-GET_ANGLE_HI(this) ^ 0x80); + } + GET_HELPER(this)->mouthObject->field_0x78.HALF.HI++; + + OctorokBoss_SetAttackTimer(this); +} + +void OctorokBoss_ExecuteAttackVacuum(Entity* this) { + s32 tmp; + + if (this->field_0x80.HALF.LO == 0) { + this->direction = sub_080045DA(gPlayerEntity.x.WORD - this->x.WORD, gPlayerEntity.y.WORD - this->y.WORD); + tmp = ((u8) - (GET_ANGLE_HI(this) + 0x80)) - this->direction; + if (tmp < 0) { + tmp = -tmp; + } + if (tmp < 0x10) { + if (sub_0806FC80(this, &gPlayerEntity, 0xf0) != 0) { + if ((gPlayerState.flags & 0x800) == 0) { + if ((gPlayerEntity.flags & 0x80) != 0) { + sub_0806F62C(&gPlayerEntity, 0x280, -GET_ANGLE_HI(this)); + if (sub_0806FC80(this, &gPlayerEntity, 0x48) != 0) { + this->field_0x80.HALF.LO = 1; + GET_TIMER(this) = 2; + GET_HELPER(this)->targetAngle = + sub_080045DA((gRoomControls.roomOriginX + 0x108) * 0x10000 - this->x.WORD, + (gRoomControls.roomOriginY + 0x88) * 0x10000 - this->y.WORD); + GET_HELPER(this)->targetAngle = (u8) - (GET_HELPER(this)->targetAngle + 0x80); + SoundReq(SFX_ED); + } + } + } else { + gPlayerState.flags &= 0xfffff7ff; + } + } + } + if ((gScreenTransition.frameCount & 3) == 0) { + CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 2, 0); + } + } else { + if ((IS_FROZEN(this)) || (GET_HELPER(this)->targetAngle == GET_ANGLE_HI(this))) { + if (this->field_0x80.HALF.LO == 1) { + this->field_0x80.HALF.LO = 2; + this->type2 = 2; + GET_TIMER(this) = 0x2d; + GET_ANGULAR_VEL(this) = 0x100; + GET_HELPER(this)->field_0x2 = 0; + return; + } + this->field_0x80.HALF.LO = 0; + GET_ANGULAR_VEL(this) = 0x100; + GET_HELPER(this)->mouthObject->field_0x78.HALF.HI++; + gPlayerEntity.spriteSettings.draw = 1; + gPlayerEntity.flags &= 0x7f; + gPlayerEntity.collisionLayer = 1; + sub_080792BC(0x400, (u32)(-(GET_ANGLE_HI(this) + 0x80) * 0x1000000) >> 0x1b, 0x30); + OctorokBoss_SetAttackTimer(this); + SoundReq(SFX_EF); + return; + } + GET_TIMER(this) = 2; + } + if (GET_TIMER(this) == 0) { + this->field_0x74.HWORD = this->field_0x76.HWORD; + this->type2 = 0; + OctorokBoss_SetAttackTimer(this); + } else { + GET_TIMER(this)--; + if ((gPlayerState.flags == 0x800) && (GET_TIMER(this) == 0x3c)) { + tmp = sub_080045DA(gPlayerEntity.x.WORD - this->x.WORD, gPlayerEntity.y.WORD - this->y.WORD); + if ((u8)((tmp - ((u8)-GET_ANGLE_HI(this) ^ 0x80))) > 0x80) { + GET_HELPER(this)->targetAngle = GET_ANGLE_HI(this) + 0x30; + } else { + GET_HELPER(this)->targetAngle = GET_ANGLE_HI(this) - 0x30; + } + } + if (IS_FROZEN(this) == FALSE) { + if (GET_HELPER(this)->targetAngle != GET_ANGLE_HI(this)) { + GET_HELPER(this)->field_0x2 = 1; + if ((u8)(GET_HELPER(this)->targetAngle - GET_ANGLE_HI(this)) > 0x80) { + GET_ANGLE(this) -= GET_ANGULAR_VEL(this); + } else { + GET_ANGLE(this) += GET_ANGULAR_VEL(this); + } + } else { + GET_HELPER(this)->field_0x2 = IS_FROZEN(this); + } + } + } +} + +void OctorokBoss_ExecuteAttackSmoke(Entity* this) { + if (GET_TIMER(this) == 0xff) { + this->type2 = 0; + OctorokBoss_SetAttackTimer(this); + GET_TIMER(this) = 0x78; + } else { + GET_TIMER(this)++; + ChangeLightLevel(-1); + if ((gScreenTransition.frameCount & 3) == 0) { + if ((gScreenTransition.frameCount & 7) == 0) { + SoundReq(SFX_124); + } + CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 3, 0); + } + } +} + +void OctorokBoss_ExecuteAttackFreeze(Entity* this) { + if (GET_TIMER(this) == 0) { + GET_HELPER(this)->field_0x2 = 0; + OctorokBoss_SetAttackTimer(this); + } else { + GET_TIMER(this)--; + if ((gScreenTransition.frameCount & 3) == 0) { + this->child = CreateProjectileWithParent(this, OCTOROK_BOSS_PROJECTILE, 2); + if (this->child != NULL) { + this->child->parent = this; + this->child->direction = (u8)-GET_ANGLE_HI(this) ^ 0x80; + } + } + } +} + +void OctorokBoss_Burning(Entity* this) { + OctorokBoss_Burning_SubActions[this->subAction](this); + if (GET_HELPER(this)->fallingStonesTimer != 0) { + GET_HELPER(this)->fallingStonesTimer--; + if ((gScreenTransition.frameCount & 7) == 0) { + // Falling stones + CreateProjectileWithParent(this, OCTOROK_BOSS_PROJECTILE, 3); + } + } + sub_0805EC9C(this, this->field_0x76.HWORD, this->field_0x74.HWORD, GET_ANGLE(this)); +} + +void OctorokBoss_Burning_SubAction0(Entity* this) { + this->subAction = 1; + this->speed = 0x200; + this->collisions = 0; + this->direction = (u8)(-GET_ANGLE_HI(this) ^ 0x80U) >> 3; + GET_TIMER(this) = 0x78; + GET_ANGULAR_VEL(this) = 0x180; + GET_HELPER(this)->field_0x0 = 4; + sub_080368D8(this); + OctorokBoss_Burning_SubAction1(this); +} + +void OctorokBoss_Burning_SubAction1(Entity* this) { + ProcessMovement(this); + if (this->collisions != 0) { + this->subAction = 2; + GET_HELPER(this)->targetAngle = GET_ANGLE_HI(this); + if ((this->collisions & 0xee00) != 0) { + GET_HELPER(this)->targetAngle = -GET_HELPER(this)->targetAngle; + } + if ((this->collisions & 0xee) != 0) { + GET_HELPER(this)->targetAngle = -GET_HELPER(this)->targetAngle ^ 0x80; + } + this->knockbackDuration = 0x18; + this->field_0x46 = 0x200; + this->knockbackDirection = this->direction ^ 0x10; + GET_HELPER(this)->fallingStonesTimer += 0x1e; + sub_08080964(0x1e, 0); + SoundReq(SFX_158); + SoundReq(SFX_14C); + } + if (GET_TIMER(this)-- == 0) { + this->health = 0; + } + if ((gScreenTransition.frameCount & 0x1f) == 0) { + SoundReq(SFX_159); + } +} + +void OctorokBoss_Burning_SubAction2(Entity* this) { + if ((u32)(GET_HELPER(this)->targetAngle - GET_ANGLE_HI(this) + 7) < 0xf) { + this->subAction = 1; + this->direction = ((u8)-GET_ANGLE_HI(this) ^ 0x80) >> 3; + this->collisions = 0; + ProcessMovement(this); + } else { + if ((u8)(GET_HELPER(this)->targetAngle - GET_ANGLE_HI(this)) >= 0x81) { + GET_ANGLE(this) -= GET_ANGULAR_VEL(this); + } else { + GET_ANGLE(this) += GET_ANGULAR_VEL(this); + } + } +} + +void sub_080368D8(Entity* this) { + if (this->field_0x80.HALF.LO != 0) { + gPlayerEntity.spriteSettings.draw = 1; + gPlayerEntity.flags |= 0x80; + gPlayerEntity.collisionLayer = 1; + } + this->field_0x76.HWORD = 0xa0; + this->field_0x74.HWORD = 0xa0; +} + +void sub_08036914(Entity* this, s32 angle, s32 radius) { + s16 tmp; + + tmp = FixedMul(gSineTable[angle], radius); + tmp = FixedDiv(tmp, 0x100); + this->x.WORD = this->parent->x.WORD + ((tmp << 0x10) >> 8); + tmp = FixedMul(gSineTable[angle + 0x40], radius); + tmp = FixedDiv(tmp, 0x100); + this->y.WORD = this->parent->y.WORD - ((tmp << 0x10) >> 8); + this->spriteOffsetX = this->parent->spriteOffsetX; + this->spriteOffsetY = this->parent->spriteOffsetY; +} + +NONMATCH("asm/non_matching/octorokBoss/sub_08036998.inc", void sub_08036998(Entity* this)) { + u32 tmp; + s8* tmp2; + s8 tmp3; + s32 a, b; + + // TODO regalloc in this awful structure here + tmp2 = &GET_TIMER(this); + tmp = this->field_0xf + (u8)*tmp2; + *tmp2 = tmp; + if ((s8)this->field_0xf < 0) { + a = tmp; + b = -this->actionDelay; + if (a << 0x18 < b << 0x18) { + this->field_0xf = -this->field_0xf; + } + } else { + if (((s8)*tmp2) > ((s32)this->actionDelay)) { + this->field_0xf = -this->field_0xf; + } + } +} +END_NONMATCH + +// Calculate tail angles regular +ASM_FUNC("asm/non_matching/octorokBoss/sub_080369D0.inc", void sub_080369D0(Entity* this, s32 radius, s32 angleSpeed)) +/*{ + s16 r1; + s32 iVar7; + + u32 index; + s32 tmp; + + s16 angleDiff; + Entity** tailObj; + + HelperStruct* helper = GET_HELPER(this); + + // Calculate the angle for the tail end + helper->tailObjects[0]->field_0x7a.HALF.HI = + helper->tailObjects[helper->tailCount - 1]->field_0x7a.HALF.HI + GET_TIMER(this); + + // iterate tails from 0 to tailCount-1 to calculate the angles + for (index = 0; index < helper->tailCount - 1; index++) { + if (helper->tailObjects[index]->field_0x7a.HALF.HI != helper->tailObjects[index + 1]->field_0x7a.HALF.HI) { + angleDiff = + helper->tailObjects[index + 1]->field_0x7a.HALF.HI - helper->tailObjects[index]->field_0x7a.HALF.HI; + if (angleDiff >= 1) { + if ((s8)-angleSpeed > angleDiff) { + helper->tailObjects[index + 1]->field_0x7a.HALF.HI = + helper->tailObjects[index]->field_0x7a.HALF.HI + angleSpeed; + } + } else { + if ((u8)angleSpeed < angleDiff) { + helper->tailObjects[index + 1]->field_0x7a.HALF.HI = + helper->tailObjects[index]->field_0x7a.HALF.HI - angleSpeed; + } + } + } + } + + // iterate tails from tailCount-1 to 0 to calculate the positions + index = helper->tailCount - 1; + tailObj = &helper->tailObjects[index]; + while (index != 0) { + // r1 = (s16)((u32)(radius << 0x14) >> 0x10); + index--; + tmp = FixedMul(gSineTable[(*tailObj)->prev->field_0x7a.HALF.HI ^ 0x80], radius); + tmp = FixedDiv(tmp, 0x100); + (*tailObj)->prev->x.WORD = (*tailObj)->next->x.WORD + ((tmp << 0x10) >> 8); + tmp = FixedMul(gSineTable[((*tailObj)->prev->field_0x7a.HALF.HI ^ 0x80) + 0x40], radius); + tmp = FixedDiv(tmp, 0x100); + (*tailObj)->prev->y.WORD = (*tailObj)->next->y.WORD - ((tmp << 0x10) >> 8); + tailObj--; + } +}*/ + +// calculate tail angles frozen sub_08036AF0 +ASM_FUNC("asm/non_matching/octorokBoss/sub_08036AF0.inc", void sub_08036AF0(Entity* this, s32 radius, s32 angleSpeed)) +/*{ + u8 bVar1; + u8 cVar2; + s16 _newY; + Entity** tailObjects; + u32 uVar5; + + s16 angleDiff; + s16 tmp; + u32 index; + Entity* prevTailObject; + Entity* currentTailObject; + HelperStruct* helper; + + helper = GET_HELPER(this); + for (index = helper->tailCount - 1; index != 0; index--) { + if (angleSpeed == 0) { + if (radius >= sub_080041DC(helper->tailObjects[index], helper->tailObjects[index - 1]->x.HALF.HI, + helper->tailObjects[index - 1]->y.HALF.HI)) { + return; + } else { + helper->tailObjects[index - 1]->field_0x7a.HALF.HI = + sub_080045DA(helper->tailObjects[index - 1]->x.WORD - helper->tailObjects[index]->x.WORD, + helper->tailObjects[index - 1]->y.WORD - helper->tailObjects[index]->y.WORD); + + tmp = FixedMul(gSineTable[helper->tailObjects[index - 1]->field_0x7a.HALF.HI], radius); + tmp = FixedDiv(tmp, 0x100); + helper->tailObjects[index - 1]->x.WORD = helper->tailObjects[index]->x.WORD + (((s32)tmp << 0x10) >> 8); + tmp = FixedMul(gSineTable[helper->tailObjects[index - 1]->field_0x7a.HALF.HI + 0x40], radius); + helper->tailObjects[index - 1]->y.WORD = + helper->tailObjects[index]->y.WORD - ((FixedDiv(tmp, 0x100) << 0x10) >> 8); + } + } else { + if (helper->tailObjects[index - 1]->field_0x7a.HALF.HI != helper->tailObjects[index]->field_0x7a.HALF.HI) { + angleDiff = ((helper->tailObjects[index]->field_0x7a.HALF.HI - + helper->tailObjects[index - 1]->field_0x7a.HALF.HI) * + 0x1000000) >> + 0x18; + if (angleDiff >= 1) { + if ((u8)angleSpeed > angleDiff) { + helper->tailObjects[index - 1]->field_0x7a.HALF.HI = + helper->tailObjects[index]->field_0x7a.HALF.HI - angleSpeed; + } + } else { + if ((s8)-angleSpeed < angleDiff) { + helper->tailObjects[index - 1]->field_0x7a.HALF.HI = + helper->tailObjects[index]->field_0x7a.HALF.HI + angleSpeed; + } + } + } + tmp = FixedMul(gSineTable[helper->tailObjects[index - 1]->field_0x7a.HALF.HI], radius); + tmp = FixedDiv(tmp, 0x100); + helper->tailObjects[index - 1]->x.WORD = helper->tailObjects[index]->x.WORD + ((tmp << 0x10) >> 8); + tmp = FixedMul(gSineTable[helper->tailObjects[index - 1]->field_0x7a.HALF.HI + 0x40], radius); + helper->tailObjects[index - 1]->y.WORD = + helper->tailObjects[index]->y.WORD - ((FixedDiv(tmp, 0x100) << 0x10) >> 8); + } + } +}*/ + +void OctorokBoss_SetAttackTimer(Entity* this) { + const u8* attackPatterns; + if ((GET_BOSS_PHASE(this) == 4) && (GET_PHASE4_ATTACK_PATTERN(this) != 0xff)) { + this->subAction = ACTION1_ATTACK; + this->type2 = 0; + this->field_0x80.HALF.LO = 0; + attackPatterns = OctorokBoss_Phase4AttackPatterns[GET_PHASE4_ATTACK_PATTERN(this)]; + GET_CURRENT_ATTACK(this) = attackPatterns[GET_NEXT_ATTACK_INDEX(this)]; + GET_NEXT_ATTACK_INDEX(this) += 1; + if (GET_CURRENT_ATTACK(this) != END_OF_ATTACK_PATTERN) { + return; + } + // End of this pattern, choose the next pattern. + GET_PHASE4_ATTACK_PATTERN(this) = 0xff; + } + this->subAction = ACTION1_WAITFORATTACK; + if (IS_FROZEN(this)) { + switch (GET_BOSS_PHASE(this)) { + case 1: + GET_TIMER(this) = 30; + break; + case 3: + GET_TIMER(this) = 10; + break; + } + } else { + if ((s16)gRoomVars.lightLevel != 0x100) { + // Constantly attack when its dark. + GET_TIMER(this) = 1; + } else { + GET_TIMER(this) = OctorokBoss_AttackTimerValues[GetRandomByWeight(OctorokBoss_AttackTimerWeights)]; + } + } +} + +void OctorokBoss_ResetToSubAction0(Entity* this) { + GET_ANGULAR_VEL(this) = 0x100; + GET_HELPER(this)->field_0x0 = 2; + GET_HELPER(this)->rotation = NO_ROTATION; + this->subAction = ACTION1_AIMTOWARDSPLAYER; +} + +void OctorokBoss_WaitAnotherTurn(Entity* this) { + this->subAction = ACTION1_WAITFORTURN; + this->speed = 0xc0; + GET_HELPER(this)->field_0x0 = 1; + GET_TIMER(this) = OctorokBoss_TurnTimeValues[GetRandomByWeight(OctorokBoss_TurnTimeWeights)]; +} + +void OctorokBoss_SetWaitTurnsForNextAttack(Entity* this) { + GET_PHASE4_ATTACK_PATTERN(this) = 0xff; + if (IS_FROZEN(this) == FALSE) { + if ((s16)gRoomVars.lightLevel != 0x100) { + // Constantly attack when its dark. + GET_ATTACK_WAIT_TURNS(this) = IS_FROZEN(this); + } else { + GET_ATTACK_WAIT_TURNS(this) = + OctorokBoss_WaitForAttackTurnsValues[GetRandomByWeight(OctorokBoss_WaitForAttackTurnsWeights)]; + } + } else { + GET_ATTACK_WAIT_TURNS(this) = 0; + } + OctorokBoss_ResetToSubAction0(this); +} + +void OctorokBoss_StartRegularAttack(Entity* this) { + const u8* attackPattern; + + // Set us up for an attack + this->subAction = ACTION1_ATTACK; + this->type2 = 0; + GET_PHASE4_ATTACK_PATTERN(this) = 0xff; + this->field_0x80.HALF.LO = 0; + GET_HELPER(this)->field_0x2 = 0; + if (GET_BOSS_PHASE(this) == 0) { + // In phase 0 just spit rocks. + GET_CURRENT_ATTACK(this) = ATTACK_SPITROCK; + return; + } + if (GET_BOSS_PHASE(this) == 4) { + if (((Random() & 3) == 0) || ((s16)gRoomVars.lightLevel != 0x100)) { + this->subAction = ACTION1_SUBACTION2; + this->speed = 0x200; + GET_TIMER(this) = 0x3c; + this->collisions = 0; + GET_HELPER(this)->field_0x0 = 4; + SoundReq(SFX_159); + return; + } + if (GET_BOSS_PHASE(this) == 4) { + // Select a new attack pattern that is not the previous one. + u32 rand; + GET_NEXT_ATTACK_INDEX(this) = 0; + rand = Random() & 3; + if (GET_HELPER(this)->phase4PrevAttackPattern != rand) { + GET_PHASE4_ATTACK_PATTERN(this) = rand; + } else { + GET_PHASE4_ATTACK_PATTERN(this) = (GET_HELPER(this)->phase4PrevAttackPattern + 1) & 3; + } + GET_HELPER(this)->phase4PrevAttackPattern = GET_PHASE4_ATTACK_PATTERN(this); + OctorokBoss_SetAttackTimer(this); + return; + } + } + + if (IS_FROZEN(this) == FALSE) { + attackPattern = OctorokBoss_NormalAttackPatterns; + } else { + attackPattern = OctorokBoss_FrozenAttackPatterns; + } + GET_CURRENT_ATTACK(this) = attackPattern[GET_NEXT_ATTACK_INDEX(this)]; + if (++GET_NEXT_ATTACK_INDEX(this) > 4) { + GET_NEXT_ATTACK_INDEX(this) = 0; + } +} + +void OctorokBoss_ChangePalette(Entity* this, u32 paletteIndex) { + u32 i; + + ChangeObjPalette(GET_HELPER(this)->mouthObject, paletteIndex); + + for (i = 0; i < 4; i++) { + ChangeObjPalette(GET_HELPER(this)->legObjects[i], paletteIndex); + } + + for (i = GET_HELPER(this)->tailCount - 1; i != 0; i--) { + ChangeObjPalette(GET_HELPER(this)->tailObjects[i], paletteIndex); + } +} + +void sub_08036F60(Entity* this) { + if ((this->subAction != 4) && (IS_FROZEN(this) == FALSE)) { + this->field_0x76.HWORD += (s8)this->actionDelay; + this->field_0x74.HWORD += (s8)this->actionDelay; + if (this->field_0x76.HWORD < 0x9c) { + this->actionDelay = 1; + } else { + if (this->field_0x76.HWORD > 0xa4) { + this->actionDelay = 0xff; + } + } + } +} + +void OctorokBoss_StepSound(Entity* this, u32 frameMask) { + if ((gScreenTransition.frameCount & frameMask) == 0) { + if (IS_FROZEN(this) == FALSE) { + SoundReq(SFX_163); + } else { + SoundReq(SFX_ICE_BLOCK_SLIDE); + } + } +} + +void sub_08036FE4(Entity* this) { + if ((IS_FROZEN(this)) && (this->field_0x80.HALF.LO == 0)) { + if (GET_ANGULAR_VEL(this) != 0) { + if (GET_HELPER(this)->rotation != NO_ROTATION) { + if (GET_HELPER(this)->rotation == ROTATION_CW) { + GET_ANGLE(this) += GET_ANGULAR_VEL(this); + } else { + GET_ANGLE(this) -= GET_ANGULAR_VEL(this); + } + } + switch (GET_BOSS_PHASE(this)) { + case 1: + GET_ANGULAR_VEL(this)--; + break; + case 3: + GET_ANGULAR_VEL(this) -= 2; + break; + } + } + } +} + +void (*const OctorokBoss_Functions[])(Entity*) = { + OctorokBoss_OnTick, OctorokBoss_OnTick, sub_08001324, OctorokBoss_OnHealthZero, sub_08001242, +}; + +void (*const OctorokBoss_Hit_SubActions[])(Entity*) = { + OctorokBoss_Hit_SubAction0, OctorokBoss_Hit_SubAction1, OctorokBoss_Hit_SubAction2, OctorokBoss_Hit_SubAction3, + OctorokBoss_Hit_SubAction4, OctorokBoss_Hit_SubAction5, OctorokBoss_Hit_SubAction6, +}; + +const u8 OctorokBoss_HealthPerPhase[] = { + 3, 1, 3, 1, 3, 1, 3, 0, +}; + +void (*const OctorokBoss_Actions[])(Entity*) = { + OctorokBoss_Init, OctorokBoss_Action1, OctorokBoss_Hit, OctorokBoss_Intro, OctorokBoss_Burning, +}; + +const u8 gUnk_080CF08C[] = { + 0, 4, 0, 0, 1, 5, 0, 0, 1, 4, 0, 0, 1, 3, 0, 0, 1, 2, 0, 0, 2, 1, 0, 0, 1, 1, 0, 0, 3, 6, 0, 0, +}; + +void (*const OctorokBoss_Intro_SubActions[])(Entity*) = { + OctorokBoss_Intro_SubAction0, OctorokBoss_Intro_SubAction1, OctorokBoss_Intro_SubAction2, + OctorokBoss_Intro_SubAction3, OctorokBoss_Intro_SubAction4, OctorokBoss_Intro_SubAction5, +}; +void (*const OctorokBoss_Action1_SubActions[])(Entity*) = { + OctorokBoss_Action1_AimTowardsPlayer, OctorokBoss_Action1_WaitForTurn, OctorokBoss_Action1_ChargeAttack, + OctorokBoss_Action1_WaitForAttack, OctorokBoss_Action1_Attack, +}; + +const u8 OctorokBoss_LegAngleOffset[] = { + 40, + 80, + 176, + 216, +}; +const u8 OctorokBoss_LegAngleOffset2[] = { + 128, + 0, + 0, + 128, +}; +void (*const OctorokBoss_Action1_Attack_Type2s[])(Entity*) = { + OctorokBoss_Action1_Attack_Type2_0, + OctorokBoss_Action1_Attack_Type2_1, + OctorokBoss_Action1_Attack_Type2_2, + OctorokBoss_Action1_Attack_Type2_3, +}; +void (*const OctorokBoss_AttackFunctions[])(Entity*) = { + OctorokBoss_ExecuteAttackSpitRock, + OctorokBoss_ExecuteAttackVacuum, + OctorokBoss_ExecuteAttackSmoke, + OctorokBoss_ExecuteAttackFreeze, +}; +void (*const OctorokBoss_Burning_SubActions[])(Entity*) = { + OctorokBoss_Burning_SubAction0, + OctorokBoss_Burning_SubAction1, + OctorokBoss_Burning_SubAction2, +}; + +// These attack timers are only used if the boss isn't frozen and gRoomVars.field_0xc != 0x100 +const u8 OctorokBoss_AttackTimerWeights[] = { + 48, + 96, + 80, + 32, +}; +const u8 OctorokBoss_AttackTimerValues[] = { + 5, + 10, + 15, + 30, +}; + +// 5: don't attack +const u8 OctorokBoss_Phase4AttackPattern0[] = { + ATTACK_SPITROCK, NO_ATTACK, ATTACK_SPITROCK, ATTACK_SMOKE, END_OF_ATTACK_PATTERN, +}; +const u8 OctorokBoss_Phase4AttackPattern1[] = { + ATTACK_VACUUM, NO_ATTACK, ATTACK_SPITROCK, ATTACK_SMOKE, END_OF_ATTACK_PATTERN, +}; +const u8 OctorokBoss_Phase4AttackPattern2[] = { + ATTACK_SPITROCK, NO_ATTACK, ATTACK_SPITROCK, NO_ATTACK, ATTACK_SPITROCK, END_OF_ATTACK_PATTERN, +}; + +const u8* const OctorokBoss_Phase4AttackPatterns[] = { + OctorokBoss_Phase4AttackPattern0, + OctorokBoss_Phase4AttackPattern1, + OctorokBoss_Phase4AttackPattern2, + OctorokBoss_Phase4AttackPattern1, +}; +const u8 OctorokBoss_TurnTimeWeights[] = { + 48, + 96, + 80, + 32, +}; +const u8 OctorokBoss_TurnTimeValues[] = { + 70, + 80, + 90, + 100, +}; +const u8 OctorokBoss_WaitForAttackTurnsWeights[] = { + 64, + 128, + 64, +}; +const u8 OctorokBoss_WaitForAttackTurnsValues[] = { + 1, + 2, + 3, +}; +const u8 OctorokBoss_NormalAttackPatterns[] = { + ATTACK_VACUUM, ATTACK_SPITROCK, ATTACK_VACUUM, ATTACK_SPITROCK, ATTACK_SPITROCK, +}; +const u8 OctorokBoss_FrozenAttackPatterns[] = { + ATTACK_VACUUM, ATTACK_FREEZE, ATTACK_VACUUM, ATTACK_FREEZE, ATTACK_VACUUM, +}; diff --git a/src/enemy/puffstool.c b/src/enemy/puffstool.c index 1d326ef1..207934a9 100644 --- a/src/enemy/puffstool.c +++ b/src/enemy/puffstool.c @@ -68,7 +68,7 @@ void sub_08025020(Entity* this) { this->cutsceneBeh.HWORD = 0x294; this->hitType = 0x83; this->field_0x82.HALF.LO = 0; - sub_0801D2B4(this, 0x7c); + ChangeObjPalette(this, 0x7c); } this->action = 7; this->actionDelay = 0x3c; @@ -133,7 +133,7 @@ void sub_080251AC(Entity* this) { this->cutsceneBeh.HWORD = 0x294; this->hitType = 0x83; this->field_0x82.HALF.LO = 0; - sub_0801D2B4(this, 0x7c); + ChangeObjPalette(this, 0x7c); } GetNextFrame(this); } @@ -360,7 +360,7 @@ void sub_0802563C(Entity* this) { GetNextFrame(this); if (--this->cutsceneBeh.HWORD == 0) { - sub_0801D2B4(this, 0x28); + ChangeObjPalette(this, 0x28); this->hitType = 0x82; this->field_0x82.HALF.LO = 240; sub_080256B4(this); @@ -369,9 +369,9 @@ void sub_0802563C(Entity* this) { u32 tmp3 = gUnk_080CBFF8[this->cutsceneBeh.HWORD >> 4]; if ((this->cutsceneBeh.HWORD & tmp3) == 0) { if (this->cutsceneBeh.HWORD & (tmp3 + 1)) { - sub_0801D2B4(this, 124); + ChangeObjPalette(this, 124); } else { - sub_0801D2B4(this, 40); + ChangeObjPalette(this, 40); } } } diff --git a/src/enemy/treeItem.c b/src/enemy/treeItem.c index 290cac38..ddc645dd 100644 --- a/src/enemy/treeItem.c +++ b/src/enemy/treeItem.c @@ -6,7 +6,7 @@ static bool32 ShouldSpawnTreeItem(Entity*); -extern u32 sub_080028F4(const u8*); +extern u32 GetRandomByWeight(const u8*); extern void sub_08049CF4(Entity*); const u8 gTreeItemDropTables[][16] = { @@ -33,7 +33,7 @@ void TreeItem(Entity* this) { if (this->action == 0) { this->action++; - this->field_0x68.HALF.LO = sub_080028F4(gTreeItemDropTables[this->type]); + this->field_0x68.HALF.LO = GetRandomByWeight(gTreeItemDropTables[this->type]); if (this->field_0x68.HALF.LO > FAIRY_INDEX) { DeleteThisEntity(); } diff --git a/src/enemy/vaatiTransfiguredEye.c b/src/enemy/vaatiTransfiguredEye.c index 05132764..78fa065e 100644 --- a/src/enemy/vaatiTransfiguredEye.c +++ b/src/enemy/vaatiTransfiguredEye.c @@ -228,12 +228,12 @@ void sub_08045A28(Entity* this) { switch (frames) { case 0x20: this->field_0x82.HALF.HI = 1; - sub_0801D2B4(this, 0x13e); + ChangeObjPalette(this, 0x13e); break; case 0x00: case 0x40: this->field_0x82.HALF.HI = 2; - sub_0801D2B4(this, 0x13f); + ChangeObjPalette(this, 0x13f); break; default: break; @@ -243,11 +243,11 @@ void sub_08045A28(Entity* this) { switch (frames) { case 0x10: this->field_0x82.HALF.HI = type; - sub_0801D2B4(this, 0x13b); + ChangeObjPalette(this, 0x13b); break; case 0: this->field_0x82.HALF.HI = 2; - sub_0801D2B4(this, 0x13f); + ChangeObjPalette(this, 0x13f); break; default: break; @@ -257,15 +257,15 @@ void sub_08045A28(Entity* this) { switch (frames) { case 0x20: this->field_0x82.HALF.HI = 1; - sub_0801D2B4(this, 0x13e); + ChangeObjPalette(this, 0x13e); break; case 0x10: this->field_0x82.HALF.HI = 0; - sub_0801D2B4(this, 0x13b); + ChangeObjPalette(this, 0x13b); break; case 0x40: this->field_0x82.HALF.HI = 2; - sub_0801D2B4(this, 0x13f); + ChangeObjPalette(this, 0x13f); break; default: break; @@ -275,7 +275,7 @@ void sub_08045A28(Entity* this) { switch (frames) { case 0: this->field_0x82.HALF.HI = 2; - sub_0801D2B4(this, 0x13f); + ChangeObjPalette(this, 0x13f); break; default: break; @@ -291,11 +291,11 @@ void sub_08045A28(Entity* this) { switch (this->frame & 0x70) { case 0x10: this->field_0x82.HALF.HI = 2; - sub_0801D2B4(this, 0x13b); + ChangeObjPalette(this, 0x13b); break; case 0x20: this->field_0x82.HALF.HI = 1; - sub_0801D2B4(this, 0x13e); + ChangeObjPalette(this, 0x13e); break; default: break; @@ -306,11 +306,11 @@ void sub_08045A28(Entity* this) { switch (temp) { case 0: this->field_0x82.HALF.HI = temp; - sub_0801D2B4(this, 0x13f); + ChangeObjPalette(this, 0x13f); break; case 0x10: this->field_0x82.HALF.HI = 2; - sub_0801D2B4(this, 0x13b); + ChangeObjPalette(this, 0x13b); break; default: break; @@ -320,7 +320,7 @@ void sub_08045A28(Entity* this) { switch (this->frame & 0x70) { case 0: this->field_0x82.HALF.HI = this->frame & 0x70; - sub_0801D2B4(this, 0x13f); + ChangeObjPalette(this, 0x13f); break; default: break; diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index 43d870c1..ad7ac87f 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -457,7 +457,7 @@ void VaatiWrathType0ActionA(Entity* this) { this->direction = 0; this->speed = 0x100; this->zVelocity = 0x12000; - sub_0801D2B4(this, 0x16b); + ChangeObjPalette(this, 0x16b); InitAnimationForceUpdate(this, 5); type1 = ((VaatiWrathHeapStruct*)this->myHeap)->type1; type1->subAction = 1; @@ -501,7 +501,7 @@ void VaatiWrathType0ActionB(Entity* this) { if (this->actionDelay == 0) { this->action = 0xc; this->subAction = 0; - sub_0801D2B4(this, 0x140); + ChangeObjPalette(this, 0x140); InitAnimationForceUpdate(this, 8); InitializeAnimation(((VaatiWrathHeapStruct*)this->myHeap)->type1, 0x10); InitializeAnimation(((VaatiWrathHeapStruct*)this->myHeap)->type2, 0x18); @@ -579,7 +579,7 @@ void sub_08041BE8(Entity* this) { entity->updatePriority = 3; sub_080AE068(entity); LoadFixedGFX(entity, 0x1f5); - sub_0801D2B4(entity, 0x16b); + ChangeObjPalette(entity, 0x16b); InitializeAnimation(entity, 0x1a); entity = ((VaatiWrathHeapStruct*)this->myHeap)->type3; @@ -664,9 +664,9 @@ void sub_08041D84(Entity* this) { } else { if (this->field_0xf < 0xf0) { if ((0xb7 < this->field_0xf) && ((this->field_0xf & 7) == 0)) { - sub_0801D2B4(((VaatiWrathHeapStruct*)this->myHeap)->type2, - gUnk_080D0E80[(this->field_0xf - 0xb8) >> 3]); - sub_0801D2B4(this->child, gUnk_080D0E80[(this->field_0xf - 0xb8) >> 3]); + ChangeObjPalette(((VaatiWrathHeapStruct*)this->myHeap)->type2, + gUnk_080D0E80[(this->field_0xf - 0xb8) >> 3]); + ChangeObjPalette(this->child, gUnk_080D0E80[(this->field_0xf - 0xb8) >> 3]); } if (this->field_0xf == 0xe6) { DoFade(7, 4); @@ -674,7 +674,7 @@ void sub_08041D84(Entity* this) { } else { this->subAction = 4; this->spriteSettings.draw = 1; - sub_0801D2B4(this, 0x173); + ChangeObjPalette(this, 0x173); InitAnimationForceUpdate(this, 0xb); } this->field_0xf++; diff --git a/src/manager/manager23.c b/src/manager/manager23.c index 1d895f30..43f0c688 100644 --- a/src/manager/manager23.c +++ b/src/manager/manager23.c @@ -80,7 +80,7 @@ void sub_0805BD5C(Manager23* this) { } else { if (GetTileType(this->field_0x20, this->manager.unk_0b) == 0x76) { SetFlag(this->field_0x3e); - sub_0805308C(this->manager.unk_0e); + ChangeLightLevel(this->manager.unk_0e); DeleteThisEntity(); } } @@ -106,7 +106,7 @@ void sub_0805BDB4(Manager23* this) { return; } SetFlag(this->field_0x3e); - sub_0805308C(this->manager.unk_0e); + ChangeLightLevel(this->manager.unk_0e); this->manager.action = 2; this->field_0x22 = this->field_0x36 * 0x3c; return; @@ -117,7 +117,7 @@ void sub_0805BDB4(Manager23* this) { CreateDustAt(*(s16*)&this->field_0x38, *(s16*)&this->field_0x3a, this->manager.unk_0b); ClearFlag(this->field_0x3e); sub_0807BA8C(this->field_0x20, this->manager.unk_0b); - sub_0805308C(-this->manager.unk_0e); + ChangeLightLevel(-this->manager.unk_0e); this->manager.action = 1; } else { if (CheckFlags(this->field_0x3c) == 0) { @@ -139,7 +139,7 @@ void sub_0805BE70(Manager23* this, u32 param_2) { void sub_0805BE94(Manager23* this) { SetTileType(0x76, ((this->field_0x38 << 0x10) >> 0x14 & 0x3fU) | ((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6, this->manager.unk_0b); - sub_0805308C(this->manager.unk_0e); + ChangeLightLevel(this->manager.unk_0e); DeleteThisEntity(); } diff --git a/src/manager/manager37.c b/src/manager/manager37.c index c1af96f2..937e5b4b 100644 --- a/src/manager/manager37.c +++ b/src/manager/manager37.c @@ -19,8 +19,6 @@ extern void (*const gUnk_08108DD8[])(Manager*); void sub_0805E094(void); -extern Entity* CreateSpeechBubbleExclamationMark(Entity*, u32, u32); - void Manager37_Main(Manager* this) { gUnk_08108DBC[this->unk_0a](this); } diff --git a/src/manager/managerF.c b/src/manager/managerF.c index 432ec49f..09fb8746 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -253,18 +253,18 @@ void sub_080591CC(ManagerF* this) { this->manager.action = 1; this->manager.unk_0b = CheckFlags(this->unk_3e); if (this->manager.unk_0b) { - gRoomVars.field_0xc = this->unk_3a; + gRoomVars.lightLevel = this->unk_3a; } else { - gRoomVars.field_0xc = this->unk_38; + gRoomVars.lightLevel = this->unk_38; } } else { u32 tmp = CheckFlags(this->unk_3e); if (this->manager.unk_0b != tmp) { this->manager.unk_0b = tmp; if (tmp) { - gRoomVars.field_0xc = this->unk_3a; + gRoomVars.lightLevel = this->unk_3a; } else { - gRoomVars.field_0xc = this->unk_38; + gRoomVars.lightLevel = this->unk_38; } } } @@ -272,16 +272,16 @@ void sub_080591CC(ManagerF* this) { void sub_08059220(ManagerF* this) { const ManagerF_HelperStruct* data; - gRoomVars.field_0xc = 0; + gRoomVars.lightLevel = 0; for (data = gUnk_08108354; data->x != 0xFFFF; data++) { if (CheckPlayerInRegion(data->x, data->y, data->width, data->height)) { - gRoomVars.field_0xc = data->unk_08; + gRoomVars.lightLevel = data->unk_08; } } if (!this->manager.action) { this->manager.action = 1; - gArea.unk_0a = gRoomVars.field_0xc; + gArea.unk_0a = gRoomVars.lightLevel; } } diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c index 95c447f0..10080ffe 100644 --- a/src/npc/bladeBrothers.c +++ b/src/npc/bladeBrothers.c @@ -101,7 +101,7 @@ void sub_08068AA4(Entity* this) { if (this->type2 == 0) { this->type2 += 1; } - sub_0801D2B4(this, gUnk_081115DC[this->type2]); + ChangeObjPalette(this, gUnk_081115DC[this->type2]); } } diff --git a/src/npc/castorWildsStatue.c b/src/npc/castorWildsStatue.c index 366e568d..489b584a 100644 --- a/src/npc/castorWildsStatue.c +++ b/src/npc/castorWildsStatue.c @@ -126,7 +126,7 @@ void CastorWildsStatue_Fusion(Entity* this) { this->spriteSettings.draw = 1; this->y.HALF.HI -= 0x18; InitializeAnimation(this, 1); - sub_0801D2B4(this, 0x17b); + ChangeObjPalette(this, 0x17b); } else { GetNextFrame(this); } diff --git a/src/npc/drLeft.c b/src/npc/drLeft.c index cdc05551..83b60a43 100644 --- a/src/npc/drLeft.c +++ b/src/npc/drLeft.c @@ -28,7 +28,7 @@ void DrLeft(Entity* this) { if (this->action == 0) { this->action += 1; this->frameIndex = 0; - sub_0806FAD8(this, this); + ResolveEntityBelow(this, this); } } } diff --git a/src/npc/gregal.c b/src/npc/gregal.c index db60132d..88487e79 100644 --- a/src/npc/gregal.c +++ b/src/npc/gregal.c @@ -3,7 +3,7 @@ #include "functions.h" #include "npc.h" -void sub_0801D2B4(Entity*, u32); +void ChangeObjPalette(Entity*, u32); extern void (*gUnk_08113D8C[])(Entity*); @@ -24,7 +24,7 @@ void sub_0806CAF4(Entity* this) { if (npc != NULL) { npc->parent = this; CopyPosition(this, npc); - sub_0806FAD8(this, npc); + ResolveEntityBelow(this, npc); } npc = CreateNPC(0x4a, 2, 0); if (npc != NULL) { @@ -118,31 +118,31 @@ void sub_0806CCD0(Entity* this, ScriptExecutionContext* context) { } void sub_0806CCF8(Entity* this) { - sub_0801D2B4(this, 0x10a); + ChangeObjPalette(this, 0x10a); } void sub_0806CD04(Entity* this) { - sub_0801D2B4(this, 0x10b); + ChangeObjPalette(this, 0x10b); } void sub_0806CD14(Entity* this) { - sub_0801D2B4(this, 0x10c); + ChangeObjPalette(this, 0x10c); } void sub_0806CD20(Entity* this) { - sub_0801D2B4(this, 0x10d); + ChangeObjPalette(this, 0x10d); } void sub_0806CD30(Entity* this) { - sub_0801D2B4(this, 0x10e); + ChangeObjPalette(this, 0x10e); } void sub_0806CD3C(Entity* this) { - sub_0801D2B4(this, 0x10f); + ChangeObjPalette(this, 0x10f); } void sub_0806CD4C(Entity* this) { - sub_0801D2B4(this, 0x110); + ChangeObjPalette(this, 0x110); } void sub_0806CD58(Entity* this) { diff --git a/src/npc/pina.c b/src/npc/pina.c index 11a2b55b..4d60768c 100644 --- a/src/npc/pina.c +++ b/src/npc/pina.c @@ -10,8 +10,6 @@ void sub_08063A80(Entity* this); extern void (*gUnk_0810CDF8[])(Entity*); -extern void CreateSpeechBubbleExclamationMark(Entity*, u32, u32); - extern Dialog gUnk_0810CE04[]; void Pina(Entity* this) { diff --git a/src/npc/pita.c b/src/npc/pita.c index b379ba8f..235e4a1a 100644 --- a/src/npc/pita.c +++ b/src/npc/pita.c @@ -10,7 +10,7 @@ extern Hitbox gUnk_0810C428; extern u8 gUnk_0810C430[4]; extern u8 gUnk_0810C435[]; extern u8 gUnk_0810C43D[]; -extern u32 sub_080028F4(const u8*); +extern u32 GetRandomByWeight(const u8*); void Pita(Entity* this) { if (this->action == 0) { @@ -58,7 +58,7 @@ bool32 sub_08062EDC(Entity* this, ScriptExecutionContext* context) { context->condition = FALSE; return FALSE; } else { - tmp = sub_080028F4(gUnk_0810C435); + tmp = GetRandomByWeight(gUnk_0810C435); tmp2 = gUnk_0810C43D[tmp]; sub_080A7C18(0x5c, tmp2, 1); MessageNoOverlap(0x3c05, this); diff --git a/src/npc/rem.c b/src/npc/rem.c index 7298b531..1c4d5c22 100644 --- a/src/npc/rem.c +++ b/src/npc/rem.c @@ -285,7 +285,7 @@ void sub_0806A9E8(Entity* this) { Entity* npc = CreateNPC(0x37, 4, 0); if (npc != NULL) { CopyPosition(this, npc); - sub_0806FAD8(this, npc); + ResolveEntityBelow(this, npc); } } diff --git a/src/npc/stockwell.c b/src/npc/stockwell.c index dc38b634..b83ba2c2 100644 --- a/src/npc/stockwell.c +++ b/src/npc/stockwell.c @@ -4,9 +4,6 @@ #include "textbox.h" #include "functions.h" -extern void CreateSpeechBubbleQuestionMark(Entity*, u32, u32); -extern void CreateSpeechBubbleExclamationMark(Entity*, u32, u32); - extern void (*const gUnk_0810FDC8[])(Entity*); extern void (*const gUnk_0810FDA4[])(Entity*); diff --git a/src/npc/vaatiReborn.c b/src/npc/vaatiReborn.c index bc593edf..89c9ce8f 100644 --- a/src/npc/vaatiReborn.c +++ b/src/npc/vaatiReborn.c @@ -136,7 +136,7 @@ void VaatiRebornAction1(Entity* this) { case 1: if (this->frame & 0x80) { this->subAction = 2; - sub_0801D2B4(this, 0x13f); + ChangeObjPalette(this, 0x13f); InitAnimationForceUpdate(this, this->subAction - 1); } break; diff --git a/src/object.c b/src/object.c index 18b401c3..13fd552e 100644 --- a/src/object.c +++ b/src/object.c @@ -139,7 +139,7 @@ void (*const gObjectFunctions[])(Entity*) = { [SMALL_ICE_BLOCK] = SmallIceBlock, [BIG_ICE_BLOCK] = BigIceBlock, [OBJECT_86] = Object86, - [OBJECT_87] = Object87, + [OCTOROK_BOSS_OBJECT] = OctorokBossObject, [HUGE_BOOK] = MacroBook, [OBJECT_89] = Object89, [OBJECT_8A] = Object8A, diff --git a/src/object/bird.c b/src/object/bird.c index 12bf1815..3045fecb 100644 --- a/src/object/bird.c +++ b/src/object/bird.c @@ -102,7 +102,7 @@ void sub_0809D0AC(Entity* this) { SoundReq(SFX_SECRET); fx = CreateFx(this, FX_DASH, 0); if (fx != NULL) { - sub_0806FAD8(this, fx); + ResolveEntityBelow(this, fx); } } } diff --git a/src/object/fileScreenObjects.c b/src/object/fileScreenObjects.c index f4802a9e..549e2600 100644 --- a/src/object/fileScreenObjects.c +++ b/src/object/fileScreenObjects.c @@ -262,7 +262,7 @@ void sub_0808EB74(Entity* this) { this->x.WORD = entity->x.WORD; this->y.WORD = entity->y.WORD; this->spriteRendering.b3 = entity->spriteRendering.b3; - sub_0806FAD8(entity, this); + ResolveEntityBelow(entity, this); } else { this->x.HALF.HI = 0xF000; this->y.HALF.HI = 0xF000; @@ -312,7 +312,7 @@ void sub_0808EBB8(Entity* this) { default: entity = sub_0808EC80(var0); if (entity) { - sub_0806FAD8(entity, this); + ResolveEntityBelow(entity, this); this->spriteRendering.b3 = entity->spriteRendering.b3; x = entity->x.HALF.HI; y = entity->y.HALF.HI; diff --git a/src/object/lockedDoor.c b/src/object/lockedDoor.c index c7f3c437..f81f63b7 100644 --- a/src/object/lockedDoor.c +++ b/src/object/lockedDoor.c @@ -304,10 +304,10 @@ u32 sub_080837B0(Entity* this) { tmp = gUnk_0811F690[tmp2 - 0x40]; } if (tmp2 == 0x68) { - sub_0801D2B4(this, 0); + ChangeObjPalette(this, 0); } else { if (tmp2 == 0x88) { - sub_0801D2B4(this, 1); + ChangeObjPalette(this, 1); } } LoadFixedGFX(this, tmp); diff --git a/src/object/object49.c b/src/object/object49.c index 8b7c1bf3..5a02a82c 100644 --- a/src/object/object49.c +++ b/src/object/object49.c @@ -184,7 +184,7 @@ void sub_0808F3DC(Entity* this) { // TODO: This block of code might supposed to be a switch statement. if (this->type != 8) { if (this->type == 7) { - sub_0806FAD8(this->child, this); + ResolveEntityBelow(this->child, this); return; } } else { @@ -239,7 +239,7 @@ void sub_0808F498(Entity* this) { this->x.HALF.HI += (s32)Random() % (this->parent->hitbox->width * 2); this->y.HALF.HI -= this->parent->hitbox->height; this->y.HALF.HI += (s32)Random() % (this->parent->hitbox->height * 2); - sub_0801D2B4(this, var0); + ChangeObjPalette(this, var0); InitializeAnimation(this, 4); } } diff --git a/src/object/objectA2.c b/src/object/objectA2.c index de21a664..c7b0a5ea 100644 --- a/src/object/objectA2.c +++ b/src/object/objectA2.c @@ -39,7 +39,7 @@ void sub_0809F318(Entity* this) { this->z.HALF.HI = 0xFFB0; this->spriteOrientation.flipY = 2; this->action = 1; - sub_0801D2B4(this, gUnk_08124704[this->type]); + ChangeObjPalette(this, gUnk_08124704[this->type]); SetDefaultPriority(this, 7); } diff --git a/src/object/octorokBossObject.c b/src/object/octorokBossObject.c new file mode 100644 index 00000000..39d3b2a2 --- /dev/null +++ b/src/object/octorokBossObject.c @@ -0,0 +1,405 @@ +#include "global.h" +#include "entity.h" +#include "coord.h" +#include "audio.h" +#include "functions.h" +#include "random.h" +#include "object.h" + +extern void sub_0807B9B8(s32, s32, s32); + +extern void (*const OctorokBossObject_Actions[])(Entity*); +extern const u16 gUnk_0812384C[]; +extern const u16 gUnk_0812388C[]; +extern const u16 gUnk_081238A0[]; + +bool32 sub_0809A6F8(u32, u32, u32, u32); +bool32 sub_0809A758(u32, u32); + +typedef struct HelperStruct { + u8 field_0x0; // [0,1,2,4] is later stored in this->field_0xf + u8 tailCount; + u8 field_0x2; // [0,1] + u8 field_0x3; // relates to this->field_0x7a.HALF.HI + u8 field_0x4; // [0,1,0xff] + u8 field_0x5; // [0-4], sets this->field_0x80.HALF.HI + u8 fallingStonesTimer; + u8 field_0x7; // some sort of counter that is only set when hit for the first time? + Entity* mouthObject; + Entity* tailObjects[5]; + Entity* legObjects[4]; +} HelperStruct; + +enum OctorokBossObjectType { + TYPE0, // OctorokBoss_Action1 / TAIL_END + TYPE_FIRE, // this->OctorokBossObject_Action1 + TYPE_SUCKING, // OctorokBoss_ExecuteAttackVacuum + TYPE_SMOKE, // OctorokBoss_ExecuteAttackSmoke + TYPE4, // OctorokBoss_Action1_Attack_Type2_2 + TYPE_ICE_CRYSTALS, // OctorokBoss_Hit_SubAction1 + TYPE6, // OctorokBoss_Hit_SubAction1 // Scar thingy appearing on first defrost? + TYPE7, + TYPE8, // OctorokBoss_Hit_SubAction1 + TYPE9 // OctorokBoss_Hit_SubAction4 +}; +#define GET_HELPER(this) (*(HelperStruct**)&this->cutsceneBeh) + +extern u32 sub_0806FC80(Entity*, Entity*, s32); + +void OctorokBossObject(Entity* this) { + OctorokBossObject_Actions[this->action](this); +} + +void OctorokBossObject_Init(Entity* this) { + this->action = 1; + this->speed = 0x200; + switch (this->type) { + case 0: + this->field_0x78.HALF.HI = 0x96; + this->actionDelay = 0; + this->field_0xf = 0x1e; + case 1: + InitializeAnimation(this, 0); + EnqueueSFX(SFX_124); + break; + case 2: + this->direction = -(this->parent->field_0x7a.HALF.HI + -0x80); + if ((Random() & 1) != 0) { + switch (Random() & 3) { + case 0: + this->direction = this->direction - 0x10; + break; + case 1: + this->direction = this->direction + 0x10; + break; + case 2: + this->direction = this->direction - 8; + break; + case 3: + this->direction = this->direction + 8; + break; + } + } + + this->speed = 0xf0 - (Random() & 0x3f); + sub_0806F62C(this, ((s16)this->speed >> 1) << 8, (u32)this->direction); + sub_0806F62C(this, ((s16)this->speed >> 1) << 8, (u32)this->direction); + InitializeAnimation(this, 5); + SoundReq(SFX_14C); + break; + case 3: + this->direction = -(this->parent->field_0x7a.HALF.HI + -0x80); + sub_0806F62C(this, 0x4800, (u32)this->direction); + if ((Random() & 1) != 0) { + this->direction = (Random() & 0x3f) + this->direction; + } else { + this->direction = this->direction - (Random() & 0x3f); + } + InitializeAnimation(this, 6); + break; + case 6: + sub_0806F62C(this, (0x30 - (Random() & 0x2f)) * 0x100, Random() & 0xff); + if ((Random() & 1) != 0) { + this->direction = (Random() & 0x3f) + this->direction; + } else { + this->direction = this->direction - (Random() & 0x3f); + } + InitializeAnimation(this, 5); + break; + case 4: + *(u32*)&this->field_0x78 = 0x30c; + break; + case 5: + this->spritePriority.b0 = 0; + *(u32*)&this->field_0x78 = 0x18; + this->field_0x76.HWORD = 0x400; + this->field_0x74.HWORD = 0x400; + this->field_0x7a.HWORD = 0; + sub_0806F62C(this, + ((-(u32)this->parent->field_0x7a.HALF.HI << 0x18) >> 0x18) + + (u32)gUnk_0812388C[(u32)this->type2 * 2 + 1], + (u32)gUnk_0812388C[(u32)this->type2 * 2]); + sub_0805EC9C(this, this->field_0x76.HWORD, this->field_0x74.HWORD, this->field_0x7a.HWORD); + InitializeAnimation(this, 7); + break; + case 7: + this->actionDelay = 0; + InitializeAnimation(this, 8); + CopyPosition(this->parent, this); + break; + case 8: + this->type2 = this->parent->field_0x7c.BYTES.byte0; + this->actionDelay = 4; + this->field_0xf = 0; + this->field_0x82.HWORD = (this->x.HALF.HI - (gRoomControls.roomOriginX)) & 0x1f0; + this->field_0x80.HWORD = (this->y.HALF.HI - ((u32)gRoomControls.roomOriginY)) & 0x1f0; + *(int*)&this->cutsceneBeh = + ((s32)(this->field_0x82.HWORD - 0x10) >> 4) + (this->field_0x80.HWORD >> 4) * 0x1f; + sub_0809A6F8(this->field_0x82.HWORD, this->field_0x80.HWORD, *(int*)&this->cutsceneBeh, this->type2); + if ((this->parent->field_0x7c.BYTES.byte0 & 1) != 0) { + SoundReq(SFX_1A3); + } else { + SoundReq(SFX_WIND2); + } + break; + case 9: + *(u32*)&this->field_0x78 = 0x1e0; + break; + } +} + +NONMATCH("asm/non_matching/octorokBossObject/OctorokBossObject_Action1.inc", + void OctorokBossObject_Action1(Entity* this)) { + s32 tmp_c; + u32 loop_var; + + s32 t1, t2; + + GetNextFrame(this); + + switch (this->type) { + case 0: + if (this->field_0x78.HALF.HI != 0) { + this->field_0x78.HALF.HI--; + if (this->field_0xf-- == 0) { + this->field_0xf = 5; + this->child = CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 1, this->type2); + if (this->child != NULL) { + this->child->parent = this->parent; + GET_HELPER(this->child) = GET_HELPER(this); + } + this->type2 += 1; + } + CopyPosition(GET_HELPER(this)->tailObjects[0], this); + return; + } + case 1: + this->direction = sub_080045DA(GET_HELPER(this)->tailObjects[this->actionDelay]->x.WORD - this->x.WORD, + GET_HELPER(this)->tailObjects[this->actionDelay]->y.WORD - this->y.WORD); + sub_0806F62C(this, this->speed, this->direction); + if (sub_080041A0(this, GET_HELPER(this)->tailObjects[this->actionDelay], 2, 2) == 0) { + return; + } + if (this->type == 0) { + GET_HELPER(this)->tailObjects[this->actionDelay]->spriteSettings.draw &= -2; + } + if ((u32)this->actionDelay == GET_HELPER(this)->tailCount - 1) { + this->action = 2; + this->actionDelay = 0xf0; + this->direction = gUnk_0812384C[(this->type2 & 0xf) * 2] + ((u8)Random() & 0xf); + this->speed = gUnk_0812384C[(this->type2 & 0xf) * 2 + 1] + ((u16)Random() & 0x1ff); + if (this->type != 0) { + return; + } + this->parent->action = 4; + this->parent->subAction = 0; + return; + } + this->actionDelay += 1; + return; + case 2: + if (this->parent->type2 == 3) { + Entity* object = GET_HELPER(this->parent)->mouthObject; + this->direction = sub_080045DA(object->x.WORD - this->x.WORD, object->y.WORD - this->y.WORD); + sub_0806F62C(this, 0x280, this->direction); + if (sub_0806FC80(this, this->parent, 0x48) == 0) { + return; + } + } + DeleteThisEntity(); + break; + case 3: + case 6: + sub_0806F62C(this, 0x80, this->direction); + if (this->frame != 0) { + DeleteThisEntity(); + } + break; + case 4: + if (*(u32*)&this->field_0x78 == 0) { + if ((s16)gRoomVars.lightLevel != 0x100) { + ChangeLightLevel(8); + return; + } else { + } + } else { + if (this->parent->health == 0) { + this->subAction = 1; + *(u32*)&this->field_0x78 = 0; + return; + } + if ((this->subAction == 0) && (this->parent->type2 != 0)) { + return; + } + this->subAction = 1; + *(int*)&this->field_0x78 += -1; + return; + } + DeleteThisEntity(); + break; + case 5: + if (*(int*)&this->field_0x78 == 0) { + if (this->field_0x76.HWORD == 0x100) { + if ((*(u8*)&this->parent->field_0x7c & 1) != 0) { + DeleteThisEntity(); + } + } else { + this->field_0x76.HWORD -= 0x20; + this->field_0x74.HWORD -= 0x20; + } + sub_0805EC9C(this, (u32)this->field_0x76.HWORD, (u32)(u16)this->field_0x74.HWORD, + (u32)(u16)this->field_0x7a.HWORD); + } else { + *(int*)&this->field_0x78 -= 1; + } + CopyPosition(this->parent, this); + sub_0806F62C(this, (u32)gUnk_0812388C[(u32)this->type2 * 2 + 1], + ((u8) - this->parent->field_0x7a.HALF.HI & 0xff) + (u32)gUnk_0812388C[(u32)this->type2 * 2]); + return; + case 7: + if (this->actionDelay == 0) { + CopyPosition(this->parent, this); + return; + } + DeleteThisEntity(); + break; + case 8: + if (this->actionDelay-- != 0) { + return; + } + this->actionDelay = 4; + this->field_0xf++; + t2 = t1 = (*(int*)&this->cutsceneBeh) - this->field_0xf * 0x1f; + this->field_0x7c.HALF_U.HI = this->field_0x82.HWORD; + this->field_0x7a.HWORD = this->field_0x82.HWORD; + this->field_0x7c.HALF_U.LO = this->field_0x80.HWORD - this->field_0xf * 0x10; + this->field_0x78.HWORD = this->field_0x7c.HALF.LO; + tmp_c = sub_0809A6F8(this->field_0x7a.HWORD, this->field_0x78.HWORD, t1, this->type2); + for (loop_var = this->field_0xf; loop_var != 0; loop_var--) { + this->field_0x7a.HWORD -= 0x10; + this->field_0x78.HWORD += 0x10; + t1 += 0x1e; + tmp_c += sub_0809A6F8(this->field_0x7a.HWORD, this->field_0x78.HWORD, t1, this->type2); + this->field_0x7c.HALF.HI += 0x10; + this->field_0x7c.HALF.LO += 0x10; + t2 += 0x20; + tmp_c += sub_0809A6F8(this->field_0x7c.HALF_U.HI, this->field_0x7c.HALF_U.LO, t2, this->type2); + } + t2 = t1 = (*(int*)&this->cutsceneBeh) + this->field_0xf * 0x1f; + this->field_0x7c.HALF.HI = this->field_0x82.HWORD; + this->field_0x7a.HWORD = this->field_0x82.HWORD; + this->field_0x7c.HALF.LO = this->field_0xf * 0x10 + this->field_0x80.HWORD; + this->field_0x78.HWORD = this->field_0x7c.HALF.LO; + tmp_c += sub_0809A6F8(this->field_0x7a.HWORD, this->field_0x78.HWORD, t1, this->type2); + for (loop_var = this->field_0xf - 1; loop_var != 0; loop_var--) { + this->field_0x7a.HWORD -= 0x10; + this->field_0x78.HWORD -= 0x10; + t1 -= 0x20; + tmp_c += sub_0809A6F8(this->field_0x7a.HWORD, this->field_0x78.HWORD, t1, this->type2); + this->field_0x7c.HALF_U.HI += 0x10; + this->field_0x7c.HALF_U.LO -= 0x10; + t2 -= 0x1e; + tmp_c += sub_0809A6F8(this->field_0x7c.HALF_U.HI, this->field_0x7c.HALF_U.LO, t2, this->type2); + } + if (tmp_c == 0) { + DeleteThisEntity(); + } + break; + case 9: + sub_08078B48(); + if ((*(int*)&this->field_0x78)-- == 0) { + gRoomControls.cameraTarget = &gPlayerEntity; + DeleteThisEntity(); + } + break; + } +} +END_NONMATCH + +void OctorokBossObject_Action2(Entity* this) { + s32 tmp; + s32 radius; + + GetNextFrame(this); + if (this->actionDelay-- != 0) { + tmp = (0x10000 / this->parent->field_0x74.HWORD); + radius = (this->speed * tmp) >> 8; + this->field_0x7a.HALF.HI = -this->parent->field_0x7a.HALF.HI + this->direction; + + tmp = FixedMul(gSineTable[this->field_0x7a.HALF.HI], radius); + tmp = FixedDiv(tmp, 0x100); + this->x.WORD = this->parent->x.WORD + ((tmp << 0x10) >> 8); + tmp = FixedMul(gSineTable[this->field_0x7a.HALF.HI + 0x40], radius); + tmp = FixedDiv(tmp, 0x100); + this->y.WORD = this->parent->y.WORD - ((tmp << 0x10) >> 8); + } else { + DeleteThisEntity(); + } +} + +bool32 sub_0809A6F8(u32 param_1, u32 param_2, u32 param_3, u32 param_4) { + if (sub_0809A758(param_1, param_2) != 0) { + if (gUnk_081238A0[param_3] != 0) { + if ((param_4 & 1) != 0) { + sub_0807B9B8(gUnk_081238A0[param_3], (param_1 >> 4 & 0x3f) | (param_2 >> 4 & 0x3f) << 6, 1); + } else { + sub_0807BA8C((param_1 >> 4 & 0x3f) | (param_2 >> 4 & 0x3f) << 6, 1); + } + } + return TRUE; + } else { + return FALSE; + } +} + +bool32 sub_0809A758(u32 param_1, u32 param_2) { + if (param_1 >= 0x10) { + if (param_1 <= 0x1f0 && param_2 <= 0xf0) { + return TRUE; + } + } + return FALSE; +} + +void (*const OctorokBossObject_Actions[])(Entity*) = { + OctorokBossObject_Init, + OctorokBossObject_Action1, + OctorokBossObject_Action2, +}; + +const u16 gUnk_0812384C[] = { + 0, 4096, 16, 6144, 240, 7168, 32, 6144, 224, 5120, 48, 4096, 192, 4096, 208, 7168, + 64, 4096, 192, 6144, 80, 7168, 176, 6144, 96, 5120, 160, 4096, 112, 4096, 144, 7168, +}; +const u16 gUnk_0812388C[] = { + 0, 0, 32, 8192, 96, 8192, 160, 8704, 208, 8192, +}; +const u16 gUnk_081238A0[] = { + 0, 292, 293, 292, 293, 292, 293, 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 292, 293, 292, 293, 292, 293, 293, 293, 0, 347, 1220, 1201, 1202, 1201, 1202, 1201, + 1202, 1236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1220, 1202, 1201, 1201, + 1202, 1201, 1202, 1236, 348, 363, 1205, 1252, 1253, 1229, 1229, 1229, 1229, 1264, 1202, 1201, 1202, 1201, 1202, + 1201, 1202, 1201, 1202, 1201, 1202, 1201, 1202, 1265, 1229, 1229, 1252, 1253, 1229, 1229, 1206, 364, 347, 1221, + 1268, 1269, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1268, 1269, 1229, 1229, + 1229, 1229, 1229, 1229, 1268, 1269, 1229, 1229, 1222, 348, 363, 1205, 1229, 1229, 1229, 1229, 1229, 1229, 1229, + 1229, 1229, 1229, 1252, 1253, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1252, 1253, 1229, 1229, 1229, 1229, + 1229, 1206, 364, 347, 1221, 1229, 1229, 1229, 1229, 1229, 1252, 1253, 1229, 1229, 1229, 1268, 1269, 1229, 1252, + 1253, 1229, 1229, 1229, 1229, 1229, 1268, 1269, 1229, 1229, 1229, 1229, 1229, 1222, 348, 363, 1205, 1229, 1229, + 1229, 1229, 1229, 1268, 1269, 1229, 1229, 1229, 1229, 1229, 1229, 1268, 1269, 1229, 1229, 1229, 1229, 1229, 1229, + 1229, 1229, 1229, 1229, 1229, 1229, 1206, 364, 347, 1221, 1229, 1252, 1253, 1229, 1229, 1229, 1229, 1229, 1229, + 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1252, 1253, 1229, 1222, + 348, 363, 1205, 1229, 1268, 1269, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, + 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1268, 1269, 1229, 1206, 364, 347, 1221, 1229, 1229, 1229, 1229, + 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1252, 1253, 1229, 1229, 1229, 1229, 1229, 1229, + 1229, 1229, 1229, 1229, 1222, 348, 363, 1205, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, + 1229, 1229, 1229, 1229, 1268, 1269, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1206, 364, 347, + 1221, 1252, 1253, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1252, 1253, 1229, 1229, 1229, 1229, 1229, 1229, + 1229, 1229, 1252, 1253, 1229, 1252, 1253, 1229, 1229, 1222, 348, 363, 1205, 1268, 1269, 1229, 1229, 1229, 1252, + 1253, 1229, 1229, 1229, 1268, 1269, 1229, 1252, 1253, 1229, 1229, 1229, 1229, 1229, 1268, 1269, 1229, 1268, 1269, + 1229, 1229, 1206, 364, 347, 1221, 1229, 1229, 1229, 1229, 1229, 1268, 1269, 1229, 1229, 1229, 1229, 1229, 1229, + 1268, 1269, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1222, 348, 363, 1237, 1203, + 1204, 1203, 1204, 1203, 1204, 1203, 1204, 1203, 1204, 1203, 1204, 1203, 1204, 1203, 1204, 1203, 1204, 1203, 1204, + 1203, 1204, 1203, 1203, 1204, 1203, 1204, 1238, 364, 0, 308, 309, 308, 309, 308, 309, 308, 309, 308, + 309, 308, 309, 308, 309, 308, 309, 308, 309, 308, 309, 308, 309, 308, 309, 308, 309, 308, 309, + 308, 0, +}; diff --git a/src/overworld.c b/src/overworld.c index c529f530..aa57fdcd 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -789,7 +789,7 @@ void sub_08052EA0(void) { gRoomVars.unk_10[1] = gRoomVars.unk_10[0]; gRoomVars.unk_10[2] = gRoomVars.unk_10[0]; gRoomVars.unk_10[3] = gRoomVars.unk_10[0]; - gRoomVars.field_0xc = 256; + gRoomVars.lightLevel = 256; gArea.locationIndex = gAreaMetadata[gRoomControls.areaID].location; sub_08049D30(); InitScriptData(); @@ -875,13 +875,13 @@ void sub_08052FF4(u32 area, u32 room) { gArea.currentRoomInfo.bg_anim = gUnk_080B755C[area]; } -void sub_0805308C(s32 a1) { - a1 += gRoomVars.field_0xc; - if (a1 < 0) - a1 = 0; - if (a1 > 256) - a1 = 256; - gRoomVars.field_0xc = a1; +void ChangeLightLevel(s32 lightLevel) { + lightLevel += gRoomVars.lightLevel; + if (lightLevel < 0) + lightLevel = 0; + if (lightLevel > 256) + lightLevel = 256; + gRoomVars.lightLevel = lightLevel; } void sub_080530B0(void) { diff --git a/src/playerItem/playerItemSwordBeam.c b/src/playerItem/playerItemSwordBeam.c index ff4fab24..d3e13b2f 100644 --- a/src/playerItem/playerItemSwordBeam.c +++ b/src/playerItem/playerItemSwordBeam.c @@ -99,6 +99,6 @@ void sub_08019644(Entity* this) { if (gUnk_080B4400[this->field_0x70.WORD] == 0xff) { this->field_0x70.WORD = iVar1; } - sub_0801D2B4(this, (u32)gUnk_080B4400[this->field_0x70.WORD]); + ChangeObjPalette(this, (u32)gUnk_080B4400[this->field_0x70.WORD]); } } diff --git a/src/projectile/mandiblesProjectile.c b/src/projectile/mandiblesProjectile.c index 3162f7ae..c50657f9 100644 --- a/src/projectile/mandiblesProjectile.c +++ b/src/projectile/mandiblesProjectile.c @@ -83,7 +83,7 @@ void MandiblesProjectile_Init(Entity* this) { this->animationState = 0xff; this->field_0x82.HALF.LO = 0; this->spritePriority.b0 = 4; - sub_0806FAD8(this, this->parent); + ResolveEntityBelow(this, this->parent); sub_080AA270(this); } diff --git a/src/projectile/octorokBossProjectile.c b/src/projectile/octorokBossProjectile.c index 048b9661..58b6dbfc 100644 --- a/src/projectile/octorokBossProjectile.c +++ b/src/projectile/octorokBossProjectile.c @@ -4,6 +4,7 @@ #include "functions.h" #include "audio.h" #include "effects.h" +#include "projectile.h" void OctorokBossProjectile_Action2(Entity*); extern void sub_080AE58C(Entity*, u32, u32); @@ -13,6 +14,13 @@ extern void (*const OctorokBossProjectile_Functions[])(Entity*); extern void (*const OctorokBossProjectile_Actions[])(Entity*); extern const u8 gUnk_08129ADC[]; +enum OctorokBossProjectileType { + TYPE0, // rock + TYPE1, // rock fragment + TYPE2, + TYPE3 // falling stones +}; + void OctorokBossProjectile(Entity* this) { OctorokBossProjectile_Functions[GetNextFunction(this)](this); } @@ -132,7 +140,7 @@ void OctorokBossProjectile_Action1(Entity* this) { return; } for (index = 0; index < 3; ++index) { - this->child = CreateProjectileWithParent(this, 0xf, 1); + this->child = CreateProjectileWithParent(this, OCTOROK_BOSS_PROJECTILE, 1); if (this->child != NULL) { this->child->parent = this->parent; this->child->direction = this->direction + gUnk_08129ADC[index]; diff --git a/src/projectile/v1DarkMagicProjectile.c b/src/projectile/v1DarkMagicProjectile.c index dbce3794..529d46e7 100644 --- a/src/projectile/v1DarkMagicProjectile.c +++ b/src/projectile/v1DarkMagicProjectile.c @@ -202,7 +202,7 @@ void sub_080AB034(Entity* this) { } else { tmp = 0x139; } - sub_0801D2B4(this, tmp); + ChangeObjPalette(this, tmp); } void (*const V1DarkMagicProjectile_Functions[])(Entity*) = { diff --git a/src/projectile/v2Projectile.c b/src/projectile/v2Projectile.c index d15834af..c7be6769 100644 --- a/src/projectile/v2Projectile.c +++ b/src/projectile/v2Projectile.c @@ -111,7 +111,7 @@ void sub_080ABEA8(Entity* this) { this->direction = (Random() & 0xf) << 1; } else { this->direction = sub_08049F84(this, 0); - sub_0801D2B4(this, 0x13f); + ChangeObjPalette(this, 0x13f); } InitializeAnimation(this, 0); SoundReq(SFX_193); diff --git a/src/room.c b/src/room.c index aad169d9..f247e280 100644 --- a/src/room.c +++ b/src/room.c @@ -2848,7 +2848,7 @@ u32 sub_unk3_TempleOfDroplets_BigOcto() { extern EntityData gUnk_additional_a_TempleOfDroplets_BigOcto; void sub_StateChange_TempleOfDroplets_BigOcto(void) { - sub_0805308C(0x100); + ChangeLightLevel(0x100); if (CheckGlobalFlag(LV4_CLEAR)) { LoadRoomEntityList(&gUnk_additional_a_TempleOfDroplets_BigOcto); } else { @@ -6105,7 +6105,7 @@ void sub_StateChange_Caves_LonLonRanchSecret(void) { if (CheckLocalFlag(0x11)) { SetRoomFlag(0); SetRoomFlag(1); - sub_0805308C(0x100); + ChangeLightLevel(0x100); if (!CheckLocalFlag(0x12)) { SetTileType(0x73, 0xcb, 1); } diff --git a/src/script.c b/src/script.c index 34da5deb..93e071d2 100644 --- a/src/script.c +++ b/src/script.c @@ -157,8 +157,6 @@ void ScriptCommand_CameraTargetPlayer(Entity* entity, ScriptExecutionContext* co void ScriptCommand_0807F0B4(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807F0C8(Entity* entity, ScriptExecutionContext* context); -extern void CreateSpeechBubbleExclamationMark(Entity*, u32, u32); -extern void CreateSpeechBubbleQuestionMark(Entity*, u32, u32); extern void RecoverUI(u32); typedef void (*ScriptCommand)(Entity*, ScriptExecutionContext*); @@ -1861,7 +1859,7 @@ void sub_0807F714(Entity* entity, ScriptExecutionContext* context) { void sub_0807F738(Entity* entity, ScriptExecutionContext* context) { entity->spriteRendering.b3 = gUnk_08114F34[entity->spriteRendering.b3]; - sub_0806FAD8(entity, entity); + ResolveEntityBelow(entity, entity); } void sub_0807F75C(Entity* entity, ScriptExecutionContext* context) { From 34e69959df548688ef8535eb4cab18e5a53992a8 Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 14 Dec 2021 23:31:27 -0800 Subject: [PATCH 013/168] cleanup --- asm/beanstalk.s | 2 +- asm/bird.s | 2 +- asm/businessScrubPrologue.s | 4 +- asm/chestSpawner.s | 2 +- asm/code_08003FC4.s | 4 +- asm/code_0806ED78.s | 6 +- asm/code_080732D0.s | 4 +- asm/crow.s | 2 +- asm/enemy4D.s | 2 +- asm/enemy50.s | 2 +- asm/{object6.s => ezloCap.s} | 4 +- asm/floatingPlatform.s | 2 +- asm/ghini.s | 2 +- asm/gleerok.s | 2 +- asm/lavaPlatform.s | 2 +- asm/macroBook.s | 2 +- asm/macros/scripts.inc | 4 +- asm/mulldozer.s | 2 +- asm/non_matching/eu/sub_0802AAC0.inc | 2 +- asm/non_matching/player/sub_08072D54.inc | 16 +- asm/non_matching/sub_080560B8.inc | 4 +- asm/object29.s | 6 +- asm/object87.s | 2 +- asm/objectAB.s | 2 +- asm/takkuri.s | 2 +- asm/wizzrobeFire.s | 2 +- asm/wizzrobeIce.s | 2 +- asm/wizzrobeWind.s | 2 +- assets/assets.json | 92 +- data/animations/object/ezloCap.s | 152 +++ data/animations/object/object6.s | 152 --- data/const/object/{object6.s => ezloCap.s} | 6 +- data/data_081146D0.s | 4 +- data/data_0811B9E0.s | 150 --- data/data_0811E454.s | 11 - data/data_0811E750.s | 9 - data/gfx/sprite_frames.s | 4 +- data/gfx/sprite_ptrs.s | 4 +- data/scripts/script_08008D8C.inc | 4 +- data/scripts/script_08009464.inc | 2 +- data/scripts/script_080095F2.inc | 2 +- data/scripts/script_08009B78.inc | 2 +- data/scripts/script_08009F14.inc | 6 +- data/scripts/script_0800AB6E.inc | 6 +- data/scripts/script_0800B41C.inc | 2 +- data/scripts/script_0800B5EC.inc | 2 +- data/scripts/script_0800C550.inc | 2 +- data/scripts/script_0800CD7C.inc | 8 +- data/scripts/script_0800D874.inc | 2 +- data/scripts/script_0800D954.inc | 2 +- data/scripts/script_0800E0BC.inc | 2 +- data/scripts/script_0800E6B0.inc | 2 +- data/scripts/script_0800EA54.inc | 2 +- data/scripts/script_0800EFC0.inc | 2 +- data/scripts/script_0800F724.inc | 2 +- data/scripts/script_080100C8.inc | 2 +- data/scripts/script_08010264.inc | 8 +- data/scripts/script_08011B40.inc | 2 +- data/scripts/script_08011C7C.inc | 6 +- data/scripts/script_0801232C.inc | 2 +- data/scripts/script_08012430.inc | 2 +- data/scripts/script_08012F86.inc | 4 +- data/scripts/script_0801319A.inc | 2 +- data/scripts/script_08014094.inc | 2 +- data/scripts/script_080140B8.inc | 2 +- data/scripts/script_08014154.inc | 2 +- data/scripts/script_08014198.inc | 2 +- data/scripts/script_080143C0.inc | 2 +- data/scripts/script_080145E8.inc | 2 +- data/scripts/script_08014B34.inc | 4 +- data/scripts/script_08014E14.inc | 4 +- data/scripts/script_08016062.inc | 2 +- data/scripts/script_0801609E.inc | 2 +- data/scripts/script_080160A8.inc | 8 +- data/scripts/script_08016384.inc | 2 +- data/scripts/script_080165D8.inc | 2 +- include/definitions.h | 2 +- include/effects.h | 2 +- include/entity.h | 24 +- include/fileScreen.h | 1 + include/functions.h | 4 +- include/hitbox.h | 3 +- include/npc.h | 4 +- include/object.h | 4 +- include/player.h | 12 +- include/room.h | 4 +- include/structures.h | 2 + linker.ld | 17 +- src/collision.c | 2 +- src/coord.c | 4 +- src/createEnemy.c | 2 +- src/debugScreen.c | 26 +- src/demoScreen.c | 8 +- src/enemy/acroBandits.c | 2 +- src/enemy/beetle.c | 2 +- src/enemy/businessScrub.c | 6 +- src/enemy/cuccoChickAggr.c | 2 +- src/enemy/darkNut.c | 4 +- src/enemy/fireballGuy.c | 2 +- src/enemy/keaton.c | 2 +- src/enemy/lakitu.c | 2 +- src/enemy/likeLike.c | 2 +- src/enemy/mazaalHead.c | 2 +- src/enemy/moldworm.c | 6 +- src/enemy/pesto.c | 4 +- src/enemy/slime.c | 2 +- src/enemy/vaatiWrath.c | 6 +- src/entity.c | 10 +- src/fade.c | 8 +- src/flagDebug.c | 10 +- src/interrupts.c | 26 +- src/intro.c | 10 +- src/item/itemPegasusBoots.c | 2 +- src/item/itemRocsCape.c | 2 +- src/main.c | 46 +- src/manager/manager1.c | 10 +- src/manager/manager12.c | 16 +- src/manager/manager14.c | 8 +- src/manager/manager15.c | 80 +- src/manager/manager18.c | 12 +- src/manager/manager19.c | 6 +- src/manager/manager1A.c | 6 +- src/manager/manager1B.c | 4 +- src/manager/manager1D.c | 2 +- src/manager/manager2.c | 17 +- src/manager/manager2E.c | 4 +- src/manager/manager2F.c | 4 +- src/manager/manager31.c | 38 +- src/manager/manager32.c | 12 +- src/manager/manager36.c | 2 +- src/manager/manager39.c | 4 +- src/manager/manager7.c | 8 +- src/manager/managerA.c | 2 +- src/manager/managerB.c | 4 +- src/manager/managerC.c | 2 +- src/manager/managerF.c | 4 +- src/npc.c | 2 +- src/npc/beedle.c | 2 +- src/npc/bigGoron.c | 14 +- src/npc/carpenter.c | 8 +- src/npc/cat.c | 4 +- src/npc/cucco.c | 2 +- src/npc/cuccoChick.c | 2 +- src/npc/dampe.c | 2 +- src/npc/dog.c | 6 +- src/npc/drLeft.c | 2 +- src/npc/emma.c | 2 +- src/npc/epona.c | 2 +- src/npc/{ezloCap.c => ezlo.c} | 4 +- src/npc/farmers.c | 2 +- src/npc/festari.c | 4 +- src/npc/forestMinish.c | 4 +- src/npc/gentari.c | 4 +- src/npc/ghostBrothers.c | 2 +- src/npc/goronMerchant.c | 26 +- src/npc/gregal.c | 10 +- src/npc/hurdyGurdyMan.c | 6 +- src/npc/kingGustaf.c | 2 +- src/npc/librari.c | 2 +- src/npc/mama.c | 2 +- src/npc/marcy.c | 2 +- src/npc/mayorHagen.c | 2 +- src/npc/melari.c | 2 +- src/npc/minishEzlo.c | 2 +- src/npc/mutoh.c | 2 +- src/npc/percy.c | 2 +- src/npc/pita.c | 2 +- src/npc/rem.c | 6 +- src/npc/stockwell.c | 2 +- src/npc/syrup.c | 2 +- src/npc/teachers.c | 2 +- src/npc/townMinish.c | 2 +- src/npc/vaati.c | 2 +- src/npc/wheaton.c | 2 +- src/npc/zelda.c | 2 +- src/npc/zeldaFollower.c | 2 +- src/object.c | 2 +- src/object/bigVortex.c | 2 +- src/object/book.c | 2 +- src/object/button.c | 16 +- src/object/cloud.c | 2 +- src/object/greatFairy.c | 4 +- src/object/heartContainer.c | 2 +- src/object/houseDoorExterior.c | 8 +- src/object/itemOnGround.c | 4 +- src/object/lilypadSmall.c | 2 +- src/object/minecart.c | 2 +- src/object/minishSizedEntrance.c | 2 +- src/object/object1A.c | 2 +- src/object/object86.c | 2 +- src/object/objectA2.c | 2 +- src/object/warpPoint.c | 4 +- src/overworld.c | 2 +- src/player.c | 1038 ++++++++++++-------- src/projectile/dirtBallProjectile.c | 2 +- src/room.c | 145 ++- src/save.c | 4 +- src/script.c | 415 ++++---- 198 files changed, 1578 insertions(+), 1550 deletions(-) rename asm/{object6.s => ezloCap.s} (99%) create mode 100644 data/animations/object/ezloCap.s delete mode 100644 data/animations/object/object6.s rename data/const/object/{object6.s => ezloCap.s} (79%) delete mode 100755 data/data_0811E454.s rename src/npc/{ezloCap.c => ezlo.c} (96%) diff --git a/asm/beanstalk.s b/asm/beanstalk.s index c6934032..6f25ea98 100644 --- a/asm/beanstalk.s +++ b/asm/beanstalk.s @@ -810,7 +810,7 @@ _0808A0FC: adds r0, r5, #0 movs r2, #0 movs r3, #8 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _0808A1DC b _0808A1B0 diff --git a/asm/bird.s b/asm/bird.s index 2c43ef24..765e06da 100644 --- a/asm/bird.s +++ b/asm/bird.s @@ -158,7 +158,7 @@ _0809D2D6: adds r1, r6, #0 movs r2, #0xe movs r3, #0xe - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _0809D3A8 movs r1, #0x36 diff --git a/asm/businessScrubPrologue.s b/asm/businessScrubPrologue.s index ee5b6397..f8bf3fe4 100644 --- a/asm/businessScrubPrologue.s +++ b/asm/businessScrubPrologue.s @@ -517,7 +517,7 @@ sub_08045F54: @ 0x08045F54 adds r1, r4, #0 movs r2, #0x20 movs r3, #0x20 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 bne _08045F90 cmp r5, #2 @@ -530,7 +530,7 @@ _08045F82: adds r0, r6, #0 adds r1, r4, #0 adds r2, r3, #0 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 bne _08045F94 _08045F90: diff --git a/asm/chestSpawner.s b/asm/chestSpawner.s index 756dfa62..4fac73dc 100644 --- a/asm/chestSpawner.s +++ b/asm/chestSpawner.s @@ -163,7 +163,7 @@ _08083F78: adds r1, r5, #0 movs r2, #0x10 movs r3, #8 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _08083F98 movs r0, #0x10 diff --git a/asm/code_08003FC4.s b/asm/code_08003FC4.s index 2779befc..4e033a93 100644 --- a/asm/code_08003FC4.s +++ b/asm/code_08003FC4.s @@ -293,8 +293,8 @@ sub_0800419C: @ 0x0800419C push {r5, r6, lr} b _080041B0 - thumb_func_start sub_080041A0 -sub_080041A0: @ 0x080041A0 + thumb_func_start EntityInRectRadius +EntityInRectRadius: @ 0x080041A0 push {r5, r6, lr} movs r6, #0x38 ldrb r5, [r0, r6] diff --git a/asm/code_0806ED78.s b/asm/code_0806ED78.s index d93e7cc2..74ca8730 100644 --- a/asm/code_0806ED78.s +++ b/asm/code_0806ED78.s @@ -36,7 +36,7 @@ sub_0806ED9C: @ 0x0806ED9C rsbs r6, r6, #0 ldr r1, _0806EDC0 @ =gPlayerEntity adds r2, r4, #0 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _0806EDBC adds r0, r5, #0 @@ -69,7 +69,7 @@ sub_0806EDD8: @ 0x0806EDD8 ldr r6, _0806EE00 @ =gPlayerEntity adds r1, r6, #0 adds r2, r4, #0 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _0806EDFC adds r0, r5, #0 @@ -1106,7 +1106,7 @@ sub_0806F548: @ 0x0806F548 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 bne _0806F55A movs r0, #0 diff --git a/asm/code_080732D0.s b/asm/code_080732D0.s index b4cb9e7f..8a27c50a 100644 --- a/asm/code_080732D0.s +++ b/asm/code_080732D0.s @@ -1799,7 +1799,7 @@ sub_08074060: @ 0x08074060 bl sub_08003FC4 cmp r0, #0 bne _080740D0 - ldr r0, _080740C4 @ =gUnk_08114F88 + ldr r0, _080740C4 @ =gPlayerHitbox str r0, [r4, #0x48] movs r3, #0x10 movs r0, #0x10 @@ -1840,7 +1840,7 @@ sub_08074060: @ 0x08074060 bl sub_0805EC60 b _080740D6 .align 2, 0 -_080740C4: .4byte gUnk_08114F88 +_080740C4: .4byte gPlayerHitbox _080740C8: .4byte gPlayerState _080740CC: .4byte 0x0000080C _080740D0: diff --git a/asm/crow.s b/asm/crow.s index 4dca91a7..d736150b 100644 --- a/asm/crow.s +++ b/asm/crow.s @@ -241,7 +241,7 @@ sub_0803298C: @ 0x0803298C adds r0, r4, #0 movs r2, #0x88 movs r3, #0x50 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _080329E2 ldr r0, [r5] diff --git a/asm/enemy4D.s b/asm/enemy4D.s index 03a8a479..669274fd 100644 --- a/asm/enemy4D.s +++ b/asm/enemy4D.s @@ -558,7 +558,7 @@ sub_0803EFAC: @ 0x0803EFAC adds r4, r1, #0 movs r2, #0x50 movs r3, #0x50 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _0803EFD6 adds r0, r4, #0 diff --git a/asm/enemy50.s b/asm/enemy50.s index 7b044061..cdab7151 100644 --- a/asm/enemy50.s +++ b/asm/enemy50.s @@ -907,7 +907,7 @@ _08041184: adds r0, r4, #0 movs r2, #0x70 movs r3, #0x48 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _080411C8 _080411B6: diff --git a/asm/object6.s b/asm/ezloCap.s similarity index 99% rename from asm/object6.s rename to asm/ezloCap.s index 7d3f9749..cb68080e 100644 --- a/asm/object6.s +++ b/asm/ezloCap.s @@ -7,8 +7,8 @@ .text - thumb_func_start Object6 -Object6: @ 0x080828E0 + thumb_func_start EzloCap +EzloCap: @ 0x080828E0 push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] diff --git a/asm/floatingPlatform.s b/asm/floatingPlatform.s index 917a653e..a6f7a1ec 100644 --- a/asm/floatingPlatform.s +++ b/asm/floatingPlatform.s @@ -107,7 +107,7 @@ sub_08086168: @ 0x08086168 ldrb r2, [r1] ldrb r3, [r1, #1] adds r1, r4, #0 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _080861A8 bl sub_08079F8C diff --git a/asm/ghini.s b/asm/ghini.s index 1a7136c0..2a43603a 100644 --- a/asm/ghini.s +++ b/asm/ghini.s @@ -824,7 +824,7 @@ _0803F5E8: adds r0, r4, #0 movs r2, #0x70 movs r3, #0x48 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _0803F62C _0803F61A: diff --git a/asm/gleerok.s b/asm/gleerok.s index db1ba73b..eebd581e 100644 --- a/asm/gleerok.s +++ b/asm/gleerok.s @@ -1266,7 +1266,7 @@ _0802D924: adds r0, r4, #0 movs r2, #8 movs r3, #8 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 bne _0802D936 b _0802DB7E diff --git a/asm/lavaPlatform.s b/asm/lavaPlatform.s index 3024b6b9..a973a799 100644 --- a/asm/lavaPlatform.s +++ b/asm/lavaPlatform.s @@ -603,7 +603,7 @@ sub_0809269C: @ 0x0809269C adds r1, r5, #0 movs r2, #0x10 movs r3, #0x10 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _080926E0 bl sub_08079F8C diff --git a/asm/macroBook.s b/asm/macroBook.s index bb20fefb..3b3396a4 100644 --- a/asm/macroBook.s +++ b/asm/macroBook.s @@ -399,7 +399,7 @@ _0809AA5C: adds r1, r4, #0 movs r2, #0x20 movs r3, #0x22 - bl sub_080041A0 + bl EntityInRectRadius strh r0, [r7] lsls r0, r0, #0x10 cmp r0, #0 diff --git a/asm/macros/scripts.inc b/asm/macros/scripts.inc index 6b78fc2c..df85a3a2 100644 --- a/asm/macros/scripts.inc +++ b/asm/macros/scripts.inc @@ -308,7 +308,7 @@ .4byte \w .endm -.macro WaitPlayerAction8 +.macro WaitPlayerGetItem .2byte 0x0434 .endm @@ -563,7 +563,7 @@ .2byte \yOffset .endm -.macro SetEntityPosition x:req, y:req +.macro OffsetEntityPosition x:req, y:req .2byte 0x0c6a .2byte \x .2byte \y diff --git a/asm/mulldozer.s b/asm/mulldozer.s index 8244ecb8..7617bcf3 100644 --- a/asm/mulldozer.s +++ b/asm/mulldozer.s @@ -978,7 +978,7 @@ sub_08033364: @ 0x08033364 _0803337E: adds r0, r4, #0 adds r2, r3, #0 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _080333B4 ldrb r0, [r4, #0xa] diff --git a/asm/non_matching/eu/sub_0802AAC0.inc b/asm/non_matching/eu/sub_0802AAC0.inc index 9004a523..8024a38e 100644 --- a/asm/non_matching/eu/sub_0802AAC0.inc +++ b/asm/non_matching/eu/sub_0802AAC0.inc @@ -60,7 +60,7 @@ _0802AAD4: adds r0, r4, #0 movs r2, #0x10 movs r3, #0x10 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _0802AB56 ldrb r0, [r5, #0xf] diff --git a/asm/non_matching/player/sub_08072D54.inc b/asm/non_matching/player/sub_08072D54.inc index ce770b44..6ade7257 100644 --- a/asm/non_matching/player/sub_08072D54.inc +++ b/asm/non_matching/player/sub_08072D54.inc @@ -38,7 +38,7 @@ _08072D9C: beq _08072E30 b _08072E6C _08072DA6: - ldr r1, _08072DC8 @ =gUnk_0811BBD4 + ldr r1, _08072DC8 @ =sTileTable ldr r0, _08072DCC @ =gPlayerEntity ldrb r0, [r0, #0x14] lsrs r0, r0, #1 @@ -54,10 +54,10 @@ _08072DA6: strb r0, [r4, #0xf] b _08072E6C .align 2, 0 -_08072DC8: .4byte gUnk_0811BBD4 +_08072DC8: .4byte sTileTable _08072DCC: .4byte gPlayerEntity _08072DD0: - ldr r1, _08072DEC @ =gUnk_0811BBD4 + ldr r1, _08072DEC @ =sTileTable ldr r0, _08072DF0 @ =gPlayerEntity ldrb r0, [r0, #0x14] lsrs r0, r0, #1 @@ -71,7 +71,7 @@ _08072DD0: strb r5, [r4, #0xe] b _08072E6C .align 2, 0 -_08072DEC: .4byte gUnk_0811BBD4 +_08072DEC: .4byte sTileTable _08072DF0: .4byte gPlayerEntity _08072DF4: movs r0, #2 @@ -82,7 +82,7 @@ _08072DFA: movs r5, #4 eors r0, r5 strb r0, [r4, #0x14] - ldr r1, _08072E28 @ =gUnk_0811BBD4 + ldr r1, _08072E28 @ =sTileTable ldr r0, _08072E2C @ =gPlayerEntity ldrb r0, [r0, #0x14] lsrs r0, r0, #1 @@ -102,14 +102,14 @@ _08072E22: eors r0, r5 b _08072E6A .align 2, 0 -_08072E28: .4byte gUnk_0811BBD4 +_08072E28: .4byte sTileTable _08072E2C: .4byte gPlayerEntity _08072E30: ldrb r0, [r4, #0x14] movs r1, #4 eors r0, r1 strb r0, [r4, #0x14] - ldr r1, _08072E58 @ =gUnk_0811BBD4 + ldr r1, _08072E58 @ =sTileTable ldr r0, _08072E5C @ =gPlayerEntity ldrb r0, [r0, #0x14] lsrs r0, r0, #1 @@ -124,7 +124,7 @@ _08072E30: strb r0, [r4, #0xe] b _08072E64 .align 2, 0 -_08072E58: .4byte gUnk_0811BBD4 +_08072E58: .4byte sTileTable _08072E5C: .4byte gPlayerEntity _08072E60: movs r0, #4 diff --git a/asm/non_matching/sub_080560B8.inc b/asm/non_matching/sub_080560B8.inc index 73872d2a..56e0eb89 100644 --- a/asm/non_matching/sub_080560B8.inc +++ b/asm/non_matching/sub_080560B8.inc @@ -7,7 +7,7 @@ .text push {r4, lr} - bl sub_08056134 + bl CheckHeaderValid cmp r0, #0 bne _080560F8 movs r0, #0x80 @@ -22,7 +22,7 @@ ble _080560E4 cmp r1, #1 bne _080560E4 - bl sub_08056134 + bl CheckHeaderValid cmp r0, #0 bne _080560F8 _080560E4: diff --git a/asm/object29.s b/asm/object29.s index 72e20190..c39f1423 100644 --- a/asm/object29.s +++ b/asm/object29.s @@ -304,7 +304,7 @@ _0808999E: adds r1, r5, #0 movs r2, #0xf movs r3, #0xf - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _08089A62 ldrb r0, [r4, #0xe] @@ -418,7 +418,7 @@ sub_08089A7C: @ 0x08089A7C adds r1, r5, #0 movs r2, #0xf movs r3, #0xf - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _08089AB8 ldr r2, _08089AB4 @ =gPlayerState @@ -461,7 +461,7 @@ sub_08089AE0: @ 0x08089AE0 ldr r1, _08089AF8 @ =gPlayerEntity movs r2, #0xf movs r3, #0xf - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _08089AF6 ldr r1, _08089AFC @ =gPlayerState diff --git a/asm/object87.s b/asm/object87.s index 2af555eb..4412cc19 100644 --- a/asm/object87.s +++ b/asm/object87.s @@ -454,7 +454,7 @@ _0809A25C: adds r0, r7, #0 movs r2, #2 movs r3, #2 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 bne _0809A2A6 b _0809A632 diff --git a/asm/objectAB.s b/asm/objectAB.s index bc40b3a5..cbecc43b 100644 --- a/asm/objectAB.s +++ b/asm/objectAB.s @@ -89,7 +89,7 @@ sub_080A0158: @ 0x080A0158 adds r0, r4, #0 movs r2, #0x10 movs r3, #0x10 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _080A018A movs r0, #0x37 diff --git a/asm/takkuri.s b/asm/takkuri.s index b2419d0b..57dbaf0e 100644 --- a/asm/takkuri.s +++ b/asm/takkuri.s @@ -251,7 +251,7 @@ _0803BD2C: adds r0, r4, #0 movs r2, #0x88 movs r3, #0x50 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _0803BD80 ldr r0, [r5] diff --git a/asm/wizzrobeFire.s b/asm/wizzrobeFire.s index 17a05df2..ffe3a72f 100644 --- a/asm/wizzrobeFire.s +++ b/asm/wizzrobeFire.s @@ -238,7 +238,7 @@ _0802FCDE: adds r0, r4, #0 movs r2, #0xa0 movs r3, #0xa0 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _0802FDCA adds r0, r4, #0 diff --git a/asm/wizzrobeIce.s b/asm/wizzrobeIce.s index 8e5c95ee..ae171a3f 100644 --- a/asm/wizzrobeIce.s +++ b/asm/wizzrobeIce.s @@ -265,7 +265,7 @@ _0802FFB6: adds r0, r4, #0 movs r2, #0xa0 movs r3, #0xa0 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _080300A2 adds r0, r4, #0 diff --git a/asm/wizzrobeWind.s b/asm/wizzrobeWind.s index 0e24ccf7..ed1ca987 100644 --- a/asm/wizzrobeWind.s +++ b/asm/wizzrobeWind.s @@ -290,7 +290,7 @@ _0802F6B6: adds r0, r4, #0 movs r2, #0xa0 movs r3, #0xa0 - bl sub_080041A0 + bl EntityInRectRadius cmp r0, #0 beq _0802F7A2 adds r0, r4, #0 diff --git a/assets/assets.json b/assets/assets.json index 3363aa4e..38ff89a0 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -41601,7 +41601,7 @@ "size": 8 }, { - "path": "data_081146D0/gUnk_08114F88.bin", + "path": "data_081146D0/gPlayerHitbox.bin", "start": 1134472, "size": 16 }, @@ -41666,7 +41666,7 @@ "type": "sprite_frame" }, { - "path": "sprites/gSpriteFrames_Object6.bin", + "path": "sprites/gSpriteFrames_EzloCap.bin", "start": 1142228, "size": 400, "type": "sprite_frame" @@ -42750,16 +42750,6 @@ "DEMO_JP": -2192 } }, - { - "path": "data_0811E454/gUnk_0811E510.bin", - "start": 1172752, - "size": 4 - }, - { - "path": "data_0811E454/gUnk_0811E514.bin", - "start": 1172756, - "size": 16 - }, { "path": "data_0811E750/gUnk_0811E750.bin", "start": 1173328, @@ -43052,233 +43042,233 @@ "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_0.bin", + "path": "animations/gSpriteAnimations_EzloCap_0.bin", "start": 1175952, "size": 29, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_1.bin", + "path": "animations/gSpriteAnimations_EzloCap_1.bin", "start": 1175981, "size": 29, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_2.bin", + "path": "animations/gSpriteAnimations_EzloCap_2.bin", "start": 1176010, "size": 29, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_3.bin", + "path": "animations/gSpriteAnimations_EzloCap_3.bin", "start": 1176039, "size": 41, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_8.bin", + "path": "animations/gSpriteAnimations_EzloCap_8.bin", "start": 1176080, "size": 29, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_9.bin", + "path": "animations/gSpriteAnimations_EzloCap_9.bin", "start": 1176109, "size": 29, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_10.bin", + "path": "animations/gSpriteAnimations_EzloCap_10.bin", "start": 1176138, "size": 29, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_11.bin", + "path": "animations/gSpriteAnimations_EzloCap_11.bin", "start": 1176167, "size": 41, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_4.bin", + "path": "animations/gSpriteAnimations_EzloCap_4.bin", "start": 1176208, "size": 29, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_5.bin", + "path": "animations/gSpriteAnimations_EzloCap_5.bin", "start": 1176237, "size": 29, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_6.bin", + "path": "animations/gSpriteAnimations_EzloCap_6.bin", "start": 1176266, "size": 29, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_7.bin", + "path": "animations/gSpriteAnimations_EzloCap_7.bin", "start": 1176295, "size": 41, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_12.bin", + "path": "animations/gSpriteAnimations_EzloCap_12.bin", "start": 1176336, "size": 13, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_13.bin", + "path": "animations/gSpriteAnimations_EzloCap_13.bin", "start": 1176349, "size": 13, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_14.bin", + "path": "animations/gSpriteAnimations_EzloCap_14.bin", "start": 1176362, "size": 13, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_15.bin", + "path": "animations/gSpriteAnimations_EzloCap_15.bin", "start": 1176375, "size": 41, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_16.bin", + "path": "animations/gSpriteAnimations_EzloCap_16.bin", "start": 1176416, "size": 13, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_17.bin", + "path": "animations/gSpriteAnimations_EzloCap_17.bin", "start": 1176429, "size": 13, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_18.bin", + "path": "animations/gSpriteAnimations_EzloCap_18.bin", "start": 1176442, "size": 13, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_19.bin", + "path": "animations/gSpriteAnimations_EzloCap_19.bin", "start": 1176455, "size": 41, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_20.bin", + "path": "animations/gSpriteAnimations_EzloCap_20.bin", "start": 1176496, "size": 13, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_21.bin", + "path": "animations/gSpriteAnimations_EzloCap_21.bin", "start": 1176509, "size": 13, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_22.bin", + "path": "animations/gSpriteAnimations_EzloCap_22.bin", "start": 1176522, "size": 13, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_23.bin", + "path": "animations/gSpriteAnimations_EzloCap_23.bin", "start": 1176535, "size": 41, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_31.bin", + "path": "animations/gSpriteAnimations_EzloCap_31.bin", "start": 1176576, "size": 5, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_32.bin", + "path": "animations/gSpriteAnimations_EzloCap_32.bin", "start": 1176581, "size": 17, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_33.bin", + "path": "animations/gSpriteAnimations_EzloCap_33.bin", "start": 1176598, "size": 41, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_34.bin", + "path": "animations/gSpriteAnimations_EzloCap_34.bin", "start": 1176639, "size": 41, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_24.bin", + "path": "animations/gSpriteAnimations_EzloCap_24.bin", "start": 1176680, "size": 81, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_25.bin", + "path": "animations/gSpriteAnimations_EzloCap_25.bin", "start": 1176761, "size": 25, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_26.bin", + "path": "animations/gSpriteAnimations_EzloCap_26.bin", "start": 1176786, "size": 5, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_27.bin", + "path": "animations/gSpriteAnimations_EzloCap_27.bin", "start": 1176791, "size": 116, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_28.bin", + "path": "animations/gSpriteAnimations_EzloCap_28.bin", "start": 1176907, "size": 21, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_29.bin", + "path": "animations/gSpriteAnimations_EzloCap_29.bin", "start": 1176928, "size": 21, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_30.bin", + "path": "animations/gSpriteAnimations_EzloCap_30.bin", "start": 1176949, "size": 21, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object6_35.bin", + "path": "animations/gSpriteAnimations_EzloCap_35.bin", "start": 1176970, "size": 6, "type": "animation" }, { - "path": "object6/gUnk_0811F16C.bin", + "path": "ezloCap/gUnk_0811F16C.bin", "start": 1175916, "size": 12 }, { - "path": "object6/gUnk_0811F178.bin", + "path": "ezloCap/gUnk_0811F178.bin", "start": 1175928, "size": 20 }, { - "path": "object6/gUnk_0811F18C.bin", + "path": "ezloCap/gUnk_0811F18C.bin", "start": 1175948, "size": 4 }, diff --git a/data/animations/object/ezloCap.s b/data/animations/object/ezloCap.s new file mode 100644 index 00000000..4f83d368 --- /dev/null +++ b/data/animations/object/ezloCap.s @@ -0,0 +1,152 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gSpriteAnimations_EzloCap_0:: @ 0811F190 + .include "animations/gSpriteAnimations_EzloCap_0.s" + +gSpriteAnimations_EzloCap_1:: @ 0811F1AD + .include "animations/gSpriteAnimations_EzloCap_1.s" + +gSpriteAnimations_EzloCap_2:: @ 0811F1CA + .include "animations/gSpriteAnimations_EzloCap_2.s" + +gSpriteAnimations_EzloCap_3:: @ 0811F1E7 + .include "animations/gSpriteAnimations_EzloCap_3.s" + +gSpriteAnimations_EzloCap_8:: @ 0811F210 + .include "animations/gSpriteAnimations_EzloCap_8.s" + +gSpriteAnimations_EzloCap_9:: @ 0811F22D + .include "animations/gSpriteAnimations_EzloCap_9.s" + +gSpriteAnimations_EzloCap_10:: @ 0811F24A + .include "animations/gSpriteAnimations_EzloCap_10.s" + +gSpriteAnimations_EzloCap_11:: @ 0811F267 + .include "animations/gSpriteAnimations_EzloCap_11.s" + +gSpriteAnimations_EzloCap_4:: @ 0811F290 + .include "animations/gSpriteAnimations_EzloCap_4.s" + +gSpriteAnimations_EzloCap_5:: @ 0811F2AD + .include "animations/gSpriteAnimations_EzloCap_5.s" + +gSpriteAnimations_EzloCap_6:: @ 0811F2CA + .include "animations/gSpriteAnimations_EzloCap_6.s" + +gSpriteAnimations_EzloCap_7:: @ 0811F2E7 + .include "animations/gSpriteAnimations_EzloCap_7.s" + +gSpriteAnimations_EzloCap_12:: @ 0811F310 + .include "animations/gSpriteAnimations_EzloCap_12.s" + +gSpriteAnimations_EzloCap_13:: @ 0811F31D + .include "animations/gSpriteAnimations_EzloCap_13.s" + +gSpriteAnimations_EzloCap_14:: @ 0811F32A + .include "animations/gSpriteAnimations_EzloCap_14.s" + +gSpriteAnimations_EzloCap_15:: @ 0811F337 + .include "animations/gSpriteAnimations_EzloCap_15.s" + +gSpriteAnimations_EzloCap_16:: @ 0811F360 + .include "animations/gSpriteAnimations_EzloCap_16.s" + +gSpriteAnimations_EzloCap_17:: @ 0811F36D + .include "animations/gSpriteAnimations_EzloCap_17.s" + +gSpriteAnimations_EzloCap_18:: @ 0811F37A + .include "animations/gSpriteAnimations_EzloCap_18.s" + +gSpriteAnimations_EzloCap_19:: @ 0811F387 + .include "animations/gSpriteAnimations_EzloCap_19.s" + +gSpriteAnimations_EzloCap_20:: @ 0811F3B0 + .include "animations/gSpriteAnimations_EzloCap_20.s" + +gSpriteAnimations_EzloCap_21:: @ 0811F3BD + .include "animations/gSpriteAnimations_EzloCap_21.s" + +gSpriteAnimations_EzloCap_22:: @ 0811F3CA + .include "animations/gSpriteAnimations_EzloCap_22.s" + +gSpriteAnimations_EzloCap_23:: @ 0811F3D7 + .include "animations/gSpriteAnimations_EzloCap_23.s" + +gSpriteAnimations_EzloCap_31:: @ 0811F400 + .include "animations/gSpriteAnimations_EzloCap_31.s" + +gSpriteAnimations_EzloCap_32:: @ 0811F405 + .include "animations/gSpriteAnimations_EzloCap_32.s" + +gSpriteAnimations_EzloCap_33:: @ 0811F416 + .include "animations/gSpriteAnimations_EzloCap_33.s" + +gSpriteAnimations_EzloCap_34:: @ 0811F43F + .include "animations/gSpriteAnimations_EzloCap_34.s" + +gSpriteAnimations_EzloCap_24:: @ 0811F468 + .include "animations/gSpriteAnimations_EzloCap_24.s" + +gSpriteAnimations_EzloCap_25:: @ 0811F4B9 + .include "animations/gSpriteAnimations_EzloCap_25.s" + +gSpriteAnimations_EzloCap_26:: @ 0811F4D2 + .include "animations/gSpriteAnimations_EzloCap_26.s" + +gSpriteAnimations_EzloCap_27:: @ 0811F4D7 + .include "animations/gSpriteAnimations_EzloCap_27.s" + +gSpriteAnimations_EzloCap_28:: @ 0811F54B + .include "animations/gSpriteAnimations_EzloCap_28.s" + +gSpriteAnimations_EzloCap_29:: @ 0811F560 + .include "animations/gSpriteAnimations_EzloCap_29.s" + +gSpriteAnimations_EzloCap_30:: @ 0811F575 + .include "animations/gSpriteAnimations_EzloCap_30.s" + +gSpriteAnimations_EzloCap_35:: @ 0811F58A + .include "animations/gSpriteAnimations_EzloCap_35.s" + +gSpriteAnimations_EzloCap:: @ 0811F590 + .4byte gSpriteAnimations_EzloCap_0 + .4byte gSpriteAnimations_EzloCap_1 + .4byte gSpriteAnimations_EzloCap_2 + .4byte gSpriteAnimations_EzloCap_3 + .4byte gSpriteAnimations_EzloCap_4 + .4byte gSpriteAnimations_EzloCap_5 + .4byte gSpriteAnimations_EzloCap_6 + .4byte gSpriteAnimations_EzloCap_7 + .4byte gSpriteAnimations_EzloCap_8 + .4byte gSpriteAnimations_EzloCap_9 + .4byte gSpriteAnimations_EzloCap_10 + .4byte gSpriteAnimations_EzloCap_11 + .4byte gSpriteAnimations_EzloCap_12 + .4byte gSpriteAnimations_EzloCap_13 + .4byte gSpriteAnimations_EzloCap_14 + .4byte gSpriteAnimations_EzloCap_15 + .4byte gSpriteAnimations_EzloCap_16 + .4byte gSpriteAnimations_EzloCap_17 + .4byte gSpriteAnimations_EzloCap_18 + .4byte gSpriteAnimations_EzloCap_19 + .4byte gSpriteAnimations_EzloCap_20 + .4byte gSpriteAnimations_EzloCap_21 + .4byte gSpriteAnimations_EzloCap_22 + .4byte gSpriteAnimations_EzloCap_23 + .4byte gSpriteAnimations_EzloCap_24 + .4byte gSpriteAnimations_EzloCap_25 + .4byte gSpriteAnimations_EzloCap_26 + .4byte gSpriteAnimations_EzloCap_27 + .4byte gSpriteAnimations_EzloCap_28 + .4byte gSpriteAnimations_EzloCap_29 + .4byte gSpriteAnimations_EzloCap_30 + .4byte gSpriteAnimations_EzloCap_31 + .4byte gSpriteAnimations_EzloCap_32 + .4byte gSpriteAnimations_EzloCap_33 + .4byte gSpriteAnimations_EzloCap_34 + .4byte gSpriteAnimations_EzloCap_35 + .4byte 00000000 diff --git a/data/animations/object/object6.s b/data/animations/object/object6.s deleted file mode 100644 index c4ab52b5..00000000 --- a/data/animations/object/object6.s +++ /dev/null @@ -1,152 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gSpriteAnimations_Object6_0:: @ 0811F190 - .include "animations/gSpriteAnimations_Object6_0.s" - -gSpriteAnimations_Object6_1:: @ 0811F1AD - .include "animations/gSpriteAnimations_Object6_1.s" - -gSpriteAnimations_Object6_2:: @ 0811F1CA - .include "animations/gSpriteAnimations_Object6_2.s" - -gSpriteAnimations_Object6_3:: @ 0811F1E7 - .include "animations/gSpriteAnimations_Object6_3.s" - -gSpriteAnimations_Object6_8:: @ 0811F210 - .include "animations/gSpriteAnimations_Object6_8.s" - -gSpriteAnimations_Object6_9:: @ 0811F22D - .include "animations/gSpriteAnimations_Object6_9.s" - -gSpriteAnimations_Object6_10:: @ 0811F24A - .include "animations/gSpriteAnimations_Object6_10.s" - -gSpriteAnimations_Object6_11:: @ 0811F267 - .include "animations/gSpriteAnimations_Object6_11.s" - -gSpriteAnimations_Object6_4:: @ 0811F290 - .include "animations/gSpriteAnimations_Object6_4.s" - -gSpriteAnimations_Object6_5:: @ 0811F2AD - .include "animations/gSpriteAnimations_Object6_5.s" - -gSpriteAnimations_Object6_6:: @ 0811F2CA - .include "animations/gSpriteAnimations_Object6_6.s" - -gSpriteAnimations_Object6_7:: @ 0811F2E7 - .include "animations/gSpriteAnimations_Object6_7.s" - -gSpriteAnimations_Object6_12:: @ 0811F310 - .include "animations/gSpriteAnimations_Object6_12.s" - -gSpriteAnimations_Object6_13:: @ 0811F31D - .include "animations/gSpriteAnimations_Object6_13.s" - -gSpriteAnimations_Object6_14:: @ 0811F32A - .include "animations/gSpriteAnimations_Object6_14.s" - -gSpriteAnimations_Object6_15:: @ 0811F337 - .include "animations/gSpriteAnimations_Object6_15.s" - -gSpriteAnimations_Object6_16:: @ 0811F360 - .include "animations/gSpriteAnimations_Object6_16.s" - -gSpriteAnimations_Object6_17:: @ 0811F36D - .include "animations/gSpriteAnimations_Object6_17.s" - -gSpriteAnimations_Object6_18:: @ 0811F37A - .include "animations/gSpriteAnimations_Object6_18.s" - -gSpriteAnimations_Object6_19:: @ 0811F387 - .include "animations/gSpriteAnimations_Object6_19.s" - -gSpriteAnimations_Object6_20:: @ 0811F3B0 - .include "animations/gSpriteAnimations_Object6_20.s" - -gSpriteAnimations_Object6_21:: @ 0811F3BD - .include "animations/gSpriteAnimations_Object6_21.s" - -gSpriteAnimations_Object6_22:: @ 0811F3CA - .include "animations/gSpriteAnimations_Object6_22.s" - -gSpriteAnimations_Object6_23:: @ 0811F3D7 - .include "animations/gSpriteAnimations_Object6_23.s" - -gSpriteAnimations_Object6_31:: @ 0811F400 - .include "animations/gSpriteAnimations_Object6_31.s" - -gSpriteAnimations_Object6_32:: @ 0811F405 - .include "animations/gSpriteAnimations_Object6_32.s" - -gSpriteAnimations_Object6_33:: @ 0811F416 - .include "animations/gSpriteAnimations_Object6_33.s" - -gSpriteAnimations_Object6_34:: @ 0811F43F - .include "animations/gSpriteAnimations_Object6_34.s" - -gSpriteAnimations_Object6_24:: @ 0811F468 - .include "animations/gSpriteAnimations_Object6_24.s" - -gSpriteAnimations_Object6_25:: @ 0811F4B9 - .include "animations/gSpriteAnimations_Object6_25.s" - -gSpriteAnimations_Object6_26:: @ 0811F4D2 - .include "animations/gSpriteAnimations_Object6_26.s" - -gSpriteAnimations_Object6_27:: @ 0811F4D7 - .include "animations/gSpriteAnimations_Object6_27.s" - -gSpriteAnimations_Object6_28:: @ 0811F54B - .include "animations/gSpriteAnimations_Object6_28.s" - -gSpriteAnimations_Object6_29:: @ 0811F560 - .include "animations/gSpriteAnimations_Object6_29.s" - -gSpriteAnimations_Object6_30:: @ 0811F575 - .include "animations/gSpriteAnimations_Object6_30.s" - -gSpriteAnimations_Object6_35:: @ 0811F58A - .include "animations/gSpriteAnimations_Object6_35.s" - -gSpriteAnimations_Object6:: @ 0811F590 - .4byte gSpriteAnimations_Object6_0 - .4byte gSpriteAnimations_Object6_1 - .4byte gSpriteAnimations_Object6_2 - .4byte gSpriteAnimations_Object6_3 - .4byte gSpriteAnimations_Object6_4 - .4byte gSpriteAnimations_Object6_5 - .4byte gSpriteAnimations_Object6_6 - .4byte gSpriteAnimations_Object6_7 - .4byte gSpriteAnimations_Object6_8 - .4byte gSpriteAnimations_Object6_9 - .4byte gSpriteAnimations_Object6_10 - .4byte gSpriteAnimations_Object6_11 - .4byte gSpriteAnimations_Object6_12 - .4byte gSpriteAnimations_Object6_13 - .4byte gSpriteAnimations_Object6_14 - .4byte gSpriteAnimations_Object6_15 - .4byte gSpriteAnimations_Object6_16 - .4byte gSpriteAnimations_Object6_17 - .4byte gSpriteAnimations_Object6_18 - .4byte gSpriteAnimations_Object6_19 - .4byte gSpriteAnimations_Object6_20 - .4byte gSpriteAnimations_Object6_21 - .4byte gSpriteAnimations_Object6_22 - .4byte gSpriteAnimations_Object6_23 - .4byte gSpriteAnimations_Object6_24 - .4byte gSpriteAnimations_Object6_25 - .4byte gSpriteAnimations_Object6_26 - .4byte gSpriteAnimations_Object6_27 - .4byte gSpriteAnimations_Object6_28 - .4byte gSpriteAnimations_Object6_29 - .4byte gSpriteAnimations_Object6_30 - .4byte gSpriteAnimations_Object6_31 - .4byte gSpriteAnimations_Object6_32 - .4byte gSpriteAnimations_Object6_33 - .4byte gSpriteAnimations_Object6_34 - .4byte gSpriteAnimations_Object6_35 - .4byte 00000000 diff --git a/data/const/object/object6.s b/data/const/object/ezloCap.s similarity index 79% rename from data/const/object/object6.s rename to data/const/object/ezloCap.s index 6b9aebe2..54828709 100644 --- a/data/const/object/object6.s +++ b/data/const/object/ezloCap.s @@ -19,10 +19,10 @@ gUnk_0811F15C:: @ 0811F15C .4byte sub_08082E6C gUnk_0811F16C:: @ 0811F16C - .incbin "object6/gUnk_0811F16C.bin" + .incbin "ezloCap/gUnk_0811F16C.bin" gUnk_0811F178:: @ 0811F178 - .incbin "object6/gUnk_0811F178.bin" + .incbin "ezloCap/gUnk_0811F178.bin" gUnk_0811F18C:: @ 0811F18C - .incbin "object6/gUnk_0811F18C.bin" + .incbin "ezloCap/gUnk_0811F18C.bin" diff --git a/data/data_081146D0.s b/data/data_081146D0.s index 269f070b..5dd1d12c 100644 --- a/data/data_081146D0.s +++ b/data/data_081146D0.s @@ -48,6 +48,6 @@ gUnk_08114F78:: @ 08114F78 gUnk_08114F80:: @ 08114F80 .incbin "data_081146D0/gUnk_08114F80.bin" -gUnk_08114F88:: @ 08114F88 - .incbin "data_081146D0/gUnk_08114F88.bin" +gPlayerHitbox:: @ 08114F88 + .incbin "data_081146D0/gPlayerHitbox.bin" diff --git a/data/data_0811B9E0.s b/data/data_0811B9E0.s index a134b2da..fed89541 100644 --- a/data/data_0811B9E0.s +++ b/data/data_0811B9E0.s @@ -4,156 +4,6 @@ .section .rodata .align 2 -gUnk_0811BA60:: @ 0811BA60 - .4byte sub_08070C3C - .4byte sub_08070CB4 - -gUnk_0811BA68:: @ 0811BA68 - .4byte sub_08070D38 - .4byte sub_08070DC4 - .4byte sub_08070E7C - -gUnk_0811BA74:: @ 0811BA74 - .4byte sub_08070EDC - .4byte sub_08070f24 - -gUnk_0811BA7C:: @ 0811BA7C - .4byte sub_08070FA4 - .4byte sub_08071020 - .4byte sub_08071038 - -gUnk_0811BA88:: @ 0811BA88 - .4byte sub_080710A8 - .4byte sub_08071130 - .4byte sub_08071208 - -gUnk_0811BA94:: @ 0811BA94 - .4byte sub_0807127C - .4byte sub_080712F0 - -gUnk_0811BA9C:: @ 0811BA9C - .4byte PortalJumpOnUpdate - .4byte PortalStandUpdate - .4byte PortalActivateInit - .4byte PortalActivateUpdate - .4byte PortalShrinkInit - .4byte PortalShrinkUpdate - .4byte PortalEnterUpdate - .4byte PortalUnknownUpdate - -gUnk_0811BABC:: @ 0811BABC - .incbin "data_0811B9E0/gUnk_0811BABC.bin" - -gUnk_0811BAC4:: @ 0811BAC4 - .incbin "data_0811B9E0/gUnk_0811BAC4.bin" - -gUnk_0811BAD4:: @ 0811BAD4 - .4byte sub_080718A0 - .4byte sub_0807193C - .4byte sub_08071990 - .4byte sub_08071A4C - -gUnk_0811BAE4:: @ 0811BAE4 - .4byte sub_08071AB0 - .4byte sub_08071AF0 - .4byte sub_08071B60 - -gUnk_0811BAF0:: @ 0811BAF0 - .incbin "data_0811B9E0/gUnk_0811BAF0.bin" - -gUnk_0811BB2C:: @ 0811BB2C - .4byte sub_08071BDC - .4byte sub_08071CAC - .4byte sub_08071D04 - .4byte sub_08071D80 - -gUnk_0811BB3C:: @ 0811BB3C - .4byte sub_08071DD0 - .4byte sub_08071E04 - .4byte sub_08071E74 - -gUnk_0811BB48:: @ 0811BB48 - .4byte sub_08071EB0 - .4byte sub_08071F14 - -gUnk_0811BB50:: @ 0811BB50 - .4byte sub_08071F50 - .4byte sub_08071F80 - -gUnk_0811BB58:: @ 0811BB58 - .4byte sub_08072064 - .4byte sub_08072098 - -gUnk_0811BB60:: @ 0811BB60 - .4byte sub_08072100 - .4byte sub_08072168 - -gUnk_0811BB68:: @ 0811BB68 - .4byte sub_08072214 - .4byte sub_08072260 - -gUnk_0811BB70:: @ 0811BB70 - .4byte sub_080722DC - .4byte sub_08072354 - .4byte sub_080723D0 - .4byte sub_0807240C - -gUnk_0811BB80:: @ 0811BB80 - .4byte sub_0807246C - .4byte sub_08072490 - -gUnk_0811BB88:: @ 0811BB88 - .4byte sub_080724DC - .4byte sub_0807258C - -gUnk_0811BB90:: @ 0811BB90 - .4byte sub_08072650 - .4byte sub_080726F4 - -gUnk_0811BB98:: @ 0811BB98 - .4byte sub_08072970 - .4byte sub_08072A60 - .4byte sub_08072ACC - .4byte sub_08072B5C - .4byte sub_08072C48 - -gUnk_0811BBAC:: @ 0811BBAC - .4byte sub_08072CC0 - .4byte sub_08072CFC - .4byte sub_08072D54 - .4byte sub_08072F14 - -gUnk_0811BBBC:: @ 0811BBBC - .incbin "data_0811B9E0/gUnk_0811BBBC.bin" - -gUnk_0811BBC2:: @ 0811BBC2 - .incbin "data_0811B9E0/gUnk_0811BBC2.bin" - -gUnk_0811BBC8:: @ 0811BBC8 - .incbin "data_0811B9E0/gUnk_0811BBC8.bin" - -gUnk_0811BBCE:: @ 0811BBCE - .incbin "data_0811B9E0/gUnk_0811BBCE.bin" - -gUnk_0811BBD4:: @ 0811BBD4 - .4byte gUnk_0811BBBC - .4byte gUnk_0811BBC2 - .4byte gUnk_0811BBC8 - .4byte gUnk_0811BBCE - -gUnk_0811BBE4:: @ 0811BBE4 - .4byte sub_08072F94 - .4byte sub_08073094 - -gUnk_0811BBEC:: @ 0811BBEC - .incbin "data_0811B9E0/gUnk_0811BBEC.bin" - -gUnk_0811BBF8:: @ 0811BBF8 - .4byte sub_080731D8 - .4byte sub_080732D0 - .4byte sub_0807332C - .4byte sub_080733BC - gUnk_0811BC08:: @ 0811BC08 .4byte sub_08073468 .4byte sub_080734D4 diff --git a/data/data_0811E454.s b/data/data_0811E454.s deleted file mode 100755 index 577fc188..00000000 --- a/data/data_0811E454.s +++ /dev/null @@ -1,11 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_0811E510:: @ 0811E510 - .incbin "data_0811E454/gUnk_0811E510.bin" - -gUnk_0811E514:: @ 0811E514 - .incbin "data_0811E454/gUnk_0811E514.bin" diff --git a/data/data_0811E750.s b/data/data_0811E750.s index 4f280273..df1745c8 100644 --- a/data/data_0811E750.s +++ b/data/data_0811E750.s @@ -4,15 +4,6 @@ .section .rodata .align 2 -gUnk_0811E750:: @ 0811E750 - .incbin "data_0811E750/gUnk_0811E750.bin" - -gUnk_0811E758:: @ 0811E758 - .incbin "data_0811E750/gUnk_0811E758.bin" - -gUnk_0811E760:: @ 0811E760 - .incbin "data_0811E750/gUnk_0811E760.bin" - gUnk_0811E768:: @ 0811E768 .4byte sub_0807FC64 .4byte sub_0807FC7C diff --git a/data/gfx/sprite_frames.s b/data/gfx/sprite_frames.s index f1a2f307..6dc4cd56 100644 --- a/data/gfx/sprite_frames.s +++ b/data/gfx/sprite_frames.s @@ -34,8 +34,8 @@ gSpriteFrames_9:: @ 08116A9C gSpriteFrames_Object4:: @ 08116D0C .include "sprites/gSpriteFrames_Object4.s" -gSpriteFrames_Object6:: @ 08116DD4 - .include "sprites/gSpriteFrames_Object6.s" +gSpriteFrames_EzloCap:: @ 08116DD4 + .include "sprites/gSpriteFrames_EzloCap.s" gSpriteFrames_12:: @ 08116F64 .include "sprites/gSpriteFrames_12.s" diff --git a/data/gfx/sprite_ptrs.s b/data/gfx/sprite_ptrs.s index 45ed5370..00f76d64 100644 --- a/data/gfx/sprite_ptrs.s +++ b/data/gfx/sprite_ptrs.s @@ -60,8 +60,8 @@ gSpritePtrs:: @ 080029B4 .4byte gSprite_Link .4byte 00000000 - .4byte gSpriteAnimations_Object6 - .4byte gSpriteFrames_Object6 + .4byte gSpriteAnimations_EzloCap + .4byte gSpriteFrames_EzloCap .4byte gSprite_Link .4byte 00000000 diff --git a/data/scripts/script_08008D8C.inc b/data/scripts/script_08008D8C.inc index 1dd05221..1b34fcb9 100644 --- a/data/scripts/script_08008D8C.inc +++ b/data/scripts/script_08008D8C.inc @@ -81,7 +81,7 @@ script_08008E12: _0807E5F8 0x00000001 WaitForSomething2 0x00000002 _0807F034 0x0035 - WaitPlayerAction8 + WaitPlayerGetItem StartPlayerScript script_08008FC0 WaitForSomething2 0x00000020 _0807E8E4_0 @@ -95,7 +95,7 @@ script_08008E12: _0807E5F8 0x00000001 WaitForSomething2 0x00000002 _0807F034 0x0047 - WaitPlayerAction8 + WaitPlayerGetItem SetIntVariable 0x00000003 Call sub_0807F420 _0807E8E4_0 diff --git a/data/scripts/script_08009464.inc b/data/scripts/script_08009464.inc index 26dafb65..05f2b9d0 100644 --- a/data/scripts/script_08009464.inc +++ b/data/scripts/script_08009464.inc @@ -20,7 +20,7 @@ SCRIPT_START script_08009464 .endif Call sub_0806D620 Wait 0x003c - WaitPlayerAction8 + WaitPlayerGetItem _0807EB8C MessageNoOverlap 0x1d0c WaitUntilTextboxCloses diff --git a/data/scripts/script_080095F2.inc b/data/scripts/script_080095F2.inc index 4b5abf8d..a0b52a09 100644 --- a/data/scripts/script_080095F2.inc +++ b/data/scripts/script_080095F2.inc @@ -10,7 +10,7 @@ SCRIPT_START script_080095F2 PlaySound SFX_109 _0807F088 0x003c MessageFromTarget 0x053c - WaitPlayerAction8 + WaitPlayerGetItem WaitUntilTextboxCloses _0807F078 0x003c, 0x0001 script_08009622: diff --git a/data/scripts/script_08009B78.inc b/data/scripts/script_08009B78.inc index 04b88f0d..10bffa01 100644 --- a/data/scripts/script_08009B78.inc +++ b/data/scripts/script_08009B78.inc @@ -42,7 +42,7 @@ SCRIPT_START script_08009B78 WaitForSomething2 0x00000008 Call sub_08053250 _0807F034 0x0034 - WaitPlayerAction8 + WaitPlayerGetItem _0807E8E4_1 DoPostScriptAction 0x0001 MessageFromTargetPos 0x100c, 0x0000 diff --git a/data/scripts/script_08009F14.inc b/data/scripts/script_08009F14.inc index 48c49a06..16130637 100644 --- a/data/scripts/script_08009F14.inc +++ b/data/scripts/script_08009F14.inc @@ -25,7 +25,7 @@ script_08009F36: WaitUntilTextboxCloses Wait 0x001e _0807F034 0x0065 - WaitPlayerAction8 + WaitPlayerGetItem DoPostScriptAction 0x000a Call sub_0807DF50 _0807E878 @@ -74,7 +74,7 @@ script_0800A002: Wait 0x0008 _0807F034 0x0008 Call sub_08060318 - WaitPlayerAction8 + WaitPlayerGetItem Wait 0x0008 _0807EB8C MessageFromTarget 0x1f13 @@ -108,7 +108,7 @@ script_0800A064: Wait 0x0008 _0807F034 0x0007 Call sub_08060318 - WaitPlayerAction8 + WaitPlayerGetItem Wait 0x0008 _0807EB8C MessageFromTarget 0x1f10 diff --git a/data/scripts/script_0800AB6E.inc b/data/scripts/script_0800AB6E.inc index da617bfc..6b859b90 100644 --- a/data/scripts/script_0800AB6E.inc +++ b/data/scripts/script_0800AB6E.inc @@ -5,7 +5,7 @@ SCRIPT_START script_0800AB6E _0807E8E4_0 _0807E5F8 0x00000040 WaitForSomething2 0x00000080 - SetEntityPosition 0x0000, 0xffe0 + OffsetEntityPosition 0x0000, 0xffe0 Call sub_0807F5C0 Wait 0x003c CallWithArg DeleteManager36, 0x00000001 @@ -26,7 +26,7 @@ SCRIPT_START script_0800AB6E _0807E5F8 0x00000008 _0807E5F8 0x00000002 WaitForSomething2 0x00000004 - SetEntityPosition 0x0000, 0x0020 + OffsetEntityPosition 0x0000, 0x0020 Call sub_0807F5C0 WaitForSomething2 0x00000010 StartPlayerScript script_0800ACE0 @@ -36,7 +36,7 @@ SCRIPT_START script_0800AB6E WaitUntilTextboxCloses MessageFromTargetPos 0x1663, 0x000e WaitUntilTextboxCloses - SetEntityPosition 0x0000, 0xffe0 + OffsetEntityPosition 0x0000, 0xffe0 Call sub_0807F5C0 _0807E5F8 0x00000002 WaitForSomething2 0x00000004 diff --git a/data/scripts/script_0800B41C.inc b/data/scripts/script_0800B41C.inc index 4eebd83c..edc7331b 100644 --- a/data/scripts/script_0800B41C.inc +++ b/data/scripts/script_0800B41C.inc @@ -17,7 +17,7 @@ SCRIPT_START script_0800B41C Wait 0x003c PlaySound SFX_TASK_COMPLETE _0807F088 0x0037 - WaitPlayerAction8 + WaitPlayerGetItem _0807EB8C MessageFromTarget 0x200c WaitUntilTextboxCloses diff --git a/data/scripts/script_0800B5EC.inc b/data/scripts/script_0800B5EC.inc index b00d322d..2ec4bf11 100644 --- a/data/scripts/script_0800B5EC.inc +++ b/data/scripts/script_0800B5EC.inc @@ -49,7 +49,7 @@ script_0800B68E: SetLocalFlag 0x009e _0807F034 0x0066 script_0800B698: - WaitPlayerAction8 + WaitPlayerGetItem _0807EB8C Wait 0x001e MessageNoOverlap 0x057f diff --git a/data/scripts/script_0800C550.inc b/data/scripts/script_0800C550.inc index 313ff8ec..14f85748 100644 --- a/data/scripts/script_0800C550.inc +++ b/data/scripts/script_0800C550.inc @@ -89,7 +89,7 @@ SCRIPT_START script_0800C634 _0807EB44 0x0004 CheckLocalFlag 0x0082 JumpIfNot script_0800C650 - SetEntityPosition 0x0010, 0x0000 + OffsetEntityPosition 0x0010, 0x0000 script_0800C650: EndBlock script_0800C652: diff --git a/data/scripts/script_0800CD7C.inc b/data/scripts/script_0800CD7C.inc index 69d3a300..5a3bef29 100644 --- a/data/scripts/script_0800CD7C.inc +++ b/data/scripts/script_0800CD7C.inc @@ -43,7 +43,7 @@ script_0800CDEC: JumpIfNot script_0800CF40 PlaySound SFX_TASK_COMPLETE _0807F088 0x0023 - WaitPlayerAction8 + WaitPlayerGetItem Jump script_0800CE32 script_0800CE14: _0807E48C 0x0022 @@ -54,7 +54,7 @@ script_0800CE14: JumpIfNot script_0800CF40 PlaySound SFX_TASK_COMPLETE _0807F088 0x0022 - WaitPlayerAction8 + WaitPlayerGetItem script_0800CE32: _0807EB8C SetGlobalFlag 0x0054 @@ -83,7 +83,7 @@ script_0800CE6E: JumpIfNot script_0800CF40 PlaySound SFX_TASK_COMPLETE _0807F088 0x0027 - WaitPlayerAction8 + WaitPlayerGetItem _0807EB8C SetGlobalFlag 0x0054 Call sub_08060340 @@ -111,7 +111,7 @@ script_0800CECE: JumpIfNot script_0800CF40 PlaySound SFX_TASK_COMPLETE _0807F088 0x0024 - WaitPlayerAction8 + WaitPlayerGetItem _0807EB8C SetGlobalFlag 0x0054 Call sub_08060340 diff --git a/data/scripts/script_0800D874.inc b/data/scripts/script_0800D874.inc index 9b20129e..6e7a1185 100644 --- a/data/scripts/script_0800D874.inc +++ b/data/scripts/script_0800D874.inc @@ -42,7 +42,7 @@ script_0800D8F4: JumpIfNot script_0800D8F4 Call sub_0807DF28 _0807E864 - WaitPlayerAction8 + WaitPlayerGetItem _0807EB28 0x1325 WaitUntilTextboxCloses PlaySound SFX_113 diff --git a/data/scripts/script_0800D954.inc b/data/scripts/script_0800D954.inc index 8ca3a5dd..3ddd4c9d 100644 --- a/data/scripts/script_0800D954.inc +++ b/data/scripts/script_0800D954.inc @@ -27,7 +27,7 @@ script_0800D962: _0807E5F8 0x00000004 WaitForSomething2 0x00000002 _0807F050 0x006d - WaitPlayerAction8 + WaitPlayerGetItem _0807EB28 0x1703 WaitUntilTextboxCloses Wait 0x003c diff --git a/data/scripts/script_0800E0BC.inc b/data/scripts/script_0800E0BC.inc index dadd18a9..3b30dd5e 100644 --- a/data/scripts/script_0800E0BC.inc +++ b/data/scripts/script_0800E0BC.inc @@ -227,7 +227,7 @@ script_0800E3C8: WaitUntilTextboxCloses Wait 0x000f _0807F034 0x0053 - WaitPlayerAction8 + WaitPlayerGetItem SetLocalFlag 0x0071 _0807E878 script_0800E3E8: diff --git a/data/scripts/script_0800E6B0.inc b/data/scripts/script_0800E6B0.inc index 6e3a7acd..3ecd0d05 100644 --- a/data/scripts/script_0800E6B0.inc +++ b/data/scripts/script_0800E6B0.inc @@ -41,7 +41,7 @@ script_0800E708: script_0800E722: WaitUntilTextboxCloses _0807F034 0x0057 - WaitPlayerAction8 + WaitPlayerGetItem WaitUntilTextboxCloses _0807E878 Jump script_0800E6F4 diff --git a/data/scripts/script_0800EA54.inc b/data/scripts/script_0800EA54.inc index ab672332..be000e41 100644 --- a/data/scripts/script_0800EA54.inc +++ b/data/scripts/script_0800EA54.inc @@ -220,7 +220,7 @@ script_0800ED20: WaitUntilTextboxCloses JumpIfNot script_0800ED46 _0807F050 0x0070 - WaitPlayerAction8 + WaitPlayerGetItem script_0800ED46: _0807E878 Call sub_08063874 diff --git a/data/scripts/script_0800EFC0.inc b/data/scripts/script_0800EFC0.inc index d8d298e3..58456975 100644 --- a/data/scripts/script_0800EFC0.inc +++ b/data/scripts/script_0800EFC0.inc @@ -66,7 +66,7 @@ script_0800F09A: MessageFromTargetPos 0x1202, 0x000c WaitUntilTextboxCloses _0807F034 0x0067 - WaitPlayerAction8 + WaitPlayerGetItem _0807E8E4_0 _0807E5F8 0x00000002 WaitForSomething2 0x00000040 diff --git a/data/scripts/script_0800F724.inc b/data/scripts/script_0800F724.inc index bf480cfd..acc3e12f 100644 --- a/data/scripts/script_0800F724.inc +++ b/data/scripts/script_0800F724.inc @@ -175,7 +175,7 @@ SCRIPT_START script_0800F73C MessageFromTargetPos 0x102b, 0x0000 WaitUntilTextboxCloses _0807F034 0x000d - WaitPlayerAction8 + WaitPlayerGetItem Call sub_0806DC3C Call sub_080791BC CallWithArg sub_0807F244, 0x0000000d diff --git a/data/scripts/script_080100C8.inc b/data/scripts/script_080100C8.inc index 5181354d..360411e1 100644 --- a/data/scripts/script_080100C8.inc +++ b/data/scripts/script_080100C8.inc @@ -107,7 +107,7 @@ script_080101AC: WaitUntilTextboxCloses JumpIfNot script_08010240 Call sub_080A13E8 - WaitPlayerAction8 + WaitPlayerGetItem Call sub_080A1460 WaitUntilTextboxCloses Call sub_080A14A8 diff --git a/data/scripts/script_08010264.inc b/data/scripts/script_08010264.inc index 6ca8b25e..d088e35d 100644 --- a/data/scripts/script_08010264.inc +++ b/data/scripts/script_08010264.inc @@ -246,7 +246,7 @@ script_08010570: MessageNoOverlap 0x2b07 WaitUntilTextboxCloses CallWithArg sub_0807F800, 0x00000000 - WaitPlayerAction8 + WaitPlayerGetItem WaitUntilTextboxCloses MessageNoOverlap 0x2b0c Jump script_080105E0 @@ -366,14 +366,14 @@ script_080106E0: MessageNoOverlap 0x3c04 Jump script_08010726 script_0801070C: - WaitPlayerAction8 + WaitPlayerGetItem ModHealth 0x0008 Call sub_08062EDC JumpIf script_08010724 MessageNoOverlap 0x3c06 Jump script_08010726 script_08010724: - WaitPlayerAction8 + WaitPlayerGetItem script_08010726: WaitUntilTextboxCloses _0807E878 @@ -489,7 +489,7 @@ script_08010860: JumpIfNot script_080108B2 Call GoronMerchant_TryToBuyKinstone JumpIfNot script_080108B2 - WaitPlayerAction8 + WaitPlayerGetItem WaitUntilTextboxCloses _0807EB8C CheckGlobalFlag 0x0042 diff --git a/data/scripts/script_08011B40.inc b/data/scripts/script_08011B40.inc index 3054956e..461cbf23 100644 --- a/data/scripts/script_08011B40.inc +++ b/data/scripts/script_08011B40.inc @@ -74,7 +74,7 @@ script_08011C28: CheckLocalFlag 0x0001 JumpIfNot script_08011C28 _0807E888 - WaitPlayerAction8 + WaitPlayerGetItem Wait 0x001e CallWithArg sub_0806C2A0, 0x00000000 WaitFor_2 diff --git a/data/scripts/script_08011C7C.inc b/data/scripts/script_08011C7C.inc index 519811d2..bc4f9a5e 100644 --- a/data/scripts/script_08011C7C.inc +++ b/data/scripts/script_08011C7C.inc @@ -362,7 +362,7 @@ script_08012070: MessageNoOverlap 0x3125 WaitUntilTextboxCloses _0807F034 0x0031 - WaitPlayerAction8 + WaitPlayerGetItem .ifdef USA Call sub_0807FC24 .else @@ -420,7 +420,7 @@ script_080120FC: MessageNoOverlap 0x3119 WaitUntilTextboxCloses _0807F034 0x002f - WaitPlayerAction8 + WaitPlayerGetItem .ifdef USA Call sub_0807FC24 .else @@ -478,7 +478,7 @@ script_08012188: MessageNoOverlap 0x311f WaitUntilTextboxCloses _0807F034 0x0030 - WaitPlayerAction8 + WaitPlayerGetItem .ifdef USA Call sub_0807FC24 .else diff --git a/data/scripts/script_0801232C.inc b/data/scripts/script_0801232C.inc index 326bc40e..82ed1d1a 100644 --- a/data/scripts/script_0801232C.inc +++ b/data/scripts/script_0801232C.inc @@ -15,7 +15,7 @@ script_08012338: JumpIf script_0801235A SetLocalFlag 0x0042 _0807F034 0x0057 - WaitPlayerAction8 + WaitPlayerGetItem script_0801235A: _0807E878 Jump script_08012338 diff --git a/data/scripts/script_08012430.inc b/data/scripts/script_08012430.inc index 0a87a50e..5390ddeb 100644 --- a/data/scripts/script_08012430.inc +++ b/data/scripts/script_08012430.inc @@ -17,7 +17,7 @@ script_08012440: JumpIf script_08012474 SetLocalFlag 0x00b3 _0807F034 0x0062 - WaitPlayerAction8 + WaitPlayerGetItem .ifdef USA SetLocalFlag 0x00d0 .else diff --git a/data/scripts/script_08012F86.inc b/data/scripts/script_08012F86.inc index fdd495d6..13ddc6bf 100644 --- a/data/scripts/script_08012F86.inc +++ b/data/scripts/script_08012F86.inc @@ -39,7 +39,7 @@ script_08013006: EndBlock PlaySound SFX_TASK_COMPLETE _0807F088 0x0038 - WaitPlayerAction8 + WaitPlayerGetItem Wait 0x001e _0807E8E4_0 Call sub_0806AB9C @@ -62,7 +62,7 @@ script_08013006: WaitUntilTextboxCloses _0807E5F8 0x00000200 _0807F034 0x0015 - WaitPlayerAction8 + WaitPlayerGetItem _0807EB8C MessageNoOverlap 0x4406 WaitUntilTextboxCloses diff --git a/data/scripts/script_0801319A.inc b/data/scripts/script_0801319A.inc index c32c850d..0f1b052e 100644 --- a/data/scripts/script_0801319A.inc +++ b/data/scripts/script_0801319A.inc @@ -24,7 +24,7 @@ SCRIPT_START script_080131AC StartPlayerScript script_08013330 WaitForSomething2 0x00000002 MoveEntityToPlayer - SetEntityPosition 0x0000, 0xfff0 + OffsetEntityPosition 0x0000, 0xfff0 Call sub_0807F844 CameraTargetEntity Call sub_080536B8 diff --git a/data/scripts/script_08014094.inc b/data/scripts/script_08014094.inc index 804c7748..ba91ee5c 100644 --- a/data/scripts/script_08014094.inc +++ b/data/scripts/script_08014094.inc @@ -3,7 +3,7 @@ SCRIPT_START script_08014094 DoPostScriptAction 0x0007 _0807E930 0x0002 Call sub_0807F738 - SetEntityPosition 0x0000, 0xfff0 + OffsetEntityPosition 0x0000, 0xfff0 EndBlock WaitForSomething 0x00000040 DoPostScriptAction 0x0006 diff --git a/data/scripts/script_080140B8.inc b/data/scripts/script_080140B8.inc index 94996896..200930ac 100644 --- a/data/scripts/script_080140B8.inc +++ b/data/scripts/script_080140B8.inc @@ -3,7 +3,7 @@ SCRIPT_START script_080140B8 DoPostScriptAction 0x0007 _0807E930 0x0003 Call sub_0807F738 - SetEntityPosition 0x0000, 0xfff0 + OffsetEntityPosition 0x0000, 0xfff0 EndBlock WaitForSomething 0x00000040 DoPostScriptAction 0x0006 diff --git a/data/scripts/script_08014154.inc b/data/scripts/script_08014154.inc index 5f7ddbf6..175080d4 100644 --- a/data/scripts/script_08014154.inc +++ b/data/scripts/script_08014154.inc @@ -2,7 +2,7 @@ SCRIPT_START script_08014154 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0006 - SetEntityPosition 0x0000, 0xfff0 + OffsetEntityPosition 0x0000, 0xfff0 EndBlock WaitForSomething2 0x00000800 _0807E930 0x000a diff --git a/data/scripts/script_08014198.inc b/data/scripts/script_08014198.inc index c3506e6f..23954b49 100644 --- a/data/scripts/script_08014198.inc +++ b/data/scripts/script_08014198.inc @@ -2,7 +2,7 @@ SCRIPT_START script_08014198 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0007 - SetEntityPosition 0x0000, 0xfff0 + OffsetEntityPosition 0x0000, 0xfff0 EndBlock WaitForSomething2 0x00001000 _0807E930 0x000b diff --git a/data/scripts/script_080143C0.inc b/data/scripts/script_080143C0.inc index dc3c8b0f..a47c473e 100644 --- a/data/scripts/script_080143C0.inc +++ b/data/scripts/script_080143C0.inc @@ -22,7 +22,7 @@ script_080143FA: SetIntVariable 0x00000000 Call sub_08065528 _0807F034 0x0036 - WaitPlayerAction8 + WaitPlayerGetItem MessageNoOverlap 0x2c19 WaitUntilTextboxCloses SetIntVariable 0x00000303 diff --git a/data/scripts/script_080145E8.inc b/data/scripts/script_080145E8.inc index cd83bffc..43290291 100644 --- a/data/scripts/script_080145E8.inc +++ b/data/scripts/script_080145E8.inc @@ -233,7 +233,7 @@ script_0801478A: Call sub_08088478 WaitUntilTextboxCloses Call sub_080885B0 - WaitPlayerAction8 + WaitPlayerGetItem _0807E5F8 0x00000008 Jump script_080147CE script_080147A4: diff --git a/data/scripts/script_08014B34.inc b/data/scripts/script_08014B34.inc index a53d3c1f..fd880ee7 100644 --- a/data/scripts/script_08014B34.inc +++ b/data/scripts/script_08014B34.inc @@ -60,7 +60,7 @@ script_08014BF2: WaitUntilTextboxCloses SetIntVariable 0x00000064 _0807F034 0x003f - WaitPlayerAction8 + WaitPlayerGetItem Jump script_08014C22 script_08014C1C: MessageNoOverlap 0x2f08 @@ -93,7 +93,7 @@ script_08014C56: MessageNoOverlap 0x2f0d WaitUntilTextboxCloses _0807F034 0x000a - WaitPlayerAction8 + WaitPlayerGetItem Jump script_08014C82 script_08014C7C: MessageNoOverlap 0x2f09 diff --git a/data/scripts/script_08014E14.inc b/data/scripts/script_08014E14.inc index a42da868..86972a81 100644 --- a/data/scripts/script_08014E14.inc +++ b/data/scripts/script_08014E14.inc @@ -38,7 +38,7 @@ script_08014E64: _0807E48C 0x0020 JumpIfNot script_08014EB8 CallWithArg sub_0807F800, 0x00000022 - WaitPlayerAction8 + WaitPlayerGetItem MessageNoOverlap 0x0a04 Jump script_08014EBC script_08014EB0: @@ -117,7 +117,7 @@ script_08014F4A: JumpIfNot script_08014FA2 ModRupees 0xff9c _0807F034 0x0022 - WaitPlayerAction8 + WaitPlayerGetItem MessageNoOverlap 0x3b11 Jump script_08014FA6 script_08014F9A: diff --git a/data/scripts/script_08016062.inc b/data/scripts/script_08016062.inc index d3b89b6b..fb0d6300 100644 --- a/data/scripts/script_08016062.inc +++ b/data/scripts/script_08016062.inc @@ -1,4 +1,4 @@ SCRIPT_START script_08016062 - SetEntityPosition 0xfff0, 0x0000 + OffsetEntityPosition 0xfff0, 0x0000 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/script_0801609E.inc b/data/scripts/script_0801609E.inc index 22853136..e11bf37f 100644 --- a/data/scripts/script_0801609E.inc +++ b/data/scripts/script_0801609E.inc @@ -1,4 +1,4 @@ SCRIPT_START script_0801609E - SetEntityPosition 0x0010, 0x0000 + OffsetEntityPosition 0x0010, 0x0000 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/script_080160A8.inc b/data/scripts/script_080160A8.inc index 576ed2c3..eba0a74e 100644 --- a/data/scripts/script_080160A8.inc +++ b/data/scripts/script_080160A8.inc @@ -33,7 +33,7 @@ script_080160E0: WaitUntilTextboxCloses Jump script_08016132 script_0801610C: - WaitPlayerAction8 + WaitPlayerGetItem .ifndef EU _0807EB8C MessageFromTarget 0x2d0d @@ -79,7 +79,7 @@ script_08016172: MessageFromTarget 0x2d0b Jump script_0801618A script_08016184: - WaitPlayerAction8 + WaitPlayerGetItem MessageFromTarget 0x2d06 script_0801618A: _0807E878 @@ -109,7 +109,7 @@ script_080161C6: Jump script_080161E2 script_080161D8: .ifndef EU - WaitPlayerAction8 + WaitPlayerGetItem WaitUntilTextboxCloses _0807EB8C MessageNoOverlap 0x2d06 @@ -205,7 +205,7 @@ script_0801631C: Call sub_08068E30 WaitUntilTextboxCloses Call sub_08068C6C - WaitPlayerAction8 + WaitPlayerGetItem WaitUntilTextboxCloses Jump script_08016346 script_08016332: diff --git a/data/scripts/script_08016384.inc b/data/scripts/script_08016384.inc index 34c36c59..ff750c90 100644 --- a/data/scripts/script_08016384.inc +++ b/data/scripts/script_08016384.inc @@ -61,7 +61,7 @@ SCRIPT_START script_08016384 Wait 0x001e WaitForSomething 0x00000001 WaitForSomething2 0x00000002 - WaitPlayerAction8 + WaitPlayerGetItem WaitForPlayerAction0x17 WaitFor_1 WaitFor_2 diff --git a/data/scripts/script_080165D8.inc b/data/scripts/script_080165D8.inc index 47de49ed..e9ef17f2 100644 --- a/data/scripts/script_080165D8.inc +++ b/data/scripts/script_080165D8.inc @@ -225,7 +225,7 @@ script_0801690A: WaitUntilTextboxCloses JumpIfNot script_08016926 _0807F034 0x003d - WaitPlayerAction8 + WaitPlayerGetItem script_08016926: _0807E878 SetGlobalFlag 0x005c diff --git a/include/definitions.h b/include/definitions.h index 83c42b30..f2d631d9 100644 --- a/include/definitions.h +++ b/include/definitions.h @@ -114,7 +114,7 @@ typedef enum { SPRITE_8, SPRITE_9, SPRITE_OBJECT4, - SPRITE_OBJECT6, + SPRITE_EZLOCAP, SPRITE_12, SPRITE_13, SPRITE_14, diff --git a/include/effects.h b/include/effects.h index 696ab9ab..95ad4105 100644 --- a/include/effects.h +++ b/include/effects.h @@ -115,4 +115,4 @@ typedef enum { FX_6C, } Effect; -#endif // EFFECTS_H \ No newline at end of file +#endif // EFFECTS_H diff --git a/include/entity.h b/include/entity.h index 8c54edf0..778a3f8e 100644 --- a/include/entity.h +++ b/include/entity.h @@ -5,6 +5,8 @@ #include "global.h" #include "sprite.h" +#define MAX_ENTITIES 71 + typedef enum { PLAYER = 1, ENEMY = 3, @@ -175,6 +177,13 @@ enum { #define COORD_TO_TILE_OFFSET(entity, xOff, yOff) \ TILE((entity)->x.HALF.HI - (xOff), (entity)->y.HALF.HI - (yOff)) +enum { + IdleNorth = 0x0, + IdleEast = 0x2, + IdleSouth = 0x4, + IdleWest = 0x6, +}; + enum { DirectionNorth = 0x00, DirectionEast = 0x08, @@ -182,6 +191,10 @@ enum { DirectionWest = 0x18, }; +#define AnimationStateTurnAround(expr) ((expr) ^ 0x4) +#define AnimationStateIdle(expr) ((expr) & 0x6) +#define AnimationStateWalk(expr) ((expr) & 0xe) + #define DirectionRound(expr) ((expr) & 0x18) #define DirectionRoundUp(expr) DirectionRound((expr) + 4) #define DirectionIsHorizontal(expr) ((expr) & 0x08) @@ -194,7 +207,7 @@ enum { #define Direction8Round(expr) ((expr) & 0x1c) #define Direction8RoundUp(expr) Direction8Round((expr) + 2) #define Direction8TurnAround(expr) (Direction8RoundUp(expr) ^ 0x10) -#define Direction8ToAnimationState(expr) (Direction8RoundUp(expr) >> 2) +#define Direction8ToAnimationState(expr) ((expr) >> 2) #define Direction8FromAnimationState(expr) ((expr) << 2) Entity* GetEmptyEntity(void); @@ -270,11 +283,10 @@ void EraseAllEntities(void); enum { PRIO_MIN = 0, PRIO_PLAYER = 1, - PRIO_REQUESTED = 2, - PRIO_MESSAGE = 2, - PRIO_OVERRIDE_MESSAGE = 3, - PRIO_PLAYER_EVENT = 6, - PRIO_INITIALIZING = 7, + PRIO_MESSAGE = 2, /* do not block during message */ + PRIO_NO_BLOCK = 3, /* do not block during entity requested priority */ + PRIO_PLAYER_EVENT = 6, /* do not block during special player event */ + PRIO_HIGHEST = 7, /* do not block EVER */ }; /** diff --git a/include/fileScreen.h b/include/fileScreen.h index fd4b7c7e..8cf2304b 100644 --- a/include/fileScreen.h +++ b/include/fileScreen.h @@ -12,6 +12,7 @@ typedef struct { u16 timer; u8 fillerA[0x26]; } ChooseFileState; +static_assert(sizeof(ChooseFileState) == 0x30); // TODO: This occupies the same memory region as gMenu extern ChooseFileState gChooseFileState; diff --git a/include/functions.h b/include/functions.h index 58e54500..09926f5d 100644 --- a/include/functions.h +++ b/include/functions.h @@ -90,7 +90,7 @@ extern void sub_0804A720(Entity*); extern u32 sub_080AEFE0(Entity*); extern u32 sub_08049FA0(Entity*); extern u32 sub_08049FDC(Entity*, u32); -extern u32 sub_080041A0(Entity*, Entity*, u32, u32); +extern u32 EntityInRectRadius(Entity*, Entity*, u32, u32); extern u32 sub_08049EE4(Entity*); extern void sub_08077E54(ItemBehavior*); extern void sub_080042BA(Entity*, u32); @@ -260,7 +260,7 @@ extern void sub_0800455E(Entity*); extern u32* sub_08008790(Entity*, u32); extern void sub_0804ACF8(); extern void sub_08073904(Entity*); -extern u32 sub_08056134(void); +extern u32 CheckHeaderValid(void); extern void sub_08004484(Entity*, Entity*); extern void sub_0805F8E4(u32 r0, WStruct* r1); extern u32 sub_08002632(Entity*); diff --git a/include/hitbox.h b/include/hitbox.h index ce9c20e6..c9f7ef46 100644 --- a/include/hitbox.h +++ b/include/hitbox.h @@ -88,4 +88,5 @@ extern const Hitbox gUnk_080FD4E0; extern const Hitbox gUnk_080FD3F4; extern const Hitbox gUnk_080FD3FC; extern const Hitbox gUnk_080FD43C; -#endif \ No newline at end of file +extern const Hitbox gPlayerHitbox; +#endif diff --git a/include/npc.h b/include/npc.h index c30b628b..bf49ef0a 100644 --- a/include/npc.h +++ b/include/npc.h @@ -83,7 +83,7 @@ enum NPC { /*0x4a*/ GREGAL, /*0x4b*/ MAYOR_HAGEN, /*0x4c*/ BIG_GORON, - /*0x4d*/ EZLO_CAP, + /*0x4d*/ EZLO, /*0x4e*/ NPC_UNK_4E, /*0x4f*/ NPC_UNK_4F, /*0x50*/ CLOTHES_RACK, @@ -277,7 +277,7 @@ extern void Gregal_Fusion(Entity*); extern void MayorHagen(Entity*); extern void MayorHagen_Fusion(Entity*); extern void BigGoron(Entity*); -extern void EzloCap(Entity*); +extern void Ezlo(Entity*); extern void NPC4E(Entity*); extern void NPC4E_Fusion(Entity*); extern void NPC4F(Entity*); diff --git a/include/object.h b/include/object.h index dc2b6b43..029a88b2 100644 --- a/include/object.h +++ b/include/object.h @@ -11,7 +11,7 @@ typedef enum { BUTTON, OBJECT_4, POT, - OBJECT_6, + EZLO_CAP, PUSHED_BLOCK, LOCKED_DOOR, OBJECT_9, @@ -207,7 +207,7 @@ extern void ItemForSale(Entity*); extern void Button(Entity*); extern void Object4(Entity*); extern void Pot(Entity*); -extern void Object6(Entity*); +extern void EzloCap(Entity*); extern void BlockPushed(Entity*); extern void LockedDoor(Entity*); extern void Object9(Entity*); diff --git a/include/player.h b/include/player.h index e1ef7001..8512db67 100644 --- a/include/player.h +++ b/include/player.h @@ -63,8 +63,16 @@ typedef enum { } PlayerControlMode; enum PlayerFlags { + PL_BUSY = (1 << 0), + PL_DROWNING = (1 << 2), PL_NO_CAP = (1 << 3), + PL_USE_PORTAL = (1 << 5), PL_MINISH = (1 << 7), + PL_BURNING = (1 << 10), + PL_ROLLING = (1 << 18), + PL_IN_HOLE = (1 << 20), + PL_USE_LANTERN = (1 << 23), + PL_USE_OCARINA = (1 << 28), }; typedef struct { @@ -74,7 +82,7 @@ typedef struct { /*0x05*/ u8 heldObject; /*0x06*/ u8 pushedObject; /*0x07*/ u8 field_0x7; - /*0x08*/ u16 field_0x8; + /*0x08*/ u16 animation; /*0x0a*/ u8 field_0xa; /*0x0b*/ u8 keepFacing; /*0x0c*/ u8 playerAction; @@ -121,7 +129,7 @@ typedef struct { /*0x40*/ u8 hurtType[64]; /*0x80*/ u16 field_0x80; /*0x82*/ u8 field_0x82[9]; - /*0x8b*/ u8 field_0x8b; + /*0x8b*/ u8 controlMode; /*0x8c*/ u32 field_0x8c; /*0x90*/ union SplitWord field_0x90; /*0x94*/ u32 field_0x94; diff --git a/include/room.h b/include/room.h index 8561da49..fc699fc5 100644 --- a/include/room.h +++ b/include/room.h @@ -60,8 +60,8 @@ typedef struct { u8 field_0x3; u8 field_0x4; u8 filler1[1]; - u8 itemForSaleIndex; - u8 field_0x7; + u8 shopItemType; + u8 shopItemType2; u8 field_0x8; u8 field_0x9; u8 unk2; diff --git a/include/structures.h b/include/structures.h index 671e41ea..2073f1b0 100644 --- a/include/structures.h +++ b/include/structures.h @@ -32,7 +32,9 @@ typedef struct { u8 listenForKeyPresses; u8 field_0x6; u8 field_0x7; + u8 pad[24]; } struct_02000010; +static_assert(sizeof(struct_02000010) == 0x20); extern struct_02000010 gUnk_02000010; diff --git a/linker.ld b/linker.ld index 2013d083..153a69e9 100644 --- a/linker.ld +++ b/linker.ld @@ -407,8 +407,8 @@ SECTIONS { asm/wizzrobeWind.o(.text); asm/wizzrobeFire.o(.text); asm/wizzrobeIce.o(.text); - src/code_080300AC.o(.text); /* ??? */ - asm/code_080300AC.o(.text); /* ??? */ + src/code_080300AC.o(.text); + asm/code_080300AC.o(.text); asm/armos.o(.text); asm/eyegore.o(.text); src/enemy/rope.o(.text); @@ -641,7 +641,7 @@ SECTIONS { src/npc/gregal.o(.text); src/npc/mayorHagen.o(.text); src/npc/bigGoron.o(.text); - src/npc/ezloCap.o(.text); + src/npc/ezlo.o(.text); src/npc/npc4E.o(.text); src/npc/npc4F.o(.text); src/npc/clothesRack.o(.text); @@ -707,7 +707,7 @@ SECTIONS { src/object/button.o(.text); asm/object4.o(.text); src/object/pot.o(.text); - asm/object6.o(.text); + asm/ezloCap.o(.text); asm/blockPushed.o(.text); src/object/lockedDoor.o(.text); asm/object9.o(.text); @@ -971,9 +971,9 @@ SECTIONS { asm/libagbsyscall.o(.text); src/eeprom.o(.text); *libc.a:memcpy.o(.text); - /* handwritten assembly in arm mode */ asm/intr.o(.text); + /* data */ data/data_080B2A70.o(.rodata); src/interrupts.o(.rodata); @@ -1369,7 +1369,7 @@ SECTIONS { data/const/npc/mayorHagen.o(.rodata); data/animations/npc/mayorHagen.o(.rodata); data/const/npc/bigGoron.o(.rodata); - src/npc/ezloCap.o(.rodata); + src/npc/ezlo.o(.rodata); src/npc/npc4E.o(.rodata); src/npc/npc4F.o(.rodata); data/animations/npc/npc4F.o(.rodata); @@ -1409,7 +1409,6 @@ SECTIONS { data/map/room_headers.o(.rodata); src/flags.o(.rodata); src/save.o(.rodata); - data/data_0811E454.o(.rodata); src/script.o(.rodata); data/data_0811E750.o(.rodata); data/const/object/itemOnGround.o(.rodata); @@ -1421,8 +1420,8 @@ SECTIONS { data/animations/object/object4.o(.rodata); data/const/object/pot.o(.rodata); data/animations/object/pot.o(.rodata); - data/const/object/object6.o(.rodata); - data/animations/object/object6.o(.rodata); + data/const/object/ezloCap.o(.rodata); + data/animations/object/ezloCap.o(.rodata); data/const/object/blockPushed.o(.rodata); src/object/lockedDoor.o(.rodata); data/const/object/object9.o(.rodata); diff --git a/src/collision.c b/src/collision.c index 026724ed..9d3380e4 100644 --- a/src/collision.c +++ b/src/collision.c @@ -65,7 +65,7 @@ void CollisionMain(void) { doCollision = &gDoCollision; // Check to see if we should disable collision this frame - if (gPlayerState.field_0x8b != 0) { + if (gPlayerState.controlMode != CONTROL_ENABLED) { u32 flags = gPlayerEntity.flags; COLLISION_OFF(&gPlayerEntity); doCollision(); diff --git a/src/coord.c b/src/coord.c index 82d994ea..ffa12162 100644 --- a/src/coord.c +++ b/src/coord.c @@ -29,7 +29,7 @@ void PositionEntityOnTop(Entity* ent, Entity* ent2) { ResolveEntityOnTop(ent, ent2); } -void PositionRelative(Entity* source, Entity* target, s32 offsetX, s32 offsetY) { // r0, r1, r2, r3 +void PositionRelative(Entity* source, Entity* target, s32 offsetX, s32 offsetY) { s32 x; s32 y; @@ -39,7 +39,7 @@ void PositionRelative(Entity* source, Entity* target, s32 offsetX, s32 offsetY) y = source->y.WORD; target->y.WORD = y + offsetY; - target->z = source->z; // ldr + target->z = source->z; target->collisionLayer = source->collisionLayer; UpdateSpriteForCollisionLayer(target); } diff --git a/src/createEnemy.c b/src/createEnemy.c index 73eb5e5c..b67546a1 100644 --- a/src/createEnemy.c +++ b/src/createEnemy.c @@ -6,7 +6,7 @@ Entity* CreateEnemy(u32 subtype, u32 form) { enemy = GetEmptyEntity(); if (enemy != NULL) { - enemy->kind = 3; + enemy->kind = ENEMY; enemy->id = subtype; enemy->type = form; AppendEntityToList(enemy, 4); diff --git a/src/debugScreen.c b/src/debugScreen.c index a12ec0a1..dcd22601 100644 --- a/src/debugScreen.c +++ b/src/debugScreen.c @@ -17,12 +17,12 @@ void sub_0805FA04(void) { DispReset(1); MemClear(&gBG0Buffer, sizeof(gBG0Buffer)); MemClear(&gBG3Buffer, sizeof(gBG3Buffer)); - gScreen.lcd.displayControl = 0x940; + gScreen.lcd.displayControl = DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_1D_MAP; gScreen.bg0.xOffset = 0; gScreen.bg0.yOffset = 0; gScreen.bg3.xOffset = 0; gScreen.bg3.yOffset = 0; - gScreen.bg3.control = 0x1e0f; + gScreen.bg3.control = BGCNT_SCREENBASE(30) | BGCNT_PRIORITY(3) | BGCNT_CHARBASE(3); gScreen.bg3.updated = 1; MessageInitialize(); MemClear((void*)&gUnk_02032EC0, sizeof(UI)); @@ -39,35 +39,35 @@ void sub_0805FA98(void) { int iVar1; switch (gInput.newKeys) { - case 0x40: + case DPAD_UP: gMenu.focusCoords[1] -= 1; break; - case 0x80: + case DPAD_DOWN: gMenu.focusCoords[1] += 1; break; - case 0x200: + case L_BUTTON: gMenu.focusCoords[0] ^= 1; if (gMenu.focusCoords[0] == 0) { - gScreen.bg0.control = 0x1f0c; - gScreen.bg3.control = 0x1e0f; + gScreen.bg0.control = BGCNT_SCREENBASE(31) | BGCNT_CHARBASE(3); + gScreen.bg3.control = BGCNT_SCREENBASE(30) | BGCNT_CHARBASE(3) | BGCNT_PRIORITY(3); } else { - gScreen.bg0.control = 0x1f0f; - gScreen.bg3.control = 0x1e0c; + gScreen.bg0.control = BGCNT_SCREENBASE(31) | BGCNT_CHARBASE(3) | BGCNT_PRIORITY(3); + gScreen.bg3.control = BGCNT_SCREENBASE(30) | BGCNT_CHARBASE(3); } break; - case 0x100: + case R_BUTTON: gSaveHeader->gameLanguage = gMenu.unk16; MessageFromTarget(gMenu.unk14 * 0x100 + gMenu.unk15); break; - case 0x2: + case B_BUTTON: MessageInitialize(); break; default: switch (gInput.unk4) { - case 0x20: + case DPAD_LEFT: iVar1 = -1; break; - case 0x10: + case DPAD_RIGHT: iVar1 = 1; break; default: diff --git a/src/demoScreen.c b/src/demoScreen.c index b2620204..f2b3315a 100644 --- a/src/demoScreen.c +++ b/src/demoScreen.c @@ -31,14 +31,14 @@ void HandleChooseDemoScreen(void) { void sub_080A2E40(void) { DispReset(1); InitSoundPlayingInfo(); - MemClear((void*)0x6000000, 0x80); + MemClear((void*)VRAM, 0x80); MessageInitialize(); EraseAllEntities(); sub_080ADD30(); sub_0801CFA8(0); - MemClear(&gUnk_02032EC0, 0x3b4); - MemClear(&gChooseFileState, 0x30); - MemClear(&gBG0Buffer, 0x800); + MemClear(&gUnk_02032EC0, sizeof gUnk_02032EC0); + MemClear(&gChooseFileState, sizeof gChooseFileState); + MemClear(&gBG0Buffer, sizeof gBG0Buffer); sub_08053320(); LoadPaletteGroup(0xb5); LoadGfxGroup(0x56); diff --git a/src/enemy/acroBandits.c b/src/enemy/acroBandits.c index 368606f2..c4784ee0 100644 --- a/src/enemy/acroBandits.c +++ b/src/enemy/acroBandits.c @@ -81,7 +81,7 @@ void sub_080318DC(Entity* this) { } if (this->health == 0) { - this->knockbackDirection = ((this->knockbackDirection + (7 & Random())) - 4) & 0x1f; + this->knockbackDirection = DirectionNormalize((this->knockbackDirection + (7 & Random())) - 4); this->knockbackDuration += this->type2 * 3; sub_08032338(this); } diff --git a/src/enemy/beetle.c b/src/enemy/beetle.c index c1b560d1..b2b3e5ed 100644 --- a/src/enemy/beetle.c +++ b/src/enemy/beetle.c @@ -150,7 +150,7 @@ void sub_08021984(Entity* this) { void sub_08021A10(Entity* this) { GetNextFrame(this); - if (sub_080041A0(this, &gPlayerEntity, 120, 80) && sub_08021D00(this) == 0) { + if (EntityInRectRadius(this, &gPlayerEntity, 120, 80) && sub_08021D00(this) == 0) { if (--this->actionDelay == 0) { this->action = 3; this->actionDelay = (Random() & 0x3f) + 30; diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index a0c18290..6e75d855 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -210,7 +210,7 @@ void sub_08028BC4(Entity* this) { if (iVar1 != NULL) { iVar1->spritePriority.b0 = 3; iVar1->z.HALF.HI -= 12; - SetDefaultPriority(iVar1, 2); + SetDefaultPriority(iVar1, PRIO_MESSAGE); } SetFlag(this->field_0x86.HWORD); sub_0802925C(this); @@ -390,14 +390,14 @@ void sub_08028F0C(Entity* this) { bool32 sub_08028F98(Entity* this, u32 param_2) { Entity* ent = sub_08049DF4(1); - if (ent == NULL || sub_080041A0(this, ent, 0x28, 0x28)) { + if (ent == NULL || EntityInRectRadius(this, ent, 0x28, 0x28)) { return FALSE; } if (param_2 != 2) { u32 distance = param_2 ? 0x58 : 0x50; - if (!sub_080041A0(this, ent, distance, distance)) { + if (!EntityInRectRadius(this, ent, distance, distance)) { return FALSE; } } diff --git a/src/enemy/cuccoChickAggr.c b/src/enemy/cuccoChickAggr.c index fa2fb63a..d3295203 100644 --- a/src/enemy/cuccoChickAggr.c +++ b/src/enemy/cuccoChickAggr.c @@ -134,7 +134,7 @@ u32 sub_08022B20(Entity* this) { if (!sub_08049DF4(2)) return 0; - return sub_080041A0(this, &gPlayerEntity, 0x24, 0x24); + return EntityInRectRadius(this, &gPlayerEntity, 36, 36); } void sub_08022B44(Entity* this) { diff --git a/src/enemy/darkNut.c b/src/enemy/darkNut.c index aa7d5993..e9061ad0 100644 --- a/src/enemy/darkNut.c +++ b/src/enemy/darkNut.c @@ -180,7 +180,7 @@ void sub_08020E78(Entity* this) { } void sub_08020E98(Entity* this) { - if (PlayerInRange(this, 1, 0x38)) { + if (PlayerInRange(this, 1, 56)) { if (sub_0802169C(this, gUnk_020000B0)) { this->action = 8; sub_08021218(this, 7, this->animationState); @@ -190,7 +190,7 @@ void sub_08020E98(Entity* this) { this->action = 8; sub_08021218(this, 7, this->animationState); } else { - this->direction ^= 0x10; + this->direction = DirectionTurnAround(this->direction); sub_0802124C(this); sub_08021644(this); } diff --git a/src/enemy/fireballGuy.c b/src/enemy/fireballGuy.c index 3ec57bc7..c6e0123e 100644 --- a/src/enemy/fireballGuy.c +++ b/src/enemy/fireballGuy.c @@ -67,7 +67,7 @@ void sub_08045454(Entity* this) { /* Can we create enough new entities? */ count = gUnk_080D180C[this->type]; - if (72 - count <= gEntCount) + if (MAX_ENTITIES + 1 - count <= gEntCount) return; /* Create 2-5 new MiniFireballGuy */ diff --git a/src/enemy/keaton.c b/src/enemy/keaton.c index 0c9adb33..b5bbef3f 100644 --- a/src/enemy/keaton.c +++ b/src/enemy/keaton.c @@ -143,7 +143,7 @@ void sub_080325C4(Entity* this) { u32 sub_080325E8(Entity* this) { if (((sub_08049FA0(this) != 0) && (sub_08049FDC(this, 1) != 0)) && - (sub_080041A0(this, gUnk_020000B0, 0x68, 0x40) != 0)) { + (EntityInRectRadius(this, gUnk_020000B0, 0x68, 0x40) != 0)) { if (((GetFacingDirection(this, gUnk_020000B0) - (DirectionRound(this->frame)) + 2) & 0x1F) < 5) { this->action = 3; this->actionDelay = 0xC; diff --git a/src/enemy/lakitu.c b/src/enemy/lakitu.c index d96950d7..8e4ae08e 100644 --- a/src/enemy/lakitu.c +++ b/src/enemy/lakitu.c @@ -241,7 +241,7 @@ void Lakitu_Cloudless(Entity* this) { bool32 sub_0803CA4C(Entity* this) { if (sub_0806FCB8(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x28) == 0) { - if (sub_080041A0(this, &gPlayerEntity, 0x70, 0x50)) { + if (EntityInRectRadius(this, &gPlayerEntity, 0x70, 0x50)) { return 1; } } diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c index 6dce5fba..42e8d88f 100644 --- a/src/enemy/likeLike.c +++ b/src/enemy/likeLike.c @@ -58,7 +58,7 @@ void sub_08027DA4(Entity* this) { void sub_08027E40(Entity* this) { if (this->actionDelay == 2 && this->field_0x80.HALF.LO != 0xff) { - SetDefaultPriority(this, 3); + SetDefaultPriority(this, PRIO_NO_BLOCK); sub_08028224(this->field_0x80.HALF.LO); } sub_0804A7D4(this); diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c index ce77d2c4..b282e776 100644 --- a/src/enemy/mazaalHead.c +++ b/src/enemy/mazaalHead.c @@ -224,7 +224,7 @@ void sub_08033FFC(Entity* this) { if (((*(Entity**)&this->field_0x74)->flags & 0x80) != 0) { gRoomControls.cameraTarget = &gPlayerEntity; sub_08034420(this); - gPlayerState.field_0x8b = 1; + gPlayerState.controlMode = 1; sub_080791D0(); SoundReq(BGM_BOSS_THEME); } diff --git a/src/enemy/moldworm.c b/src/enemy/moldworm.c index 7fb15f46..ce7f9249 100644 --- a/src/enemy/moldworm.c +++ b/src/enemy/moldworm.c @@ -139,7 +139,7 @@ void sub_080231BC(Entity* this) { this->field_0x78.HWORD = 0x1e; this->palette.b.b0 = 5; this->direction = Random() & 0x1f; - this->animationState = Direction8ToAnimationState(this->direction); + this->animationState = Direction8ToAnimationState(Direction8RoundUp(this->direction)); InitializeAnimation(this, this->animationState); } } @@ -225,7 +225,7 @@ void sub_08023398(Entity* this) { u32 uVar4; sub_08004596(this, sub_08049F84(this, 1)); - uVar4 = Direction8ToAnimationState(this->direction); + uVar4 = Direction8ToAnimationState(Direction8RoundUp(this->direction)); if (uVar4 != this->animationState) { this->animationState = uVar4; InitializeAnimation(this, uVar4 + this->field_0x7a.HALF.HI); @@ -249,7 +249,7 @@ void sub_080234D8(Entity* this) { this->action = 2; this->palette.b.b0 = 5; this->direction = Random() & 0x1f; - this->animationState = Direction8ToAnimationState(this->direction); + this->animationState = Direction8ToAnimationState(Direction8RoundUp(this->direction)); sub_08023A88(this, this->animationState); } } diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index 3f0e0c51..472d982d 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -403,7 +403,7 @@ void sub_080244E8(Entity* this) { } break; case 1: - if (sub_080041A0(this, this->child, 6, 6)) { + if (EntityInRectRadius(this, this->child, 6, 6)) { Entity* ent; this->field_0x80.HALF.LO += 1; @@ -424,7 +424,7 @@ void sub_080244E8(Entity* this) { } break; case 2: - if (sub_080041A0(this, this->child, 6, 6)) { + if (EntityInRectRadius(this, this->child, 6, 6)) { Entity* ent; this->field_0x80.HALF.LO += 1; diff --git a/src/enemy/slime.c b/src/enemy/slime.c index 92de7a7f..ab7666f8 100644 --- a/src/enemy/slime.c +++ b/src/enemy/slime.c @@ -95,7 +95,7 @@ void sub_080450A8(Entity* this) { /* Can we create enough new entities? */ count = gUnk_080D16D0[this->type]; - if (72 - count <= gEntCount) + if (MAX_ENTITIES + 1 - count <= gEntCount) return; /* Create 2-4 new MiniSlime */ diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index 43d870c1..d96b04ee 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -220,7 +220,7 @@ void VaatiWrathType0Action1(Entity* this) { this->actionDelay = 0x1e; gScreenTransition.field_0x38 |= 1; gRoomControls.cameraTarget = &gPlayerEntity; - gPlayerState.field_0x8b = 1; + gPlayerState.controlMode = 1; break; default: sub_08042004(this); @@ -567,7 +567,7 @@ void sub_08041BE8(Entity* this) { if (sub_08079F8C() != 0) { this->subAction = 1; this->actionDelay = 120; - this->updatePriority = 3; + this->updatePriority = PRIO_NO_BLOCK; InitAnimationForceUpdate(this, 10); entity = ((VaatiWrathHeapStruct*)this->myHeap)->type1; @@ -576,7 +576,7 @@ void sub_08041BE8(Entity* this) { ((VaatiWrathHeapStruct*)this->myHeap)->type1 = NULL; entity = ((VaatiWrathHeapStruct*)this->myHeap)->type2; - entity->updatePriority = 3; + entity->updatePriority = PRIO_NO_BLOCK; sub_080AE068(entity); LoadFixedGFX(entity, 0x1f5); sub_0801D2B4(entity, 0x16b); diff --git a/src/entity.c b/src/entity.c index c308b2b6..c0d5b62d 100644 --- a/src/entity.c +++ b/src/entity.c @@ -136,15 +136,15 @@ void ResetEntityPriority(void) { void RequestPriority(Entity* this) { this->updatePriorityPrev = this->updatePriority; - this->updatePriority = PRIO_REQUESTED; - if (SetMinPriority(PRIO_REQUESTED)) + this->updatePriority = PRIO_MESSAGE; + if (SetMinPriority(PRIO_MESSAGE)) gPriorityHandler.requester = this; } void RequestPriorityOverPlayer(Entity* this) { SetPlayerControl(1); this->updatePriorityPrev = this->updatePriority; - this->updatePriority = PRIO_OVERRIDE_MESSAGE; + this->updatePriority = PRIO_NO_BLOCK; if (SetMinPriority(PRIO_PLAYER)) gPriorityHandler.requester = this; } @@ -157,7 +157,7 @@ void RevokePriorityOverPlayer(Entity* this) { void RequestPriorityDuration(Entity* this, u32 time) { if (this != NULL) { this->updatePriorityPrev = this->updatePriority; - this->updatePriority = PRIO_OVERRIDE_MESSAGE; + this->updatePriority = PRIO_NO_BLOCK; } if (SetMinPriority(PRIO_PLAYER)) gPriorityHandler.requester = this; @@ -197,7 +197,7 @@ void SetRoomReloadPriority() { } void SetInitializationPriority() { - gPriorityHandler.sys_priority = PRIO_INITIALIZING; + gPriorityHandler.sys_priority = PRIO_HIGHEST; } void ResetSystemPriority() { diff --git a/src/fade.c b/src/fade.c index 1ed6ffd0..f3d1447e 100644 --- a/src/fade.c +++ b/src/fade.c @@ -38,9 +38,9 @@ void DoFade(u32 fadeType, u32 fadeSpeed) { } if ((fadeType & 8) != 0) { gUnk_03000000.spritesOffset = 1; - gScreen.bg1.control |= 0x40; - gScreen.bg2.control |= 0x40; - gScreen.bg3.control |= 0x40; + gScreen.bg1.control |= BGCNT_MOSAIC; + gScreen.bg2.control |= BGCNT_MOSAIC; + gScreen.bg3.control |= BGCNT_MOSAIC; } if ((fadeType & 0x10) != 0) { sub_0801E1B8(gFadeControl.field_0x16, gFadeControl.field_0x18); @@ -57,7 +57,7 @@ void sub_080500F4(u32 arg0) { gFadeControl.fadeSpeed = arg0; gFadeControl.fadeType ^= 1; gFadeControl.active = 1; - gFadeControl.fadeDuration = 0x100; + gFadeControl.fadeDuration = 256; } void sub_08050110(u32 param_1, u32 param_2, u32 fadeType, u32 fadeSpeed) { diff --git a/src/flagDebug.c b/src/flagDebug.c index e65edcf4..4f03efd9 100644 --- a/src/flagDebug.c +++ b/src/flagDebug.c @@ -1,12 +1,4 @@ -// #define DEF_FLAGS( name, ... ) \ -// const char* const name##_flags[] = { \ -// "BEGIN", \ -// __VA_ARGS__ \ -// "END" \ -// }; - -// DEF_FLAGS(global, "a", -// "b"); +#include "flags.h" const char* const globalFlagNames[] = { "BEGIN", diff --git a/src/interrupts.c b/src/interrupts.c index a7431d95..8a44a61b 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -71,8 +71,8 @@ void DummyIntr(void) { void EnableVBlankIntr(void) { INTR_VECTOR = gIntrMain; - REG_DISPSTAT = 0x5028; - REG_IE = 0x2005; + REG_DISPSTAT = DISPSTAT_VCOUNT_INTR | DISPSTAT_VBLANK_INTR | (80 << 8); + REG_IE = INTR_FLAG_VBLANK | INTR_FLAG_VCOUNT | INTR_FLAG_GAMEPAK; REG_IME = 1; } @@ -89,7 +89,7 @@ void VBlankIntr(void) { } void HBlankIntr(void) { - REG_DISPSTAT = 0x5028; + REG_DISPSTAT = DISPSTAT_VCOUNT_INTR | DISPSTAT_VBLANK_INTR | (80 << 8); m4aSoundMain(); } @@ -111,9 +111,9 @@ void sub_08016BF8(void) { } void UpdateDisplayControls(void) { - if (gUnk_03000000.update && ((gScreen.lcd.displayControl & 0x1000) != 0)) { + if (gUnk_03000000.update && (gScreen.lcd.displayControl & DISPCNT_OBJ_ON)) { gUnk_03000000.update = 0; - DmaCopy32(3, &gUnk_03000000.oam, 0x07000000, 0x400); + DmaCopy32(3, &gUnk_03000000.oam, OAM, OAM_SIZE); } sub_08016CA8(&gScreen.bg0); sub_08016CA8(&gScreen.bg1); @@ -126,7 +126,7 @@ void sub_08016CA8(BgSettings* bg) { u32 dest; bg->updated = 0; dest = bg->control; - DmaCopy32(3, bg->tilemap, ((dest << 3) & 0xF800) + 0x06000000, gUnk_080B2CD8[dest >> 14]); + DmaCopy32(3, bg->tilemap, ((dest << 3) & 0xF800) + VRAM, gUnk_080B2CD8[dest >> 14]); } } @@ -189,9 +189,9 @@ void PlayerUpdate(Entity* this) { if ((gPlayerState.flags & 0x80000) != 0) { sub_08077B20(); if ((gPlayerState.flags & 0x200000) != 0) { - gPlayerState.playerAction = 0x18; + gPlayerState.playerAction = PLAYER_ROLL; gPlayerState.flags &= ~0x80000; - gPlayerState.hurtBlinkSpeed = 0xf0; + gPlayerState.hurtBlinkSpeed = 240; COLLISION_ON(this); } else { COLLISION_OFF(this); @@ -224,7 +224,7 @@ void HandlePlayerLife(Entity* this) { SoundReq(SFX_86); gPlayerState.flags &= ~(0x2000000 | 0x200); - if (gPlayerState.flags & 0x400) + if (gPlayerState.flags & PL_BURNING) ResetPlayer(); if ((gPlayerState.flags & 0x400000) && !gPlayerState.field_0xa0[0]) sub_0807A108(); @@ -242,7 +242,7 @@ void HandlePlayerLife(Entity* this) { return; } - if ((gPlayerState.field_0x8b != 0) || (gMessage.doTextBox & 0x7f)) + if ((gPlayerState.controlMode != CONTROL_ENABLED) || (gMessage.doTextBox & 0x7f)) return; gRoomVars.unk2 = gMessage.doTextBox & 0x7f; @@ -294,7 +294,7 @@ void sub_080171F0(void) { gPlayerEntity.field_0x7a.HWORD--; gPlayerEntity.bitfield &= ~0x80; - if (gPlayerEntity.action != 0x14) + if (gPlayerEntity.action != PLAYER_DROWN) COPY_FLAG_FROM_TO(gPlayerState.flags, 0x2, 0x10000); gPlayerState.flags &= ~2; @@ -318,7 +318,7 @@ void sub_080171F0(void) { if (gPlayerState.flags & 0x400000) gUnk_03004040[0]->spriteOffsetY = gUnk_03004040[1]->spriteOffsetY = gUnk_03004040[2]->spriteOffsetY = 0; - if (gPlayerEntity.action == 0x1d) + if (gPlayerEntity.action == PLAYER_08072F34) gPlayerState.flags |= 0x20000000; else gPlayerState.flags &= ~0x20000000; @@ -327,7 +327,7 @@ void sub_080171F0(void) { if (gPlayerState.jumpStatus & 0xc0) gPlayerEntity.iframes = 0xfe; - if (gPlayerEntity.action != 0x17) { + if (gPlayerEntity.action != PLAYER_ROOMTRANSITION) { sub_08077FEC(gPlayerEntity.action); } } diff --git a/src/intro.c b/src/intro.c index b74c67a8..4a563487 100644 --- a/src/intro.c +++ b/src/intro.c @@ -158,17 +158,17 @@ static void HandleTitlescreen(void) { // Blend first and second layer gScreen.controls.layerFXControl = BLDCNT_TGT1_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_EFFECT_BLEND; gScreen.controls.alphaBlend = BLDALPHA_BLEND(9, 9); - gScreen.bg1.control = 0x1c09; + gScreen.bg1.control = BGCNT_SCREENBASE(28) | BGCNT_PRIORITY(1) | BGCNT_CHARBASE(2); gScreen.bg2.control = BGCNT_SCREENBASE(29) | BGCNT_PRIORITY(2); gScreen.bg3.control = BGCNT_SCREENBASE(30) | BGCNT_PRIORITY(3); gScreen.lcd.displayControl |= DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON; - gScreen.bg1.yOffset = 0xff60; + gScreen.bg1.yOffset = -160; } else { gScreen.controls.layerFXControl = BLDCNT_TGT1_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND; gScreen.controls.alphaBlend = BLDALPHA_BLEND(9, 9); gScreen.bg0.control = BGCNT_SCREENBASE(29) | BGCNT_PRIORITY(2); - gScreen.bg1.control = 0x1E03; - gScreen.bg2.control = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(2) | BGCNT_256COLOR | BGCNT_SCREENBASE(28) | + gScreen.bg1.control = BGCNT_SCREENBASE(30) | BGCNT_PRIORITY(3); + gScreen.bg2.control = BGCNT_SCREENBASE(28) | BGCNT_PRIORITY(1) | BGCNT_CHARBASE(2) | BGCNT_256COLOR | BGCNT_WRAP | BGCNT_TXT512x256; gScreen.lcd.displayControl |= DISPCNT_MODE_1; gScreen.lcd.displayControl |= DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON; @@ -284,7 +284,7 @@ static void HandleJapaneseTitlescreenAnimationIntro(void) { if (GetAdvanceState() == ADVANCE_KEY_PRESSED || gScreen.bg1.yOffset == 0) { gIntroState.subState++; gScreen.bg1.yOffset = 0; - gScreen.bg1.control = 0xc09; + gScreen.bg1.control = BGCNT_SCREENBASE(12) | BGCNT_PRIORITY(1) | BGCNT_CHARBASE(2); gFadeControl.mask = 0x00000040; DoFade(6, 0x10); SoundReq(SFX_F8); diff --git a/src/item/itemPegasusBoots.c b/src/item/itemPegasusBoots.c index 6804c425..e66f8240 100644 --- a/src/item/itemPegasusBoots.c +++ b/src/item/itemPegasusBoots.c @@ -61,7 +61,7 @@ void sub_080768F8(ItemBehavior* this, u32 arg1) { if ((gPlayerState.flags & PL_MINISH) == 0) { this->field_0x5[2] = 0x10; } else { - gPlayerState.field_0x8 = 0xc14; + gPlayerState.animation = 0xc14; } sub_08077D38(this, arg1); sub_08076964(this, arg1); diff --git a/src/item/itemRocsCape.c b/src/item/itemRocsCape.c index 56aa2947..dd4c69bd 100644 --- a/src/item/itemRocsCape.c +++ b/src/item/itemRocsCape.c @@ -72,7 +72,7 @@ void sub_08076758(ItemBehavior* this, u32 arg1) { gPlayerEntity.field_0x7a.HWORD = 2; gPlayerEntity.zVelocity = 0x20000; gPlayerState.jumpStatus |= 0x10; - gPlayerState.field_0x8 = 0x288; + gPlayerState.animation = 0x288; SoundReq(SFX_172); } } else { diff --git a/src/main.c b/src/main.c index 820b5560..906b6608 100644 --- a/src/main.c +++ b/src/main.c @@ -18,7 +18,7 @@ extern void HandleGameOverScreen(void); extern void HandleCreditsScreen(void); extern void HandleDebugTextScreen(void); -static void sub_08055F70(void); +static void InitOverlays(void); static bool32 SoftResetKeysPressed(void); void (*const sScreenHandlers[])(void) = { @@ -40,7 +40,7 @@ static void sub_080560B8(void); void AgbMain(void) { int var0; - sub_08055F70(); + InitOverlays(); InitSound(); InitDMA(); InitSaveData(); @@ -101,7 +101,7 @@ extern u8 gUnk_080B2CD8_2[]; extern u8 gUnk_080B2CD8_3[]; extern u8 gUnk_02000030[]; -static void sub_08055F70(void) { +static void InitOverlays(void) { u32 size; DisableInterruptsAndDMA(); @@ -185,15 +185,15 @@ NONMATCH("asm/non_matching/sub_080560B8.inc", static void sub_080560B8(void)) { u32 temp; u32 b; - if (!sub_08056134()) { - switch ((s32)Read_02000000((void*)0x2000000)) { + if (!CheckHeaderValid()) { + switch ((s32)Read_02000000(gSaveHeader)) { case 1: - if (sub_08056134()) + if (CheckHeaderValid()) break; case 0: case -1: default: - MemCopy(&sDefaultSettings, (void*)0x2000000, 16); + MemCopy(&sDefaultSettings, gSaveHeader, sizeof *gSaveHeader); Write_02000000(gSaveHeader); break; } @@ -206,14 +206,13 @@ NONMATCH("asm/non_matching/sub_080560B8.inc", static void sub_080560B8(void)) { b = TRUE; } if (b) { - MemClear((u8*)&gUnk_02000010.signature, 0x20); + MemClear(&gUnk_02000010, sizeof gUnk_02000010); gUnk_02000010.signature = SIGNATURE; } } END_NONMATCH -u32 sub_08056134(void) { - +u32 CheckHeaderValid(void) { if ((gSaveHeader->signature != SIGNATURE) || (gSaveHeader->saveFileId >= NUM_SAVE_SLOTS) || (gSaveHeader->messageSpeed >= MAX_MSG_SPEED) || (gSaveHeader->brightnessPref >= MAX_BRIGHTNESS) #ifdef EU @@ -259,26 +258,27 @@ void sub_08056250() { } void sub_08056260(void) { - u32 temp; - Main* temp2; + u32 restore; + Main* m; - REG_DISPCNT = 0x80; - REG_KEYCNT = 0x8304; + REG_DISPCNT = DISPCNT_FORCED_BLANK; + REG_KEYCNT = KEY_AND_INTR | L_BUTTON | R_BUTTON | SELECT_BUTTON; REG_IME = 0; - temp = REG_IE; - REG_IE = 0x3000; + restore = REG_IE; + REG_IE = INTR_FLAG_KEYPAD | INTR_FLAG_GAMEPAK; REG_IME = 1; Stop(); REG_IME = 0; - REG_IE = temp; + REG_IE = restore; REG_IME = 1; - temp2 = &gMain; - asm("ldrb r1, [r0, #0x1]"); - temp2->field_0x1 = 0; + m = &gMain; + *(vu8*)&m->field_0x1; // force a read + m->field_0x1 = 0; } + // Convert AABB to screen coordinates and check if it's within the viewport -u32 sub_080562CC(u32 x0, u32 y0, u32 x1, u32 y1) { +u32 CheckRegionOnScreen(u32 x0, u32 y0, u32 x1, u32 y1) { u32 result; u32 x = ((gRoomControls.roomScrollX - gRoomControls.roomOriginX) - x0 + DISPLAY_WIDTH); u32 y = ((gRoomControls.roomScrollY - gRoomControls.roomOriginY) - y0 + DISPLAY_HEIGHT); @@ -292,10 +292,10 @@ u32 sub_080562CC(u32 x0, u32 y0, u32 x1, u32 y1) { } // Iterate over array of AABBs and check if any fit on screen -u16 sub_08056300(u16* arr) { +u16 CheckRegionsOnScreen(u16* arr) { u16* i; for (i = arr; *i != 0xff; i += 5) { - if (sub_080562CC(i[1], i[2], i[3], i[4]) != 0) + if (CheckRegionOnScreen(i[1], i[2], i[3], i[4])) return *i; } return 0xff; diff --git a/src/manager/manager1.c b/src/manager/manager1.c index bbc743ce..51b28137 100644 --- a/src/manager/manager1.c +++ b/src/manager/manager1.c @@ -4,8 +4,6 @@ #include "functions.h" extern void sub_08056250(void); -extern void sub_080570B8(Entity*); -void sub_080570F8(void); extern void (*const gUnk_08107C5C[])(Entity*); extern void (*const gUnk_08107C48[])(Entity*); @@ -25,7 +23,7 @@ void Manager1_Main(Entity* this) { } } -void sub_080570B8(Entity* this) { +static void sub_080570B8(Entity* this) { u8* pbVar1; LoadGfxGroup(((u8*)&this->zVelocity)[0]); @@ -38,8 +36,8 @@ void sub_080570B8(Entity* this) { } } -void sub_080570F8(void) { - gScreen.lcd.displayControl &= 0xf7ff; +static void sub_080570F8(void) { + gScreen.lcd.displayControl &= ~DISPCNT_BG3_ON; gScreen.controls.layerFXControl = 0; sub_08056250(); } @@ -51,7 +49,7 @@ void sub_08057118(Entity* this) { ((u8*)&this->zVelocity)[2] = 0; this->action = 1; gScreen.bg3.control = 0x1e04; - gScreen.lcd.displayControl |= 0x800; + gScreen.lcd.displayControl |= DISPCNT_BG3_ON; gScreen.controls.layerFXControl = 0x3648; gScreen.controls.alphaBlend = 0x1000; RegisterTransitionManager(this, sub_080570B8, sub_080570F8); diff --git a/src/manager/manager12.c b/src/manager/manager12.c index 36a044d4..6a1c5982 100644 --- a/src/manager/manager12.c +++ b/src/manager/manager12.c @@ -15,7 +15,7 @@ void sub_08059A58(Manager12*); void sub_08059A2C(Manager12*); -u32 sub_08056300(u16* arr); +u32 CheckRegionsOnScreen(u16* arr); extern u16 gUnk_081083DA; extern u16 gUnk_081083F2; extern u16 gUnk_08108398; @@ -48,7 +48,7 @@ void Manager12_Main(Manager12* this) { this->field_0x21 = 0xff; this->field_0x20 = 0xff; RegisterTransitionManager(this, sub_08059A2C, NULL); - SetDefaultPriority((Entity*)this, 6); + SetDefaultPriority((Entity*)this, PRIO_PLAYER_EVENT); } sub_08059A58(this); } @@ -128,7 +128,7 @@ void sub_08059B18(void) { bool32 sub_08059C8C(Manager12* this, u32 param_2, u8* param_3, u16* param_4) { bool32 bVar2; - *param_3 = sub_08056300(param_4); + *param_3 = CheckRegionsOnScreen(param_4); if ((*param_3 != 0xff) && (gRoomVars.unk_10[param_2] != *param_3)) { gRoomVars.unk_10[param_2] = *param_3; return TRUE; @@ -154,24 +154,24 @@ void TryLoadPrologueHyruleTown(void) { u32 tmp; if (gRoomControls.areaID != AREA_FESTIVAL_TOWN) { - tmp = sub_08056300(&gUnk_08108398); + tmp = CheckRegionsOnScreen(&gUnk_08108398); if (tmp != 0xff) { sub_08059CC0(0, tmp); } - tmp = sub_08056300(&gUnk_081083AE); + tmp = CheckRegionsOnScreen(&gUnk_081083AE); if ((tmp != 0xff) && (sub_08059CC0(1, tmp), tmp == 2)) { sub_08059B18(); } - tmp = sub_08056300(&gUnk_081083C4); + tmp = CheckRegionsOnScreen(&gUnk_081083C4); if (tmp != 0xff) { sub_08059CC0(2, tmp); } } else { - tmp = sub_08056300(&gUnk_081083DA); + tmp = CheckRegionsOnScreen(&gUnk_081083DA); if (tmp != 0xff) { sub_08059CC0(0, tmp); } - tmp = sub_08056300(&gUnk_081083F2); + tmp = CheckRegionsOnScreen(&gUnk_081083F2); if (tmp != 0xff) { sub_08059CC0(2, tmp); } diff --git a/src/manager/manager14.c b/src/manager/manager14.c index 31f827c0..65bb296d 100644 --- a/src/manager/manager14.c +++ b/src/manager/manager14.c @@ -56,7 +56,7 @@ void sub_08059E80(Manager14* this) { this->manager.action = 4; this->manager.unk_10 |= 0x20; gScreen.bg3.control = 0x1E04; - gScreen.lcd.displayControl |= 0x800; + gScreen.lcd.displayControl |= DISPCNT_BG3_ON; gScreen.controls.layerFXControl = 0x3E48; gScreen.controls.alphaBlend = 0x1000; gScreen.bg3.xOffset = 0x80; @@ -142,7 +142,7 @@ void sub_0805A0C0(Manager14* this) { this->manager.unk_0f = 4; gScreen.controls.alphaBlend = gUnk_08108588[this->manager.unk_0e--]; if (this->manager.unk_0e == 0xFF) { - gScreen.lcd.displayControl &= ~0x800; + gScreen.lcd.displayControl &= ~DISPCNT_BG3_ON; sub_08056250(); DeleteThisEntity(); } @@ -179,7 +179,7 @@ void sub_0805A1D8(Manager14* this) { gScreen.bg3.xOffset = gRoomControls.bg3OffsetX.HALF.HI; gRoomControls.bg3OffsetY.WORD -= 0x1000; gScreen.bg3.yOffset = gRoomControls.bg3OffsetY.HALF.HI; - if (gScreen.lcd.displayControl & 0x800) { + if (gScreen.lcd.displayControl & DISPCNT_BG3_ON) { sub_0805A114(6, this->unk_20 >> 1); if (this->unk_22 == 0 && (gMain.ticks & 0x1F) == 0) { this->unk_24++; @@ -194,6 +194,6 @@ void nullsub_495() { void sub_0805A25C() { gScreen.controls.layerFXControl = 0; - gScreen.lcd.displayControl &= ~0x800; + gScreen.lcd.displayControl &= ~DISPCNT_BG3_ON; sub_08056250(); } diff --git a/src/manager/manager15.c b/src/manager/manager15.c index 27a5e825..867a9429 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -46,7 +46,7 @@ void sub_0805A298(Manager15* this) { this->unk_23 = 2; } sub_0805AAF0(this->unk_23); - gScreen.lcd.displayControl |= 0x4800; + gScreen.lcd.displayControl |= DISPCNT_WIN1_ON | DISPCNT_BG3_ON; } sub_0805A8EC(this); } @@ -67,7 +67,7 @@ void sub_0805A2E4(Manager15* this) { } else { this->manager.action = 3; } - gScreen.lcd.displayControl |= 0x4800; + gScreen.lcd.displayControl |= DISPCNT_WIN1_ON | DISPCNT_BG3_ON; } } else { gUnk_081085F8[this->manager.action](this); @@ -96,7 +96,7 @@ void sub_0805A394(Manager15* this) { } SetLocalFlag(LV1_16_1STEND); ClearRoomFlag(0); - gScreen.lcd.displayControl &= 0xB7FF; + gScreen.lcd.displayControl &= ~(DISPCNT_WIN1_ON | DISPCNT_BG3_ON); DeleteThisEntity(); } @@ -117,11 +117,11 @@ void sub_0805A3D4(Manager15* this) { if (!CheckLocalFlag(this->unk_3e)) { ClearFlag(this->unk_3c); this->manager.action = 1; - gScreen.lcd.displayControl &= 0xB7FF; + gScreen.lcd.displayControl &= ~(DISPCNT_WIN1_ON | DISPCNT_BG3_ON); } else { SetFlag(this->unk_3c); this->manager.action = 3; - gScreen.lcd.displayControl |= 0x4800; + gScreen.lcd.displayControl |= DISPCNT_WIN1_ON | DISPCNT_BG3_ON; } } else { gUnk_0810860C[this->manager.action](this); @@ -181,16 +181,16 @@ void sub_0805A500(Manager15* this) { if (CheckLocalFlag(0x36)) { this->unk_23 = 3; this->manager.action = 5; - gScreen.lcd.displayControl |= 0x4800; + gScreen.lcd.displayControl |= DISPCNT_WIN1_ON | DISPCNT_BG3_ON; } else { if (CheckLocalFlag(0x34)) { this->unk_23 = 4; this->manager.action = 3; - gScreen.lcd.displayControl |= 0x4800; + gScreen.lcd.displayControl |= DISPCNT_WIN1_ON | DISPCNT_BG3_ON; } else { this->unk_23 = 4; this->manager.action = 1; - gScreen.lcd.displayControl &= 0xB7FF; + gScreen.lcd.displayControl &= ~(DISPCNT_WIN1_ON | DISPCNT_BG3_ON); } } sub_0805AAF0(this->unk_23); @@ -200,7 +200,7 @@ void sub_0805A500(Manager15* this) { sub_0805AA58(this); sub_0805A9CC(this); if (gRoomControls.unk2 == 1) { - gScreen.lcd.displayControl |= 0x80 << 7; + gScreen.lcd.displayControl |= DISPCNT_WIN1_ON; this->manager.unk_0d = 1; return; } @@ -209,7 +209,7 @@ void sub_0805A500(Manager15* this) { this->manager.unk_0d = 0; if (this->unk_20 == gRoomControls.roomID) return; - gScreen.lcd.displayControl &= 0xB7FF; + gScreen.lcd.displayControl &= ~(DISPCNT_WIN1_ON | DISPCNT_BG3_ON); DeleteThisEntity(); } @@ -281,12 +281,12 @@ void sub_0805A6E8(Manager15* this) { this->manager.action++; } this->unk_2c = 0x1000; - tmp = gScreen.lcd.displayControl | 0x4800; + tmp = gScreen.lcd.displayControl | DISPCNT_WIN1_ON | DISPCNT_BG3_ON; gScreen.lcd.displayControl = tmp; } u32 sub_0805A73C(Manager15* this) { - return CheckPlayerProximity(this->unk_38 - 0x6, this->unk_3a - 0x6, 0xC, 0xC); + return CheckPlayerProximity(this->unk_38 - 6, this->unk_3a - 6, 12, 12); } void sub_0805A758(Manager15* this) { @@ -304,10 +304,10 @@ void sub_0805A76C(Manager15* this) { this->manager.action++; sub_08004168(&gPlayerEntity); gPlayerEntity.animationState = 4; - RequestPriorityDuration((Entity*)this, 0x258); + RequestPriorityDuration((Entity*)this, 600); SetPlayerControl(0xFF); gUnk_02034490[0] = 1; - gRoomControls.cameraTarget = 0; + gRoomControls.cameraTarget = NULL; sub_08077B20(); } } @@ -315,8 +315,8 @@ void sub_0805A76C(Manager15* this) { } void sub_0805A7E4(Manager15* this) { - if (gPlayerState.playerAction != 0x12) { - gPlayerState.playerAction = 0x12; + if (gPlayerState.playerAction != PLAYER_WARP) { + gPlayerState.playerAction = PLAYER_WARP; gPlayerState.field_0x38 = 0; gPlayerState.field_0x39 = 0; } @@ -332,7 +332,7 @@ void sub_0805A804(Manager15* this) { } this->manager.unk_0d = 1; this->manager.unk_10 |= 0x20; - SetDefaultPriority((Entity*)this, 6); + SetDefaultPriority((Entity*)this, PRIO_PLAYER_EVENT); break; case 1: if (CheckLocalFlag(this->unk_3e)) @@ -364,7 +364,7 @@ void sub_0805A804(Manager15* this) { void sub_0805AAC8(Manager15*); void sub_0805A89C(Manager15* this) { - SetDefaultPriority((Entity*)this, 6); + SetDefaultPriority((Entity*)this, PRIO_PLAYER_EVENT); this->manager.action = 1; this->manager.unk_10 |= 0x20; this->manager.unk_0e = 8; @@ -383,7 +383,7 @@ void sub_0805A8EC(Manager15* this) { sub_0805AA58(this); sub_0805A94C(this); if (gRoomControls.unk2 == 1) { - gScreen.lcd.displayControl |= 0x4000; + gScreen.lcd.displayControl |= DISPCNT_WIN1_ON; this->manager.unk_0d = 1; } else { if (!this->manager.unk_0d) @@ -391,7 +391,7 @@ void sub_0805A8EC(Manager15* this) { this->manager.unk_0d = 0; if (this->unk_20 == gRoomControls.roomID) return; - gScreen.lcd.displayControl &= 0xB7FF; + gScreen.lcd.displayControl &= ~(DISPCNT_WIN1_ON | DISPCNT_BG3_ON); DeleteThisEntity(); } } @@ -404,23 +404,23 @@ void sub_0805A94C(Manager15* this) { tmp2 = tmp1 + 0x100; if (tmp1 < 0) tmp1 = 0; - if (tmp1 > 0xF0) - tmp1 = 0xF0; + if (tmp1 > DISPLAY_WIDTH) + tmp1 = DISPLAY_WIDTH; if (tmp2 < 0) tmp2 = 0; - if (tmp2 > 0xF0) - tmp2 = 0xF0; + if (tmp2 > DISPLAY_WIDTH) + tmp2 = DISPLAY_WIDTH; gScreen.controls.window1HorizontalDimensions = (tmp1 << 8 | tmp2); tmp1 = -gScreen.bg3.yOffset; tmp2 = tmp1 + 0x100; if (tmp1 < 0) tmp1 = 0; - if (tmp1 > 0xA0) - tmp1 = 0xA0; + if (tmp1 > DISPLAY_HEIGHT) + tmp1 = DISPLAY_HEIGHT; if (tmp2 < 0) tmp2 = 0; - if (tmp2 > 0xA0) - tmp2 = 0xA0; + if (tmp2 > DISPLAY_HEIGHT) + tmp2 = DISPLAY_HEIGHT; gScreen.controls.window1VerticalDimensions = (tmp1 << 8 | tmp2); } @@ -432,18 +432,18 @@ void sub_0805A9CC(Manager15* this) { tmp2 = tmp1 + 0x100; if (tmp1 < 0) tmp1 = 0; - if (tmp1 > 0xF0) - tmp1 = 0xF0; + if (tmp1 > DISPLAY_WIDTH) + tmp1 = DISPLAY_WIDTH; if (tmp2 < 0) tmp2 = 0; - if (tmp2 > 0xF0) - tmp2 = 0xF0; + if (tmp2 > DISPLAY_WIDTH) + tmp2 = DISPLAY_WIDTH; gScreen.controls.window1HorizontalDimensions = tmp1 << 8 | tmp2; tmp1 = gRoomControls.roomScrollY - this->unk_26 + this->unk_36; gScreen.bg3.yOffset = tmp1 & 0x3F; tmp3 = (&gBG3Buffer[((tmp1 / 0x40) << 8)]); gScreen.bg3.tilemap = (u32*)tmp3; - gScreen.controls.window1VerticalDimensions = 0xa0; + gScreen.controls.window1VerticalDimensions = DISPLAY_HEIGHT; if (this->unk_28 == tmp3) return; this->unk_28 = tmp3; @@ -483,14 +483,16 @@ void sub_0805AADC(u32 unk0) { void sub_0805AAF0(u32 unk0) { sub_0805AADC(unk0); gScreen.controls.layerFXControl = 0x3E48; - gScreen.controls.alphaBlend = 0x1008; - gScreen.bg3.control = 0x1E04; + gScreen.controls.alphaBlend = BLDALPHA_BLEND(8, 16); + gScreen.bg3.control = BGCNT_SCREENBASE(30) | BGCNT_CHARBASE(1); gScreen.bg3.tilemap = &gBG3Buffer; gScreen.bg3.xOffset = 0; gScreen.bg3.yOffset = 0; gScreen.bg3.updated = 1; - gScreen.controls.windowInsideControl = 0x3F3F; - gScreen.controls.windowOutsideControl = 0x37; - gScreen.controls.window1HorizontalDimensions = 0xF0; - gScreen.controls.window1VerticalDimensions = 0xA0; + gScreen.controls.windowInsideControl = + WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN0_CLR | WININ_WIN1_CLR; + gScreen.controls.windowOutsideControl = + WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR; + gScreen.controls.window1HorizontalDimensions = DISPLAY_WIDTH; + gScreen.controls.window1VerticalDimensions = DISPLAY_HEIGHT; } diff --git a/src/manager/manager18.c b/src/manager/manager18.c index 1d797c5c..e18fd94e 100644 --- a/src/manager/manager18.c +++ b/src/manager/manager18.c @@ -24,7 +24,7 @@ void Manager18_Main(Manager18* this) { this->manager.unk_0e = 0; this->manager.unk_0f = 8; this->field_0x20 = gUnk_0810865C[0]; - SetDefaultPriority((Entity*)this, 6); + SetDefaultPriority((Entity*)this, PRIO_PLAYER_EVENT); if (gArea.onEnter == NULL) { RegisterTransitionManager(this, sub_0805AEDC, sub_0805AF3C); } else { @@ -47,10 +47,10 @@ void Manager18_Main(Manager18* this) { } void sub_0805AEDC(Manager18* this) { - gScreen.bg3.control = 0x1e05; - gScreen.lcd.displayControl |= 0x800; - gScreen.controls.layerFXControl = 0x3648; - gScreen.controls.alphaBlend = (this != NULL) ? this->field_0x20 : 0x1000; + gScreen.bg3.control = BGCNT_SCREENBASE(30) | BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1); + gScreen.lcd.displayControl |= DISPCNT_BG3_ON; + gScreen.controls.layerFXControl = BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; + gScreen.controls.alphaBlend = (this != NULL) ? this->field_0x20 : BLDALPHA_BLEND(0, 16); gScreen.bg3.xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; gScreen.bg3.yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; if (this != NULL) { @@ -60,6 +60,6 @@ void sub_0805AEDC(Manager18* this) { void sub_0805AF3C(Manager18* this) { this->manager.unk_10 &= 0xdf; - gScreen.lcd.displayControl &= 0xf7ff; + gScreen.lcd.displayControl &= ~DISPCNT_BG3_ON; gScreen.controls.layerFXControl = 0; } diff --git a/src/manager/manager19.c b/src/manager/manager19.c index a6118c5c..0207ab56 100644 --- a/src/manager/manager19.c +++ b/src/manager/manager19.c @@ -15,7 +15,7 @@ void Manager19_Main(Manager* this) { if (this->action == 0) { this->action = 1; this->unk_10 |= 0x20; - SetDefaultPriority((Entity*)this, 6); + SetDefaultPriority((Entity*)this, PRIO_PLAYER_EVENT); if (gArea.onEnter == NULL) { RegisterTransitionManager(this, sub_0805AFFC, NULL); } else { @@ -30,8 +30,8 @@ void Manager19_Main(Manager* this) { } void sub_0805AFFC(Manager* this) { - gScreen.bg3.control = 0x1e03; - gScreen.lcd.displayControl |= 0x800; + gScreen.bg3.control = BGCNT_PRIORITY(3) | BGCNT_SCREENBASE(30); + gScreen.lcd.displayControl |= DISPCNT_BG3_ON; gScreen.bg3.xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; gScreen.bg3.yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; } diff --git a/src/manager/manager1A.c b/src/manager/manager1A.c index cc5ab45e..dc09ea5f 100644 --- a/src/manager/manager1A.c +++ b/src/manager/manager1A.c @@ -68,7 +68,7 @@ void sub_0805B328(Manager1A*); void sub_0805B048(Manager1A* this) { struct_08108764* tmp; Entity* obj; - SetDefaultPriority((Entity*)&this->manager, 6); + SetDefaultPriority((Entity*)&this->manager, PRIO_PLAYER_EVENT); MemClear(&this->unk_20, 0x20); this->manager.action = 1; this->unk_3f = gRoomControls.roomID; @@ -197,7 +197,7 @@ void sub_0805B2B0(Manager1A* this) { if (tmp2 > 12) { tmp2 = 12; } - gScreen.lcd.displayControl |= 0x800; + gScreen.lcd.displayControl |= DISPCNT_BG3_ON; gRoomControls.bg3OffsetX.HALF.HI = gRoomControls.roomScrollX + this->unk_34 + tmp; gScreen.bg3.xOffset = gRoomControls.roomScrollX + this->unk_34 + tmp; gRoomControls.bg3OffsetY.HALF.HI = gRoomControls.roomScrollY + this->unk_36 + tmp2; @@ -211,7 +211,7 @@ void sub_0805B328(Manager1A* this) { tmp = &gUnk_08108764[this->manager.unk_0a]; LoadResourceAsync(&gGlobalGfxAndPalettes[tmp->unk_0c->unk_00], 0x0600F000, 0x800); gScreen.bg3.control = 0x1E07; - gScreen.lcd.displayControl |= 0x800; + gScreen.lcd.displayControl |= DISPCNT_BG3_ON; gScreen.bg3.xOffset = gRoomControls.bg3OffsetX.HALF.HI; gScreen.bg3.yOffset = gRoomControls.bg3OffsetY.HALF.HI; gScreen.controls.layerFXControl &= ~0x8; diff --git a/src/manager/manager1B.c b/src/manager/manager1B.c index c2392fdc..a172bcfc 100644 --- a/src/manager/manager1B.c +++ b/src/manager/manager1B.c @@ -29,7 +29,7 @@ void Manager1B_Main(Manager1B* this) { if (this->manager.action == 0) { this->manager.action = 1; this->manager.unk_10 |= 0x20; - SetDefaultPriority((Entity*)this, 6); + SetDefaultPriority((Entity*)this, PRIO_PLAYER_EVENT); if (this->manager.unk_0a != 0) { RegisterTransitionManager(this, sub_0805B4B4, NULL); } @@ -70,7 +70,7 @@ void sub_0805B4D0(u32 param_1) { LoadGfxGroup(gUnk_08108C5C[param_1]); gScreen.bg3.control = 0x1e07; - gScreen.lcd.displayControl |= 0x800; + gScreen.lcd.displayControl |= DISPCNT_BG3_ON; gScreen.bg3.xOffset = (gRoomControls.roomScrollX - gRoomControls.roomOriginX) >> 2; uVar2 = (gRoomControls.roomScrollY - gRoomControls.roomOriginY) >> 1; diff --git a/src/manager/manager1D.c b/src/manager/manager1D.c index 63ffcf8c..b9039a05 100644 --- a/src/manager/manager1D.c +++ b/src/manager/manager1D.c @@ -13,7 +13,7 @@ void Manager1D_Main(Manager* this) { void sub_0805B5E0(Manager* this) { this->action = 1; - gScreen.lcd.displayControl |= 0x800; + gScreen.lcd.displayControl |= DISPCNT_BG3_ON; gScreen.bg3.control = gUnk_08108C88[this->unk_0a]; gRoomControls.bg3OffsetY.WORD = 0; gRoomControls.bg3OffsetX.WORD = 0; diff --git a/src/manager/manager2.c b/src/manager/manager2.c index 9dcb74f2..3f74d209 100644 --- a/src/manager/manager2.c +++ b/src/manager/manager2.c @@ -53,7 +53,7 @@ void sub_080575C8(u32 param) { s32 bgOffset; gUnk_0200B650 = 0; - *(u16*)0x4000000 = 0; + REG_DISPCNT = 0; LoadGfxGroup(param); gRoomVars.unk_10[0] = param; @@ -62,7 +62,7 @@ void sub_080575C8(u32 param) { gScreen.bg3.yOffset = bgOffset & 0x3f; gScreen.bg3.xOffset = 0; gScreen.bg3.tilemap = &gMapDataTopSpecial[(bgOffset / 0x40) * 0x200]; - gScreen.bg3.control = 0x1d49; + gScreen.bg3.control = BGCNT_SCREENBASE(29) | BGCNT_PRIORITY(1) | BGCNT_CHARBASE(2) | BGCNT_MOSAIC; gScreen.bg3.updated = 1; bgOffset = (gRoomControls.roomScrollY - gRoomControls.roomOriginY); @@ -70,16 +70,17 @@ void sub_080575C8(u32 param) { gScreen.bg1.yOffset = bgOffset & 0x3f; gScreen.bg1.xOffset = 0; gScreen.bg1.tilemap = &gMapDataTopSpecial[0x2000 + (bgOffset / 0x40) * 0x200]; - gScreen.bg1.control = 0x1e49; + gScreen.bg1.control = BGCNT_SCREENBASE(30) | BGCNT_PRIORITY(1) | BGCNT_CHARBASE(2) | BGCNT_MOSAIC; gScreen.bg1.updated = 1; - gScreen.controls.layerFXControl = 0x3c48; - gScreen.controls.alphaBlend = 0x609; - gScreen.lcd.displayControl |= 0xa00; + gScreen.controls.layerFXControl = + BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; + gScreen.controls.alphaBlend = BLDALPHA_BLEND(9, 6); + gScreen.lcd.displayControl |= DISPCNT_BG3_ON | DISPCNT_BG1_ON; } void sub_08057688(void) { - gScreen.bg3.control = 0x1d48; - gScreen.bg1.control = 0x1e48; + gScreen.bg3.control = BGCNT_SCREENBASE(29) | BGCNT_CHARBASE(2) | BGCNT_MOSAIC; + gScreen.bg1.control = BGCNT_SCREENBASE(30) | BGCNT_CHARBASE(2) | BGCNT_MOSAIC; } void sub_080576A0(Manager2* this) { diff --git a/src/manager/manager2E.c b/src/manager/manager2E.c index 19205a28..7dbb3aa5 100644 --- a/src/manager/manager2E.c +++ b/src/manager/manager2E.c @@ -42,7 +42,7 @@ void sub_0805D280(Manager2E* this) { if (this->manager.unk_0e == 0) { this->manager.unk_0e = 0x1e; } - SetDefaultPriority((Entity*)this, 6); + SetDefaultPriority((Entity*)this, PRIO_PLAYER_EVENT); } void sub_0805D2C0(Manager2E* this) { @@ -80,7 +80,7 @@ void sub_0805D344(Manager2E* this) { this->manager.unk_0e = 0x1e; } this->manager.unk_0f = this->manager.unk_0e; - SetDefaultPriority((Entity*)this, 6); + SetDefaultPriority((Entity*)this, PRIO_PLAYER_EVENT); } void sub_0805D36C(Manager2E* this) { diff --git a/src/manager/manager2F.c b/src/manager/manager2F.c index 84619e66..d35c67a8 100644 --- a/src/manager/manager2F.c +++ b/src/manager/manager2F.c @@ -16,7 +16,7 @@ void Manager2F_Main(Manager* this) { if (this->action == 0) { this->action = 1; this->unk_10 |= 0x20; - SetDefaultPriority((Entity*)this, 6); + SetDefaultPriority((Entity*)this, PRIO_PLAYER_EVENT); if (gArea.onEnter == NULL) { RegisterTransitionManager(this, sub_0805D470, NULL); } else { @@ -34,7 +34,7 @@ void Manager2F_Main(Manager* this) { void sub_0805D470(Manager* this) { LoadGfxGroup(0x4c); gScreen.bg3.control = 0x1e07; - gScreen.lcd.displayControl |= 0x800; + gScreen.lcd.displayControl |= DISPCNT_BG3_ON; gScreen.bg3.xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; gScreen.bg3.yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; } diff --git a/src/manager/manager31.c b/src/manager/manager31.c index 2dcf7727..bb7ebdde 100644 --- a/src/manager/manager31.c +++ b/src/manager/manager31.c @@ -28,7 +28,7 @@ void Manager31_Main(Manager31* this) { s32 count; if (this->manager.action == 0) { - this->manager.action += 1; + this->manager.action++; if (CheckGlobalFlag(GORON_KAKERA_L) != 0 && CheckGlobalFlag(GORON_KAKERA_M) != 0 && CheckGlobalFlag(GORON_KAKERA_R) != 0) { if (CheckGlobalFlag(GORON_KAKERA_LV2) == 0) { @@ -36,28 +36,22 @@ void Manager31_Main(Manager31* this) { SetGlobalFlag(GORON_KAKERA_LV2); goto clearGlobalFlags; } - } else { - if (CheckGlobalFlag(GORON_KAKERA_LV3) == 0) { - if (CheckGlobalFlag(LV2_CLEAR) != 0) { - SetGlobalFlag(GORON_KAKERA_LV3); - goto clearGlobalFlags; - } - } else { - if (CheckGlobalFlag(GORON_KAKERA_LV4) == 0) { - if (CheckGlobalFlag(LV3_CLEAR) != 0) { - SetGlobalFlag(GORON_KAKERA_LV4); - goto clearGlobalFlags; - } - } else { - if (CheckGlobalFlag(GORON_KAKERA_LV5) == 0 && CheckGlobalFlag(LV4_CLEAR) != 0) { - SetGlobalFlag(GORON_KAKERA_LV5); - clearGlobalFlags: - ClearGlobalFlag(GORON_KAKERA_L); - ClearGlobalFlag(GORON_KAKERA_M); - ClearGlobalFlag(GORON_KAKERA_R); - } - } + } else if (CheckGlobalFlag(GORON_KAKERA_LV3) == 0) { + if (CheckGlobalFlag(LV2_CLEAR) != 0) { + SetGlobalFlag(GORON_KAKERA_LV3); + goto clearGlobalFlags; } + } else if (CheckGlobalFlag(GORON_KAKERA_LV4) == 0) { + if (CheckGlobalFlag(LV3_CLEAR) != 0) { + SetGlobalFlag(GORON_KAKERA_LV4); + goto clearGlobalFlags; + } + } else if (CheckGlobalFlag(GORON_KAKERA_LV5) == 0 && CheckGlobalFlag(LV4_CLEAR) != 0) { + SetGlobalFlag(GORON_KAKERA_LV5); + clearGlobalFlags: + ClearGlobalFlag(GORON_KAKERA_L); + ClearGlobalFlag(GORON_KAKERA_M); + ClearGlobalFlag(GORON_KAKERA_R); } } this->itemActive[2] = 0; diff --git a/src/manager/manager32.c b/src/manager/manager32.c index 409840de..606f07ea 100644 --- a/src/manager/manager32.c +++ b/src/manager/manager32.c @@ -73,7 +73,7 @@ void sub_0805D860(Manager32* this) { case 0: this->manager.unk_0d = 1; this->field_0x20 = 0x80; - gScreen.lcd.displayControl |= 0x800; + gScreen.lcd.displayControl |= DISPCNT_BG3_ON; break; case 1: if (--this->field_0x20 == 0x10) { @@ -95,7 +95,7 @@ void sub_0805D860(Manager32* this) { default: if (--this->manager.unk_0e == 0) { sub_0801E104(); - gScreen.lcd.displayControl &= 0xf7ff; + gScreen.lcd.displayControl &= ~DISPCNT_BG3_ON; DeleteThisEntity(); } } @@ -107,7 +107,7 @@ void sub_0805D900(Manager32* this) { this->manager.unk_0d = 1; this->manager.unk_0e = 0x2d; this->field_0x20 = 1; - gScreen.lcd.displayControl |= 0x800; + gScreen.lcd.displayControl |= DISPCNT_BG3_ON; break; case 1: if (--this->manager.unk_0e == 0) { @@ -126,7 +126,7 @@ void sub_0805D900(Manager32* this) { this->field_0x20 += 4; if (this->field_0x20 > 0x80) { sub_0801E104(); - gScreen.lcd.displayControl &= 0xf7ff; + gScreen.lcd.displayControl &= ~DISPCNT_BG3_ON; DeleteThisEntity(); } break; @@ -164,7 +164,7 @@ void sub_0805DA08(u32 x, u32 y, u32 param_3) { affineDstData->pa = ((gSineTable[(param_3 + i + y) & 0xff] * x) >> 8) + gScreen.bg3.xOffset; affineDstData = (struct BgAffineDstData*)&affineDstData->pb; } - sub_0805622C(&gUnk_02017AA0[gUnk_03003DE4[0] * 0xa0], 0x400001c, 0xa2600001); + sub_0805622C(&gUnk_02017AA0[gUnk_03003DE4[0] * 0xa0], REG_ADDR_BG3HOFS, 0xa2600001); } void sub_0805DA90(Manager32* this, u32 param_2) { @@ -177,7 +177,7 @@ void sub_0805DA90(Manager32* this, u32 param_2) { AppendEntityToList((Entity*)manager, 8); } if (gArea.onEnter != NULL) { - gScreen.lcd.displayControl &= 0xf7ff; + gScreen.lcd.displayControl &= ~DISPCNT_BG3_ON; RoomExitCallback(); //! @bug: this always variable points to ROM, not a Manager* DeleteManager((Manager*)gArea.onEnter); diff --git a/src/manager/manager36.c b/src/manager/manager36.c index c955425f..96e8b1a3 100644 --- a/src/manager/manager36.c +++ b/src/manager/manager36.c @@ -32,7 +32,7 @@ void CreateManager36(Entity* entity, ScriptExecutionContext* context) { manager->subtype = 0x36; manager->unk_0a = context->intVariable; AppendEntityToList((Entity*)manager, 6); - SetDefaultPriority((Entity*)manager, 6); + SetDefaultPriority((Entity*)manager, PRIO_PLAYER_EVENT); } } diff --git a/src/manager/manager39.c b/src/manager/manager39.c index 1e51d22e..65355f84 100644 --- a/src/manager/manager39.c +++ b/src/manager/manager39.c @@ -48,7 +48,7 @@ void sub_0805E140(Manager39* this) { this->unk_20 = gRoomControls.roomID; this->manager.unk_0e = 0x78; this->manager.unk_0f = 0x3c; - SetDefaultPriority((Entity*)this, 7); + SetDefaultPriority((Entity*)this, PRIO_HIGHEST); sub_0805E1F8(gUnk_08108DE8[gArea.locationIndex], CheckIsDungeon()); } @@ -58,7 +58,7 @@ void sub_0805E18C(Manager39* this) { if (this->manager.unk_0b) { if (!--this->manager.unk_0f) { this->manager.unk_0b = 0; - gPlayerState.field_0x8b = 1; + gPlayerState.controlMode = 1; ResetSystemPriority(); } } diff --git a/src/manager/manager7.c b/src/manager/manager7.c index b081b4ff..59cf85b6 100644 --- a/src/manager/manager7.c +++ b/src/manager/manager7.c @@ -14,7 +14,7 @@ void sub_08057E30(); u32 sub_08057E40(); void sub_08057E7C(u32); -extern u32 sub_08056300(const u16*); +extern u32 CheckRegionsOnScreen(const u16*); extern const u8 gGlobalGfxAndPalettes[]; @@ -66,7 +66,7 @@ void Manager7_Main(Manager7* this) { this->manager.unk_0e = 8; this->unk_20 = 0xFF; - SetDefaultPriority((Entity*)this, 6); + SetDefaultPriority((Entity*)this, PRIO_PLAYER_EVENT); RegisterTransitionManager(this, sub_08057E30, 0); } if (sub_08057E40(this)) { @@ -113,7 +113,7 @@ void sub_08057E30(Manager7* this) { } u32 sub_08057E40(Manager7* this) { - u32 tmp = sub_08056300(gUnk_08108050); + u32 tmp = CheckRegionsOnScreen(gUnk_08108050); if (tmp != 0xFF) { gRoomVars.unk_10[0] = tmp; return 1; @@ -124,7 +124,7 @@ u32 sub_08057E40(Manager7* this) { void sub_08057E64() { u32 tmp; - tmp = sub_08056300(gUnk_08108050); + tmp = CheckRegionsOnScreen(gUnk_08108050); if (tmp != 0xFF) { sub_08057E7C(tmp); } diff --git a/src/manager/managerA.c b/src/manager/managerA.c index 76cab147..564c1cac 100644 --- a/src/manager/managerA.c +++ b/src/manager/managerA.c @@ -136,7 +136,7 @@ void sub_08058514(ManagerA* this) { case 3: if (gPlayerEntity.action != 1 && gPlayerEntity.action != 9) return; - gPlayerState.field_0x8b = 1; + gPlayerState.controlMode = 1; ResetPlayerEventPriority(); SetFlag(this->unk_3c); DeleteThisEntity(); diff --git a/src/manager/managerB.c b/src/manager/managerB.c index f52c4138..82182094 100644 --- a/src/manager/managerB.c +++ b/src/manager/managerB.c @@ -42,7 +42,7 @@ void ManagerB_Init(ManagerB* this) { if (!this->unk_3c) { ManagerB_LoadFight(&this->manager); } - SetDefaultPriority((Entity*)this, 3); + SetDefaultPriority((Entity*)this, PRIO_NO_BLOCK); } else { DeleteThisEntity(); } @@ -148,7 +148,7 @@ void ManagerBHelper_Main(Manager* this) { Entity* current; if (this->action == 0) { this->action = 1; - SetDefaultPriority((Entity*)this, 3); + SetDefaultPriority((Entity*)this, PRIO_NO_BLOCK); } // go through and check all monitored enemies. anyRemaining = 0; diff --git a/src/manager/managerC.c b/src/manager/managerC.c index d4a83f64..2583ce98 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -286,7 +286,7 @@ void sub_08058D34() { LoadGfxGroup(0x16); tmp = gScreen.lcd.displayControl; tmp2 = 0; - gScreen.lcd.displayControl |= 1; + gScreen.lcd.displayControl |= DISPCNT_MODE_1; gScreen.bg2.control = 0xBC82; gScreen.bg1.control = 0x5E86; gScreen.bg1.xOffset = 0; diff --git a/src/manager/managerF.c b/src/manager/managerF.c index 432ec49f..2fb9972b 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -209,7 +209,7 @@ void sub_08059094(ManagerF* this) { void sub_080590E0(ManagerF* this) { if (!this->manager.action) { this->manager.action = 1; - SetDefaultPriority((Entity*)this, 6); + SetDefaultPriority((Entity*)this, PRIO_PLAYER_EVENT); } if (CheckLocalFlag(0x6c)) { if (CheckLocalFlag(0x4b)) { @@ -427,7 +427,7 @@ void sub_080594DC(ManagerF* this) { #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) void sub_08059548(ManagerF* this) { - SetDefaultPriority((Entity*)this, 6); + SetDefaultPriority((Entity*)this, PRIO_PLAYER_EVENT); if (gPlayerEntity.action == 0x16) { DeleteThisEntity(); } diff --git a/src/npc.c b/src/npc.c index 328ce1af..ba3c0ada 100644 --- a/src/npc.c +++ b/src/npc.c @@ -82,7 +82,7 @@ void (*const gNPCFunctions[][3])(Entity* ent) = { [GREGAL] = { Gregal, NULL, Gregal_Fusion }, [MAYOR_HAGEN] = { MayorHagen, NULL, MayorHagen_Fusion }, [BIG_GORON] = { BigGoron, NULL, NULL }, - [EZLO_CAP] = { EzloCap, NULL, NULL }, + [EZLO] = { Ezlo, NULL, NULL }, [NPC_UNK_4E] = { NPC4E, NULL, NPC4E_Fusion }, [NPC_UNK_4F] = { NPC4F, NULL, NULL }, [CLOTHES_RACK] = { ClothesRack, NULL, NULL }, diff --git a/src/npc/beedle.c b/src/npc/beedle.c index ce9c7722..ada9a485 100644 --- a/src/npc/beedle.c +++ b/src/npc/beedle.c @@ -153,7 +153,7 @@ void sub_080634E4(Entity* this, ScriptExecutionContext* context) { } void sub_080634EC(Entity* this) { - gRoomVars.itemForSaleIndex = gUnk_0810C88C[this->type2]; + gRoomVars.shopItemType = gUnk_0810C88C[this->type2]; } void sub_08063504(Entity* this, ScriptExecutionContext* context) { diff --git a/src/npc/bigGoron.c b/src/npc/bigGoron.c index 797c9f6f..e76a26e2 100644 --- a/src/npc/bigGoron.c +++ b/src/npc/bigGoron.c @@ -44,7 +44,7 @@ void sub_0806CF30(Entity* this) { this->action = 1; this->subAction = 1; this->field_0x68.HWORD = this->x.HALF.HI; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0806D0B0(this); sub_0807DD64(this); } else { @@ -133,7 +133,7 @@ void sub_0806D1D0(Entity* this) { this->spriteSettings.draw = 3; this->frameIndex = 0; this->actionDelay = 0x1e; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); } switch (this->subAction) { @@ -174,7 +174,7 @@ void sub_0806D274(Entity* this) { this->spritePriority.b0 = 7; this->frameIndex = 2; this->actionDelay = 8; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); npc = CreateNPC(0x4c, 3, 0); if (npc != NULL) { npc->child = this; @@ -221,7 +221,7 @@ void sub_0806D348(Entity* this) { this->spritePriority.b0 = 6; this->spriteSettings.draw = 0; this->frameIndex = 5; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); } if (this->child->frameIndex == 4) { this->spriteSettings.draw = 3; @@ -239,7 +239,7 @@ void sub_0806D3C0(Entity* this) { } this->action = 1; this->hitbox = &gHitbox_3; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD64(this); } else { this->x.HALF.HI = this->parent->x.HALF.HI; @@ -262,7 +262,7 @@ void sub_0806D41C(Entity* this) { sub_0806D4C0(this, 1); sub_0806D4C0(this, 2); sub_0806D4C0(this, 3); - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); } else { ExecuteScriptForEntity(this, NULL); HandleEntity0x82Actions(this); @@ -286,7 +286,7 @@ void sub_0806D4C0(Entity* this, u32 param) { npc->parent = this; CopyPosition(this, npc); ResolveEntityOnTop(this, npc); - SetDefaultPriority(npc, 2); + SetDefaultPriority(npc, PRIO_MESSAGE); } } diff --git a/src/npc/carpenter.c b/src/npc/carpenter.c index f489ad72..8663b241 100644 --- a/src/npc/carpenter.c +++ b/src/npc/carpenter.c @@ -24,7 +24,7 @@ void Carpenter(Entity* this) { break; this->action = 1; this->field_0x68.HALF.HI = 0; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD64(this); case 1: @@ -52,14 +52,14 @@ void Carpenter(Entity* this) { void Carpenter_Head(Entity* this) { if (this->type < 2) { - SetExtraSpriteFrame(this, 0, this->frame & 0xffffff7f); + SetExtraSpriteFrame(this, 0, this->frame & ~0x80); SetExtraSpriteFrame(this, 1, this->frameIndex); SetExtraSpriteFrame(this, 2, this->frameSpriteSettings & 0x3f); SetSpriteSubEntryOffsetData1(this, 1, 0); SetSpriteSubEntryOffsetData2(this, 1, 2); sub_0807000C(this); } else { - SetExtraSpriteFrame(this, 0, this->frame & 0xffffff7f); + SetExtraSpriteFrame(this, 0, this->frame & ~0x80); SetExtraSpriteFrame(this, 1, this->frameIndex); SetSpriteSubEntryOffsetData1(this, 1, 0); sub_0807000C(this); @@ -94,7 +94,7 @@ void Carpenter_Fusion(Entity* this) { if (LoadExtraSpriteData(this, &gUnk_08110CA8[this->type * 4]) != 0) { this->action = this->action + 1; this->spriteSettings.draw = 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); InitializeAnimation(this, (u32)this->type * 8 + 2); } } else { diff --git a/src/npc/cat.c b/src/npc/cat.c index 3371284c..3fec5ab9 100644 --- a/src/npc/cat.c +++ b/src/npc/cat.c @@ -153,7 +153,7 @@ void sub_0806799C(Entity* this) { UpdateAnimationSingleFrame(this); if ((gMessage.doTextBox & 0x7f) == 0) { sub_08067B08(this); - SetDefaultPriority(this, 1); + SetDefaultPriority(this, PRIO_PLAYER); } } @@ -319,7 +319,7 @@ void sub_08067C44(Entity* this) { } else { this->action = 4; sub_08067790(this); - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); } this->interactType = 0; SoundReq(SFX_VO_CAT); diff --git a/src/npc/cucco.c b/src/npc/cucco.c index 8bd30005..b935dc7b 100644 --- a/src/npc/cucco.c +++ b/src/npc/cucco.c @@ -21,7 +21,7 @@ void sub_0806E4B8(Entity* this) { this->action += 1; this->field_0x68.HALF.LO = sub_0801E99C(this); sub_080787A8(this, this->field_0x68.HALF.LO); - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); this->subAction = 0; sub_0806E4EC(this); } diff --git a/src/npc/cuccoChick.c b/src/npc/cuccoChick.c index 0cb4b76c..bfadc897 100644 --- a/src/npc/cuccoChick.c +++ b/src/npc/cuccoChick.c @@ -22,7 +22,7 @@ void sub_0806E730(Entity* this) { this->action += 1; this->field_0x68.HALF.LO = sub_0801E99C(this); sub_080787A8(this, this->field_0x68.HALF.LO); - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); this->subAction = 0; sub_0806E764(this); } diff --git a/src/npc/dampe.c b/src/npc/dampe.c index 096ac1e8..afb9ef63 100644 --- a/src/npc/dampe.c +++ b/src/npc/dampe.c @@ -16,7 +16,7 @@ void Dampe(Entity* this) { case 0: this->action = 1; this->spriteSettings.draw = 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); return; case 1: diff --git a/src/npc/dog.c b/src/npc/dog.c index 3dc8641e..e749ea7e 100644 --- a/src/npc/dog.c +++ b/src/npc/dog.c @@ -66,7 +66,7 @@ void sub_08069B44(Entity* this) { this->animationState = 2; this->field_0x6a.HALF.LO = 0xff; this->field_0x74.HALF.LO = sub_0801E99C(this); - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); InitAnimationForceUpdate(this, 10); if ((this->flags & 2) != 0) { sub_0807DD50(this); @@ -273,7 +273,7 @@ u32 sub_08069F90(Entity* this) { if ((this->type == 2) && (CheckLocalFlag(MACHI_02_DOG) == 0)) { return 1; } else { - return sub_080041A0(this, &gPlayerEntity, 0x14, 0x14); + return EntityInRectRadius(this, &gPlayerEntity, 0x14, 0x14); } } @@ -362,7 +362,7 @@ void Dog_Fusion(Entity* this) { if (sub_08069EF0(this) != 0) { this->action += 1; this->spriteSettings.draw = 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); InitializeAnimation(this, 0x23); } } else { diff --git a/src/npc/drLeft.c b/src/npc/drLeft.c index cdc05551..06de67f8 100644 --- a/src/npc/drLeft.c +++ b/src/npc/drLeft.c @@ -17,7 +17,7 @@ void DrLeft(Entity* this) { if (this->type == 0) { if (this->action == 0) { this->action += 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); } ExecuteScriptForEntity(this, NULL); diff --git a/src/npc/emma.c b/src/npc/emma.c index fa75eea0..ed4d6025 100644 --- a/src/npc/emma.c +++ b/src/npc/emma.c @@ -10,7 +10,7 @@ extern ScreenTransitionData gUnk_0813AD38; void Emma(Entity* this) { if (this->action == 0) { this->action += 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); } else { sub_0807DD94(this, 0); diff --git a/src/npc/epona.c b/src/npc/epona.c index 540184c2..4c3d9174 100644 --- a/src/npc/epona.c +++ b/src/npc/epona.c @@ -77,7 +77,7 @@ void sub_08065AA4(Entity* this) { sub_0806F118(this); } else { this->action = 3; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_08065A50(this); } InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); diff --git a/src/npc/ezloCap.c b/src/npc/ezlo.c similarity index 96% rename from src/npc/ezloCap.c rename to src/npc/ezlo.c index 6860455b..4f1dcd62 100644 --- a/src/npc/ezloCap.c +++ b/src/npc/ezlo.c @@ -9,10 +9,10 @@ const u8 gUnk_08114134[]; const u8 gUnk_08114144[]; // Ezlo as a cap in the Minish Woods, is destroyed as soon as link wears ezlo -void EzloCap(Entity* this) { +void Ezlo(Entity* this) { if (this->action == 0) { this->action += 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); } ExecuteScriptForEntity(this, NULL); diff --git a/src/npc/farmers.c b/src/npc/farmers.c index c2f633fe..d31a7a3a 100644 --- a/src/npc/farmers.c +++ b/src/npc/farmers.c @@ -12,7 +12,7 @@ void sub_0806BC58(Entity* this); ASM_FUNC("asm/non_matching/farmers/Farmers.inc", void Farmers(Entity* this)) void sub_0806BC58(Entity* this) { - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); } void Farmers_Head(Entity* this) { diff --git a/src/npc/festari.c b/src/npc/festari.c index 114ac046..49dde08c 100644 --- a/src/npc/festari.c +++ b/src/npc/festari.c @@ -18,7 +18,7 @@ void Festari(Entity* this) { void sub_0805FE10(Entity* this) { this->action = 1; this->spriteSettings.draw = TRUE; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); this->field_0x68.HALF.LO = sub_0801E99C(this); sub_08078784(this, this->field_0x68.HALF.LO); sub_0807DD50(this); @@ -113,7 +113,7 @@ void Festari_Fusion(Entity* this) { if (this->action == 0) { this->action += 1; this->spriteSettings.draw = 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); InitAnimationForceUpdate(this, 8); } else { UpdateAnimationSingleFrame(this); diff --git a/src/npc/forestMinish.c b/src/npc/forestMinish.c index c0a9f88d..a8e04f9c 100644 --- a/src/npc/forestMinish.c +++ b/src/npc/forestMinish.c @@ -32,7 +32,7 @@ void ForestMinish(Entity* this) { this->spriteSettings.draw = TRUE; this->field_0x68.HALF.HI = this->animationState = this->actionDelay << 1; this->actionDelay = 0; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); StartCutscene(this, (u16*)gUnk_08109D18[this->type2]); sub_0807DD50(this); } @@ -267,7 +267,7 @@ void ForestMinish_Fusion(Entity* this) { if (LoadExtraSpriteData(this, &gUnk_0810A348)) { this->action++; this->spriteSettings.draw = TRUE; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); InitializeAnimation(this, 6); } } else { diff --git a/src/npc/gentari.c b/src/npc/gentari.c index 46b8500f..d4938806 100644 --- a/src/npc/gentari.c +++ b/src/npc/gentari.c @@ -10,7 +10,7 @@ void Gentari(Entity* this) { case 0: this->action = 1; this->spriteSettings.draw = TRUE; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); this->field_0x68.HALF.LO = sub_0801E99C(this); sub_08078784(this, this->field_0x68.HALF.LO); sub_0807DD50(this); @@ -36,7 +36,7 @@ void Gentari_Fusion(Entity* this) { if (this->action == 0) { this->action++; this->spriteSettings.draw = TRUE; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); InitAnimationForceUpdate(this, 10); } else { UpdateAnimationSingleFrame(this); diff --git a/src/npc/ghostBrothers.c b/src/npc/ghostBrothers.c index 1cdbdd8a..de04427b 100644 --- a/src/npc/ghostBrothers.c +++ b/src/npc/ghostBrothers.c @@ -94,7 +94,7 @@ void sub_08065D18(Entity* this) { this->spriteSettings.draw = 1; this->spriteRendering.alphaBlend = 1; *(u32**)&this->field_0x6c = &gUnk_08110188; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); InitAnimationForceUpdate(this, 2); gScreen.controls.layerFXControl = 0x3f40; gScreen.controls.alphaBlend = 0x1000; diff --git a/src/npc/goronMerchant.c b/src/npc/goronMerchant.c index 28962706..9c1b107c 100644 --- a/src/npc/goronMerchant.c +++ b/src/npc/goronMerchant.c @@ -8,12 +8,12 @@ #include "script.h" #include "save.h" -extern u32 GoronMerchant_GetSalePrice(Entity*); +static u32 GoronMerchant_GetSalePrice(Entity*); extern void (*const gUnk_08111B88[])(Entity*); extern void (*const gUnk_08111B98[])(Entity*); -const u16 GoronMerchant_KinstonePrices[]; +static const u16 sKinstonePrices[]; extern u32 sub_0801E7D0(u32); @@ -78,8 +78,6 @@ void sub_08069654(Entity* this) { } void sub_08069660(Entity* this) { - u32 uVar1; - MessageNoOverlap(0x2c1c, this); gMessage.field_0x10 = (u16)GoronMerchant_GetSalePrice(this); } @@ -98,16 +96,16 @@ void sub_08069684(void) { } void sub_080696B0(void) { - gRoomVars.itemForSaleIndex = 0; + gRoomVars.shopItemType = 0; } -u32 GoronMerchant_GetSalePrice(Entity* this) { +static u32 GoronMerchant_GetSalePrice(Entity* this) { u32 restockCount; u32 temp; u32 kinstoneType; s32 itemForSale; - itemForSale = gRoomVars.field_0x7; + itemForSale = gRoomVars.shopItemType2; if (itemForSale > 0x70) { kinstoneType = 1; } else { @@ -129,17 +127,17 @@ u32 GoronMerchant_GetSalePrice(Entity* this) { if (CheckGlobalFlag(GORON_KAKERA_LV5)) { restockCount = 4; } - return GoronMerchant_KinstonePrices[restockCount * 3 + kinstoneType]; + return sKinstonePrices[restockCount * 3 + kinstoneType]; } void GoronMerchant_TryToBuyKinstone(Entity* this, ScriptExecutionContext* context) { s32 salePrice = GoronMerchant_GetSalePrice(this); if (salePrice <= gSave.stats.rupees) { - if (sub_0801E7D0(gRoomVars.field_0x7) < 99) { + if (sub_0801E7D0(gRoomVars.shopItemType2) < 99) { ModRupees(-salePrice); - sub_080A7C18(0x5c, gRoomVars.field_0x7, 0); - gRoomVars.itemForSaleIndex = 0; - gRoomVars.field_0x7 = 0; + sub_080A7C18(0x5c, gRoomVars.shopItemType2, 0); + gRoomVars.shopItemType = 0; + gRoomVars.shopItemType2 = 0; context->condition = 1; } else { MessageNoOverlap(0x2c1f, this); @@ -149,7 +147,7 @@ void GoronMerchant_TryToBuyKinstone(Entity* this, ScriptExecutionContext* contex MessageNoOverlap(0x2c1e, this); context->condition = 0; } - gActiveScriptInfo.flags = gActiveScriptInfo.flags | 1; + gActiveScriptInfo.flags |= 1; } void (*const gUnk_08111B88[])(Entity*) = { @@ -163,7 +161,7 @@ void (*const gUnk_08111B98[])(Entity*) = { sub_08069654, }; -const u16 GoronMerchant_KinstonePrices[] = { +static const u16 sKinstonePrices[] = { #ifdef EU 200, 100, diff --git a/src/npc/gregal.c b/src/npc/gregal.c index db60132d..60003505 100644 --- a/src/npc/gregal.c +++ b/src/npc/gregal.c @@ -19,7 +19,7 @@ void sub_0806CAF4(Entity* this) { if (this->action == 0) { this->action += 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); npc = CreateNPC(0x4a, 1, 0); if (npc != NULL) { npc->parent = this; @@ -46,7 +46,7 @@ void sub_0806CB80(Entity* this) { this->action += 1; this->animationState = 2; this->frameIndex = 0; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); } if (this->parent != NULL) { this->frameIndex = (this->parent->frame & 3) + 0x21; @@ -57,7 +57,7 @@ void sub_0806CBB4(Entity* this) { if (this->action == 0) { this->action += 1; this->animationState = 2; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); InitializeAnimation(this, 0x11); } GetNextFrame(this); @@ -74,7 +74,7 @@ void sub_0806CC08(Entity* this) { case 0: this->action = 1; this->spriteSettings.draw = 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD64(this); case 1: if (this->interactType == 2) { @@ -154,7 +154,7 @@ void Gregal_Fusion(Entity* this) { if (this->action == 0) { this->action += 1; this->spriteSettings.draw = 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); InitAnimationForceUpdate(this, 6); } else { UpdateAnimationSingleFrame(this); diff --git a/src/npc/hurdyGurdyMan.c b/src/npc/hurdyGurdyMan.c index 8fbd8b0d..52277dff 100644 --- a/src/npc/hurdyGurdyMan.c +++ b/src/npc/hurdyGurdyMan.c @@ -20,7 +20,7 @@ void HurdyGurdyMan(Entity* this) { if (LoadExtraSpriteData(this, &gUnk_081144F0) != 0) { this->action = 1; this->field_0x68.HALF.HI = 0; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); } break; @@ -36,7 +36,7 @@ void HurdyGurdyMan(Entity* this) { pointerToArray = pointerToArray + 3; } sub_0801DFB4(this, (u32)*pointerToArray, (u32)pointerToArray[1], (u32)pointerToArray[2]); - gPlayerState.field_0x8b = 3; + gPlayerState.controlMode = CONTROL_DISABLED; } else { sub_0807DD94(this, NULL); } @@ -79,7 +79,7 @@ void HurdyGurdyMan_Fusion(Entity* this) { if (uVar1 != 0) { this->action += 1; this->spriteSettings.draw = 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); InitializeAnimation(this, 10); } } else { diff --git a/src/npc/kingGustaf.c b/src/npc/kingGustaf.c index 596e0b90..a40a19f6 100644 --- a/src/npc/kingGustaf.c +++ b/src/npc/kingGustaf.c @@ -11,7 +11,7 @@ void KingGustaf(Entity* this) { this->action += 1; this->spriteRendering.alphaBlend = 1; this->collisionLayer = 2; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); gScreen.controls.layerFXControl = 0x3f40; gScreen.controls.alphaBlend = 0x1000; diff --git a/src/npc/librari.c b/src/npc/librari.c index 0d484d2a..509d790e 100644 --- a/src/npc/librari.c +++ b/src/npc/librari.c @@ -16,7 +16,7 @@ void Librari(Entity* this) { this->animationState = this->actionDelay; this->field_0x68.HALF.LO = sub_0801E99C(this); sub_08078784(this, this->field_0x68.HALF.LO); - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); break; case 1: diff --git a/src/npc/mama.c b/src/npc/mama.c index 5c85f121..d5ea5950 100644 --- a/src/npc/mama.c +++ b/src/npc/mama.c @@ -48,7 +48,7 @@ bool32 sub_0806C454(Entity* this) { if (LoadExtraSpriteData(this, &gUnk_08113754) == 0) { return FALSE; } else { - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); return TRUE; } } diff --git a/src/npc/marcy.c b/src/npc/marcy.c index 0b6d0dcc..01c94bc4 100644 --- a/src/npc/marcy.c +++ b/src/npc/marcy.c @@ -9,7 +9,7 @@ extern u16 gUnk_0810C34C[]; void Marcy(Entity* this) { if (this->action == 0) { this->action += 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD64(this); } sub_0807DD94(this, NULL); diff --git a/src/npc/mayorHagen.c b/src/npc/mayorHagen.c index a9353164..1c569e92 100644 --- a/src/npc/mayorHagen.c +++ b/src/npc/mayorHagen.c @@ -19,7 +19,7 @@ void MayorHagen(Entity* this) { this->action = 1; this->field_0x68.HALF.HI = 0; this->field_0x68.HALF.LO = sub_0801E99C(this); - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); break; case 1: diff --git a/src/npc/melari.c b/src/npc/melari.c index e0879f3b..146ae078 100644 --- a/src/npc/melari.c +++ b/src/npc/melari.c @@ -65,7 +65,7 @@ void sub_08068780(Entity* this) { this->action = 1; this->spriteSettings.draw = TRUE; this->animationState = this->type; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); break; case 1: diff --git a/src/npc/minishEzlo.c b/src/npc/minishEzlo.c index a6824c50..0d2d017b 100644 --- a/src/npc/minishEzlo.c +++ b/src/npc/minishEzlo.c @@ -12,7 +12,7 @@ void MinishEzlo(Entity* this) { } this->action += 1; this->animationState = this->actionDelay * 2; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); } ExecuteScriptForEntity(this, NULL); diff --git a/src/npc/mutoh.c b/src/npc/mutoh.c index b1263127..7cae63d1 100644 --- a/src/npc/mutoh.c +++ b/src/npc/mutoh.c @@ -23,7 +23,7 @@ void Mutoh(Entity* this) { if (LoadExtraSpriteData(this, &gUnk_08110C00)) { this->action = 1; this->spriteSettings.draw = TRUE; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); } break; diff --git a/src/npc/percy.c b/src/npc/percy.c index 85eb80fc..90e10b28 100644 --- a/src/npc/percy.c +++ b/src/npc/percy.c @@ -79,7 +79,7 @@ void sub_0806B41C(Entity* this) { if (this->field_0x68.HALF.LO == 33) tmp += 3; sub_0801DFB4(this, tmp[0], tmp[1], tmp[2]); - gPlayerState.field_0x8b = 3; + gPlayerState.controlMode = CONTROL_DISABLED; } else { sub_0807DD94(this, NULL); } diff --git a/src/npc/pita.c b/src/npc/pita.c index b379ba8f..36856cb5 100644 --- a/src/npc/pita.c +++ b/src/npc/pita.c @@ -15,7 +15,7 @@ extern u32 sub_080028F4(const u8*); void Pita(Entity* this) { if (this->action == 0) { this->action += 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); ResolveEntityOnTop(this, this); this->hitbox = &gUnk_0810C428; sub_0807DD64(this); diff --git a/src/npc/rem.c b/src/npc/rem.c index 7298b531..09f4464e 100644 --- a/src/npc/rem.c +++ b/src/npc/rem.c @@ -55,7 +55,7 @@ void sub_0806A3D8(Entity* this) { this->action = 1; this->actionDelay = 0xb4; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0806A8C8(this); uVar1 = StartCutscene(this, &script_08012F0C); *(ScriptExecutionContext**)&this->cutsceneBeh = uVar1; @@ -196,7 +196,7 @@ void sub_0806A830(Entity* this) { if (this->action == 0) { this->action = 1; InitializeAnimation(this, 0x14); - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); } if ((gActiveScriptInfo.unk_00 & 0x200) != 0) { DeleteThisEntity(); @@ -215,7 +215,7 @@ void sub_0806A890(Entity* this) { if (this->action == 0) { this->action = 1; InitializeAnimation(this, 0x15); - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); } GetNextFrame(this); if ((this->frame & 0x80) != 0) { diff --git a/src/npc/stockwell.c b/src/npc/stockwell.c index dc38b634..ef0f0486 100644 --- a/src/npc/stockwell.c +++ b/src/npc/stockwell.c @@ -28,7 +28,7 @@ void sub_08065080(Entity* this) { this->action = 1; this->spriteSettings.draw = 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); InitializeAnimation(this, 4); sub_08078778(this); #ifndef EU diff --git a/src/npc/syrup.c b/src/npc/syrup.c index 92b4c8b5..3554d95a 100644 --- a/src/npc/syrup.c +++ b/src/npc/syrup.c @@ -27,7 +27,7 @@ void sub_0806A1F8(Entity* this) { iVar1 = LoadExtraSpriteData(this, paVar2); if (iVar1) { this->action = 1; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); InitializeAnimation(this, 0); } diff --git a/src/npc/teachers.c b/src/npc/teachers.c index dc811ab9..645361d2 100644 --- a/src/npc/teachers.c +++ b/src/npc/teachers.c @@ -18,7 +18,7 @@ void Teachers(Entity* this) { this->spriteSettings.draw = TRUE; this->animationState = this->actionDelay; this->field_0x68.HALF.HI = 0; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); } break; diff --git a/src/npc/townMinish.c b/src/npc/townMinish.c index 5f97093c..cde7c526 100644 --- a/src/npc/townMinish.c +++ b/src/npc/townMinish.c @@ -57,7 +57,7 @@ void sub_0806AC3C(Entity* this) { if (this->animIndex <= 3) { s32 unk; Entity* link = &gPlayerEntity; - if (sub_080041A0(this, link, 0x18, 0x18)) { + if (EntityInRectRadius(this, link, 0x18, 0x18)) { unk = GetFacingDirection(this, link) & 0x1e; } else { unk = this->animationState * 4; diff --git a/src/npc/vaati.c b/src/npc/vaati.c index bae2bdac..751a1be6 100644 --- a/src/npc/vaati.c +++ b/src/npc/vaati.c @@ -27,7 +27,7 @@ void VaatiAction0(Entity* this) { this->spriteSettings.draw = 1; this->field_0x68.HALF.LO = 0; this->field_0x68.HALF.HI = 0; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD64(this); VaatiAction1(this); } diff --git a/src/npc/wheaton.c b/src/npc/wheaton.c index 338ff377..7eafda20 100644 --- a/src/npc/wheaton.c +++ b/src/npc/wheaton.c @@ -9,7 +9,7 @@ void Wheaton(Entity* this) { if (this->action == 0) { this->action++; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); ResolveEntityOnTop(this, this); diff --git a/src/npc/zelda.c b/src/npc/zelda.c index f1da1c47..834679fa 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -23,7 +23,7 @@ void sub_08066CCC(Entity* this) { this->action = 1; this->spriteSettings.draw = 1; PrependEntityToList(this, 7); - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); sub_0807DD50(this); } diff --git a/src/npc/zeldaFollower.c b/src/npc/zeldaFollower.c index 72e650ff..93d1ca3f 100644 --- a/src/npc/zeldaFollower.c +++ b/src/npc/zeldaFollower.c @@ -16,7 +16,7 @@ void ZeldaFollower(Entity* this) { this->animationState = 4; this->field_0x68.HALF.LO = 0; this->field_0x68.HALF.HI = 0; - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); InitAnimationForceUpdate(this, 0); sub_0806854C(this, NULL); } diff --git a/src/object.c b/src/object.c index 18b401c3..1df8d22e 100644 --- a/src/object.c +++ b/src/object.c @@ -10,7 +10,7 @@ void (*const gObjectFunctions[])(Entity*) = { [BUTTON] = Button, [OBJECT_4] = Object4, [POT] = Pot, - [OBJECT_6] = Object6, + [EZLO_CAP] = EzloCap, [PUSHED_BLOCK] = BlockPushed, [LOCKED_DOOR] = LockedDoor, [OBJECT_9] = Object9, diff --git a/src/object/bigVortex.c b/src/object/bigVortex.c index f2743031..5e7f87eb 100644 --- a/src/object/bigVortex.c +++ b/src/object/bigVortex.c @@ -34,7 +34,7 @@ void sub_08098D1C(Entity* this) { this->spriteSettings.draw = TRUE; sub_08098E88(this); } - SetDefaultPriority(this, 6); + SetDefaultPriority(this, PRIO_PLAYER_EVENT); InitAnimationForceUpdate(this, 0); } diff --git a/src/object/book.c b/src/object/book.c index d069a149..3430e4ef 100644 --- a/src/object/book.c +++ b/src/object/book.c @@ -211,7 +211,7 @@ void sub_0809B5EC(Entity* this) { u32 sub_0809B688(Entity* this) { u32 ret; - ret = sub_080041A0(this, &gPlayerEntity, 6, 12); + ret = EntityInRectRadius(this, &gPlayerEntity, 6, 12); if (ret == 1 && gPlayerState.field_0xd != 16) { ret = 0; } diff --git a/src/object/button.c b/src/object/button.c index c1efa9ae..4c026baf 100644 --- a/src/object/button.c +++ b/src/object/button.c @@ -16,7 +16,7 @@ extern u32 sub_08081E3C(Entity*); void sub_08081AE0(Entity* this) { COLLISION_OFF(this); - this->updatePriority = 3; + this->updatePriority = PRIO_NO_BLOCK; this->y.HALF.HI++; if (this->cutsceneBeh.HWORD != 0) { this->collisionLayer = this->cutsceneBeh.HWORD; @@ -158,11 +158,11 @@ Entity* sub_08081D74(Entity* this) { } } else { if (gPlayerState.flags & 0x400000) { - if (sub_080041A0(this, gUnk_03004040[0], 5, 6)) { + if (EntityInRectRadius(this, gUnk_03004040[0], 5, 6)) { ent = gUnk_03004040[0]; - } else if (sub_080041A0(this, gUnk_03004040[1], 5, 6)) { + } else if (EntityInRectRadius(this, gUnk_03004040[1], 5, 6)) { ent = gUnk_03004040[1]; - } else if (sub_080041A0(this, gUnk_03004040[2], 5, 6)) { + } else if (EntityInRectRadius(this, gUnk_03004040[2], 5, 6)) { ent = gUnk_03004040[2]; } } @@ -176,7 +176,7 @@ u32 sub_08081E0C(Entity* this) { if (tmp->z.HALF.HI != 0 || !sub_08079F8C()) { return 0; } else { - return sub_080041A0(this, tmp, 5, 6); + return EntityInRectRadius(this, tmp, 5, 6); } } @@ -234,13 +234,13 @@ u32 sub_08081F00(u32* unk1, u32* unk2) { void sub_08081F24(Entity* this) { Entity* fx = CreateFx(this, FX_DASH, 0x40); if (fx) { - fx->updatePriority = 3; + fx->updatePriority = PRIO_NO_BLOCK; fx->x.HALF.HI += 7; fx->y.HALF.HI += 5; } fx = CreateFx(this, FX_DASH, 0x40); if (fx) { - fx->updatePriority = 3; + fx->updatePriority = PRIO_NO_BLOCK; fx->x.HALF.HI -= 7; fx->y.HALF.HI += 5; } @@ -252,7 +252,7 @@ u32 sub_08081F7C(Entity* this, u32 r7) { return 1; if (--this->actionDelay > 6) { if (this->child) - this->child->spriteOffsetY = 0xfc; + this->child->spriteOffsetY = -4; } else { if (this->actionDelay == 6) { SetFlag(this->field_0x86.HWORD); diff --git a/src/object/cloud.c b/src/object/cloud.c index 8b53e550..d8915514 100644 --- a/src/object/cloud.c +++ b/src/object/cloud.c @@ -120,7 +120,7 @@ void sub_0809F69C(Entity* this) { void sub_0809F6CC(Entity* this) { if (((gRoomControls.unk6 & 4) == 0) && (--this->actionDelay == 0)) { - gPlayerState.field_0x8b = 1; + gPlayerState.controlMode = 1; DeleteThisEntity(); } } diff --git a/src/object/greatFairy.c b/src/object/greatFairy.c index 0aca5575..e5575a47 100644 --- a/src/object/greatFairy.c +++ b/src/object/greatFairy.c @@ -469,7 +469,7 @@ void GreatFairy_InitializeAnimation(Entity* this) { this->type2 = this->type % temp; this->collisionLayer = 2; InitializeAnimation(this, this->type2); - SetDefaultPriority(this, 2); + SetDefaultPriority(this, PRIO_MESSAGE); } Entity* GreatFairy_CreateForm(Entity* this, u32 curForm, u32 parameter) { @@ -516,7 +516,7 @@ void sub_08087424(Entity* this, ScriptExecutionContext* context) { if (ent != NULL) { ent->parent = &gPlayerEntity; CopyPosition(&gPlayerEntity, ent); - SetDefaultPriority(ent, 2); + SetDefaultPriority(ent, PRIO_MESSAGE); } switch (context->intVariable) { diff --git a/src/object/heartContainer.c b/src/object/heartContainer.c index 7664546c..b0fb32e1 100644 --- a/src/object/heartContainer.c +++ b/src/object/heartContainer.c @@ -31,7 +31,7 @@ static void sub_0808E6A0(Entity* this) { this->spriteSettings.draw = 0; this->hitbox = &gUnk_08121C58; this->collisionLayer = 3; - this->updatePriority = 3; + this->updatePriority = PRIO_NO_BLOCK; } static void sub_0808E6E4(Entity* this) { diff --git a/src/object/houseDoorExterior.c b/src/object/houseDoorExterior.c index ae4f133d..b9747788 100644 --- a/src/object/houseDoorExterior.c +++ b/src/object/houseDoorExterior.c @@ -27,7 +27,7 @@ static bool32 sub_080867CC(u32); void sub_0808681C(Entity*); static u8 sub_08086954(Entity*); -extern u32 sub_080562CC(u32, u32, u32, u32); +extern u32 CheckRegionOnScreen(u32, u32, u32, u32); extern void sub_08078AC0(u32, u32, u32); extern void (*const gUnk_081206B4[])(Entity*); @@ -46,14 +46,14 @@ void sub_080866D8(Entity* this) { this->action = 1; *((u32*)(&this->field_0x68)) = 0; this->field_0x6c.HALF.LO = this->actionDelay; - SetDefaultPriority(this, 6); + SetDefaultPriority(this, PRIO_PLAYER_EVENT); } prop = GetCurrentRoomProperty(this->field_0x6c.HALF.LO); for (i = 0; prop->unk0 != 0xFFFF && i < 32; prop++, i++) { int mask = 1 << i; if ((*((u32*)(&this->field_0x68)) & mask) == 0 && sub_080867CC(prop->unk5) && - sub_080562CC(prop->unk0, prop->unk2, 32, 32)) { + CheckRegionOnScreen(prop->unk0, prop->unk2, 32, 32)) { entity = CreateObject(HOUSE_DOOR_EXT, prop->unk7, prop->unk6); if (entity) { entity->field_0x6c.HALF.LO = i; @@ -85,7 +85,7 @@ static bool32 sub_080867CC(u32 arg0) { } void sub_080867E4(Entity* this) { - if (!sub_080562CC(this->field_0x68.HWORD, this->field_0x6a.HWORD, 32, 32)) { + if (!CheckRegionOnScreen(this->field_0x68.HWORD, this->field_0x6a.HWORD, 32, 32)) { *((u32*)(&this->parent->field_0x68)) = *((u32*)(&this->parent->field_0x68)) & ~(1 << this->field_0x6c.HALF.LO); DeleteThisEntity(); } diff --git a/src/object/itemOnGround.c b/src/object/itemOnGround.c index de9e52a0..2c025c77 100644 --- a/src/object/itemOnGround.c +++ b/src/object/itemOnGround.c @@ -120,7 +120,7 @@ void sub_08080F20(Entity* this) { this->field_0x6c.HWORD = 0; this->field_0x68.HALF.LO = 0; this->actionDelay = 0; - SetDefaultPriority(this, 3); + SetDefaultPriority(this, PRIO_NO_BLOCK); this->field_0x1c = sub_0808147C(this->type); gUnk_0811E7E8[this->field_0x68.HALF.HI](this); } else { @@ -338,7 +338,7 @@ void sub_08081404(Entity* this, u32 arg1) { bool32 sub_08081420(Entity* this) { if (CheckShouldPlayItemGetCutscene(this)) { - SetDefaultPriority(this, 6); + SetDefaultPriority(this, PRIO_PLAYER_EVENT); CreateItemEntity(this->type, this->type2, 0); return TRUE; } else { diff --git a/src/object/lilypadSmall.c b/src/object/lilypadSmall.c index b98ff330..ae74c9c8 100644 --- a/src/object/lilypadSmall.c +++ b/src/object/lilypadSmall.c @@ -34,7 +34,7 @@ void LilypadSmall(Entity* this) { u32 sub_08097ADC(Entity* this) { if ((gPlayerState.flags & PL_MINISH) == 0) { return 0; - } else if (sub_080041A0(this, &gPlayerEntity, 8, 8) == 0) { + } else if (EntityInRectRadius(this, &gPlayerEntity, 8, 8) == 0) { return 0; } else if (sub_08079F8C() == 0) { return 0; diff --git a/src/object/minecart.c b/src/object/minecart.c index 002c4946..fe333927 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -94,7 +94,7 @@ void sub_080917DC(Entity* this) { } void sub_080918A4(Entity* this) { - if (sub_080041A0(this, &gPlayerEntity, 2, 2) != 0) { + if (EntityInRectRadius(this, &gPlayerEntity, 2, 2) != 0) { gPlayerEntity.x.HALF.HI = this->x.HALF.HI; gPlayerEntity.y.HALF.HI = this->y.HALF.HI; if (gPlayerEntity.z.HALF.HI > -0x10) { diff --git a/src/object/minishSizedEntrance.c b/src/object/minishSizedEntrance.c index 4d7bc406..9338bca5 100644 --- a/src/object/minishSizedEntrance.c +++ b/src/object/minishSizedEntrance.c @@ -31,7 +31,7 @@ void sub_08090F00(Entity* this) { DeleteThisEntity(); } } - if ((gPlayerState.flags & PL_MINISH) && sub_080041A0(this, &gPlayerEntity, 4, 4) && + if ((gPlayerState.flags & PL_MINISH) && EntityInRectRadius(this, &gPlayerEntity, 4, 4) && (gPlayerEntity.z.HALF.HI == 0) && (((u16)gPlayerState.field_0x90.HALF.LO) & gUnk_0812225C[this->type2])) { DoExitTransition(GetCurrentRoomProperty(this->actionDelay)); } diff --git a/src/object/object1A.c b/src/object/object1A.c index e515a30b..7f76d0f7 100644 --- a/src/object/object1A.c +++ b/src/object/object1A.c @@ -55,6 +55,6 @@ void sub_08086A6C(Entity* ent) { uVar1 = Random(); ent->zVelocity = 163840; - ent->direction = (uVar1 >> 16) & 31; + ent->direction = DirectionNormalize(uVar1 >> 16); ent->speed = uVar1 & 480; } diff --git a/src/object/object86.c b/src/object/object86.c index 6829c813..147e623c 100644 --- a/src/object/object86.c +++ b/src/object/object86.c @@ -56,7 +56,7 @@ void sub_08099E58(Entity* this) { } void sub_08099E8C(Entity* this) { - if (sub_080041A0(this, &gPlayerEntity, 0xc, 0xc)) { + if (EntityInRectRadius(this, &gPlayerEntity, 0xc, 0xc)) { if (this->subAction == 0) { sub_08099ECC(this); RequestPriorityDuration(this, 0x1e); diff --git a/src/object/objectA2.c b/src/object/objectA2.c index de21a664..4bcfa284 100644 --- a/src/object/objectA2.c +++ b/src/object/objectA2.c @@ -40,7 +40,7 @@ void sub_0809F318(Entity* this) { this->spriteOrientation.flipY = 2; this->action = 1; sub_0801D2B4(this, gUnk_08124704[this->type]); - SetDefaultPriority(this, 7); + SetDefaultPriority(this, PRIO_HIGHEST); } void sub_0809F374(Entity* this) { diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index a43d9552..58b2722b 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -41,7 +41,7 @@ void sub_0808B474(Entity* this) { this->palette.b.b0 = tmp; this->spritePriority.b0 = 6; this->hitbox = &gHitbox_1; - this->updatePriority = 3; + this->updatePriority = PRIO_NO_BLOCK; InitializeAnimation(this, 0); if (CheckFlags(this->field_0x86.HWORD)) { sub_0808B830(this); @@ -207,7 +207,7 @@ void sub_0808B73C(Entity* this) { u32 sub_0808B7C8(Entity* this) { if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.field_0xa8 != 0x12 && gPlayerEntity.health != 0 && - sub_08079F8C() && sub_080041A0(this, &gPlayerEntity, 5, 5) && gPlayerEntity.z.HALF.HI == 0) { + sub_08079F8C() && EntityInRectRadius(this, &gPlayerEntity, 5, 5) && gPlayerEntity.z.HALF.HI == 0) { if (this->actionDelay == 0 && gPlayerEntity.action == 0x1b) { sub_080791D0(); } diff --git a/src/overworld.c b/src/overworld.c index c529f530..a61a665f 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -637,7 +637,7 @@ static void HandleRoomEnter(void) { u32 sub_08052B24(void) { s32 tmp = 1; - if (!(gInput.heldKeys & SELECT_BUTTON) || gPlayerState.field_0x8b || gUnk_02034490[0] || gUnk_0200AF00.filler0[1]) + if (!(gInput.heldKeys & SELECT_BUTTON) || gPlayerState.controlMode != CONTROL_ENABLED || gUnk_02034490[0] || gUnk_0200AF00.filler0[1]) return 0; if ((gPlayerState.flags & 0x118) || (gPlayerState.field_0xa9 > tmp) || gPlayerState.field_0x2c || diff --git a/src/player.c b/src/player.c index 78b22379..a31d841c 100644 --- a/src/player.c +++ b/src/player.c @@ -11,18 +11,170 @@ #include "functions.h" #include "object.h" #include "effects.h" +#include "random.h" +#include "hitbox.h" -static void (*const sPlayerActions[])(Entity*); -extern void (*const gUnk_0811BA60[])(Entity*); -extern void (*const gUnk_0811BA68[])(Entity*); -extern void (*const gUnk_0811BA74[])(Entity*); -extern void (*const gUnk_0811BA7C[])(Entity*); -extern void (*const gUnk_0811BA88[])(Entity*); -extern void (*const gUnk_0811BA94[])(Entity*); -extern void (*const gUnk_0811BA9C[])(Entity*); -extern void (*const gUnk_0811BAD4[])(Entity*); -extern void (*const gUnk_0811BAE4[])(Entity*); -extern void (*const gUnk_0811BB3C[])(Entity*); +typedef void(EntityAction)(Entity*); + +static EntityAction* const sPlayerActions[]; + +static EntityAction PlayerInit; +static EntityAction PlayerNormal; +static EntityAction PlayerInit; +static EntityAction PlayerFall; +static EntityAction PlayerJump; +static EntityAction PlayerPush; +static EntityAction PlayerBounce; +static EntityAction sub_08070E9C; +static EntityAction PlayerItemGet; +EntityAction PlayerMinish; +static EntityAction PlayerMinishDie; +static EntityAction sub_08071DB8; +static EntityAction PlayerEmptyBottle; +static EntityAction PlayerFrozen; +static EntityAction sub_0807204C; +static EntityAction sub_080720DC; +static EntityAction PlayerPull; +static EntityAction PlayerLava; +EntityAction PlayerWarp; +static EntityAction sub_08072454; +static EntityAction PlayerDrown; +static EntityAction PlayerUsePortal; +static EntityAction PlayerTalkEzlo; +static EntityAction PlayerRoomTransition; +static EntityAction PlayerRoll; +static EntityAction sub_080728AC; +static EntityAction PlayerInHole; +static EntityAction sub_08072C9C; +EntityAction sub_08074C44; +static EntityAction sub_08072F34; +static EntityAction PlayerUseEntrance; +EntityAction PlayerParachute; + +// PLAYER_FALL +static EntityAction sub_08070C3C; +static EntityAction sub_08070CB4; + +// PLAYER_BOUNCE +static EntityAction sub_08070D38; +static EntityAction sub_08070DC4; +static EntityAction sub_08070E7C; + +// PLAYER_08070E9C +static EntityAction sub_08070EDC; +static EntityAction sub_08070f24; + +// PLAYER_ITEMGET +static EntityAction sub_08070FA4; +static EntityAction sub_08071020; +static EntityAction sub_08071038; + +// PLAYER_JUMP +static EntityAction sub_080710A8; +static EntityAction sub_08071130; +static EntityAction sub_08071208; + +// PLAYER_DROWN +static EntityAction sub_0807127C; +static EntityAction sub_080712F0; + +// PLAYER_USEPORTAL +static EntityAction PortalJumpOnUpdate; +static EntityAction PortalStandUpdate; +static EntityAction PortalActivateInit; +static EntityAction PortalActivateUpdate; +static EntityAction PortalShrinkInit; +static EntityAction PortalShrinkUpdate; +static EntityAction PortalEnterUpdate; +static EntityAction PortalUnknownUpdate; + +// PLAYER_TALKEZLO +static EntityAction sub_080718A0; +static EntityAction sub_0807193C; +static EntityAction sub_08071990; +static EntityAction sub_08071A4C; + +// PLAYER_PUSH +static EntityAction sub_08071AB0; +static EntityAction sub_08071AF0; +static EntityAction sub_08071B60; + +// PLAYER_MINISHDIE +static EntityAction sub_08071BDC; +static EntityAction sub_08071CAC; +static EntityAction sub_08071D04; +static EntityAction sub_08071D80; + +// PLAYER_08071DB8 +static EntityAction sub_08071DD0; +static EntityAction sub_08071E04; +static EntityAction sub_08071E74; + +// PLAYER_EMPTYBOTTLE +static EntityAction sub_08071EB0; +static EntityAction sub_08071F14; + +// PLAYER_FROZEN +static EntityAction sub_08071F50; +static EntityAction sub_08071F80; + +// PLAYER_0807204C +static EntityAction sub_08072064; +static EntityAction sub_08072098; + +// PLAYER_080720DC +static EntityAction sub_08072100; +static EntityAction sub_08072168; + +// PLAYER_PULL +static EntityAction sub_08072214; +static EntityAction sub_08072260; + +// PLAYER_LAVA +static EntityAction sub_080722DC; +static EntityAction sub_08072354; +static EntityAction sub_080723D0; +static EntityAction sub_0807240C; + +// PLAYER_08072454 +static EntityAction sub_0807246C; +static EntityAction sub_08072490; + +// PLAYER_ROOMTRANSITION +static EntityAction sub_080724DC; +static EntityAction sub_0807258C; + +// PLAYER_ROLL +static EntityAction sub_08072650; +static EntityAction sub_080726F4; + +// PLAYER_INHOLE +static EntityAction sub_08072970; +static EntityAction sub_08072A60; +static EntityAction sub_08072ACC; +static EntityAction sub_08072B5C; +static EntityAction sub_08072C48; + +// PLAYER_08072C9C +static EntityAction sub_08072CC0; +static EntityAction sub_08072CFC; +static EntityAction sub_08072D54; +static EntityAction sub_08072F14; + +// PLAYER_08072F34 +static EntityAction sub_08072F94; +static EntityAction sub_08073094; + +// PLAYER_USEENTRANCE +EntityAction sub_080731D8; +EntityAction sub_080732D0; +EntityAction sub_0807332C; +EntityAction sub_080733BC; + +static void sub_080717F8(Entity*); +static void ResetPlayerPriority(); +static void sub_080728AC(Entity*); +static void BreakOut(); extern void RespawnPlayer(); extern void sub_080797EC(); @@ -30,63 +182,73 @@ extern void sub_08079E08(); extern void sub_08078F60(); extern void sub_0806F948(); extern void sub_08077698(); -extern void SetPlayerEventPriority(); -extern void sub_080717F8(); -extern void ResetPlayerEventPriority(); -extern void sub_08071A6C(); extern void DisplayEzloMessage(); extern void sub_08079258(); -extern void sub_08071AF0(); -extern void sub_080728AC(); extern void sub_0807A298(); extern u32 sub_08079B24(); extern void sub_08079708(); extern void sub_080792D8(); extern Entity* CreatePlayerBomb(); -extern void sub_08072008(); extern void sub_080791BC(); -extern void sub_08072168(); extern u32 sub_0806F854(); extern u32 sub_08019840(); -extern void sub_08072260(); extern void sub_08079744(); extern void sub_0807AE20(); extern u32 sub_0807A894(); extern u32 sub_080797C4(); -extern u32 Random(); extern u32 sub_0807AC54(); extern void sub_0800892E(); extern void sub_08078F24(); extern void sub_0807B068(); extern u32 sub_080001DA(); -extern void sub_08072A60(); extern u32 sub_0807A2F8(); extern u32 CheckIsOverworld(); extern u32 sub_0806F730(); extern u32 sub_08007DD6(); extern u32 GetSurfaceCalcType(); -extern void sub_08073094(); extern void sub_08074808(); -extern void RequestPriorityDuration(); -typedef struct { - u8 frame; - u8 dummy; - u16 speed; -} PushFrames; - -extern PushFrames gUnk_0811BAF0[]; - -extern Hitbox gUnk_08114F88; extern ScreenTransitionData gUnk_0813AB58; void DoPlayerAction(Entity* this) { + static void (*const sPlayerActions[])(Entity*) = { + [PLAYER_INIT] = PlayerInit, + [PLAYER_NORMAL] = PlayerNormal, + [PLAYER_DUMMY] = PlayerInit, + [PLAYER_FALL] = PlayerFall, + [PLAYER_JUMP] = PlayerJump, + [PLAYER_PUSH] = PlayerPush, + [PLAYER_BOUNCE] = PlayerBounce, + [PLAYER_08070E9C] = sub_08070E9C, + [PLAYER_ITEMGET] = PlayerItemGet, + [PLAYER_MINISH] = PlayerMinish, + [PLAYER_MINISHDIE] = PlayerMinishDie, + [PLAYER_08071DB8] = sub_08071DB8, + [PLAYER_EMPTYBOTTLE] = PlayerEmptyBottle, + [PLAYER_FROZEN] = PlayerFrozen, + [PLAYER_0807204C] = sub_0807204C, + [PLAYER_080720DC] = sub_080720DC, + [PLAYER_PULL] = PlayerPull, + [PLAYER_LAVA] = PlayerLava, + [PLAYER_WARP] = PlayerWarp, + [PLAYER_08072454] = sub_08072454, + [PLAYER_DROWN] = PlayerDrown, + [PLAYER_USEPORTAL] = PlayerUsePortal, + [PLAYER_TALKEZLO] = PlayerTalkEzlo, + [PLAYER_ROOMTRANSITION] = PlayerRoomTransition, + [PLAYER_ROLL] = PlayerRoll, + [PLAYER_080728AC] = sub_080728AC, + [PLAYER_INHOLE] = PlayerInHole, + [PLAYER_08072C9C] = sub_08072C9C, + [PLAYER_08074C44] = sub_08074C44, + [PLAYER_08072F34] = sub_08072F34, + [PLAYER_USEENTRANCE] = PlayerUseEntrance, + [PLAYER_PARACHUTE] = PlayerParachute, + }; sPlayerActions[this->action](this); } -void PlayerInit(Entity* this) { - Entity* ent; - +static void PlayerInit(Entity* this) { gPlayerState.field_0x0[0] = 0xff; gPlayerState.startPosX = gPlayerEntity.x.HALF.HI; gPlayerState.startPosY = gPlayerEntity.y.HALF.HI; @@ -97,10 +259,10 @@ void PlayerInit(Entity* this) { this->field_0x16 = 0x20; this->flags2 = 8; this->hitType = 0x79; - this->hitbox = &gUnk_08114F88; + this->hitbox = (Hitbox*)&gPlayerHitbox; this->spriteIndex = 1; #ifndef EU - gPlayerState.field_0x8 = 0x100; + gPlayerState.animation = 0x100; #endif sub_0806FDA0(this); LoadSwapGFX(this, 1, 2); @@ -119,6 +281,7 @@ void PlayerInit(Entity* this) { sub_0807921C(); sub_0807A1B8(); if (gPlayerState.swimState != 0) { + Entity* ent; gPlayerState.swimState = 1; sub_08079938(); gPlayerState.field_0xa8 = 7; @@ -132,9 +295,9 @@ void PlayerInit(Entity* this) { } // PlayerState.flags need to be 100% before this one can reasonably be done -ASM_FUNC("asm/non_matching/player/PlayerNormal.inc", void PlayerNormal(Entity* this)) +static ASM_FUNC("asm/non_matching/player/PlayerNormal.inc", void PlayerNormal(Entity* this)); -void sub_08070BEC(Entity* this, u32 r0) { +static void sub_08070BEC(Entity* this, u32 r0) { if (r0 & 1) sub_080797EC(); else @@ -144,28 +307,33 @@ void sub_08070BEC(Entity* this, u32 r0) { sub_08079E08(); } -void PlayerFall(Entity* this) { +static void PlayerFall(Entity* this) { + static EntityAction* const sPlayerFallStates[] = { + sub_08070C3C, + sub_08070CB4, + }; + gPlayerState.field_0xd = 0xFF; gPlayerState.pushedObject = 0x80; gPlayerState.field_0xa8 = 10; - gUnk_0811BA60[this->subAction](this); + sPlayerFallStates[this->subAction](this); } -void sub_08070C3C(Entity* this) { +static void sub_08070C3C(Entity* this) { sub_08004168(this); - gPlayerState.flags |= 0x1 | 0x4; - gPlayerState.flags &= ~0x400; + gPlayerState.flags |= PL_BUSY | PL_DROWNING; + gPlayerState.flags &= ~PL_BURNING; gPlayerState.jumpStatus = 0; if ((gPlayerState.flags & PL_MINISH) != 0) - gPlayerState.field_0x8 = 0x1ba; + gPlayerState.animation = 0x1ba; else if ((gPlayerState.flags & 8) != 0) - gPlayerState.field_0x8 = 0x458; + gPlayerState.animation = 0x458; else - gPlayerState.field_0x8 = 0x1b8; + gPlayerState.animation = 0x1b8; this->subAction++; COLLISION_OFF(this); @@ -176,14 +344,14 @@ void sub_08070C3C(Entity* this) { SoundReq(SFX_FALL_HOLE); } -void sub_08070CB4(Entity* this) { +static void sub_08070CB4(Entity* this) { UpdateAnimationSingleFrame(this); if ((this->frame & 0x80) != 0) { if ((gSave.stats.health != 0) && ((gPlayerState.flags & 0x8000) != 0)) { - gPlayerState.flags &= ~(0x1 | 0x4); + gPlayerState.flags &= ~(PL_BUSY | PL_DROWNING); this->spriteSettings.draw = 0; } else { - gPlayerState.flags &= ~(0x4 | 0x8000); + gPlayerState.flags &= ~(PL_DROWNING | 0x8000); RespawnPlayer(); gPlayerState.field_0xa = 0; this->iframes = 32; @@ -192,13 +360,18 @@ void sub_08070CB4(Entity* this) { } } -void PlayerBounce(Entity* this) { - gUnk_0811BA68[this->subAction](this); +static void PlayerBounce(Entity* this) { + static EntityAction* const sPlayerBounceStates[] = { + sub_08070D38, + sub_08070DC4, + sub_08070E7C, + }; + sPlayerBounceStates[this->subAction](this); } -void sub_08070D38(Entity* this) { +static void sub_08070D38(Entity* this) { COLLISION_OFF(this); - this->direction = ((this->animationState & 0xe) << 2) ^ 0x10; + this->direction = DirectionTurnAround(Direction8FromAnimationState(AnimationStateWalk(this->animationState))); this->speed = 0x100; this->knockbackDuration = 0; this->subAction++; @@ -207,10 +380,10 @@ void sub_08070D38(Entity* this) { if ((gPlayerState.flags & PL_MINISH) == 0) { this->zVelocity = 0x20000; - gPlayerState.field_0x8 = 0x114; + gPlayerState.animation = 0x114; sub_08080964(16, 0); } else { - gPlayerState.field_0x8 = 0xc18; + gPlayerState.animation = 0xc18; this->zVelocity = 0x18000; } @@ -221,7 +394,7 @@ void sub_08070D38(Entity* this) { } // minor regalloc -NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void sub_08070DC4(Entity* this)) { +static NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void sub_08070DC4(Entity* this)) { UpdateAnimationSingleFrame(this); sub_080085B0(this); sub_08079E08(); @@ -260,20 +433,23 @@ NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void sub_08070DC4(Entity* t this->subAction++; if ((gPlayerState.flags & PL_MINISH) == 0) - gPlayerState.field_0x8 = 0x100; + gPlayerState.animation = 0x100; } END_NONMATCH -void sub_08070E7C(Entity* this) { - u8 timer = --this->actionDelay; - - if (timer == 0) { - gPlayerState.jumpStatus = timer; +static void sub_08070E7C(Entity* this) { + if (--this->actionDelay == 0) { + gPlayerState.jumpStatus = 0; sub_080791D0(); } } -void sub_08070E9C(Entity* this) { +static void sub_08070E9C(Entity* this) { + static EntityAction* const gUnk_0811BA74[] = { + sub_08070EDC, + sub_08070f24, + }; + if (sub_08078EFC() != 0) { MessageClose(); } else { @@ -284,8 +460,8 @@ void sub_08070E9C(Entity* this) { } } -void sub_08070EDC(Entity* this) { - this->updatePriority = 2; +static void sub_08070EDC(Entity* this) { + this->updatePriority = PRIO_MESSAGE; if ((gMessage.doTextBox & 0x7f) != 0) this->subAction = 1; @@ -293,10 +469,10 @@ void sub_08070EDC(Entity* this) { if ((gPlayerState.flags & PL_MINISH) == 0) sub_08079938(); else - gPlayerState.field_0x8 = 0xc18; + gPlayerState.animation = 0xc18; } -void sub_08070f24(Entity* this) { +static void sub_08070f24(Entity* this) { UpdateAnimationSingleFrame(this); if ((gMessage.doTextBox & 0x7f) == 0) { this->updatePriority = this->updatePriorityPrev; @@ -304,47 +480,52 @@ void sub_08070f24(Entity* this) { } } -void PlayerItemGet(Entity* this) { +static void PlayerItemGet(Entity* this) { + static EntityAction* const sPlayerItemGetStates[] = { + sub_08070FA4, + sub_08071020, + sub_08071038, + }; + Entity* child; - u8* temp; // todo: retype + u8* temp; gPlayerState.field_0xa8 = 0x15; COLLISION_OFF(this); - gUnk_0811BA7C[this->subAction](this); + sPlayerItemGetStates[this->subAction](this); child = this->child; if (child != NULL) { PositionEntityOnTop(this, child); temp = GetSpriteSubEntryOffsetDataPointer((u16)this->spriteIndex, this->frameIndex); - child->spriteOffsetX = *temp; + child->spriteOffsetX = temp[0]; child->spriteOffsetY = temp[1]; } } -void sub_08070FA4(Entity* this) { - u16 temp; - +static void sub_08070FA4(Entity* this) { this->spriteSettings.flipX = FALSE; - this->animationState = 4; + this->animationState = IdleSouth; - gPlayerState.flags |= 1; + gPlayerState.flags |= PL_BUSY; gPlayerState.jumpStatus = 0; if ((gPlayerState.flags & PL_MINISH) == 0) { - if (gPlayerState.flags & 0x8) { + u32 anim; + if (gPlayerState.flags & PL_NO_CAP) { if (sub_080542AC(gPlayerState.field_0x38)) { - temp = 0x45e; + anim = 0x45e; } else { - temp = 0x45b; + anim = 0x45b; } } else { if (sub_080542AC(gPlayerState.field_0x38)) { - temp = 0x2e0; + anim = 0x2e0; } else { - temp = 0x1b9; + anim = 0x1b9; } } - gPlayerState.field_0x8 = temp; + gPlayerState.animation = anim; } this->subAction = 1; @@ -352,21 +533,20 @@ void sub_08070FA4(Entity* this) { sub_08078F60(); } -void sub_08071020(Entity* this) { +static void sub_08071020(Entity* this) { UpdateAnimationSingleFrame(this); if (this->frame != 0) this->subAction = 2; } -void sub_08071038(Entity* this) { - +static void sub_08071038(Entity* this) { UpdateAnimationSingleFrame(this); if (sub_08078EFC() || (gMessage.doTextBox & 0x7f)) return; if (this->frame & 0x80) { - this->child = 0; + this->child = NULL; this->knockbackDuration = 0; this->iframes = 248; gPlayerState.jumpStatus = 0; @@ -374,18 +554,24 @@ void sub_08071038(Entity* this) { } } -void PlayerJump(Entity* this) { +static void PlayerJump(Entity* this) { + static EntityAction* const sPlayerJumpStates[] = { + sub_080710A8, + sub_08071130, + sub_08071208, + }; + gPlayerState.field_0xa8 = 0xb; - gUnk_0811BA88[this->subAction](this); + sPlayerJumpStates[this->subAction](this); } -void sub_080710A8(Entity* this) { +static void sub_080710A8(Entity* this) { u32 temp; this->subAction++; - gPlayerState.flags |= 1; - gPlayerState.flags &= ~(0x400 | 0x800); + gPlayerState.flags |= PL_BUSY; + gPlayerState.flags &= ~(PL_BURNING | 0x800); gPlayerState.playerAction = 0; @@ -393,16 +579,16 @@ void sub_080710A8(Entity* this) { if ((gPlayerState.flags & PL_MINISH) == 0) { ResetPlayer(); - if ((gPlayerState.flags & 0x8) != 0) { - gPlayerState.field_0x8 = 0x420; + if (gPlayerState.flags & PL_NO_CAP) { + gPlayerState.animation = 0x420; } else { - gPlayerState.field_0x8 = 0x810; + gPlayerState.animation = 0x810; } } } gPlayerState.field_0x1d[1] = 0; - this->direction = ((this->animationState & 0xe) << 2); + this->direction = Direction8FromAnimationState(AnimationStateWalk(this->animationState)); temp = sub_08079FC4(1); asm("lsl r0, r0, #0x4"); @@ -414,7 +600,7 @@ void sub_080710A8(Entity* this) { SoundReq(SFX_PLY_VO4); } -void sub_08071130(Entity* this) { +static void sub_08071130(Entity* this) { if (sub_08078EFC(this)) return; @@ -456,10 +642,10 @@ void sub_08071130(Entity* this) { this->actionDelay = 6; if (((gPlayerState.heldObject | gPlayerState.keepFacing) == 0) && ((gPlayerState.flags & PL_MINISH) == 0)) { - if (gPlayerState.flags & 0x8) { - gPlayerState.field_0x8 = 0x424; + if (gPlayerState.flags & PL_NO_CAP) { + gPlayerState.animation = 0x424; } else { - gPlayerState.field_0x8 = 0x820; + gPlayerState.animation = 0x820; } this->animIndex = 0xff; } @@ -470,7 +656,7 @@ void sub_08071130(Entity* this) { SoundReq(SFX_PLY_LAND); } -void sub_08071208(Entity* this) { +static void sub_08071208(Entity* this) { if ((gPlayerState.heldObject | gPlayerState.keepFacing) == 0) { if ((gPlayerState.flags & PL_MINISH) == 0) { UpdateAnimationSingleFrame(this); @@ -483,20 +669,25 @@ void sub_08071208(Entity* this) { } } -void PlayerDrown(Entity* this) { +static void PlayerDrown(Entity* this) { + static EntityAction* const sPlayerDrownStates[] = { + sub_0807127C, + sub_080712F0, + }; + gPlayerState.field_0xa8 = 0x16; - gPlayerState.flags |= 4; + gPlayerState.flags |= PL_DROWNING; COLLISION_OFF(this); - gUnk_0811BA94[this->subAction](this); + sPlayerDrownStates[this->subAction](this); } -void sub_0807127C(Entity* this) { +static void sub_0807127C(Entity* this) { this->subAction = 1; this->spritePriority.b1 = 0; if (gPlayerState.flags & PL_MINISH) { this->actionDelay = 0x3c; - gPlayerState.field_0x8 = 0xc19; + gPlayerState.animation = 0xc19; SoundReq(SFX_WATER_SPLASH); } else { if ((gPlayerState.flags & 0x10000) == 0) @@ -504,15 +695,15 @@ void sub_0807127C(Entity* this) { CreateFx(this, FX_WATER_SPLASH, 0); - if ((gPlayerState.flags & 8) == 0) - gPlayerState.field_0x8 = 0x72c; + if ((gPlayerState.flags & PL_NO_CAP) == 0) + gPlayerState.animation = 0x72c; else - gPlayerState.field_0x8 = 0x44c; + gPlayerState.animation = 0x44c; } ResetPlayer(); } -void sub_080712F0(Entity* this) { +static void sub_080712F0(Entity* this) { u32 temp; UpdateAnimationSingleFrame(this); @@ -524,7 +715,7 @@ void sub_080712F0(Entity* this) { temp = TRUE; } else if ((this->frame & 0x80) != 0) { if (this->animIndex != 0xce) - gPlayerState.field_0x8 = 0x2ce; + gPlayerState.animation = 0x2ce; else temp = TRUE; } @@ -541,17 +732,22 @@ void sub_080712F0(Entity* this) { } static void PlayerUsePortal(Entity* this) { + static EntityAction* const sPlayerUsePortalStates[] = { + PortalJumpOnUpdate, PortalStandUpdate, PortalActivateInit, PortalActivateUpdate, + PortalShrinkInit, PortalShrinkUpdate, PortalEnterUpdate, PortalUnknownUpdate, + }; + gPlayerState.field_0xa8 = 0xe; - gUnk_0811BA9C[this->subAction](this); + sPlayerUsePortalStates[this->subAction](this); // probably a switch if ((this->subAction == 7) || (this->subAction < 3)) return; - if ((gPlayerState.flags & 0x20) == 0) + if ((gPlayerState.flags & PL_USE_PORTAL) == 0) return; - if ((gInput.newKeys & (0x100 | 0x2)) == 0) + if ((gInput.newKeys & (B_BUTTON | R_BUTTON)) == 0) return; if (CheckIsDungeon() || gArea.curPortalType == 3) { @@ -564,7 +760,7 @@ static void PlayerUsePortal(Entity* this) { } } -void PortalJumpOnUpdate(Entity* this) { +static void PortalJumpOnUpdate(Entity* this) { u16 x; u16 y; @@ -584,12 +780,12 @@ void PortalJumpOnUpdate(Entity* this) { UpdateAnimationSingleFrame(this); if (gPlayerState.jumpStatus == 0) { - gPlayerState.flags |= 0x20; + gPlayerState.flags |= PL_USE_PORTAL; this->subAction = 1; - this->animationState = 4; + this->animationState = IdleSouth; this->spriteSettings.flipX = FALSE; if (gArea.curPortalType == 4) { - gPlayerState.field_0x8 = 0x52c; + gPlayerState.animation = 0x52c; } } @@ -600,7 +796,7 @@ void PortalJumpOnUpdate(Entity* this) { } } -void PortalStandUpdate(Entity* this) { +static void PortalStandUpdate(Entity* this) { switch (gArea.curPortalType) { case 4: case 5: @@ -614,14 +810,14 @@ void PortalStandUpdate(Entity* this) { } if (--this->actionDelay == 0xff) { this->direction = gPlayerState.field_0xd; - this->animationState = this->direction >> 2; + this->animationState = Direction8ToAnimationState(this->direction); this->zVelocity = 0x20000; this->speed = 256; this->action = 9; this->subAction = 7; this->field_0xf = 0; - gPlayerState.field_0x8 = (gPlayerState.flags & 8) ? 0x41C : 0x80C; - gPlayerState.flags &= ~0x20; + gPlayerState.animation = (gPlayerState.flags & PL_NO_CAP) ? 0x41C : 0x80C; + gPlayerState.flags &= ~PL_USE_PORTAL; return; } this->direction = gPlayerState.field_0xd; @@ -640,18 +836,18 @@ void PortalStandUpdate(Entity* this) { sub_08079938(); } -void PortalActivateInit(Entity* this) { +static void PortalActivateInit(Entity* this) { gRoomControls.cameraTarget = NULL; gUnk_02034490[0] = 1; this->subAction = 3; this->field_0xf = 0x1e; - gPlayerState.field_0x8 = 0x738; - CreateObjectWithParent(this, OBJECT_6, 1, 0); + gPlayerState.animation = 0x738; + CreateObjectWithParent(this, EZLO_CAP, 1, 0); sub_08077B20(); SetPlayerEventPriority(); } -void PortalActivateUpdate(Entity* this) { +static void PortalActivateUpdate(Entity* this) { if (this->field_0xf) return; @@ -661,7 +857,7 @@ void PortalActivateUpdate(Entity* this) { this->subAction = 4; } -void PortalShrinkInit(Entity* this) { +static void PortalShrinkInit(Entity* this) { this->subAction = 5; this->spritePriority.b1 = 0; this->field_0xf = 0; @@ -669,15 +865,19 @@ void PortalShrinkInit(Entity* this) { *(u32*)&this->field_0x80.HWORD = 0x100; *(u32*)&this->cutsceneBeh = 0x100; sub_0805EC9C(this, 0x100, 0x100, 0); - gPlayerState.field_0x8 = 0x2c3; + gPlayerState.animation = 0x2c3; gPlayerState.flags |= 0x80; SoundReq(SFX_PLY_SHRINKING); } -// horrible -ASM_FUNC("asm/non_matching/player/PortalShrinkUpdate.inc", void PortalShrinkUpdate(Entity* this)) +static const u8 gUnk_0811BABC[] = { + 1, 1, 1, 1, 2, 4, 8, 16, +}; -void PortalEnterUpdate(Entity* this) { +// horrible +static ASM_FUNC("asm/non_matching/player/PortalShrinkUpdate.inc", void PortalShrinkUpdate(Entity* this)); + +static void PortalEnterUpdate(Entity* this) { if (this->actionDelay == 0) { if (sub_08003FC4(this, 0x2000)) return; @@ -699,7 +899,7 @@ void PortalEnterUpdate(Entity* this) { this->actionDelay--; } -void PortalUnknownUpdate(Entity* this) { +static void PortalUnknownUpdate(Entity* this) { if (gFadeControl.active) return; @@ -712,40 +912,49 @@ void PortalUnknownUpdate(Entity* this) { sub_080500F4(0x10); } -extern s16 gUnk_0811BAC4[]; +static void sub_080717F8(Entity* this) { + static const s16 sOffsets[] = { + 0, -22, 22, 0, 0, 22, -22, 0, + }; -void sub_080717F8(Entity* this) { u32 x; u32 y; this->animationState = gArea.curPortalExitDirection << 1; - this->x.HALF.HI = gArea.curPortalX + gUnk_0811BAC4[gArea.curPortalExitDirection * 2]; - this->y.HALF.HI = gArea.curPortalY + gUnk_0811BAC4[gArea.curPortalExitDirection * 2 + 1]; + this->x.HALF.HI = gArea.curPortalX + sOffsets[gArea.curPortalExitDirection * 2]; + this->y.HALF.HI = gArea.curPortalY + sOffsets[gArea.curPortalExitDirection * 2 + 1]; gArea.unk1A = 0xb4; gUnk_02034490[0] = 0; this->action = 9; this->subAction = 0; - gPlayerState.flags = (gPlayerState.flags & ~0x20) | 0x80; + gPlayerState.flags = (gPlayerState.flags & ~PL_USE_PORTAL) | 0x80; sub_0805EC60(this); ResetPlayerEventPriority(); } -void PlayerTalkEzlo(Entity* this) { +static void PlayerTalkEzlo(Entity* this) { + static EntityAction* const sPlayerTalkEzloStates[] = { + sub_080718A0, + sub_0807193C, + sub_08071990, + sub_08071A4C, + }; + if (sub_08078EFC()) { MessageClose(); - sub_08071A6C(); + ResetPlayerPriority(); } else { gPlayerState.field_0xa8 = 0x13; COLLISION_OFF(this); - gUnk_0811BAD4[this->subAction](this); + sPlayerTalkEzloStates[this->subAction](this); } } -void sub_080718A0(Entity* this) { +static void sub_080718A0(Entity* this) { ResetPlayer(); gUnk_03000B80.filler[0x63] = 0; this->iframes = 0; - gPriorityHandler.sys_priority = 6; - this->updatePriority = 6; + gPriorityHandler.sys_priority = PRIO_PLAYER_EVENT; + this->updatePriority = PRIO_PLAYER_EVENT; if (gPlayerState.flags & PL_MINISH) { this->subAction = 2; @@ -757,10 +966,10 @@ void sub_080718A0(Entity* this) { if (gPlayerState.jumpStatus == 0) { this->subAction++; - if (this->animationState == 2) - gPlayerState.field_0x8 = 0x3ca; + if (this->animationState == IdleEast) + gPlayerState.animation = 0x3ca; else - gPlayerState.field_0x8 = 0x3c6; + gPlayerState.animation = 0x3c6; this->spriteSettings.flipX = 0; return; @@ -770,37 +979,37 @@ void sub_080718A0(Entity* this) { gPlayerState.jumpStatus = 0; } -void sub_0807193C(Entity* this) { +static void sub_0807193C(Entity* this) { Entity* child; UpdateAnimationSingleFrame(this); if (this->frame & 0x80) { this->subAction++; - child = CreateObjectWithParent(this, OBJECT_6, 0, 0); + child = CreateObjectWithParent(this, EZLO_CAP, 0, 0); this->child = child; if (child != NULL) { - if (this->animationState == 2) - gPlayerState.field_0x8 = 0x3cc; + if (this->animationState == IdleEast) + gPlayerState.animation = 0x3cc; else - gPlayerState.field_0x8 = 0x3c7; + gPlayerState.animation = 0x3c7; DisplayEzloMessage(); } } } -void sub_08071990(Entity* this) { +static void sub_08071990(Entity* this) { u32 temp; if ((gMessage.doTextBox & 0x7f) == 0) { this->subAction++; if ((gPlayerState.flags & PL_MINISH) == 0) { - if (this->animationState == 2) - gPlayerState.field_0x8 = 0x3cd; + if (this->animationState == IdleEast) + gPlayerState.animation = 0x3cd; else - gPlayerState.field_0x8 = 0x3c9; + gPlayerState.animation = 0x3c9; } else { - sub_08071A6C(); + ResetPlayerPriority(); sub_08079258(); } return; @@ -809,48 +1018,54 @@ void sub_08071990(Entity* this) { if (gPlayerState.flags & PL_MINISH) return; - if (this->animationState == 2) + if (this->animationState == IdleEast) temp = 4; else temp = 0; if (this->child->actionDelay != 0) { if ((u8)(temp + 200) != this->animIndex) { - gPlayerState.field_0x8 = temp + 0x3c8; + gPlayerState.animation = temp + 0x3c8; return; } } else { if ((u8)(temp + 199) != this->animIndex) { - gPlayerState.field_0x8 = temp + 0x3c7; + gPlayerState.animation = temp + 0x3c7; return; } } UpdateAnimationSingleFrame(this); } -void sub_08071A4C(Entity* this) { +static void sub_08071A4C(Entity* this) { UpdateAnimationSingleFrame(this); if (this->frame & 0x80) { - sub_08071A6C(); + ResetPlayerPriority(); sub_0807921C(); } } -void sub_08071A6C(void) { +static void ResetPlayerPriority(void) { gPriorityHandler.sys_priority = 0; gPlayerEntity.updatePriority = gPlayerEntity.updatePriorityPrev; } -void PlayerPush(Entity* this) { +static void PlayerPush(Entity* this) { + static EntityAction* const sPlayerPushStates[] = { + sub_08071AB0, + sub_08071AF0, + sub_08071B60, + }; + gPlayerState.field_0xa8 = 0x19; - gUnk_0811BAE4[this->subAction](this); + sPlayerPushStates[this->subAction](this); } -void sub_08071AB0(Entity* this) { +static void sub_08071AB0(Entity* this) { u32 speed; this->subAction++; - gPlayerState.flags |= 1; + gPlayerState.flags |= PL_BUSY; if (this->type == 1) { this->speed = 0; this->actionDelay = 0; @@ -861,14 +1076,23 @@ void sub_08071AB0(Entity* this) { sub_08071AF0(this); } -void sub_08071AF0(Entity* this) { +static void sub_08071AF0(Entity* this) { + typedef struct { + u8 frame; + u16 speed; + } PushFrame; + + static const PushFrame sPushFrames[] = { { 5, 0x0 }, { 1, 0x100 }, { 5, 0x0 }, { 1, 0x100 }, { 2, 0x0 }, + { 1, 0x100 }, { 2, 0x0 }, { 1, 0x100 }, { 3, 0x0 }, { 1, 0x100 }, + { 8, 0x60 }, { 8, 0x60 }, { 8, 0x60 }, { 8, 0x40 }, { 0xFF, 0x0 } }; + gPlayerState.field_0x80 = 0; UpdateAnimationSingleFrame(this); if (this->type == 1) { if (--this->field_0xf == 0) { - if (gUnk_0811BAF0[this->actionDelay].frame != 0xff) { - this->field_0xf = gUnk_0811BAF0[this->actionDelay].frame; - this->speed = gUnk_0811BAF0[this->actionDelay].speed; + if (sPushFrames[this->actionDelay].frame != 0xff) { + this->field_0xf = sPushFrames[this->actionDelay].frame; + this->speed = sPushFrames[this->actionDelay].speed; this->actionDelay++; } else { this->subAction++; @@ -884,7 +1108,7 @@ void sub_08071AF0(Entity* this) { sub_08079E08(); } -void sub_08071B60(Entity* this) { +static void sub_08071B60(Entity* this) { gPlayerState.pushedObject = 2; gPlayerState.flags &= ~0x1; this->type = 0; @@ -892,31 +1116,36 @@ void sub_08071B60(Entity* this) { sub_080728AC(this); this->field_0xf = 6; if ((gPlayerState.flags & PL_MINISH) == 0) { - gPlayerState.field_0x8 = 0x104; + gPlayerState.animation = 0x104; this->spriteIndex = 3; InitAnimationForceUpdate(this, (this->animationState >> 1) + 0x3c); } } -extern void (*const gUnk_0811BB2C[])(Entity*); +static void PlayerMinishDie(Entity* this) { + static EntityAction* const sPlayerMinishDieStates[] = { + sub_08071BDC, + sub_08071CAC, + sub_08071D04, + sub_08071D80, + }; -void PlayerMinishDie(Entity* this) { COLLISION_OFF(this); - gUnk_0811BB2C[this->subAction](this); + sPlayerMinishDieStates[this->subAction](this); gPlayerState.field_0xa8 = 0x12; } -void sub_08071BDC(Entity* this) { +static void sub_08071BDC(Entity* this) { u32 temp; if (gPlayerState.flags & (0x10 | 0x100)) return; if (sub_08003FC4(this, 0x2000)) { - if ((gPlayerState.flags & 8) != 0) - gPlayerState.field_0x8 = 0x420; + if (gPlayerState.flags & PL_NO_CAP) + gPlayerState.animation = 0x420; else - gPlayerState.field_0x8 = 0x810; + gPlayerState.animation = 0x810; return; } @@ -931,11 +1160,11 @@ void sub_08071BDC(Entity* this) { } else { temp = (gPlayerState.flags & 8) ? 0x459 : 0x1bc; } - gPlayerState.field_0x8 = temp; + gPlayerState.animation = temp; - gPlayerState.flags &= ~(0x1000000 | 0x200000 | 0x40000 | 0x800 | 0x400 | 0x100 | 0x1); + gPlayerState.flags &= ~(0x1000000 | 0x200000 | 0x40000 | 0x800 | 0x400 | 0x100 | PL_BUSY); this->subAction = 1; - this->animationState = 4; + this->animationState = IdleSouth; this->spritePriority.b1 = 1; this->spriteSettings.draw = 3; gPlayerState.jumpStatus = 0; @@ -945,7 +1174,7 @@ void sub_08071BDC(Entity* this) { SoundReq(SFX_PLY_DIE); } -void sub_08071CAC(Entity* this) { +static void sub_08071CAC(Entity* this) { UpdateAnimationSingleFrame(this); if (this->frame & 0x80) { u32 temp; @@ -953,7 +1182,7 @@ void sub_08071CAC(Entity* this) { temp = (gPlayerState.flags & 8) ? 0x45a : 0x2bd; else temp = 0xc1b; - gPlayerState.field_0x8 = temp; + gPlayerState.animation = temp; this->subAction = 2; this->actionDelay = 0xf0; @@ -961,7 +1190,7 @@ void sub_08071CAC(Entity* this) { } } -void sub_08071D04(Entity* this) { +static void sub_08071D04(Entity* this) { int idx; int deltaHealth; @@ -992,7 +1221,7 @@ void sub_08071D04(Entity* this) { gScreenTransition.field_0x4[1] = 1; } -void sub_08071D80(Entity* this) { +static void sub_08071D80(Entity* this) { UpdateAnimationSingleFrame(this); gPlayerState.field_0x14 = 1; sub_08073904(this); @@ -1004,23 +1233,29 @@ void sub_08071D80(Entity* this) { } } -void sub_08071DB8(Entity* this) { +static void sub_08071DB8(Entity* this) { + static EntityAction* const gUnk_0811BB3C[] = { + sub_08071DD0, + sub_08071E04, + sub_08071E74, + }; + gUnk_0811BB3C[this->subAction](this); } -void sub_08071DD0(Entity* this) { +static void sub_08071DD0(Entity* this) { this->actionDelay = gPlayerState.field_0x38; if (gPlayerState.field_0x39 != 0) { gPlayerState.field_0x39 = 0; this->subAction = 2; - gPlayerState.field_0x8 = 0x100; + gPlayerState.animation = 0x100; } else { this->subAction = 1; - gPlayerState.field_0x8 = 0x114; + gPlayerState.animation = 0x114; } } -void sub_08071E04(Entity* this) { +static void sub_08071E04(Entity* this) { if ((this->z.WORD != 0) && (gPlayerState.field_0x14 == '\0')) { sub_0807A1B8(); if (gPlayerState.field_0x10[2] == 1) { @@ -1047,7 +1282,7 @@ void sub_08071E04(Entity* this) { sub_080791BC(); } -void sub_08071E74(Entity* this) { +static void sub_08071E74(Entity* this) { u32 temp; sub_08003FC4(this, 0x2000); @@ -1057,13 +1292,16 @@ void sub_08071E74(Entity* this) { sub_080791BC(); } -extern void (*const gUnk_0811BB48[])(Entity*); +static void PlayerEmptyBottle(Entity* this) { + static EntityAction* const sPlayerEmptyBottleStates[] = { + sub_08071EB0, + sub_08071F14, + }; -void PlayerEmptyBottle(Entity* this) { - gUnk_0811BB48[this->subAction](this); + sPlayerEmptyBottleStates[this->subAction](this); } -void sub_08071EB0(Entity* this) { +static void sub_08071EB0(Entity* this) { Entity* ent; ResetPlayer(); @@ -1073,20 +1311,20 @@ void sub_08071EB0(Entity* this) { this->subAction++; switch (gPlayerState.field_0x38) { case 0x20: - gPlayerState.field_0x8 = 0x614; + gPlayerState.animation = 0x614; break; case 0x21 ... 0x25: - gPlayerState.field_0x8 = 0x2df; + gPlayerState.animation = 0x2df; break; default: - gPlayerState.field_0x8 = 0x610; + gPlayerState.animation = 0x610; sub_0807CAA0(gPlayerState.field_0x38, 2); break; } } } -void sub_08071F14(Entity* this) { +static void sub_08071F14(Entity* this) { UpdateAnimationSingleFrame(this); if (this->frame & 0x80) { gPlayerState.field_0x2c = NULL; @@ -1094,28 +1332,31 @@ void sub_08071F14(Entity* this) { } } -extern void (*const gUnk_0811BB50[])(Entity*); +static void PlayerFrozen(Entity* this) { + static EntityAction* const sPlayerFrozenStates[] = { + sub_08071F50, + sub_08071F80, + }; -void PlayerFrozen(Entity* this) { - gUnk_0811BB50[this->subAction](this); + sPlayerFrozenStates[this->subAction](this); } -void sub_08071F50(Entity* this) { +static void sub_08071F50(Entity* this) { COLLISION_OFF(this); - this->actionDelay = 0x78; + this->actionDelay = 120; this->subAction++; - gPlayerState.field_0x8 = 0x294; + gPlayerState.animation = 0x294; sub_08077B20(); SoundReq(SFX_195); } -void sub_08071F80(Entity* this) { +static void sub_08071F80(Entity* this) { if (sub_08003FC4(this, 0x2000) == 0) { UpdateSpriteForCollisionLayer(this); gPlayerState.jumpStatus = 0; if (gPlayerState.field_0x14 == 0) { if (sub_08079D48() == 0) { - sub_08072008(this); + BreakOut(this); return; } } @@ -1135,34 +1376,37 @@ void sub_08071F80(Entity* this) { } } } - sub_08072008(this); + BreakOut(this); } -void sub_08072008(Entity* this) { +static void BreakOut(Entity* this) { this->iframes = 160; this->knockbackDuration = 0; COLLISION_ON(this); this->spriteOffsetX = 0; - gPlayerState.flags &= ~(0x800 | 0x1); + gPlayerState.flags &= ~(0x800 | PL_BUSY); CreateFx(this, FX_ICE, 0); sub_080791BC(); } -extern void (*const gUnk_0811BB58[])(Entity*); +static void sub_0807204C(Entity* this) { + static EntityAction* const gUnk_0811BB58[] = { + sub_08072064, + sub_08072098, + }; -void sub_0807204C(Entity* this) { gUnk_0811BB58[this->subAction](this); } -void sub_08072064(Entity* this) { +static void sub_08072064(Entity* this) { this->subAction = 1; COLLISION_OFF(this); this->actionDelay = gPlayerState.field_0x3a; - gPlayerState.field_0x8 = gPlayerState.field_0x38 | (gPlayerState.field_0x39 << 8); + gPlayerState.animation = gPlayerState.field_0x38 | (gPlayerState.field_0x39 << 8); ResetPlayer(); } -void sub_08072098(Entity* this) { +static void sub_08072098(Entity* this) { UpdateAnimationSingleFrame(this); if (this->actionDelay != 0) if (--this->actionDelay != 0xFF) @@ -1177,33 +1421,36 @@ void sub_08072098(Entity* this) { sub_080791BC(); } -extern void (*const gUnk_0811BB60[])(Entity*); +static void sub_080720DC(Entity* this) { + static EntityAction* const gUnk_0811BB60[] = { + sub_08072100, + sub_08072168, + }; -void sub_080720DC(Entity* this) { if (sub_08078EFC() == 0) gUnk_0811BB60[this->subAction](this); } -void sub_08072100(Entity* this) { +static void sub_08072100(Entity* this) { this->spriteSettings.draw = 3; this->speed = 0x140; - this->hitbox = &gUnk_08114F88; + this->hitbox = (Hitbox*)&gPlayerHitbox; this->actionDelay = gPlayerState.field_0x38; this->subAction = 1; COLLISION_OFF(this); if (gPlayerState.field_0x39) this->direction = 0xff; - if ((gPlayerState.flags & 8)) { - gPlayerState.field_0x8 = 0x404; + if (gPlayerState.flags & PL_NO_CAP) { + gPlayerState.animation = 0x404; } else { - gPlayerState.field_0x8 = 0x104; + gPlayerState.animation = 0x104; } ResetPlayer(); sub_08072168(this); } -void sub_08072168(Entity* this) { +static void sub_08072168(Entity* this) { u32 i; UpdateAnimationSingleFrame(this); @@ -1224,75 +1471,83 @@ void sub_08072168(Entity* this) { } } -extern void (*const gUnk_0811BB68[])(Entity*); +static void PlayerPull(Entity* this) { + static EntityAction* const sPlayerPullStates[] = { + sub_08072214, + sub_08072260, + }; -void PlayerPull(Entity* this) { gPlayerState.field_0xa8 = 0x1a; - gUnk_0811BB68[this->subAction](this); + sPlayerPullStates[this->subAction](this); gUnk_0200AF00.filler25[9] = 8; } -void sub_08072214(Entity* this) { +static void sub_08072214(Entity* this) { this->subAction = 1; this->speed = 128; this->actionDelay = gPlayerState.field_0x38; - this->direction = (this->animationState ^ 4) << 2; - if (!(gPlayerState.flags & 8)) { - gPlayerState.field_0x8 = 0x34c; + this->direction = Direction8FromAnimationState(AnimationStateTurnAround(this->animationState)); + if ((gPlayerState.flags & PL_NO_CAP) == 0) { + gPlayerState.animation = 0x34c; } else { - gPlayerState.field_0x8 = 0x944; + gPlayerState.animation = 0x944; } - gPlayerState.flags |= 1; + gPlayerState.flags |= PL_BUSY; sub_08072260(this); } -void sub_08072260(Entity* this) { +static void sub_08072260(Entity* this) { gPlayerState.field_0x80 = 0; sub_08079E08(); UpdateAnimationSingleFrame(this); if (--this->actionDelay == 0) { - gPlayerState.flags &= ~0x1; - if (!(gPlayerState.flags & 8)) { - gPlayerState.field_0x8 = 0x34c; + gPlayerState.flags &= ~PL_BUSY; + if ((gPlayerState.flags & PL_NO_CAP) == 0) { + gPlayerState.animation = 0x34c; } else { - gPlayerState.field_0x8 = 0x944; + gPlayerState.animation = 0x944; } this->knockbackDuration = 0; sub_080791BC(); } } -extern void (*const gUnk_0811BB70[])(Entity*); +static void PlayerLava(Entity* this) { + static EntityAction* const sPlayerLavaStates[] = { + sub_080722DC, + sub_08072354, + sub_080723D0, + sub_0807240C, + }; -void PlayerLava(Entity* this) { gPlayerState.field_0xa8 = 10; - gUnk_0811BB70[this->subAction](this); + sPlayerLavaStates[this->subAction](this); } -void sub_080722DC(Entity* this) { +static void sub_080722DC(Entity* this) { Entity* ent; COLLISION_OFF(this); - if (!(gPlayerState.flags & PL_MINISH)) { + if ((gPlayerState.flags & PL_MINISH) == 0) { this->subAction = 1; this->zVelocity = 0x28000; ent = CreateObject(OBJECT_42, 0x80, 0); if (ent != NULL) { ent->child = this; } - gPlayerState.field_0x8 = 0x114; + gPlayerState.animation = 0x114; } else { this->spriteSettings.draw = 0; this->subAction = 3; this->knockbackDuration = 10; } - gPlayerState.flags |= (0x400 | 0x1); + gPlayerState.flags |= (PL_BURNING | PL_BUSY); ResetPlayer(); SoundReq(SFX_124); SoundReq(SFX_PLY_VO6); } -void sub_08072354(Entity* this) { +static void sub_08072354(Entity* this) { sub_0806F854(this, 0, -12); UpdateAnimationSingleFrame(this); sub_08079744(this); @@ -1303,47 +1558,50 @@ void sub_08072354(Entity* this) { this->knockbackDuration = 0; this->subAction = 2; this->actionDelay = 0x3c; - gPlayerState.field_0x8 = 0x2c1; - gPlayerState.flags &= ~0x400; + gPlayerState.animation = 0x2c1; + gPlayerState.flags &= ~PL_BURNING; UpdateSpriteForCollisionLayer(this); CreateFx(this, FX_LAVA_SPLASH, 0); SoundReq(SFX_1A6); } -void sub_080723D0(Entity* this) { +static void sub_080723D0(Entity* this) { UpdateAnimationSingleFrame(this); if (--this->actionDelay == 0xff) { this->spritePriority.b1 = 1; - this->iframes = 0x14; + this->iframes = 20; ModHealth(-2); RespawnPlayer(); } } -void sub_0807240C(Entity* this) { +static void sub_0807240C(Entity* this) { if (--this->knockbackDuration == 0xff) { this->spriteSettings.draw = 3; - this->iframes = 0x14; - gPlayerState.flags &= ~0x400; + this->iframes = 20; + gPlayerState.flags &= ~PL_BURNING; ModHealth(-2); RespawnPlayer(); } } -extern void (*const gUnk_0811BB80[])(Entity*); +static void sub_08072454(Entity* this) { + static EntityAction* const gUnk_0811BB80[] = { + sub_0807246C, + sub_08072490, + }; -void sub_08072454(Entity* this) { gUnk_0811BB80[this->subAction](this); } -void sub_0807246C(Entity* this) { +static void sub_0807246C(Entity* this) { this->subAction = 1; this->actionDelay = gPlayerState.field_0x38; - gPlayerState.field_0x8 = 0x3c0; + gPlayerState.animation = 0x3c0; SoundReq(0x7b); } -void sub_08072490(Entity* this) { +static void sub_08072490(Entity* this) { if (--this->actionDelay != 0xff) { UpdateAnimationSingleFrame(this); sub_08079E08(); @@ -1354,13 +1612,15 @@ void sub_08072490(Entity* this) { } } -extern void (*const gUnk_0811BB88[])(Entity*); - -void PlayerRoomTransition(Entity* this) { - gUnk_0811BB88[this->subAction](this); +static void PlayerRoomTransition(Entity* this) { + static EntityAction* const sPlayerRoomTransitionStates[] = { + sub_080724DC, + sub_0807258C, + }; + sPlayerRoomTransitionStates[this->subAction](this); } -void sub_080724DC(Entity* this) { +static void sub_080724DC(Entity* this) { this->knockbackDuration = 0; sub_0807A108(); if (sub_080002B8(this) != 0x29) { @@ -1378,16 +1638,16 @@ void sub_080724DC(Entity* this) { this->subAction = 1; if (gRoomVars.field_0x0 == 0) { if (gPlayerState.flags & PL_MINISH) { - gPlayerState.field_0x8 = 0xc18; + gPlayerState.animation = 0xc18; } else { - gPlayerState.field_0x8 = 0x104; + gPlayerState.animation = 0x104; } - this->direction = this->animationState << 2; + this->direction = Direction8FromAnimationState(this->animationState); } } } -void sub_0807258C(Entity* this) { +static void sub_0807258C(Entity* this) { if (gRoomControls.unk2 == 0) { if (sub_0807A894(this) == 0x29) { sub_08079E08(); @@ -1411,14 +1671,17 @@ void sub_0807258C(Entity* this) { } } -extern void (*const gUnk_0811BB90[])(Entity*); +static void PlayerRoll(Entity* this) { + static EntityAction* const sPlayerRollStates[] = { + sub_08072650, + sub_080726F4, + }; -void PlayerRoll(Entity* this) { gPlayerState.field_0xa8 = 9; - gUnk_0811BB90[this->subAction](this); + sPlayerRollStates[this->subAction](this); } -void sub_08072650(Entity* this) { +static void sub_08072650(Entity* this) { u32 temp; if ((gPlayerState.flags & 0x200000) == 0) { @@ -1431,16 +1694,16 @@ void sub_08072650(Entity* this) { temp = gPlayerState.flags; if (gPlayerState.flags & PL_MINISH) { this->spritePriority.b1 = 0; - gPlayerState.field_0x8 = 0xc08; + gPlayerState.animation = 0xc08; } else { this->hurtType = 0x1e; if (temp & 8) { - gPlayerState.field_0x8 = 0x438; + gPlayerState.animation = 0x438; } else { - gPlayerState.field_0x8 = 0x2ac; + gPlayerState.animation = 0x2ac; } } - gPlayerState.flags |= 0x40000; + gPlayerState.flags |= PL_ROLLING; if (Random() & 1) { SoundReq(SFX_PLY_VO5); } else { @@ -1449,16 +1712,16 @@ void sub_08072650(Entity* this) { SoundReq(SFX_7E); } -void sub_080726F4(Entity* this) { - if (((gPlayerState.flags & (0x40000 | 0x80000)) != 0x40000) || +static void sub_080726F4(Entity* this) { + if (((gPlayerState.flags & (PL_ROLLING | 0x80000)) != PL_ROLLING) || (!(gPlayerState.flags & 0x200000) && (this->iframes != 0) && (this->bitfield & 0x80))) { - gPlayerState.flags &= ~0x40000; + gPlayerState.flags &= ~PL_ROLLING; if (!sub_08078EFC()) sub_080728AC(this); return; } - this->direction = (this->animationState & 6) << 2; + this->direction = Direction8FromAnimationState(AnimationStateIdle(this->animationState)); if (((gPlayerState.flags & PL_MINISH) == 0) && (--this->actionDelay == 0xff)) { CreateFx(&gPlayerEntity, FX_DASH, 0x40); this->actionDelay = 4; @@ -1467,12 +1730,12 @@ void sub_080726F4(Entity* this) { sub_0807A1B8(); } if (sub_08078EFC()) { - gPlayerState.flags &= ~0x40000; + gPlayerState.flags &= ~PL_ROLLING; return; } if ((gPlayerState.flags & 0x80000) != 0) { - gPlayerState.flags &= ~0x40000; + gPlayerState.flags &= ~PL_ROLLING; return; } @@ -1480,8 +1743,8 @@ void sub_080726F4(Entity* this) { return; } - if (gPlayerState.flags & 0x250) { - gPlayerState.flags &= ~0x40000; + if (gPlayerState.flags & (0x200 | 0x40 | 0x10)) { + gPlayerState.flags &= ~PL_ROLLING; sub_080728AC(this); return; } @@ -1518,12 +1781,12 @@ void sub_080726F4(Entity* this) { sub_080791D0(); } if ((this->frame & 0x80) != 0) { - gPlayerState.flags &= ~(0x200000 | 0x40000); + gPlayerState.flags &= ~(0x200000 | PL_ROLLING); } UpdateAnimationSingleFrame(this); } -void sub_080728AC(Entity* this) { +static void sub_080728AC(Entity* this) { sub_08079938(); if (gPlayerState.flags & PL_MINISH) sub_0807B068(this); @@ -1547,14 +1810,16 @@ void sub_080728AC(Entity* this) { } } -extern void (*const gUnk_0811BB98[])(Entity*); +static void PlayerInHole(Entity* this) { + static EntityAction* const sPlayerInHoleStates[] = { + sub_08072970, sub_08072A60, sub_08072ACC, sub_08072B5C, sub_08072C48, + }; -void PlayerInHole(Entity* this) { gPlayerState.field_0xa8 = 0x17; - gUnk_0811BB98[this->subAction](this); + sPlayerInHoleStates[this->subAction](this); } -void sub_08072970(Entity* this) { +static void sub_08072970(Entity* this) { if (this->health != 0) { this->subAction = 1; this->x.HALF.HI = (this->x.HALF.HI & ~0xF) | 8; @@ -1563,11 +1828,11 @@ void sub_08072970(Entity* this) { this->spritePriority.b0 = 7; this->spritePriority.b1 = 0; this->actionDelay = 0; - gPlayerState.flags |= 0x100000; - if (gPlayerState.flags & 8) { - gPlayerState.field_0x8 = 0x950; + gPlayerState.flags |= PL_IN_HOLE; + if (gPlayerState.flags & PL_NO_CAP) { + gPlayerState.animation = 0x950; } else { - gPlayerState.field_0x8 = 0x61c; + gPlayerState.animation = 0x61c; if (sub_080001DA(COORD_TO_TILE(this), this->collisionLayer) == 0x4020) { this->actionDelay = 1; } @@ -1579,47 +1844,47 @@ void sub_08072970(Entity* this) { } } -void sub_08072A60(Entity* this) { +static void sub_08072A60(Entity* this) { if (this->frame & 0x80) { if (this->actionDelay == 1) { this->subAction = 3; this->actionDelay = 0x28; this->spritePriority.b1 = 1; - gPlayerState.field_0x8 = 0x624; + gPlayerState.animation = 0x624; return; } this->subAction = 2; - if (gPlayerState.flags & 8) { - gPlayerState.field_0x8 = 0x954; + if (gPlayerState.flags & PL_NO_CAP) { + gPlayerState.animation = 0x954; } else { - gPlayerState.field_0x8 = 0x620; + gPlayerState.animation = 0x620; } } else { UpdateAnimationSingleFrame(this); } } -void sub_08072ACC(Entity* this) { +static void sub_08072ACC(Entity* this) { if (gPlayerState.field_0xd == 0xff) { this->field_0xf = 0; } else if (this->field_0xf > 7) { COLLISION_ON(this); this->direction = gPlayerState.field_0xd; this->zVelocity = 0x1a000; - this->speed = 0x78; + this->speed = 120; this->spritePriority.b0 = 4; this->spritePriority.b1 = 1; gPlayerState.jumpStatus = 0x41; sub_0807921C(); sub_0807BA8C(COORD_TO_TILE(this), this->collisionLayer); } else { - this->animationState = gPlayerState.field_0xd >> 2; + this->animationState = Direction8ToAnimationState(gPlayerState.field_0xd); this->field_0xf++; } } -void sub_08072B5C(Entity* this) { +static void sub_08072B5C(Entity* this) { u32 temp; sub_080042BA(this, ((0x28 - this->actionDelay) >> 4) + 1); @@ -1630,7 +1895,7 @@ void sub_08072B5C(Entity* this) { } SetTile(0x4021, COORD_TO_TILE(this), this->collisionLayer); - this->direction = this->animationState << 2; + this->direction = Direction8FromAnimationState(this->animationState); temp = sub_0807A2F8(1); if (!temp) { COLLISION_ON(this); @@ -1653,11 +1918,11 @@ void sub_08072B5C(Entity* this) { temp <<= 12; this->zVelocity = temp; this->speed = 0x100; - gPlayerState.field_0x8 = 0x810; + gPlayerState.animation = 0x810; SoundReq(0x7c); } -void sub_08072C48(Entity* this) { +static void sub_08072C48(Entity* this) { UpdateAnimationSingleFrame(this); sub_0806F69C(this); if (sub_08003FC4(this, 0x2000)) @@ -1676,24 +1941,28 @@ void sub_08072C48(Entity* this) { } } -extern void (*const gUnk_0811BBAC[])(Entity*); - -void sub_08072C9C(Entity* this) { +static void sub_08072C9C(Entity* this) { + static EntityAction* const gUnk_0811BBAC[] = { + sub_08072CC0, + sub_08072CFC, + sub_08072D54, + sub_08072F14, + }; gPlayerState.field_0xa8 = 0x11; gUnk_0811BBAC[this->subAction](this); } -void sub_08072CC0(Entity* this) { +static void sub_08072CC0(Entity* this) { this->subAction = 1; COLLISION_OFF(this); this->field_0xf = (gPlayerState.field_0x3a >> 2) + 1; this->direction = gPlayerState.field_0x39; this->speed = 0x400; - gPlayerState.field_0x8 = 0x524; + gPlayerState.animation = 0x524; gPlayerState.heldObject = 0; } -void sub_08072CFC(Entity* this) { +static void sub_08072CFC(Entity* this) { sub_080042BA(this, 2); if (--this->field_0xf != 0xff) { sub_0806F69C(this); @@ -1706,15 +1975,24 @@ void sub_08072CFC(Entity* this) { } this->zVelocity = gPlayerState.field_0x38 << 0xc; this->speed = 0x200; - gPlayerState.field_0x8 = 0x810; + gPlayerState.animation = 0x810; this->actionDelay = 5; this->field_0xf = 0; ResetPlayer(); } -extern const u16* gUnk_0811BBD4[]; +static const u16 sTiles[] = { + 0x1AD, 1, 0, 0x1AE, 1, 0, 0x1AC, 1, 0, 0x1AF, 1, 0, +}; -NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(Entity* this)) { +static const u16* const sTileTable[] = { + sTiles, + sTiles + 3, + sTiles + 6, + sTiles + 9, +}; + +static NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(Entity* this)) { u32 bVar1; u32 uVar2; u32 iVar3; @@ -1728,13 +2006,13 @@ NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(Entity* t uVar2 = GetTileType(uVar2, this->collisionLayer); switch (this->field_0xf) { case 0: - if (sub_08007DD6(uVar2, gUnk_0811BBD4[gPlayerEntity.animationState >> 1])) { + if (sub_08007DD6(uVar2, sTileTable[gPlayerEntity.animationState >> 1])) { this->actionDelay = 1; this->field_0xf = 1; } break; case 1: - if (sub_08007DD6(uVar2, gUnk_0811BBD4[gPlayerEntity.animationState >> 1])) { + if (sub_08007DD6(uVar2, sTileTable[gPlayerEntity.animationState >> 1])) { this->actionDelay = 1; this->field_0xf = 1; } @@ -1748,14 +2026,14 @@ NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(Entity* t break; case 2: this->animationState ^= 4; - if (sub_08007DD6(uVar2, gUnk_0811BBD4[gPlayerEntity.animationState >> 1]) != 0) { + if (sub_08007DD6(uVar2, sTileTable[gPlayerEntity.animationState >> 1]) != 0) { this->actionDelay = 1; this->field_0xf = 3; } break; default: this->animationState ^= 4; - if (sub_08007DD6(uVar2, gUnk_0811BBD4[gPlayerEntity.animationState >> 1])) { + if (sub_08007DD6(uVar2, sTileTable[gPlayerEntity.animationState >> 1])) { this->field_0xf = 4; } else { this->actionDelay = 1; @@ -1789,9 +2067,9 @@ NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(Entity* t } } else { if ((gPlayerState.flags & 8)) { - gPlayerState.field_0x8 = 0x424; + gPlayerState.animation = 0x424; } else { - gPlayerState.field_0x8 = 0x820; + gPlayerState.animation = 0x820; } this->actionDelay = 6; this->subAction = 3; @@ -1802,7 +2080,7 @@ NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(Entity* t } END_NONMATCH -void sub_08072F14(Entity* this) { +static void sub_08072F14(Entity* this) { if (--this->actionDelay != 0xff) { sub_0807921C(); } else { @@ -1810,9 +2088,12 @@ void sub_08072F14(Entity* this) { } } -extern void (*const gUnk_0811BBE4[])(Entity*); +static void sub_08072F34(Entity* this) { + static EntityAction* const gUnk_0811BBE4[] = { + sub_08072F94, + sub_08073094, + }; -void sub_08072F34(Entity* this) { if (!sub_08078EFC()) { gPlayerState.field_0xa8 = 0x18; gPlayerState.field_0x10[2] = GetSurfaceCalcType(this, 0, 0); @@ -1823,13 +2104,13 @@ void sub_08072F34(Entity* this) { this->action = 0x1d; this->subAction = 0; this->y.HALF.LO = 0; - gPlayerState.field_0x8 = 0x2cf; + gPlayerState.animation = 0x2cf; } } } } -void sub_08072F94(Entity* this) { +static void sub_08072F94(Entity* this) { u32 bVar1; switch (gPlayerState.field_0x10[2]) { @@ -1847,9 +2128,9 @@ void sub_08072F94(Entity* this) { return; } if ((this->frame & 0x10)) { - gPlayerState.field_0x8 = 0x2d4; + gPlayerState.animation = 0x2d4; } else { - gPlayerState.field_0x8 = 0x2d5; + gPlayerState.animation = 0x2d5; } sub_08073094(this); } else { @@ -1858,38 +2139,40 @@ void sub_08072F94(Entity* this) { } if (this->direction & 0x10) { if (this->frame & 0x10) { - gPlayerState.field_0x8 = 0x2d1; + gPlayerState.animation = 0x2d1; } else { - gPlayerState.field_0x8 = 0x2d2; + gPlayerState.animation = 0x2d2; } } else { if (this->frame & 0x10) { - gPlayerState.field_0x8 = 0x2cf; + gPlayerState.animation = 0x2cf; } else { - gPlayerState.field_0x8 = 0x2d0; + gPlayerState.animation = 0x2d0; } } } this->subAction++; } else { if (this->frame & 0x10) { - gPlayerState.field_0x8 = 0x2d4; + gPlayerState.animation = 0x2d4; } else { - gPlayerState.field_0x8 = 0x2d5; + gPlayerState.animation = 0x2d5; } } break; } } -extern const u16 gUnk_0811BBEC[]; +static void sub_08073094(Entity* this) { + static const u16 sSpeeds[] = { + 0x0, 0x40, 0x60, 0x80, 0x100, 0xC0, + }; -void sub_08073094(Entity* this) { this->spritePriority.b1 = 0; - this->speed = gUnk_0811BBEC[this->frame & 0xf]; + this->speed = sSpeeds[this->frame & 0xf]; sub_08079E08(); if (!sub_08019840()) { - gPlayerState.pushedObject = gPlayerState.pushedObject ^ 0x80; + gPlayerState.pushedObject ^= 0x80; if ((gPlayerState.field_0x10[2] != 0x2a) && (gPlayerState.field_0x10[2] != 0x2c)) { sub_0807A1B8(); } @@ -1930,78 +2213,15 @@ void sub_08073094(Entity* this) { } } -extern void (*const gUnk_0811BBF8[])(Entity*); +static void PlayerUseEntrance(Entity* this) { + static EntityAction* const sPlayerUseEntranceStates[] = { + sub_080731D8, + sub_080732D0, + sub_0807332C, + sub_080733BC, + }; -void PlayerUseEntrance(Entity* this) { gPlayerState.field_0xa8 = 0x1c; RequestPriorityDuration(NULL, 8); - gUnk_0811BBF8[this->subAction](this); + sPlayerUseEntranceStates[this->subAction](this); } - -void PlayerInit(Entity*); -void PlayerNormal(Entity*); -void PlayerInit(Entity*); -void PlayerFall(Entity*); -void PlayerJump(Entity*); -void PlayerPush(Entity*); -void PlayerBounce(Entity*); -void sub_08070E9C(Entity*); -void PlayerItemGet(Entity*); -void PlayerMinish(Entity*); -void PlayerMinishDie(Entity*); -void sub_08071DB8(Entity*); -void PlayerEmptyBottle(Entity*); -void PlayerFrozen(Entity*); -void sub_0807204C(Entity*); -void sub_080720DC(Entity*); -void PlayerPull(Entity*); -void PlayerLava(Entity*); -void PlayerWarp(Entity*); -void sub_08072454(Entity*); -void PlayerDrown(Entity*); -void PlayerUsePortal(Entity*); -void PlayerTalkEzlo(Entity*); -void PlayerRoomTransition(Entity*); -void PlayerRoll(Entity*); -void sub_080728AC(Entity*); -void PlayerInHole(Entity*); -void sub_08072C9C(Entity*); -void sub_08074C44(Entity*); -void sub_08072F34(Entity*); -void PlayerUseEntrance(Entity*); -void PlayerParachute(Entity*); - -static void (*const sPlayerActions[])(Entity*) = { - [PLAYER_INIT] = PlayerInit, - [PLAYER_NORMAL] = PlayerNormal, - [PLAYER_DUMMY] = PlayerInit, - [PLAYER_FALL] = PlayerFall, - [PLAYER_JUMP] = PlayerJump, - [PLAYER_PUSH] = PlayerPush, - [PLAYER_BOUNCE] = PlayerBounce, - [PLAYER_08070E9C] = sub_08070E9C, - [PLAYER_ITEMGET] = PlayerItemGet, - [PLAYER_MINISH] = PlayerMinish, - [PLAYER_MINISHDIE] = PlayerMinishDie, - [PLAYER_08071DB8] = sub_08071DB8, - [PLAYER_EMPTYBOTTLE] = PlayerEmptyBottle, - [PLAYER_FROZEN] = PlayerFrozen, - [PLAYER_0807204C] = sub_0807204C, - [PLAYER_080720DC] = sub_080720DC, - [PLAYER_PULL] = PlayerPull, - [PLAYER_LAVA] = PlayerLava, - [PLAYER_WARP] = PlayerWarp, - [PLAYER_08072454] = sub_08072454, - [PLAYER_DROWN] = PlayerDrown, - [PLAYER_USEPORTAL] = PlayerUsePortal, - [PLAYER_TALKEZLO] = PlayerTalkEzlo, - [PLAYER_ROOMTRANSITION] = PlayerRoomTransition, - [PLAYER_ROLL] = PlayerRoll, - [PLAYER_080728AC] = sub_080728AC, - [PLAYER_INHOLE] = PlayerInHole, - [PLAYER_08072C9C] = sub_08072C9C, - [PLAYER_08074C44] = sub_08074C44, - [PLAYER_08072F34] = sub_08072F34, - [PLAYER_USEENTRANCE] = PlayerUseEntrance, - [PLAYER_PARACHUTE] = PlayerParachute, -}; diff --git a/src/projectile/dirtBallProjectile.c b/src/projectile/dirtBallProjectile.c index 9d4d7187..4a805082 100644 --- a/src/projectile/dirtBallProjectile.c +++ b/src/projectile/dirtBallProjectile.c @@ -97,7 +97,7 @@ void DirtBallProjectile_Action1(Entity* this) { break; case 2: this->z.HALF.HI += 0xe; - if (sub_080041A0(this, &gPlayerEntity, 0xe, 0xe) != 0) { + if (EntityInRectRadius(this, &gPlayerEntity, 0xe, 0xe) != 0) { this->action = 2; parent->field_0x82.HALF.HI = 0xc0; } diff --git a/src/room.c b/src/room.c index aad169d9..2068c71d 100644 --- a/src/room.c +++ b/src/room.c @@ -96,12 +96,9 @@ u32 sub_unk3_ArmosInteriors_FortressOfWindsLeft() { } void sub_StateChange_ArmosInteriors_FortressOfWindsLeft() { - Area* a; - sub_08030118(9); - a = &gArea; - *((u8*)&a->localFlagOffset - 1) = 3; - a->areaMetadata = 0x4e; + gArea.dungeon_idx = 3; + gArea.areaMetadata = 0x4e; } u32 sub_unk3_ArmosInteriors_FortressOfWindsRight() { @@ -109,12 +106,9 @@ u32 sub_unk3_ArmosInteriors_FortressOfWindsRight() { } void sub_StateChange_ArmosInteriors_FortressOfWindsRight() { - Area* a; - sub_08030118(10); - a = &gArea; - *((u8*)&a->localFlagOffset - 1) = 3; - a->areaMetadata = 0x4e; + gArea.dungeon_idx = 3; + gArea.areaMetadata = 0x4e; } u32 sub_unk3_CrenelMinishPaths_CrenelBean() { @@ -279,14 +273,14 @@ void sub_StateChange_HouseInteriors1_PostOffice(void) { j++; } } - if (CheckLocalFlag(0x8b)) { + if (CheckLocalFlag(BILL01_TESSIN_RESERVED)) { flagArr = &gUnk_080D6508; i = 0; while (i < j) { if (CheckLocalFlag(*flagArr) == 0) { SetLocalFlag(*flagArr); - ClearLocalFlag(0x8b); - SetLocalFlag(0x8c); + ClearLocalFlag(BILL01_TESSIN_RESERVED); + SetLocalFlag(BILL01_TESSIN_BRANDNEW); break; } i++; @@ -294,28 +288,28 @@ void sub_StateChange_HouseInteriors1_PostOffice(void) { } } - if (CheckLocalFlag(0x1f)) + if (CheckLocalFlag(BILL01_TESSIN_1)) LoadRoomEntityList(&gUnk_080D6360); - if (CheckLocalFlag(0x20)) + if (CheckLocalFlag(BILL01_TESSIN_2)) LoadRoomEntityList(&gUnk_080D6380); - if (CheckLocalFlag(0x21)) + if (CheckLocalFlag(BILL01_TESSIN_3)) LoadRoomEntityList(&gUnk_080D63A0); - if (CheckLocalFlag(0x22)) + if (CheckLocalFlag(BILL01_TESSIN_4)) LoadRoomEntityList(&gUnk_080D63C0); - if (CheckLocalFlag(0x23)) + if (CheckLocalFlag(BILL01_TESSIN_5)) LoadRoomEntityList(&gUnk_080D63E0); - if (CheckLocalFlag(0x24)) + if (CheckLocalFlag(BILL01_TESSIN_6)) LoadRoomEntityList(&gUnk_080D6400); - if (CheckLocalFlag(0x25)) + if (CheckLocalFlag(BILL01_TESSIN_7)) LoadRoomEntityList(&gUnk_080D6420); - if (CheckLocalFlag(0x26)) + if (CheckLocalFlag(BILL01_TESSIN_8)) LoadRoomEntityList(&gUnk_080D6440); } @@ -332,7 +326,7 @@ void sub_StateChange_HouseInteriors1_Library2F(void) { // flippers if (GetInventoryValue(0x46) == 0) { LoadRoomEntityList(&gUnk_080D6578); - if (CheckLocalFlag(0x73) == 0) { + if (CheckLocalFlag(MIZUKAKI_BOOK_ALLBACK) == 0) { LoadRoomEntityList(&gUnk_080D6638); return; } @@ -355,7 +349,7 @@ void sub_StateChange_HouseInteriors1_Library1F(void) { LoadRoomEntityList(&gUnk_080D6714); } // flippers - if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && CheckLocalFlag(0x6a)) { + if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && CheckLocalFlag(MIZUKAKI_KOBITO)) { LoadRoomEntityList(&gUnk_additional_9_HouseInteriors1_Library1F); } else { LoadRoomEntityList(&gUnk_additional_8_HouseInteriors1_Library1F); @@ -379,12 +373,12 @@ extern u32* gUnk_080D6A74[]; u32 sub_unk3_HouseInteriors1_InnWestRoom(void) { u32 index; - if (CheckLocalFlag(0x91) != 0) { + if (CheckLocalFlag(YADO_CHECKIN) != 0) { index = (s32)Random() % 3; - ClearLocalFlag(1); + ClearLocalFlag(BILL05_YADO1F_MATSU_T0); } else { index = 0; - SetLocalFlag(1); + SetLocalFlag(BILL05_YADO1F_MATSU_T0); } gRoomVars.field_0x6c[3] = gUnk_080D6A74[index]; return 1; @@ -393,8 +387,8 @@ u32 sub_unk3_HouseInteriors1_InnWestRoom(void) { extern void* script_08010A5C[]; void sub_StateChange_HouseInteriors1_InnWestRoom(void) { - if (CheckLocalFlag(0x91)) { - ClearLocalFlag(0x91); + if (CheckLocalFlag(YADO_CHECKIN)) { + ClearLocalFlag(YADO_CHECKIN); DoFade(5, 0x100); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; @@ -407,20 +401,20 @@ extern u32* gUnk_080D6B18[]; u32 sub_unk3_HouseInteriors1_InnMiddleRoom(void) { u32 index; - if (CheckLocalFlag(0x91) != 0) { + if (CheckLocalFlag(YADO_CHECKIN) != 0) { index = Random() & 1; - ClearLocalFlag(2); + ClearLocalFlag(BILL06_YADO1F_TAKE_T0); } else { index = 0; - SetLocalFlag(2); + SetLocalFlag(BILL06_YADO1F_TAKE_T0); } gRoomVars.field_0x6c[3] = gUnk_080D6B18[index]; return 1; } void sub_StateChange_HouseInteriors1_InnMiddleRoom(void) { - if (CheckLocalFlag(0x91) != 0) { - ClearLocalFlag(0x91); + if (CheckLocalFlag(YADO_CHECKIN) != 0) { + ClearLocalFlag(YADO_CHECKIN); DoFade(5, 0x100); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; @@ -433,20 +427,20 @@ extern u32* gUnk_080D6BB8[]; u32 sub_unk3_HouseInteriors1_InnEastRoom(void) { s32 index; - if (CheckLocalFlag(0x91) != 0) { + if (CheckLocalFlag(YADO_CHECKIN) != 0) { index = (s32)Random() % 3; - ClearLocalFlag(3); + ClearLocalFlag(BILL07_YADO1F_UME_T0); } else { index = 0; - SetLocalFlag(3); + SetLocalFlag(BILL07_YADO1F_UME_T0); } gRoomVars.field_0x6c[3] = gUnk_080D6BB8[index]; return 1; } void sub_StateChange_HouseInteriors1_InnEastRoom(void) { - if (CheckLocalFlag(0x91)) { - ClearLocalFlag(0x91); + if (CheckLocalFlag(YADO_CHECKIN)) { + ClearLocalFlag(YADO_CHECKIN); DoFade(5, 0x100); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x60; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; @@ -567,20 +561,22 @@ void sub_StateChange_HyruleCastle_0(void) { if (!CheckGlobalFlag(LV2_CLEAR)) { LoadRoomEntityList(&gUnk_080D7328); } + #if defined(JP) || defined(DEMO_JP) if (CheckGlobalFlag(CASTLE_BGM) || CheckGlobalFlag(ENDING)) { -#else -#ifdef EU - if (CheckGlobalFlag(ENDING)) { -#else - if (CheckGlobalFlag(CASTLE_BGM)) { - - gArea.pMusicIndex = 0x1b; - } else if (CheckGlobalFlag(ENDING)) { -#endif -#endif gArea.pMusicIndex = gArea.musicIndex; } +#elif defined(EU) + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } +#else + if (CheckGlobalFlag(CASTLE_BGM)) { + gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; + } else if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } +#endif } extern u32 gUnk_080D7410; @@ -597,7 +593,6 @@ extern EntityData gUnk_080D73B0; extern EntityData gUnk_080D73E0; void sub_StateChange_HyruleCastle_1(void) { -#ifdef EU if (CheckGlobalFlag(ENDING)) { gArea.pMusicIndex = gArea.musicIndex; } else { @@ -607,22 +602,12 @@ void sub_StateChange_HyruleCastle_1(void) { if (!CheckGlobalFlag(LV1_CLEAR) && CheckGlobalFlag(TABIDACHI)) { LoadRoomEntityList(&gUnk_080D73E0); } - } -#else - if (!CheckGlobalFlag(ENDING)) { - if (!CheckGlobalFlag(LV2_CLEAR)) { - LoadRoomEntityList(&gUnk_080D73B0); - } - if (!CheckGlobalFlag(LV1_CLEAR) && CheckGlobalFlag(TABIDACHI)) { - LoadRoomEntityList(&gUnk_080D73E0); - } +#ifndef EU if (CheckGlobalFlag(CASTLE_BGM)) { gArea.pMusicIndex = gArea.musicIndex; } - } else { - gArea.pMusicIndex = gArea.musicIndex; - } #endif + } } u32 sub_unk3_HyruleCastle_2() { @@ -646,7 +631,7 @@ void sub_StateChange_HyruleCastle_2(void) { gArea.pMusicIndex = gArea.musicIndex; } else if (CheckGlobalFlag(TABIDACHI) == 0) { LoadRoomEntityList(&gUnk_080D74C8); - gArea.pMusicIndex = 0x1b; + gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; } else if (CheckGlobalFlag(LV1_CLEAR) == 0) { LoadRoomEntityList(&gUnk_080D7588); } else { @@ -661,21 +646,13 @@ u32 sub_unk3_HyruleCastle_3() { extern EntityData gUnk_additional_8_HyruleCastle_3; void sub_StateChange_HyruleCastle_3(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlag(0x9b)) { -#else - if (CheckLocalFlag(0x9c)) { -#endif + if (CheckLocalFlag(SOUGEN_08_TORITSUKI)) { LoadRoomEntityList(&gUnk_additional_8_HyruleCastle_3); } } u32 sub_unk3_HyruleCastle_4(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x9e)) { -#else - if (!CheckLocalFlag(0x9f)) { -#endif + if (!CheckLocalFlag(CASTLE_04_MEZAME)) { gScreenTransition.player_status.spawn_type = 5; ClearGlobalFlag(ZELDA_CHASE); } @@ -685,11 +662,7 @@ u32 sub_unk3_HyruleCastle_4(void) { extern u32 script_08009E88; void sub_StateChange_HyruleCastle_4(void) { -#if defined(JP) || defined(DEMO_JP) || defined(EU) - if (!CheckLocalFlag(0x9e)) { -#else - if (!CheckLocalFlag(0x9f)) { -#endif + if (!CheckLocalFlag(CASTLE_04_MEZAME)) { DoFade(5, 0x100); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0xb0; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x40; @@ -958,8 +931,8 @@ extern u32 gUnk_080D8BFA; extern u32 gUnk_080D8C68; void sub_StateChange_GoronCave_Main(void) { - if (!CheckLocalFlag(0x68)) - SetLocalFlag(0x68); + if (!CheckLocalFlag(GORON_DOUKUTU_APPEAR)) + SetLocalFlag(GORON_DOUKUTU_APPEAR); if (CheckKinstoneFused(0x2f)) LoadRoomEntityList(&gUnk_080D8B24); @@ -1220,7 +1193,7 @@ void sub_StateChange_CastorCaves_HeartPiece() { extern u32 gUnk_080DA230; u32 sub_unk3_CastorDarknut_Main(void) { - if (!CheckLocalFlag(0x39)) + if (!CheckLocalFlag(LV4_0a_TSUBO)) gRoomVars.field_0x6c[0] = &gUnk_080DA230; return 1; @@ -1542,7 +1515,7 @@ extern EntityData gUnk_080DB4A0; void sub_StateChange_TownMinishHoles_MayorsHouse(void) { // flippers and history of masks book - if (!GetInventoryValue(0x46) && !GetInventoryValue(0x3b) && CheckLocalFlag(0x71)) + if (!GetInventoryValue(0x46) && !GetInventoryValue(0x3b) && CheckLocalFlag(KOBITO_DOUKUTU_04_T0)) LoadRoomEntityList(&gUnk_080DB4D0); else LoadRoomEntityList(&gUnk_080DB4A0); @@ -1593,7 +1566,7 @@ void sub_StateChange_TownMinishHoles_5() { extern u32 gUnk_080DB910; u32 sub_unk3_TownMinishHoles_LibraryBookshelf(void) { - if (CheckGlobalFlag(MIZUKAKI_START) && !CheckLocalFlag(0x73)) { + if (CheckGlobalFlag(MIZUKAKI_START) && !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { gRoomVars.field_0x6c[1] = &gUnk_080DB910; } return 1; @@ -1621,7 +1594,7 @@ extern EntityData gUnk_080DBA08; void sub_StateChange_TownMinishHoles_LibrariBookHouse(void) { // flippers - if (GetInventoryValue(0x46) || !CheckLocalFlag(0x73)) { + if (GetInventoryValue(0x46) || !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { LoadRoomEntityList(&gUnk_080DBA08); } sub_0801AFE4(); @@ -1641,7 +1614,7 @@ void sub_StateChange_TownMinishHoles_RemShoeShop(void) { u32 tilePos; u32 i; - if (!CheckLocalFlag(0x60)) { + if (!CheckLocalFlag(KOBITO_DOUKUTU_00_T0)) { LoadRoomEntityList(&gUnk_080DBB50); } @@ -1652,7 +1625,7 @@ void sub_StateChange_TownMinishHoles_RemShoeShop(void) { } else { LoadRoomEntityList(&gUnk_080DBAD0); } - if (!CheckLocalFlag(0x62)) { + if (!CheckLocalFlag(KOBITO_DOUKUTU_05_T0)) { tilePos = 0x140; for (i = 0; i < 0x13; i++, tilePos++) { SetTileType(0x4072, tilePos, 1); @@ -6756,5 +6729,5 @@ void sub_StateChange_CrenelCaves_ToGrayblade() { void sub_0804FF84(u32 arg0) { ((struct_02000000*)0x02000000)->brightnessPref = arg0; - gUsedPalettes = (u32)-1; + gUsedPalettes = 0xffffffff; } diff --git a/src/save.c b/src/save.c index 36727c41..1f3102b2 100644 --- a/src/save.c +++ b/src/save.c @@ -79,7 +79,7 @@ static const SaveFileStatus sSaveDescInit = { 0xffff, 0xffff, 'TINI' }; // Save file is deleted static const SaveFileStatus sSaveDescDeleted = { 0xffff, 0xffff, 'FleD' }; -const char gUnk_0811E4B4[8] = "DAMEDAME"; +const char sDummyData[8] = "DAMEDAME"; const SaveFileEEPROMAddresses gSaveFileEEPROMAddresses[] = { { 0x500, 0x30, 0x1030, 0x80, 0x1080 }, { 0x500, 0x40, 0x1040, 0x580, 0x1580 }, { 0x500, 0x50, 0x1050, 0xa80, 0x1a80 }, @@ -438,7 +438,7 @@ bool32 DataWrite(u32 address, const void* data, u32 size) { address /= 8; while (size-- > 0) { if (EEPROMWrite0_8k_Check(address, data)) { - EEPROMWrite0_8k_Check(address, (const u16*)gUnk_0811E4B4); + EEPROMWrite0_8k_Check(address, (const u16*)sDummyData); return FALSE; } address++; diff --git a/src/script.c b/src/script.c index 34da5deb..7f5d1fb9 100644 --- a/src/script.c +++ b/src/script.c @@ -70,7 +70,7 @@ void ScriptCommand_ClearRoomFlag(Entity* entity, ScriptExecutionContext* context void ScriptCommand_Wait(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitForSomething(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitForSomething2(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_WaitPlayerAction8(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WaitPlayerGetItem(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitForPlayerAction0x17(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitFor_1(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitFor_2(Entity* entity, ScriptExecutionContext* context); @@ -122,7 +122,7 @@ void ScriptCommand_SetEntityDirectionWithAnimationState(Entity* entity, ScriptEx void ScriptCommand_SetEntitySpeed(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetEntity0x20(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetEntityPositionRelative(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_SetEntityPosition(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_OffsetEntityPosition(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_MoveEntityToPlayer(Entity* entity, ScriptExecutionContext* context); void ScriptCommandNop3(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EC1C(Entity* entity, ScriptExecutionContext* context); @@ -163,145 +163,7 @@ extern void RecoverUI(u32); typedef void (*ScriptCommand)(Entity*, ScriptExecutionContext*); -const ScriptCommand gScriptCommands[] = { ScriptCommandNop, - ScriptCommand_BeginBlock, - ScriptCommand_EndBlock, - ScriptCommand_Jump, - ScriptCommand_JumpIf, - ScriptCommand_JumpIfNot, - ScriptCommand_JumpTable, - ScriptCommand_JumpAbsolute, - ScriptCommand_JumpAbsoluteIf, - ScriptCommand_JumpAbsoluteIfNot, - ScriptCommand_JumpAbsoluteTable, - ScriptCommand_Call, - ScriptCommand_CallWithArg, - ScriptCommand_LoadRoomEntityList, - ScriptCommand_TestBit, - ScriptCommand_CheckInventory1, - ScriptCommand_CheckInventory2, - ScriptCommand_HasRoomItemForSale, - ScriptCommand_CheckLocalFlag, - ScriptCommand_CheckLocalFlagByBank, - ScriptCommand_CheckGlobalFlag, - ScriptCommand_CheckRoomFlag, - ScriptCommand_CheckPlayerInRegion, - ScriptCommand_CheckPlayerInRegion2, - ScriptCommand_CheckEntityInteractType, - ScriptCommand_0807E30C, - ScriptCommand_HasRupees, - ScriptCommand_0807E3BC, - ScriptCommand_0807E3E8, - ScriptCommand_CheckKinstoneFused, - ScriptCommand_BuyItem, - ScriptCommand_0807E48C, - ScriptCommand_0807E4CC, - ScriptCommand_0807E4EC, - ScriptCommand_0807E514, - ScriptCommand_CheckPlayerFlags, - ScriptCommand_0807E564, - ScriptCommand_EntityHasHeight, - ScriptCommand_ComparePlayerAction, - ScriptCommand_ComparePlayerAnimationState, - ScriptCommand_0807E5F8, - ScriptCommand_0807E610, - ScriptCommand_SetLocalFlag, - ScriptCommand_SetLocalFlagByBank, - ScriptCommand_ClearLocalFlag, - ScriptCommand_SetGlobalFlag, - ScriptCommand_ClearGlobalFlag, - ScriptCommand_SetRoomFlag, - ScriptCommand_ClearRoomFlag, - ScriptCommand_Wait, - ScriptCommand_WaitForSomething, - ScriptCommand_WaitForSomething2, - ScriptCommand_WaitPlayerAction8, - ScriptCommand_WaitForPlayerAction0x17, - ScriptCommand_WaitFor_1, - ScriptCommand_WaitFor_2, - ScriptCommand_0807E778, - ScriptCommand_SetFadeMask, - ScriptCommand_0807E79C, - ScriptCommandNop2, - ScriptCommand_DoFade4, - ScriptCommand_DoFade5, - ScriptCommand_DoFade6, - ScriptCommand_DoFade7, - ScriptCommand_0807E800, - ScriptCommand_0807E80C, - ScriptCommand_0807E858, - ScriptCommand_0807E864, - ScriptCommand_0807E878, - ScriptCommand_0807E888, - ScriptCommand_SetPlayerAction, - ScriptCommand_StartPlayerScript, - ScriptCommand_0807E8D4, - ScriptCommand_0807E8E4, - ScriptCommand_0807E8E4, - ScriptCommand_0807E8E4, - ScriptCommand_0807E8E4, - ScriptCommand_0807E908, - ScriptCommand_SetIntVariable, - ScriptCommand_0807E924, - ScriptCommand_0807E930, - ScriptCommand_0807E944, - ScriptCommand_0807E974, - ScriptCommand_0807E9D4, - ScriptCommand_0807E9DC, - ScriptCommand_0807E9E4, - ScriptCommand_0807E9F0, - ScriptCommand_0807EA4C, - ScriptCommand_0807EA88, - ScriptCommand_WaitUntilTextboxCloses, - ScriptCommand_MessageFromTarget, - ScriptCommand_MessageNoOverlap, - ScriptCommand_MessageFromTargetPos, - ScriptCommand_MessageFromTargetTable, - ScriptCommand_MessageNoOverlapVar, - ScriptCommand_0807EB28, - ScriptCommand_0807EB38, - ScriptCommand_0807EB44, - ScriptCommand_0807EB4C, - ScriptCommand_0807EB74, - ScriptCommand_0807EB8C, - ScriptCommand_SetEntityDirection, - ScriptCommand_SetEntityDirectionWithAnimationState, - ScriptCommand_SetEntitySpeed, - ScriptCommand_SetEntity0x20, - ScriptCommand_SetEntityPositionRelative, - ScriptCommand_SetEntityPosition, - ScriptCommand_MoveEntityToPlayer, - ScriptCommandNop3, - ScriptCommand_0807EC1C, - ScriptCommand_0807EC64, - ScriptCommand_0807EC94, - ScriptCommand_0807ECC4, - ScriptCommand_0807ECF4, - ScriptCommand_0807ED24, - ScriptCommand_0807EDD4, - ScriptCommand_0807EE04, - ScriptCommand_0807EE30, - ScriptCommand_0807EEB4, - ScriptCommand_0807EEF4, - ScriptCommand_0807EF3C, - ScriptCommand_DoPostScriptAction, - ScriptCommand_DoPostScriptAction2, - ScriptCommand_PlaySound, - ScriptCommand_PlayBgm, - ScriptCommand_SoundReq, - ScriptCommand_StopBgm, - ScriptCommand_ModRupees, - ScriptCommand_ModHealth, - ScriptCommand_IncreaseMaxHealth, - ScriptCommand_0807F034, - ScriptCommand_0807F050, - ScriptCommand_GetInventoryValue, - ScriptCommand_0807F078, - ScriptCommand_0807F088, - ScriptCommand_CameraTargetEntity, - ScriptCommand_CameraTargetPlayer, - ScriptCommand_0807F0B4, - ScriptCommand_0807F0C8 }; +extern const ScriptCommand gScriptCommands[]; extern u16* gUnk_08001A7C[]; extern u8 gUnk_08114F30[]; @@ -432,10 +294,10 @@ void HandlePostScriptActions(Entity* entity, ScriptExecutionContext* context) { entity->field_0x82.HWORD |= 2; break; case 1 << 0x0b: - entity->field_0x82.HWORD &= 0xfffd; + entity->field_0x82.HWORD &= ~2; break; case 1 << 0x0c: - entity->field_0x82.HWORD &= 0xfffe; + entity->field_0x82.HWORD &= ~1; break; case 1 << 0x0d: entity->field_0x82.HWORD |= 1; @@ -456,7 +318,7 @@ void HandlePostScriptActions(Entity* entity, ScriptExecutionContext* context) { entity->field_0x82.HWORD |= 0x20; break; case 1 << 0x13: - entity->field_0x82.HWORD &= 0xffdf; + entity->field_0x82.HWORD &= ~0x20; break; default: break; @@ -515,22 +377,23 @@ void HandleEntity0x82Actions(Entity* entity) { loopVar = loopVar ^ bit; switch (bit) { case 1 << 1: - if (entity->kind == 7) { + if (entity->kind == NPC) { sub_0806ED78(entity); } else { sub_0800445C(entity); } break; case 1 << 3: - if ((gScreenTransition.frameCount & 3) == 0) { - temp = (entity->field_0xf + 2U) & 7; + if (gScreenTransition.frameCount % 4 == 0) { + temp = (entity->field_0xf + 2) & 7; entity->animationState = temp; entity->field_0xf = temp; } break; case 1 << 4: - if ((gScreenTransition.frameCount & 1) == 0) { - entity->spriteOffsetX = gUnk_0811E510[Random() & 3]; + if (gScreenTransition.frameCount % 2 == 0) { + static const s8 sOffsets[] = { -1, -2, 0, 1 }; + entity->spriteOffsetX = sOffsets[Random() % 4]; } break; case 1 << 5: @@ -573,6 +436,7 @@ void sub_0807DE80(Entity* entity) { } void sub_0807DEDC(Entity* entity, ScriptExecutionContext* context, u32 x, u32 y) { + static const u8 sDirectionTable[] = { 0, 0, 2, 2, 2, 2, 4, 4, 4, 4, 6, 6, 6, 6, 0, 0 }; int direction; s32 xOffset, yOffset; @@ -585,7 +449,7 @@ void sub_0807DEDC(Entity* entity, ScriptExecutionContext* context, u32 x, u32 y) yOffset = context->y.HALF.HI - entity->y.HALF.HI; direction = sub_080045DA(xOffset, yOffset); entity->direction = direction; - entity->animationState = (entity->animationState & 0x80) | gUnk_0811E514[(u32)(direction << 0x18) >> 0x1c]; + entity->animationState = (entity->animationState & 0x80) | sDirectionTable[(u8)direction >> 4]; } void sub_0807DF28(void) { @@ -608,6 +472,148 @@ void sub_0807DF50(void) { } void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { + static const ScriptCommand gScriptCommands[] = { + ScriptCommandNop, + ScriptCommand_BeginBlock, + ScriptCommand_EndBlock, + ScriptCommand_Jump, + ScriptCommand_JumpIf, + ScriptCommand_JumpIfNot, + ScriptCommand_JumpTable, + ScriptCommand_JumpAbsolute, + ScriptCommand_JumpAbsoluteIf, + ScriptCommand_JumpAbsoluteIfNot, + ScriptCommand_JumpAbsoluteTable, + ScriptCommand_Call, + ScriptCommand_CallWithArg, + ScriptCommand_LoadRoomEntityList, + ScriptCommand_TestBit, + ScriptCommand_CheckInventory1, + ScriptCommand_CheckInventory2, + ScriptCommand_HasRoomItemForSale, + ScriptCommand_CheckLocalFlag, + ScriptCommand_CheckLocalFlagByBank, + ScriptCommand_CheckGlobalFlag, + ScriptCommand_CheckRoomFlag, + ScriptCommand_CheckPlayerInRegion, + ScriptCommand_CheckPlayerInRegion2, + ScriptCommand_CheckEntityInteractType, + ScriptCommand_0807E30C, + ScriptCommand_HasRupees, + ScriptCommand_0807E3BC, + ScriptCommand_0807E3E8, + ScriptCommand_CheckKinstoneFused, + ScriptCommand_BuyItem, + ScriptCommand_0807E48C, + ScriptCommand_0807E4CC, + ScriptCommand_0807E4EC, + ScriptCommand_0807E514, + ScriptCommand_CheckPlayerFlags, + ScriptCommand_0807E564, + ScriptCommand_EntityHasHeight, + ScriptCommand_ComparePlayerAction, + ScriptCommand_ComparePlayerAnimationState, + ScriptCommand_0807E5F8, + ScriptCommand_0807E610, + ScriptCommand_SetLocalFlag, + ScriptCommand_SetLocalFlagByBank, + ScriptCommand_ClearLocalFlag, + ScriptCommand_SetGlobalFlag, + ScriptCommand_ClearGlobalFlag, + ScriptCommand_SetRoomFlag, + ScriptCommand_ClearRoomFlag, + ScriptCommand_Wait, + ScriptCommand_WaitForSomething, + ScriptCommand_WaitForSomething2, + ScriptCommand_WaitPlayerGetItem, + ScriptCommand_WaitForPlayerAction0x17, + ScriptCommand_WaitFor_1, + ScriptCommand_WaitFor_2, + ScriptCommand_0807E778, + ScriptCommand_SetFadeMask, + ScriptCommand_0807E79C, + ScriptCommandNop2, + ScriptCommand_DoFade4, + ScriptCommand_DoFade5, + ScriptCommand_DoFade6, + ScriptCommand_DoFade7, + ScriptCommand_0807E800, + ScriptCommand_0807E80C, + ScriptCommand_0807E858, + ScriptCommand_0807E864, + ScriptCommand_0807E878, + ScriptCommand_0807E888, + ScriptCommand_SetPlayerAction, + ScriptCommand_StartPlayerScript, + ScriptCommand_0807E8D4, + ScriptCommand_0807E8E4, + ScriptCommand_0807E8E4, + ScriptCommand_0807E8E4, + ScriptCommand_0807E8E4, + ScriptCommand_0807E908, + ScriptCommand_SetIntVariable, + ScriptCommand_0807E924, + ScriptCommand_0807E930, + ScriptCommand_0807E944, + ScriptCommand_0807E974, + ScriptCommand_0807E9D4, + ScriptCommand_0807E9DC, + ScriptCommand_0807E9E4, + ScriptCommand_0807E9F0, + ScriptCommand_0807EA4C, + ScriptCommand_0807EA88, + ScriptCommand_WaitUntilTextboxCloses, + ScriptCommand_MessageFromTarget, + ScriptCommand_MessageNoOverlap, + ScriptCommand_MessageFromTargetPos, + ScriptCommand_MessageFromTargetTable, + ScriptCommand_MessageNoOverlapVar, + ScriptCommand_0807EB28, + ScriptCommand_0807EB38, + ScriptCommand_0807EB44, + ScriptCommand_0807EB4C, + ScriptCommand_0807EB74, + ScriptCommand_0807EB8C, + ScriptCommand_SetEntityDirection, + ScriptCommand_SetEntityDirectionWithAnimationState, + ScriptCommand_SetEntitySpeed, + ScriptCommand_SetEntity0x20, + ScriptCommand_SetEntityPositionRelative, + ScriptCommand_OffsetEntityPosition, + ScriptCommand_MoveEntityToPlayer, + ScriptCommandNop3, + ScriptCommand_0807EC1C, + ScriptCommand_0807EC64, + ScriptCommand_0807EC94, + ScriptCommand_0807ECC4, + ScriptCommand_0807ECF4, + ScriptCommand_0807ED24, + ScriptCommand_0807EDD4, + ScriptCommand_0807EE04, + ScriptCommand_0807EE30, + ScriptCommand_0807EEB4, + ScriptCommand_0807EEF4, + ScriptCommand_0807EF3C, + ScriptCommand_DoPostScriptAction, + ScriptCommand_DoPostScriptAction2, + ScriptCommand_PlaySound, + ScriptCommand_PlayBgm, + ScriptCommand_SoundReq, + ScriptCommand_StopBgm, + ScriptCommand_ModRupees, + ScriptCommand_ModHealth, + ScriptCommand_IncreaseMaxHealth, + ScriptCommand_0807F034, + ScriptCommand_0807F050, + ScriptCommand_GetInventoryValue, + ScriptCommand_0807F078, + ScriptCommand_0807F088, + ScriptCommand_CameraTargetEntity, + ScriptCommand_CameraTargetPlayer, + ScriptCommand_0807F0B4, + ScriptCommand_0807F0C8, + }; + if (!context->scriptInstructionPointer) return; if (context->wait) { @@ -714,13 +720,13 @@ void ScriptCommand_LoadRoomEntityList(Entity* entity, ScriptExecutionContext* co } void ScriptCommand_TestBit(Entity* entity, ScriptExecutionContext* context) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); - u32 tmp2 = 0; - u32 tmp3 = gActiveScriptInfo.unk_00; - if ((tmp3 & tmp) == tmp) - tmp2 = 1; - context->condition = tmp2; - gActiveScriptInfo.unk_00 = tmp3 & ~tmp; + u32 flag = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); + u32 set = 0; + u32 field = gActiveScriptInfo.unk_00; + if ((field & flag) == flag) + set = 1; + context->condition = set; + gActiveScriptInfo.unk_00 = field & ~flag; gActiveScriptInfo.flags |= 1; } @@ -807,7 +813,7 @@ void ScriptCommand_CheckEntityInteractType(Entity* entity, ScriptExecutionContex void ScriptCommand_0807E30C(Entity* entity, ScriptExecutionContext* context) { if ((context->unk_1A & 0xF) == 0 && (gPlayerState.flags & PL_MINISH) == 0 && - sub_080041A0(entity, &gPlayerEntity, 0x28, 0x28)) { + EntityInRectRadius(entity, &gPlayerEntity, 40, 40)) { entity->animationState = sub_0806F5B0(GetFacingDirection(entity, &gPlayerEntity)); } context->unk_1A++; @@ -847,16 +853,16 @@ void ScriptCommand_BuyItem(Entity* entity, ScriptExecutionContext* context) { item = context->scriptInstructionPointer[1]; tmp2 = context->scriptInstructionPointer[2]; if (!item) { - item = gRoomVars.itemForSaleIndex; - tmp2 = gRoomVars.field_0x7; + item = gRoomVars.shopItemType; + tmp2 = gRoomVars.shopItemType2; } price = GetItemPrice(item); context->condition = (price <= gSave.stats.rupees); if (context->condition) { ModRupees(-price); sub_080A7C18(item, tmp2, 0); - gRoomVars.itemForSaleIndex = 0; - gRoomVars.field_0x7 = 0; + gRoomVars.shopItemType = 0; + gRoomVars.shopItemType2 = 0; } gActiveScriptInfo.flags |= 1; } @@ -867,7 +873,7 @@ void ScriptCommand_0807E48C(Entity* entity, ScriptExecutionContext* context) { } void ScriptCommand_HasRoomItemForSale(Entity* entity, ScriptExecutionContext* context) { - context->condition = !!gRoomVars.itemForSaleIndex; + context->condition = !!gRoomVars.shopItemType; gActiveScriptInfo.flags |= 1; } @@ -971,11 +977,11 @@ void ScriptCommand_WaitForSomething2(Entity* entity, ScriptExecutionContext* con } } -void ScriptCommand_WaitPlayerAction8(Entity* entity, ScriptExecutionContext* context) { - if (gPlayerEntity.action == 8) { +void ScriptCommand_WaitPlayerGetItem(Entity* entity, ScriptExecutionContext* context) { + if (gPlayerEntity.action == PLAYER_ITEMGET) { gActiveScriptInfo.commandSize = 0; } else { - context->wait = 0x2D; + context->wait = 45; } } @@ -1058,16 +1064,16 @@ void ScriptCommand_0807E858(Entity* entity, ScriptExecutionContext* context) { } void ScriptCommand_0807E864(Entity* entity, ScriptExecutionContext* context) { - gPlayerState.field_0x8b = 3; + gPlayerState.controlMode = CONTROL_DISABLED; sub_08078B48(); } void ScriptCommand_0807E878(Entity* entity, ScriptExecutionContext* context) { - gPlayerState.field_0x8b = 1; + gPlayerState.controlMode = 1; } void ScriptCommand_0807E888(Entity* entity, ScriptExecutionContext* context) { - gPlayerState.field_0x8b = 3; + gPlayerState.controlMode = CONTROL_DISABLED; } void ScriptCommand_SetPlayerAction(Entity* entity, ScriptExecutionContext* context) { @@ -1083,7 +1089,7 @@ void ScriptCommand_StartPlayerScript(Entity* entity, ScriptExecutionContext* con } void ScriptCommand_0807E8D4(Entity* entity, ScriptExecutionContext* context) { - gPlayerState.field_0x8 = context->scriptInstructionPointer[1]; + gPlayerState.animation = context->scriptInstructionPointer[1]; } void ScriptCommand_0807E8E4(Entity* entity, ScriptExecutionContext* context) { @@ -1161,7 +1167,7 @@ void ScriptCommand_0807E9F0(Entity* entity, ScriptExecutionContext* context) { tmp = 1; switch (gUnk_02022740[0]) { case 2: - gPlayerState.field_0x8b = 3; + gPlayerState.controlMode = CONTROL_DISABLED; gUnk_02034490[0] = tmp; context->condition = tmp; break; @@ -1173,7 +1179,7 @@ void ScriptCommand_0807E9F0(Entity* entity, ScriptExecutionContext* context) { } if (tmp) { sub_0807919C(); - gPlayerState.field_0x8b = 1; + gPlayerState.controlMode = 1; } else { lbl: gActiveScriptInfo.commandSize = 0; @@ -1275,7 +1281,7 @@ void ScriptCommand_SetEntityPositionRelative(Entity* entity, ScriptExecutionCont entity->y.HALF.HI = gRoomControls.roomOriginY + context->scriptInstructionPointer[2]; } -void ScriptCommand_SetEntityPosition(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_OffsetEntityPosition(Entity* entity, ScriptExecutionContext* context) { entity->x.HALF.HI += context->scriptInstructionPointer[1]; entity->y.HALF.HI += context->scriptInstructionPointer[2]; } @@ -1308,7 +1314,7 @@ void ScriptCommand_0807EC64(Entity* entity, ScriptExecutionContext* context) { context->unk_18 = 1; context->unk_12 = context->scriptInstructionPointer[1]; entity->animationState = 0; - entity->direction = 0; + entity->direction = DirectionNorth; context->postScriptActions |= 2; } sub_0807EC44(entity, context); @@ -1319,7 +1325,7 @@ void ScriptCommand_0807EC94(Entity* entity, ScriptExecutionContext* context) { context->unk_18 = 1; context->unk_12 = context->scriptInstructionPointer[1]; entity->animationState = 2; - entity->direction = 8; + entity->direction = DirectionEast; context->postScriptActions |= 2; } sub_0807EC44(entity, context); @@ -1330,7 +1336,7 @@ void ScriptCommand_0807ECC4(Entity* entity, ScriptExecutionContext* context) { context->unk_18 = 1; context->unk_12 = context->scriptInstructionPointer[1]; entity->animationState = 4; - entity->direction = 0x10; + entity->direction = DirectionSouth; context->postScriptActions |= 2; } sub_0807EC44(entity, context); @@ -1341,7 +1347,7 @@ void ScriptCommand_0807ECF4(Entity* entity, ScriptExecutionContext* context) { context->unk_18 = 1; context->unk_12 = context->scriptInstructionPointer[1]; entity->animationState = 6; - entity->direction = 0x18; + entity->direction = DirectionWest; context->postScriptActions |= 2; } sub_0807EC44(entity, context); @@ -1543,19 +1549,20 @@ void sub_0807F0EC(Entity* entity, ScriptExecutionContext* context) { } void sub_0807F100(Entity* entity, ScriptExecutionContext* context) { - u32 rand; + static const u8 sValues[] = { 0xa, 0x14, 0x1e, 0x12, 0x1c, 0x26, 0xc, 0x18 }; - rand = Random(); + u32 rand = Random(); entity->animationState = rand & 6; - context->unk_1A = gUnk_0811E750[(rand >> 8) & 7]; + context->unk_1A = sValues[(rand >> 8) % 8]; } void sub_0807F128(Entity* entity, ScriptExecutionContext* context) { - u32 rand; + static const u8 sAnimations[] = { 6, 2, 6, 2, 4, 6, 4, 2 }; + static const u8 sValues[] = { 0xa, 0x14, 0x1e, 0x12, 0x1c, 0x26, 0xc, 0x18 }; - rand = Random(); - entity->animationState = gUnk_0811E758[rand & 7]; - context->unk_1A = gUnk_0811E760[(rand >> 8) & 7]; + u32 rand = Random(); + entity->animationState = sAnimations[rand & 7]; + context->unk_1A = sValues[(rand >> 8) % 8]; } void sub_0807F158(Entity* entity, ScriptExecutionContext* context) { @@ -1583,31 +1590,31 @@ void sub_0807F1A0(Entity* entity, ScriptExecutionContext* context) { } void sub_0807F1C4(Entity* entity, ScriptExecutionContext* context) { - if ((gPlayerState.flags & 8) != 0) { - gPlayerState.field_0x8 = 0x459; + if (gPlayerState.flags & PL_NO_CAP) { + gPlayerState.animation = 0x459; } else { - gPlayerState.field_0x8 = 0x1bc; + gPlayerState.animation = 0x1bc; } } void sub_0807F1E8(Entity* entity, ScriptExecutionContext* context) { - if ((gPlayerState.flags & 8) != 0) { - gPlayerState.field_0x8 = 0x45a; + if (gPlayerState.flags & PL_NO_CAP) { + gPlayerState.animation = 0x45a; } else { - gPlayerState.field_0x8 = 0x2bd; + gPlayerState.animation = 0x2bd; } } void sub_0807F210(Entity* entity, ScriptExecutionContext* context) { - if ((gPlayerState.flags & 8) != 0) { - gPlayerState.field_0x8 = 0x41c; + if (gPlayerState.flags & PL_NO_CAP) { + gPlayerState.animation = 0x41c; } else { - gPlayerState.field_0x8 = 0x80c; + gPlayerState.animation = 0x80c; } } void sub_0807F238(Entity* entity, ScriptExecutionContext* context) { - gPlayerState.field_0x8 = context->intVariable; + gPlayerState.animation = context->intVariable; } void sub_0807F244(Entity* entity, ScriptExecutionContext* context) { @@ -1672,15 +1679,15 @@ void sub_0807F338(Entity* entity, ScriptExecutionContext* context) { } void sub_0807F348(Entity* entity, ScriptExecutionContext* context) { - SetDefaultPriority(entity, 2); + SetDefaultPriority(entity, PRIO_MESSAGE); } void sub_0807F354(Entity* entity, ScriptExecutionContext* context) { - SetDefaultPriority(entity, 6); + SetDefaultPriority(entity, PRIO_PLAYER_EVENT); } void sub_0807F360(Entity* entity, ScriptExecutionContext* context) { - SetDefaultPriority(entity, 3); + SetDefaultPriority(entity, PRIO_NO_BLOCK); } void sub_0807F36C(Entity* entity, ScriptExecutionContext* context) { @@ -1688,7 +1695,7 @@ void sub_0807F36C(Entity* entity, ScriptExecutionContext* context) { fx = CreateFx(entity, FX_REFLECT4, 0); if (fx != NULL) { fx->spritePriority.b0 = 1; - PositionRelative(entity, fx, 0, -524288); + PositionRelative(entity, fx, 0, -0x80000); if (Random() & 1) fx->spriteSettings.flipX = 1; if (Random() & 1) @@ -1823,13 +1830,13 @@ void sub_0807F5C0(Entity* entity, ScriptExecutionContext* context) { void sub_0807F634(Entity* entity, ScriptExecutionContext* context) { u16* p = (u16*)context->intVariable; sub_0801DFB4(entity, p[0], p[1], p[2]); - gPlayerState.field_0x8b = 3; + gPlayerState.controlMode = CONTROL_DISABLED; } void sub_0807F650(Entity* entity, ScriptExecutionContext* context) { u32 p = sub_08002632(entity); sub_0801DFB4(entity, gUnk_08001A7C[p][0], gUnk_08001A7C[p][1], gUnk_08001A7C[p][2]); - gPlayerState.field_0x8b = 3; + gPlayerState.controlMode = CONTROL_DISABLED; } void sub_0807F680(Entity* entity, ScriptExecutionContext* context) { @@ -1883,7 +1890,7 @@ void sub_0807F78C(Entity* entity, ScriptExecutionContext* context) { u32 price; if (context->intVariable == 0) - item = gRoomVars.itemForSaleIndex; + item = gRoomVars.shopItemType; msg = GetSaleItemConfirmMessageID(item); price = GetItemPrice(item); @@ -1897,7 +1904,7 @@ void sub_0807F7C4(Entity* entity, ScriptExecutionContext* context) { u32 price; if (context->intVariable == 0) - item = gRoomVars.itemForSaleIndex; + item = gRoomVars.shopItemType; context->condition = GetItemPrice(item) <= gSave.stats.rupees; gActiveScriptInfo.flags |= 1; @@ -1909,12 +1916,12 @@ void sub_0807F800(Entity* entity, ScriptExecutionContext* context) { u32 price; if (context->intVariable == 0) - item = gRoomVars.itemForSaleIndex; + item = gRoomVars.shopItemType; price = GetItemPrice(item); ModRupees(-price); sub_080A7C18(item, 0, 0); - gRoomVars.itemForSaleIndex = 0; + gRoomVars.shopItemType = 0; gActiveScriptInfo.flags |= 1; } From 6e859e7be930354dbe154c4166ffb57d38868991 Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 14 Dec 2021 23:33:50 -0800 Subject: [PATCH 014/168] upstream renamed symbol --- src/object/octorokBossObject.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/object/octorokBossObject.c b/src/object/octorokBossObject.c index 39d3b2a2..b1df61ee 100644 --- a/src/object/octorokBossObject.c +++ b/src/object/octorokBossObject.c @@ -177,7 +177,7 @@ NONMATCH("asm/non_matching/octorokBossObject/OctorokBossObject_Action1.inc", this->direction = sub_080045DA(GET_HELPER(this)->tailObjects[this->actionDelay]->x.WORD - this->x.WORD, GET_HELPER(this)->tailObjects[this->actionDelay]->y.WORD - this->y.WORD); sub_0806F62C(this, this->speed, this->direction); - if (sub_080041A0(this, GET_HELPER(this)->tailObjects[this->actionDelay], 2, 2) == 0) { + if (EntityInRectRadius(this, GET_HELPER(this)->tailObjects[this->actionDelay], 2, 2) == 0) { return; } if (this->type == 0) { From 49a57a6316673c28b57b0d229942a09a98733691 Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 14 Dec 2021 23:36:18 -0800 Subject: [PATCH 015/168] clang-format --- src/main.c | 1 - src/manager/manager18.c | 3 ++- src/overworld.c | 3 ++- src/player.c | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main.c b/src/main.c index 906b6608..db3587c5 100644 --- a/src/main.c +++ b/src/main.c @@ -276,7 +276,6 @@ void sub_08056260(void) { m->field_0x1 = 0; } - // Convert AABB to screen coordinates and check if it's within the viewport u32 CheckRegionOnScreen(u32 x0, u32 y0, u32 x1, u32 y1) { u32 result; diff --git a/src/manager/manager18.c b/src/manager/manager18.c index e18fd94e..4acc0bc4 100644 --- a/src/manager/manager18.c +++ b/src/manager/manager18.c @@ -49,7 +49,8 @@ void Manager18_Main(Manager18* this) { void sub_0805AEDC(Manager18* this) { gScreen.bg3.control = BGCNT_SCREENBASE(30) | BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1); gScreen.lcd.displayControl |= DISPCNT_BG3_ON; - gScreen.controls.layerFXControl = BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; + gScreen.controls.layerFXControl = + BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; gScreen.controls.alphaBlend = (this != NULL) ? this->field_0x20 : BLDALPHA_BLEND(0, 16); gScreen.bg3.xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; gScreen.bg3.yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; diff --git a/src/overworld.c b/src/overworld.c index 61e07af5..a5cc9c59 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -637,7 +637,8 @@ static void HandleRoomEnter(void) { u32 sub_08052B24(void) { s32 tmp = 1; - if (!(gInput.heldKeys & SELECT_BUTTON) || gPlayerState.controlMode != CONTROL_ENABLED || gUnk_02034490[0] || gUnk_0200AF00.filler0[1]) + if (!(gInput.heldKeys & SELECT_BUTTON) || gPlayerState.controlMode != CONTROL_ENABLED || gUnk_02034490[0] || + gUnk_0200AF00.filler0[1]) return 0; if ((gPlayerState.flags & 0x118) || (gPlayerState.field_0xa9 > tmp) || gPlayerState.field_0x2c || diff --git a/src/player.c b/src/player.c index a31d841c..eefd0d92 100644 --- a/src/player.c +++ b/src/player.c @@ -2214,7 +2214,7 @@ static void sub_08073094(Entity* this) { } static void PlayerUseEntrance(Entity* this) { - static EntityAction* const sPlayerUseEntranceStates[] = { + static EntityAction* const sPlayerUseEntranceStates[] = { sub_080731D8, sub_080732D0, sub_0807332C, From 05edb3e24c1993282bbafa5c221e35d3670a62b1 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Thu, 16 Dec 2021 00:01:52 +0100 Subject: [PATCH 016/168] Match sub_0801B8FC --- asm/non_matching/playerItemC/sub_0801B8FC.inc | 32 ------------------- src/playerItem/playerItemC.c | 8 ++--- 2 files changed, 2 insertions(+), 38 deletions(-) delete mode 100644 asm/non_matching/playerItemC/sub_0801B8FC.inc diff --git a/asm/non_matching/playerItemC/sub_0801B8FC.inc b/asm/non_matching/playerItemC/sub_0801B8FC.inc deleted file mode 100644 index 6da851da..00000000 --- a/asm/non_matching/playerItemC/sub_0801B8FC.inc +++ /dev/null @@ -1,32 +0,0 @@ - .syntax unified - push {lr} - ldr r1, _0801B90C @ =gPlayerState - ldr r2, [r1, #0x2c] - cmp r2, r0 - beq _0801B910 - bl DeleteThisEntity - b _0801B934 - .align 2, 0 -_0801B90C: .4byte gPlayerState -_0801B910: - ldrb r0, [r1, #0x1e] - cmp r0, #0 - bne _0801B91E - str r0, [r1, #0x2c] - bl DeleteThisEntity - b _0801B934 -_0801B91E: - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r1, r2, #0 - adds r1, #0x3c - movs r0, #0x21 - strb r0, [r1] - adds r0, r2, #0 - bl sub_0801B938 -_0801B934: - pop {pc} - .align 2, 0 - .syntax divided diff --git a/src/playerItem/playerItemC.c b/src/playerItem/playerItemC.c index 2ae472d3..d223b637 100644 --- a/src/playerItem/playerItemC.c +++ b/src/playerItem/playerItemC.c @@ -31,10 +31,8 @@ void sub_0801B8B0(Entity* this) { } } -NONMATCH("asm/non_matching/playerItemC/sub_0801B8FC.inc", void sub_0801B8FC(Entity* this)) { +void sub_0801B8FC(Entity* this) { Entity* pbVar1; - u32 tmp; - pbVar1 = (Entity*)gPlayerState.field_0x2c; if ((Entity*)gPlayerState.field_0x2c != this) { DeleteThisEntity(); @@ -43,14 +41,12 @@ NONMATCH("asm/non_matching/playerItemC/sub_0801B8FC.inc", void sub_0801B8FC(Enti gPlayerState.field_0x2c = (u8*)(u32)gPlayerState.field_0x1d[1]; DeleteThisEntity(); } else { - // TODO regalloc - gPlayerState.field_0x2c[0x10] |= 0x80; + pbVar1->flags |= 0x80; pbVar1->field_0x3c = 0x21; sub_0801B938(pbVar1); } } } -END_NONMATCH ASM_FUNC("asm/non_matching/playerItemC/sub_0801B938.inc", void sub_0801B938(Entity* this)) From 28bf8b929fa13f89ce0a555fbcbb5545e4e4a88a Mon Sep 17 00:00:00 2001 From: theo3 Date: Thu, 16 Dec 2021 21:12:43 -0800 Subject: [PATCH 017/168] furniture ok --- asm/furniture.s | 1102 --------------------- asm/non_matching/furniture/sub_08090E64.s | 33 + data/animations/object/furniture.s | 18 - include/entity.h | 2 + include/global.h | 2 + linker.ld | 3 +- src/object/furniture.c | 390 ++++++++ 7 files changed, 429 insertions(+), 1121 deletions(-) delete mode 100644 asm/furniture.s create mode 100644 asm/non_matching/furniture/sub_08090E64.s create mode 100644 src/object/furniture.c diff --git a/asm/furniture.s b/asm/furniture.s deleted file mode 100644 index 9b2cf28d..00000000 --- a/asm/furniture.s +++ /dev/null @@ -1,1102 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Furniture -Furniture: @ 0x080905A0 - push {lr} - ldr r2, _080905B4 @ =gUnk_08122218 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080905B4: .4byte gUnk_08122218 - - thumb_func_start sub_080905B8 -sub_080905B8: @ 0x080905B8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - movs r0, #1 - mov sb, r0 - mov r1, sb - strb r1, [r7, #0xc] - movs r5, #0x2e - ldrsh r2, [r7, r5] - ldr r6, _08090618 @ =gRoomControls - ldrh r0, [r6, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r1, #0x32 - ldrsh r0, [r7, r1] - ldrh r1, [r6, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r2, r0 - adds r5, r7, #0 - adds r5, #0x78 - movs r0, #0 - mov r8, r0 - strh r2, [r5] - adds r0, r7, #0 - bl sub_08090DC4 - adds r0, r7, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldr r1, _0809061C @ =0x00007FFF - ands r1, r0 - cmp r1, #0x80 - beq _08090680 - cmp r1, #0x80 - bgt _08090620 - cmp r1, #0x20 - beq _080906E6 - cmp r1, #0x40 - beq _08090650 - b _080906E0 - .align 2, 0 -_08090618: .4byte gRoomControls -_0809061C: .4byte 0x00007FFF -_08090620: - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - beq _080906E6 - cmp r1, r0 - bgt _08090636 - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08090640 - b _080906E0 -_08090636: - movs r0, #0x80 - lsls r0, r0, #3 - cmp r1, r0 - beq _080906C4 - b _080906E0 -_08090640: - adds r1, r7, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r7, #0 - bl UpdateSpriteForCollisionLayer - b _080906E6 -_08090650: - ldrh r1, [r7, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strh r0, [r7, #0x32] - ldr r4, _0809067C @ =0x00004017 - ldrh r1, [r5] - subs r1, #0x80 - adds r0, r4, #0 - movs r2, #1 - bl SetTile - ldrh r1, [r5] - subs r1, #0x40 - adds r0, r4, #0 - movs r2, #1 - bl SetTile - b _080906E6 - .align 2, 0 -_0809067C: .4byte 0x00004017 -_08090680: - mov r1, r8 - strb r1, [r7, #0x1e] - ldrh r1, [r7, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strh r0, [r7, #0x32] - movs r2, #0x2e - ldrsh r1, [r7, r2] - ldrh r0, [r6, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r4 - movs r2, #0x32 - ldrsh r0, [r7, r2] - ldrh r2, [r6, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r5] - ldr r0, _080906C0 @ =0x00004026 - ldrh r1, [r5] - adds r2, r7, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl SetTile - b _080906E6 - .align 2, 0 -_080906C0: .4byte 0x00004026 -_080906C4: - adds r0, r7, #0 - bl sub_08090E64 - ldrb r0, [r7, #0xb] - cmp r0, #0 - beq _080906E0 - adds r0, r7, #0 - adds r0, #0x62 - mov r5, sb - strb r5, [r0] - adds r1, r7, #0 - adds r1, #0x80 - movs r0, #0x30 - strb r0, [r1] -_080906E0: - adds r0, r7, #0 - bl sub_08090B6C -_080906E6: - adds r0, r7, #0 - adds r0, #0x81 - ldrb r1, [r0] - cmp r1, #0x10 - beq _0809075C - movs r0, #0x70 - ands r0, r1 - adds r4, r7, #0 - adds r4, #0x78 - cmp r0, #0x20 - beq _0809072E - cmp r0, #0x30 - bne _0809073A - ldrh r0, [r4] - subs r0, #0x40 - strh r0, [r4] - adds r0, r7, #0 - bl sub_08090B6C - movs r0, #0x2e - ldrsh r1, [r7, r0] - ldr r2, _08090778 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r7, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4] -_0809072E: - ldrh r0, [r4] - adds r0, #0x40 - strh r0, [r4] - adds r0, r7, #0 - bl sub_08090B6C -_0809073A: - movs r0, #0x2e - ldrsh r1, [r7, r0] - ldr r2, _08090778 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r7, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4] -_0809075C: - adds r0, r7, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldr r1, _0809077C @ =0x00007FFF - ands r1, r0 - cmp r1, #2 - beq _08090780 - cmp r1, #4 - bne _080907C8 - adds r0, r7, #0 - movs r1, #0x7e - bl ChangeObjPalette - b _080907C8 - .align 2, 0 -_08090778: .4byte gRoomControls -_0809077C: .4byte 0x00007FFF -_08090780: - adds r0, r7, #0 - adds r0, #0x78 - ldrh r0, [r0] - adds r4, r0, #0 - subs r4, #0x81 - ldrb r0, [r7, #0xa] - movs r1, #2 - mov r8, r1 - cmp r0, #0x1a - beq _08090798 - movs r2, #3 - mov r8, r2 -_08090798: - movs r5, #0 - cmp r5, r8 - bhs _080907C8 - ldr r6, _080907DC @ =0x00004026 -_080907A0: - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #2 - bl SetTile - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #1 - bl SetTile - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0 - movs r2, #1 - bl sub_080001D0 - adds r5, #1 - adds r4, #1 - cmp r5, r8 - blo _080907A0 -_080907C8: - ldrb r0, [r7, #0xa] - subs r0, #1 - cmp r0, #0x3b - bls _080907D2 - b _080909DC -_080907D2: - lsls r0, r0, #2 - ldr r1, _080907E0 @ =_080907E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080907DC: .4byte 0x00004026 -_080907E0: .4byte _080907E4 -_080907E4: @ jump table - .4byte _080908D4 @ case 0 - .4byte _080909DC @ case 1 - .4byte _080909DC @ case 2 - .4byte _080909DC @ case 3 - .4byte _080909DC @ case 4 - .4byte _080909DC @ case 5 - .4byte _080909DC @ case 6 - .4byte _080909DC @ case 7 - .4byte _080908F0 @ case 8 - .4byte _080909DC @ case 9 - .4byte _080909DC @ case 10 - .4byte _080909DC @ case 11 - .4byte _080909DC @ case 12 - .4byte _080909DC @ case 13 - .4byte _080909DC @ case 14 - .4byte _080909DC @ case 15 - .4byte _080909DC @ case 16 - .4byte _080909DC @ case 17 - .4byte _080909DC @ case 18 - .4byte _080909DC @ case 19 - .4byte _080909DC @ case 20 - .4byte _080909DC @ case 21 - .4byte _080909DC @ case 22 - .4byte _080909DC @ case 23 - .4byte _080909DC @ case 24 - .4byte _080909DC @ case 25 - .4byte _080909DC @ case 26 - .4byte _080909DC @ case 27 - .4byte _080909DC @ case 28 - .4byte _08090920 @ case 29 - .4byte _08090938 @ case 30 - .4byte _080909DC @ case 31 - .4byte _080909DC @ case 32 - .4byte _080909DC @ case 33 - .4byte _080909DC @ case 34 - .4byte _080909DC @ case 35 - .4byte _080909DC @ case 36 - .4byte _080909DC @ case 37 - .4byte _080909DC @ case 38 - .4byte _08090984 @ case 39 - .4byte _080909DC @ case 40 - .4byte _080909DC @ case 41 - .4byte _080909DC @ case 42 - .4byte _080909DC @ case 43 - .4byte _080909DC @ case 44 - .4byte _080909DC @ case 45 - .4byte _080909DC @ case 46 - .4byte _080909DC @ case 47 - .4byte _080909DC @ case 48 - .4byte _080909DC @ case 49 - .4byte _080909DC @ case 50 - .4byte _080909DC @ case 51 - .4byte _080909DC @ case 52 - .4byte _080909DC @ case 53 - .4byte _080909DC @ case 54 - .4byte _080909DC @ case 55 - .4byte _080909DC @ case 56 - .4byte _080909DC @ case 57 - .4byte _08090994 @ case 58 - .4byte _080909C8 @ case 59 -_080908D4: - ldrb r0, [r7, #0xb] - cmp r0, #0 - bne _080908DC - b _080909DC -_080908DC: - adds r2, r7, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - b _080909DC -_080908F0: - movs r0, #0x4d - movs r1, #0x3e - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080909DC - movs r3, #0x80 - lsls r3, r3, #0xd - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r3, #0 - bl PositionRelative - movs r0, #1 - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x11] - subs r0, #0x11 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r4, #0x11] - b _080909DC -_08090920: - ldr r0, _08090934 @ =0x00000306 - adds r1, r7, #0 - adds r1, #0x78 - ldrh r1, [r1] - adds r1, #0x41 - movs r2, #2 - bl sub_0807B7D8 - b _080909DC - .align 2, 0 -_08090934: .4byte 0x00000306 -_08090938: - adds r5, r7, #0 - adds r5, #0x38 - movs r0, #1 - strb r0, [r5] - ldrb r1, [r7, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r7, #0x1b] - ldr r0, _0809097C @ =0x00004074 - adds r4, r7, #0 - adds r4, #0x78 - ldrh r1, [r4] - subs r1, #0x40 - ldrb r2, [r5] - bl SetTile - ldrh r1, [r4] - subs r1, #0x40 - ldrb r2, [r5] - movs r0, #0x3f - bl sub_080001D0 - ldr r6, _08090980 @ =0x00004017 - ldrh r1, [r4] - ldrb r2, [r5] - adds r0, r6, #0 - bl SetTile - ldrh r1, [r4] - adds r1, #0x40 - ldrb r2, [r5] - b _080909BC - .align 2, 0 -_0809097C: .4byte 0x00004074 -_08090980: .4byte 0x00004017 -_08090984: - ldrb r0, [r7, #0xb] - cmp r0, #0 - beq _080909DC - adds r1, r7, #0 - adds r1, #0x62 - movs r0, #0xfc - strb r0, [r1] - b _080909DC -_08090994: - ldr r6, _080909C4 @ =0x00004023 - adds r5, r7, #0 - adds r5, #0x78 - ldrh r1, [r5] - subs r1, #0x41 - adds r4, r7, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r6, #0 - bl SetTile - ldrh r1, [r5] - subs r1, #0x40 - ldrb r2, [r4] - adds r0, r6, #0 - bl SetTile - ldrh r1, [r5] - subs r1, #0x3f - ldrb r2, [r4] -_080909BC: - adds r0, r6, #0 - bl SetTile - b _080909DC - .align 2, 0 -_080909C4: .4byte 0x00004023 -_080909C8: - ldr r0, _080909E4 @ =0x00004022 - adds r1, r7, #0 - adds r1, #0x78 - ldrh r1, [r1] - adds r1, #0x41 - adds r2, r7, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl SetTile -_080909DC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080909E4: .4byte 0x00004022 - - thumb_func_start sub_080909E8 -sub_080909E8: @ 0x080909E8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldr r1, _08090A04 @ =0x00007FFF - ands r1, r0 - cmp r1, #8 - beq _08090A42 - cmp r1, #8 - bgt _08090A08 - cmp r1, #1 - beq _08090A12 - b _08090B60 - .align 2, 0 -_08090A04: .4byte 0x00007FFF -_08090A08: - cmp r1, #0x10 - beq _08090A68 - cmp r1, #0x80 - beq _08090AB0 - b _08090B60 -_08090A12: - ldr r2, _08090A34 @ =gPlayerEntity - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r3, #0x32 - ldrsh r0, [r5, r3] - cmp r1, r0 - blt _08090A26 - adds r0, #0x18 - cmp r1, r0 - ble _08090A38 -_08090A26: - ldrb r0, [r5, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r5, #0x19] - b _08090B60 - .align 2, 0 -_08090A34: .4byte gPlayerEntity -_08090A38: - ldrb r0, [r5, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r5, #0x19] - b _08090B60 -_08090A42: - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - beq _08090A52 - b _08090B60 -_08090A52: - movs r0, #0 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xf] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_08090E4C - b _08090B60 -_08090A68: - ldrb r0, [r5, #0xa] - cmp r0, #0x3e - beq _08090A8C - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x14 - bne _08090B60 - ldrb r0, [r5, #0x1e] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0x1e] - movs r0, #0 - strb r0, [r5, #0xe] - b _08090B60 -_08090A8C: - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe - bne _08090B60 - movs r0, #0 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xf] - adds r0, #1 - movs r1, #3 - bl __modsi3 - strb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0x1e] - b _08090B60 -_08090AB0: - ldr r2, _08090B00 @ =gPlayerEntity - movs r3, #0x32 - ldrsh r1, [r2, r3] - movs r3, #0x32 - ldrsh r0, [r5, r3] - adds r0, #8 - cmp r1, r0 - bge _08090B14 - ldr r0, _08090B04 @ =gPlayerState - ldrb r0, [r0, #0x12] - cmp r0, #0x1e - beq _08090B60 - adds r0, r5, #0 - bl GetTileTypeByEntity - ldr r1, _08090B08 @ =0x00004017 - cmp r0, r1 - bne _08090B60 - ldr r0, _08090B0C @ =0x00004026 - adds r4, r5, #0 - adds r4, #0x78 - ldrh r1, [r4] - adds r5, #0x38 - ldrb r2, [r5] - bl SetTile - ldr r6, _08090B10 @ =0x0000403D - ldrh r1, [r4] - subs r1, #0x40 - ldrb r2, [r5] - adds r0, r6, #0 - bl SetTile - ldrh r1, [r4] - subs r1, #0x80 - ldrb r2, [r5] - adds r0, r6, #0 - bl SetTile - b _08090B60 - .align 2, 0 -_08090B00: .4byte gPlayerEntity -_08090B04: .4byte gPlayerState -_08090B08: .4byte 0x00004017 -_08090B0C: .4byte 0x00004026 -_08090B10: .4byte 0x0000403D -_08090B14: - adds r3, r2, #0 - adds r3, #0x38 - ldrb r1, [r3] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08090B2C - movs r0, #1 - strb r0, [r3] - adds r0, r2, #0 - bl UpdateSpriteForCollisionLayer -_08090B2C: - adds r0, r5, #0 - bl GetTileTypeByEntity - ldr r6, _08090B64 @ =0x00004017 - cmp r0, r6 - beq _08090B60 - adds r4, r5, #0 - adds r4, #0x78 - ldrh r1, [r4] - adds r5, #0x38 - ldrb r2, [r5] - adds r0, r6, #0 - bl SetTile - ldrh r1, [r4] - subs r1, #0x40 - ldrb r2, [r5] - adds r0, r6, #0 - bl SetTile - ldr r0, _08090B68 @ =0x00004014 - ldrh r1, [r4] - subs r1, #0x80 - ldrb r2, [r5] - bl SetTile -_08090B60: - pop {r4, r5, r6, pc} - .align 2, 0 -_08090B64: .4byte 0x00004017 -_08090B68: .4byte 0x00004014 - - thumb_func_start sub_08090B6C -sub_08090B6C: @ 0x08090B6C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r1, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08090B80 - b _08090CD2 -_08090B80: - lsrs r0, r0, #0x1b - lsls r2, r0, #0x18 - lsrs r3, r2, #0x18 - ldrh r0, [r1, #0x2e] - movs r4, #0xf - mov r8, r4 - ands r4, r0 - mov r8, r4 - adds r0, r1, #0 - adds r0, #0x78 - ldrh r6, [r0] - subs r0, #0x40 - ldrb r7, [r0] - movs r0, #3 - ands r0, r3 - cmp r0, #1 - beq _08090BF8 - cmp r0, #1 - blo _08090BB0 - cmp r0, #2 - beq _08090C48 - cmp r0, #3 - beq _08090C90 - b _08090CD2 -_08090BB0: - lsrs r5, r2, #0x1b - cmp r3, #0xc - bne _08090BB8 - movs r5, #2 -_08090BB8: - rsbs r4, r5, #0 - cmp r4, r5 - bgt _08090BCE -_08090BBE: - adds r1, r6, r4 - ldr r0, _08090BE4 @ =0x00004022 - adds r2, r7, #0 - bl SetTile - adds r4, #1 - cmp r4, r5 - ble _08090BBE -_08090BCE: - movs r0, #8 - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08090BEC - ldr r0, _08090BE8 @ =0x00004024 - subs r1, r6, r4 - adds r2, r7, #0 - bl sub_08090CDC - b _08090CB2 - .align 2, 0 -_08090BE4: .4byte 0x00004022 -_08090BE8: .4byte 0x00004024 -_08090BEC: - ldr r0, _08090BF4 @ =0x00004022 - subs r1, r6, r4 - b _08090C6E - .align 2, 0 -_08090BF4: .4byte 0x00004022 -_08090BF8: - lsrs r5, r2, #0x1b - rsbs r4, r5, #0 - cmp r4, r5 - bgt _08090C10 -_08090C00: - adds r1, r6, r4 - ldr r0, _08090C2C @ =0x00004022 - adds r2, r7, #0 - bl SetTile - adds r4, #1 - cmp r4, r5 - ble _08090C00 -_08090C10: - movs r0, #8 - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08090C34 - ldr r0, _08090C30 @ =0x00004024 - subs r1, r6, r4 - adds r2, r7, #0 - bl sub_08090CDC - cmp r4, #0 - beq _08090CD2 - b _08090C6A - .align 2, 0 -_08090C2C: .4byte 0x00004022 -_08090C30: .4byte 0x00004024 -_08090C34: - cmp r4, #0 - beq _08090CB2 - ldr r0, _08090C44 @ =0x00004022 - subs r1, r6, r4 - adds r2, r7, #0 - bl SetTile - b _08090CB2 - .align 2, 0 -_08090C44: .4byte 0x00004022 -_08090C48: - lsrs r5, r2, #0x1a - rsbs r4, r5, #0 - cmp r4, r5 - bge _08090C60 -_08090C50: - adds r1, r6, r4 - ldr r0, _08090C78 @ =0x00004022 - adds r2, r7, #0 - bl SetTile - adds r4, #1 - cmp r4, r5 - blt _08090C50 -_08090C60: - movs r0, #8 - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08090C7C -_08090C6A: - ldr r0, _08090C78 @ =0x00004022 - adds r1, r6, r4 -_08090C6E: - adds r2, r7, #0 - bl SetTile - b _08090CD2 - .align 2, 0 -_08090C78: .4byte 0x00004022 -_08090C7C: - ldr r0, _08090C8C @ =0x00004024 - subs r1, r6, r4 - subs r1, #1 - adds r2, r7, #0 - bl sub_08090CDC - b _08090CB2 - .align 2, 0 -_08090C8C: .4byte 0x00004024 -_08090C90: - lsrs r5, r2, #0x1a - rsbs r4, r5, #0 - cmp r4, r5 - bgt _08090CA8 -_08090C98: - adds r1, r6, r4 - ldr r0, _08090CC0 @ =0x00004022 - adds r2, r7, #0 - bl SetTile - adds r4, #1 - cmp r4, r5 - ble _08090C98 -_08090CA8: - movs r0, #8 - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08090CC8 -_08090CB2: - ldr r0, _08090CC4 @ =0x00004025 - adds r1, r6, r4 - adds r2, r7, #0 - bl sub_08090CDC - b _08090CD2 - .align 2, 0 -_08090CC0: .4byte 0x00004022 -_08090CC4: .4byte 0x00004025 -_08090CC8: - ldr r0, _08090CD8 @ =0x00004024 - subs r1, r6, r4 - adds r2, r7, #0 - bl sub_08090CDC -_08090CD2: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08090CD8: .4byte 0x00004024 - - thumb_func_start sub_08090CDC -sub_08090CDC: @ 0x08090CDC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_080001DA - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r2 - cmp r0, #0 - bne _08090D06 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl SetTile - b _08090DB2 -_08090D06: - ldr r1, _08090D18 @ =0xFFFFBFDE - adds r0, r2, r1 - cmp r0, #0xb - bhi _08090DB2 - lsls r0, r0, #2 - ldr r1, _08090D1C @ =_08090D20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08090D18: .4byte 0xFFFFBFDE -_08090D1C: .4byte _08090D20 -_08090D20: @ jump table - .4byte _08090DB2 @ case 0 - .4byte _08090DB2 @ case 1 - .4byte _08090D80 @ case 2 - .4byte _08090D50 @ case 3 - .4byte _08090DB2 @ case 4 - .4byte _08090DB2 @ case 5 - .4byte _08090DB2 @ case 6 - .4byte _08090DB2 @ case 7 - .4byte _08090DB2 @ case 8 - .4byte _08090DB2 @ case 9 - .4byte _08090D98 @ case 10 - .4byte _08090D68 @ case 11 -_08090D50: - ldr r0, _08090D5C @ =0x00004024 - cmp r4, r0 - bne _08090D58 - ldr r2, _08090D60 @ =0x00004022 -_08090D58: - ldr r0, _08090D64 @ =0x0000402C - b _08090DA2 - .align 2, 0 -_08090D5C: .4byte 0x00004024 -_08090D60: .4byte 0x00004022 -_08090D64: .4byte 0x0000402C -_08090D68: - ldr r0, _08090D74 @ =0x0000402C - cmp r4, r0 - bne _08090D70 - ldr r2, _08090D78 @ =0x0000402B -_08090D70: - ldr r0, _08090D7C @ =0x00004024 - b _08090DA2 - .align 2, 0 -_08090D74: .4byte 0x0000402C -_08090D78: .4byte 0x0000402B -_08090D7C: .4byte 0x00004024 -_08090D80: - ldr r0, _08090D8C @ =0x00004025 - cmp r4, r0 - bne _08090D88 - ldr r2, _08090D90 @ =0x00004022 -_08090D88: - ldr r0, _08090D94 @ =0x0000402D - b _08090DA2 - .align 2, 0 -_08090D8C: .4byte 0x00004025 -_08090D90: .4byte 0x00004022 -_08090D94: .4byte 0x0000402D -_08090D98: - ldr r0, _08090DB4 @ =0x0000402D - cmp r4, r0 - bne _08090DA0 - ldr r2, _08090DB8 @ =0x0000402B -_08090DA0: - ldr r0, _08090DBC @ =0x00004025 -_08090DA2: - cmp r4, r0 - bne _08090DA8 - ldr r2, _08090DC0 @ =0x00004022 -_08090DA8: - adds r0, r2, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl SetTile -_08090DB2: - pop {r4, r5, r6, pc} - .align 2, 0 -_08090DB4: .4byte 0x0000402D -_08090DB8: .4byte 0x0000402B -_08090DBC: .4byte 0x00004025 -_08090DC0: .4byte 0x00004022 - - thumb_func_start sub_08090DC4 -sub_08090DC4: @ 0x08090DC4 - push {r4, lr} - mov ip, r0 - ldrb r0, [r0, #0xa] - lsls r0, r0, #3 - ldr r1, _08090E44 @ =gUnk_08121EF8 - adds r3, r0, r1 - ldrh r1, [r3, #6] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08090DF4 - ldr r1, _08090E48 @ =gUnk_08122220 - movs r0, #3 - ldrsb r0, [r3, r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - mov r0, ip - ldrb r1, [r0, #0xb] - lsls r0, r1, #3 - adds r3, r3, r0 - mov r0, ip - strb r1, [r0, #0x1e] -_08090DF4: - ldrb r1, [r3] - mov r0, ip - adds r0, #0x80 - strb r1, [r0] - ldrb r0, [r3, #1] - mov r1, ip - adds r1, #0x81 - strb r0, [r1] - ldrb r0, [r3, #2] - subs r1, #0x1f - strb r0, [r1] - ldrb r0, [r3, #3] - adds r1, #1 - strb r0, [r1] - ldrb r1, [r3, #4] - lsls r1, r1, #6 - mov r0, ip - ldrb r2, [r0, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x19] - ldrb r0, [r3, #5] - mov r4, ip - adds r4, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrh r1, [r3, #6] - mov r0, ip - adds r0, #0x82 - strh r1, [r0] - pop {r4, pc} - .align 2, 0 -_08090E44: .4byte gUnk_08121EF8 -_08090E48: .4byte gUnk_08122220 - - thumb_func_start sub_08090E4C -sub_08090E4C: @ 0x08090E4C - push {lr} - ldr r2, _08090E60 @ =gUnk_08122244 - ldrb r1, [r0, #0xf] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl ChangeObjPalette - pop {pc} - .align 2, 0 -_08090E60: .4byte gUnk_08122244 - - thumb_func_start sub_08090E64 -sub_08090E64: @ 0x08090E64 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x2a - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08090EA0 - ldr r0, _08090EA4 @ =0x0000FFFE - adds r2, r0, #0 - ldrb r0, [r5, #0xb] - adds r2, r2, r0 - lsls r2, r2, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl PositionRelative - ldrh r0, [r4, #0x36] - subs r0, #0x10 - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer -_08090EA0: - pop {r4, r5, pc} - .align 2, 0 -_08090EA4: .4byte 0x0000FFFE diff --git a/asm/non_matching/furniture/sub_08090E64.s b/asm/non_matching/furniture/sub_08090E64.s new file mode 100644 index 00000000..51b42bc6 --- /dev/null +++ b/asm/non_matching/furniture/sub_08090E64.s @@ -0,0 +1,33 @@ + .syntax unified + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x2a + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08090EA0 + ldr r0, _08090EA4 @ =0x0000FFFE + adds r2, r0, #0 + ldrb r0, [r5, #0xb] + adds r2, r2, r0 + lsls r2, r2, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl PositionRelative + ldrh r0, [r4, #0x36] + subs r0, #0x10 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteForCollisionLayer +_08090EA0: + pop {r4, r5, pc} + .align 2, 0 +_08090EA4: .4byte 0x0000FFFE + .syntax divided diff --git a/data/animations/object/furniture.s b/data/animations/object/furniture.s index 07c8a6ef..d33e0045 100644 --- a/data/animations/object/furniture.s +++ b/data/animations/object/furniture.s @@ -30,21 +30,3 @@ gUnk_081221F8:: @ 081221F8 gUnk_08122208:: @ 08122208 .incbin "furniture/gUnk_08122208.bin" - -gUnk_08122218:: @ 08122218 - .4byte sub_080905B8 - .4byte sub_080909E8 - -gUnk_08122220:: @ 08122220 - .4byte gUnk_08122128 - .4byte gUnk_08122198 - .4byte gUnk_081221A8 - .4byte gUnk_081221B8 - .4byte gUnk_081221C8 - .4byte gUnk_081221D8 - .4byte gUnk_081221E8 - .4byte gUnk_081221F8 - .4byte gUnk_08122208 - -gUnk_08122244:: @ 08122244 - .incbin "furniture/gUnk_08122244.bin" diff --git a/include/entity.h b/include/entity.h index 778a3f8e..83c3a6c5 100644 --- a/include/entity.h +++ b/include/entity.h @@ -130,6 +130,7 @@ typedef struct Entity { /*0x62*/ u8 spriteOffsetX; /*0x63*/ s8 spriteOffsetY; /*0x64*/ u32* myHeap; +#ifndef NENT_DEPRECATED /*0x68*/ union SplitHWord field_0x68; /*0x6a*/ union SplitHWord field_0x6a; /*0x6c*/ union SplitHWord field_0x6c; @@ -144,6 +145,7 @@ typedef struct Entity { /*0x82*/ union SplitHWord field_0x82; /*0x84*/ union SplitHWord cutsceneBeh; /*0x86*/ union SplitHWord field_0x86; +#endif } Entity; typedef struct LinkedList { diff --git a/include/global.h b/include/global.h index 669d2557..e7eddd31 100644 --- a/include/global.h +++ b/include/global.h @@ -50,6 +50,8 @@ #define BOOLCAST(x) ((-(x) | (x)) >> 31) #define static_assert(cond) extern char assertion[(cond) ? 1 : -1] +#define super (&this->base) + #if NON_MATCHING #define ASM_FUNC(path, decl) #else diff --git a/linker.ld b/linker.ld index 162ed5bc..2d25fba6 100644 --- a/linker.ld +++ b/linker.ld @@ -783,7 +783,7 @@ SECTIONS { src/object/backgroundCloud.o(.text); asm/object4B.o(.text); asm/pushableFurniture.o(.text); - asm/furniture.o(.text); + src/object/furniture.o(.text); src/object/minishSizedEntrance.o(.text); src/object/archway.o(.text); asm/giantRock.o(.text); @@ -1519,6 +1519,7 @@ SECTIONS { data/const/object/pushableFurniture.o(.rodata); data/const/object/furniture.o(.rodata); data/animations/object/furniture.o(.rodata); + src/object/furniture.o(.rodata); data/const/object/minishSizedEntrance.o(.rodata); data/animations/object/minishSizedEntrance.o(.rodata); data/const/object/object51.o(.rodata); diff --git a/src/object/furniture.c b/src/object/furniture.c new file mode 100644 index 00000000..130c2ce4 --- /dev/null +++ b/src/object/furniture.c @@ -0,0 +1,390 @@ +#define NENT_DEPRECATED +#include "entity.h" +#include "room.h" +#include "functions.h" +#include "object.h" + +extern void sub_080001D0(u32, u32, u32); +extern u32 sub_080001DA(u32, u32); + +enum { + FURNITURE_INIT, + FURNITURE_UPDATE, +}; + +typedef enum { + TMP, +} FurnitureFlag; + +typedef enum { + TMP2, +} FurnitureType; + +typedef struct { + Entity base; + /* 0x68 */ u8 pad[0x10]; + /* 0x78 */ u16 tile; + /* 0x7a */ u16 unk1; + /* 0x7c */ u16 unk2; + /* 0x7e */ u16 unk3; + /* 0x80 */ u8 width; + /* 0x81 */ u8 height; + /* 0x82 */ u16 flags; +} FurnitureEntity; + +typedef void(FurnitureAction)(FurnitureEntity*); + +static FurnitureAction FurnitureInit; +static FurnitureAction FurnitureUpdate; + +typedef struct { + u8 width; + u8 height; + s8 x; + s8 y; + u8 rendering; + u8 priority; + u16 flags; +} FurnitureCfg; + +extern FurnitureCfg gUnk_08122128[]; +extern FurnitureCfg gUnk_08122198[]; +extern FurnitureCfg gUnk_081221A8[]; +extern FurnitureCfg gUnk_081221B8[]; +extern FurnitureCfg gUnk_081221C8[]; +extern FurnitureCfg gUnk_081221D8[]; +extern FurnitureCfg gUnk_081221E8[]; +extern FurnitureCfg gUnk_081221F8[]; +extern FurnitureCfg gUnk_08122208[]; +extern const FurnitureCfg gUnk_08121EF8[]; + +static void sub_08090DC4(FurnitureEntity*); +static void sub_08090E64(FurnitureEntity*); +static void sub_08090B6C(FurnitureEntity*); +static void sub_08090E4C(FurnitureEntity*); +static void sub_08090CDC(u32, u32, u32); + +void Furniture(FurnitureEntity* this) { + static FurnitureAction* const sFurnitureActions[] = { + FurnitureInit, + FurnitureUpdate, + }; + + sFurnitureActions[super->action](this); +} + +static void FurnitureInit(FurnitureEntity* this) { + u32 i, tile, cnt; + Entity* e; + + super->action = FURNITURE_UPDATE; + this->tile = COORD_TO_TILE(super); + sub_08090DC4(this); + switch (this->flags & 0x7fff) { + case 0x100: + super->collisionLayer = 2; + UpdateSpriteForCollisionLayer(super); + break; + case 0x20: + break; + case 0x40: + super->y.HALF.HI = (super->y.HALF.HI & ~0xF) | 4; + SetTile(0x4017, this->tile - 128, 1); + SetTile(0x4017, this->tile - 64, 1); + break; + case 0x80: + super->frameIndex = 0; + super->y.HALF.HI = (super->y.HALF.HI & ~0xF) | 6; + this->tile = COORD_TO_TILE(super); + SetTile(0x4026, this->tile, super->collisionLayer); + break; + case 0x200: + break; + case 0x400: + sub_08090E64(this); + if (super->type2 != 0) { + super->spriteOffsetX = 1; + this->width = 48; + } + default: + sub_08090B6C(this); + break; + } + + if (this->height != 16) { + switch (this->height & 0x70) { + case 0x30: + this->tile -= 64; + sub_08090B6C(this); + this->tile = COORD_TO_TILE(super); + case 0x20: + this->tile += 64; + sub_08090B6C(this); + } + this->tile = COORD_TO_TILE(super); + } + + switch (this->flags & 0x7fff) { + case 0x4: + ChangeObjPalette(super, 0x7E); + break; + case 0x2: + tile = this->tile - 129; + cnt = super->type != 26 ? 3 : 2; + for (i = 0; i < cnt; ++i, ++tile) { + SetTile(0x4026, tile, 2); + SetTile(0x4026, tile, 1); + sub_080001D0(0, tile + 64, 1); + } + break; + } + + switch (super->type) { + case 1: + if (super->type2 != 0) { + super->spritePriority.b0 = 4; + } + break; + case 9: + e = CreateObject(FURNITURE, 62, 0); + if (e != NULL) { + PositionRelative(super, e, 0x100000, 0x100000); + e->frameIndex = 1; + e->updatePriority = 2; + } + break; + case 30: + sub_0807B7D8(774, this->tile + 65, 2); + break; + case 31: + super->collisionLayer = 1; + super->spriteOrientation.flipY = 2; + SetTile(0x4074, this->tile - 64, super->collisionLayer); + sub_080001D0(63, this->tile - 64, super->collisionLayer); + SetTile(0x4017, this->tile, super->collisionLayer); + SetTile(0x4017, this->tile + 64, super->collisionLayer); + break; + case 40: + if (super->type2 != 0) + super->spriteOffsetX = -4; + break; + case 59: + SetTile(0x4023, this->tile - 65, super->collisionLayer); + SetTile(0x4023, this->tile - 64, super->collisionLayer); + SetTile(0x4023, this->tile - 63, super->collisionLayer); + break; + case 60: + SetTile(0x4022, this->tile + 65, super->collisionLayer); + } +} + +static void FurnitureUpdate(FurnitureEntity* this) { + switch (this->flags & 0x7FFF) { + case 0x1: + if (gPlayerEntity.y.HALF.HI < super->y.HALF.HI || gPlayerEntity.y.HALF.HI > super->y.HALF.HI + 24) { + super->spriteRendering.b3 = 2; + } else { + super->spriteRendering.b3 = 3; + } + break; + case 0x8: + if (++super->actionDelay == 16) { + super->actionDelay = 0; + super->field_0xf = (super->field_0xf + 1) & 3; + sub_08090E4C(this); + } + break; + case 0x10: + if (super->type != 62) { + if (++super->actionDelay == 20) { + super->frameIndex = (super->frameIndex + 1) & 3; + super->actionDelay = 0; + } + } else { + if (++super->actionDelay == 14) { + super->actionDelay = 0; + super->field_0xf = (super->field_0xf + 1) % 3; + super->frameIndex = super->field_0xf + 1; + } + } + break; + case 0x80: + if (gPlayerEntity.y.HALF.HI < super->y.HALF.HI + 8) { + if (gPlayerState.field_0x10[2] != 30 && GetTileTypeByEntity(super) == 0x4017) { + SetTile(0x4026, this->tile, super->collisionLayer); + SetTile(0x403D, this->tile - 64, super->collisionLayer); + SetTile(0x403D, this->tile - 128, super->collisionLayer); + } + } else { + if (gPlayerEntity.collisionLayer & 2) { + gPlayerEntity.collisionLayer = 1; + UpdateSpriteForCollisionLayer(&gPlayerEntity); + } + if (GetTileTypeByEntity(super) != 0x4017) { + SetTile(0x4017, this->tile, super->collisionLayer); + SetTile(0x4017, this->tile - 64, super->collisionLayer); + SetTile(0x4014, this->tile - 128, super->collisionLayer); + } + } + break; + } +} + +static void sub_08090B6C(FurnitureEntity* this) { + s32 num; + + u32 width = (u32)(this->width << 0x18) >> 0x18; + if (width != 0) { + u8 w2 = width / 8; + u32 px = super->x.HALF.HI & 0xF; + u32 tile = this->tile; + u32 cl = super->collisionLayer; + int i; + + switch ((u32)w2 & 3) { + case 0: + num = w2 / 8; + if (w2 == 0xc) { + num = 2; + } + for (i = -num; i <= num; ++i) { + SetTile(0x4022, tile + i, cl); + } + if (px & 8) { + sub_08090CDC(0x4024, tile - i, cl); + sub_08090CDC(0x4025, tile + i, cl); + } else { + SetTile(0x4022, tile - i, cl); + } + break; + case 1: + num = w2 / 8; + for (i = -num; i <= num; i++) { + SetTile(0x4022, tile + i, cl); + } + if (px & 8) { + sub_08090CDC(0x4024, tile - i, cl); + if (i != 0) { + SetTile(0x4022, tile + i, cl); + } + } else { + if (i != 0) { + SetTile(0x4022, tile - i, cl); + } + sub_08090CDC(0x4025, tile + i, cl); + } + break; + case 2: + num = w2 / 4; + for (i = -num; i < num; ++i) { + SetTile(0x4022, tile + i, cl); + } + if (px & 8) { + SetTile(0x4022, tile + i, cl); + } else { + sub_08090CDC(0x4024, tile - i - 1, cl); + sub_08090CDC(0x4025, tile + i, cl); + } + break; + case 3: + num = w2 / 4; + for (i = -num; i <= num; ++i) { + SetTile(0x4022, tile + i, cl); + } + if (px & 8) { + sub_08090CDC(0x4025, tile + i, cl); + } else { + sub_08090CDC(0x4024, tile - i, cl); + } + break; + } + } +} + +static void sub_08090CDC(u32 id, u32 pos, u32 layer) { + u16 cur = sub_080001DA(pos, layer); + u32 next = cur; + u32 id2; + + if ((cur & 0x4000) == 0) { + SetTile(id, pos, layer); + } else { + switch (cur) { + case 0x4025: + if (id == 0x4024) + next = 0x4022; + if (id == 0x402c) + next = 0x4022; + break; + case 0x402D: + if (id == 0x402c) + next = 0x402b; + if (id == 0x4024) + next = 0x4022; + break; + case 0x4024: + if (id == 0x4025) + next = 0x4022; + if (id == 0x402d) + next = 0x4022; + break; + case 0x402C: + if (id == 0x402d) + next = 0x402b; + if (id == 0x4025) + next = 0x4022; + break; + case 0x4022: + case 0x4023: + case 0x4026: + case 0x4027: + case 0x4028: + case 0x4029: + case 0x402a: + case 0x402b: + default: + return; + } + SetTile(next, pos, layer); + } +} + +static void sub_08090DC4(FurnitureEntity* this) { + static const FurnitureCfg* const sCfgTable[] = { + gUnk_08122128, gUnk_08122198, gUnk_081221A8, gUnk_081221B8, gUnk_081221C8, + gUnk_081221D8, gUnk_081221E8, gUnk_081221F8, gUnk_08122208, + }; + + const FurnitureCfg* cfg = &gUnk_08121EF8[super->type]; + if (cfg->flags & 0x8000) { + cfg = sCfgTable[cfg->y]; + cfg += super->type2; + super->frameIndex = super->type2; + } + this->width = cfg->width; + this->height = cfg->height; + super->spriteOffsetX = cfg->x; + super->spriteOffsetY = cfg->y; + super->spriteRendering.b3 = cfg->rendering; + super->spritePriority.b0 = cfg->priority; + this->flags = cfg->flags; +} + +static void sub_08090E4C(FurnitureEntity* this) { + static const u32 sPalettes[] = { 0x5f, 0x60, 0x61, 0x62 }; + + ChangeObjPalette(super, sPalettes[super->field_0xf]); +} + +static NONMATCH("asm/non_matching/furniture/sub_08090E64.s", void sub_08090E64(FurnitureEntity* this)) { + Entity* e = CreateObject(OBJECT_42, 0, 0); + u32 tmp = 0x10000 - 2; + + if (e != NULL) { + PositionRelative(super, e, (tmp + super->type2) * 0x10000, 0); + e->z.HALF.HI -= 16; + e->collisionLayer = 2; + UpdateSpriteForCollisionLayer(e); + } +} +END_NONMATCH From 929f6000a634910fd89f54c646d05e6a168e2a18 Mon Sep 17 00:00:00 2001 From: theo3 Date: Thu, 16 Dec 2021 22:26:16 -0800 Subject: [PATCH 018/168] add furniture types --- src/object/furniture.c | 98 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 85 insertions(+), 13 deletions(-) diff --git a/src/object/furniture.c b/src/object/furniture.c index 130c2ce4..b313ca3f 100644 --- a/src/object/furniture.c +++ b/src/object/furniture.c @@ -17,7 +17,79 @@ typedef enum { } FurnitureFlag; typedef enum { - TMP2, + BOOKSHELF, + CRATE, + BULLETIN_BOARD, + CERAMIC_SHELF1, + FLOUR_SACK, + LOGS, + WATER_BARREL, + WEAPON_RACK, + RED_CAULDRON, + SMITH_FORGE, + LARGE_CERAMIC_SHELF, + LADDER, + GLOWING_PLANT, + GLOWING_SPORES, + LOG_SHELF, + KINSTONE_SHELF, + BLUE_CAULDRON, + HAY_BED, + MILK_JUG, + HAY_BALE, + FLOWER_BED_SMALL, + FLOWER_BED_VERT, + FLOWER_BED_HORIZ, + CARPENTER_MACHINE, + SPROUT_CART, + ENVELOPE_SHELF, + BREAD_SHELF, + MAYOR_DESK, + SHOES, + REPAIRED_SHOE, + SHOE_DESK, + STAIRCASE, + DECORATED_STONE, + BIRD_STATUE, + CLOSET, + DRAWERS, + CERAMIC_SHELF2, + LARGE_BOOKCASE, + MINISH_BED, + MINISH_BUTTONS, + MINISH_CHEESE, + MINISH_CHERRIES, + MINISH_CHESSPIECE, + MINISH_COOKIES, + MINISH_MUG, + DR_LEFT_DESK1, + DR_LEFT_DESK2, + MINISH_DIE, + MINISH_GEAR, + MINISH_PINCUSHION, + MINISH_THREAD, + MINISH_MALLET, + MINISH_SCROLL_BOX, + MINISH_APPLE, + MINISH_CANDLE, + MINISH_WOOD_PLANK, + GBA_SCREEN, + PHONOGRAPH, + BAKERY_TABLE, + WOODEN_TABLE, + LOW_BOOKSHELF, + FIGURINE_DEVICE_STATIC, + FORGE_HELPER, + MINISH_UNLIT_CANDLE, + MINISH_GEARS, + DOUBLE_BOOKSHELF, + MINISH_DECOR1, + MINISH_DECOR2, + MINISH_JAM, + MINISH_BREAD, + POSTER1, + POSTER2, + NOTE, } FurnitureType; typedef struct { @@ -64,13 +136,13 @@ static void sub_08090B6C(FurnitureEntity*); static void sub_08090E4C(FurnitureEntity*); static void sub_08090CDC(u32, u32, u32); -void Furniture(FurnitureEntity* this) { +void Furniture(Entity* this) { static FurnitureAction* const sFurnitureActions[] = { FurnitureInit, FurnitureUpdate, }; - sFurnitureActions[super->action](this); + sFurnitureActions[this->action]((FurnitureEntity*)this); } static void FurnitureInit(FurnitureEntity* this) { @@ -140,23 +212,23 @@ static void FurnitureInit(FurnitureEntity* this) { } switch (super->type) { - case 1: + case CRATE: if (super->type2 != 0) { super->spritePriority.b0 = 4; } break; - case 9: - e = CreateObject(FURNITURE, 62, 0); + case SMITH_FORGE: + e = CreateObject(FURNITURE, FORGE_HELPER, 0); if (e != NULL) { PositionRelative(super, e, 0x100000, 0x100000); e->frameIndex = 1; - e->updatePriority = 2; + e->updatePriority = PRIO_MESSAGE; } break; - case 30: + case SHOE_DESK: sub_0807B7D8(774, this->tile + 65, 2); break; - case 31: + case STAIRCASE: super->collisionLayer = 1; super->spriteOrientation.flipY = 2; SetTile(0x4074, this->tile - 64, super->collisionLayer); @@ -164,16 +236,16 @@ static void FurnitureInit(FurnitureEntity* this) { SetTile(0x4017, this->tile, super->collisionLayer); SetTile(0x4017, this->tile + 64, super->collisionLayer); break; - case 40: + case MINISH_CHEESE: if (super->type2 != 0) super->spriteOffsetX = -4; break; - case 59: + case WOODEN_TABLE: SetTile(0x4023, this->tile - 65, super->collisionLayer); SetTile(0x4023, this->tile - 64, super->collisionLayer); SetTile(0x4023, this->tile - 63, super->collisionLayer); break; - case 60: + case LOW_BOOKSHELF: SetTile(0x4022, this->tile + 65, super->collisionLayer); } } @@ -195,7 +267,7 @@ static void FurnitureUpdate(FurnitureEntity* this) { } break; case 0x10: - if (super->type != 62) { + if (super->type != FORGE_HELPER) { if (++super->actionDelay == 20) { super->frameIndex = (super->frameIndex + 1) & 3; super->actionDelay = 0; From c2ba47d796dfdbd091d534ee70456fd47d2ef4b6 Mon Sep 17 00:00:00 2001 From: theo3 Date: Fri, 17 Dec 2021 11:26:16 -0800 Subject: [PATCH 019/168] identify more objects --- asm/{object29.s => ambientClouds.s} | 4 +- asm/{objectA0.s => angryStatue.s} | 4 +- asm/{object26.s => barrelInside.s} | 4 +- asm/{object80.s => board.s} | 4 +- asm/{object8A.s => cabinFurniture.s} | 4 +- asm/{object8B.s => doubleBookshelf.s} | 4 +- asm/{objectA5.s => fireballChain.s} | 4 +- asm/{object51.s => giantRock2.s} | 4 +- asm/{objectBA.s => gyorgBossObject.s} | 4 +- asm/{object93.s => lamp.s} | 4 +- asm/{object89.s => mazaalBossObject.s} | 4 +- asm/{object4.s => minishEmoticon.s} | 4 +- asm/{object5A.s => paper.s} | 4 +- asm/{object24.s => pressurePlate.s} | 4 +- asm/{object72.s => stoneTablet.s} | 4 +- assets/assets.json | 120 +++++++++--------- data/animations/object/ambientClouds.s | 16 +++ data/animations/object/angryStatue.s | 34 +++++ .../object/{objectBA.s => gyorgBossObject.s} | 16 +-- data/animations/object/lamp.s | 23 ++++ data/animations/object/minishEmoticon.s | 112 ++++++++++++++++ data/animations/object/object24.s | 27 ---- data/animations/object/object29.s | 16 --- data/animations/object/object4.s | 112 ---------------- data/animations/object/object93.s | 23 ---- data/animations/object/objectA0.s | 34 ----- data/animations/object/pressurePlate.s | 27 ++++ .../object/{object29.s => ambientClouds.s} | 0 .../object/{objectA0.s => angryStatue.s} | 2 +- .../object/{object26.s => barrelInside.s} | 4 +- data/const/object/{object80.s => board.s} | 2 +- .../object/{object8A.s => cabinFurniture.s} | 0 .../object/{object8B.s => doubleBookshelf.s} | 2 +- .../const/object/{object51.s => giantRock2.s} | 0 .../object/{objectBA.s => gyorgBossObject.s} | 2 +- .../object/{object89.s => mazaalBossObject.s} | 0 .../object/{object4.s => minishEmoticon.s} | 0 data/const/object/{object5A.s => paper.s} | 0 .../object/{object24.s => pressurePlate.s} | 2 +- .../object/{object72.s => stoneTablet.s} | 4 +- data/gfx/sprite_frames.s | 4 +- data/gfx/sprite_ptrs.s | 14 +- include/definitions.h | 12 +- include/object.h | 64 +++++----- linker.ld | 73 +++++------ src/manager/manager2B.c | 2 +- src/object.c | 32 ++--- src/object/furniture.c | 2 +- src/object/{object9E.c => treeThorns.c} | 4 +- src/objectDefinitions.c | 6 +- 50 files changed, 426 insertions(+), 425 deletions(-) rename asm/{object29.s => ambientClouds.s} (99%) rename asm/{objectA0.s => angryStatue.s} (98%) rename asm/{object26.s => barrelInside.s} (96%) rename asm/{object80.s => board.s} (98%) rename asm/{object8A.s => cabinFurniture.s} (98%) rename asm/{object8B.s => doubleBookshelf.s} (99%) rename asm/{objectA5.s => fireballChain.s} (93%) rename asm/{object51.s => giantRock2.s} (96%) rename asm/{objectBA.s => gyorgBossObject.s} (99%) rename asm/{object93.s => lamp.s} (92%) rename asm/{object89.s => mazaalBossObject.s} (99%) rename asm/{object4.s => minishEmoticon.s} (98%) rename asm/{object5A.s => paper.s} (98%) rename asm/{object24.s => pressurePlate.s} (98%) rename asm/{object72.s => stoneTablet.s} (96%) create mode 100644 data/animations/object/ambientClouds.s create mode 100644 data/animations/object/angryStatue.s rename data/animations/object/{objectBA.s => gyorgBossObject.s} (59%) create mode 100644 data/animations/object/lamp.s create mode 100644 data/animations/object/minishEmoticon.s delete mode 100644 data/animations/object/object24.s delete mode 100644 data/animations/object/object29.s delete mode 100644 data/animations/object/object4.s delete mode 100644 data/animations/object/object93.s delete mode 100644 data/animations/object/objectA0.s create mode 100644 data/animations/object/pressurePlate.s rename data/const/object/{object29.s => ambientClouds.s} (100%) rename data/const/object/{objectA0.s => angryStatue.s} (86%) rename data/const/object/{object26.s => barrelInside.s} (64%) rename data/const/object/{object80.s => board.s} (83%) rename data/const/object/{object8A.s => cabinFurniture.s} (100%) rename data/const/object/{object8B.s => doubleBookshelf.s} (83%) rename data/const/object/{object51.s => giantRock2.s} (100%) rename data/const/object/{objectBA.s => gyorgBossObject.s} (88%) rename data/const/object/{object89.s => mazaalBossObject.s} (100%) rename data/const/object/{object4.s => minishEmoticon.s} (100%) rename data/const/object/{object5A.s => paper.s} (100%) rename data/const/object/{object24.s => pressurePlate.s} (83%) rename data/const/object/{object72.s => stoneTablet.s} (72%) rename src/object/{object9E.c => treeThorns.c} (92%) diff --git a/asm/object29.s b/asm/ambientClouds.s similarity index 99% rename from asm/object29.s rename to asm/ambientClouds.s index 59abd928..05a600c8 100644 --- a/asm/object29.s +++ b/asm/ambientClouds.s @@ -7,8 +7,8 @@ .text - thumb_func_start Object29 -Object29: @ 0x08089848 + thumb_func_start AmbientClouds +AmbientClouds: @ 0x08089848 push {r4, lr} adds r4, r0, #0 ldr r1, _08089870 @ =gUnk_08120D90 diff --git a/asm/objectA0.s b/asm/angryStatue.s similarity index 98% rename from asm/objectA0.s rename to asm/angryStatue.s index 17e17e6d..6383a766 100644 --- a/asm/objectA0.s +++ b/asm/angryStatue.s @@ -7,8 +7,8 @@ .text - thumb_func_start ObjectA0 -ObjectA0: @ 0x0809F12C + thumb_func_start AngryStatue +AngryStatue: @ 0x0809F12C push {lr} ldr r2, _0809F140 @ =gUnk_08124670 ldrb r1, [r0, #0xc] diff --git a/asm/object26.s b/asm/barrelInside.s similarity index 96% rename from asm/object26.s rename to asm/barrelInside.s index 6005735c..e2c26772 100644 --- a/asm/object26.s +++ b/asm/barrelInside.s @@ -7,8 +7,8 @@ .text - thumb_func_start Object26 -Object26: @ 0x08089134 + thumb_func_start BarrelInside +BarrelInside: @ 0x08089134 push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xc] diff --git a/asm/object80.s b/asm/board.s similarity index 98% rename from asm/object80.s rename to asm/board.s index 1b158d68..01b22d8c 100644 --- a/asm/object80.s +++ b/asm/board.s @@ -7,8 +7,8 @@ .text - thumb_func_start Object80 -Object80: @ 0x08098B10 + thumb_func_start Board +Board: @ 0x08098B10 push {lr} ldr r2, _08098B24 @ =gUnk_08123664 ldrb r1, [r0, #0xc] diff --git a/asm/object8A.s b/asm/cabinFurniture.s similarity index 98% rename from asm/object8A.s rename to asm/cabinFurniture.s index b6f8f79f..e2799e52 100644 --- a/asm/object8A.s +++ b/asm/cabinFurniture.s @@ -7,8 +7,8 @@ .text - thumb_func_start Object8A -Object8A: @ 0x0809ADB4 + thumb_func_start CabinFurniture +CabinFurniture: @ 0x0809ADB4 push {lr} ldr r2, _0809ADC8 @ =gUnk_08123D4C ldrb r1, [r0, #0xc] diff --git a/asm/object8B.s b/asm/doubleBookshelf.s similarity index 99% rename from asm/object8B.s rename to asm/doubleBookshelf.s index 0a6e701a..aa06fe22 100644 --- a/asm/object8B.s +++ b/asm/doubleBookshelf.s @@ -7,8 +7,8 @@ .text - thumb_func_start Object8B -Object8B: @ 0x0809AF5C + thumb_func_start DoubleBookshelf +DoubleBookshelf: @ 0x0809AF5C push {lr} ldr r2, _0809AF70 @ =gUnk_08123D58 ldrb r1, [r0, #0xc] diff --git a/asm/objectA5.s b/asm/fireballChain.s similarity index 93% rename from asm/objectA5.s rename to asm/fireballChain.s index 44831ffc..dfda3925 100644 --- a/asm/objectA5.s +++ b/asm/fireballChain.s @@ -7,8 +7,8 @@ .text - thumb_func_start ObjectA5 -ObjectA5: @ 0x0809F8A4 + thumb_func_start FireballChain +FireballChain: @ 0x0809F8A4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} diff --git a/asm/object51.s b/asm/giantRock2.s similarity index 96% rename from asm/object51.s rename to asm/giantRock2.s index fddf2b40..b664a087 100644 --- a/asm/object51.s +++ b/asm/giantRock2.s @@ -7,8 +7,8 @@ .text - thumb_func_start Object51 -Object51: @ 0x08090FF8 + thumb_func_start GiantRock2 +GiantRock2: @ 0x08090FF8 push {lr} ldr r2, _0809100C @ =gUnk_08122278 ldrb r1, [r0, #0xc] diff --git a/asm/objectBA.s b/asm/gyorgBossObject.s similarity index 99% rename from asm/objectBA.s rename to asm/gyorgBossObject.s index aaa2d687..bf2efd4e 100644 --- a/asm/objectBA.s +++ b/asm/gyorgBossObject.s @@ -7,8 +7,8 @@ .text - thumb_func_start ObjectBA -ObjectBA: @ 0x080A16DC + thumb_func_start GyorgBossObject +GyorgBossObject: @ 0x080A16DC push {r4, lr} adds r4, r0, #0 ldr r1, _080A1700 @ =gUnk_08124ED0 diff --git a/asm/object93.s b/asm/lamp.s similarity index 92% rename from asm/object93.s rename to asm/lamp.s index 2862be71..f94156fe 100644 --- a/asm/object93.s +++ b/asm/lamp.s @@ -6,8 +6,8 @@ .text - thumb_func_start Object93 -Object93: @ 0x0809CE90 + thumb_func_start Lamp +Lamp: @ 0x0809CE90 push {lr} ldr r2, _0809CEA4 @ =gUnk_08123E80 ldrb r1, [r0, #0xc] diff --git a/asm/object89.s b/asm/mazaalBossObject.s similarity index 99% rename from asm/object89.s rename to asm/mazaalBossObject.s index 69ca1913..22ea10b6 100644 --- a/asm/object89.s +++ b/asm/mazaalBossObject.s @@ -7,8 +7,8 @@ .text - thumb_func_start Object89 -Object89: @ 0x0809AAEC + thumb_func_start MazaalBossObject +MazaalBossObject: @ 0x0809AAEC push {lr} ldr r2, _0809AB00 @ =gUnk_08123D28 ldrb r1, [r0, #0xc] diff --git a/asm/object4.s b/asm/minishEmoticon.s similarity index 98% rename from asm/object4.s rename to asm/minishEmoticon.s index c439f4e3..3a8f533e 100644 --- a/asm/object4.s +++ b/asm/minishEmoticon.s @@ -7,8 +7,8 @@ .text - thumb_func_start Object4 -Object4: @ 0x08082040 + thumb_func_start MinishEmoticon +MinishEmoticon: @ 0x08082040 push {lr} ldr r2, _08082054 @ =gUnk_0811EE5C ldrb r1, [r0, #0xc] diff --git a/asm/object5A.s b/asm/paper.s similarity index 98% rename from asm/object5A.s rename to asm/paper.s index 9bc22d68..cd693e79 100644 --- a/asm/object5A.s +++ b/asm/paper.s @@ -7,8 +7,8 @@ .text - thumb_func_start Object5A -Object5A: @ 0x0809271C + thumb_func_start Paper +Paper: @ 0x0809271C push {lr} ldr r2, _08092730 @ =gUnk_08122780 ldrb r1, [r0, #0xc] diff --git a/asm/object24.s b/asm/pressurePlate.s similarity index 98% rename from asm/object24.s rename to asm/pressurePlate.s index 00ed5c8b..a001c65a 100644 --- a/asm/object24.s +++ b/asm/pressurePlate.s @@ -7,8 +7,8 @@ .text - thumb_func_start Object24 -Object24: @ 0x08088804 + thumb_func_start PressurePlate +PressurePlate: @ 0x08088804 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] diff --git a/asm/object72.s b/asm/stoneTablet.s similarity index 96% rename from asm/object72.s rename to asm/stoneTablet.s index 0f25ded5..77588487 100644 --- a/asm/object72.s +++ b/asm/stoneTablet.s @@ -7,8 +7,8 @@ .text - thumb_func_start Object72 -Object72: @ 0x080979B4 + thumb_func_start StoneTablet +StoneTablet: @ 0x080979B4 push {lr} ldr r2, _080979C8 @ =gUnk_081232E4 ldrb r1, [r0, #0xc] diff --git a/assets/assets.json b/assets/assets.json index 38ff89a0..67bbda54 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -41660,7 +41660,7 @@ "type": "sprite_frame" }, { - "path": "sprites/gSpriteFrames_Object4.bin", + "path": "sprites/gSpriteFrames_MinishEmoticon.bin", "start": 1142028, "size": 200, "type": "sprite_frame" @@ -42820,151 +42820,151 @@ "size": 12 }, { - "path": "animations/gSpriteAnimations_Object4_2.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_2.bin", "start": 1175140, "size": 41, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_10.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_10.bin", "start": 1175181, "size": 4, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_3.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_3.bin", "start": 1175185, "size": 41, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_11.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_11.bin", "start": 1175226, "size": 4, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_0.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_0.bin", "start": 1175230, "size": 5, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_8.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_8.bin", "start": 1175235, "size": 4, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_1.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_1.bin", "start": 1175239, "size": 41, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_9.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_9.bin", "start": 1175280, "size": 4, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_12.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_12.bin", "start": 1175284, "size": 9, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_13.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_13.bin", "start": 1175293, "size": 9, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_14.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_14.bin", "start": 1175302, "size": 9, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_19.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_19.bin", "start": 1175311, "size": 40, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_15.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_15.bin", "start": 1175351, "size": 24, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_16.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_16.bin", "start": 1175375, "size": 24, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_17.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_17.bin", "start": 1175399, "size": 24, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_18.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_18.bin", "start": 1175423, "size": 24, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_22.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_22.bin", "start": 1175447, "size": 9, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_23.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_23.bin", "start": 1175456, "size": 9, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_20.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_20.bin", "start": 1175465, "size": 9, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_21.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_21.bin", "start": 1175474, "size": 9, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_24.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_24.bin", "start": 1175483, "size": 9, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_25.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_25.bin", "start": 1175492, "size": 21, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_26.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_26.bin", "start": 1175513, "size": 21, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_27.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_27.bin", "start": 1175534, "size": 21, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object4_28.bin", + "path": "animations/gSpriteAnimations_MinishEmoticon_28.bin", "start": 1175555, "size": 21, "type": "animation" @@ -44273,37 +44273,37 @@ "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object24_0.bin", + "path": "animations/gSpriteAnimations_PressurePlate_0.bin", "start": 1182705, "size": 4, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object24_1.bin", + "path": "animations/gSpriteAnimations_PressurePlate_1.bin", "start": 1182709, "size": 4, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object24_2.bin", + "path": "animations/gSpriteAnimations_PressurePlate_2.bin", "start": 1182713, "size": 4, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object24_3.bin", + "path": "animations/gSpriteAnimations_PressurePlate_3.bin", "start": 1182717, "size": 4, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object24_4.bin", + "path": "animations/gSpriteAnimations_PressurePlate_4.bin", "start": 1182721, "size": 7, "type": "animation" }, { - "path": "object24/gUnk_08120BEC.bin", + "path": "PressurePlate/gUnk_08120BEC.bin", "start": 1182700, "size": 5 }, @@ -44360,12 +44360,12 @@ "size": 8 }, { - "path": "object26/gUnk_08120C80.bin", + "path": "barrelInside/gUnk_08120C80.bin", "start": 1182848, "size": 18 }, { - "path": "object26/gUnk_08120C92.bin", + "path": "barrelInside/gUnk_08120C92.bin", "start": 1182866, "size": 6 }, @@ -44396,13 +44396,13 @@ "size": 26 }, { - "path": "animations/gSpriteAnimations_Object29_0.bin", + "path": "animations/gSpriteAnimations_AmbientClouds_0.bin", "start": 1183136, "size": 17, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object29_1.bin", + "path": "animations/gSpriteAnimations_AmbientClouds_1.bin", "start": 1183153, "size": 19, "type": "animation" @@ -46228,12 +46228,12 @@ "size": 6 }, { - "path": "object72/gUnk_081232EC.bin", + "path": "stoneTablet/gUnk_081232EC.bin", "start": 1192684, "size": 18 }, { - "path": "object72/gUnk_081232FE.bin", + "path": "stoneTablet/gUnk_081232FE.bin", "start": 1192702, "size": 26 }, @@ -46391,7 +46391,7 @@ "size": 6 }, { - "path": "object80/gUnk_0812366C.bin", + "path": "board/gUnk_0812366C.bin", "start": 1193580, "size": 8 }, @@ -46571,7 +46571,7 @@ "size": 40 }, { - "path": "object8B/gUnk_08123D68.bin", + "path": "doubleBookshelf/gUnk_08123D68.bin", "start": 1195368, "size": 20 }, @@ -46602,25 +46602,25 @@ "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object93_0_0.bin", + "path": "animations/gSpriteAnimations_Lamp_0_0.bin", "start": 1195656, "size": 20, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object93_0.bin", + "path": "animations/gSpriteAnimations_Lamp_0.bin", "start": 1195680, "size": 4, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object93_1_0.bin", + "path": "animations/gSpriteAnimations_Lamp_1_0.bin", "start": 1195684, "size": 20, "type": "animation" }, { - "path": "animations/gSpriteAnimations_Object93_1.bin", + "path": "animations/gSpriteAnimations_Lamp_1.bin", "start": 1195708, "size": 4, "type": "animation" @@ -46801,43 +46801,43 @@ "size": 8 }, { - "path": "animations/gSpriteAnimations_ObjectA0_1.bin", + "path": "animations/gSpriteAnimations_AngryStatue_1.bin", "start": 1197708, "size": 4, "type": "animation" }, { - "path": "animations/gSpriteAnimations_ObjectA0_0.bin", + "path": "animations/gSpriteAnimations_AngryStatue_0.bin", "start": 1197712, "size": 4, "type": "animation" }, { - "path": "animations/gSpriteAnimations_ObjectA0_3.bin", + "path": "animations/gSpriteAnimations_AngryStatue_3.bin", "start": 1197716, "size": 4, "type": "animation" }, { - "path": "animations/gSpriteAnimations_ObjectA0_5.bin", + "path": "animations/gSpriteAnimations_AngryStatue_5.bin", "start": 1197720, "size": 16, "type": "animation" }, { - "path": "animations/gSpriteAnimations_ObjectA0_4.bin", + "path": "animations/gSpriteAnimations_AngryStatue_4.bin", "start": 1197736, "size": 16, "type": "animation" }, { - "path": "animations/gSpriteAnimations_ObjectA0_7.bin", + "path": "animations/gSpriteAnimations_AngryStatue_7.bin", "start": 1197752, "size": 16, "type": "animation" }, { - "path": "objectA0/gUnk_08124684.bin", + "path": "angryStatue/gUnk_08124684.bin", "start": 1197700, "size": 8 }, @@ -47082,47 +47082,47 @@ "size": 4 }, { - "path": "objectBA/gUnk_08124F08.bin", + "path": "gyorgBossObject/gUnk_08124F08.bin", "start": 1199880, "size": 32 }, { - "path": "objectBA/gUnk_08124F28.bin", + "path": "gyorgBossObject/gUnk_08124F28.bin", "start": 1199912, "size": 32 }, { - "path": "objectBA/gUnk_08124F48.bin", + "path": "gyorgBossObject/gUnk_08124F48.bin", "start": 1199944, "size": 32 }, { - "path": "objectBA/gUnk_08124F68.bin", + "path": "gyorgBossObject/gUnk_08124F68.bin", "start": 1199976, "size": 32 }, { - "path": "objectBA/gUnk_08124F88.bin", + "path": "gyorgBossObject/gUnk_08124F88.bin", "start": 1200008, "size": 32 }, { - "path": "objectBA/gUnk_08124FA8.bin", + "path": "gyorgBossObject/gUnk_08124FA8.bin", "start": 1200040, "size": 32 }, { - "path": "objectBA/gUnk_08124FC8.bin", + "path": "gyorgBossObject/gUnk_08124FC8.bin", "start": 1200072, "size": 20 }, { - "path": "objectBA/gUnk_08124FDC.bin", + "path": "gyorgBossObject/gUnk_08124FDC.bin", "start": 1200092, "size": 20 }, { - "path": "objectBA/gUnk_08124EF8.bin", + "path": "gyorgBossObject/gUnk_08124EF8.bin", "start": 1199864, "size": 16 }, diff --git a/data/animations/object/ambientClouds.s b/data/animations/object/ambientClouds.s new file mode 100644 index 00000000..16463f0a --- /dev/null +++ b/data/animations/object/ambientClouds.s @@ -0,0 +1,16 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gSpriteAnimations_AmbientClouds_0:: @ 08120DA0 + .include "animations/gSpriteAnimations_AmbientClouds_0.s" + +gSpriteAnimations_AmbientClouds_1:: @ 08120DB1 + .include "animations/gSpriteAnimations_AmbientClouds_1.s" + +gSpriteAnimations_AmbientClouds:: @ 08120DC4 + .4byte gSpriteAnimations_AmbientClouds_0 + .4byte gSpriteAnimations_AmbientClouds_1 + .4byte 00000000 diff --git a/data/animations/object/angryStatue.s b/data/animations/object/angryStatue.s new file mode 100644 index 00000000..8d1791bf --- /dev/null +++ b/data/animations/object/angryStatue.s @@ -0,0 +1,34 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gSpriteAnimations_AngryStatue_1:: @ 0812468C + .include "animations/gSpriteAnimations_AngryStatue_1.s" + +gSpriteAnimations_AngryStatue_0:: @ 08124690 + .include "animations/gSpriteAnimations_AngryStatue_0.s" + +gSpriteAnimations_AngryStatue_3:: @ 08124694 + .include "animations/gSpriteAnimations_AngryStatue_3.s" + +gSpriteAnimations_AngryStatue_5:: @ 08124698 + .include "animations/gSpriteAnimations_AngryStatue_5.s" + +gSpriteAnimations_AngryStatue_4:: @ 081246A8 + .include "animations/gSpriteAnimations_AngryStatue_4.s" + +gSpriteAnimations_AngryStatue_7:: @ 081246B8 + .include "animations/gSpriteAnimations_AngryStatue_7.s" + +gSpriteAnimations_AngryStatue:: @ 081246C8 + .4byte gSpriteAnimations_AngryStatue_0 + .4byte gSpriteAnimations_AngryStatue_1 + .4byte gSpriteAnimations_AngryStatue_0 + .4byte gSpriteAnimations_AngryStatue_3 + .4byte gSpriteAnimations_AngryStatue_4 + .4byte gSpriteAnimations_AngryStatue_5 + .4byte gSpriteAnimations_AngryStatue_4 + .4byte gSpriteAnimations_AngryStatue_7 + .4byte 00000000 diff --git a/data/animations/object/objectBA.s b/data/animations/object/gyorgBossObject.s similarity index 59% rename from data/animations/object/objectBA.s rename to data/animations/object/gyorgBossObject.s index 4489eee6..3dc36b66 100644 --- a/data/animations/object/objectBA.s +++ b/data/animations/object/gyorgBossObject.s @@ -5,28 +5,28 @@ .align 2 gUnk_08124F08:: @ 08124F08 - .incbin "objectBA/gUnk_08124F08.bin" + .incbin "gyorgBossObject/gUnk_08124F08.bin" gUnk_08124F28:: @ 08124F28 - .incbin "objectBA/gUnk_08124F28.bin" + .incbin "gyorgBossObject/gUnk_08124F28.bin" gUnk_08124F48:: @ 08124F48 - .incbin "objectBA/gUnk_08124F48.bin" + .incbin "gyorgBossObject/gUnk_08124F48.bin" gUnk_08124F68:: @ 08124F68 - .incbin "objectBA/gUnk_08124F68.bin" + .incbin "gyorgBossObject/gUnk_08124F68.bin" gUnk_08124F88:: @ 08124F88 - .incbin "objectBA/gUnk_08124F88.bin" + .incbin "gyorgBossObject/gUnk_08124F88.bin" gUnk_08124FA8:: @ 08124FA8 - .incbin "objectBA/gUnk_08124FA8.bin" + .incbin "gyorgBossObject/gUnk_08124FA8.bin" gUnk_08124FC8:: @ 08124FC8 - .incbin "objectBA/gUnk_08124FC8.bin" + .incbin "gyorgBossObject/gUnk_08124FC8.bin" gUnk_08124FDC:: @ 08124FDC - .incbin "objectBA/gUnk_08124FDC.bin" + .incbin "gyorgBossObject/gUnk_08124FDC.bin" gUnk_08124FF0:: @ 08124FF0 .4byte gUnk_08124F08 diff --git a/data/animations/object/lamp.s b/data/animations/object/lamp.s new file mode 100644 index 00000000..4fbfe695 --- /dev/null +++ b/data/animations/object/lamp.s @@ -0,0 +1,23 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gUnk_08123E80:: @ 08123E80 + .4byte sub_0809CEA8 + .4byte sub_0809CEC0 + +gSpriteAnimations_Lamp_0_0:: @ 08123E88 + .include "animations/gSpriteAnimations_Lamp_0_0.s" + +gSpriteAnimations_Lamp_0:: @ 08123E9C + .4byte gSpriteAnimations_Lamp_0_0 + .include "animations/gSpriteAnimations_Lamp_0.s" + +gSpriteAnimations_Lamp_1_0:: @ 08123EA4 + .include "animations/gSpriteAnimations_Lamp_1_0.s" + +gSpriteAnimations_Lamp_1:: @ 08123EB8 + .4byte gSpriteAnimations_Lamp_1_0 + .include "animations/gSpriteAnimations_Lamp_1.s" diff --git a/data/animations/object/minishEmoticon.s b/data/animations/object/minishEmoticon.s new file mode 100644 index 00000000..6ff92722 --- /dev/null +++ b/data/animations/object/minishEmoticon.s @@ -0,0 +1,112 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gSpriteAnimations_MinishEmoticon_2:: @ 0811EE64 + .include "animations/gSpriteAnimations_MinishEmoticon_2.s" + +gSpriteAnimations_MinishEmoticon_10:: @ 0811EE8D + .include "animations/gSpriteAnimations_MinishEmoticon_10.s" + +gSpriteAnimations_MinishEmoticon_3:: @ 0811EE91 + .include "animations/gSpriteAnimations_MinishEmoticon_3.s" + +gSpriteAnimations_MinishEmoticon_11:: @ 0811EEBA + .include "animations/gSpriteAnimations_MinishEmoticon_11.s" + +gSpriteAnimations_MinishEmoticon_0:: @ 0811EEBE + .include "animations/gSpriteAnimations_MinishEmoticon_0.s" + +gSpriteAnimations_MinishEmoticon_8:: @ 0811EEC3 + .include "animations/gSpriteAnimations_MinishEmoticon_8.s" + +gSpriteAnimations_MinishEmoticon_1:: @ 0811EEC7 + .include "animations/gSpriteAnimations_MinishEmoticon_1.s" + +gSpriteAnimations_MinishEmoticon_9:: @ 0811EEF0 + .include "animations/gSpriteAnimations_MinishEmoticon_9.s" + +gSpriteAnimations_MinishEmoticon_12:: @ 0811EEF4 + .include "animations/gSpriteAnimations_MinishEmoticon_12.s" + +gSpriteAnimations_MinishEmoticon_13:: @ 0811EEFD + .include "animations/gSpriteAnimations_MinishEmoticon_13.s" + +gSpriteAnimations_MinishEmoticon_14:: @ 0811EF06 + .include "animations/gSpriteAnimations_MinishEmoticon_14.s" + +gSpriteAnimations_MinishEmoticon_19:: @ 0811EF0F + .include "animations/gSpriteAnimations_MinishEmoticon_19.s" + +gSpriteAnimations_MinishEmoticon_15:: @ 0811EF37 + .include "animations/gSpriteAnimations_MinishEmoticon_15.s" + +gSpriteAnimations_MinishEmoticon_16:: @ 0811EF4F + .include "animations/gSpriteAnimations_MinishEmoticon_16.s" + +gSpriteAnimations_MinishEmoticon_17:: @ 0811EF67 + .include "animations/gSpriteAnimations_MinishEmoticon_17.s" + +gSpriteAnimations_MinishEmoticon_18:: @ 0811EF7F + .include "animations/gSpriteAnimations_MinishEmoticon_18.s" + +gSpriteAnimations_MinishEmoticon_22:: @ 0811EF97 + .include "animations/gSpriteAnimations_MinishEmoticon_22.s" + +gSpriteAnimations_MinishEmoticon_23:: @ 0811EFA0 + .include "animations/gSpriteAnimations_MinishEmoticon_23.s" + +gSpriteAnimations_MinishEmoticon_20:: @ 0811EFA9 + .include "animations/gSpriteAnimations_MinishEmoticon_20.s" + +gSpriteAnimations_MinishEmoticon_21:: @ 0811EFB2 + .include "animations/gSpriteAnimations_MinishEmoticon_21.s" + +gSpriteAnimations_MinishEmoticon_24:: @ 0811EFBB + .include "animations/gSpriteAnimations_MinishEmoticon_24.s" + +gSpriteAnimations_MinishEmoticon_25:: @ 0811EFC4 + .include "animations/gSpriteAnimations_MinishEmoticon_25.s" + +gSpriteAnimations_MinishEmoticon_26:: @ 0811EFD9 + .include "animations/gSpriteAnimations_MinishEmoticon_26.s" + +gSpriteAnimations_MinishEmoticon_27:: @ 0811EFEE + .include "animations/gSpriteAnimations_MinishEmoticon_27.s" + +gSpriteAnimations_MinishEmoticon_28:: @ 0811F003 + .include "animations/gSpriteAnimations_MinishEmoticon_28.s" + +gSpriteAnimations_MinishEmoticon:: @ 0811F018 + .4byte gSpriteAnimations_MinishEmoticon_0 + .4byte gSpriteAnimations_MinishEmoticon_1 + .4byte gSpriteAnimations_MinishEmoticon_2 + .4byte gSpriteAnimations_MinishEmoticon_3 + .4byte gSpriteAnimations_MinishEmoticon_0 + .4byte gSpriteAnimations_MinishEmoticon_1 + .4byte gSpriteAnimations_MinishEmoticon_2 + .4byte gSpriteAnimations_MinishEmoticon_3 + .4byte gSpriteAnimations_MinishEmoticon_8 + .4byte gSpriteAnimations_MinishEmoticon_9 + .4byte gSpriteAnimations_MinishEmoticon_10 + .4byte gSpriteAnimations_MinishEmoticon_11 + .4byte gSpriteAnimations_MinishEmoticon_12 + .4byte gSpriteAnimations_MinishEmoticon_13 + .4byte gSpriteAnimations_MinishEmoticon_14 + .4byte gSpriteAnimations_MinishEmoticon_15 + .4byte gSpriteAnimations_MinishEmoticon_16 + .4byte gSpriteAnimations_MinishEmoticon_17 + .4byte gSpriteAnimations_MinishEmoticon_18 + .4byte gSpriteAnimations_MinishEmoticon_19 + .4byte gSpriteAnimations_MinishEmoticon_20 + .4byte gSpriteAnimations_MinishEmoticon_21 + .4byte gSpriteAnimations_MinishEmoticon_22 + .4byte gSpriteAnimations_MinishEmoticon_23 + .4byte gSpriteAnimations_MinishEmoticon_24 + .4byte gSpriteAnimations_MinishEmoticon_25 + .4byte gSpriteAnimations_MinishEmoticon_26 + .4byte gSpriteAnimations_MinishEmoticon_27 + .4byte gSpriteAnimations_MinishEmoticon_28 + .4byte 00000000 diff --git a/data/animations/object/object24.s b/data/animations/object/object24.s deleted file mode 100644 index d3de774e..00000000 --- a/data/animations/object/object24.s +++ /dev/null @@ -1,27 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata -@ .align 2 - -gSpriteAnimations_Object24_0:: @ 08120BF1 - .include "animations/gSpriteAnimations_Object24_0.s" - -gSpriteAnimations_Object24_1:: @ 08120BF5 - .include "animations/gSpriteAnimations_Object24_1.s" - -gSpriteAnimations_Object24_2:: @ 08120BF9 - .include "animations/gSpriteAnimations_Object24_2.s" - -gSpriteAnimations_Object24_3:: @ 08120BFD - .include "animations/gSpriteAnimations_Object24_3.s" - -gSpriteAnimations_Object24_4:: @ 08120C01 - .include "animations/gSpriteAnimations_Object24_4.s" - -gSpriteAnimations_Object24:: @ 08120C08 - .4byte gSpriteAnimations_Object24_0 - .4byte gSpriteAnimations_Object24_1 - .4byte gSpriteAnimations_Object24_2 - .4byte gSpriteAnimations_Object24_3 - .4byte gSpriteAnimations_Object24_4 diff --git a/data/animations/object/object29.s b/data/animations/object/object29.s deleted file mode 100644 index ea360cd1..00000000 --- a/data/animations/object/object29.s +++ /dev/null @@ -1,16 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gSpriteAnimations_Object29_0:: @ 08120DA0 - .include "animations/gSpriteAnimations_Object29_0.s" - -gSpriteAnimations_Object29_1:: @ 08120DB1 - .include "animations/gSpriteAnimations_Object29_1.s" - -gSpriteAnimations_Object29:: @ 08120DC4 - .4byte gSpriteAnimations_Object29_0 - .4byte gSpriteAnimations_Object29_1 - .4byte 00000000 diff --git a/data/animations/object/object4.s b/data/animations/object/object4.s deleted file mode 100644 index 862d4626..00000000 --- a/data/animations/object/object4.s +++ /dev/null @@ -1,112 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gSpriteAnimations_Object4_2:: @ 0811EE64 - .include "animations/gSpriteAnimations_Object4_2.s" - -gSpriteAnimations_Object4_10:: @ 0811EE8D - .include "animations/gSpriteAnimations_Object4_10.s" - -gSpriteAnimations_Object4_3:: @ 0811EE91 - .include "animations/gSpriteAnimations_Object4_3.s" - -gSpriteAnimations_Object4_11:: @ 0811EEBA - .include "animations/gSpriteAnimations_Object4_11.s" - -gSpriteAnimations_Object4_0:: @ 0811EEBE - .include "animations/gSpriteAnimations_Object4_0.s" - -gSpriteAnimations_Object4_8:: @ 0811EEC3 - .include "animations/gSpriteAnimations_Object4_8.s" - -gSpriteAnimations_Object4_1:: @ 0811EEC7 - .include "animations/gSpriteAnimations_Object4_1.s" - -gSpriteAnimations_Object4_9:: @ 0811EEF0 - .include "animations/gSpriteAnimations_Object4_9.s" - -gSpriteAnimations_Object4_12:: @ 0811EEF4 - .include "animations/gSpriteAnimations_Object4_12.s" - -gSpriteAnimations_Object4_13:: @ 0811EEFD - .include "animations/gSpriteAnimations_Object4_13.s" - -gSpriteAnimations_Object4_14:: @ 0811EF06 - .include "animations/gSpriteAnimations_Object4_14.s" - -gSpriteAnimations_Object4_19:: @ 0811EF0F - .include "animations/gSpriteAnimations_Object4_19.s" - -gSpriteAnimations_Object4_15:: @ 0811EF37 - .include "animations/gSpriteAnimations_Object4_15.s" - -gSpriteAnimations_Object4_16:: @ 0811EF4F - .include "animations/gSpriteAnimations_Object4_16.s" - -gSpriteAnimations_Object4_17:: @ 0811EF67 - .include "animations/gSpriteAnimations_Object4_17.s" - -gSpriteAnimations_Object4_18:: @ 0811EF7F - .include "animations/gSpriteAnimations_Object4_18.s" - -gSpriteAnimations_Object4_22:: @ 0811EF97 - .include "animations/gSpriteAnimations_Object4_22.s" - -gSpriteAnimations_Object4_23:: @ 0811EFA0 - .include "animations/gSpriteAnimations_Object4_23.s" - -gSpriteAnimations_Object4_20:: @ 0811EFA9 - .include "animations/gSpriteAnimations_Object4_20.s" - -gSpriteAnimations_Object4_21:: @ 0811EFB2 - .include "animations/gSpriteAnimations_Object4_21.s" - -gSpriteAnimations_Object4_24:: @ 0811EFBB - .include "animations/gSpriteAnimations_Object4_24.s" - -gSpriteAnimations_Object4_25:: @ 0811EFC4 - .include "animations/gSpriteAnimations_Object4_25.s" - -gSpriteAnimations_Object4_26:: @ 0811EFD9 - .include "animations/gSpriteAnimations_Object4_26.s" - -gSpriteAnimations_Object4_27:: @ 0811EFEE - .include "animations/gSpriteAnimations_Object4_27.s" - -gSpriteAnimations_Object4_28:: @ 0811F003 - .include "animations/gSpriteAnimations_Object4_28.s" - -gSpriteAnimations_Object4:: @ 0811F018 - .4byte gSpriteAnimations_Object4_0 - .4byte gSpriteAnimations_Object4_1 - .4byte gSpriteAnimations_Object4_2 - .4byte gSpriteAnimations_Object4_3 - .4byte gSpriteAnimations_Object4_0 - .4byte gSpriteAnimations_Object4_1 - .4byte gSpriteAnimations_Object4_2 - .4byte gSpriteAnimations_Object4_3 - .4byte gSpriteAnimations_Object4_8 - .4byte gSpriteAnimations_Object4_9 - .4byte gSpriteAnimations_Object4_10 - .4byte gSpriteAnimations_Object4_11 - .4byte gSpriteAnimations_Object4_12 - .4byte gSpriteAnimations_Object4_13 - .4byte gSpriteAnimations_Object4_14 - .4byte gSpriteAnimations_Object4_15 - .4byte gSpriteAnimations_Object4_16 - .4byte gSpriteAnimations_Object4_17 - .4byte gSpriteAnimations_Object4_18 - .4byte gSpriteAnimations_Object4_19 - .4byte gSpriteAnimations_Object4_20 - .4byte gSpriteAnimations_Object4_21 - .4byte gSpriteAnimations_Object4_22 - .4byte gSpriteAnimations_Object4_23 - .4byte gSpriteAnimations_Object4_24 - .4byte gSpriteAnimations_Object4_25 - .4byte gSpriteAnimations_Object4_26 - .4byte gSpriteAnimations_Object4_27 - .4byte gSpriteAnimations_Object4_28 - .4byte 00000000 diff --git a/data/animations/object/object93.s b/data/animations/object/object93.s deleted file mode 100644 index 9fb293f2..00000000 --- a/data/animations/object/object93.s +++ /dev/null @@ -1,23 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08123E80:: @ 08123E80 - .4byte sub_0809CEA8 - .4byte sub_0809CEC0 - -gSpriteAnimations_Object93_0_0:: @ 08123E88 - .include "animations/gSpriteAnimations_Object93_0_0.s" - -gSpriteAnimations_Object93_0:: @ 08123E9C - .4byte gSpriteAnimations_Object93_0_0 - .include "animations/gSpriteAnimations_Object93_0.s" - -gSpriteAnimations_Object93_1_0:: @ 08123EA4 - .include "animations/gSpriteAnimations_Object93_1_0.s" - -gSpriteAnimations_Object93_1:: @ 08123EB8 - .4byte gSpriteAnimations_Object93_1_0 - .include "animations/gSpriteAnimations_Object93_1.s" diff --git a/data/animations/object/objectA0.s b/data/animations/object/objectA0.s deleted file mode 100644 index bac0fa14..00000000 --- a/data/animations/object/objectA0.s +++ /dev/null @@ -1,34 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gSpriteAnimations_ObjectA0_1:: @ 0812468C - .include "animations/gSpriteAnimations_ObjectA0_1.s" - -gSpriteAnimations_ObjectA0_0:: @ 08124690 - .include "animations/gSpriteAnimations_ObjectA0_0.s" - -gSpriteAnimations_ObjectA0_3:: @ 08124694 - .include "animations/gSpriteAnimations_ObjectA0_3.s" - -gSpriteAnimations_ObjectA0_5:: @ 08124698 - .include "animations/gSpriteAnimations_ObjectA0_5.s" - -gSpriteAnimations_ObjectA0_4:: @ 081246A8 - .include "animations/gSpriteAnimations_ObjectA0_4.s" - -gSpriteAnimations_ObjectA0_7:: @ 081246B8 - .include "animations/gSpriteAnimations_ObjectA0_7.s" - -gSpriteAnimations_ObjectA0:: @ 081246C8 - .4byte gSpriteAnimations_ObjectA0_0 - .4byte gSpriteAnimations_ObjectA0_1 - .4byte gSpriteAnimations_ObjectA0_0 - .4byte gSpriteAnimations_ObjectA0_3 - .4byte gSpriteAnimations_ObjectA0_4 - .4byte gSpriteAnimations_ObjectA0_5 - .4byte gSpriteAnimations_ObjectA0_4 - .4byte gSpriteAnimations_ObjectA0_7 - .4byte 00000000 diff --git a/data/animations/object/pressurePlate.s b/data/animations/object/pressurePlate.s new file mode 100644 index 00000000..75e87fa0 --- /dev/null +++ b/data/animations/object/pressurePlate.s @@ -0,0 +1,27 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata +@ .align 2 + +gSpriteAnimations_PressurePlate_0:: @ 08120BF1 + .include "animations/gSpriteAnimations_PressurePlate_0.s" + +gSpriteAnimations_PressurePlate_1:: @ 08120BF5 + .include "animations/gSpriteAnimations_PressurePlate_1.s" + +gSpriteAnimations_PressurePlate_2:: @ 08120BF9 + .include "animations/gSpriteAnimations_PressurePlate_2.s" + +gSpriteAnimations_PressurePlate_3:: @ 08120BFD + .include "animations/gSpriteAnimations_PressurePlate_3.s" + +gSpriteAnimations_PressurePlate_4:: @ 08120C01 + .include "animations/gSpriteAnimations_PressurePlate_4.s" + +gSpriteAnimations_PressurePlate:: @ 08120C08 + .4byte gSpriteAnimations_PressurePlate_0 + .4byte gSpriteAnimations_PressurePlate_1 + .4byte gSpriteAnimations_PressurePlate_2 + .4byte gSpriteAnimations_PressurePlate_3 + .4byte gSpriteAnimations_PressurePlate_4 diff --git a/data/const/object/object29.s b/data/const/object/ambientClouds.s similarity index 100% rename from data/const/object/object29.s rename to data/const/object/ambientClouds.s diff --git a/data/const/object/objectA0.s b/data/const/object/angryStatue.s similarity index 86% rename from data/const/object/objectA0.s rename to data/const/object/angryStatue.s index d3b0f552..01589469 100644 --- a/data/const/object/objectA0.s +++ b/data/const/object/angryStatue.s @@ -12,4 +12,4 @@ gUnk_08124670:: @ 08124670 .4byte sub_0809F254 gUnk_08124684:: @ 08124684 - .incbin "objectA0/gUnk_08124684.bin" + .incbin "angryStatue/gUnk_08124684.bin" diff --git a/data/const/object/object26.s b/data/const/object/barrelInside.s similarity index 64% rename from data/const/object/object26.s rename to data/const/object/barrelInside.s index fabcda59..13e148d9 100644 --- a/data/const/object/object26.s +++ b/data/const/object/barrelInside.s @@ -5,7 +5,7 @@ .align 2 gUnk_08120C80:: @ 08120C80 - .incbin "object26/gUnk_08120C80.bin" + .incbin "barrelInside/gUnk_08120C80.bin" gUnk_08120C92:: @ 08120C92 - .incbin "object26/gUnk_08120C92.bin" + .incbin "barrelInside/gUnk_08120C92.bin" diff --git a/data/const/object/object80.s b/data/const/object/board.s similarity index 83% rename from data/const/object/object80.s rename to data/const/object/board.s index 2d5c1c1d..2f569052 100644 --- a/data/const/object/object80.s +++ b/data/const/object/board.s @@ -9,4 +9,4 @@ gUnk_08123664:: @ 08123664 .4byte sub_08098BE0 gUnk_0812366C:: @ 0812366C - .incbin "object80/gUnk_0812366C.bin" + .incbin "board/gUnk_0812366C.bin" diff --git a/data/const/object/object8A.s b/data/const/object/cabinFurniture.s similarity index 100% rename from data/const/object/object8A.s rename to data/const/object/cabinFurniture.s diff --git a/data/const/object/object8B.s b/data/const/object/doubleBookshelf.s similarity index 83% rename from data/const/object/object8B.s rename to data/const/object/doubleBookshelf.s index e450780d..9bd699f0 100644 --- a/data/const/object/object8B.s +++ b/data/const/object/doubleBookshelf.s @@ -11,4 +11,4 @@ gUnk_08123D58:: @ 08123D58 .4byte sub_0809B0A8 gUnk_08123D68:: @ 08123D68 - .incbin "object8B/gUnk_08123D68.bin" + .incbin "doubleBookshelf/gUnk_08123D68.bin" diff --git a/data/const/object/object51.s b/data/const/object/giantRock2.s similarity index 100% rename from data/const/object/object51.s rename to data/const/object/giantRock2.s diff --git a/data/const/object/objectBA.s b/data/const/object/gyorgBossObject.s similarity index 88% rename from data/const/object/objectBA.s rename to data/const/object/gyorgBossObject.s index c6ab4a1f..eb5c2617 100644 --- a/data/const/object/objectBA.s +++ b/data/const/object/gyorgBossObject.s @@ -17,4 +17,4 @@ gUnk_08124ED0:: @ 08124ED0 .4byte sub_080A1C04 gUnk_08124EF8:: @ 08124EF8 - .incbin "objectBA/gUnk_08124EF8.bin" + .incbin "gyorgBossObject/gUnk_08124EF8.bin" diff --git a/data/const/object/object89.s b/data/const/object/mazaalBossObject.s similarity index 100% rename from data/const/object/object89.s rename to data/const/object/mazaalBossObject.s diff --git a/data/const/object/object4.s b/data/const/object/minishEmoticon.s similarity index 100% rename from data/const/object/object4.s rename to data/const/object/minishEmoticon.s diff --git a/data/const/object/object5A.s b/data/const/object/paper.s similarity index 100% rename from data/const/object/object5A.s rename to data/const/object/paper.s diff --git a/data/const/object/object24.s b/data/const/object/pressurePlate.s similarity index 83% rename from data/const/object/object24.s rename to data/const/object/pressurePlate.s index f0e129bb..15f9e807 100644 --- a/data/const/object/object24.s +++ b/data/const/object/pressurePlate.s @@ -10,4 +10,4 @@ gUnk_08120BE0:: @ 08120BE0 .4byte sub_080888F4 gUnk_08120BEC:: @ 08120BEC - .incbin "object24/gUnk_08120BEC.bin" + .incbin "PressurePlate/gUnk_08120BEC.bin" diff --git a/data/const/object/object72.s b/data/const/object/stoneTablet.s similarity index 72% rename from data/const/object/object72.s rename to data/const/object/stoneTablet.s index f211569e..13bd0ece 100644 --- a/data/const/object/object72.s +++ b/data/const/object/stoneTablet.s @@ -9,7 +9,7 @@ gUnk_081232E4:: @ 081232E4 .4byte nullsub_529 gUnk_081232EC:: @ 081232EC - .incbin "object72/gUnk_081232EC.bin" + .incbin "stoneTablet/gUnk_081232EC.bin" gUnk_081232FE:: @ 081232FE - .incbin "object72/gUnk_081232FE.bin" + .incbin "stoneTablet/gUnk_081232FE.bin" diff --git a/data/gfx/sprite_frames.s b/data/gfx/sprite_frames.s index 6dc4cd56..553c2c2d 100644 --- a/data/gfx/sprite_frames.s +++ b/data/gfx/sprite_frames.s @@ -31,8 +31,8 @@ gSpriteFrames_8:: @ 08116888 gSpriteFrames_9:: @ 08116A9C .include "sprites/gSpriteFrames_9.s" -gSpriteFrames_Object4:: @ 08116D0C - .include "sprites/gSpriteFrames_Object4.s" +gSpriteFrames_MinishEmoticon:: @ 08116D0C + .include "sprites/gSpriteFrames_MinishEmoticon.s" gSpriteFrames_EzloCap:: @ 08116DD4 .include "sprites/gSpriteFrames_EzloCap.s" diff --git a/data/gfx/sprite_ptrs.s b/data/gfx/sprite_ptrs.s index 00f76d64..8cae8cca 100644 --- a/data/gfx/sprite_ptrs.s +++ b/data/gfx/sprite_ptrs.s @@ -55,8 +55,8 @@ gSpritePtrs:: @ 080029B4 .4byte gSprite_Link .4byte 00000000 - .4byte gSpriteAnimations_Object4 - .4byte gSpriteFrames_Object4 + .4byte gSpriteAnimations_MinishEmoticon + .4byte gSpriteFrames_MinishEmoticon .4byte gSprite_Link .4byte 00000000 @@ -915,7 +915,7 @@ gSpritePtrs:: @ 080029B4 .4byte 00000000 .4byte 00000000 - .4byte gSpriteAnimations_Object24 + .4byte gSpriteAnimations_PressurePlate .4byte 00000000 .4byte 00000000 .4byte 00000000 @@ -1000,7 +1000,7 @@ gSpritePtrs:: @ 080029B4 .4byte 00000000 .4byte 00000000 - .4byte gSpriteAnimations_Object29 + .4byte gSpriteAnimations_AmbientClouds .4byte 00000000 .4byte 00000000 .4byte 00000000 @@ -1335,7 +1335,7 @@ gSpritePtrs:: @ 080029B4 .4byte 00000000 .4byte 00000000 - .4byte gSpriteAnimations_Object93_0 + .4byte gSpriteAnimations_Lamp_0 .4byte 00000000 .4byte 00000000 .4byte 00000000 @@ -1375,7 +1375,7 @@ gSpritePtrs:: @ 080029B4 .4byte 00000000 .4byte 00000000 - .4byte gSpriteAnimations_Object93_1 + .4byte gSpriteAnimations_Lamp_1 .4byte 00000000 .4byte 00000000 .4byte 00000000 @@ -1457,7 +1457,7 @@ gSpritePtrs:: @ 080029B4 .4byte 00000000 .4byte 00000000 - .4byte gSpriteAnimations_ObjectA0 + .4byte gSpriteAnimations_AngryStatue .4byte 00000000 .4byte 00000000 .4byte 00000000 diff --git a/include/definitions.h b/include/definitions.h index f2d631d9..d8374ab0 100644 --- a/include/definitions.h +++ b/include/definitions.h @@ -113,7 +113,7 @@ typedef enum { SPRITE_7, SPRITE_8, SPRITE_9, - SPRITE_OBJECT4, + SPRITE_MINISHEMOTICON, SPRITE_EZLOCAP, SPRITE_12, SPRITE_13, @@ -285,7 +285,7 @@ typedef enum { SPRITE_DOORMIMIC_1, SPRITE_ROCKCHUCHU, SPRITE_SPINYCHUCHU, - SPRITE_OBJECT24, + SPRITE_PRESSUREPLATE, SPRITE_OBJECT1E, SPRITE_CHESTSPAWNER, SPRITE_BIGBARREL, @@ -302,7 +302,7 @@ typedef enum { SPRITE_PULLABLEMUSHROOM, SPRITE_BOLLARD, SPRITE_WARPPOINT, - SPRITE_OBJECT29, + SPRITE_AMBIENTCLOUDS, SPRITE_CHUCHUBOSS_1, SPRITE_CHUCHUBOSS_2, SPRITE_OBJECT9, @@ -369,7 +369,7 @@ typedef enum { SPRITE_FLYINGSKULL, SPRITE_BONEPROJECTILE, SPRITE_BAKEROVEN, - SPRITE_OBJECT93_0, + SPRITE_LAMP_0, SPRITE_LAKITULIGHTNING, SPRITE_OBJECT6A_5, SPRITE_BIRD_1, @@ -377,7 +377,7 @@ typedef enum { SPRITE_TORCHTRAPPROJECTILE_0, SPRITE_TORCHTRAPPROJECTILE_1, SPRITE_OBJECT98, - SPRITE_OBJECT93_1, + SPRITE_LAMP_1, SPRITE_FIGURINEDEVICE, SPRITE_PULLABLELEVER_1, SPRITE_VAATIPROJECTILE, @@ -395,7 +395,7 @@ typedef enum { SPRITE_OBJECTB4_1, #endif SPRITE_FAN, - SPRITE_OBJECTA0, + SPRITE_ANGRYSTATUE, SPRITE_CANNONBALLPROJECTILE, SPRITE_V1EYELASER, SPRITE_V1DARKMAGICPROJECTILE, diff --git a/include/object.h b/include/object.h index 05cdfa7c..1a219e09 100644 --- a/include/object.h +++ b/include/object.h @@ -9,7 +9,7 @@ typedef enum { DEATH_FX, SHOP_ITEM, BUTTON, - OBJECT_4, + MINISH_EMOTICON, POT, EZLO_CAP, PUSHED_BLOCK, @@ -41,12 +41,12 @@ typedef enum { OBJECT_21, FIGURINE_DEVICE, EYE_SWITCH, - OBJECT_24, + PRESSURE_PLATE, BIG_BARREL, - OBJECT_26, + BARREL_INSIDE, PUSHABLE_STATUE, OBJECT_28, - OBJECT_29, + AMBIENT_CLOUDS, OBJECT_2A, OBJECT_2B, BEANSTALK, @@ -86,7 +86,7 @@ typedef enum { MINISH_SIZED_ENTRANCE, ARCHWAY, GIANT_ROCK, - OBJECT_51, + GIANT_ROCK2, OBJECT_52, OBJECT_53, PULLABLE_LEVER, @@ -95,7 +95,7 @@ typedef enum { HIDDEN_LADDER_DOWN, GENTARI_CURTAIN, LAVA_PLATFORM, - OBJECT_5A, + PAPER, OBJECT_5B, MASK, HOUSE_DOOR_INT, @@ -119,7 +119,7 @@ typedef enum { MINISH_SIZED_ARCHWAY, OBJECT_70, PUSHABLE_GRAVE, - OBJECT_72, + STONE_TABLET, LILYPAD_SMALL, OBJECT_74, OBJECT_75, @@ -133,7 +133,7 @@ typedef enum { OBJECT_ON_BEETLE, OBJECT_7E, PICO_BLOOM, - OBJECT_80, + BOARD, OBJECT_81, BIG_VORTEX, BIG_PUSHABLE_LEVER, @@ -142,9 +142,9 @@ typedef enum { OBJECT_86, OCTOROK_BOSS_OBJECT, HUGE_BOOK, - OBJECT_89, - OBJECT_8A, - OBJECT_8B, + MAZAAL_BOSS_OBJECT, + CABIN_FURNITURE, + DOUBLE_BOOKSHELF, BOOK, FIREPLACE, OBJECT_8E, @@ -152,7 +152,7 @@ typedef enum { OBJECT_90, OBJECT_91, BAKER_OVEN, - OBJECT_93, + LAMP, WIND_TRIBE_FLAG, BIRD, OBJECT_96, @@ -163,14 +163,14 @@ typedef enum { OBJECT_9B, TREE_HIDING_PORTAL, LIGHTABLE_SWITCH, - OBJECT_9E, + TREE_THORNS, FAN, - OBJECT_A0, + ANGRY_STATUE, PALACE_ARCHWAY, OBJECT_A2, CLOUD, MINISH_LIGHT, - OBJECT_A5, + FIREBALL_CHAIN, OBJECT_A6, OBJECT_A7, OBJECT_A8, @@ -191,7 +191,7 @@ typedef enum { WELL, WIND_TRIBE_TELEPORTER, OBJECT_B9, - OBJECT_BA, + GYORG_BOSS_OBJECT, WINDCREST, LIT_AREA, OBJECT_BD, @@ -205,7 +205,7 @@ extern void ItemOnGround(Entity*); extern void DeathFx(Entity*); extern void ItemForSale(Entity*); extern void Button(Entity*); -extern void Object4(Entity*); +extern void MinishEmoticon(Entity*); extern void Pot(Entity*); extern void EzloCap(Entity*); extern void BlockPushed(Entity*); @@ -237,12 +237,12 @@ extern void Object20(Entity*); extern void Object21(Entity*); extern void FigurineDevice(Entity*); extern void EyeSwitch(Entity*); -extern void Object24(Entity*); +extern void PressurePlate(Entity*); extern void BigBarrel(Entity*); -extern void Object26(Entity*); +extern void BarrelInside(Entity*); extern void PushableStatue(Entity*); extern void Object28(Entity*); -extern void Object29(Entity*); +extern void AmbientClouds(Entity*); extern void Object2A(Entity*); extern void Object2B(Entity*); extern void Beanstalk(Entity*); @@ -282,7 +282,7 @@ extern void Furniture(Entity*); extern void MinishSizedEntrance(Entity*); extern void Archway(Entity*); extern void GiantRock(Entity*); -extern void Object51(Entity*); +extern void GiantRock2(Entity*); extern void Object52(Entity*); extern void Object53(Entity*); extern void PullableLever(Entity*); @@ -291,7 +291,7 @@ extern void ThoughtBubble(Entity*); extern void HiddenLadderDown(Entity*); extern void GentariCurtain(Entity*); extern void LavaPlatform(Entity*); -extern void Object5A(Entity*); +extern void Paper(Entity*); extern void Object5B(Entity*); extern void Mask(Entity*); extern void HouseDoorInterior(Entity*); @@ -315,7 +315,7 @@ extern void MineralWaterSource(Entity*); extern void MinishSizedArchway(Entity*); extern void Object70(Entity*); extern void PushableGrave(Entity*); -extern void Object72(Entity*); +extern void StoneTablet(Entity*); extern void LilypadSmall(Entity*); extern void Object74(Entity*); extern void Object75(Entity*); @@ -329,7 +329,7 @@ extern void MacroShoes(Entity*); extern void ObjectOnSpinyBeetle(Entity*); extern void Object7E(Entity*); extern void PicoBloom(Entity*); -extern void Object80(Entity*); +extern void Board(Entity*); extern void Object81(Entity*); extern void BigVortex(Entity*); extern void BigPushableLever(Entity*); @@ -338,9 +338,9 @@ extern void BigIceBlock(Entity*); extern void Object86(Entity*); extern void OctorokBossObject(Entity*); extern void MacroBook(Entity*); -extern void Object89(Entity*); -extern void Object8A(Entity*); -extern void Object8B(Entity*); +extern void MazaalBossObject(Entity*); +extern void CabinFurniture(Entity*); +extern void DoubleBookshelf(Entity*); extern void Book(Entity*); extern void Fireplace(Entity*); extern void Object8E(Entity*); @@ -348,7 +348,7 @@ extern void FrozenWaterElement(Entity*); extern void Object90(Entity*); extern void Object91(Entity*); extern void BakerOven(Entity*); -extern void Object93(Entity*); +extern void Lamp(Entity*); extern void WindTribeFlag(Entity*); extern void Bird(Entity*); extern void Object96(Entity*); @@ -359,14 +359,14 @@ extern void MacroAcorn(Entity*); extern void Object9B(Entity*); extern void TreeHidingPortal(Entity*); extern void LightableSwitch(Entity*); -extern void Object9E(Entity*); +extern void TreeThorns(Entity*); extern void Fan(Entity*); -extern void ObjectA0(Entity*); +extern void AngryStatue(Entity*); extern void PalaceArchway(Entity*); extern void ObjectA2(Entity*); extern void Cloud(Entity*); extern void MinishLight(Entity*); -extern void ObjectA5(Entity*); +extern void FireballChain(Entity*); extern void ObjectA6(Entity*); extern void ObjectA7(Entity*); extern void ObjectA8(Entity*); @@ -387,7 +387,7 @@ extern void ObjectB6(Entity*); extern void Well(Entity*); extern void WindTribeTeleporter(Entity*); extern void ObjectB9(Entity*); -extern void ObjectBA(Entity*); +extern void GyorgBossObject(Entity*); extern void Windcrest(Entity*); extern void LitArea(Entity*); extern void ObjectBD(Entity*); diff --git a/linker.ld b/linker.ld index 2d25fba6..ba7c1b31 100644 --- a/linker.ld +++ b/linker.ld @@ -705,7 +705,7 @@ SECTIONS { asm/deathFx.o(.text); asm/itemForSale.o(.text); src/object/button.o(.text); - asm/object4.o(.text); + asm/minishEmoticon.o(.text); src/object/pot.o(.text); asm/ezloCap.o(.text); asm/blockPushed.o(.text); @@ -738,12 +738,12 @@ SECTIONS { asm/object21.o(.text); asm/figurineDevice.o(.text); asm/eyeSwitch.o(.text); - asm/object24.o(.text); + asm/PressurePlate.o(.text); asm/bigBarrel.o(.text); - asm/object26.o(.text); + asm/barrelInside.o(.text); asm/pushableStatue.o(.text); asm/object28.o(.text); - asm/object29.o(.text); + asm/ambientClouds.o(.text); src/object/object2A.o(.text); asm/object2A.o(.text); asm/object2B.o(.text); @@ -787,7 +787,7 @@ SECTIONS { src/object/minishSizedEntrance.o(.text); src/object/archway.o(.text); asm/giantRock.o(.text); - asm/object51.o(.text); + asm/giantRock2.o(.text); asm/object52.o(.text); asm/object53.o(.text); asm/pullableLever.o(.text); @@ -797,7 +797,7 @@ SECTIONS { src/object/hiddenLadderDown.o(.text); asm/gentariCurtains.o(.text); asm/lavaPlatform.o(.text); - asm/object5A.o(.text); + asm/paper.o(.text); asm/object5B.o(.text); src/object/mask.o(.text); asm/houseDoorInterior.o(.text); @@ -821,7 +821,7 @@ SECTIONS { src/object/minishSizedArchway.o(.text); asm/object70.o(.text); asm/pushableGrave.o(.text); - asm/object72.o(.text); + asm/stoneTablet.o(.text); src/object/lilypadSmall.o(.text); asm/object74.o(.text); src/object/bell.o(.text); @@ -833,7 +833,7 @@ SECTIONS { asm/objectOnSpinyBeetle.o(.text); src/object/object7E.o(.text); asm/picoBloom.o(.text); - asm/object80.o(.text); + asm/board.o(.text); asm/object81.o(.text); src/object/bigVortex.o(.text); asm/bigPushableLever.o(.text); @@ -842,9 +842,9 @@ SECTIONS { src/object/object86.o(.text); src/object/octorokBossObject.o(.text); asm/macroBook.o(.text); - asm/object89.o(.text); - asm/object8A.o(.text); - asm/object8B.o(.text); + asm/mazaalBossObject.o(.text); + asm/cabinFurniture.o(.text); + asm/doubleBookshelf.o(.text); src/object/book.o(.text); src/object/fireplace.o(.text); asm/object8E.o(.text); @@ -852,7 +852,7 @@ SECTIONS { asm/object90.o(.text); asm/object91.o(.text); src/object/bakerOven.o(.text); - asm/object93.o(.text); + asm/lamp.o(.text); src/object/windTribeFlag.o(.text); src/object/bird.o(.text); asm/bird.o(.text); @@ -865,15 +865,15 @@ SECTIONS { src/object/treeHidingPortal.o(.text); asm/treeHidingPortal.o(.text); src/object/lightableSwitch.o(.text); - src/object/object9E.o(.text); + src/object/treeThorns.o(.text); src/object/fan.o(.text); asm/fan.o(.text); - asm/objectA0.o(.text); + asm/angryStatue.o(.text); src/object/palaceArchway.o(.text); src/object/objectA2.o(.text); src/object/cloud.o(.text); src/object/minishLight.o(.text); - asm/objectA5.o(.text); + asm/fireballChain.o(.text); asm/objectA6.o(.text); asm/objectA7.o(.text); src/object/objectA8.o(.text); @@ -895,7 +895,7 @@ SECTIONS { src/object/well.o(.text); asm/windTribeTeleporter.o(.text); asm/objectB9.o(.text); - asm/objectBA.o(.text); + asm/gyorgBossObject.o(.text); src/object/windcrest.o(.text); asm/litArea.o(.text); asm/objectBD.o(.text); @@ -1416,8 +1416,8 @@ SECTIONS { data/animations/object/deathFx.o(.rodata); data/const/object/itemForSale.o(.rodata); data/const/object/button.o(.rodata); - data/const/object/object4.o(.rodata); - data/animations/object/object4.o(.rodata); + data/const/object/minishEmoticon.o(.rodata); + data/animations/object/minishEmoticon.o(.rodata); data/const/object/pot.o(.rodata); data/animations/object/pot.o(.rodata); data/const/object/ezloCap.o(.rodata); @@ -1459,15 +1459,15 @@ SECTIONS { data/animations/object/figurineDevice.o(.rodata); data/const/object/eyeSwitch.o(.rodata); data/animations/object/eyeSwitch.o(.rodata); - data/const/object/object24.o(.rodata); - data/animations/object/object24.o(.rodata); + data/const/object/pressurePlate.o(.rodata); + data/animations/object/pressurePlate.o(.rodata); data/const/object/bigBarrel.o(.rodata); data/animations/object/bigBarrel.o(.rodata); - data/const/object/object26.o(.rodata); + data/const/object/barrelInside.o(.rodata); data/const/object/pushableStatue.o(.rodata); data/animations/object/pushableStatue.o(.rodata); - data/const/object/object29.o(.rodata); - data/animations/object/object29.o(.rodata); + data/const/object/ambientClouds.o(.rodata); + data/animations/object/ambientClouds.o(.rodata); data/const/object/object2A.o(.rodata); data/animations/object/object2A.o(.rodata); data/const/object/beanstalk.o(.rodata); @@ -1522,7 +1522,7 @@ SECTIONS { src/object/furniture.o(.rodata); data/const/object/minishSizedEntrance.o(.rodata); data/animations/object/minishSizedEntrance.o(.rodata); - data/const/object/object51.o(.rodata); + data/const/object/giantRock2.o(.rodata); data/const/object/object53.o(.rodata); data/const/object/pullableLever.o(.rodata); data/animations/object/pullableLever.o(.rodata); @@ -1535,7 +1535,7 @@ SECTIONS { data/animations/object/gentariCurtains.o(.rodata); data/const/object/lavaPlatform.o(.rodata); data/animations/object/lavaPlatform.o(.rodata); - data/const/object/object5A.o(.rodata); + data/const/object/paper.o(.rodata); data/const/object/object5B.o(.rodata); data/const/object/mask.o(.rodata); data/const/object/houseDoorInterior.o(.rodata); @@ -1560,7 +1560,7 @@ SECTIONS { data/const/object/mineralWaterSource.o(.rodata); data/const/object/object70.o(.rodata); data/const/object/pushableGrave.o(.rodata); - data/const/object/object72.o(.rodata); + data/const/object/stoneTablet.o(.rodata); data/const/object/lilypadSmall.o(.rodata); data/const/object/object74.o(.rodata); data/const/object/bell.o(.rodata); @@ -1575,7 +1575,7 @@ SECTIONS { data/const/object/objectOnSpinyBeetle.o(.rodata); data/const/object/picoBloom.o(.rodata); data/animations/object/picoBloom.o(.rodata); - data/const/object/object80.o(.rodata); + data/const/object/board.o(.rodata); data/const/object/object81.o(.rodata); data/const/object/bigVortex.o(.rodata); data/animations/object/bigVortex.o(.rodata); @@ -1590,9 +1590,9 @@ SECTIONS { src/object/octorokBossObject.o(.rodata); data/const/object/macroBook.o(.rodata); data/animations/object/macroBook.o(.rodata); - data/const/object/object89.o(.rodata); - data/const/object/object8A.o(.rodata); - data/const/object/object8B.o(.rodata); + data/const/object/mazaalBossObject.o(.rodata); + data/const/object/cabinFurniture.o(.rodata); + data/const/object/doubleBookshelf.o(.rodata); src/object/book.o(.rodata); data/const/object/fireplace.o(.rodata); data/const/object/object8E.o(.rodata); @@ -1601,7 +1601,7 @@ SECTIONS { data/const/object/object91.o(.rodata); data/const/object/bakerOven.o(.rodata); data/animations/object/bakerOven.o(.rodata); - data/animations/object/object93.o(.rodata); + data/animations/object/lamp.o(.rodata); data/const/object/bird.o(.rodata); data/animations/object/bird.o(.rodata); data/const/object/object96.o(.rodata); @@ -1615,9 +1615,10 @@ SECTIONS { data/const/object/lightableSwitch.o(.rodata); data/const/object/fan.o(.rodata); data/animations/object/fan.o(.rodata); - data/const/object/objectA0.o(.rodata); - data/animations/object/objectA0.o(.rodata); - data/const/object/palaceArchway.o(.rodata); src/object/objectA2.o(.rodata); + data/const/object/angryStatue.o(.rodata); + data/animations/object/angryStatue.o(.rodata); + data/const/object/palaceArchway.o(.rodata); + src/object/objectA2.o(.rodata); data/animations/object/objectA2.o(.rodata); data/const/object/cloud.o(.rodata); data/const/object/minishLight.o(.rodata); @@ -1643,8 +1644,8 @@ SECTIONS { data/const/object/well.o(.rodata); data/const/object/windTribeTeleporter.o(.rodata); data/const/object/objectB9.o(.rodata); - data/const/object/objectBA.o(.rodata); - data/animations/object/objectBA.o(.rodata); + data/const/object/gyorgBossObject.o(.rodata); + data/animations/object/gyorgBossObject.o(.rodata); data/const/object/windcrest.o(.rodata); data/const/object/objectBD.o(.rodata); data/const/object/pinwheel.o(.rodata); diff --git a/src/manager/manager2B.c b/src/manager/manager2B.c index 3ef01daf..f4cc8868 100644 --- a/src/manager/manager2B.c +++ b/src/manager/manager2B.c @@ -46,7 +46,7 @@ void sub_0805D02C(Manager2B* this) { objectData = GetCurrentRoomProperty(this->manager.unk_0a); counter = 0; while (counter < 4) { - object = CreateObject(OBJECT_A0, objectData[2], counter); + object = CreateObject(ANGRY_STATUE, objectData[2], counter); object->x.HALF.HI = objectData[0] + gRoomControls.roomOriginX; object->y.HALF.HI = objectData[1] + gRoomControls.roomOriginY; object->parent = (Entity*)this; diff --git a/src/object.c b/src/object.c index b7b65ad5..9a1f983e 100644 --- a/src/object.c +++ b/src/object.c @@ -8,7 +8,7 @@ void (*const gObjectFunctions[])(Entity*) = { [DEATH_FX] = DeathFx, [SHOP_ITEM] = ItemForSale, [BUTTON] = Button, - [OBJECT_4] = Object4, + [MINISH_EMOTICON] = MinishEmoticon, [POT] = Pot, [EZLO_CAP] = EzloCap, [PUSHED_BLOCK] = BlockPushed, @@ -40,12 +40,12 @@ void (*const gObjectFunctions[])(Entity*) = { [OBJECT_21] = Object21, [FIGURINE_DEVICE] = FigurineDevice, [EYE_SWITCH] = EyeSwitch, - [OBJECT_24] = Object24, + [PRESSURE_PLATE] = PressurePlate, [BIG_BARREL] = BigBarrel, - [OBJECT_26] = Object26, + [BARREL_INSIDE] = BarrelInside, [PUSHABLE_STATUE] = PushableStatue, [OBJECT_28] = Object28, - [OBJECT_29] = Object29, + [AMBIENT_CLOUDS] = AmbientClouds, [OBJECT_2A] = Object2A, [OBJECT_2B] = Object2B, [BEANSTALK] = Beanstalk, @@ -85,7 +85,7 @@ void (*const gObjectFunctions[])(Entity*) = { [MINISH_SIZED_ENTRANCE] = MinishSizedEntrance, [ARCHWAY] = Archway, [GIANT_ROCK] = GiantRock, - [OBJECT_51] = Object51, + [GIANT_ROCK2] = GiantRock2, [OBJECT_52] = Object52, [OBJECT_53] = Object53, [PULLABLE_LEVER] = PullableLever, @@ -94,7 +94,7 @@ void (*const gObjectFunctions[])(Entity*) = { [HIDDEN_LADDER_DOWN] = HiddenLadderDown, [GENTARI_CURTAIN] = GentariCurtain, [LAVA_PLATFORM] = LavaPlatform, - [OBJECT_5A] = Object5A, + [PAPER] = Paper, [OBJECT_5B] = Object5B, [MASK] = Mask, [HOUSE_DOOR_INT] = HouseDoorInterior, @@ -118,7 +118,7 @@ void (*const gObjectFunctions[])(Entity*) = { [MINISH_SIZED_ARCHWAY] = MinishSizedArchway, [OBJECT_70] = Object70, [PUSHABLE_GRAVE] = PushableGrave, - [OBJECT_72] = Object72, + [STONE_TABLET] = StoneTablet, [LILYPAD_SMALL] = LilypadSmall, [OBJECT_74] = Object74, [OBJECT_75] = Object75, @@ -132,7 +132,7 @@ void (*const gObjectFunctions[])(Entity*) = { [OBJECT_ON_BEETLE] = ObjectOnSpinyBeetle, [OBJECT_7E] = Object7E, [PICO_BLOOM] = PicoBloom, - [OBJECT_80] = Object80, + [BOARD] = Board, [OBJECT_81] = Object81, [BIG_VORTEX] = BigVortex, [BIG_PUSHABLE_LEVER] = BigPushableLever, @@ -141,9 +141,9 @@ void (*const gObjectFunctions[])(Entity*) = { [OBJECT_86] = Object86, [OCTOROK_BOSS_OBJECT] = OctorokBossObject, [HUGE_BOOK] = MacroBook, - [OBJECT_89] = Object89, - [OBJECT_8A] = Object8A, - [OBJECT_8B] = Object8B, + [MAZAAL_BOSS_OBJECT] = MazaalBossObject, + [CABIN_FURNITURE] = CabinFurniture, + [DOUBLE_BOOKSHELF] = DoubleBookshelf, [BOOK] = Book, [FIREPLACE] = Fireplace, [OBJECT_8E] = Object8E, @@ -151,7 +151,7 @@ void (*const gObjectFunctions[])(Entity*) = { [OBJECT_90] = Object90, [OBJECT_91] = Object91, [BAKER_OVEN] = BakerOven, - [OBJECT_93] = Object93, + [LAMP] = Lamp, [WIND_TRIBE_FLAG] = WindTribeFlag, [BIRD] = Bird, [OBJECT_96] = Object96, @@ -162,14 +162,14 @@ void (*const gObjectFunctions[])(Entity*) = { [OBJECT_9B] = Object9B, [TREE_HIDING_PORTAL] = TreeHidingPortal, [LIGHTABLE_SWITCH] = LightableSwitch, - [OBJECT_9E] = Object9E, + [TREE_THORNS] = TreeThorns, [FAN] = Fan, - [OBJECT_A0] = ObjectA0, + [ANGRY_STATUE] = AngryStatue, [PALACE_ARCHWAY] = PalaceArchway, [OBJECT_A2] = ObjectA2, [CLOUD] = Cloud, [MINISH_LIGHT] = MinishLight, - [OBJECT_A5] = ObjectA5, + [FIREBALL_CHAIN] = FireballChain, [OBJECT_A6] = ObjectA6, [OBJECT_A7] = ObjectA7, [OBJECT_A8] = ObjectA8, @@ -190,7 +190,7 @@ void (*const gObjectFunctions[])(Entity*) = { [WELL] = Well, [WIND_TRIBE_TELEPORTER] = WindTribeTeleporter, [OBJECT_B9] = ObjectB9, - [OBJECT_BA] = ObjectBA, + [GYORG_BOSS_OBJECT] = GyorgBossObject, [WINDCREST] = Windcrest, [LIT_AREA] = LitArea, [OBJECT_BD] = ObjectBD, diff --git a/src/object/furniture.c b/src/object/furniture.c index b313ca3f..a4d003bd 100644 --- a/src/object/furniture.c +++ b/src/object/furniture.c @@ -82,7 +82,7 @@ typedef enum { FORGE_HELPER, MINISH_UNLIT_CANDLE, MINISH_GEARS, - DOUBLE_BOOKSHELF, + DOUBLE_BOOKSHELF_STATIC, MINISH_DECOR1, MINISH_DECOR2, MINISH_JAM, diff --git a/src/object/object9E.c b/src/object/treeThorns.c similarity index 92% rename from src/object/object9E.c rename to src/object/treeThorns.c index d44adf62..5a52b9a5 100644 --- a/src/object/object9E.c +++ b/src/object/treeThorns.c @@ -7,7 +7,7 @@ extern Hitbox gHitbox_1; -void Object9E(Entity* this) { +void TreeThorns(Entity* this) { Entity* ent; u32 tilePos; u8* layer; @@ -29,7 +29,7 @@ void Object9E(Entity* this) { SetTile(0x4066, tilePos - 1, *layer); SetTile(0x4065, tilePos, *layer); UpdateSpriteForCollisionLayer(this); - ent = CreateObject(OBJECT_9E, 1, 0); + ent = CreateObject(TREE_THORNS, 1, 0); if (ent != NULL) { this->child = ent; CopyPosition(this, ent); diff --git a/src/objectDefinitions.c b/src/objectDefinitions.c index c8154dec..4a0186a1 100644 --- a/src/objectDefinitions.c +++ b/src/objectDefinitions.c @@ -118,9 +118,9 @@ const ObjectDefinition gObjectDefinition_25[] = { { { 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, SPRITE_0, 0, 0 } }, }; const ObjectDefinition gObjectDefinition_24[] = { - { { 1, 0, 0, 0, 22, 0, 0 }, { 0, 0, 0, 0, SPRITE_OBJECT24, 0, 0 } }, - { { 1, 0, 0, 0, 39, 0, 0 }, { 0, 0, 0, 0, SPRITE_OBJECT24, 0, 0 } }, - { { 1, 0, 0, 0, 40, 0, 0 }, { 0, 0, 0, 0, SPRITE_OBJECT24, 0, 0 } }, + { { 1, 0, 0, 0, 22, 0, 0 }, { 0, 0, 0, 0, SPRITE_PRESSUREPLATE, 0, 0 } }, + { { 1, 0, 0, 0, 39, 0, 0 }, { 0, 0, 0, 0, SPRITE_PRESSUREPLATE, 0, 0 } }, + { { 1, 0, 0, 0, 40, 0, 0 }, { 0, 0, 0, 0, SPRITE_PRESSUREPLATE, 0, 0 } }, }; #ifdef EU const ObjectDefinition gObjectDefinition_1C[] = { From 6ab9aa99fd159334d86ebb2bff5fcd2886d338e1 Mon Sep 17 00:00:00 2001 From: theo3 Date: Fri, 17 Dec 2021 11:30:16 -0800 Subject: [PATCH 020/168] linker fix --- linker.ld | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linker.ld b/linker.ld index ba7c1b31..f20f38ab 100644 --- a/linker.ld +++ b/linker.ld @@ -738,7 +738,7 @@ SECTIONS { asm/object21.o(.text); asm/figurineDevice.o(.text); asm/eyeSwitch.o(.text); - asm/PressurePlate.o(.text); + asm/pressurePlate.o(.text); asm/bigBarrel.o(.text); asm/barrelInside.o(.text); asm/pushableStatue.o(.text); From 555fa4369543992ef0c1340041a5c6762d790af7 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Sat, 18 Dec 2021 00:51:20 +0100 Subject: [PATCH 021/168] Decompile code_080A7C00 --- asm/code_0804B058.s | 8 +- asm/code_080A7C00.s | 197 ------------------------------------------- asm/objectOnPillar.s | 4 +- include/functions.h | 2 +- include/structures.h | 26 ++++++ linker.ld | 4 +- src/code_080A7C00.c | 115 +++++++++++++++++++++++++ src/loadRoom.c | 4 +- 8 files changed, 152 insertions(+), 208 deletions(-) delete mode 100644 asm/code_080A7C00.s create mode 100644 src/code_080A7C00.c diff --git a/asm/code_0804B058.s b/asm/code_0804B058.s index d8682f83..23fa0b18 100644 --- a/asm/code_0804B058.s +++ b/asm/code_0804B058.s @@ -47,7 +47,7 @@ _0804B168: .4byte gRoomVars thumb_func_start sub_0804B16C sub_0804B16C: @ 0x0804B16C push {r4, lr} - ldr r4, _0804B1A4 @ =gUnk_02017660 + ldr r4, _0804B1A4 @ =gSmallChests _0804B170: ldrh r0, [r4, #4] cmp r0, #0 @@ -75,7 +75,7 @@ _0804B198: blo _0804B170 pop {r4, pc} .align 2, 0 -_0804B1A4: .4byte gUnk_02017660 +_0804B1A4: .4byte gSmallChests _0804B1A8: .4byte gPaletteBuffer thumb_func_start LoadRoomTileEntities @@ -202,7 +202,7 @@ sub_0804B290: @ 0x0804B290 sub_0804B29C: @ 0x0804B29C push {r4, lr} adds r2, r0, #0 - ldr r4, _0804B2EC @ =gUnk_02017660 + ldr r4, _0804B2EC @ =gSmallChests movs r1, #0 _0804B2A4: ldrh r0, [r4, #4] @@ -237,7 +237,7 @@ _0804B2A4: bl sub_0806F704 b _0804B2FC .align 2, 0 -_0804B2EC: .4byte gUnk_02017660 +_0804B2EC: .4byte gSmallChests _0804B2F0: .4byte gRoomControls _0804B2F4: adds r1, #1 diff --git a/asm/code_080A7C00.s b/asm/code_080A7C00.s deleted file mode 100644 index 988666cd..00000000 --- a/asm/code_080A7C00.s +++ /dev/null @@ -1,197 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start CreateItemEntity -CreateItemEntity: @ 0x080A7C00 - push {r4, lr} - bl GiveItemWithCutscene - adds r4, r0, #0 - cmp r4, #0 - beq _080A7C16 - ldrb r1, [r4, #0xa] - movs r2, #0 - bl sub_080A276C - str r0, [r4, #0x50] -_080A7C16: - pop {r4, pc} - - thumb_func_start sub_080A7C18 -sub_080A7C18: @ 0x080A7C18 - push {lr} - bl GiveItemWithCutscene - adds r2, r0, #0 - cmp r2, #0 - beq _080A7C32 - ldr r0, _080A7C34 @ =gPlayerEntity - str r0, [r2, #0x50] - ldrb r1, [r2, #0xa] - adds r0, r2, #0 - movs r2, #0 - bl sub_08078AF0 -_080A7C32: - pop {pc} - .align 2, 0 -_080A7C34: .4byte gPlayerEntity - - thumb_func_start GiveItemWithCutscene -GiveItemWithCutscene: @ 0x080A7C38 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - cmp r5, #0x3f - bne _080A7C52 - ldr r0, _080A7C78 @ =gSave - adds r0, #0xbb - ldrb r0, [r0] - cmp r0, #0 - beq _080A7C52 - movs r5, #0x57 - movs r6, #0 -_080A7C52: - bl sub_0805E744 - adds r4, r0, #0 - cmp r4, #0 - beq _080A7C72 - strb r5, [r4, #0xa] - strb r6, [r4, #0xb] - strb r7, [r4, #0xe] - movs r0, #0xb - strb r0, [r4, #9] - movs r0, #6 - strb r0, [r4, #8] - adds r0, r4, #0 - movs r1, #6 - bl AppendEntityToList -_080A7C72: - adds r0, r4, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A7C78: .4byte gSave - - thumb_func_start sub_080A7C7C -sub_080A7C7C: @ 0x080A7C7C - push {lr} - ldr r0, _080A7C88 @ =gUnk_02017660 - movs r1, #0x40 - bl MemClear - pop {pc} - .align 2, 0 -_080A7C88: .4byte gUnk_02017660 - - thumb_func_start sub_080A7C8C -sub_080A7C8C: @ 0x080A7C8C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r4, _080A7C9C @ =gUnk_02017660 - movs r2, #0 - movs r1, #0 - b _080A7CA8 - .align 2, 0 -_080A7C9C: .4byte gUnk_02017660 -_080A7CA0: - adds r1, #1 - adds r4, #8 - cmp r1, #7 - bhi _080A7CB0 -_080A7CA8: - ldrh r0, [r4, #4] - cmp r0, r5 - bne _080A7CA0 - movs r2, #1 -_080A7CB0: - lsrs r1, r6, #1 - ldrb r0, [r4, #6] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - cmp r1, r0 - bne _080A7CF4 - cmp r2, #0 - beq _080A7CD2 - ldrb r0, [r4, #1] - bl SetLocalFlag - ldrb r0, [r4, #2] - ldrb r1, [r4, #3] - movs r2, #0 - bl CreateItemEntity - b _080A7CDC -_080A7CD2: - movs r0, #0x60 - movs r1, #0 - movs r2, #0 - bl CreateItemEntity -_080A7CDC: - movs r0, #0x74 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0807B7D8 - movs r0, #0 - movs r1, #0x78 - bl RequestPriorityDuration - ldr r0, _080A7CF8 @ =0x0000011B - bl SoundReq -_080A7CF4: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A7CF8: .4byte 0x0000011B - - thumb_func_start sub_080A7CFC -sub_080A7CFC: @ 0x080A7CFC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0xc0 - lsls r4, r4, #3 - movs r6, #0 - movs r0, #3 - bl GetCurrentRoomProperty - adds r1, r0, #0 - cmp r1, #0 - beq _080A7D38 -_080A7D12: - ldrh r0, [r1, #4] - cmp r0, r5 - bne _080A7D30 - ldrb r0, [r1] - cmp r0, #5 - beq _080A7D24 - cmp r0, #6 - beq _080A7D2A - b _080A7D38 -_080A7D24: - movs r6, #0 - ldrh r4, [r1, #6] - b _080A7D38 -_080A7D2A: - movs r6, #1 - ldrh r4, [r1, #6] - b _080A7D38 -_080A7D30: - adds r1, #8 - ldrh r0, [r1, #4] - cmp r0, #0 - bne _080A7D12 -_080A7D38: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080A7D44 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080A7D44 -sub_080A7D44: @ 0x080A7D44 - push {lr} - cmp r1, #0 - beq _080A7D52 - movs r1, #0 - bl sub_08078AA8 - b _080A7D56 -_080A7D52: - bl MessageFromTarget -_080A7D56: - pop {pc} diff --git a/asm/objectOnPillar.s b/asm/objectOnPillar.s index a6f43db9..64542d7e 100644 --- a/asm/objectOnPillar.s +++ b/asm/objectOnPillar.s @@ -699,7 +699,7 @@ _08097346: sub_08097348: @ 0x08097348 push {lr} adds r3, r0, #0 - ldr r1, _08097360 @ =gUnk_02017660 + ldr r1, _08097360 @ =gSmallChests movs r2, #0 _08097350: ldrh r0, [r1, #4] @@ -709,7 +709,7 @@ _08097350: bl CheckLocalFlag b _0809736E .align 2, 0 -_08097360: .4byte gUnk_02017660 +_08097360: .4byte gSmallChests _08097364: adds r2, #1 adds r1, #8 diff --git a/include/functions.h b/include/functions.h index b9cff99a..25a9243f 100644 --- a/include/functions.h +++ b/include/functions.h @@ -29,7 +29,7 @@ extern Entity* CreateDeathFx(Entity*, u32, u32); extern void UpdateAnimationVariableFrames(Entity*, u32); extern u8* GetSpriteSubEntryOffsetDataPointer(u32, u32); extern bool32 LoadFixedGFX(Entity*, u32); -extern Entity* CreateItemEntity(u32, u32, u32); +extern void CreateItemEntity(u32, u32, u32); extern u32 ProcessMovement(Entity*); extern void MenuFadeIn(u32, u32); extern void LoadResourceAsync(const void*, u32, u32); diff --git a/include/structures.h b/include/structures.h index 2073f1b0..82b39a5c 100644 --- a/include/structures.h +++ b/include/structures.h @@ -157,4 +157,30 @@ typedef struct { void* unk8; } WStruct; +typedef struct { + u8 type; + u8 unk_0x1; + u8 unk_0x2; + u8 unk_0x3; + u16 tilePos; + u16 unk_0x6; +} TileEntityData; + +typedef enum { + NONE, + ROOM_VISIT_MARKER, + SMALL_CHEST, + BIG_CHEST, + BOMBABLE_WALL, + SIGN, + TILE_ENTITY_6, + MUSIC_SETTER, + TILE_ENTITY_8, + DARKNESS, + DESTRUCTIBLE_TILE, + GRASS_DROP_CHANGER, + TILE_ENTITY_C, + TILE_ENTITY_D +} TileEntityType; + #endif diff --git a/linker.ld b/linker.ld index f20f38ab..5859ee17 100644 --- a/linker.ld +++ b/linker.ld @@ -65,7 +65,7 @@ SECTIONS { . = 0x00012654; gMetatilesTop = .; . = 0x00016654; gUnk_02016654 = .; . = 0x00017654; gCurrentRoomProperties = .; - . = 0x00017660; gUnk_02017660 = .; + . = 0x00017660; gSmallChests = .; . = 0x000176A0; gPaletteBuffer = .; . = 0x000176E0; gUnk_020176E0 = .; . = 0x00017700; gUnk_02017700 = .; @@ -919,7 +919,7 @@ SECTIONS { src/sub_080A554C.o(.text); asm/code_080A5574.o(.text); src/playerItem/playerItemSword.o(.text); - asm/code_080A7C00.o(.text); + src/code_080A7C00.o(.text); src/projectileInit.o(.text); src/projectile/darkNutSwordSlash.o(.text); src/projectile/rockProjectile.o(.text); diff --git a/src/code_080A7C00.c b/src/code_080A7C00.c new file mode 100644 index 00000000..4038ab33 --- /dev/null +++ b/src/code_080A7C00.c @@ -0,0 +1,115 @@ +#include "global.h" +#include "utils.h" +#include "textbox.h" +#include "save.h" +#include "audio.h" +#include "flags.h" +#include "functions.h" +#include "object.h" + +extern Entity* GiveItemWithCutscene(); +extern Entity* sub_080A276C(Entity*, u32, u32); +extern void sub_08078AF0(Entity*, u32, u32); +extern Entity* sub_0805E744(void); + +extern TileEntityData gSmallChests[8]; + +void sub_080A7D44(u32, bool32); + +void CreateItemEntity(u32 type, u32 type2, u32 actionDelay) { + Entity* entity = GiveItemWithCutscene(type, type2, actionDelay); + if (entity != NULL) { + Entity* new_entity = sub_080A276C(entity, entity->type, 0); + entity->parent = new_entity; + } +} + +void sub_080A7C18(u32 type, u32 type2, u32 actionDelay) { + Entity* entity = GiveItemWithCutscene(type, type2, actionDelay); + if (entity != NULL) { + entity->parent = &gPlayerEntity; + sub_08078AF0(entity, entity->type, 0); + } +} + +Entity* GiveItemWithCutscene(s32 type, u32 type2, u32 actionDelay) { + Entity* entity; + + if ((type == 0x3f) && (gSave.stats.filler3[0] != 0)) { + type = 0x57; + type2 = 0; + } + entity = sub_0805E744(); + if (entity != NULL) { + entity->type = type; + entity->type2 = type2; + entity->actionDelay = actionDelay; + entity->id = OBJECT_B; + entity->kind = OBJECT; + AppendEntityToList(entity, 6); + } + return entity; +} + +void ClearSmallChests(void) { + MemClear(&gSmallChests, sizeof(gSmallChests)); +} + +void sub_080A7C8C(u32 tilePos, u32 param_2) { + TileEntityData* data = gSmallChests; + bool32 found = FALSE; + u32 index; + for (index = 0; index < 8; data++) { + if (data->tilePos == tilePos) { + found = TRUE; + break; + } + index++; + } + if (param_2 >> 1 == ((u32)(*((u8*)&data->unk_0x6) << 0x1f) >> 0x1f)) { + if (found) { + SetLocalFlag(data->unk_0x1); + CreateItemEntity(data->unk_0x2, data->unk_0x3, 0); + } else { + CreateItemEntity(0x60, 0, 0); + } + sub_0807B7D8(0x74, tilePos, param_2); + RequestPriorityDuration(NULL, 0x78); + SoundReq(SFX_11B); + } +} + +void sub_080A7CFC(u32 tilePos) { + u32 messageId = 0x600; + bool32 isTileEntity6 = FALSE; + TileEntityData* data = (TileEntityData*)GetCurrentRoomProperty(3); + if (data != NULL) { + do { + if (data->tilePos == tilePos) { + switch (data->type) { + case SIGN: + isTileEntity6 = FALSE; + messageId = data->unk_0x6; // message id + break; + case TILE_ENTITY_6: + isTileEntity6 = TRUE; + messageId = data->unk_0x6; + break; + } + break; + } + data += 1; + } while (data->tilePos != 0); + } + sub_080A7D44(messageId, isTileEntity6); +} + +void sub_080A7D44(u32 messageId, bool32 isTileEntity6) { + if (isTileEntity6) { + // TILE_ENTITY_6 + sub_08078AA8(messageId, 0); + } else { + // Read sign text + MessageFromTarget(messageId); + } +} diff --git a/src/loadRoom.c b/src/loadRoom.c index 4ca4aa43..6714f00c 100644 --- a/src/loadRoom.c +++ b/src/loadRoom.c @@ -17,7 +17,7 @@ extern u8 gUnk_081091E4[]; extern void sub_080186EC(); extern void sub_0804B16C(); -extern void sub_080A7C7C(void); +extern void ClearSmallChests(void); extern Entity* GetEmptyEntityByKind(u32 kind); void RegisterRoomEntity(Entity*, EntityData*); @@ -115,7 +115,7 @@ void sub_0804AF0C(Entity* ent, EntityData* dat) { void sub_0804AF90(void) { sub_0804AFB0(gArea.pCurrentRoomInfo->properties); - sub_080A7C7C(); + ClearSmallChests(); } void sub_0804AFB0(void** properties) { From 630ace80fe6fc1c2b210fe6835f30aa97dd64cac Mon Sep 17 00:00:00 2001 From: theo3 Date: Fri, 17 Dec 2021 22:32:15 -0800 Subject: [PATCH 022/168] create item enum --- include/item.h | 243 ++++++++++++++++++------------------ src/room.c | 331 ++++++++++++++++++++----------------------------- 2 files changed, 257 insertions(+), 317 deletions(-) diff --git a/include/item.h b/include/item.h index 7c36eb15..b47066da 100644 --- a/include/item.h +++ b/include/item.h @@ -21,128 +21,125 @@ extern void ItemOcarina(ItemBehavior*, u32); extern void ItemTryPickupObject(ItemBehavior*, u32); extern void ItemJarEmpty(ItemBehavior*, u32); -/* On hold until naming conflicts are resolved */ -/* - enum - { - Untyped, - SmithSword = 0x01, - GreenSword = 0x02, - RedSword = 0x03, - BlueSword = 0x04, - // UnusedSword = 0x05, - FourSword = 0x06, - Bombs = 0x07, - RemoteBombs = 0x08, - Bow = 0x09, - LightArrow = 0x0A, - Boomerang = 0x0B, - MagicBoomerang = 0x0C, - Shield = 0x0D, - MirrorShield = 0x0E, - LanternOff = 0x0F, +enum { + ITEM_NONE, + ITEM_SMITH_SWORD, + ITEM_GREEN_SWORD, + ITEM_RED_SWORD, + ITEM_BLUE_SWORD, + ITEM_UNUSED_SWORD, + ITEM_FOURSWORD, + ITEM_BOMBS, + ITEM_REMOTE_BOMBS, + ITEM_BOW, + ITEM_LIGHT_ARROW, + ITEM_BOOMERANG, + ITEM_MAGIC_BOOMERANG, + ITEM_SHIELD, + ITEM_MIRROR_SHIELD, + ITEM_LANTERN_OFF, + ITEM_LANTERN_ON, + ITEM_GUST_JAR, + ITEM_PACCI_CANE, + ITEM_MOLE_MITTS, + ITEM_ROCS_CAPE, + ITEM_PEGASUS_BOOTS, + ITEM_FIRE_ROD, + ITEM_OCARINA, + ITEM_ORB_GREEN, + ITEM_ORB_BLUE, + ITEM_ORB_RED, + ITEM_TRAP, + ITEM_BOTTLE1, + ITEM_BOTTLE2, + ITEM_BOTTLE3, + ITEM_BOTTLE4, + ITEM_BOTTLE_EMPTY, + ITEM_BOTTLE_BUTTER, + ITEM_BOTTLE_MILK, + ITEM_BOTTLE_HALF_MILK, + ITEM_BOTTLE_RED_POTION, + ITEM_BOTTLE_BLUE_POTION, + ITEM_BOTTLE_WATER, + ITEM_BOTTLE_MINERAL_WATER, + ITEM_BOTTLE_FAIRY, + ITEM_BOTTLE_PICOLYTE_RED, + ITEM_BOTTLE_PICOLYTE_ORANGE, + ITEM_BOTTLE_PICOLYTE_YELLOW, + ITEM_BOTTLE_PICOLYTE_GREEN, + ITEM_BOTTLE_PICOLYTE_BLUE, + ITEM_BOTTLE_PICOLYTE_WHITE, + BOTTLE_CHARM_NAYRU, + BOTTLE_CHARM_FARORE, + BOTTLE_CHARM_DIN, + ITEM_32, + ITEM_33, + ITEM_QST_SWORD, + ITEM_QST_BROKEN_SWORD, + ITEM_QST_DOGFOOD, + ITEM_QST_LONLON_KEY, + ITEM_QST_MUSHROOM, + ITEM_QST_BOOK1, + ITEM_QST_BOOK2, + ITEM_QST_BOOK3, + ITEM_QST_GRAVEYARD_KEY, + ITEM_QST_TINGLE_TROPHY, + ITEM_QST_CARLOV_MEDAL, + ITEM_SHELLS, + ITEM_EARTH_ELEMENT, + ITEM_FIRE_ELEMENT, + ITEM_WATER_ELEMENT, + ITEM_WIND_ELEMENT, + ITEM_GRIP_RING, + ITEM_POWER_BRACELETS, + ITEM_FLIPPERS, + ITEM_MAP, + ITEM_SKILL_SPIN_ATTACK, + ITEM_SKILL_ROLL_ATTACK, + ITEM_SKILL_DASH_ATTACK, + ITEM_SKILL_ROCK_BREAKER, + ITEM_SKILL_SWORD_BEAM, + ITEM_SKILL_GREAT_SPIN, + ITEM_SKILL_DOWN_THRUST, + ITEM_SKILL_PERIL_BEAM, + ITEM_DUNGEON_MAP, + ITEM_COMPASS, + ITEM_BIG_KEY, + ITEM_SMALL_KEY, + ITEM_RUPEE1, + ITEM_RUPEE5, + ITEM_RUPEE20, + ITEM_RUPEE50, + ITEM_RUPEE100, + ITEM_RUPEE200, + ITEM_5A, + ITEM_JABBERNUT, + ITEM_KINSTONE, + ITEM_BOMBS5, + ITEM_ARROWS5, + ITEM_HEART, + ITEM_FAIRY, + ITEM_SHELLS30, + ITEM_HEART_CONTAINER, + ITEM_HEART_PIECE, + ITEM_WALLET, + ITEM_BOMBBAG, + ITEM_LARGE_QUIVER, + ITEM_KINSTONE_BAG, + ITEM_BRIOCHE, + ITEM_CROISSANT, + ITEM_PIE, + ITEM_CAKE, + ITEM_BOMBS10, + ITEM_BOMBS30, + ITEM_ARROWS10, + ITEM_ARROWS30, + ITEM_ARROW_BUTTERFLY, + ITEM_DIG_BUTTERFLY, + ITEM_SWIM_BUTTERFLY, + ITEM_SKILL_FAST_SPIN, + ITEM_SKILL_FAST_SPLIT, + ITEM_SKILL_LONG_SPIN, +}; - GustJar = 0x11, - PacciCane = 0x12, - MoleMitts = 0x13, - RocsCape = 0x14, - PegasusBoots = 0x15, - FireRod = 0x16, - Ocarina = 0x17, - GreenOrb = 0x18, - BlueOrb = 0x19, - RedOrb = 0x1A, - Trap = 0x1B, - Bottle1 = 0x1C, - Bottle2 = 0x1D, - Bottle3 = 0x1E, - Bottle4 = 0x1F, - BottleEmpty = 0x20, - BottleButter = 0x21, - BottleMilk = 0x22, - BottleHalfMilk = 0x23, - BottleRedPotion = 0x24, - BottleBluePotion = 0x25, - BottleWater = 0x26, - BottleMineralWater = 0x27, - BottleFairy = 0x28, - BottlePicolyteRed = 0x29, - BottlePicolyteOrange = 0x2A, - BottlePicolyteYellow = 0x2B, - BottlePiclolyteGreen = 0x2C, - BottlePicolyteBlue = 0x2D, - BottlePicolyteWhite = 0x2E, - BottleCharmNayru = 0x2F, - BottleCharmFarore = 0x30, - BottleCharmDin = 0x31, - - - SmithSwordQuest = 0x34, - BrokenPicoriBlade = 0x35, - DogFoodBottle = 0x36, - LonLonKey = 0x37, - WakeUpMushroom = 0x38, - HyruleanBestiary = 0x39, - PicoriLegend = 0x3A, - MaskHistory = 0x3B, - GraveyardKey = 0x3C, - TingleTrophy = 0x3D, - CarlovMedal = 0x3E, - ShellsX = 0x3F, - EarthElement = 0x40, - FireElement = 0x41, - WaterElement = 0x42, - WindElement = 0x43, - GripRing = 0x44, - PowerBracelets = 0x45, - Flippers = 0x46, - HyruleMap = 0x47, - SpinAttack = 0x48, - RollAttack = 0x49, - DashAttack = 0x4A, - RockBreaker = 0x4B, - SwordBeam = 0x4C, - GreatSpin = 0x4D, - DownThrust = 0x4E, - PerilBeam = 0x4F, - DungeonMap = 0x50, - Compass = 0x51, - BigKey = 0x52, - SmallKey = 0x53, - Rupee1 = 0x54, - Rupee5 = 0x55, - Rupee20 = 0x56, - Rupee50 = 0x57, - Rupee100 = 0x58, - Rupee200 = 0x59, - - JabberNut = 0x5B, - KinstoneX = 0x5C, - Bombs5 = 0x5D, - Arrows5 = 0x5E, - SmallHeart = 0x5F, - Fairy = 0x60, - Shells30 = 0x61, - HeartContainer = 0x62, - PieceOfHeart = 0x63, - Wallet = 0x64, - BombBag = 0x65, - LargeQuiver = 0x66, - KinstoneBag = 0x67, - Brioche = 0x68, - Croissant = 0x69, - PieSlice = 0x6A, - CakeSlice = 0x6B, - Bombs10 = 0x6C, - Bombs30 = 0x6D, - Arrows10 = 0x6E, - Arrows30 = 0x6F, - ArrowButterfly = 0x70, - DigButterfly = 0x71, - SwimButterfly = 0x72, - FastSpin = 0x73, - FastSplit = 0x74, - LongSpin = 0x75 - } ItemType; -*/ #endif diff --git a/src/room.c b/src/room.c index 716f0806..ed1b1148 100644 --- a/src/room.c +++ b/src/room.c @@ -1,19 +1,25 @@ #include "global.h" -#include "audio.h" -#include "entity.h" -#include "area.h" -#include "room.h" -#include "flags.h" -#include "npc.h" -#include "player.h" -#include "screen.h" + #include "main.h" +#include "random.h" + +#include "functions.h" #include "structures.h" + +#include "audio.h" +#include "effects.h" +#include "screen.h" +#include "flags.h" +#include "item.h" #include "save.h" #include "script.h" -#include "random.h" -#include "functions.h" -#include "effects.h" + +#include "area.h" +#include "room.h" + +#include "entity.h" +#include "npc.h" +#include "player.h" void sub_0804B3C4(void* arg0) { sub_0804B29C(arg0); @@ -373,7 +379,7 @@ extern u32* gUnk_080D6A74[]; u32 sub_unk3_HouseInteriors1_InnWestRoom(void) { u32 index; - if (CheckLocalFlag(YADO_CHECKIN) != 0) { + if (CheckLocalFlag(YADO_CHECKIN)) { index = (s32)Random() % 3; ClearLocalFlag(BILL05_YADO1F_MATSU_T0); } else { @@ -389,7 +395,7 @@ extern void* script_08010A5C[]; void sub_StateChange_HouseInteriors1_InnWestRoom(void) { if (CheckLocalFlag(YADO_CHECKIN)) { ClearLocalFlag(YADO_CHECKIN); - DoFade(5, 0x100); + DoFade(5, 256); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; sub_080751E8(1, 2, &script_08010A5C); @@ -415,7 +421,7 @@ u32 sub_unk3_HouseInteriors1_InnMiddleRoom(void) { void sub_StateChange_HouseInteriors1_InnMiddleRoom(void) { if (CheckLocalFlag(YADO_CHECKIN) != 0) { ClearLocalFlag(YADO_CHECKIN); - DoFade(5, 0x100); + DoFade(5, 256); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; sub_080751E8(1, 2, &script_08010A5C); @@ -441,7 +447,7 @@ u32 sub_unk3_HouseInteriors1_InnEastRoom(void) { void sub_StateChange_HouseInteriors1_InnEastRoom(void) { if (CheckLocalFlag(YADO_CHECKIN)) { ClearLocalFlag(YADO_CHECKIN); - DoFade(5, 0x100); + DoFade(5, 256); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x60; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; sub_080751E8(1, 2, &script_08010A5C); @@ -653,7 +659,7 @@ void sub_StateChange_HyruleCastle_3(void) { u32 sub_unk3_HyruleCastle_4(void) { if (!CheckLocalFlag(CASTLE_04_MEZAME)) { - gScreenTransition.player_status.spawn_type = 5; + gScreenTransition.player_status.spawn_type = PL_SPAWN_SPECIAL; ClearGlobalFlag(ZELDA_CHASE); } return 1; @@ -663,7 +669,7 @@ extern u32 script_08009E88; void sub_StateChange_HyruleCastle_4(void) { if (!CheckLocalFlag(CASTLE_04_MEZAME)) { - DoFade(5, 0x100); + DoFade(5, 256); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0xb0; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x40; sub_080751E8(0, 6, &script_08009E88); @@ -685,7 +691,7 @@ void sub_StateChange_HyruleCastle_4(void) { #if defined(JP) || defined(DEMO_JP) gArea.pMusicIndex = gArea.musicIndex; #else - gArea.pMusicIndex = 0x1b; + gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; #endif } #if !(defined(JP) || defined(DEMO_JP)) @@ -1028,15 +1034,14 @@ extern EntityData gUnk_080D9098; void sub_StateChange_RoyalValley_Main(void) { if (!CheckGlobalFlag(HAKA_KEY_LOST)) { - // graveyard key - if (GetInventoryValue(0x3c) == 1) { + if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) == 1) { LoadRoomEntityList(&gUnk_080D90C8); LoadRoomEntityList(&gUnk_080D9108); } } else if (!CheckGlobalFlag(HAKA_KEY_FOUND)) LoadRoomEntityList(&gUnk_080D9108); - if (GetInventoryValue(0x3c) != 2) { + if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) != 2) { LoadRoomEntityList(&gUnk_080D9098); SetTileType(0x17a, 0x58e, 1); SetTileType(0x17b, 0x58f, 1); @@ -1145,8 +1150,7 @@ void sub_StateChange_CastorWilds_Main(void) { if ((gSave.windcrests & 0x20000000) == 0) LoadRoomEntityList(&gUnk_080D9CE8); - // pegasus boots - if (!GetInventoryValue(0x15)) + if (!GetInventoryValue(ITEM_PEGASUS_BOOTS)) LoadRoomEntityList(&gUnk_080D9C38); } @@ -1335,16 +1339,12 @@ extern EntityData gUnk_080DADA4; void sub_StateChange_MinishHouseInteriors_BarrelMinish(void) { u32 uVar1; - // jabber nut - if (!GetInventoryValue(0x5b)) + if (!GetInventoryValue(ITEM_JABBERNUT)) LoadRoomEntityList(&gUnk_080DAB44); else LoadRoomEntityList(&gUnk_080DAB64); - if (!CheckGlobalFlag(DRUG_COUNT)) - goto a; - - if (sub_08060354()) { + if (CheckGlobalFlag(DRUG_COUNT) && sub_08060354()) { SetRoomFlag(0); if (!CheckGlobalFlag(DRUG_1)) uVar1 = 0x3200; @@ -1353,7 +1353,6 @@ void sub_StateChange_MinishHouseInteriors_BarrelMinish(void) { else uVar1 = 0x4880; } else { - a: if (CheckGlobalFlag(DRUG_3)) uVar1 = 0x4900; else if (CheckGlobalFlag(DRUG_2)) @@ -1400,7 +1399,6 @@ u32 sub_unk3_MinishHouseInteriors_MelariMinesSouthwest() { extern EntityData gUnk_080DAEE8; void sub_StateChange_MinishHouseInteriors_MelariMinesSouthwest(void) { - if (CheckGlobalFlag(WHITE_SWORD_END)) LoadRoomEntityList(&gUnk_080DAEE8); @@ -1414,7 +1412,6 @@ u32 sub_unk3_MinishHouseInteriors_MelariMinesSoutheast() { extern EntityData gUnk_080DAF80; void sub_StateChange_MinishHouseInteriors_MelariMinesSoutheast(void) { - if (CheckGlobalFlag(WHITE_SWORD_END)) LoadRoomEntityList(&gUnk_080DAF80); @@ -1428,7 +1425,6 @@ u32 sub_unk3_MinishHouseInteriors_MelariMinesEast() { extern EntityData gUnk_080DB018; void sub_StateChange_MinishHouseInteriors_MelariMinesEast(void) { - if (CheckGlobalFlag(WHITE_SWORD_END)) LoadRoomEntityList(&gUnk_080DB018); @@ -1466,7 +1462,6 @@ u32 sub_unk3_MinishHouseInteriors_Librari() { extern EntityData gUnk_080DB238; void sub_StateChange_MinishHouseInteriors_Librari(void) { - if (gSave.global_progress > 8) LoadRoomEntityList(&gUnk_080DB238); @@ -1513,9 +1508,7 @@ extern EntityData gUnk_080DB4D0; extern EntityData gUnk_080DB4A0; void sub_StateChange_TownMinishHoles_MayorsHouse(void) { - - // flippers and history of masks book - if (!GetInventoryValue(0x46) && !GetInventoryValue(0x3b) && CheckLocalFlag(KOBITO_DOUKUTU_04_T0)) + if (!GetInventoryValue(ITEM_FLIPPERS) && !GetInventoryValue(ITEM_QST_BOOK3) && CheckLocalFlag(KOBITO_DOUKUTU_04_T0)) LoadRoomEntityList(&gUnk_080DB4D0); else LoadRoomEntityList(&gUnk_080DB4A0); @@ -1576,10 +1569,8 @@ extern EntityData gUnk_080DB8F0; extern EntityData gUnk_additional_a_TownMinishHoles_LibraryBookshelf; void sub_StateChange_TownMinishHoles_LibraryBookshelf(void) { - LoadRoomEntityList(&gUnk_080DB8F0); - // flippers - if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START)) { + if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START)) { LoadRoomEntityList(&gUnk_additional_a_TownMinishHoles_LibraryBookshelf); } sub_0801AFE4(); @@ -1592,9 +1583,7 @@ u32 sub_unk3_TownMinishHoles_LibrariBookHouse() { extern EntityData gUnk_080DBA08; void sub_StateChange_TownMinishHoles_LibrariBookHouse(void) { - - // flippers - if (GetInventoryValue(0x46) || !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { + if (GetInventoryValue(ITEM_FLIPPERS) || !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { LoadRoomEntityList(&gUnk_080DBA08); } sub_0801AFE4(); @@ -1618,8 +1607,7 @@ void sub_StateChange_TownMinishHoles_RemShoeShop(void) { LoadRoomEntityList(&gUnk_080DBB50); } - // pegasus boots - if (GetInventoryValue(0x15) == 1) { + if (GetInventoryValue(ITEM_PEGASUS_BOOTS) == 1) { LoadRoomEntityList(&gUnk_080DBB70); LoadRoomEntityList(&gUnk_080DBB10); } else { @@ -1717,21 +1705,18 @@ extern EntityData gUnk_080DC470; extern EntityData gUnk_080DC4C0; void sub_StateChange_MinishVillage_Main(void) { - - // jabber nut - if (!GetInventoryValue(0x5b)) { + if (!GetInventoryValue(ITEM_JABBERNUT)) { LoadRoomEntityList(&gUnk_080DC390); if (!CheckLocalFlagByBank(0x200, 0x80)) { LoadRoomEntityList(&gUnk_080DC3F0); } } else { LoadRoomEntityList(&gUnk_080DC430); - // gust jar - if (!GetInventoryValue(0x11)) { + if (!GetInventoryValue(ITEM_GUST_JAR)) { LoadRoomEntityList(&gUnk_080DC530); } } - if ((!CheckLocalFlagByBank(0x200, 0x83)) && GetInventoryValue(0x11)) { + if ((!CheckLocalFlagByBank(FLAG_BANK_2, M_ELDER_TALK2ND)) && GetInventoryValue(ITEM_GUST_JAR)) { LoadRoomEntityList(&gUnk_080DC470); } if (!CheckLocalFlag(0x8d)) { @@ -1837,9 +1822,7 @@ u32 sub_unk3_MinishCracks_CastleWildsBowHole() { extern EntityData gUnk_080DCB10; void sub_StateChange_MinishCracks_CastleWildsBowHole(void) { - - // bow - if (!GetInventoryValue(0x9)) { + if (!GetInventoryValue(ITEM_BOW)) { LoadRoomEntityList(&gUnk_080DCB10); } } @@ -1930,7 +1913,6 @@ extern EntityData gUnk_additional_9_MelarisMine_Main; extern EntityData gUnk_080DD294; void sub_StateChange_MelarisMine_Main(void) { - if (!CheckGlobalFlag(WHITE_SWORD_END)) { LoadRoomEntityList(&gUnk_additional_8_MelarisMine_Main); } @@ -2034,9 +2016,9 @@ void sub_StateChange_Ruins_TripleTektites(void) { void sub_unk1_Ruins_TripleTektites(void) { #if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlagByBank(0x100, 0x28)) { + if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_03_00)) { #else - if (CheckLocalFlagByBank(0x100, 0x27)) { + if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_02_00)) { #endif SetDirtTile(0x85); } @@ -2056,7 +2038,6 @@ u32 sub_unk3_Ruins_FortressEntrance() { extern EntityData gUnk_080DE008; void sub_StateChange_Ruins_FortressEntrance(void) { - sub_080300E8(); if (CheckGlobalFlag(LV3_CLEAR) && !CheckLocalFlag(3)) { LoadRoomEntityList(&gUnk_080DE008); @@ -2071,7 +2052,6 @@ extern EntityData gUnk_080DE1E0; extern EntityData gUnk_080DE200; void sub_StateChange_Ruins_Armos(void) { - sub_080300E8(); #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0x31)) { @@ -2096,7 +2076,6 @@ u32 sub_unk3_DeepwoodShrine_Madderpillar() { extern EntityData gUnk_080DE4C8; void sub_StateChange_DeepwoodShrine_Madderpillar(void) { - if ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) < (gRoomControls.height >> 1)) { if (!CheckLocalFlag(0x17)) { LoadRoomEntityList(&gUnk_080DE4C8); @@ -2119,7 +2098,6 @@ extern EntityData gUnk_080DE814; extern EntityData gUnk_additional_8_DeepwoodShrine_StairsToB1; void sub_StateChange_DeepwoodShrine_StairsToB1(void) { - if (!CheckLocalFlag(0x4b)) { LoadRoomEntityList(&gUnk_080DE814); } else { @@ -2214,10 +2192,10 @@ u32 sub_unk3_DeepwoodShrine_Entrance() { #if defined(DEMO_USA) || defined(DEMO_JP) void sub_StateChange_DeepwoodShrine_Entrance() { #ifdef DEMO_USA - if (gSaveHeader->saveFileId != 0 && GetInventoryValue(0x40) == 0) { + if (gSaveHeader->saveFileId != 0 && GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { #else #ifdef DEMO_JP - if (GetInventoryValue(0x40) == 0) { + if (GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { #endif #endif SetTileType(0x365, 0x349, 1); @@ -2324,7 +2302,7 @@ u32 sub_unk3_DeepwoodShrineEntry_Main() { extern EntityData gUnk_080DFB78; void sub_StateChange_DeepwoodShrineEntry_Main(void) { - if (CheckGlobalFlag(LV1_CLEAR) && !CheckLocalFlagByBank(0x100, 1)) { + if (CheckGlobalFlag(LV1_CLEAR) && !CheckLocalFlagByBank(FLAG_BANK_1, LV1_CLEAR_MES)) { LoadRoomEntityList(&gUnk_080DFB78); } } @@ -2356,7 +2334,7 @@ u32 sub_unk3_CaveOfFlames_Entrance() { #ifdef DEMO_USA void sub_StateChange_CaveOfFlames_Entrance() { - if (GetInventoryValue(0x41) == 0) { + if (GetInventoryValue(ITEM_FIRE_ELEMENT) == 0) { SetTileType(0x365, 0x287, 2); SetTileType(0x365, 0x288, 2); SetTileType(0x365, 0x289, 2); @@ -2696,12 +2674,10 @@ u32 sub_unk3_FortressOfWindsTop_Main() { extern EntityData gUnk_080E3850; void sub_StateChange_FortressOfWindsTop_Main(void) { - SetGlobalFlag(LV3_CLEAR); UpdateGlobalProgress(); sub_0805B4D0(3); - // wind ocarina - if (!GetInventoryValue(0x17) && CheckLocalFlag(0x45)) { + if (!GetInventoryValue(ITEM_OCARINA) && CheckLocalFlag(0x45)) { LoadRoomEntityList(&gUnk_080E3850); } } @@ -2715,7 +2691,6 @@ void sub_StateChange_TempleOfDroplets_WestHole() { } void sub_0804D0B4(void) { - if (!CheckLocalFlag(0x29)) { SetLocalFlag(0x29); SetLocalFlag(0x4b); @@ -2858,7 +2833,6 @@ extern EntityData gUnk_080E4CF8; extern EntityData gUnk_080E4CD8; void sub_StateChange_TempleOfDroplets_BigBlueChuchuKey(void) { - sub_0804D0B4(); if (CheckLocalFlag(0x6c)) { LoadRoomEntityList(&gUnk_080E4CD8); @@ -2934,7 +2908,6 @@ extern EntityData gUnk_080E5660; extern EntityData gUnk_080E5680; void sub_StateChange_TempleOfDroplets_LilypadIceBlocks(void) { - if (!CheckLocalFlag(0x59)) { LoadRoomEntityList(&gUnk_080E5660); } else { @@ -3056,7 +3029,6 @@ u32 sub_unk3_RoyalCrypt_KingGustaf() { extern EntityData gUnk_080E693C; void sub_StateChange_RoyalCrypt_KingGustaf(void) { - if (!CheckLocalFlag(0x32)) { LoadRoomEntityList(&gUnk_080E693C); } @@ -3120,7 +3092,6 @@ extern EntityData gUnk_080E718C; extern EntityData gUnk_080E71AC; void sub_StateChange_RoyalCrypt_Entrance(void) { - SetTileType(0x312, 0x108, 1); sub_08054570(); if (!CheckLocalFlag(0xc4)) { @@ -3140,8 +3111,7 @@ extern EntityData gUnk_080E72C4; extern EntityData gUnk_additional_8_PalaceOfWinds_0; void sub_StateChange_PalaceOfWinds_0(void) { - - Manager19_Main(0); + Manager19_Main(NULL); if (CheckGlobalFlag(LV5_CLEAR)) { LoadRoomEntityList(&gUnk_additional_9_PalaceOfWinds_0); } @@ -3149,8 +3119,7 @@ void sub_StateChange_PalaceOfWinds_0(void) { LoadRoomEntityList(&gUnk_080E72C4); } else { SetGlobalFlag(LV5_CLEAR); - // wind element - if (!GetInventoryValue(0x43)) { + if (!GetInventoryValue(ITEM_WIND_ELEMENT)) { SetPlayerControl(3); LoadRoomEntityList(&gUnk_additional_8_PalaceOfWinds_0); gArea.musicIndex = gArea.pMusicIndex; @@ -3164,7 +3133,7 @@ u32 sub_unk3_PalaceOfWinds_1() { } void sub_StateChange_PalaceOfWinds_1() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_2() { @@ -3172,7 +3141,7 @@ u32 sub_unk3_PalaceOfWinds_2() { } void sub_StateChange_PalaceOfWinds_2() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_3() { @@ -3180,7 +3149,7 @@ u32 sub_unk3_PalaceOfWinds_3() { } void sub_StateChange_PalaceOfWinds_3() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_4() { @@ -3188,7 +3157,7 @@ u32 sub_unk3_PalaceOfWinds_4() { } void sub_StateChange_PalaceOfWinds_4() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_5() { @@ -3196,7 +3165,7 @@ u32 sub_unk3_PalaceOfWinds_5() { } void sub_StateChange_PalaceOfWinds_5() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_6() { @@ -3204,7 +3173,7 @@ u32 sub_unk3_PalaceOfWinds_6() { } void sub_StateChange_PalaceOfWinds_6() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_7() { @@ -3212,7 +3181,7 @@ u32 sub_unk3_PalaceOfWinds_7() { } void sub_StateChange_PalaceOfWinds_7() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_8() { @@ -3220,7 +3189,7 @@ u32 sub_unk3_PalaceOfWinds_8() { } void sub_StateChange_PalaceOfWinds_8() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_9() { @@ -3228,7 +3197,7 @@ u32 sub_unk3_PalaceOfWinds_9() { } void sub_StateChange_PalaceOfWinds_9() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_10() { @@ -3236,7 +3205,7 @@ u32 sub_unk3_PalaceOfWinds_10() { } void sub_StateChange_PalaceOfWinds_10() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_11() { @@ -3244,7 +3213,7 @@ u32 sub_unk3_PalaceOfWinds_11() { } void sub_StateChange_PalaceOfWinds_11() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_12() { @@ -3252,7 +3221,7 @@ u32 sub_unk3_PalaceOfWinds_12() { } void sub_StateChange_PalaceOfWinds_12() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_13() { @@ -3260,7 +3229,7 @@ u32 sub_unk3_PalaceOfWinds_13() { } void sub_StateChange_PalaceOfWinds_13() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_14() { @@ -3268,7 +3237,7 @@ u32 sub_unk3_PalaceOfWinds_14() { } void sub_StateChange_PalaceOfWinds_14() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_15() { @@ -3276,7 +3245,7 @@ u32 sub_unk3_PalaceOfWinds_15() { } void sub_StateChange_PalaceOfWinds_15() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_16() { @@ -3284,7 +3253,7 @@ u32 sub_unk3_PalaceOfWinds_16() { } void sub_StateChange_PalaceOfWinds_16() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_17() { @@ -3292,7 +3261,7 @@ u32 sub_unk3_PalaceOfWinds_17() { } void sub_StateChange_PalaceOfWinds_17() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_18() { @@ -3300,7 +3269,7 @@ u32 sub_unk3_PalaceOfWinds_18() { } void sub_StateChange_PalaceOfWinds_18() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_19() { @@ -3308,7 +3277,7 @@ u32 sub_unk3_PalaceOfWinds_19() { } void sub_StateChange_PalaceOfWinds_19() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_20() { @@ -3316,7 +3285,7 @@ u32 sub_unk3_PalaceOfWinds_20() { } void sub_StateChange_PalaceOfWinds_20() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_21() { @@ -3331,7 +3300,7 @@ u32 sub_unk3_PalaceOfWinds_22() { } void sub_StateChange_PalaceOfWinds_22() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_23() { @@ -3339,7 +3308,7 @@ u32 sub_unk3_PalaceOfWinds_23() { } void sub_StateChange_PalaceOfWinds_23() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_24() { @@ -3347,7 +3316,7 @@ u32 sub_unk3_PalaceOfWinds_24() { } void sub_StateChange_PalaceOfWinds_24() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_25() { @@ -3355,7 +3324,7 @@ u32 sub_unk3_PalaceOfWinds_25() { } void sub_StateChange_PalaceOfWinds_25() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_26() { @@ -3363,7 +3332,7 @@ u32 sub_unk3_PalaceOfWinds_26() { } void sub_StateChange_PalaceOfWinds_26() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_27() { @@ -3413,7 +3382,7 @@ u32 sub_unk3_PalaceOfWinds_33() { } void sub_StateChange_PalaceOfWinds_33() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_34() { @@ -3421,7 +3390,7 @@ u32 sub_unk3_PalaceOfWinds_34() { } void sub_StateChange_PalaceOfWinds_34() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_35() { @@ -3429,7 +3398,7 @@ u32 sub_unk3_PalaceOfWinds_35() { } void sub_StateChange_PalaceOfWinds_35() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_36() { @@ -3437,7 +3406,7 @@ u32 sub_unk3_PalaceOfWinds_36() { } void sub_StateChange_PalaceOfWinds_36() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_37() { @@ -3487,7 +3456,7 @@ u32 sub_unk3_PalaceOfWinds_43() { } void sub_StateChange_PalaceOfWinds_43() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_44() { @@ -3497,7 +3466,7 @@ u32 sub_unk3_PalaceOfWinds_44() { extern EntityData gUnk_080EA09C; void sub_StateChange_PalaceOfWinds_44(void) { - Manager19_Main(0); + Manager19_Main(NULL); if (!CheckLocalFlag(0x70)) { LoadRoomEntityList(&gUnk_080EA09C); } @@ -3508,7 +3477,7 @@ u32 sub_unk3_PalaceOfWinds_45() { } void sub_StateChange_PalaceOfWinds_45() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_46() { @@ -3516,7 +3485,7 @@ u32 sub_unk3_PalaceOfWinds_46() { } void sub_StateChange_PalaceOfWinds_46() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_47() { @@ -3524,7 +3493,7 @@ u32 sub_unk3_PalaceOfWinds_47() { } void sub_StateChange_PalaceOfWinds_47() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_48() { @@ -3532,7 +3501,7 @@ u32 sub_unk3_PalaceOfWinds_48() { } void sub_StateChange_PalaceOfWinds_48() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_49() { @@ -3540,7 +3509,7 @@ u32 sub_unk3_PalaceOfWinds_49() { } void sub_StateChange_PalaceOfWinds_49() { - Manager19_Main(0); + Manager19_Main(NULL); } u32 sub_unk3_PalaceOfWinds_50() { @@ -3571,7 +3540,7 @@ u32 sub_unk3_Vaati3_Main() { } void sub_StateChange_Vaati3_Main(void) { - Manager2F_Main(0); + Manager2F_Main(NULL); if ((gScreenTransition.field_0x38 & 1) && gScreenTransition.field_0x39) { if (gScreenTransition.field_0x3c == 1) { @@ -3618,7 +3587,6 @@ extern EntityData gUnk_080EAD68; extern EntityData gUnk_080EADB8; void sub_StateChange_DarkHyruleCastleOutside_ZeldaStatuePlatform(void) { - sub_0805B4D0(4); if (!CheckLocalFlag(0x77)) { LoadRoomEntityList(&gUnk_080EAD68); @@ -3740,11 +3708,10 @@ extern u32 gUnk_080EB604; extern u32 gUnk_080EB5D4; u32 sub_unk3_DarkHyruleCastle_0(void) { - if (CheckGlobalFlag(ENDING)) { gRoomVars.field_0x6c[0] = &gUnk_080EB604; gRoomVars.field_0x6c[2] = 0; - gArea.musicIndex = gArea.pMusicIndex = 0x11; + gArea.musicIndex = gArea.pMusicIndex = BGM_BEAT_VAATI; } else if (CheckLocalFlag(0x79)) { gRoomVars.field_0x6c[0] = NULL; if (!CheckLocalFlag(0x7a)) { @@ -4291,7 +4258,6 @@ extern EntityData gUnk_080EEA9C; extern EntityData gUnk_080EEBAC; void sub_StateChange_HyruleTown_0(void) { - sub_08054570(); TryLoadPrologueHyruleTown(); #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) @@ -4301,14 +4267,14 @@ void sub_StateChange_HyruleTown_0(void) { sub_0801D000(0); } else { sub_08018C58(0xdb4); - if (!CheckLocalFlagByBank(0x200, 0x84)) { + if (!CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE04_DANRO)) { LoadRoomEntityList(&gUnk_080EEB6C); } - if (!CheckLocalFlagByBank(0x200, 0x85)) { + if (!CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE06_DANRO)) { LoadRoomEntityList(&gUnk_080EEB8C); } - // kinstone bag - if ((!GetInventoryValue(0x67)) && CheckGlobalFlag(LV1_CLEAR)) { + + if ((!GetInventoryValue(ITEM_KINSTONE_BAG)) && CheckGlobalFlag(LV1_CLEAR)) { LoadRoomEntityList(&gUnk_080EE88C); } if (!CheckKinstoneFused(0x28)) { @@ -4323,10 +4289,10 @@ void sub_StateChange_HyruleTown_0(void) { LoadRoomEntityList(&gUnk_080EECBC); } if (CheckKinstoneFused(0x1b) && (gSave.global_progress > 3)) { - if (!CheckGlobalFlag(NEW_HOUSE_DIN) && !CheckGlobalFlag(NEW_HOUSE_NAYRU) && - !CheckGlobalFlag(NEW_HOUSE_FARORE)) { - if (!CheckGlobalFlag(RENTED_HOUSE_DIN) && !CheckGlobalFlag(RENTED_HOUSE_NAYRU) && - !CheckGlobalFlag(RENTED_HOUSE_FARORE)) { + if (!(CheckGlobalFlag(NEW_HOUSE_DIN) || CheckGlobalFlag(NEW_HOUSE_NAYRU) || + CheckGlobalFlag(NEW_HOUSE_FARORE))) { + if (!(CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || + CheckGlobalFlag(RENTED_HOUSE_FARORE))) { LoadRoomEntityList(&gUnk_080EE95C); } else { if (!CheckGlobalFlag(TATEKAKE_HOUSE)) { @@ -4355,9 +4321,9 @@ void sub_StateChange_HyruleTown_0(void) { } // rocs cape #if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0xcd) && GetInventoryValue(0x14)) { + if (!CheckLocalFlag(0xcd) && GetInventoryValue(ITEM_ROCS_CAPE)) { #else - if (!CheckLocalFlag(0xd0) && GetInventoryValue(0x14)) { + if (!CheckLocalFlag(0xd0) && GetInventoryValue(ITEM_ROCS_CAPE)) { #endif LoadRoomEntityList(&gUnk_080EEABC); } @@ -4476,9 +4442,7 @@ void sub_StateChange_HyruleTownUnderground_Well() { extern u32 gUnk_080F09A0; u32 sub_unk3_CastleGarden_Main(void) { - - // four sword - if (GetInventoryValue(0x6)) { + if (GetInventoryValue(ITEM_FOURSWORD)) { gRoomVars.field_0x6c[1] = &gUnk_080F09A0; } return 1; @@ -4493,20 +4457,19 @@ extern EntityData gUnk_080F0890; extern EntityData gUnk_080F0920; void sub_StateChange_CastleGarden_Main(void) { - if (!CheckGlobalFlag(TABIDACHI)) { LoadRoomEntityList(&gUnk_080F0650); #ifdef EU - gArea.pMusicIndex = 0x10; + gArea.pMusicIndex = BGM_FESTIVAL_APPROACH; #else - gArea.pMusicIndex = 0x13; + gArea.pMusicIndex = BGM_BEANSTALK; SetGlobalFlag(CASTLE_BGM); } else { if (CheckGlobalFlag(CASTLE_BGM)) { #if defined(JP) || defined(DEMO_JP) gArea.pMusicIndex = gArea.musicIndex; #else - gArea.pMusicIndex = 0x1b; + gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; #endif } #endif @@ -4522,16 +4485,14 @@ void sub_StateChange_CastleGarden_Main(void) { SetTileType(0x4072, 0x266, 1); SetTileType(0x4072, 0x2a6, 1); } else { - // four sword - if (!GetInventoryValue(0x6)) { + if (!GetInventoryValue(ITEM_FOURSWORD)) { LoadRoomEntityList(&gUnk_080F08F0); SetTileType(0x4072, 0x9e, 1); SetTileType(0x4072, 0x9f, 1); SetTileType(0x4072, 0xa0, 1); } LoadRoomEntityList(&gUnk_080F0850); - // water element - if (!GetInventoryValue(0x42)) { + if (!GetInventoryValue(ITEM_WATER_ELEMENT)) { LoadRoomEntityList(&gUnk_080F0870); } else { LoadRoomEntityList(&gUnk_080F0890); @@ -4649,13 +4610,11 @@ extern EntityData gUnk_080F2194; extern EntityData gUnk_080F21B4; void sub_StateChange_HouseInteriors2_DrLeft(void) { - LoadRoomEntityList(&gUnk_080F2174); - // picori legend book - if (!GetInventoryValue(0x3a) && CheckGlobalFlag(MIZUKAKI_HARIFALL)) { + if (!GetInventoryValue(ITEM_QST_BOOK2) && CheckGlobalFlag(MIZUKAKI_HARIFALL)) { LoadRoomEntityList(&gUnk_080F2194); } - if (gScreenTransition.player_status.spawn_type == 1) { + if (gScreenTransition.player_status.spawn_type == PL_SPAWN_MINISH) { LoadRoomEntityList(&gUnk_080F21B4); } } @@ -4669,12 +4628,10 @@ extern EntityData gUnk_080F238C; extern EntityData gUnk_additional_c_HouseInteriors2_Romio; void sub_StateChange_HouseInteriors2_Romio(void) { - if (gSave.global_progress > 7) { LoadRoomEntityList(&gUnk_080F23BC); } - // flippers - if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START)) { + if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START)) { LoadRoomEntityList(&gUnk_080F238C); } else { LoadRoomEntityList(&gUnk_additional_c_HouseInteriors2_Romio); @@ -4701,8 +4658,7 @@ void sub_StateChange_HouseInteriors2_Julietta(void) { case 3: break; case 5: - // flippers - if (!GetInventoryValue(0x46)) { + if (!GetInventoryValue(ITEM_FLIPPERS)) { if (!CheckGlobalFlag(MIZUKAKI_START)) { LoadRoomEntityList(&gUnk_080F2570); break; @@ -4831,8 +4787,7 @@ u32 sub_unk3_HouseInteriors2_Dampe() { extern EntityData gUnk_080F2FD4; void sub_StateChange_HouseInteriors2_Dampe(void) { - // graveyard key - if (!CheckLocalFlag(0x69) || GetInventoryValue(0x3c) > 1) { + if (!CheckLocalFlag(0x69) || GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) > 1) { LoadRoomEntityList(&gUnk_080F2FD4); } } @@ -4844,8 +4799,7 @@ u32 sub_unk3_HouseInteriors2_Stockwell() { extern EntityData gUnk_080F30CC; void sub_StateChange_HouseInteriors2_Stockwell(void) { - // dog food - if ((GetInventoryValue(0x36) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) && (gPlayerState.flags & PL_MINISH) == 0) { + if ((GetInventoryValue(ITEM_QST_DOGFOOD) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) && (gPlayerState.flags & PL_MINISH) == 0) { LoadRoomEntityList(&gUnk_080F30CC); } } @@ -4858,11 +4812,10 @@ extern EntityData gUnk_080F31D8; extern u32 script_08009B30; void sub_StateChange_HouseInteriors2_LinksHouseBedroom(void) { - if (!CheckGlobalFlag(START) && !CheckLocalFlag(0x46)) { sub_080A71C4(5, 1, 4, 4); gUpdateVisibleTiles = 0; - DoFade(5, 0x100); + DoFade(5, 256); sub_080751E8(0, 6, &script_08009B30); } if (!CheckGlobalFlag(OUTDOOR)) { @@ -4890,8 +4843,7 @@ u32 sub_unk3_HouseInteriors4_Carpenter() { extern EntityData gUnk_080F3260; void sub_StateChange_HouseInteriors4_Carpenter(void) { - // pacci cane - if (GetInventoryValue(0x12)) { + if (GetInventoryValue(ITEM_PACCI_CANE)) { LoadRoomEntityList(&gUnk_080F3260); SetTileType(0x4072, 0x202, 1); SetTileType(0x4072, 0x242, 1); @@ -4949,8 +4901,7 @@ u32 sub_unk3_HouseInteriors4_Mayor() { extern EntityData gUnk_080F3A48; void sub_StateChange_HouseInteriors4_Mayor(void) { - // flippers, history of masks - if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(0x3b)) { + if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(ITEM_QST_BOOK3)) { LoadRoomEntityList(&gUnk_080F3A48); } gScreenTransition.player_status.field_0x20 = 0xf28; @@ -5190,8 +5141,7 @@ extern EntityData gUnk_080F5328; extern EntityData gUnk_080F5308; void sub_StateChange_SanctuaryEntrance_Main(void) { - // white sword - if (GetInventoryValue(0x2)) { + if (GetInventoryValue(ITEM_GREEN_SWORD)) { LoadRoomEntityList(&gUnk_080F5328); #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0x15)) { @@ -5214,7 +5164,7 @@ u32 sub_unk3_Sanctuary_Hall() { void sub_StateChange_Sanctuary_Hall(void) { sub_080AF2E4(); if (CheckGlobalFlag(SEIIKI_BGM)) { - gArea.pMusicIndex = 0x31; + gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; } } @@ -5236,18 +5186,17 @@ void sub_StateChange_Sanctuary_Main(void) { LoadRoomEntityList(&gUnk_080F54E8); } if (!CheckLocalFlag(0x7a)) { - // white sword, white sword 2, earth element, fire element - if (GetInventoryValue(0x2) && !GetInventoryValue(0x3) && GetInventoryValue(0x40) && GetInventoryValue(0x41)) { + if (GetInventoryValue(ITEM_GREEN_SWORD) && !GetInventoryValue(ITEM_RED_SWORD) && GetInventoryValue(ITEM_EARTH_ELEMENT) && GetInventoryValue(ITEM_FIRE_ELEMENT)) { LoadRoomEntityList(&gUnk_080F5508); } } else { if (!CheckLocalFlag(0x7b)) { - if (GetInventoryValue(0x3) && !GetInventoryValue(0x4) && GetInventoryValue(0x42)) { + if (GetInventoryValue(ITEM_RED_SWORD) && !GetInventoryValue(ITEM_BLUE_SWORD) && GetInventoryValue(ITEM_WATER_ELEMENT)) { LoadRoomEntityList(&gUnk_080F5558); } } else { if (!CheckLocalFlag(0x7c)) { - if (!GetInventoryValue(0x6) && GetInventoryValue(0x43)) { + if (!GetInventoryValue(ITEM_FOURSWORD) && GetInventoryValue(ITEM_WIND_ELEMENT)) { LoadRoomEntityList(&gUnk_080F5598); } } else { @@ -5265,7 +5214,7 @@ void sub_StateChange_Sanctuary_Main(void) { LoadRoomEntityList(&gUnk_080F55B8); } if (CheckGlobalFlag(SEIIKI_BGM)) { - gArea.pMusicIndex = 0x31; + gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; } } @@ -5280,7 +5229,7 @@ void sub_StateChange_Sanctuary_StainedGlass(void) { LoadRoomEntityList(&gUnk_080F5660); } if (CheckGlobalFlag(SEIIKI_BGM)) { - gArea.pMusicIndex = 0x31; + gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; } } @@ -5307,10 +5256,10 @@ void sub_StateChange_HouseInteriors3_StockwellShop(void) { if (!CheckLocalFlag(0x55)) { LoadRoomEntityList(&gUnk_080F57A8); } else { - if (gBombBagSizes[gSave.stats.bombBagType] > 0x1d) { + if (gBombBagSizes[gSave.stats.bombBagType] >= 30) { LoadRoomEntityList(&gUnk_080F57C8); } - if (!GetInventoryValue(0xb) && !GetInventoryValue(0xc)) { + if (!GetInventoryValue(ITEM_BOOMERANG) && !GetInventoryValue(ITEM_MAGIC_BOOMERANG)) { LoadRoomEntityList(&gUnk_080F5888); #ifndef EU } else { @@ -5320,7 +5269,7 @@ void sub_StateChange_HouseInteriors3_StockwellShop(void) { #endif } } - if (GetInventoryValue(0x9) || CheckGlobalFlag(LV3_CLEAR)) { + if (GetInventoryValue(ITEM_BOW) || CheckGlobalFlag(LV3_CLEAR)) { LoadRoomEntityList(&gUnk_080F5868); if (!CheckLocalFlag(0x56)) { LoadRoomEntityList(&gUnk_080F5828); @@ -5404,7 +5353,6 @@ extern EntityData gUnk_additional_9_HouseInteriors3_BorlovEntrance; extern EntityData gUnk_additional_a_HouseInteriors3_BorlovEntrance; void sub_StateChange_HouseInteriors3_BorlovEntrance(void) { - if (gSave.global_progress > 4) { LoadRoomEntityList(&gUnk_additional_8_HouseInteriors3_BorlovEntrance); } @@ -5492,7 +5440,6 @@ extern EntityData gUnk_080F6564; extern EntityData gUnk_080F6584; void sub_StateChange_WindTribeTower_Floor4(void) { - if (!CheckLocalFlag(0xb1)) { LoadRoomEntityList(&gUnk_080F6564); } else { @@ -5601,7 +5548,7 @@ u32 sub_unk3_HyruleField_LinksHouseExterior(void) { #else if (!CheckLocalFlag(0x6d)) { #endif - DoFade(7, 0x100); + DoFade(7, 256); } SetGlobalFlag(OUTDOOR); return 1; @@ -5612,7 +5559,7 @@ extern EntityData gUnk_080F70D8; extern EntityData gUnk_080F7088; void sub_StateChange_HyruleField_LinksHouseExterior(void) { - Manager18_Main(0); + Manager18_Main(NULL); #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0x6b)) { #else @@ -5622,7 +5569,7 @@ void sub_StateChange_HyruleField_LinksHouseExterior(void) { ClearGlobalFlag(ZELDA_CHASE); } if (!CheckGlobalFlag(TABIDACHI)) { - gArea.pMusicIndex = 0x10; + gArea.pMusicIndex = BGM_FESTIVAL_APPROACH; } if ((gSave.windcrests & 0x40000000) == 0) { LoadRoomEntityList(&gUnk_080F70D8); @@ -5643,7 +5590,7 @@ u32 sub_unk3_HyruleField_FromMinishWoods() { } void sub_StateChange_HyruleField_FromMinishWoods() { - Manager18_Main(0); + Manager18_Main(NULL); } u32 sub_unk3_HyruleField_FromMinishWoodsNorth() { @@ -5651,13 +5598,13 @@ u32 sub_unk3_HyruleField_FromMinishWoodsNorth() { } void sub_StateChange_HyruleField_FromMinishWoodsNorth() { - Manager18_Main(0); + Manager18_Main(NULL); } extern u32 gUnk_080F7680; u32 sub_unk3_HyruleField_Farmers(void) { - if (GetInventoryValue(0x11) && !GetInventoryValue(0x12)) { + if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { gRoomVars.field_0x6c[2] = &gUnk_080F7680; } return 1; @@ -5667,11 +5614,11 @@ extern EntityData gUnk_080F7500; extern EntityData gUnk_080F7550; void sub_StateChange_HyruleField_Farmers(void) { - Manager18_Main(0); + Manager18_Main(NULL); if (gSave.global_progress > 3) { LoadRoomEntityList(&gUnk_080F7500); } - if (GetInventoryValue(0x11) && !GetInventoryValue(0x12)) { + if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { LoadRoomEntityList(&gUnk_080F7550); SetTileType(0x4072, 0x311, 1); SetTileType(0x4072, 0x351, 1); @@ -5697,10 +5644,10 @@ void sub_StateChange_HyruleField_LonLonRanch(void) { if (!CheckGlobalFlag(INLOCK)) { LoadRoomEntityList(&gUnk_080F77C0); } - } else if (GetInventoryValue(0x40)) { + } else if (GetInventoryValue(ITEM_EARTH_ELEMENT)) { LoadRoomEntityList(&gUnk_080F77F0); } - if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(0x40)) { + if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(ITEM_EARTH_ELEMENT)) { LoadRoomEntityList(&gUnk_080F7810); } if (!CheckKinstoneFused(0x29)) { @@ -5741,7 +5688,7 @@ u32 sub_unk3_HyruleField_OutsideCastle(void) { } void sub_0804F4E4() { - Manager18_Main(0); + Manager18_Main(NULL); sub_0804F578(); } @@ -5929,8 +5876,7 @@ u32 sub_unk3_HyruleField_OutsideCastleWest() { extern EntityData gUnk_080F806C; void sub_StateChange_HyruleField_OutsideCastleWest(void) { - - Manager18_Main(0); + Manager18_Main(NULL); if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F806C); } @@ -5943,11 +5889,11 @@ u32 sub_unk3_HyruleField_TrilbyHighlands() { extern EntityData gUnk_080F82E0; void sub_StateChange_HyruleField_TrilbyHighlands(void) { - Manager18_Main(0); + Manager18_Main(NULL); #if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x9b)) { + if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(ITEM_RED_SWORD) && !CheckLocalFlag(0x9b)) { #else - if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x9c)) { + if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(ITEM_RED_SWORD) && !CheckLocalFlag(0x9c)) { #endif LoadRoomEntityList(&gUnk_080F82E0); } @@ -5960,8 +5906,7 @@ u32 sub_unk3_HyruleField_PercysHouse() { extern EntityData gUnk_080F8430; void sub_StateChange_HyruleField_PercysHouse(void) { - - Manager18_Main(0); + Manager18_Main(NULL); if (CheckKinstoneFused(0x21) && !CheckLocalFlagByBank(0x200, 0x42)) { LoadRoomEntityList(&gUnk_080F8430); } @@ -5975,7 +5920,6 @@ extern EntityData gUnk_080F85F8; extern EntityData gUnk_080F85D8; void sub_StateChange_Caves_Boomerang(void) { - if (CheckGlobalFlag(SOUGEN_06_HASHIGO)) { LoadRoomEntityList(&gUnk_080F85D8); } else { @@ -6302,7 +6246,7 @@ void sub_StateChange_TreeInteriors_WitchHut(void) { if (CheckKinstoneFused(0x14)) { LoadRoomEntityList(&gUnk_080F9FA8); } - if (!GetInventoryValue(0x38)) { + if (!GetInventoryValue(ITEM_QST_MUSHROOM)) { LoadRoomEntityList(&gUnk_080F9F88); } } @@ -6569,7 +6513,6 @@ extern EntityData gUnk_080FAFE4; extern EntityData gUnk_080FB004; void sub_StateChange_MtCrenel_CaveOfFlamesEntrance(void) { - sub_0805B4D0(1); if (CheckGlobalFlag(LV2_CLEAR) && !CheckLocalFlag(LV1_CLEAR)) { LoadRoomEntityList(&gUnk_080FAFE4); @@ -6728,6 +6671,6 @@ void sub_StateChange_CrenelCaves_ToGrayblade() { } void sub_0804FF84(u32 arg0) { - ((struct_02000000*)0x02000000)->brightnessPref = arg0; + gSaveHeader->brightnessPref = arg0; gUsedPalettes = 0xffffffff; } From 75b0db1b84712e908a058865e1c09ca5214d9ecb Mon Sep 17 00:00:00 2001 From: Elliptic Ellipsis Date: Sat, 18 Dec 2021 07:45:19 +0000 Subject: [PATCH 023/168] Update Jenkinsfile destinations --- Jenkinsfile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 93efaa65..66549a57 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -26,8 +26,9 @@ pipeline { } steps { sh 'mkdir reports' - sh 'python3 progress.py csv >> reports/progress_tmc.csv' - sh 'python3 progress.py csv -m >> reports/progress_tmc_matching.csv' + sh 'python3 progress.py csv >> reports/progress-tmc-nonmatching.csv' + sh 'python3 progress.py csv -m >> reports/progress-tmc-matching.csv' + sh 'python3 progress.py shield-json > reports/progress-tmc-shield.json' stash includes: 'reports/*', name: 'reports' } } @@ -40,8 +41,9 @@ pipeline { } steps { unstash 'reports' - sh 'cat reports/progress_tmc.csv >> /var/www/html/reports/progress_tmc.csv' - sh 'cat reports/progress_tmc_matching.csv >> /var/www/html/reports/progress_tmc_matching.csv' + sh 'cat reports/progress-tmc-nonmatching.csv >> /var/www/zelda64.dev/assets/csv/progress-tmc-nonmatching.csv' + sh 'cat reports/progress-tmc-matching.csv >> /var/www/zelda64.dev/assets/csv/progress-tmc-matching.csv' + sh 'cat reports/progress-tmc-shield.json > /var/www/zelda64.dev/assets/csv/progress-tmc-shield.json' } } } From 26d404235c47b9cbc39c5ca5583130f5e7aaa64b Mon Sep 17 00:00:00 2001 From: Elliptic Ellipsis Date: Sat, 18 Dec 2021 07:45:33 +0000 Subject: [PATCH 024/168] Add shields to README.md --- README.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5b3e1a88..0665215a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,19 @@ # The Legend of Zelda: The Minish Cap -**Progress:** [⬛⬛⬛⬛⬛⬛⬛⬛⬛⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜] 45% + +[![Build Status][jenkins-badge]][jenkins] [![Decompilation Progress][progress-badge]][progress] [![Contributors][contributors-badge]][contributors] [![Discord Channel][discord-badge]][discord] + +[jenkins]: https://jenkins.deco.mp/job/TMC/job/master +[jenkins-badge]: https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins.deco.mp%2Fjob%2FTMC%2Fjob%2Fmaster + +[progress]: https://zelda64.dev/games/tmc +[progress-badge]: https://img.shields.io/endpoint?url=https://zelda64.dev/assets/csv/progress-mm-shield.json + +[contributors]: https://github.com/zeldaret/tmc/graphs/contributors +[contributors-badge]: https://img.shields.io/github/contributors/zeldaret/tmc + +[discord]: https://discord.zelda64.dev +[discord-badge]: https://img.shields.io/discord/688807550715560050?color=%237289DA&logo=discord&logoColor=%23FFFFFF ```diff - WARNING! - From 78bc78fe3cbbbe5df21539b03664d873550753f1 Mon Sep 17 00:00:00 2001 From: Elliptic Ellipsis Date: Sat, 18 Dec 2021 07:48:54 +0000 Subject: [PATCH 025/168] Fix shield --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0665215a..5663c817 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [jenkins-badge]: https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins.deco.mp%2Fjob%2FTMC%2Fjob%2Fmaster [progress]: https://zelda64.dev/games/tmc -[progress-badge]: https://img.shields.io/endpoint?url=https://zelda64.dev/assets/csv/progress-mm-shield.json +[progress-badge]: https://img.shields.io/endpoint?url=https://zelda64.dev/assets/csv/progress-tmc-shield.json [contributors]: https://github.com/zeldaret/tmc/graphs/contributors [contributors-badge]: https://img.shields.io/github/contributors/zeldaret/tmc From d3fa739c9471c94ff9efc9f0dd704e4bb9d356d4 Mon Sep 17 00:00:00 2001 From: theo3 Date: Sat, 18 Dec 2021 21:15:00 -0800 Subject: [PATCH 026/168] tile entity functions --- asm/code_0804B058.s | 352 -- include/functions.h | 3 +- include/manager.h | 12 + include/room.h | 3 +- linker.ld | 5 +- src/code_0804B9F8.c | 37 - src/fade.c | 53 +- src/loadRoom.c | 222 -- src/manager/manager24.c | 12 - src/room.c | 7050 +++------------------------------------ src/roomInit.c | 6667 ++++++++++++++++++++++++++++++++++++ src/sub_08050008.c | 8 - 12 files changed, 7114 insertions(+), 7310 deletions(-) delete mode 100644 asm/code_0804B058.s delete mode 100644 src/code_0804B9F8.c delete mode 100644 src/loadRoom.c create mode 100644 src/roomInit.c delete mode 100644 src/sub_08050008.c diff --git a/asm/code_0804B058.s b/asm/code_0804B058.s deleted file mode 100644 index d8682f83..00000000 --- a/asm/code_0804B058.s +++ /dev/null @@ -1,352 +0,0 @@ - .include "asm/macros.inc" - .text - .syntax unified - - thumb_func_start GetCurrentRoomProperty -GetCurrentRoomProperty: @ 0x0804B128 - push {lr} - adds r2, r0, #0 - ldr r0, _0804B138 @ =gCurrentRoomProperties - ldr r1, [r0] - cmp r1, #0 - bne _0804B13C - movs r0, #0 - b _0804B166 - .align 2, 0 -_0804B138: .4byte gCurrentRoomProperties -_0804B13C: - cmp r2, #0x7f - bls _0804B150 - ldr r0, _0804B14C @ =gRoomVars - movs r1, #7 - ands r1, r2 - lsls r1, r1, #2 - adds r0, #0x8c - b _0804B162 - .align 2, 0 -_0804B14C: .4byte gRoomVars -_0804B150: - cmp r2, #7 - bls _0804B15C - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - b _0804B166 -_0804B15C: - ldr r0, _0804B168 @ =gRoomVars - lsls r1, r2, #2 - adds r0, #0x6c -_0804B162: - adds r1, r1, r0 - ldr r0, [r1] -_0804B166: - pop {pc} - .align 2, 0 -_0804B168: .4byte gRoomVars - - thumb_func_start sub_0804B16C -sub_0804B16C: @ 0x0804B16C - push {r4, lr} - ldr r4, _0804B1A4 @ =gUnk_02017660 -_0804B170: - ldrh r0, [r4, #4] - cmp r0, #0 - beq _0804B198 - ldrb r0, [r4, #1] - bl CheckLocalFlag - cmp r0, #0 - beq _0804B198 - ldrh r3, [r4, #4] - ldrb r1, [r4, #6] - movs r0, #1 - ands r0, r1 - movs r2, #1 - cmp r0, #0 - beq _0804B190 - movs r2, #2 -_0804B190: - movs r0, #0x74 - adds r1, r3, #0 - bl SetTileType -_0804B198: - adds r4, #8 - ldr r0, _0804B1A8 @ =gPaletteBuffer - cmp r4, r0 - blo _0804B170 - pop {r4, pc} - .align 2, 0 -_0804B1A4: .4byte gUnk_02017660 -_0804B1A8: .4byte gPaletteBuffer - - thumb_func_start LoadRoomTileEntities -LoadRoomTileEntities: @ 0x0804B1AC - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - beq _0804B25A - b _0804B254 -_0804B1B6: - ldrb r0, [r4] - subs r0, #1 - cmp r0, #0xc - bhi _0804B252 - lsls r0, r0, #2 - ldr r1, _0804B1C8 @ =_0804B1CC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804B1C8: .4byte _0804B1CC -_0804B1CC: @ jump table - .4byte _0804B200 @ case 0 - .4byte _0804B208 @ case 1 - .4byte _0804B252 @ case 2 - .4byte _0804B210 @ case 3 - .4byte _0804B252 @ case 4 - .4byte _0804B252 @ case 5 - .4byte _0804B218 @ case 6 - .4byte _0804B252 @ case 7 - .4byte _0804B22C @ case 8 - .4byte _0804B234 @ case 9 - .4byte _0804B23C @ case 10 - .4byte _0804B244 @ case 11 - .4byte _0804B24C @ case 12 -_0804B200: - adds r0, r4, #0 - bl sub_0804B290 - b _0804B252 -_0804B208: - adds r0, r4, #0 - bl sub_0804B29C - b _0804B252 -_0804B210: - adds r0, r4, #0 - bl sub_0804B300 - b _0804B252 -_0804B218: - ldr r0, _0804B224 @ =gArea - ldr r1, _0804B228 @ =0x00000864 - adds r0, r0, r1 - ldrb r1, [r4, #3] - str r1, [r0] - b _0804B252 - .align 2, 0 -_0804B224: .4byte gArea -_0804B228: .4byte 0x00000864 -_0804B22C: - adds r0, r4, #0 - bl sub_0804B334 - b _0804B252 -_0804B234: - adds r0, r4, #0 - bl sub_0804B340 - b _0804B252 -_0804B23C: - adds r0, r4, #0 - bl sub_0804B260 - b _0804B252 -_0804B244: - adds r0, r4, #0 - bl sub_0804B27C - b _0804B252 -_0804B24C: - ldr r1, _0804B25C @ =gRoomVars - ldrb r0, [r4, #3] - strb r0, [r1, #9] -_0804B252: - adds r4, #8 -_0804B254: - ldrb r0, [r4] - cmp r0, #0 - bne _0804B1B6 -_0804B25A: - pop {r4, pc} - .align 2, 0 -_0804B25C: .4byte gRoomVars - - thumb_func_start sub_0804B260 -sub_0804B260: @ 0x0804B260 - push {lr} - ldrb r0, [r0, #1] - lsls r0, r0, #5 - ldr r1, _0804B274 @ =gUnk_080015BC - adds r0, r0, r1 - ldr r1, _0804B278 @ =gUnk_02034398 - movs r2, #0x20 - bl MemCopy - pop {pc} - .align 2, 0 -_0804B274: .4byte gUnk_080015BC -_0804B278: .4byte gUnk_02034398 - - thumb_func_start sub_0804B27C -sub_0804B27C: @ 0x0804B27C - push {lr} - ldr r1, _0804B28C @ =gArea - ldrb r0, [r0, #1] - strb r0, [r1, #1] - bl sub_08054524 - pop {pc} - .align 2, 0 -_0804B28C: .4byte gArea - - thumb_func_start sub_0804B290 -sub_0804B290: @ 0x0804B290 - push {lr} - ldrb r0, [r0, #1] - bl SetLocalFlag - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804B29C -sub_0804B29C: @ 0x0804B29C - push {r4, lr} - adds r2, r0, #0 - ldr r4, _0804B2EC @ =gUnk_02017660 - movs r1, #0 -_0804B2A4: - ldrh r0, [r4, #4] - cmp r0, #0 - bne _0804B2F4 - adds r0, r2, #0 - adds r1, r4, #0 - movs r2, #8 - bl MemCopy - ldrb r1, [r4, #6] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0804B2FC - ldr r0, _0804B2F0 @ =gRoomControls - ldrb r1, [r0, #0xf] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0804B2FC - ldrb r0, [r4, #1] - bl CheckLocalFlag - cmp r0, #0 - bne _0804B2FC - ldrb r1, [r4, #1] - movs r0, #0x52 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _0804B2FC - ldrh r1, [r4, #4] - bl sub_0806F704 - b _0804B2FC - .align 2, 0 -_0804B2EC: .4byte gUnk_02017660 -_0804B2F0: .4byte gRoomControls -_0804B2F4: - adds r1, #1 - adds r4, #8 - cmp r1, #7 - bls _0804B2A4 -_0804B2FC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804B300 -sub_0804B300: @ 0x0804B300 - push {r4, lr} - adds r4, r0, #0 - bl GetEmptyManager - adds r1, r0, #0 - cmp r1, #0 - beq _0804B332 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x24 - strb r0, [r1, #9] - ldrh r0, [r4, #4] - strh r0, [r1, #0x38] - ldrh r0, [r4, #6] - strh r0, [r1, #0x3a] - ldrb r0, [r4, #2] - adds r2, r1, #0 - adds r2, #0x35 - strb r0, [r2] - ldrb r0, [r4, #1] - strh r0, [r1, #0x3e] - adds r0, r1, #0 - movs r1, #6 - bl AppendEntityToList -_0804B332: - pop {r4, pc} - - thumb_func_start sub_0804B334 -sub_0804B334: @ 0x0804B334 - push {lr} - ldrb r0, [r0, #3] - movs r1, #1 - bl sub_0805BB00 - pop {pc} - - thumb_func_start sub_0804B340 -sub_0804B340: @ 0x0804B340 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #2] - bl CheckLocalFlag - cmp r0, #0 - beq _0804B35A - ldrh r0, [r4, #6] - ldrh r1, [r4, #4] - ldrb r2, [r4, #1] - bl SetTileType - b _0804B380 -_0804B35A: - ldr r1, _0804B384 @ =gRoomVars - ldrb r0, [r1, #1] - cmp r0, #0 - bne _0804B380 - movs r0, #1 - strb r0, [r1, #1] - bl GetEmptyManager - adds r1, r0, #0 - cmp r1, #0 - beq _0804B380 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x2a - strb r0, [r1, #9] - adds r0, r1, #0 - movs r1, #6 - bl AppendEntityToList -_0804B380: - pop {r4, pc} - .align 2, 0 -_0804B384: .4byte gRoomVars - - thumb_func_start sub_0804B388 -sub_0804B388: @ 0x0804B388 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #0x34 - cmp r4, #1 - bne _0804B396 - movs r0, #0x26 -_0804B396: - adds r1, r5, #0 - adds r2, r4, #0 - bl SetTileType - movs r0, #0xf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0804B3BA - adds r0, #0x38 - strb r4, [r0] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0806F704 -_0804B3BA: - movs r0, #1 - rsbs r0, r0, #0 - bl sub_080526F8 - pop {r4, r5, pc} diff --git a/include/functions.h b/include/functions.h index b9cff99a..d9125a19 100644 --- a/include/functions.h +++ b/include/functions.h @@ -107,7 +107,6 @@ extern void sub_080AD9B0(void); extern void sub_080AD918(void); extern void sub_0801E104(void); extern void sub_080A57F4(void); -extern void sub_0804B29C(void*); extern void sub_08030118(u32); extern void sub_080575C8(u32); extern void sub_08057688(void); @@ -295,4 +294,6 @@ extern void sub_0801855C(void); extern u32 sub_0807CAEC(u32); extern void sub_0807CAC8(u32); extern void LoadObjPalette(Entity*, u32); + +void sub_0804B3C4(void*); #endif diff --git a/include/manager.h b/include/manager.h index d3b34bba..013678b2 100644 --- a/include/manager.h +++ b/include/manager.h @@ -149,6 +149,18 @@ extern struct { extern DiggingCaveEntrance* diggingCaveEntrances[]; +typedef struct { + Manager manager; + u8 field_0x20[0x15]; + u8 field_0x35; + u8 field_0x36; + u8 field_0x37; + s16 x; + u16 y; + u16 tile; + u16 field_0x3e; +} Manager24; + typedef struct { u8 unk_00; u8 unk_01; diff --git a/include/room.h b/include/room.h index 777e6cea..58d323b1 100644 --- a/include/room.h +++ b/include/room.h @@ -74,7 +74,8 @@ typedef struct { u8 filler4[48]; u8 filler5[28]; u32 animFlags; - void* field_0x6c[24]; + void* field_0x6c[8]; + void* field_0x8c[16]; } RoomVars; static_assert(sizeof(RoomVars) == 0xCC); extern RoomVars gRoomVars; diff --git a/linker.ld b/linker.ld index f20f38ab..916842e9 100644 --- a/linker.ld +++ b/linker.ld @@ -481,11 +481,8 @@ SECTIONS { src/createEnemy.o(.text); src/code_0804AA84.o(.text); asm/code_0804AA84.o(.text); - src/loadRoom.o(.text); - asm/code_0804B058.o(.text); src/room.o(.text); - src/code_0804B9F8.o(.text); - src/sub_08050008.o(.text); + src/roomInit.o(.text); src/fade.o(.text); asm/code_08050038.o(.text); src/fileScreen.o(.text); diff --git a/src/code_0804B9F8.c b/src/code_0804B9F8.c deleted file mode 100644 index 0c1937b3..00000000 --- a/src/code_0804B9F8.c +++ /dev/null @@ -1,37 +0,0 @@ -#include "global.h" -#include "utils.h" -#include "fileScreen.h" - -extern u16 gPaletteBuffer[]; -extern u32 gUsedPalettes; - -// function pointer to overlay (0x03005e98) in ram calls rom function MakeFadeBuff256 -extern u32 gMakeFadeBuff256; -typedef void (*fptrMakeFadeBuff256)(u8*, u8*, u16, u8); - -void FadeMain() { - fptrMakeFadeBuff256 func; - u32 usedPalettesTmp, palIdx; - - struct_020354C0* ptrUnk = gUnk_020354C0; - usedPalettesTmp = gUsedPalettes; - gUsedPalettes = 0; - palIdx = 0; - - while (usedPalettesTmp != 0) { - if ((usedPalettesTmp & 1) == 1) { - func = (fptrMakeFadeBuff256)&gMakeFadeBuff256; - func(&((u8*)gPaletteBuffer)[palIdx], &PAL_RAM[palIdx], ptrUnk->unk2, ptrUnk->unk1); - } - palIdx += 0x20; - - ptrUnk++; - usedPalettesTmp /= 2; - } -} - -void sub_0804FFE4() { - MemClear(&gFadeControl, sizeof(gFadeControl)); - MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0)); - gFadeControl.mask = 0xffffffff; -} diff --git a/src/fade.c b/src/fade.c index f3d1447e..8ca58d5a 100644 --- a/src/fade.c +++ b/src/fade.c @@ -1,6 +1,7 @@ #include "global.h" #include "functions.h" #include "screen.h" +#include "utils.h" typedef struct { u8 field_0x0; @@ -11,10 +12,52 @@ typedef struct { extern struct_03000000 gUnk_03000000; extern u32 gUsedPalettes; +extern u16 gPaletteBuffer[]; + +// function pointer to overlay (0x03005e98) in ram calls rom function MakeFadeBuff256 +extern u32 gMakeFadeBuff256; +typedef void (*fptrMakeFadeBuff256)(u8*, u8*, u16, u8); + +void sub_0804FF84(u32 arg0) { + gSaveHeader->brightnessPref = arg0; + gUsedPalettes = 0xffffffff; +} + +void FadeMain() { + fptrMakeFadeBuff256 func; + u32 usedPalettesTmp, palIdx; + + struct_020354C0* ptrUnk = gUnk_020354C0; + usedPalettesTmp = gUsedPalettes; + gUsedPalettes = 0; + palIdx = 0; + + while (usedPalettesTmp != 0) { + if ((usedPalettesTmp & 1) == 1) { + func = (fptrMakeFadeBuff256)&gMakeFadeBuff256; + func(&((u8*)gPaletteBuffer)[palIdx], &PAL_RAM[palIdx], ptrUnk->unk2, ptrUnk->unk1); + } + palIdx += 0x20; + + ptrUnk++; + usedPalettesTmp /= 2; + } +} + +void sub_0804FFE4() { + MemClear(&gFadeControl, sizeof(gFadeControl)); + MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0)); + gFadeControl.mask = 0xffffffff; +} + +void sub_08050008() { + MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0)); + gFadeControl.mask = 0xFFFFFFFF; +} void sub_08050024() { sub_0801E104(); - DoFade(5, 0x80 << 1); + DoFade(5, 256); } void sub_08050038(u32 arg0) { @@ -31,22 +74,22 @@ void DoFade(u32 fadeType, u32 fadeSpeed) { gFadeControl.active = 1; gFadeControl.fadeDuration = 0x100; gFadeControl.field_0xe = 0; - if ((gFadeControl.fadeType & 2) != 0) { + if (gFadeControl.fadeType & 2) { gFadeControl.field_0x2 = 0xf8; } else { gFadeControl.field_0x2 = 0; } - if ((fadeType & 8) != 0) { + if (fadeType & 8) { gUnk_03000000.spritesOffset = 1; gScreen.bg1.control |= BGCNT_MOSAIC; gScreen.bg2.control |= BGCNT_MOSAIC; gScreen.bg3.control |= BGCNT_MOSAIC; } - if ((fadeType & 0x10) != 0) { + if (fadeType & 0x10) { sub_0801E1B8(gFadeControl.field_0x16, gFadeControl.field_0x18); sub_0801E1EC(gFadeControl.field_0x12, gFadeControl.field_0x14, gFadeControl.field_0x10); if ((fadeType & 1) == 0) { - gFadeControl.fadeType &= 0xfffb; + gFadeControl.fadeType &= ~4; sub_08050008(); gUsedPalettes = 0xffffffff; } diff --git a/src/loadRoom.c b/src/loadRoom.c deleted file mode 100644 index 4ca4aa43..00000000 --- a/src/loadRoom.c +++ /dev/null @@ -1,222 +0,0 @@ -#include "global.h" -#include "area.h" -#include "room.h" -#include "flags.h" -#include "functions.h" -#include "utils.h" - -extern void sub_0804B058(EntityData* dat); -extern void sub_0801AC98(); -extern u32 sub_08049D1C(u32); -extern Entity* LoadRoomEntity(EntityData*); -extern void* GetRoomProperty(u32, u32, u32); - -extern void** gCurrentRoomProperties; -extern void*** gAreaTable[]; -extern u8 gUnk_081091E4[]; - -extern void sub_080186EC(); -extern void sub_0804B16C(); -extern void sub_080A7C7C(void); -extern Entity* GetEmptyEntityByKind(u32 kind); - -void RegisterRoomEntity(Entity*, EntityData*); -void sub_0804AF0C(Entity*, EntityData*); -void sub_0804AFB0(void** properties); - -void LoadRoomEntityList(EntityData* listPtr) { - if (listPtr != NULL) { - while (listPtr->kind != 0xFF) { - LoadRoomEntity(listPtr++); - } - } -} - -NONMATCH("asm/loadRoomEntity.s", Entity* LoadRoomEntity(EntityData* dat)) { - int kind; - Entity* v4; - Entity* v5; - - kind = dat->kind & 0xF; - if ((dat->flags & 0xF0) == 0x50 && DeepFindEntityByID(kind, dat->id)) - return NULL; - v4 = GetEmptyEntityByKind(kind); - v5 = v4; - if (v4 != NULL) { - v4->kind = kind; - v4->id = dat->id; - v4->type = dat->type; - RegisterRoomEntity(v4, dat); - if ((dat->flags & 0xF0) != 16) { - v5->type2 = dat->type2; - v5->actionDelay = (dat->type2 & 0xFF00) >> 8; - if (kind == 9) - return v5; - sub_0804AF0C(v5, dat); - if (!v5->next) - return v5; - if ((dat->kind & 0x10) == 0) { - if ((dat->kind & 0x20) != 0) { - v5->collisionLayer = 2; - return v5; - } - if ((gRoomControls.unk6 & 2) == 0) { - sub_08016A30(v5); - } - } - v5->collisionLayer = 1; - } - } - return v5; -} -END_NONMATCH - -void RegisterRoomEntity(Entity* ent, EntityData* dat) { - u32 list; - u32 kind; - void* offset; - - list = dat->flags & 0xF; - kind = dat->kind & 0xF; - if (ent->prev == NULL) { - if (list == 0xF) { - AppendEntityToList(ent, gUnk_081091E4[kind]); - } else if (list == 8) { - AppendEntityToList(ent, 8); - } else { - AppendEntityToList(ent, list); - } - } - offset = &ent->field_0x78; - if (kind == MANAGER) - offset = &ent->y; - MemCopy(dat, offset, sizeof(EntityData)); -} - -void sub_0804AF0C(Entity* ent, EntityData* dat) { - switch (dat->flags & 0xf0) { - case 0x0: - ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; - ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; - break; - case 0x20: - ent->field_0x6c.HALF.HI |= 0x20; - ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; - ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; - break; - case 0x40: - ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; - ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; - if (!StartCutscene(ent, (u16*)dat->spritePtr)) - DeleteEntity(ent); - break; - } -} - -void sub_0804AF90(void) { - sub_0804AFB0(gArea.pCurrentRoomInfo->properties); - sub_080A7C7C(); -} - -void sub_0804AFB0(void** properties) { - u32 i; - - gCurrentRoomProperties = properties; - for (i = 0; i < 8; ++i) { - gRoomVars.field_0x6c[i] = gCurrentRoomProperties[i]; - } -} - -u32 sub_0804AFDC() { - u32 result; - u32 (*func)(); - - result = 1; - func = (u32(*)())GetCurrentRoomProperty(6); - if (func != NULL) - result = func(); - return result; -} - -void sub_0804AFF4(void) { - void (*func)(); - - sub_080186EC(); - func = (void (*)())GetCurrentRoomProperty(5); - if (func) { - func(); - } - func = (void (*)())GetCurrentRoomProperty(7); - if (func) { - func(); - } - sub_0804B16C(); -} - -void LoadRoom(void) { - LoadRoomEntityList(GetCurrentRoomProperty(1)); - LoadRoomEntityList(GetCurrentRoomProperty(0)); - - if (CheckGlobalFlag(TABIDACHI)) - sub_0804B058(GetCurrentRoomProperty(2)); - - LoadRoomTileEntities(GetCurrentRoomProperty(3)); - sub_0801AC98(); -} - -void sub_0804B058(EntityData* dat) { - Entity* ent; - u32 uVar2; - - if ((dat != NULL) && dat->kind != 0xff) { - uVar2 = 0; - do { - if ((uVar2 < 0x20) && ((dat->kind & 0xF) == 3)) { - if (sub_08049D1C(uVar2) != 0) { - ent = LoadRoomEntity(dat); - if ((ent != NULL) && (ent->kind == 3)) { - ent->field_0x6c.HALF.LO = uVar2 | 0x80; - } - } - } else { - LoadRoomEntity(dat); - } - uVar2++; - dat++; - } while (dat->kind != 0xff); - } -} - -void sub_0804B0B0(u32 arg0, u32 arg1) { - LoadRoomEntityList(GetRoomProperty(arg0, arg1, 1)); -} - -void SetCurrentRoomPropertyList(u32 area, u32 room) { - gCurrentRoomProperties = NULL; - if (gAreaTable[area] != NULL) { - gCurrentRoomProperties = gAreaTable[area][room]; - } -} - -void sub_0804B0E8(u32 arg0, u32 arg1) { - void (*func)(); - - // init function at index 4 of room data - - func = (void (*)())GetRoomProperty(arg0, arg1, 4); - if (func != NULL) { - func(); - } -} - -void* GetRoomProperty(u32 area, u32 room, u32 property) { - void** temp; - temp = NULL; - if (gAreaTable[area] != NULL) { - temp = gAreaTable[area][room]; - if (temp != NULL) { - temp = temp[property]; - } - } - return temp; -} diff --git a/src/manager/manager24.c b/src/manager/manager24.c index df298020..141e1a01 100644 --- a/src/manager/manager24.c +++ b/src/manager/manager24.c @@ -6,18 +6,6 @@ #include "object.h" #include "area.h" -typedef struct { - Manager manager; - u8 field_0x20[0x15]; - u8 field_0x35; - u8 field_0x36; - u8 field_0x37; - s16 x; - u16 y; - u16 tile; - u16 field_0x3e; -} Manager24; - extern void (*const gUnk_08108CDC[])(Manager24*); u32 sub_0805BFC4(u32, u32); diff --git a/src/room.c b/src/room.c index ed1b1148..45af78fe 100644 --- a/src/room.c +++ b/src/room.c @@ -1,6676 +1,390 @@ #include "global.h" - -#include "main.h" -#include "random.h" - -#include "functions.h" -#include "structures.h" - -#include "audio.h" -#include "effects.h" -#include "screen.h" -#include "flags.h" -#include "item.h" -#include "save.h" -#include "script.h" - #include "area.h" #include "room.h" +#include "flags.h" +#include "functions.h" +#include "utils.h" -#include "entity.h" -#include "npc.h" -#include "player.h" +extern void sub_0804B058(EntityData* dat); +extern void sub_0801AC98(); +extern u32 sub_08049D1C(u32); +extern Entity* LoadRoomEntity(EntityData*); +extern void* GetRoomProperty(u32, u32, u32); + +extern void** gCurrentRoomProperties; +extern void*** gAreaTable[]; +extern u8 gUnk_081091E4[]; + +extern void sub_080186EC(); +extern void sub_0804B16C(); +extern void sub_080A7C7C(void); +extern Entity* GetEmptyEntityByKind(u32 kind); + +void RegisterRoomEntity(Entity*, EntityData*); +void sub_0804AF0C(Entity*, EntityData*); +void sub_0804AFB0(void** properties); + +void sub_08054524(void); +void sub_0806F704(Entity*, u32); + +void sub_0805BB00(u32, u32); + +typedef struct { + u8 type; + u8 _1; + u8 _2; + u8 _3; + u16 _4; + u8 _6; + u8 _7; +} TileEntity; +extern TileEntity gUnk_02017660[]; + +static void sub_0804B290(TileEntity*); +static void sub_0804B29C(TileEntity*); +static void sub_0804B300(TileEntity*); +static void sub_0804B334(TileEntity*); +static void sub_0804B340(TileEntity*); +static void sub_0804B260(TileEntity*); +static void sub_0804B27C(TileEntity*); + + +typedef struct { + u8 filler[0x20]; +} VarStruct; +extern VarStruct gUnk_080015BC[]; + +void LoadRoomEntityList(EntityData* listPtr) { + if (listPtr != NULL) { + while (listPtr->kind != 0xFF) { + LoadRoomEntity(listPtr++); + } + } +} + +NONMATCH("asm/loadRoomEntity.s", Entity* LoadRoomEntity(EntityData* dat)) { + int kind; + Entity* v4; + Entity* v5; + + kind = dat->kind & 0xF; + if ((dat->flags & 0xF0) == 0x50 && DeepFindEntityByID(kind, dat->id)) + return NULL; + v4 = GetEmptyEntityByKind(kind); + v5 = v4; + if (v4 != NULL) { + v4->kind = kind; + v4->id = dat->id; + v4->type = dat->type; + RegisterRoomEntity(v4, dat); + if ((dat->flags & 0xF0) != 16) { + v5->type2 = dat->type2; + v5->actionDelay = (dat->type2 & 0xFF00) >> 8; + if (kind == 9) + return v5; + sub_0804AF0C(v5, dat); + if (!v5->next) + return v5; + if ((dat->kind & 0x10) == 0) { + if ((dat->kind & 0x20) != 0) { + v5->collisionLayer = 2; + return v5; + } + if ((gRoomControls.unk6 & 2) == 0) { + sub_08016A30(v5); + } + } + v5->collisionLayer = 1; + } + } + return v5; +} +END_NONMATCH + +void RegisterRoomEntity(Entity* ent, EntityData* dat) { + u32 list; + u32 kind; + void* offset; + + list = dat->flags & 0xF; + kind = dat->kind & 0xF; + if (ent->prev == NULL) { + if (list == 0xF) { + AppendEntityToList(ent, gUnk_081091E4[kind]); + } else if (list == 8) { + AppendEntityToList(ent, 8); + } else { + AppendEntityToList(ent, list); + } + } + offset = &ent->field_0x78; + if (kind == MANAGER) + offset = &ent->y; + MemCopy(dat, offset, sizeof(EntityData)); +} + +void sub_0804AF0C(Entity* ent, EntityData* dat) { + switch (dat->flags & 0xf0) { + case 0x0: + ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; + ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; + break; + case 0x20: + ent->field_0x6c.HALF.HI |= 0x20; + ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; + ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; + break; + case 0x40: + ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; + ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; + if (!StartCutscene(ent, (u16*)dat->spritePtr)) + DeleteEntity(ent); + break; + } +} + +void sub_0804AF90(void) { + sub_0804AFB0(gArea.pCurrentRoomInfo->properties); + sub_080A7C7C(); +} + +void sub_0804AFB0(void** properties) { + u32 i; + + gCurrentRoomProperties = properties; + for (i = 0; i < 8; ++i) { + gRoomVars.field_0x6c[i] = gCurrentRoomProperties[i]; + } +} + +u32 sub_0804AFDC() { + u32 result; + u32 (*func)(); + + result = 1; + func = (u32(*)())GetCurrentRoomProperty(6); + if (func != NULL) + result = func(); + return result; +} + +void sub_0804AFF4(void) { + void (*func)(); + + sub_080186EC(); + func = (void (*)())GetCurrentRoomProperty(5); + if (func) { + func(); + } + func = (void (*)())GetCurrentRoomProperty(7); + if (func) { + func(); + } + sub_0804B16C(); +} + +void LoadRoom(void) { + LoadRoomEntityList(GetCurrentRoomProperty(1)); + LoadRoomEntityList(GetCurrentRoomProperty(0)); + + if (CheckGlobalFlag(TABIDACHI)) + sub_0804B058(GetCurrentRoomProperty(2)); + + LoadRoomTileEntities(GetCurrentRoomProperty(3)); + sub_0801AC98(); +} + +void sub_0804B058(EntityData* dat) { + Entity* ent; + u32 uVar2; + + if ((dat != NULL) && dat->kind != 0xff) { + uVar2 = 0; + do { + if ((uVar2 < 0x20) && ((dat->kind & 0xF) == 3)) { + if (sub_08049D1C(uVar2) != 0) { + ent = LoadRoomEntity(dat); + if ((ent != NULL) && (ent->kind == 3)) { + ent->field_0x6c.HALF.LO = uVar2 | 0x80; + } + } + } else { + LoadRoomEntity(dat); + } + uVar2++; + dat++; + } while (dat->kind != 0xff); + } +} + +void sub_0804B0B0(u32 arg0, u32 arg1) { + LoadRoomEntityList(GetRoomProperty(arg0, arg1, 1)); +} + +void SetCurrentRoomPropertyList(u32 area, u32 room) { + gCurrentRoomProperties = NULL; + if (gAreaTable[area] != NULL) { + gCurrentRoomProperties = gAreaTable[area][room]; + } +} + +void sub_0804B0E8(u32 arg0, u32 arg1) { + void (*func)(); + + // init function at index 4 of room data + + func = (void (*)())GetRoomProperty(arg0, arg1, 4); + if (func != NULL) { + func(); + } +} + +void* GetRoomProperty(u32 area, u32 room, u32 property) { + void** temp; + temp = NULL; + if (gAreaTable[area] != NULL) { + temp = gAreaTable[area][room]; + if (temp != NULL) { + temp = temp[property]; + } + } + return temp; +} + +void* GetCurrentRoomProperty(u32 idx) { + if (gCurrentRoomProperties == NULL) + return NULL; + + if (idx >= 0x80) { + return gRoomVars.field_0x8c[idx & 7]; + } else if (idx <= 7) { + return gRoomVars.field_0x6c[idx]; + } else { + return gCurrentRoomProperties[idx]; + } +} + +void sub_0804B16C(void) { + TileEntity* tile = gUnk_02017660; + do { + if (tile->_4 != 0 && CheckLocalFlag(tile->_1)) { + SetTileType(0x74, tile->_4, tile->_6 & 1 ? 2 : 1); + } + } while (++tile < gUnk_02017660 + 8); +} + +void LoadRoomTileEntities(TileEntity* list) { + TileEntity* t = list; + + if (t == NULL) + return; + + for (t; t->type != 0; ++t) { + switch (t->type) { + case 1: + sub_0804B290(t); + break; + case 2: + sub_0804B29C(t); + break; + case 4: + sub_0804B300(t); + break; + case 7: + gArea.pMusicIndex = t->_3; + break; + case 9: + sub_0804B334(t); + break; + case 10: + sub_0804B340(t); + break; + case 11: + sub_0804B260(t); + break; + case 12: + sub_0804B27C(t); + break; + case 13: + gRoomVars.field_0x9 = t->_3; + break; + } + } +} + +static void sub_0804B260(TileEntity* tile) { + MemCopy(&gUnk_080015BC[tile->_1], &gRoomVars.filler4[44], 0x20); +} + +static void sub_0804B27C(TileEntity* tile) { + gArea.locationIndex = tile->_1; + sub_08054524(); +} + +static void sub_0804B290(TileEntity* tile) { + SetLocalFlag(tile->_1); +} + +static void sub_0804B29C(TileEntity* tile) { + TileEntity* t = gUnk_02017660; + u32 i = 0; + for (i = 0; i < 8; ++i, ++t) { + if (!t->_4) { + MemCopy(tile, t, sizeof(TileEntity)); + if ((t->_6 & 1) && (gRoomControls.unk6 & 2) && !CheckLocalFlag(t->_1)) { + Entity* e = CreateObject(0x52, t->_1, 0); + if (e != NULL) { + sub_0806F704(e, t->_4); + } + } + return; + } + } +} + +static void sub_0804B300(TileEntity* tile) { + Manager24* mgr = (Manager24*)GetEmptyManager(); + if (mgr != NULL) { + mgr->manager.type = 9; + mgr->manager.subtype = 0x24; + mgr->x = tile->_4; + mgr->y = *(u16*)&tile->_6; + mgr->field_0x35 = tile->_2; + mgr->field_0x3e = tile->_1; + AppendEntityToList((Entity*)mgr, 6); + } +} + +static void sub_0804B334(TileEntity* tile) { + sub_0805BB00(tile->_3, 1); +} + +static void sub_0804B340(TileEntity* tile) { + if (CheckLocalFlag(*(u16*)&tile->_2)) { + SetTileType(*(u16*)&tile->_6, tile->_4, tile->_1); + } else if (!gRoomVars.filler_0x1) { + Manager* mgr; + gRoomVars.filler_0x1 = 1; + mgr = GetEmptyManager(); + if (mgr != NULL) { + mgr->type = 9; + mgr->subtype = 0x2a; + AppendEntityToList((Entity*)mgr, 6); + } + } +} + +void sub_0804B388(u32 a1, u32 a2) { + Entity* e; + SetTileType(a2 == 1 ? 38 : 52, a1, a2); + e = CreateObject(0xF, 2, 0); + if (e != NULL) { + e->collisionLayer = a2; + sub_0806F704(e, a1); + } + sub_080526F8(-1); +} void sub_0804B3C4(void* arg0) { sub_0804B29C(arg0); } - -u32 sub_unk3_ArmosInteriors_RuinsEntranceNorth(u32 arg0) { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsEntranceNorth() { - sub_08030118(0); -} - -u32 sub_unk3_ArmosInteriors_RuinsEntranceSouth() { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsEntranceSouth() { - sub_08030118(1); -} - -u32 sub_unk3_ArmosInteriors_RuinsLeft() { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsLeft() { - sub_08030118(2); -} - -u32 sub_unk3_ArmosInteriors_RuinsMiddleLeft() { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsMiddleLeft() { - sub_08030118(3); -} - -u32 sub_unk3_ArmosInteriors_RuinsMiddleRight() { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsMiddleRight() { - sub_08030118(4); -} - -u32 sub_unk3_ArmosInteriors_RuinsRight() { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsRight() { - sub_08030118(5); -} - -u32 sub_unk3_ArmosInteriors_6() { - return 1; -} - -void sub_StateChange_ArmosInteriors_6() { - sub_08030118(6); -} - -u32 sub_unk3_ArmosInteriors_RuinsGrassPath() { - return 1; -} - -void sub_StateChange_ArmosInteriors_RuinsGrassPath() { - sub_08030118(7); -} - -u32 sub_unk3_ArmosInteriors_8() { - return 1; -} - -void sub_StateChange_ArmosInteriors_8() { - sub_08030118(8); -} - -u32 sub_unk3_ArmosInteriors_FortressOfWindsLeft() { - return 1; -} - -void sub_StateChange_ArmosInteriors_FortressOfWindsLeft() { - sub_08030118(9); - gArea.dungeon_idx = 3; - gArea.areaMetadata = 0x4e; -} - -u32 sub_unk3_ArmosInteriors_FortressOfWindsRight() { - return 1; -} - -void sub_StateChange_ArmosInteriors_FortressOfWindsRight() { - sub_08030118(10); - gArea.dungeon_idx = 3; - gArea.areaMetadata = 0x4e; -} - -u32 sub_unk3_CrenelMinishPaths_CrenelBean() { - return 1; -} - -void sub_StateChange_CrenelMinishPaths_CrenelBean() { - sub_080575C8(35); - sub_08057688(); -} - -u32 sub_unk3_CrenelMinishPaths_CrenelWater() { - return 1; -} - -void sub_StateChange_CrenelMinishPaths_CrenelWater() { - sub_080575C8(35); -} - -void sub_unk1_CrenelMinishPaths_CrenelWater() { - sub_080575C8(35); -} - -u32 sub_unk3_CrenelMinishPaths_Rainfall() { - return 1; -} - -void sub_StateChange_CrenelMinishPaths_Rainfall() { - sub_080580B0(34); -} - -void sub_unk1_CrenelMinishPaths_Rainfall() { - sub_080580B0(34); -} - -u32 sub_unk3_CrenelMinishPaths_MelarisMine() { - return 1; -} - -void sub_StateChange_CrenelMinishPaths_MelarisMine(void) { - sub_080580B0(0x22); - // white sword - if (GetInventoryValue(0x2)) - SetGlobalFlag(WHITE_SWORD_END); -} - -void sub_unk1_CrenelMinishPaths_MelarisMine() { - sub_080580B0(34); -} - -u32 sub_unk3_MinishPaths1_ToMinishVillage() { - return 1; -} - -void sub_StateChange_MinishPaths1_ToMinishVillage() { - sub_080575C8(30); -} - -void sub_unk1_MinishPaths1_ToMinishVillage() { - sub_080575C8(30); -} - -u32 sub_unk3_MinishPaths1_CastorWilds() { - return 1; -} - -void sub_StateChange_MinishPaths1_CastorWilds() { - sub_080575C8(33); -} - -void sub_unk1_MinishPaths1_CastorWilds() { - sub_080575C8(33); -} - -u32 sub_unk3_MinishPaths1_HyruleTown() { - return 1; -} - -void sub_StateChange_MinishPaths1_HyruleTown() { - sub_080575C8(31); -} - -void sub_unk1_MinishPaths1_HyruleTown() { - sub_080575C8(31); -} - -u32 sub_unk3_MinishPaths1_LonLonRanch() { - return 1; -} - -void sub_StateChange_MinishPaths1_LonLonRanch() { - sub_080575C8(32); -} - -void sub_unk1_MinishPaths1_LonLonRanch() { - sub_080575C8(32); -} - -u32 sub_unk3_MinishPaths1_MayorsCabin() { - return 1; -} - -extern EntityData Entities_MinishPaths1_MayorsCabin_gUnk_080D6138; - -void sub_StateChange_MinishPaths1_MayorsCabin(void) { - - sub_080575C8(0x20); - - if (gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY > 0x40) - LoadRoomEntityList(&Entities_MinishPaths1_MayorsCabin_gUnk_080D6138); -} - -void sub_unk1_MinishPaths1_MayorsCabin() { - sub_080575C8(32); -} - -u32 sub_unk3_HouseInteriors1_Mayor() { - return 1; -} - -extern EntityData Entities_HouseInteriors1_Mayor_080D6210; - -void sub_StateChange_HouseInteriors1_Mayor(void) { - - if ((u16)gScreenTransition.player_status.start_pos.HALF.y > 0x40) - LoadRoomEntityList(&Entities_HouseInteriors1_Mayor_080D6210); -} - -u32 sub_unk3_HouseInteriors1_PostOffice() { - return 1; -} - -extern EntityData gUnk_080D6340; -extern EntityData gUnk_080D6360; -extern EntityData gUnk_080D6380; -extern EntityData gUnk_080D63A0; -extern EntityData gUnk_080D63C0; -extern EntityData gUnk_080D63E0; -extern EntityData gUnk_080D6400; -extern EntityData gUnk_080D6420; -extern EntityData gUnk_080D6440; - -extern u16 gUnk_080D64F8; -extern u16 gUnk_080D6508; - -void sub_StateChange_HouseInteriors1_PostOffice(void) { - u16 itemID; - s32 i; - u16* itemArr; - u16* flagArr; - s32 j; - - if (CheckKinstoneFused(0x2c)) { - LoadRoomEntityList(&gUnk_080D6340); - } - j = 0; - itemArr = &gUnk_080D64F8; - for (i = 7; i >= 0; i--) { - itemID = *itemArr; - itemArr++; - if (GetInventoryValue(itemID)) { - j++; - } - } - if (CheckLocalFlag(BILL01_TESSIN_RESERVED)) { - flagArr = &gUnk_080D6508; - i = 0; - while (i < j) { - if (CheckLocalFlag(*flagArr) == 0) { - SetLocalFlag(*flagArr); - ClearLocalFlag(BILL01_TESSIN_RESERVED); - SetLocalFlag(BILL01_TESSIN_BRANDNEW); - break; - } - i++; - flagArr++; - } - } - - if (CheckLocalFlag(BILL01_TESSIN_1)) - LoadRoomEntityList(&gUnk_080D6360); - - if (CheckLocalFlag(BILL01_TESSIN_2)) - LoadRoomEntityList(&gUnk_080D6380); - - if (CheckLocalFlag(BILL01_TESSIN_3)) - LoadRoomEntityList(&gUnk_080D63A0); - - if (CheckLocalFlag(BILL01_TESSIN_4)) - LoadRoomEntityList(&gUnk_080D63C0); - - if (CheckLocalFlag(BILL01_TESSIN_5)) - LoadRoomEntityList(&gUnk_080D63E0); - - if (CheckLocalFlag(BILL01_TESSIN_6)) - LoadRoomEntityList(&gUnk_080D6400); - - if (CheckLocalFlag(BILL01_TESSIN_7)) - LoadRoomEntityList(&gUnk_080D6420); - - if (CheckLocalFlag(BILL01_TESSIN_8)) - LoadRoomEntityList(&gUnk_080D6440); -} - -u32 sub_unk3_HouseInteriors1_Library2F() { - return 1; -} - -extern EntityData gUnk_080D6578; -extern EntityData gUnk_080D6638; -extern EntityData gUnk_080D6558; -extern EntityData gUnk_080D6618; - -void sub_StateChange_HouseInteriors1_Library2F(void) { - // flippers - if (GetInventoryValue(0x46) == 0) { - LoadRoomEntityList(&gUnk_080D6578); - if (CheckLocalFlag(MIZUKAKI_BOOK_ALLBACK) == 0) { - LoadRoomEntityList(&gUnk_080D6638); - return; - } - } else { - LoadRoomEntityList(&gUnk_080D6558); - } - LoadRoomEntityList(&gUnk_080D6618); -} - -u32 sub_unk3_HouseInteriors1_Library1F() { - return 1; -} - -extern EntityData gUnk_080D6714; -extern EntityData gUnk_additional_9_HouseInteriors1_Library1F; -extern EntityData gUnk_additional_8_HouseInteriors1_Library1F; - -void sub_StateChange_HouseInteriors1_Library1F(void) { - if (gSave.global_progress > 4) { - LoadRoomEntityList(&gUnk_080D6714); - } - // flippers - if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && CheckLocalFlag(MIZUKAKI_KOBITO)) { - LoadRoomEntityList(&gUnk_additional_9_HouseInteriors1_Library1F); - } else { - LoadRoomEntityList(&gUnk_additional_8_HouseInteriors1_Library1F); - } -} - -u32 sub_unk3_HouseInteriors1_Inn1F() { - return 1; -} - -extern EntityData gUnk_080D6924; - -void sub_StateChange_HouseInteriors1_Inn1F(void) { - if (gSave.global_progress > 7) { - LoadRoomEntityList(&gUnk_080D6924); - } -} - -extern u32* gUnk_080D6A74[]; - -u32 sub_unk3_HouseInteriors1_InnWestRoom(void) { - u32 index; - - if (CheckLocalFlag(YADO_CHECKIN)) { - index = (s32)Random() % 3; - ClearLocalFlag(BILL05_YADO1F_MATSU_T0); - } else { - index = 0; - SetLocalFlag(BILL05_YADO1F_MATSU_T0); - } - gRoomVars.field_0x6c[3] = gUnk_080D6A74[index]; - return 1; -} - -extern void* script_08010A5C[]; - -void sub_StateChange_HouseInteriors1_InnWestRoom(void) { - if (CheckLocalFlag(YADO_CHECKIN)) { - ClearLocalFlag(YADO_CHECKIN); - DoFade(5, 256); - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; - sub_080751E8(1, 2, &script_08010A5C); - } -} - -extern u32* gUnk_080D6B18[]; - -u32 sub_unk3_HouseInteriors1_InnMiddleRoom(void) { - u32 index; - - if (CheckLocalFlag(YADO_CHECKIN) != 0) { - index = Random() & 1; - ClearLocalFlag(BILL06_YADO1F_TAKE_T0); - } else { - index = 0; - SetLocalFlag(BILL06_YADO1F_TAKE_T0); - } - gRoomVars.field_0x6c[3] = gUnk_080D6B18[index]; - return 1; -} - -void sub_StateChange_HouseInteriors1_InnMiddleRoom(void) { - if (CheckLocalFlag(YADO_CHECKIN) != 0) { - ClearLocalFlag(YADO_CHECKIN); - DoFade(5, 256); - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; - sub_080751E8(1, 2, &script_08010A5C); - } -} - -extern u32* gUnk_080D6BB8[]; - -u32 sub_unk3_HouseInteriors1_InnEastRoom(void) { - s32 index; - - if (CheckLocalFlag(YADO_CHECKIN) != 0) { - index = (s32)Random() % 3; - ClearLocalFlag(BILL07_YADO1F_UME_T0); - } else { - index = 0; - SetLocalFlag(BILL07_YADO1F_UME_T0); - } - gRoomVars.field_0x6c[3] = gUnk_080D6BB8[index]; - return 1; -} - -void sub_StateChange_HouseInteriors1_InnEastRoom(void) { - if (CheckLocalFlag(YADO_CHECKIN)) { - ClearLocalFlag(YADO_CHECKIN); - DoFade(5, 256); - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x60; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; - sub_080751E8(1, 2, &script_08010A5C); - } -} - -u32 sub_unk3_HouseInteriors1_InnWest2F() { - return 1; -} - -extern EntityData UpperInn_Oracles; -extern EntityData UpperInn_NoFarore; -extern EntityData UpperInn_NoNayru; -extern EntityData UpperInn_NoDin; -extern EntityData UpperInn_Farore; -extern EntityData UpperInn_Nayru; -extern EntityData UpperInn_Din; - -void sub_StateChange_HouseInteriors1_InnWest2F(void) { - int iVar1; - - if (gSave.global_progress < 4) - return; - - if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { - if (!CheckGlobalFlag(NEW_HOUSE_NAYRU)) - if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) - LoadRoomEntityList(&UpperInn_NoDin); - else - LoadRoomEntityList(&UpperInn_Nayru); - else - LoadRoomEntityList(&UpperInn_Farore); - } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { - if (CheckGlobalFlag(NEW_HOUSE_DIN)) - LoadRoomEntityList(&UpperInn_Farore); - else if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) - LoadRoomEntityList(&UpperInn_NoNayru); - else - LoadRoomEntityList(&UpperInn_Din); - } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { - if (CheckGlobalFlag(NEW_HOUSE_DIN)) - LoadRoomEntityList(&UpperInn_Nayru); - else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) - LoadRoomEntityList(&UpperInn_Din); - else - LoadRoomEntityList(&UpperInn_NoFarore); - } else - LoadRoomEntityList(&UpperInn_Oracles); -} - -u32 sub_unk3_HouseInteriors1_InnEast2F() { - return 1; -} - -void sub_StateChange_HouseInteriors1_InnEast2F() { -} - -u32 sub_unk3_HouseInteriors1_InnMinishHeartPiece() { - return 1; -} - -void sub_StateChange_HouseInteriors1_InnMinishHeartPiece() { -} - -u32 sub_unk3_HouseInteriors1_SchoolWest() { - return 1; -} - -extern EntityData gUnk_080D7038; - -void sub_StateChange_HouseInteriors1_SchoolWest(void) { - if (gSave.global_progress < 8) { - LoadRoomEntityList(&gUnk_080D7038); - } - if (gRoomVars.field_0x0 == 0) { - sub_08052CA4(2, 0, 0x2c8, 0xa8); - } -} - -u32 sub_unk3_HouseInteriors1_SchoolEast() { - return 1; -} - -extern EntityData gUnk_080D7140; -extern EntityData gUnk_080D7170; -extern EntityData gUnk_080D71A0; -extern EntityData gUnk_080D71D0; -extern EntityData gUnk_080D71F0; - -void sub_StateChange_HouseInteriors1_SchoolEast(void) { - - if (gSave.global_progress == 6) - LoadRoomEntityList(&gUnk_080D7140); - - if (gSave.global_progress == 7) - LoadRoomEntityList(&gUnk_080D7170); - - if ((gSave.global_progress < 8) || (LoadRoomEntityList(&gUnk_080D71A0), gSave.global_progress < 8)) - LoadRoomEntityList(&gUnk_080D71D0); - else - LoadRoomEntityList(&gUnk_080D71F0); -} - -extern u32 gUnk_080D7348; - -u32 sub_unk3_HyruleCastle_0(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080D7348; - gRoomVars.field_0x6c[2] = 0; - } - return 1; -} - -extern EntityData gUnk_080D7328; - -void sub_StateChange_HyruleCastle_0(void) { - if (!CheckGlobalFlag(LV2_CLEAR)) { - LoadRoomEntityList(&gUnk_080D7328); - } - -#if defined(JP) || defined(DEMO_JP) - if (CheckGlobalFlag(CASTLE_BGM) || CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } -#elif defined(EU) - if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } -#else - if (CheckGlobalFlag(CASTLE_BGM)) { - gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; - } else if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } -#endif -} - -extern u32 gUnk_080D7410; - -u32 sub_unk3_HyruleCastle_1(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080D7410; - gRoomVars.field_0x6c[2] = 0; - } - return 1; -} - -extern EntityData gUnk_080D73B0; -extern EntityData gUnk_080D73E0; - -void sub_StateChange_HyruleCastle_1(void) { - if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } else { - if (!CheckGlobalFlag(LV2_CLEAR)) { - LoadRoomEntityList(&gUnk_080D73B0); - } - if (!CheckGlobalFlag(LV1_CLEAR) && CheckGlobalFlag(TABIDACHI)) { - LoadRoomEntityList(&gUnk_080D73E0); - } -#ifndef EU - if (CheckGlobalFlag(CASTLE_BGM)) { - gArea.pMusicIndex = gArea.musicIndex; - } -#endif - } -} - -u32 sub_unk3_HyruleCastle_2() { - return 1; -} - -extern EntityData gUnk_080D74C8; -extern EntityData gUnk_080D7588; -extern EntityData gUnk_080D75D8; -extern EntityData gUnk_080D7618; - -void sub_StateChange_HyruleCastle_2(void) { -#ifndef EU - if (CheckGlobalFlag(CASTLE_BGM)) { - gArea.pMusicIndex = gArea.musicIndex; - } -#endif - - if (CheckGlobalFlag(ENDING)) { - LoadRoomEntityList(&gUnk_080D7618); - gArea.pMusicIndex = gArea.musicIndex; - } else if (CheckGlobalFlag(TABIDACHI) == 0) { - LoadRoomEntityList(&gUnk_080D74C8); - gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; - } else if (CheckGlobalFlag(LV1_CLEAR) == 0) { - LoadRoomEntityList(&gUnk_080D7588); - } else { - LoadRoomEntityList(&gUnk_080D75D8); - } -} - -u32 sub_unk3_HyruleCastle_3() { - return 1; -} - -extern EntityData gUnk_additional_8_HyruleCastle_3; - -void sub_StateChange_HyruleCastle_3(void) { - if (CheckLocalFlag(SOUGEN_08_TORITSUKI)) { - LoadRoomEntityList(&gUnk_additional_8_HyruleCastle_3); - } -} - -u32 sub_unk3_HyruleCastle_4(void) { - if (!CheckLocalFlag(CASTLE_04_MEZAME)) { - gScreenTransition.player_status.spawn_type = PL_SPAWN_SPECIAL; - ClearGlobalFlag(ZELDA_CHASE); - } - return 1; -} - -extern u32 script_08009E88; - -void sub_StateChange_HyruleCastle_4(void) { - if (!CheckLocalFlag(CASTLE_04_MEZAME)) { - DoFade(5, 256); - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0xb0; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x40; - sub_080751E8(0, 6, &script_08009E88); -#ifdef EU - SoundReq(0x80010000); - gArea.musicIndex = gArea.pMusicIndex; - } -#else - } - - if (!CheckGlobalFlag(TABIDACHI)) { - sub_08052878(); -#if !(defined(JP) || defined(DEMO_JP)) - } else { -#else - } -#endif - if (CheckGlobalFlag(CASTLE_BGM)) { -#if defined(JP) || defined(DEMO_JP) - gArea.pMusicIndex = gArea.musicIndex; -#else - gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; -#endif - } -#if !(defined(JP) || defined(DEMO_JP)) - } -#endif -#endif -} - -extern ScreenTransitionData gUnk_0813AB80; - -void sub_0804BCDC() { - sub_0808091C(&gUnk_0813AB80, 4); -} - -u32 sub_unk3_HyruleCastle_5() { - return 1; -} - -void sub_StateChange_HyruleCastle_5() { -} - -u32 sub_unk3_87_Main() { - return 1; -} - -void sub_StateChange_87_Main() { -} - -u32 sub_unk3_45_Main() { - return 1; -} - -void sub_StateChange_45_Main() { -} - -u32 sub_unk3_4D_Main() { - return 1; -} - -void sub_StateChange_4D_Main() { -} - -u32 sub_unk3_57_Main() { - return 1; -} - -void sub_StateChange_57_Main() { -} - -u32 sub_unk3_5F_Main() { - return 1; -} - -void sub_StateChange_5F_Main() { -} - -u32 sub_unk3_67_Main() { - return 1; -} - -void sub_StateChange_67_Main() { -} - -u32 sub_unk3_6F_Main() { - return 1; -} - -void sub_StateChange_6F_Main() { -} - -u32 sub_unk3_77_Main() { - return 1; -} - -void sub_StateChange_77_Main() { -} - -u32 sub_unk3_7F_Main() { - return 1; -} - -void sub_StateChange_7F_Main() { -} - -u32 sub_unk3_8F_Main() { - return 1; -} - -void sub_StateChange_8F_Main() { -} - -u32 sub_unk3_GreatFairies_Entrance() { - return 1; -} - -void sub_StateChange_GreatFairies_Entrance() { -} - -u32 sub_unk3_GreatFairies_Exit() { - return 1; -} - -extern EntityData gUnk_080D7D34; - -void sub_StateChange_GreatFairies_Exit(void) { - // four sword - if (GetInventoryValue(0x6)) { - SetTile(0x4072, 0x14d, 1); - SetTile(0x4072, 0x10c, 1); - SetTile(0x4090, 0x14c, 1); - SetTile(0x4090, 0x18c, 1); - LoadRoomEntityList(&gUnk_080D7D34); - } -} - -u32 sub_unk3_Dojos_Grayblade() { - return 1; -} - -void sub_StateChange_Dojos_Grayblade() { -} - -u32 sub_unk3_Dojos_Splitblade() { - return 1; -} - -void sub_StateChange_Dojos_Splitblade() { -} - -u32 sub_unk3_Dojos_Greatblade() { - return 1; -} - -void sub_StateChange_Dojos_Greatblade() { -} - -u32 sub_unk3_Dojos_Scarblade() { - return 1; -} - -void sub_StateChange_Dojos_Scarblade() { -} - -u32 sub_unk3_Dojos_Swiftblade() { - return 1; -} - -void sub_StateChange_Dojos_Swiftblade() { -} - -u32 sub_unk3_Dojos_Grimblade() { - return 1; -} - -extern EntityData gUnk_080D827C; - -void sub_StateChange_Dojos_Grimblade(void) { - if (!CheckLocalFlag(3)) { - LoadRoomEntityList(&gUnk_080D827C); - } else { - sub_0805BC4C(); - SetTileType(0x76, 0x82, 2); - SetTileType(0x76, 0x8c, 2); - } -} - -u32 sub_unk3_Dojos_Waveblade() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade() { -} - -u32 sub_unk3_Dojos_7() { - return 1; -} - -void sub_StateChange_Dojos_7() { -} - -u32 sub_unk3_Dojos_8() { - return 1; -} - -void sub_StateChange_Dojos_8() { -} - -u32 sub_unk3_Dojos_9() { - return 1; -} - -void sub_StateChange_Dojos_9() { -} - -u32 sub_unk3_Dojos_ToGrimblade() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade() { -} - -u32 sub_unk3_Dojos_ToSplitblade() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade() { -} - -u32 sub_unk3_Dojos_ToGreatblade() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade() { -} - -u32 sub_unk3_Dojos_ToScarblade() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade() { -} - -u32 sub_unk3_GoronCave_StairsToCave() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave() { -} - -u32 sub_unk3_GoronCave_Main() { - return 1; -} - -extern EntityData gUnk_080D8B24; -extern EntityData gUnk_080D8AC4; -extern EntityData gUnk_080D8A74; -extern EntityData gUnk_080D8A34; -extern EntityData gUnk_080D8A04; -extern EntityData gUnk_080D89E4; - -extern u32 gUnk_080D8BBC; -extern u32 gUnk_080D8BFA; -extern u32 gUnk_080D8C68; - -void sub_StateChange_GoronCave_Main(void) { - if (!CheckLocalFlag(GORON_DOUKUTU_APPEAR)) - SetLocalFlag(GORON_DOUKUTU_APPEAR); - - if (CheckKinstoneFused(0x2f)) - LoadRoomEntityList(&gUnk_080D8B24); - else if (CheckKinstoneFused(0x2b)) - LoadRoomEntityList(&gUnk_080D8AC4); - else if (CheckKinstoneFused(0x26)) - LoadRoomEntityList(&gUnk_080D8A74); - else if (CheckKinstoneFused(0x2a)) - LoadRoomEntityList(&gUnk_080D8A34); - else if (CheckKinstoneFused(0x25)) - LoadRoomEntityList(&gUnk_080D8A04); - else - LoadRoomEntityList(&gUnk_080D89E4); - - if (CheckKinstoneFused(0x25)) - sub_0807BB68(&gUnk_080D8BBC, 0x7c5, 1); - - if (CheckKinstoneFused(0x26)) - sub_0807BB68(&gUnk_080D8BFA, 0x503, 1); - - if (CheckKinstoneFused(0x2f)) - sub_0807BB68(&gUnk_080D8C68, 0x281, 1); -} - -#if 0 -typedef struct { - u32 a; - u16 x, y; - u16 entCnt; - u16 shakeTime, shakeMag, sfx; -} struct_080D8E54; - -typedef struct { - u32 field_0x0; - u32 field_0x4; -} struct_0804BF38; - -extern struct_080D8E54 gUnk_080D8E50[]; - -void sub_0804BF38(u32 arg0, struct_0804BF38* arg1) -{ - u32 numEnts; - u32 iVar2; - u32 iVar3; - Entity *fx; - u32 entCnt; - u32 xOff; - - iVar2 = arg1->field_0x4; - iVar3 = iVar2 * 0x10; - sub_0807BB68(gUnk_080D8E50[iVar2].a, ((gUnk_080D8E50[iVar3].x >> 4) & 0x3f | (gUnk_080D8E50[iVar3].y >> 4) & 0x3f) << 6, 1); - numEnts = gUnk_080D8E50[iVar3].entCnt; - entCnt = 0; - - if (numEnts != 0) { - for (xOff = 0; entCnt < numEnts; xOff += 0x10, entCnt++) { - fx = CreateObject(SPECIAL_FX, 0xf, 0); - if (fx != NULL) { - fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.roomOriginX + xOff; - fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.roomOriginY + (entCnt & 1) * 8; - } - fx = CreateObject(SPECIAL_FX, 0x54, 0); - if (fx != NULL) { - fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.roomOriginX + xOff; - fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.roomOriginY + -0xc + (entCnt & 1) * 8; - fx->direction = 0; - fx->speed = 0x100; - } - } - } - - sub_08080964(gUnk_080D8E50[iVar3].shakeTime, gUnk_080D8E50[iVar3].shakeMag); - SoundReq(gUnk_080D8E50[iVar2].sfx); -} -#else -ASM_FUNC("asm/non_matching/sub_0804BF38.inc", void sub_0804BF38(Entity* this, ScriptExecutionContext* context)) -#endif - -u32 sub_unk3_EzloCutscene_Main() { - return 1; -} - -void sub_StateChange_EzloCutscene_Main() { -} - -u32 sub_unk3_RoyalValley_Main() { - return 1; -} - -extern EntityData gUnk_080D90C8; -extern EntityData gUnk_080D9108; -extern EntityData gUnk_080D9098; - -void sub_StateChange_RoyalValley_Main(void) { - if (!CheckGlobalFlag(HAKA_KEY_LOST)) { - if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) == 1) { - LoadRoomEntityList(&gUnk_080D90C8); - LoadRoomEntityList(&gUnk_080D9108); - } - } else if (!CheckGlobalFlag(HAKA_KEY_FOUND)) - LoadRoomEntityList(&gUnk_080D9108); - - if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) != 2) { - LoadRoomEntityList(&gUnk_080D9098); - SetTileType(0x17a, 0x58e, 1); - SetTileType(0x17b, 0x58f, 1); - SetTileType(0x17c, 0x5ce, 1); - SetTileType(0x17d, 0x5cf, 1); - } - - sub_08054570(); - sub_08059278(); - SetTile(0x4072, 0xa47, 1); - SetTile(0x4072, 0xc47, 1); - - if (CheckGlobalFlag(MAZE_CLEAR)) - if (gScreenTransition.player_status.start_pos.WORD == 0x2780078) // todo: wtf - SoundReq(SFX_SECRET); - - ClearGlobalFlag(MAZE_CLEAR); -} - -u32 sub_unk3_RoyalValley_ForestMaze() { - return 1; -} - -void sub_StateChange_RoyalValley_ForestMaze(void) { - gArea.areaMetadata |= 0x40; - sub_0804C128(gArea.filler[7] |= 1); -} - -ASM_FUNC("asm/non_matching/sub_0804C128.inc", void sub_0804C128(u32 arg0)) - -ASM_FUNC("asm/non_matching/sub_0804C258.inc", void sub_0804C258(void)) - -ASM_FUNC("asm/non_matching/sub_0804C290.inc", void sub_0804C290(void)) - -u32 sub_unk3_RoyalValleyGraves_HeartPiece() { - return 1; -} - -void sub_StateChange_RoyalValleyGraves_HeartPiece() { -} - -u32 sub_unk3_RoyalValleyGraves_Gina() { - return 1; -} - -void sub_StateChange_RoyalValleyGraves_Gina() { -} - -u32 sub_unk3_MinishRafters_Cafe() { - return 1; -} - -void sub_StateChange_MinishRafters_Cafe() { - sub_08058324(0); -} - -u32 sub_unk3_MinishRafters_Stockwell() { - return 1; -} - -void sub_StateChange_MinishRafters_Stockwell() { - sub_08058324(1); -} - -u32 sub_unk3_MinishRafters_DrLeft() { - return 1; -} - -extern EntityData gUnk_080D9800; - -void sub_StateChange_MinishRafters_DrLeft(void) { - - sub_08058324(2); - - if (CheckGlobalFlag(MIZUKAKI_START) && !CheckGlobalFlag(MIZUKAKI_HARIFALL)) - LoadRoomEntityList(&gUnk_080D9800); -} - -void sub_unk1_MinishRafters_DrLeft() { - sub_StateChange_MinishRafters_DrLeft(); -} - -u32 sub_unk3_MinishRafters_Bakery() { - return 1; -} - -void sub_StateChange_MinishRafters_Bakery() { - sub_08058324(3); -} - -u32 sub_unk3_CastorWilds_Main() { - return 1; -} - -extern EntityData gUnk_080D9CC8; -extern EntityData gUnk_080D9CE8; -extern EntityData gUnk_080D9C38; - -void sub_StateChange_CastorWilds_Main(void) { - - SetGlobalFlag(DASHBOOTS); - - if (CheckKinstoneFused(0x5b)) - LoadRoomEntityList(&gUnk_080D9CC8); - - if ((gSave.windcrests & 0x20000000) == 0) - LoadRoomEntityList(&gUnk_080D9CE8); - - if (!GetInventoryValue(ITEM_PEGASUS_BOOTS)) - LoadRoomEntityList(&gUnk_080D9C38); -} - -void sub_unk1_CastorWilds_Main(void) { - if ((gSave.windcrests & 0x20000000) == 0) - LoadRoomEntityList(&gUnk_080D9CE8); -} - -u32 sub_unk3_CastorCaves_South() { - return 1; -} - -void sub_StateChange_CastorCaves_South() { -} - -u32 sub_unk3_CastorCaves_North() { - return 1; -} - -void sub_StateChange_CastorCaves_North() { -} - -u32 sub_unk3_CastorCaves_WindRuins() { - return 1; -} - -void sub_StateChange_CastorCaves_WindRuins() { -} - -u32 sub_unk3_CastorCaves_Darknut() { - return 1; -} - -void sub_StateChange_CastorCaves_Darknut() { -} - -u32 sub_unk3_CastorCaves_HeartPiece() { - return 1; -} - -void sub_StateChange_CastorCaves_HeartPiece() { -} - -extern u32 gUnk_080DA230; - -u32 sub_unk3_CastorDarknut_Main(void) { - if (!CheckLocalFlag(LV4_0a_TSUBO)) - gRoomVars.field_0x6c[0] = &gUnk_080DA230; - - return 1; -} - -void sub_StateChange_CastorDarknut_Main() { -} - -u32 sub_unk3_CastorDarknut_Hall() { - return 1; -} - -void sub_StateChange_CastorDarknut_Hall() { -} - -u32 sub_unk3_GreatFairies_Graveyard() { - return 1; -} - -void sub_StateChange_GreatFairies_Graveyard() { -} - -u32 sub_unk3_GreatFairies_MinishWoods() { - return 1; -} - -void sub_StateChange_GreatFairies_MinishWoods() { -} - -u32 sub_unk3_GreatFairies_MtCrenel() { - return 1; -} - -void sub_StateChange_GreatFairies_MtCrenel() { -} - -u32 sub_unk3_GardenFountains_East() { - return 1; -} - -void sub_StateChange_GardenFountains_East() { -} - -u32 sub_unk3_GardenFountains_West() { - return 1; -} - -void sub_StateChange_GardenFountains_West() { -} - -u32 sub_unk3_MinishHouseInteriors_GentariMain() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_GentariMain() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_GentariExit() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_GentariExit() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_Festari() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_Festari() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_Red() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_Red() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_Green() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_Green() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_Blue() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_Blue() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_SideArea() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_SideArea() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_ShoeMinish() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_ShoeMinish() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_PotMinish() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_PotMinish() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_BarrelMinish() { - return 1; -} - -extern EntityData gUnk_080DAB44; -extern EntityData gUnk_080DAB64; -extern EntityData gUnk_080DAB84; -extern EntityData gUnk_080DAC54; -extern EntityData gUnk_080DAD24; -extern EntityData gUnk_080DABC4; -extern EntityData gUnk_080DAC94; -extern EntityData gUnk_080DAD64; -extern EntityData gUnk_080DAC04; -extern EntityData gUnk_080DACD4; -extern EntityData gUnk_080DADA4; - -void sub_StateChange_MinishHouseInteriors_BarrelMinish(void) { - u32 uVar1; - - if (!GetInventoryValue(ITEM_JABBERNUT)) - LoadRoomEntityList(&gUnk_080DAB44); - else - LoadRoomEntityList(&gUnk_080DAB64); - - if (CheckGlobalFlag(DRUG_COUNT) && sub_08060354()) { - SetRoomFlag(0); - if (!CheckGlobalFlag(DRUG_1)) - uVar1 = 0x3200; - else if (!CheckGlobalFlag(DRUG_2)) - uVar1 = 0x4600; - else - uVar1 = 0x4880; - } else { - if (CheckGlobalFlag(DRUG_3)) - uVar1 = 0x4900; - else if (CheckGlobalFlag(DRUG_2)) - uVar1 = 0x4a00; - else if (CheckGlobalFlag(DRUG_1)) - uVar1 = 0x5200; - else - uVar1 = 0x9200; - } - if (uVar1 & 0x8000) - LoadRoomEntityList(&gUnk_080DAB84); - - if (uVar1 & 0x4000) - LoadRoomEntityList(&gUnk_080DAC54); - - if (uVar1 & 0x2000) - LoadRoomEntityList(&gUnk_080DAD24); - - if (uVar1 & 0x1000) - LoadRoomEntityList(&gUnk_080DABC4); - - if (uVar1 & 0x800) - LoadRoomEntityList(&gUnk_080DAC94); - - if (uVar1 & 0x400) - LoadRoomEntityList(&gUnk_080DAD64); - - if (uVar1 & 0x200) - LoadRoomEntityList(&gUnk_080DAC04); - - if (uVar1 & 0x100) - LoadRoomEntityList(&gUnk_080DACD4); - - if (uVar1 & 0x80) - LoadRoomEntityList(&gUnk_080DADA4); - - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_MelariMinesSouthwest() { - return 1; -} - -extern EntityData gUnk_080DAEE8; - -void sub_StateChange_MinishHouseInteriors_MelariMinesSouthwest(void) { - if (CheckGlobalFlag(WHITE_SWORD_END)) - LoadRoomEntityList(&gUnk_080DAEE8); - - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_MelariMinesSoutheast() { - return 1; -} - -extern EntityData gUnk_080DAF80; - -void sub_StateChange_MinishHouseInteriors_MelariMinesSoutheast(void) { - if (CheckGlobalFlag(WHITE_SWORD_END)) - LoadRoomEntityList(&gUnk_080DAF80); - - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_MelariMinesEast() { - return 1; -} - -extern EntityData gUnk_080DB018; - -void sub_StateChange_MinishHouseInteriors_MelariMinesEast(void) { - if (CheckGlobalFlag(WHITE_SWORD_END)) - LoadRoomEntityList(&gUnk_080DB018); - - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_HyruleFieldSouthwest() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_HyruleFieldSouthwest() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_HyruleFieldOutsideLinksHouse() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_HyruleFieldOutsideLinksHouse() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_NextToKnuckle() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_NextToKnuckle() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_Librari() { - return 1; -} - -extern EntityData gUnk_080DB238; - -void sub_StateChange_MinishHouseInteriors_Librari(void) { - if (gSave.global_progress > 8) - LoadRoomEntityList(&gUnk_080DB238); - - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_HyruleFieldExit() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_HyruleFieldExit() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_HyruleTown() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_HyruleTown() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_MinishWoodsBomb() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_MinishWoodsBomb() { - sub_0801AFE4(); -} - -u32 sub_unk3_MinishHouseInteriors_LakeHyliaOcarina() { - return 1; -} - -void sub_StateChange_MinishHouseInteriors_LakeHyliaOcarina() { - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_MayorsHouse() { - return 1; -} - -extern EntityData gUnk_080DB4D0; -extern EntityData gUnk_080DB4A0; - -void sub_StateChange_TownMinishHoles_MayorsHouse(void) { - if (!GetInventoryValue(ITEM_FLIPPERS) && !GetInventoryValue(ITEM_QST_BOOK3) && CheckLocalFlag(KOBITO_DOUKUTU_04_T0)) - LoadRoomEntityList(&gUnk_080DB4D0); - else - LoadRoomEntityList(&gUnk_080DB4A0); - - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_WestOracle() { - return 1; -} - -void sub_StateChange_TownMinishHoles_WestOracle() { - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_DrLeft() { - return 1; -} - -void sub_StateChange_TownMinishHoles_DrLeft() { - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_Carpenter() { - return 1; -} - -void sub_StateChange_TownMinishHoles_Carpenter() { - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_Cafe() { - return 1; -} - -void sub_StateChange_TownMinishHoles_Cafe() { - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_5() { - return 1; -} - -void sub_StateChange_TownMinishHoles_5() { - sub_0801AFE4(); -} - -extern u32 gUnk_080DB910; - -u32 sub_unk3_TownMinishHoles_LibraryBookshelf(void) { - if (CheckGlobalFlag(MIZUKAKI_START) && !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { - gRoomVars.field_0x6c[1] = &gUnk_080DB910; - } - return 1; -} - -extern EntityData gUnk_080DB8F0; -extern EntityData gUnk_additional_a_TownMinishHoles_LibraryBookshelf; - -void sub_StateChange_TownMinishHoles_LibraryBookshelf(void) { - LoadRoomEntityList(&gUnk_080DB8F0); - if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START)) { - LoadRoomEntityList(&gUnk_additional_a_TownMinishHoles_LibraryBookshelf); - } - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_LibrariBookHouse() { - return 1; -} - -extern EntityData gUnk_080DBA08; - -void sub_StateChange_TownMinishHoles_LibrariBookHouse(void) { - if (GetInventoryValue(ITEM_FLIPPERS) || !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { - LoadRoomEntityList(&gUnk_080DBA08); - } - sub_0801AFE4(); -} - -u32 sub_unk3_TownMinishHoles_RemShoeShop() { - return 1; -} - -extern EntityData gUnk_080DBB50; -extern EntityData gUnk_080DBB70; -extern EntityData gUnk_080DBB10; -extern EntityData gUnk_080DBAD0; -extern EntityData gUnk_080DBB90; - -void sub_StateChange_TownMinishHoles_RemShoeShop(void) { - u32 tilePos; - u32 i; - - if (!CheckLocalFlag(KOBITO_DOUKUTU_00_T0)) { - LoadRoomEntityList(&gUnk_080DBB50); - } - - if (GetInventoryValue(ITEM_PEGASUS_BOOTS) == 1) { - LoadRoomEntityList(&gUnk_080DBB70); - LoadRoomEntityList(&gUnk_080DBB10); - } else { - LoadRoomEntityList(&gUnk_080DBAD0); - } - if (!CheckLocalFlag(KOBITO_DOUKUTU_05_T0)) { - tilePos = 0x140; - for (i = 0; i < 0x13; i++, tilePos++) { - SetTileType(0x4072, tilePos, 1); - } - } - LoadRoomEntityList(&gUnk_080DBB90); - sub_0801AFE4(); -} - -u32 sub_unk3_MinishCaves_BeanPesto() { - return 1; -} - -void sub_StateChange_MinishCaves_BeanPesto() { -} - -u32 sub_unk3_MinishCaves_SoutheastWater1() { - return 1; -} - -void sub_StateChange_MinishCaves_SoutheastWater1() { -} - -u32 sub_unk3_MinishCaves_SoutheastWater2() { - return 1; -} - -void sub_StateChange_MinishCaves_SoutheastWater2() { -} - -u32 sub_unk3_MinishCaves_Ruins() { - return 1; -} - -void sub_StateChange_MinishCaves_Ruins() { -} - -u32 sub_unk3_MinishCaves_OutsideLinksHouse() { - return 1; -} - -void sub_StateChange_MinishCaves_OutsideLinksHouse() { -} - -u32 sub_unk3_MinishCaves_MinishWoodsNorth1() { - return 1; -} - -void sub_StateChange_MinishCaves_MinishWoodsNorth1() { -} - -u32 sub_unk3_MinishCaves_MinishWoodsNorth2() { - return 1; -} - -void sub_StateChange_MinishCaves_MinishWoodsNorth2() { -} - -u32 sub_unk3_MinishCaves_LakeHyliaNorth() { - return 1; -} - -void sub_StateChange_MinishCaves_LakeHyliaNorth() { -} - -u32 sub_unk3_MinishCaves_LakeHyliaLibrari() { - return 1; -} - -void sub_StateChange_MinishCaves_LakeHyliaLibrari() { -} - -u32 sub_unk3_MinishCaves_MinishWoodsSouthwest() { - return 1; -} - -void sub_StateChange_MinishCaves_MinishWoodsSouthwest() { -} - -u32 sub_unk3_MinishVillage_Main() { - return 1; -} - -extern EntityData gUnk_080DC390; -extern EntityData gUnk_080DC3F0; -extern EntityData gUnk_080DC430; -extern EntityData gUnk_080DC530; -extern EntityData gUnk_080DC470; -extern EntityData gUnk_080DC4C0; - -void sub_StateChange_MinishVillage_Main(void) { - if (!GetInventoryValue(ITEM_JABBERNUT)) { - LoadRoomEntityList(&gUnk_080DC390); - if (!CheckLocalFlagByBank(0x200, 0x80)) { - LoadRoomEntityList(&gUnk_080DC3F0); - } - } else { - LoadRoomEntityList(&gUnk_080DC430); - if (!GetInventoryValue(ITEM_GUST_JAR)) { - LoadRoomEntityList(&gUnk_080DC530); - } - } - if ((!CheckLocalFlagByBank(FLAG_BANK_2, M_ELDER_TALK2ND)) && GetInventoryValue(ITEM_GUST_JAR)) { - LoadRoomEntityList(&gUnk_080DC470); - } - if (!CheckLocalFlag(0x8d)) { - LoadRoomEntityList(&gUnk_080DC4C0); - } - sub_08057E64(); -} - -u32 sub_unk3_MinishVillage_SideHouse() { - return 1; -} - -void sub_StateChange_MinishVillage_SideHouse() { -} - -typedef struct { - u8 LO[0x4000]; - u8 HI[0x4000]; -} struct_086D4460; - -extern struct_086D4460 gUnk_086D4460; - -void sub_unk2_MinishVillage_SideHouse(void) { - LoadResourceAsync(&gUnk_086D4460.LO, 0x6000000, 0x4000); - LoadResourceAsync(&gUnk_086D4460.HI, 0x6008000, 0x4000); - LoadPaletteGroup(0x19); -} - -u32 sub_unk3_CastleGardenMinishHoles_East() { - return 1; -} - -void sub_StateChange_CastleGardenMinishHoles_East() { -} - -u32 sub_unk3_CastleGardenMinishHoles_West() { - return 1; -} - -void sub_StateChange_CastleGardenMinishHoles_West() { -} - -u32 sub_unk3_37_0() { - return 1; -} - -void sub_StateChange_37_0() { -} - -u32 sub_unk3_37_1() { - return 1; -} - -void sub_StateChange_37_1() { -} - -u32 sub_unk3_MinishCracks_LonLonRanchNorth() { - return 1; -} - -void sub_StateChange_MinishCracks_LonLonRanchNorth() { -} - -u32 sub_unk3_MinishCracks_LakeHyliaEast() { - return 1; -} - -void sub_StateChange_MinishCracks_LakeHyliaEast() { -} - -u32 sub_unk3_MinishCracks_HyruleCastleGarden() { - return 1; -} - -void sub_StateChange_MinishCracks_HyruleCastleGarden() { -} - -u32 sub_unk3_MinishCracks_MtCrenel() { - return 1; -} - -void sub_StateChange_MinishCracks_MtCrenel() { -} - -u32 sub_unk3_MinishCracks_EastHyruleCastle() { - return 1; -} - -void sub_StateChange_MinishCracks_EastHyruleCastle() { -} - -u32 sub_unk3_MinishCracks_5() { - return 1; -} - -void sub_StateChange_MinishCracks_5() { -} - -u32 sub_unk3_MinishCracks_CastleWildsBowHole() { - return 1; -} - -extern EntityData gUnk_080DCB10; - -void sub_StateChange_MinishCracks_CastleWildsBowHole(void) { - if (!GetInventoryValue(ITEM_BOW)) { - LoadRoomEntityList(&gUnk_080DCB10); - } -} - -u32 sub_unk3_MinishCracks_RuinsEntrance() { - return 1; -} - -void sub_StateChange_MinishCracks_RuinsEntrance() { -} - -u32 sub_unk3_MinishCracks_MinishWoodsSouth() { - return 1; -} - -void sub_StateChange_MinishCracks_MinishWoodsSouth() { -} - -u32 sub_unk3_MinishCracks_CastorWildsNorth() { - return 1; -} - -void sub_StateChange_MinishCracks_CastorWildsNorth() { -} - -u32 sub_unk3_MinishCracks_CastorWildsWest() { - return 1; -} - -void sub_StateChange_MinishCracks_CastorWildsWest() { -} - -u32 sub_unk3_MinishCracks_CastorWildsMiddle() { - return 1; -} - -void sub_StateChange_MinishCracks_CastorWildsMiddle() { -} - -u32 sub_unk3_MinishCracks_RuinsTektite() { - return 1; -} - -void sub_StateChange_MinishCracks_RuinsTektite() { -} - -u32 sub_unk3_MinishCracks_CastorWildsNextToBow() { - return 1; -} - -void sub_StateChange_MinishCracks_CastorWildsNextToBow() { -} - -u32 sub_unk3_MinishCracks_E() { - return 1; -} - -void sub_StateChange_MinishCracks_E() { -} - -u32 sub_unk3_MinishCracks_F() { - return 1; -} - -void sub_StateChange_MinishCracks_F() { -} - -u32 sub_unk3_MinishCracks_10() { - return 1; -} - -void sub_StateChange_MinishCracks_10() { -} - -u32 sub_unk3_MinishCracks_11() { - return 1; -} - -void sub_StateChange_MinishCracks_11() { -} - -u32 sub_unk3_MelarisMine_Main() { - return 1; -} - -extern EntityData gUnk_additional_8_MelarisMine_Main; -extern EntityData gUnk_additional_9_MelarisMine_Main; -extern EntityData gUnk_080DD294; - -void sub_StateChange_MelarisMine_Main(void) { - if (!CheckGlobalFlag(WHITE_SWORD_END)) { - LoadRoomEntityList(&gUnk_additional_8_MelarisMine_Main); - } - if (!CheckLocalFlag(0x7f)) { - LoadRoomEntityList(&gUnk_additional_9_MelarisMine_Main); - } else { - LoadRoomEntityList(&gUnk_080DD294); - } - SetLocalFlag(0x8e); -} - -u32 sub_unk3_CloudTops_House() { - return 1; -} - -extern EntityData gUnk_080DD364; - -void sub_StateChange_CloudTops_House(void) { - if (!(gSave.windcrests & 0x4000000)) { - LoadRoomEntityList(&gUnk_080DD364); - } -} - -void sub_unk1_CloudTops_House(void) { - if (!(gSave.windcrests & 0x4000000)) { - LoadRoomEntityList(&gUnk_080DD364); - } -} - -u32 sub_unk3_CloudTops_Middle() { - return 1; -} - -void sub_StateChange_CloudTops_Middle() { -} - -u32 sub_unk3_CloudTops_Bottom() { - return 1; -} - -extern EntityData gUnk_080DD7E0; -extern EntityData gUnk_080DD840; - -void sub_StateChange_CloudTops_Bottom(void) { - - if (CheckGlobalFlag(KUMOTATSUMAKI)) { - sub_0809F814(0x6de); - } -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlag(0xf0)) { -#else - if (CheckLocalFlag(0xf3)) { -#endif - sub_0809F814(0xe0); - } else { - LoadRoomEntityList(&gUnk_080DD7E0); - } -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlag(0xf2)) { -#else - if (CheckLocalFlag(0xf5)) { -#endif - sub_0809F814(0xba3); - } else { - LoadRoomEntityList(&gUnk_080DD840); - } -} - -u32 sub_unk3_Ruins_Entrance() { - return 1; -} - -void sub_StateChange_Ruins_Entrance() { - sub_080300E8(); -#if defined(JP) || defined(EU) || defined(DEMO_JP) - SetLocalFlag(0x25); -#else - SetLocalFlag(0x24); -#endif -} - -u32 sub_unk3_Ruins_Beanstalk() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk() { -} - -u32 sub_unk3_Ruins_TripleTektites() { - return 1; -} - -extern EntityData gUnk_080DDE88; - -void sub_StateChange_Ruins_TripleTektites(void) { - - if (CheckKinstoneFused(0x41)) { - LoadRoomEntityList(&gUnk_080DDE88); - } -} - -void sub_unk1_Ruins_TripleTektites(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_03_00)) { -#else - if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_02_00)) { -#endif - SetDirtTile(0x85); - } -} - -u32 sub_unk3_Ruins_LadderToTektites() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites() { -} - -u32 sub_unk3_Ruins_FortressEntrance() { - return 1; -} - -extern EntityData gUnk_080DE008; - -void sub_StateChange_Ruins_FortressEntrance(void) { - sub_080300E8(); - if (CheckGlobalFlag(LV3_CLEAR) && !CheckLocalFlag(3)) { - LoadRoomEntityList(&gUnk_080DE008); - } -} - -u32 sub_unk3_Ruins_Armos() { - return 1; -} - -extern EntityData gUnk_080DE1E0; -extern EntityData gUnk_080DE200; - -void sub_StateChange_Ruins_Armos(void) { - sub_080300E8(); -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x31)) { -#else - if (!CheckLocalFlag(0x30)) { -#endif - LoadRoomEntityList(&gUnk_080DE1E0); - } -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x32)) { -#else - if (!CheckLocalFlag(0x31)) { -#endif - LoadRoomEntityList(&gUnk_080DE200); - } -} - -u32 sub_unk3_DeepwoodShrine_Madderpillar() { - return 1; -} - -extern EntityData gUnk_080DE4C8; - -void sub_StateChange_DeepwoodShrine_Madderpillar(void) { - if ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) < (gRoomControls.height >> 1)) { - if (!CheckLocalFlag(0x17)) { - LoadRoomEntityList(&gUnk_080DE4C8); - } - } -} - -u32 sub_unk3_DeepwoodShrine_BluePortal() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_BluePortal() { -} - -u32 sub_unk3_DeepwoodShrine_StairsToB1() { - return 1; -} - -extern EntityData gUnk_080DE814; -extern EntityData gUnk_additional_8_DeepwoodShrine_StairsToB1; - -void sub_StateChange_DeepwoodShrine_StairsToB1(void) { - if (!CheckLocalFlag(0x4b)) { - LoadRoomEntityList(&gUnk_080DE814); - } else { - if (!CheckLocalFlag(0x4c)) { - LoadRoomEntityList(&gUnk_additional_8_DeepwoodShrine_StairsToB1); - SetTileType(0x79, 0x285, 1); - } else { - SetTileType(0x7a, 0x285, 1); - if (!CheckLocalFlag(0x24)) { - SetTileType(0x73, 0x205, 1); - } - } - } -} - -u32 sub_unk3_DeepwoodShrine_PotBridge() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_PotBridge() { -} - -u32 sub_unk3_DeepwoodShrine_DoubleStatue() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_DoubleStatue() { -} - -u32 sub_unk3_DeepwoodShrine_Map() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Map() { -} - -u32 sub_unk3_DeepwoodShrine_Barrel() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Barrel(void) { - if (gSave.unk7 == 0) { - goto a; - } - if (gSave.unk7 != 2) { - a: - SetTileType(0x90, 0x20b, 1); - SetTileType(0x90, 0x411, 1); - } else { - SetTileType(0x90, 0x211, 1); - SetTileType(0x90, 0x40b, 1); - } - if (CheckLocalFlag(0x15)) { - SetTileType(0x76, 0x304, 2); - } - if (CheckLocalFlag(0x16)) { - SetTileType(0x76, 0x318, 2); - } -} - -u32 sub_unk3_DeepwoodShrine_Button() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Button() { -} - -u32 sub_unk3_DeepwoodShrine_Mulldozer() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Mulldozer() { -} - -u32 sub_unk3_DeepwoodShrine_Pillars() { - return 1; -} -void sub_StateChange_DeepwoodShrine_Pillars() { -} - -u32 sub_unk3_DeepwoodShrine_Lever() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Lever() { -} - -u32 sub_unk3_DeepwoodShrine_Entrance() { - return 1; -} - -#if defined(DEMO_USA) || defined(DEMO_JP) -void sub_StateChange_DeepwoodShrine_Entrance() { -#ifdef DEMO_USA - if (gSaveHeader->saveFileId != 0 && GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { -#else -#ifdef DEMO_JP - if (GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { -#endif -#endif - SetTileType(0x365, 0x349, 1); - SetTileType(0x365, 0x34a, 1); - SetTileType(0x365, 0x34b, 1); - } -} -#else -void sub_StateChange_DeepwoodShrine_Entrance() { -} -#endif - -u32 sub_unk3_DeepwoodShrine_Torch() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Torch() { -} - -u32 sub_unk3_DeepwoodShrine_BossKey() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_BossKey() { -} - -u32 sub_unk3_DeepwoodShrine_Compass() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_Compass() { -} - -u32 sub_unk3_DeepwoodShrine_13() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_13() { -} - -u32 sub_unk3_DeepwoodShrine_LilyPadWest() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_LilyPadWest() { -} - -u32 sub_unk3_DeepwoodShrine_LilyPadEast() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_LilyPadEast() { -} - -u32 sub_unk3_DeepwoodShrineBoss_Main() { - return 1; -} - -extern EntityData gUnk_additional_a_DeepwoodShrineBoss_Main; - -extern u8 gUpdateVisibleTiles; -extern u32 gUsedPalettes; - -void sub_StateChange_DeepwoodShrineBoss_Main(void) { - - if (!CheckLocalFlag(0x48)) { - SetLocalFlag(0x48); - MenuFadeIn(5, 0); - gUpdateVisibleTiles = 0; - gFadeControl.active = 0; - gUsedPalettes = 0; - *(u16*)0x5000000 = 0x7fff; - DispReset(1); - } - if (CheckGlobalFlag(LV1_CLEAR)) { - LoadRoomEntityList(&gUnk_additional_a_DeepwoodShrineBoss_Main); - } else { - SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; - } -} - -u32 sub_unk3_DeepwoodShrine_PreBoss() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_PreBoss() { -} - -u32 sub_unk3_DeepwoodShrine_InsideBarrel() { - return 1; -} - -void sub_StateChange_DeepwoodShrine_InsideBarrel(void) { - sub_08058D34(); - gArea.areaMetadata |= 0x40; - gMain.transition = 5; -} - -u32 sub_unk3_DeepwoodShrineEntry_Main() { - return 1; -} - -extern EntityData gUnk_080DFB78; - -void sub_StateChange_DeepwoodShrineEntry_Main(void) { - if (CheckGlobalFlag(LV1_CLEAR) && !CheckLocalFlagByBank(FLAG_BANK_1, LV1_CLEAR_MES)) { - LoadRoomEntityList(&gUnk_080DFB78); - } -} - -u32 sub_unk3_CaveOfFlames_AfterCane() { - return 1; -} - -void sub_StateChange_CaveOfFlames_AfterCane() { -} - -u32 sub_unk3_CaveOfFlames_SpinyChus() { - return 1; -} - -void sub_StateChange_CaveOfFlames_SpinyChus() { -} - -u32 sub_unk3_CaveOfFlames_CartToSpinyChus() { - return 1; -} - -void sub_StateChange_CaveOfFlames_CartToSpinyChus() { -} - -u32 sub_unk3_CaveOfFlames_Entrance() { - return 1; -} - -#ifdef DEMO_USA -void sub_StateChange_CaveOfFlames_Entrance() { - if (GetInventoryValue(ITEM_FIRE_ELEMENT) == 0) { - SetTileType(0x365, 0x287, 2); - SetTileType(0x365, 0x288, 2); - SetTileType(0x365, 0x289, 2); - } -} -#else -void sub_StateChange_CaveOfFlames_Entrance() { -} -#endif - -u32 sub_unk3_CaveOfFlames_MainCart() { - return 1; -} - -void sub_StateChange_CaveOfFlames_MainCart() { -} - -u32 sub_unk3_CaveOfFlames_NorthEntrance() { - return 1; -} - -void sub_StateChange_CaveOfFlames_NorthEntrance() { -} - -u32 sub_unk3_CaveOfFlames_CartWest() { - return 1; -} - -void sub_StateChange_CaveOfFlames_CartWest() { -} - -u32 sub_unk3_CaveOfFlames_Helmasaur() { - return 1; -} - -void sub_StateChange_CaveOfFlames_Helmasaur() { -} - -u32 sub_unk3_CaveOfFlames_Rollobite() { - return 1; -} - -void sub_StateChange_CaveOfFlames_Rollobite() { -} - -u32 sub_unk3_CaveOfFlames_MinishLava() { - return 1; -} - -void sub_StateChange_CaveOfFlames_MinishLava() { -} - -u32 sub_unk3_CaveOfFlames_MinishSpikes() { - return 1; -} - -void sub_StateChange_CaveOfFlames_MinishSpikes() { -} - -u32 sub_unk3_CaveOfFlames_RollobiteSwitch() { - return 1; -} - -void sub_StateChange_CaveOfFlames_RollobiteSwitch() { -} - -extern u32 gUnk_080E103C; - -u32 sub_unk3_CaveOfFlames_BeforeGleerok(void) { - if (CheckGlobalFlag(LV2_CLEAR)) { - gRoomVars.field_0x6c[1] = &gUnk_080E103C; - } - return 1; -} - -void sub_StateChange_CaveOfFlames_BeforeGleerok() { -} - -u32 sub_unk3_CaveOfFlames_PathBossKey() { - return 1; -} - -void sub_StateChange_CaveOfFlames_PathBossKey() { -} - -u32 sub_unk3_CaveOfFlames_PathBossKey2() { - return 1; -} - -void sub_StateChange_CaveOfFlames_PathBossKey2() { -} - -u32 sub_unk3_CaveOfFlames_Compass() { - return 1; -} - -void sub_StateChange_CaveOfFlames_Compass() { -} - -u32 sub_unk3_CaveOfFlames_Bobomb() { - return 1; -} - -void sub_StateChange_CaveOfFlames_Bobomb() { -} - -u32 sub_unk3_CaveOfFlames_BossDoor() { - return 1; -} - -void sub_StateChange_CaveOfFlames_BossDoor() { -} - -u32 sub_unk3_CaveOfFlames_18() { - return 1; -} - -void sub_StateChange_CaveOfFlames_18() { -} - -u32 sub_unk3_CaveOfFlamesBoss_Main() { - return 1; -} - -extern EntityData gUnk_additional_a_CaveOfFlamesBoss_Main; - -extern u32 gUnk_0200B650; - -void sub_StateChange_CaveOfFlamesBoss_Main(void) { - - if (CheckGlobalFlag(LV2_CLEAR)) { - gUnk_0200B650 = 0; - gScreen.lcd.displayControl &= ~DISPCNT_BG1_ON; - sub_0807AABC(&gPlayerEntity); - LoadRoomEntityList(&gUnk_additional_a_CaveOfFlamesBoss_Main); - } else { - SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; - } -} - -u32 sub_unk3_FortressOfWinds_Eyegore() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Eyegore() { -} - -u32 sub_unk3_FortressOfWinds_BeforeMazaal() { - return 1; -} - -void sub_StateChange_FortressOfWinds_BeforeMazaal(void) { - gScreenTransition.field_0x38 = 0; - gScreenTransition.field_0x39 = 0x5a; -} - -u32 sub_unk3_FortressOfWinds_EastKeyLever() { - return 1; -} - -void sub_StateChange_FortressOfWinds_EastKeyLever() { - sub_080300E8(); -} - -u32 sub_unk3_FortressOfWinds_PitPlatforms() { - return 1; -} - -void sub_StateChange_FortressOfWinds_PitPlatforms() { -} - -u32 sub_unk3_FortressOfWinds_WestKeyLever() { - return 1; -} - -void sub_StateChange_FortressOfWinds_WestKeyLever() { - sub_080300E8(); -} - -u32 sub_unk3_FortressOfWinds_Darknut() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Darknut() { -} - -u32 sub_unk3_FortressOfWinds_EyeBridge() { - return 1; -} - -void sub_StateChange_FortressOfWinds_EyeBridge() { -} - -u32 sub_unk3_FortressOfWinds_Pit() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Pit() { -} - -u32 sub_unk3_FortressOfWinds_Wallmaster() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Wallmaster() { -} - -u32 sub_unk3_FortressOfWinds_Clone() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Clone() { -} - -u32 sub_unk3_FortressOfWinds_SpikeTraps() { - return 1; -} - -void sub_StateChange_FortressOfWinds_SpikeTraps() { -} - -u32 sub_unk3_FortressOfWinds_Mazaal() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Mazaal(void) { - - if (!CheckFlags(0x31)) { - if (gScreenTransition.field_0x38 == 0) { - SoundReq(SONG_STOP_BGM); - } else { - if (gScreenTransition.field_0x39 == 0) { - SoundReq(SONG_STOP); - SetPlayerControl(3); - } - } - gArea.musicIndex = gArea.pMusicIndex; - } -} - -u32 sub_unk3_FortressOfWinds_Stalfos() { - return 1; -} - -void sub_StateChange_FortressOfWinds_Stalfos() { -} - -u32 sub_unk3_FortressOfWinds_EntranceMoleMitts() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade0() { -} - -u32 sub_unk3_FortressOfWinds_Main2F() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade1() { -} - -u32 sub_unk3_FortressOfWinds_MinishHole() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade2() { -} - -u32 sub_unk3_FortressOfWinds_BossKey() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade3() { -} - -u32 sub_unk3_FortressOfWinds_WestStairs2F() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade4() { -} - -u32 sub_unk3_FortressOfWinds_EastStairs2F() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade5() { -} - -u32 sub_unk3_FortressOfWinds_WestStairs1F() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade6() { -} - -u32 sub_unk3_FortressOfWinds_CenterStairs1F() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade7() { -} - -u32 sub_unk3_FortressOfWinds_EastStairs1F() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade8() { -} - -u32 sub_unk3_FortressOfWinds_Wizzrobe() { - return 1; -} - -void sub_StateChange_Dojos_Waveblade9() { -} - -u32 sub_unk3_FortressOfWinds_HeartPiece() { - return 1; -} - -void sub_StateChange_Dojos_70() { -} - -u32 sub_unk3_InnerMazaal_Main() { - return 1; -} - -void sub_StateChange_Dojos_71() { -} - -u32 sub_unk3_FortressOfWindsTop_Main() { - return 1; -} - -extern EntityData gUnk_080E3850; - -void sub_StateChange_FortressOfWindsTop_Main(void) { - SetGlobalFlag(LV3_CLEAR); - UpdateGlobalProgress(); - sub_0805B4D0(3); - if (!GetInventoryValue(ITEM_OCARINA) && CheckLocalFlag(0x45)) { - LoadRoomEntityList(&gUnk_080E3850); - } -} - -u32 sub_unk3_TempleOfDroplets_WestHole() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_WestHole() { - sub_0804D0B4(); -} - -void sub_0804D0B4(void) { - if (!CheckLocalFlag(0x29)) { - SetLocalFlag(0x29); - SetLocalFlag(0x4b); - SetLocalFlag(0x4e); - } -} - -u32 sub_unk3_TempleOfDroplets_NorthSplit() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_NorthSplit() { -} - -u32 sub_unk3_TempleOfDroplets_EastHole() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_EastHole() { -} - -u32 sub_unk3_TempleOfDroplets_Entrance() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_Entrance() { -} - -u32 sub_unk3_TempleOfDroplets_NorthwestStairs() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_NorthwestStairs() { -} - -u32 sub_unk3_TempleOfDroplets_ScissorsMiniboss() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_ScissorsMiniboss() { -} - -u32 sub_unk3_TempleOfDroplets_WaterfallNorthwest() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_WaterfallNorthwest() { -} - -u32 sub_unk3_TempleOfDroplets_WaterfallNortheast() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_WaterfallNortheast() { -} - -u32 sub_unk3_TempleOfDroplets_Element() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_Element() { -} - -u32 sub_unk3_TempleOfDroplets_IceCorner() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_IceCorner() { -} - -u32 sub_unk3_TempleOfDroplets_IcePitMaze() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_IcePitMaze() { -} - -u32 sub_unk3_TempleOfDroplets_HoleToBlueChuchu() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_HoleToBlueChuchu() { -} - -u32 sub_unk3_TempleOfDroplets_WaterfallSoutheast() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_WaterfallSoutheast() { -} - -u32 sub_unk3_TempleOfDroplets_WaterfallSouthwest() { - return 1; -} - -void sub_StateChange_TempleOfDroplets_WaterfallSouthwest() { -} - -u32 sub_unk3_TempleOfDroplets_BigOcto() { - return 1; -} - -extern EntityData gUnk_additional_a_TempleOfDroplets_BigOcto; - -void sub_StateChange_TempleOfDroplets_BigOcto(void) { - ChangeLightLevel(0x100); - if (CheckGlobalFlag(LV4_CLEAR)) { - LoadRoomEntityList(&gUnk_additional_a_TempleOfDroplets_BigOcto); - } else { - SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; - } -} - -u32 sub_unk3_TempleOfDroplets_ToBigBlueChuchu() { - return 1; -} - -void sub_StateChange_Dojos_72() { -} - -u32 sub_unk3_TempleOfDroplets_BigBlueChuchu() { - return 1; -} - -extern EntityData gUnk_080E4BD8; - -void sub_StateChange_TempleOfDroplets_BigBlueChuchu(void) { - if (!CheckLocalFlag(0x48)) { - ClearLocalFlag(0x46); - LoadRoomEntityList(&gUnk_080E4BD8); - } -} - -u32 sub_unk3_TempleOfDroplets_BigBlueChuchuKey() { - return 1; -} - -extern EntityData gUnk_080E4CF8; -extern EntityData gUnk_080E4CD8; - -void sub_StateChange_TempleOfDroplets_BigBlueChuchuKey(void) { - sub_0804D0B4(); - if (CheckLocalFlag(0x6c)) { - LoadRoomEntityList(&gUnk_080E4CD8); - } else { - LoadRoomEntityList(&gUnk_080E4CF8); - } - if (!CheckLocalFlag(0x4b)) { - ClearLocalFlag(0x49); - } -} - -u32 sub_unk3_TempleOfDroplets_BossKey() { - return 1; -} - -void sub_StateChange_Dojos_73() { -} - -u32 sub_unk3_TempleOfDroplets_NorthSmallKey() { - return 1; -} - -void sub_StateChange_Dojos_74() { -} - -u32 sub_unk3_TempleOfDroplets_BlockCloneButtonPuzzle() { - return 1; -} - -void sub_StateChange_Dojos_75() { -} - -u32 sub_unk3_TempleOfDroplets_BlockClonePuzzle() { - return 1; -} - -void sub_StateChange_Dojos_76() { -} - -u32 sub_unk3_TempleOfDroplets_BlockCloneIceBridge() { - return 1; -} - -void sub_StateChange_Dojos_77() { -} - -u32 sub_unk3_TempleOfDroplets_StairsToScissorsMiniboss() { - return 1; -} - -void sub_StateChange_Dojos_78() { -} - -u32 sub_unk3_TempleOfDroplets_SpikeBar() { - return 1; -} - -void sub_StateChange_Dojos_79() { -} - -u32 sub_unk3_TempleOfDroplets_Lanterns() { - return 1; -} - -void sub_StateChange_Dojos_80() { -} - -u32 sub_unk3_TempleOfDroplets_LilypadIceBlocks() { - return 1; -} - -extern EntityData gUnk_080E5660; -extern EntityData gUnk_080E5680; - -void sub_StateChange_TempleOfDroplets_LilypadIceBlocks(void) { - if (!CheckLocalFlag(0x59)) { - LoadRoomEntityList(&gUnk_080E5660); - } else { - LoadRoomEntityList(&gUnk_080E5680); - } -} - -u32 sub_unk3_TempleOfDroplets_Pit() { - return 1; -} - -void sub_StateChange_Dojos_81() { -} - -u32 sub_unk3_TempleOfDroplets_FireBars() { - return 1; -} - -void sub_StateChange_Dojos_82() { -} - -u32 sub_unk3_TempleOfDroplets_LanternMaze() { - return 1; -} - -void sub_StateChange_Dojos_83() { -} - -u32 sub_unk3_TempleOfDroplets_Madderpillars() { - return 1; -} - -void sub_StateChange_Dojos_84() { -} - -u32 sub_unk3_TempleOfDroplets_AfterMadderpillars() { - return 1; -} - -void sub_StateChange_Dojos_85() { -} - -u32 sub_unk3_TempleOfDroplets_BlueChuchuKeyLever() { - return 1; -} - -extern EntityData gUnk_080E5E3C; -extern EntityData gUnk_080E5E5C; - -void sub_StateChange_TempleOfDroplets_BlueChuchuKeyLever(void) { - sub_0804D0B4(); - if (!CheckLocalFlag(0x4b)) { - LoadRoomEntityList(&gUnk_080E5E3C); - } else { - LoadRoomEntityList(&gUnk_080E5E5C); - } -} - -u32 sub_unk3_TempleOfDroplets_MulldozerKey() { - return 1; -} - -void sub_StateChange_Dojos_86() { -} - -u32 sub_unk3_TempleOfDroplets_BombWall() { - return 1; -} - -void sub_StateChange_Dojos_87() { -} - -u32 sub_unk3_TempleOfDroplets_LilypadWestB2() { - return 1; -} - -void sub_StateChange_Dojos_88() { -} - -u32 sub_unk3_TempleOfDroplets_CompassRoom() { - return 1; -} - -void sub_StateChange_Dojos_89() { -} - -u32 sub_unk3_TempleOfDroplets_LanternScissors() { - return 1; -} - -void sub_StateChange_Dojos_90() { -} - -u32 sub_unk3_TempleOfDroplets_LilypadMiddleB2() { - return 1; -} - -void sub_StateChange_Dojos_91() { -} - -u32 sub_unk3_TempleOfDroplets_LilypadEastB2() { - return 1; -} - -void sub_StateChange_Dojos_92() { -} - -u32 sub_unk3_TempleOfDroplets_FlameBarBlockPuzzle() { - return 1; -} - -void sub_StateChange_Dojos_93() { -} - -u32 sub_unk3_RoyalCrypt_KingGustaf() { - return 1; -} - -extern EntityData gUnk_080E693C; - -void sub_StateChange_RoyalCrypt_KingGustaf(void) { - if (!CheckLocalFlag(0x32)) { - LoadRoomEntityList(&gUnk_080E693C); - } -} - -u32 sub_unk3_RoyalCrypt_WaterRope() { - return 1; -} - -void sub_StateChange_Dojos_94() { -} - -u32 sub_unk3_RoyalCrypt_Gibdo() { - return 1; -} - -void sub_StateChange_Dojos_95() { -} - -u32 sub_unk3_RoyalCrypt_3() { - return 1; -} - -void sub_StateChange_Dojos_96() { -} - -u32 sub_unk3_RoyalCrypt_KeyBlock() { - return 1; -} - -void sub_StateChange_Dojos_97() { -} - -u32 sub_unk3_RoyalCrypt_5() { - return 1; -} - -void sub_StateChange_Dojos_98() { -} - -u32 sub_unk3_RoyalCrypt_6() { - return 1; -} - -void sub_StateChange_Dojos_99() { -} - -u32 sub_unk3_RoyalCrypt_MushroomPit() { - return 1; -} - -void sub_StateChange_RoyalCrypt_MushroomPit() { - sub_08054570(); -} - -u32 sub_unk3_RoyalCrypt_Entrance() { - return 1; -} - -extern EntityData gUnk_080E718C; -extern EntityData gUnk_080E71AC; - -void sub_StateChange_RoyalCrypt_Entrance(void) { - SetTileType(0x312, 0x108, 1); - sub_08054570(); - if (!CheckLocalFlag(0xc4)) { - LoadRoomEntityList(&gUnk_080E718C); - } - if (!CheckLocalFlag(0xc5)) { - LoadRoomEntityList(&gUnk_080E71AC); - } -} - -u32 sub_unk3_PalaceOfWinds_0() { - return 1; -} - -extern EntityData gUnk_additional_9_PalaceOfWinds_0; -extern EntityData gUnk_080E72C4; -extern EntityData gUnk_additional_8_PalaceOfWinds_0; - -void sub_StateChange_PalaceOfWinds_0(void) { - Manager19_Main(NULL); - if (CheckGlobalFlag(LV5_CLEAR)) { - LoadRoomEntityList(&gUnk_additional_9_PalaceOfWinds_0); - } - if (!CheckLocalFlag(0x7b)) { - LoadRoomEntityList(&gUnk_080E72C4); - } else { - SetGlobalFlag(LV5_CLEAR); - if (!GetInventoryValue(ITEM_WIND_ELEMENT)) { - SetPlayerControl(3); - LoadRoomEntityList(&gUnk_additional_8_PalaceOfWinds_0); - gArea.musicIndex = gArea.pMusicIndex; - SoundReq(SONG_STOP_BGM); - } - } -} - -u32 sub_unk3_PalaceOfWinds_1() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_1() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_2() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_2() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_3() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_3() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_4() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_4() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_5() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_5() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_6() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_6() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_7() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_7() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_8() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_8() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_9() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_9() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_10() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_10() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_11() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_11() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_12() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_12() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_13() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_13() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_14() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_14() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_15() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_15() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_16() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_16() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_17() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_17() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_18() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_18() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_19() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_19() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_20() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_20() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_21() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_21() { -} - -u32 sub_unk3_PalaceOfWinds_22() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_22() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_23() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_23() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_24() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_24() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_25() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_25() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_26() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_26() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_27() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_27() { -} - -u32 sub_unk3_PalaceOfWinds_28() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_28() { -} - -u32 sub_unk3_PalaceOfWinds_29() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_29() { -} - -u32 sub_unk3_PalaceOfWinds_30() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_30() { -} - -u32 sub_unk3_PalaceOfWinds_31() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_31() { -} - -u32 sub_unk3_PalaceOfWinds_32() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_32() { -} - -u32 sub_unk3_PalaceOfWinds_33() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_33() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_34() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_34() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_35() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_35() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_36() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_36() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_37() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_37() { -} - -u32 sub_unk3_PalaceOfWinds_38() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_38() { -} - -u32 sub_unk3_PalaceOfWinds_39() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_39() { -} - -u32 sub_unk3_PalaceOfWinds_40() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_40() { -} - -u32 sub_unk3_PalaceOfWinds_41() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_41() { -} - -u32 sub_unk3_PalaceOfWinds_42() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_42() { -} - -u32 sub_unk3_PalaceOfWinds_43() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_43() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_44() { - return 1; -} - -extern EntityData gUnk_080EA09C; - -void sub_StateChange_PalaceOfWinds_44(void) { - Manager19_Main(NULL); - if (!CheckLocalFlag(0x70)) { - LoadRoomEntityList(&gUnk_080EA09C); - } -} - -u32 sub_unk3_PalaceOfWinds_45() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_45() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_46() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_46() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_47() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_47() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_48() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_48() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_49() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_49() { - Manager19_Main(NULL); -} - -u32 sub_unk3_PalaceOfWinds_50() { - return 1; -} - -void sub_StateChange_PalaceOfWinds_50() { -} - -u32 sub_unk3_PalaceOfWindsBoss_Main() { - return 1; -} - -void sub_StateChange_PalaceOfWindsBoss_Main() { -} - -u32 sub_unk3_Vaati2_Main() { - return 1; -} - -void sub_StateChange_Vaati2_Main(void) { - SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; -} - -u32 sub_unk3_Vaati3_Main() { - return 1; -} - -void sub_StateChange_Vaati3_Main(void) { - Manager2F_Main(NULL); - - if ((gScreenTransition.field_0x38 & 1) && gScreenTransition.field_0x39) { - if (gScreenTransition.field_0x3c == 1) { - gPlayerEntity.x.HALF.HI = gScreenTransition.field_0x48; - gPlayerEntity.y.HALF.HI = gScreenTransition.field_0x4a + 8; - } else { - if (gScreenTransition.field_0x3c) { - return; - } - gPlayerEntity.x.HALF.HI = gScreenTransition.field_0x44; - gPlayerEntity.y.HALF.HI = gScreenTransition.field_0x46 + 8; - } - } -} - -u32 sub_unk3_DarkHyruleCastleBridge_Main() { - return 1; -} - -void sub_StateChange_DarkHyruleCastleBridge_Main() { - sub_0805B4D0(6); -} - -u32 sub_unk3_VaatisArms_First() { - return 1; -} - -void sub_StateChange_VaatisArms_First() { -} - -u32 sub_unk3_VaatisArms_Second() { - return 1; -} - -void sub_StateChange_VaatisArms_Second() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_ZeldaStatuePlatform() { - sub_080534AC(); - return 1; -} - -extern EntityData gUnk_080EAD68; -extern EntityData gUnk_080EADB8; - -void sub_StateChange_DarkHyruleCastleOutside_ZeldaStatuePlatform(void) { - sub_0805B4D0(4); - if (!CheckLocalFlag(0x77)) { - LoadRoomEntityList(&gUnk_080EAD68); - } else if (!CheckLocalFlag(0x79)) { - LoadRoomEntityList(&gUnk_080EADB8); - SetTileType(0x4072, 0x145, 1); - SetTileType(0x4072, 0x149, 1); - gArea.pMusicIndex = 0; - } -} - -extern u16 gUnk_080EAE00; - -void sub_0804D7EC(void) { - u16 temp; - u16* tilePos; - - tilePos = &gUnk_080EAE00; - while (*tilePos != 0) { - temp = *tilePos; - tilePos++; - SetTileType(0x4072, temp, 1); - } -} - -void sub_0804D810(void) { - u16 uVar1; - u16* puVar2; - - puVar2 = &gUnk_080EAE00; - while (*puVar2 != 0) { - uVar1 = *puVar2; - puVar2++; - sub_0807BA8C(uVar1, 1); - } -} - -u32 sub_unk3_DarkHyruleCastleOutside_Garden() { - return 1; -} - -extern EntityData gUnk_080EAE60; -extern EntityData gUnk_080EAEC0; -extern EntityData gUnk_080EAF20; - -void sub_StateChange_DarkHyruleCastleOutside_Garden(void) { - gArea.areaMetadata = 0x40; - gArea.locationIndex = 0; - if (CheckGlobalFlag(ENDING)) { - if (!CheckLocalFlag(0x7f)) { - LoadRoomEntityList(&gUnk_080EAEC0); - SetLocalFlag(0x7f); - gArea.pMusicIndex = 0x11; - } else { - LoadRoomEntityList(&gUnk_080EAF20); - gArea.pMusicIndex = gArea.musicIndex; - } - } else { - if (CheckLocalFlag(0x79)) { - gArea.pMusicIndex = gArea.musicIndex; - } - if (!CheckLocalFlag(1)) { - LoadRoomEntityList(&gUnk_080EAE60); - } - } - ClearGlobalFlag(0x5d); -} - -u32 sub_unk3_DarkHyruleCastleOutside_OutsideNorthwest() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade0() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_OutsideNortheast() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade1() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_OutsideEast() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade2() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouthwest() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade3() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouth() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade4() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_OutsideSoutheast() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade5() { -} - -u32 sub_unk3_DarkHyruleCastleOutside_8() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade6() { -} - -extern u32 gUnk_080EB604; -extern u32 gUnk_080EB5D4; - -u32 sub_unk3_DarkHyruleCastle_0(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080EB604; - gRoomVars.field_0x6c[2] = 0; - gArea.musicIndex = gArea.pMusicIndex = BGM_BEAT_VAATI; - } else if (CheckLocalFlag(0x79)) { - gRoomVars.field_0x6c[0] = NULL; - if (!CheckLocalFlag(0x7a)) { - SetGlobalFlag(ZELDA_CHASE); - gRoomVars.field_0x6c[0] = &gUnk_080EB5D4; - gRoomVars.field_0x6c[7] = sub_0804D9B0; - gRoomVars.field_0x6c[2] = 0; - } - } - return 1; -} - -void sub_StateChange_DarkHyruleCastle_0(void) { - if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } - - if (CheckLocalFlag(0x79)) { - sub_0804D9B0(); - } -} - -extern EntityData gUnk_080EB684; - -void sub_0804D9B0(void) { - sub_0807BB98(0x797, 1, 5, 1); - sub_0807BB98(0x357, 1, 5, 1); - sub_0807BB98(0x55f, 1, 2, 1); - LoadRoomEntityList(&gUnk_080EB684); - gArea.pMusicIndex = gArea.musicIndex; -} - -u32 sub_unk3_DarkHyruleCastle_1() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade7() { -} - -u32 sub_unk3_DarkHyruleCastle_2() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade8() { -} - -u32 sub_unk3_DarkHyruleCastle_3() { - return 1; -} - -void sub_StateChange_Dojos_ToGrimblade9() { -} - -u32 sub_unk3_DarkHyruleCastle_4() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade0() { -} - -u32 sub_unk3_DarkHyruleCastle_5() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade1() { -} - -u32 sub_unk3_DarkHyruleCastle_6(void) { - if (!CheckLocalFlag(0x77)) { - gRoomVars.field_0x6c[0] = 0; - gRoomVars.field_0x6c[2] = 0; - } - return 1; -} - -extern EntityData gUnk_080EB9F4; -extern EntityData gUnk_080EBAA4; -extern EntityData gUnk_080EBAF4; - -void sub_StateChange_DarkHyruleCastle_6(void) { - if (!CheckLocalFlag(0x77)) { - LoadRoomEntityList(&gUnk_080EB9F4); - } else { - if (!CheckLocalFlag(0x78)) { - LoadRoomEntityList(&gUnk_080EBAA4); - SetLocalFlag(0x75); - } - if (CheckLocalFlag(0x7b)) { - LoadRoomEntityList(&gUnk_080EBAF4); - SetLocalFlag(0x76); - } - } -} - -u32 sub_unk3_DarkHyruleCastle_7() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade2() { -} - -u32 sub_unk3_DarkHyruleCastle_8() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade3() { -} - -u32 sub_unk3_DarkHyruleCastle_9() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade4() { -} - -u32 sub_unk3_DarkHyruleCastle_10() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade5() { -} - -u32 sub_unk3_DarkHyruleCastle_11() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade6() { -} - -u32 sub_unk3_DarkHyruleCastle_12() { - return 1; -} -void sub_StateChange_Dojos_ToSplitblade7() { -} - -u32 sub_unk3_DarkHyruleCastle_13() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade8() { -} - -u32 sub_unk3_DarkHyruleCastle_14() { - return 1; -} - -extern EntityData gUnk_080EC2CC; - -void sub_StateChange_DarkHyruleCastle_14(void) { - if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x4c)) { - LoadRoomEntityList(&gUnk_080EC2CC); - } -} - -u32 sub_unk3_DarkHyruleCastle_15() { - return 1; -} - -void sub_StateChange_Dojos_ToSplitblade9() { -} - -u32 sub_unk3_DarkHyruleCastle_16() { - return 1; -} - -extern EntityData gUnk_080EC4E8; - -void sub_StateChange_DarkHyruleCastle_16(void) { - if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x4d)) { - LoadRoomEntityList(&gUnk_080EC4E8); - } -} - -u32 sub_unk3_DarkHyruleCastle_17() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade0() { -} - -u32 sub_unk3_DarkHyruleCastle_18() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade1() { -} - -u32 sub_unk3_DarkHyruleCastle_19() { - return 1; -} - -extern EntityData gUnk_080EC820; - -void sub_StateChange_DarkHyruleCastle_19(void) { - if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x53)) { - LoadRoomEntityList(&gUnk_080EC820); - } -} - -u32 sub_unk3_DarkHyruleCastle_20() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade2() { -} - -u32 sub_unk3_DarkHyruleCastle_21() { - return 1; -} - -extern EntityData gUnk_080ECA60; - -void sub_StateChange_DarkHyruleCastle_21(void) { - if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x56)) { - LoadRoomEntityList(&gUnk_080ECA60); - } -} - -u32 sub_unk3_DarkHyruleCastle_22() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade3() { -} - -u32 sub_unk3_DarkHyruleCastle_23() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade4() { -} - -u32 sub_unk3_DarkHyruleCastle_24() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade5() { -} - -u32 sub_unk3_DarkHyruleCastle_25() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade6() { -} - -u32 sub_unk3_DarkHyruleCastle_26() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade7() { -} - -u32 sub_unk3_DarkHyruleCastle_27() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade8() { -} - -u32 sub_unk3_DarkHyruleCastle_28(void) { - if (CheckLocalFlag(0x79)) { - gRoomVars.field_0x6c[2] = 0; - } - return 1; -} - -extern EntityData gUnk_080ECFCC; - -void sub_StateChange_DarkHyruleCastle_28(void) { - if (CheckLocalFlag(0x79)) { - sub_0807BB98(0x90, 1, 1, 5); - LoadRoomEntityList(&gUnk_080ECFCC); - gArea.pMusicIndex = gArea.musicIndex; - } -} - -u32 sub_unk3_DarkHyruleCastle_29() { - return 1; -} - -void sub_StateChange_Dojos_ToGreatblade9() { -} - -u32 sub_unk3_DarkHyruleCastle_30() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade0() { -} - -extern u32 gUnk_080ED1E4; - -u32 sub_unk3_DarkHyruleCastle_31(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080ED1E4; - gRoomVars.field_0x6c[2] = 0; - } - return 1; -} - -void sub_StateChange_DarkHyruleCastle_31(void) { - if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } -} - -u32 sub_unk3_DarkHyruleCastle_32() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade1() { -} - -u32 sub_unk3_DarkHyruleCastle_33() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade2() { -} - -u32 sub_unk3_DarkHyruleCastle_34() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade3() { -} - -u32 sub_unk3_DarkHyruleCastle_35() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade4() { -} - -u32 sub_unk3_DarkHyruleCastle_36() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade5() { -} - -u32 sub_unk3_DarkHyruleCastle_37() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade6() { -} - -u32 sub_unk3_DarkHyruleCastle_38() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade7() { -} - -u32 sub_unk3_DarkHyruleCastle_39() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade8() { -} - -u32 sub_unk3_DarkHyruleCastle_40() { - return 1; -} - -void sub_StateChange_Dojos_ToScarblade9() { -} - -u32 sub_unk3_DarkHyruleCastle_41() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave0() { -} - -u32 sub_unk3_DarkHyruleCastle_42() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave1() { -} - -u32 sub_unk3_DarkHyruleCastle_43() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave2() { -} - -u32 sub_unk3_DarkHyruleCastle_44() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave3() { -} - -u32 sub_unk3_DarkHyruleCastle_45() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave4() { -} - -u32 sub_unk3_DarkHyruleCastle_46() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave5() { -} - -u32 sub_unk3_DarkHyruleCastle_47() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave6() { -} - -u32 sub_unk3_DarkHyruleCastle_48() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave7() { -} - -u32 sub_unk3_DarkHyruleCastle_49() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave8() { -} - -u32 sub_unk3_DarkHyruleCastle_50() { - return 1; -} - -void sub_StateChange_GoronCave_StairsToCave9() { -} - -u32 sub_unk3_DarkHyruleCastle_51() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk0() { -} - -u32 sub_unk3_DarkHyruleCastle_52() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk1() { -} - -u32 sub_unk3_DarkHyruleCastle_53(void) { - if (CheckLocalFlag(0x79)) { - gRoomVars.field_0x6c[2] = 0; - gRoomVars.field_0x6c[0] = 0; - } - return 1; -} - -extern EntityData gUnk_080EE314; - -void sub_StateChange_DarkHyruleCastle_53(void) { - if (CheckLocalFlag(0x79)) { - sub_0807BB98(3, 2, 5, 1); - LoadRoomEntityList(&gUnk_080EE314); - gArea.pMusicIndex = gArea.musicIndex; - } -} - -u32 sub_unk3_DarkHyruleCastle_54() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk2() { -} - -u32 sub_unk3_DarkHyruleCastle_55(void) { - if (CheckLocalFlag(0x79)) { - gRoomVars.field_0x6c[2] = 0; - } - return 1; -} - -extern EntityData gUnk_080EE5DC; - -void sub_StateChange_DarkHyruleCastle_55(void) { - if (CheckLocalFlag(0x79)) { - sub_0807BB98(0x392, 2, 2, 5); - LoadRoomEntityList(&gUnk_080EE5DC); - gArea.pMusicIndex = gArea.musicIndex; - } -} - -u32 sub_unk3_DarkHyruleCastle_56() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk3() { -} - -u32 sub_unk3_DarkHyruleCastle_57() { - return 1; -} - -extern EntityData gUnk_080EE71C; - -void sub_StateChange_DarkHyruleCastle_57(void) { - if (CheckLocalFlag(1)) { - LoadRoomEntityList(&gUnk_080EE71C); - } -} - -u32 sub_unk3_DarkHyruleCastle_58() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk4() { -} - -ASM_FUNC("asm/non_matching/sub_unk3_HyruleTown_0.inc", u32 sub_unk3_HyruleTown_0(void)) - -extern EntityData gUnk_080EEB6C; -extern EntityData gUnk_080EEB8C; -extern EntityData gUnk_080EE88C; -extern EntityData gUnk_080EE8FC; -extern EntityData gUnk_080EE91C; -extern EntityData gUnk_080EECBC; -extern EntityData gUnk_080EE93C; -extern EntityData gUnk_080EE95C; -extern EntityData gUnk_080EE97C; -extern EntityData gUnk_080EE9BC; -extern EntityData gUnk_080EE99C; -extern EntityData gUnk_080EE9DC; -extern EntityData gUnk_080EEA3C; -extern EntityData gUnk_080EEA1C; -extern EntityData gUnk_080EE9FC; -extern EntityData gUnk_080EEA5C; -extern EntityData gUnk_080EEABC; -extern EntityData gUnk_080EEA7C; -extern EntityData gUnk_080EEA9C; -extern EntityData gUnk_080EEBAC; - -void sub_StateChange_HyruleTown_0(void) { - sub_08054570(); - TryLoadPrologueHyruleTown(); -#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) - SetTileType(0x176, 0x66b, 1); -#endif - if (gSave.global_progress == 1) { - sub_0801D000(0); - } else { - sub_08018C58(0xdb4); - if (!CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE04_DANRO)) { - LoadRoomEntityList(&gUnk_080EEB6C); - } - if (!CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE06_DANRO)) { - LoadRoomEntityList(&gUnk_080EEB8C); - } - - if ((!GetInventoryValue(ITEM_KINSTONE_BAG)) && CheckGlobalFlag(LV1_CLEAR)) { - LoadRoomEntityList(&gUnk_080EE88C); - } - if (!CheckKinstoneFused(0x28)) { - LoadRoomEntityList(&gUnk_080EE8FC); - } - if (CheckKinstoneFused(0x33)) { - LoadRoomEntityList(&gUnk_080EE91C); - } - if (CheckGlobalFlag(MACHI_MACHIHOKORI)) { - LoadRoomEntityList(&gUnk_080EE93C); - } else { - LoadRoomEntityList(&gUnk_080EECBC); - } - if (CheckKinstoneFused(0x1b) && (gSave.global_progress > 3)) { - if (!(CheckGlobalFlag(NEW_HOUSE_DIN) || CheckGlobalFlag(NEW_HOUSE_NAYRU) || - CheckGlobalFlag(NEW_HOUSE_FARORE))) { - if (!(CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || - CheckGlobalFlag(RENTED_HOUSE_FARORE))) { - LoadRoomEntityList(&gUnk_080EE95C); - } else { - if (!CheckGlobalFlag(TATEKAKE_HOUSE)) { - LoadRoomEntityList(&gUnk_080EE97C); - } else { - LoadRoomEntityList(&gUnk_080EE9BC); - } - } - } else { - LoadRoomEntityList(&gUnk_080EE99C); - } - } - if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { - LoadRoomEntityList(&gUnk_080EE9FC); - } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { - LoadRoomEntityList(&gUnk_080EEA1C); - } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { - LoadRoomEntityList(&gUnk_080EEA3C); - } else { - LoadRoomEntityList(&gUnk_080EE9DC); - } - if ((gSave.global_progress > 4) && !CheckKinstoneFused(0xb) && - (CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || - CheckGlobalFlag(RENTED_HOUSE_FARORE))) { - LoadRoomEntityList(&gUnk_080EEA5C); - } - // rocs cape -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0xcd) && GetInventoryValue(ITEM_ROCS_CAPE)) { -#else - if (!CheckLocalFlag(0xd0) && GetInventoryValue(ITEM_ROCS_CAPE)) { -#endif - LoadRoomEntityList(&gUnk_080EEABC); - } - if ((gSave.global_progress > 3) && CheckGlobalFlag(INLOCK)) { - LoadRoomEntityList(&gUnk_080EEA7C); - } - if ((gSave.global_progress < 6) && !CheckGlobalFlag(MIZUKAKI_START)) { - LoadRoomEntityList(&gUnk_080EEA9C); - } - if ((gSave.windcrests & 0x8000000) == 0) { - LoadRoomEntityList(&gUnk_080EEBAC); - } - sub_0804E150(); - } -} - -void sub_unk1_HyruleTown_8(void) { - if ((gSave.windcrests & 0x8000000) == 0) { - LoadRoomEntityList(&gUnk_080EEBAC); - } -} - -ASM_FUNC("asm/non_matching/sub_0804E150.inc", void sub_0804E150(void)) - -u32 sub_unk3_HyruleTownMinishCaves_Entrance() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_Entrance() { -} - -u32 sub_unk3_HyruleTownMinishCaves_NorthRoom() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_NorthRoom() { -} - -u32 sub_unk3_HyruleTownMinishCaves_PacciJump() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_PacciJump() { -} - -u32 sub_unk3_HyruleTownMinishCaves_MulldozerFight() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_MulldozerFight() { -} - -u32 sub_unk3_HyruleTownMinishCaves_WestChest() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_WestChest() { -} - -u32 sub_unk3_HyruleTownMinishCaves_Flippers() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_Flippers() { -} - -u32 sub_unk3_HyruleTownMinishCaves_Librari() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_Librari() { -} - -u32 sub_unk3_HyruleTownMinishCaves_WestFrozenChest() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_WestFrozenChest() { -} - -u32 sub_unk3_HyruleTownMinishCaves_CrossIntersection() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_CrossIntersection() { -} - -u32 sub_unk3_HyruleTownMinishCaves_SoutheastCorner() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_SoutheastCorner() { -} - -u32 sub_unk3_HyruleTownMinishCaves_Entrance2() { - return 1; -} - -void sub_StateChange_HyruleTownMinishCaves_Entrance2() { -} - -u32 sub_unk3_HyruleTownUnderground_Main() { - return 1; -} - -void sub_StateChange_HyruleTownUnderground_Main() { -} - -u32 sub_unk3_HyruleTownUnderground_Well() { - return 1; -} - -void sub_StateChange_HyruleTownUnderground_Well() { -} - -extern u32 gUnk_080F09A0; - -u32 sub_unk3_CastleGarden_Main(void) { - if (GetInventoryValue(ITEM_FOURSWORD)) { - gRoomVars.field_0x6c[1] = &gUnk_080F09A0; - } - return 1; -} - -extern EntityData gUnk_080F0650; -extern EntityData gUnk_080F0800; -extern EntityData gUnk_080F08F0; -extern EntityData gUnk_080F0850; -extern EntityData gUnk_080F0870; -extern EntityData gUnk_080F0890; -extern EntityData gUnk_080F0920; - -void sub_StateChange_CastleGarden_Main(void) { - if (!CheckGlobalFlag(TABIDACHI)) { - LoadRoomEntityList(&gUnk_080F0650); -#ifdef EU - gArea.pMusicIndex = BGM_FESTIVAL_APPROACH; -#else - gArea.pMusicIndex = BGM_BEANSTALK; - SetGlobalFlag(CASTLE_BGM); - } else { - if (CheckGlobalFlag(CASTLE_BGM)) { -#if defined(JP) || defined(DEMO_JP) - gArea.pMusicIndex = gArea.musicIndex; -#else - gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; -#endif - } -#endif - } -#if defined(JP) || defined(DEMO_JP) || defined(EU) - if (!CheckLocalFlag(0x9b)) { -#else - if (!CheckLocalFlag(0x9c)) { -#endif - LoadRoomEntityList(&gUnk_080F0800); - SetTileType(0x4072, 600, 1); - SetTileType(0x4072, 0x298, 1); - SetTileType(0x4072, 0x266, 1); - SetTileType(0x4072, 0x2a6, 1); - } else { - if (!GetInventoryValue(ITEM_FOURSWORD)) { - LoadRoomEntityList(&gUnk_080F08F0); - SetTileType(0x4072, 0x9e, 1); - SetTileType(0x4072, 0x9f, 1); - SetTileType(0x4072, 0xa0, 1); - } - LoadRoomEntityList(&gUnk_080F0850); - if (!GetInventoryValue(ITEM_WATER_ELEMENT)) { - LoadRoomEntityList(&gUnk_080F0870); - } else { - LoadRoomEntityList(&gUnk_080F0890); - } - SetTileType(0x4072, 600, 1); - SetTileType(0x4072, 0x298, 1); -#if defined(JP) || defined(DEMO_JP) || defined(EU) - if (CheckLocalFlag(0x11)) { -#else - if (CheckLocalFlag(0x10)) { -#endif - LoadRoomEntityList(&gUnk_080F0920); -#if defined(JP) || defined(DEMO_JP) || defined(EU) - ClearLocalFlag(0x11); -#else - ClearLocalFlag(0x10); -#endif - } - } - sub_080AF284(); -} - -u32 sub_unk3_SimonsSimulation_Main() { - ClearLocalFlag(1); - return 1; -} - -extern u8* gUnk_080F0D58[4]; -extern Entity* gUnk_080F0CB8[15]; -extern u8* gUnk_080F0E08[]; -extern struct { - u32 unk_00; - u32 unk_04; -} gUnk_080F0E1C[]; - -void sub_StateChange_SimonsSimulation_Main() { - u32 r; - u32 index; - u32 tmp; - tmp = CheckGlobalFlag(LV4_CLEAR); - index = BOOLCAST(tmp); - if (CheckGlobalFlag(LV5_CLEAR)) { - index = 2; - } - if (CheckGlobalFlag(GAMECLEAR)) { - index = 3; - } - r = Random(); - index = gUnk_080F0D58[index][r & 0x1f]; - LoadRoomEntityList((EntityData*)gUnk_080F0CB8[index & 0xF]); - index >>= 4; - r >>= 8; - index = gUnk_080F0E08[index][r & 0x1F]; - if (!CheckLocalFlag(0xC6)) { - SetLocalFlag(0xC6); - index = 0xE; - } - sub_0804B3C4(&gUnk_080F0E1C[index]); - SoundReq(SONG_STOP_BGM); -} - -u32 sub_unk3_HouseInteriors2_Stranger() { - return 1; -} - -extern EntityData gUnk_080F1C68; -extern EntityData gUnk_080F1C88; - -void sub_StateChange_HouseInteriors2_Stranger(void) { - if (!CheckGlobalFlag(POWERGLOVE_HINT)) { - LoadRoomEntityList(&gUnk_080F1C68); - } else { - LoadRoomEntityList(&gUnk_080F1C88); - } -} - -u32 sub_unk3_HouseInteriors2_WestOracle() { - return 1; -} - -extern EntityData gUnk_080F1D90; -extern EntityData gUnk_080F1DB0; -extern EntityData gUnk_080F1DD0; - -void sub_StateChange_HouseInteriors2_WestOracle(void) { - if (CheckGlobalFlag(NEW_HOUSE_DIN)) { - LoadRoomEntityList(&gUnk_080F1D90); - } else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) { - LoadRoomEntityList(&gUnk_080F1DB0); - } else if (CheckGlobalFlag(NEW_HOUSE_FARORE)) { - LoadRoomEntityList(&gUnk_080F1DD0); - } -} - -u32 sub_unk3_HouseInteriors2_2() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk5() { -} - -u32 sub_unk3_HouseInteriors2_3() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk6() { -} - -u32 sub_unk3_HouseInteriors2_DrLeft() { - return 1; -} - -extern EntityData gUnk_080F2174; -extern EntityData gUnk_080F2194; -extern EntityData gUnk_080F21B4; - -void sub_StateChange_HouseInteriors2_DrLeft(void) { - LoadRoomEntityList(&gUnk_080F2174); - if (!GetInventoryValue(ITEM_QST_BOOK2) && CheckGlobalFlag(MIZUKAKI_HARIFALL)) { - LoadRoomEntityList(&gUnk_080F2194); - } - if (gScreenTransition.player_status.spawn_type == PL_SPAWN_MINISH) { - LoadRoomEntityList(&gUnk_080F21B4); - } -} - -u32 sub_unk3_HouseInteriors2_Romio() { - return 1; -} - -extern EntityData gUnk_080F23BC; -extern EntityData gUnk_080F238C; -extern EntityData gUnk_additional_c_HouseInteriors2_Romio; - -void sub_StateChange_HouseInteriors2_Romio(void) { - if (gSave.global_progress > 7) { - LoadRoomEntityList(&gUnk_080F23BC); - } - if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START)) { - LoadRoomEntityList(&gUnk_080F238C); - } else { - LoadRoomEntityList(&gUnk_additional_c_HouseInteriors2_Romio); - } -} - -u32 sub_unk3_HouseInteriors2_Julietta() { - return 1; -} - -extern EntityData gUnk_080F2570; -extern EntityData gUnk_080F2590; -extern EntityData gUnk_080F25C0; -extern EntityData gUnk_080F2600; - -void sub_StateChange_HouseInteriors2_Julietta(void) { - switch (gSave.global_progress) { - case 0: - case 2: - case 4: - LoadRoomEntityList(&gUnk_080F2570); - break; - case 1: - case 3: - break; - case 5: - if (!GetInventoryValue(ITEM_FLIPPERS)) { - if (!CheckGlobalFlag(MIZUKAKI_START)) { - LoadRoomEntityList(&gUnk_080F2570); - break; - } - if (!GetInventoryValue(0x39)) { - LoadRoomEntityList(&gUnk_080F25C0); - } - } else { - LoadRoomEntityList(&gUnk_080F2590); - } - break; - case 8: - case 9: - LoadRoomEntityList(&gUnk_080F2600); - case 6: - case 7: - LoadRoomEntityList(&gUnk_080F2590); - } -} - -u32 sub_unk3_HouseInteriors2_Percy() { - return 1; -} - -extern EntityData gUnk_additional_9_HouseInteriors2_Percy; -extern EntityData gUnk_080F2860; -extern EntityData gUnk_additional_a_HouseInteriors2_Percy; -extern EntityData gUnk_080F27D8; -extern EntityData gUnk_080F2798; - -void sub_StateChange_HouseInteriors2_Percy(void) { - if (CheckKinstoneFused(0x21)) { - if (!CheckLocalFlag(0x42)) { - if (!CheckLocalFlag(0x43)) { - LoadRoomEntityList(&gUnk_additional_9_HouseInteriors2_Percy); - LoadRoomTileEntities(&gUnk_080F2860); - } else { - LoadRoomEntityList(&gUnk_additional_a_HouseInteriors2_Percy); - } - } else if (!CheckLocalFlag(0x3f)) { - LoadRoomEntityList(&gUnk_080F27D8); - } else { - LoadRoomEntityList(&gUnk_080F2798); - } - } -} - -u32 sub_unk3_HouseInteriors2_EastOracle() { - return 1; -} - -extern EntityData gUnk_080F28D4; -extern EntityData gUnk_080F28F4; -extern EntityData gUnk_080F2914; - -void sub_StateChange_HouseInteriors2_EastOracle(void) { - if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { - LoadRoomEntityList(&gUnk_080F28D4); - } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { - LoadRoomEntityList(&gUnk_080F28F4); - } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { - LoadRoomEntityList(&gUnk_080F2914); - } -} - -u32 sub_unk3_HouseInteriors2_A() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk7() { -} - -u32 sub_unk3_HouseInteriors2_B() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk8() { -} - -u32 sub_unk3_HouseInteriors2_Cucco() { - return 1; -} - -void sub_StateChange_Ruins_Beanstalk9() { -} - -u32 sub_unk3_HouseInteriors2_LinksHouseEntrance() { - return 1; -} - -extern EntityData gUnk_080F2E2C; - -void sub_StateChange_HouseInteriors2_LinksHouseEntrance(void) { - if (!CheckGlobalFlag(OUTDOOR)) { - gArea.musicIndex = gArea.pMusicIndex; - SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); - } - if (!CheckGlobalFlag(START)) { - LoadRoomEntityList(&gUnk_080F2E2C); - } -} - -u32 sub_unk3_HouseInteriors2_LinksHouseSmith() { - return 1; -} - -extern EntityData gUnk_080F2E94; -extern EntityData gUnk_080F2EC4; - -void sub_StateChange_HouseInteriors2_LinksHouseSmith(void) { - if (!CheckGlobalFlag(OUTDOOR)) { - gArea.musicIndex = gArea.pMusicIndex; - SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); - } - if (!CheckGlobalFlag(START)) { - LoadRoomEntityList(&gUnk_080F2E94); - } else { - LoadRoomEntityList(&gUnk_080F2EC4); - } -} - -u32 sub_unk3_HouseInteriors2_Dampe() { - return 1; -} - -extern EntityData gUnk_080F2FD4; - -void sub_StateChange_HouseInteriors2_Dampe(void) { - if (!CheckLocalFlag(0x69) || GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) > 1) { - LoadRoomEntityList(&gUnk_080F2FD4); - } -} - -u32 sub_unk3_HouseInteriors2_Stockwell() { - return 1; -} - -extern EntityData gUnk_080F30CC; - -void sub_StateChange_HouseInteriors2_Stockwell(void) { - if ((GetInventoryValue(ITEM_QST_DOGFOOD) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) && (gPlayerState.flags & PL_MINISH) == 0) { - LoadRoomEntityList(&gUnk_080F30CC); - } -} - -u32 sub_unk3_HouseInteriors2_LinksHouseBedroom() { - return 1; -} - -extern EntityData gUnk_080F31D8; -extern u32 script_08009B30; - -void sub_StateChange_HouseInteriors2_LinksHouseBedroom(void) { - if (!CheckGlobalFlag(START) && !CheckLocalFlag(0x46)) { - sub_080A71C4(5, 1, 4, 4); - gUpdateVisibleTiles = 0; - DoFade(5, 256); - sub_080751E8(0, 6, &script_08009B30); - } - if (!CheckGlobalFlag(OUTDOOR)) { - gArea.musicIndex = gArea.pMusicIndex; - SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); - } - if ((gPlayerState.flags & 8) == 0) { - LoadRoomEntityList(&gUnk_080F31D8); - } -} - -extern u32 script_08009E58; - -void sub_0804E864(void) { - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x90; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; - sub_080751E8(1, 6, &script_08009E58); - ModHealth(0xa0); -} - -u32 sub_unk3_HouseInteriors4_Carpenter() { - return 1; -} - -extern EntityData gUnk_080F3260; - -void sub_StateChange_HouseInteriors4_Carpenter(void) { - if (GetInventoryValue(ITEM_PACCI_CANE)) { - LoadRoomEntityList(&gUnk_080F3260); - SetTileType(0x4072, 0x202, 1); - SetTileType(0x4072, 0x242, 1); - SetTileType(0x4072, 0x204, 1); - SetTileType(0x4072, 0x244, 1); - } -} - -u32 sub_unk3_HouseInteriors4_Swiftblade() { - return 1; -} - -void sub_StateChange_HouseInteriors4_Swiftblade() { - sub_08054564(); -} - -u32 sub_unk3_HouseInteriors4_RanchHouseWest() { - return 1; -} - -extern EntityData gUnk_080F36FC; -extern EntityData gUnk_080F3604; - -void sub_StateChange_HouseInteriors4_RanchHouseWest(void) { - if (!CheckGlobalFlag(INLOCK)) { - LoadRoomEntityList(&gUnk_080F36FC); - } else if (gSave.global_progress < 4) { - LoadRoomEntityList(&gUnk_080F3604); - } -} - -u32 sub_unk3_HouseInteriors4_RanchHouseEast() { - return 1; -} - -extern EntityData gUnk_080F37D0; - -void sub_StateChange_HouseInteriors4_RanchHouseEast(void) { - if (CheckGlobalFlag(INLOCK)) { - LoadRoomEntityList(&gUnk_080F37D0); - } -} - -u32 sub_unk3_HouseInteriors4_FarmHouse() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites0() { -} - -u32 sub_unk3_HouseInteriors4_Mayor() { - return 1; -} - -extern EntityData gUnk_080F3A48; - -void sub_StateChange_HouseInteriors4_Mayor(void) { - if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(ITEM_QST_BOOK3)) { - LoadRoomEntityList(&gUnk_080F3A48); - } - gScreenTransition.player_status.field_0x20 = 0xf28; - gScreenTransition.player_status.field_0x22 = 0x82d; -} - -extern u32 Enemies_LakeHylia_Main; -extern u32 gUnk_080F3EA4; - -u32 sub_unk3_LakeHylia_Main(void) { - if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) { - gRoomVars.field_0x6c[2] = &gUnk_080F3EA4; - } else { - gRoomVars.field_0x6c[2] = &Enemies_LakeHylia_Main; - } - return 1; -} - -extern EntityData gUnk_080F3C64; -extern EntityData gUnk_080F3C94; -extern EntityData gUnk_080F3C44; - -void sub_StateChange_LakeHylia_Main(void) { - if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) { - LoadRoomEntityList(&gUnk_080F3C64); - } - if (CheckKinstoneFused(0x12)) { - LoadRoomEntityList(&gUnk_080F3C94); - } - if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { - LoadRoomEntityList(&gUnk_080F3C44); - } - SetTile(0x4091, 0x590, 1); - SetTile(0x4091, 0x591, 1); - SetTile(0x4091, 0x592, 1); - SetTile(0x4091, 0x593, 1); - SetTile(0x4091, 0x594, 1); - SetTile(0x4091, 0x5d0, 1); - SetTile(0x4091, 0x610, 1); - SetTile(0x4091, 0x650, 1); - SetTile(0x4091, 0x5d4, 1); - SetTile(0x4091, 0x614, 1); - SetTile(0x4091, 0x654, 1); - SetTile(0x4091, 0x690, 1); - SetTile(0x4091, 0x691, 1); - SetTile(0x4091, 0x692, 1); - SetTile(0x4091, 0x693, 1); - SetTile(0x4091, 0x694, 1); -} - -u32 sub_unk3_LakeHylia_Beanstalk() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites1() { -} - -u32 sub_unk3_LakeWoodsCave_Main() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites2() { -} - -u32 sub_unk3_HyliaDigCaves_Middle() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites3() { -} - -u32 sub_unk3_HyliaDigCaves_North() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites4() { -} - -u32 sub_unk3_CastorWildsDigCave_Main() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites5() { -} - -u32 sub_unk3_HyruleDigCaves_Main() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites6() { -} - -u32 sub_unk3_CrenelDigCave_Main() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites7() { -} - -u32 sub_unk3_DigCaves1_HyruleFieldFarm() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites8() { -} - -u32 sub_unk3_DigCaves1_TrilbyHighlands() { - return 1; -} - -void sub_StateChange_Ruins_LadderToTektites9() { -} - -u32 sub_unk3_VeilFallsDigCave_Main() { - return 1; -} - -void sub_StateChange_VeilFallsDigCave_Main() { -} - -u32 sub_unk3_OuterFortressOfWinds_EntranceHall(void) { - gArea.areaMetadata |= 0x48; - return 1; -} - -void sub_StateChange_OuterFortressOfWinds_EntranceHall() { -} - -u32 sub_unk3_OuterFortressOfWinds_2F(void) { - gArea.areaMetadata |= 0x48; - return 1; -} - -void sub_StateChange_OuterFortressOfWinds_2F() { -} - -u32 sub_unk3_OuterFortressOfWinds_3F(void) { - gArea.areaMetadata |= 0x48; - return 1; -} - -void sub_StateChange_OuterFortressOfWinds_3F() { -} - -u32 sub_unk3_OuterFortressOfWinds_MoleMitts(void) { - sub_0801DD58(0x58, 5); - gArea.areaMetadata |= 0x48; - return 1; -} - -void sub_StateChange_OuterFortressOfWinds_MoleMitts() { -} - -u32 sub_unk3_OuterFortressOfWinds_SmallKey(void) { - sub_0801DD58(0x58, 6); - gArea.areaMetadata |= 0x48; - return 1; -} - -void sub_StateChange_OuterFortressOfWinds_SmallKey() { -} - -extern u32 gUnk_080F4EB0; - -u32 sub_unk3_MinishWoods_Main(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080F4EB0; - gRoomVars.field_0x6c[2] = NULL; - } - return 1; -} - -extern EntityData gUnk_080F4D50; -extern EntityData gUnk_080F4DB0; -extern EntityData gUnk_080F4DD0; -extern EntityData gUnk_080F4DF0; -extern EntityData gUnk_080F4F10; -extern EntityData gUnk_080F4E10; - -void sub_StateChange_MinishWoods_Main(void) { - if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } - if (!CheckGlobalFlag(EZERO_1ST)) { - LoadRoomEntityList(&gUnk_080F4D50); - } -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x3d)) { - if (!CheckLocalFlag(0x3a)) { -#else - if (!CheckLocalFlag(0x3e)) { - if (!CheckLocalFlag(0x3b)) { -#endif - LoadRoomEntityList(&gUnk_080F4DB0); - } else { - LoadRoomEntityList(&gUnk_080F4DD0); - } - LoadRoomEntityList(&gUnk_080F4DF0); - } - if (CheckKinstoneFused(0x4e)) { - LoadRoomEntityList(&gUnk_080F4F10); - } - if ((s32)gSave.windcrests > -1) { - LoadRoomEntityList(&gUnk_080F4E10); - } -#ifdef DEMO_USA - SetTileType(0x177, 0x5b4, 1); - SetTileType(0x177, 0x5f4, 1); -#endif -} - -void sub_unk1_MinishWoods_Main(void) { - if ((s32)gSave.windcrests > -1) { - LoadRoomEntityList(&gUnk_080F4E10); - } -} - -u32 sub_unk3_Empty_Main() { - return 1; -} - -void sub_StateChange_Empty_Main() { -} - -extern u32 gUnk_080F5348; - -u32 sub_unk3_SanctuaryEntrance_Main(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080F5348; - gRoomVars.field_0x6c[7] = sub_0804ED18; - gRoomVars.field_0x6c[2] = NULL; - } - return 1; -} - -extern EntityData gUnk_080F5328; -extern EntityData gUnk_080F5308; - -void sub_StateChange_SanctuaryEntrance_Main(void) { - if (GetInventoryValue(ITEM_GREEN_SWORD)) { - LoadRoomEntityList(&gUnk_080F5328); -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x15)) { -#else - if (!CheckLocalFlag(0x14)) { -#endif - LoadRoomEntityList(&gUnk_080F5308); - } - } -} - -void sub_0804ED18(void) { - gArea.pMusicIndex = gArea.musicIndex; -} - -u32 sub_unk3_Sanctuary_Hall() { - return 1; -} - -void sub_StateChange_Sanctuary_Hall(void) { - sub_080AF2E4(); - if (CheckGlobalFlag(SEIIKI_BGM)) { - gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; - } -} - -u32 sub_unk3_Sanctuary_Main() { - return 1; -} - -extern EntityData gUnk_080F54E8; -extern EntityData gUnk_080F5508; -extern EntityData gUnk_080F5558; -extern EntityData gUnk_080F5598; -extern EntityData gUnk_080F55D8; -extern EntityData gUnk_080F5528; -extern EntityData gUnk_080F5578; -extern EntityData gUnk_080F55B8; - -void sub_StateChange_Sanctuary_Main(void) { - if (!CheckLocalFlag(0x79)) { - LoadRoomEntityList(&gUnk_080F54E8); - } - if (!CheckLocalFlag(0x7a)) { - if (GetInventoryValue(ITEM_GREEN_SWORD) && !GetInventoryValue(ITEM_RED_SWORD) && GetInventoryValue(ITEM_EARTH_ELEMENT) && GetInventoryValue(ITEM_FIRE_ELEMENT)) { - LoadRoomEntityList(&gUnk_080F5508); - } - } else { - if (!CheckLocalFlag(0x7b)) { - if (GetInventoryValue(ITEM_RED_SWORD) && !GetInventoryValue(ITEM_BLUE_SWORD) && GetInventoryValue(ITEM_WATER_ELEMENT)) { - LoadRoomEntityList(&gUnk_080F5558); - } - } else { - if (!CheckLocalFlag(0x7c)) { - if (!GetInventoryValue(ITEM_FOURSWORD) && GetInventoryValue(ITEM_WIND_ELEMENT)) { - LoadRoomEntityList(&gUnk_080F5598); - } - } else { - LoadRoomEntityList(&gUnk_080F55D8); - } - } - } - if (CheckLocalFlag(0x7a)) { - LoadRoomEntityList(&gUnk_080F5528); - } - if (CheckLocalFlag(0x7b)) { - LoadRoomEntityList(&gUnk_080F5578); - } - if (CheckLocalFlag(0x7c)) { - LoadRoomEntityList(&gUnk_080F55B8); - } - if (CheckGlobalFlag(SEIIKI_BGM)) { - gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; - } -} - -u32 sub_unk3_Sanctuary_StainedGlass() { - return 1; -} - -extern EntityData gUnk_080F5660; - -void sub_StateChange_Sanctuary_StainedGlass(void) { - if (!CheckLocalFlag(0x78) && CheckLocalFlag(0x7c)) { - LoadRoomEntityList(&gUnk_080F5660); - } - if (CheckGlobalFlag(SEIIKI_BGM)) { - gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; - } -} - -u32 sub_unk3_HouseInteriors3_StockwellShop() { - return 1; -} - -extern EntityData gUnk_080F5758; -extern EntityData gUnk_080F57E8; -extern EntityData gUnk_080F57A8; -extern EntityData gUnk_080F57C8; -extern EntityData gUnk_080F5888; -extern EntityData gUnk_080F58A8; -extern EntityData gUnk_080F5868; -extern EntityData gUnk_080F5828; -extern EntityData gUnk_080F5848; -extern EntityData gUnk_080F5788; - -void sub_StateChange_HouseInteriors3_StockwellShop(void) { - LoadRoomEntityList(&gUnk_080F5758); - if (!GetInventoryValue(0x36) && CheckLocalFlagByBank(0x200, 0x8f)) { - LoadRoomEntityList(&gUnk_080F57E8); - } - if (!CheckLocalFlag(0x55)) { - LoadRoomEntityList(&gUnk_080F57A8); - } else { - if (gBombBagSizes[gSave.stats.bombBagType] >= 30) { - LoadRoomEntityList(&gUnk_080F57C8); - } - if (!GetInventoryValue(ITEM_BOOMERANG) && !GetInventoryValue(ITEM_MAGIC_BOOMERANG)) { - LoadRoomEntityList(&gUnk_080F5888); -#ifndef EU - } else { - if (!CheckLocalFlag(0xcd)) { - LoadRoomEntityList(&gUnk_080F58A8); - } -#endif - } - } - if (GetInventoryValue(ITEM_BOW) || CheckGlobalFlag(LV3_CLEAR)) { - LoadRoomEntityList(&gUnk_080F5868); - if (!CheckLocalFlag(0x56)) { - LoadRoomEntityList(&gUnk_080F5828); - } else { - LoadRoomEntityList(&gUnk_080F5848); - } - } - if (gSave.stats.filler3[0] == 0) { - LoadRoomEntityList(&gUnk_080F5788); - } -} - -u32 sub_unk3_HouseInteriors3_Cafe() { - return 1; -} - -void sub_StateChange_HouseInteriors3_Cafe() { -} - -u32 sub_unk3_HouseInteriors3_RemShoeShop() { - return 1; -} - -extern EntityData gUnk_080F5B3C; - -void sub_StateChange_HouseInteriors3_RemShoeShop(void) { -#ifndef EU - if (GetInventoryValue(0x38) == 1) { - LoadRoomEntityList(&gUnk_080F5B3C); - } -#endif -} - -u32 sub_unk3_HouseInteriors3_Bakery() { - return 1; -} -void sub_StateChange_HouseInteriors3_Bakery() { -} - -u32 sub_unk3_HouseInteriors3_Simon(void) { - if (CheckGlobalFlag(MAROYA_WAKEUP)) { - gScreenTransition.player_status.spawn_type = 5; - } - return 1; -} - -extern EntityData gUnk_080F5DD0; -extern u32 script_08011C50; - -void sub_StateChange_HouseInteriors3_Simon(void) { - if (gSave.global_progress > 7) { - LoadRoomEntityList(&gUnk_080F5DD0); - } - if (CheckGlobalFlag(MAROYA_WAKEUP)) { - sub_080751E8(1, 2, &script_08011C50); - } -} - -u32 sub_unk3_HouseInteriors3_FigurineHouse() { - return 1; -} - -extern EntityData gUnk_080F5E68; - -void sub_StateChange_HouseInteriors3_FigurineHouse(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlagByBank(0x100, 0xce)) { -#else - if (!CheckLocalFlagByBank(0x100, 0xd1)) { -#endif - LoadRoomEntityList(&gUnk_080F5E68); - } -} - -u32 sub_unk3_HouseInteriors3_BorlovEntrance() { - return 1; -} - -extern EntityData gUnk_additional_8_HouseInteriors3_BorlovEntrance; -extern EntityData gUnk_additional_9_HouseInteriors3_BorlovEntrance; -extern EntityData gUnk_additional_a_HouseInteriors3_BorlovEntrance; - -void sub_StateChange_HouseInteriors3_BorlovEntrance(void) { - if (gSave.global_progress > 4) { - LoadRoomEntityList(&gUnk_additional_8_HouseInteriors3_BorlovEntrance); - } - if (!CheckLocalFlag(0x92)) { - LoadRoomEntityList(&gUnk_additional_9_HouseInteriors3_BorlovEntrance); - } else { - LoadRoomEntityList(&gUnk_additional_a_HouseInteriors3_BorlovEntrance); - } -} - -u32 sub_unk3_HouseInteriors3_Carlov() { - return 1; -} - -void sub_StateChange_HouseInteriors3_Carlov() { -} - -u32 sub_unk3_HouseInteriors3_Borlov() { - return 1; -} - -void sub_StateChange_HouseInteriors3_Borlov() { -} - -u32 sub_unk3_WindTribeTower_Entrance(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByBank(0x100, 0xd9)) { -#else - if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByBank(0x100, 0xdc)) { -#endif - SetGlobalFlag(WARP_EVENT_END); - } - return 1; -} - -extern EntityData gUnk_080F61BC; - -void sub_StateChange_WindTribeTower_Entrance(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlagByBank(0x100, 0xd9)) { -#else - if (CheckLocalFlagByBank(0x100, 0xdc)) { -#endif - SetLocalFlag(0x90); - } - if (CheckKinstoneFused(0xf)) { - LoadRoomEntityList(&gUnk_080F61BC); - } - if (!CheckGlobalFlag(WARP_EVENT_END)) { - SetTileType(0x4072, 0x4c7, 1); - SetTileType(0x4072, 0x507, 1); - } - sub_08052CA4(8, 0, 0x1e8, 0x158); -} - -u32 sub_unk3_WindTribeTower_Floor2() { - return 1; -} - -extern EntityData gUnk_080F62E4; -extern EntityData gUnk_080F6324; - -void sub_StateChange_WindTribeTower_Floor2(void) { - if (!CheckGlobalFlag(WARP_EVENT_END)) { - LoadRoomEntityList(&gUnk_080F62E4); - } else { - if (CheckLocalFlag(99)) { - LoadRoomEntityList(&gUnk_080F6324); - } - } -} - -u32 sub_unk3_WindTribeTower_Floor3() { - return 1; -} - -void sub_StateChange_WindTribeTower_Floor3() { -} - -u32 sub_unk3_WindTribeTower_Floor4() { - return 1; -} - -extern EntityData gUnk_080F6564; -extern EntityData gUnk_080F6584; - -void sub_StateChange_WindTribeTower_Floor4(void) { - if (!CheckLocalFlag(0xb1)) { - LoadRoomEntityList(&gUnk_080F6564); - } else { - LoadRoomEntityList(&gUnk_080F6584); - } -} - -u32 sub_unk3_WindTribeTowerRoof_Main() { - return 1; -} - -extern EntityData gUnk_080F66AC; - -void sub_StateChange_WindTribeTowerRoof_Main(void) { - sub_0805B4D0(5); - if (CheckGlobalFlag(LV5_CLEAR) && !CheckLocalFlagByBank(0x100, 5)) { - LoadRoomEntityList(&gUnk_080F66AC); - } - sub_08052CA4(8, 0, 0x1e8, 0x158); -#ifndef EU - gArea.areaMetadata |= 0x80; -#endif -} - -u32 sub_unk3_Beanstalks_MountCrenel() { - return 1; -} - -void sub_StateChange_Beanstalks_MountCrenel() { -} - -u32 sub_unk3_Beanstalks_LakeHylia() { - return 1; -} - -void sub_StateChange_Beanstalks_LakeHylia() { -} - -u32 sub_unk3_Beanstalks_Ruins() { - return 1; -} - -void sub_StateChange_Beanstalks_Ruins() { -} - -u32 sub_unk3_Beanstalks_EasternHills() { - return 1; -} - -void sub_StateChange_Beanstalks_EasternHills() { -} - -u32 sub_unk3_Beanstalks_WesternWoods() { - return 1; -} - -void sub_StateChange_Beanstalks_WesternWoods() { -} - -u32 sub_unk3_Beanstalks_MountCrenelClimb() { - return 1; -} - -void sub_StateChange_Beanstalks_MountCrenelClimb() { -} - -u32 sub_unk3_Beanstalks_LakeHyliaClimb() { - return 1; -} - -void sub_StateChange_Beanstalks_LakeHyliaClimb() { -} - -u32 sub_unk3_Beanstalks_RuinsClimb() { - return 1; -} - -void sub_StateChange_Beanstalks_RuinsClimb() { -} - -u32 sub_unk3_Beanstalks_EasternHillsClimb() { - return 1; -} - -void sub_StateChange_Beanstalks_EasternHillsClimb() { -} - -u32 sub_unk3_Beanstalks_WesternWoodsClimb() { - return 1; -} - -void sub_StateChange_Beanstalks_WesternWoodsClimb() { -} - -u32 sub_unk3_HyruleField_WesternWoodSouth() { - return 1; -} - -void sub_StateChange_HyruleField_WesternWoodSouth() { - Manager18_Main(0); -} - -u32 sub_unk3_HyruleField_LinksHouseExterior(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x6b)) { -#else - if (!CheckLocalFlag(0x6d)) { -#endif - DoFade(7, 256); - } - SetGlobalFlag(OUTDOOR); - return 1; -} - -extern EntityData gUnk_080F70A8; -extern EntityData gUnk_080F70D8; -extern EntityData gUnk_080F7088; - -void sub_StateChange_HyruleField_LinksHouseExterior(void) { - Manager18_Main(NULL); -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x6b)) { -#else - if (!CheckLocalFlag(0x6d)) { -#endif - LoadRoomEntityList(&gUnk_080F70A8); - ClearGlobalFlag(ZELDA_CHASE); - } - if (!CheckGlobalFlag(TABIDACHI)) { - gArea.pMusicIndex = BGM_FESTIVAL_APPROACH; - } - if ((gSave.windcrests & 0x40000000) == 0) { - LoadRoomEntityList(&gUnk_080F70D8); - } - if (gSave.global_progress > 3) { - LoadRoomEntityList(&gUnk_080F7088); - } -} - -void sub_unk1_HyruleField_LinksHouseExterior(void) { - if ((gSave.windcrests & 0x40000000) == 0) { - LoadRoomEntityList(&gUnk_080F70D8); - } -} - -u32 sub_unk3_HyruleField_FromMinishWoods() { - return 1; -} - -void sub_StateChange_HyruleField_FromMinishWoods() { - Manager18_Main(NULL); -} - -u32 sub_unk3_HyruleField_FromMinishWoodsNorth() { - return 1; -} - -void sub_StateChange_HyruleField_FromMinishWoodsNorth() { - Manager18_Main(NULL); -} - -extern u32 gUnk_080F7680; - -u32 sub_unk3_HyruleField_Farmers(void) { - if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { - gRoomVars.field_0x6c[2] = &gUnk_080F7680; - } - return 1; -} - -extern EntityData gUnk_080F7500; -extern EntityData gUnk_080F7550; - -void sub_StateChange_HyruleField_Farmers(void) { - Manager18_Main(NULL); - if (gSave.global_progress > 3) { - LoadRoomEntityList(&gUnk_080F7500); - } - if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { - LoadRoomEntityList(&gUnk_080F7550); - SetTileType(0x4072, 0x311, 1); - SetTileType(0x4072, 0x351, 1); - SetTileType(0x4072, 0x3d9, 1); - SetTileType(0x4072, 0x419, 1); - } -} - -u32 sub_unk3_HyruleField_LonLonRanch() { - return 1; -} - -extern EntityData gUnk_080F77F0; -extern EntityData gUnk_080F77C0; -extern EntityData gUnk_080F7810; -extern EntityData gUnk_080F7860; -extern EntityData gUnk_080F78A0; - -void sub_StateChange_HyruleField_LonLonRanch(void) { - - Manager18_Main(0); - if (CheckLocalFlagByBank(0x200, 0x8f)) { - if (!CheckGlobalFlag(INLOCK)) { - LoadRoomEntityList(&gUnk_080F77C0); - } - } else if (GetInventoryValue(ITEM_EARTH_ELEMENT)) { - LoadRoomEntityList(&gUnk_080F77F0); - } - if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(ITEM_EARTH_ELEMENT)) { - LoadRoomEntityList(&gUnk_080F7810); - } - if (!CheckKinstoneFused(0x29)) { - LoadRoomEntityList(&gUnk_080F7860); - SetTile(0x4072, 0xd88, 1); - SetTile(0x4096, 0xdc8, 1); - } - if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { - LoadRoomEntityList(&gUnk_080F78A0); - } -} - -extern u32 gUnk_080F7CD0; -extern void sub_0804F5E8(); -extern u32 gUnk_080F7C80; -extern void sub_0804F4E4(); - -u32 sub_unk3_HyruleField_OutsideCastle(void) { - if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(0x11)) { - gRoomVars.field_0x6c[0] = &gUnk_080F7CD0; - gRoomVars.field_0x6c[7] = sub_0804F5E8; - } -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8a)) { -#else - if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8c)) { -#endif - gRoomVars.field_0x6c[0] = &gUnk_080F7C80; - gRoomVars.field_0x6c[7] = sub_0804F4E4; - gRoomVars.field_0x6c[2] = NULL; - } -#ifndef EU - if (CheckGlobalFlag(TABIDACHI)) { - ClearGlobalFlag(CASTLE_BGM); - } -#endif - return 1; -} - -void sub_0804F4E4() { - Manager18_Main(NULL); - sub_0804F578(); -} - -extern EntityData gUnk_080F7D70; - -void sub_StateChange_HyruleField_OutsideCastle(void) { - sub_0804F4E4(); -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x89)) { -#else - if (!CheckLocalFlag(0x8b)) { -#endif - LoadRoomEntityList(&gUnk_080F7D70); - SetTileType(0x174, 0x7a2, 1); - SetTileType(0x174, 0x7a3, 1); - SetTileType(0x174, 0x7a5, 1); - SetTileType(0x174, 0x7a6, 1); - SetTileType(0x174, 0x7a7, 1); - } - if (!CheckGlobalFlag(TABIDACHI)) { -#ifdef EU - gArea.pMusicIndex = 0x10; -#else - gArea.pMusicIndex = 0x13; -#endif - } -} - -extern EntityData gUnk_080F7DC0; - -void sub_0804F578(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (!CheckLocalFlag(0x8c)) { -#else - if (!CheckLocalFlag(0x8e)) { -#endif - LoadRoomEntityList(&gUnk_080F7DC0); - } else { - SetTileType(0x37, 0x94a, 1); - SetTileType(0x37, 0x94b, 1); - SetTileType(0x37, 0x94c, 1); - SetTileType(0x37, 0x98a, 1); - SetTileType(0x37, 0x98b, 1); - SetTileType(0x37, 0x98c, 1); - } -} - -void sub_0804F5E8(void) { - sub_0804F4E4(); - SetTileType(0x1d3, 0xbde, 1); - SetTileType(0x1d6, 0xbe2, 1); - SetTileType(0x1d4, 0xc1f, 1); - SetTileType(0x1d5, 0xc20, 1); - SetTileType(0x1d6, 0xc5e, 1); - SetTileType(0x4072, 0xb9b, 1); - SetTileType(0x4072, 0xbdb, 1); - SetTileType(0x4072, 0xaa4, 1); - SetTileType(0x4072, 0xae4, 1); -} - -void sub_0804F680(Entity* parent, s32 x, s32 y) { - Entity* fx; - - fx = CreateFx(parent, FX_DEATH, 0); - if (fx != NULL) { - fx->x.HALF.HI = gRoomControls.roomOriginX + x; - fx->y.HALF.HI = gRoomControls.roomOriginY + y; - } -} - -void sub_0804F6A8(Entity* this) { - sub_0804F680(this, 0x1d8, 0x108); - sub_0804F680(this, 0x218, 0x188); -} - -void sub_0804F6C8(Entity* this) { - sub_0804F680(this, 0x1e8, 0x108); - sub_0804F680(this, 0x208, 0x188); -} - -void sub_0804F6E8(Entity* this) { - sub_0804F680(this, 0x1f8, 0x108); - sub_0804F680(this, 0x258, 0x138); - sub_0804F680(this, 0x1f8, 0x188); - sub_0804F680(this, 0x198, 0x158); -} - -void sub_0804F724(Entity* this) { - sub_0804F680(this, 0x208, 0x108); - sub_0804F680(this, 0x258, 0x148); - sub_0804F680(this, 0x1e8, 0x188); - sub_0804F680(this, 0x198, 0x148); -} - -void sub_0804F760(Entity* this) { - sub_0804F680(this, 0x218, 0x108); - sub_0804F680(this, 0x258, 0x158); - sub_0804F680(this, 0x1d8, 0x188); - sub_0804F680(this, 0x198, 0x138); -} - -void sub_0804F79C(Entity* parent) { - Entity* fx; - - fx = CreateFx(parent, FX_BIG_EXPLOSION, 0); - if (fx != NULL) { - fx->spriteRendering.b3 = 0; - fx->x.HALF.HI = gRoomControls.roomOriginX + 0x1b8; - fx->y.HALF.HI = gRoomControls.roomOriginY + 0x148; - } - fx = CreateFx(parent, FX_BIG_EXPLOSION, 0); - if (fx != NULL) { - fx->spriteRendering.b3 = 0; - fx->x.HALF.HI = gRoomControls.roomOriginX + 0x238; - fx->y.HALF.HI = gRoomControls.roomOriginY + 0x148; - } -} - -void sub_0804F808(void) { - SetTileType(0x1d3, 0x41d, 1); - SetTileType(0x1d3, 0x621, 1); -} - -void sub_0804F830(void) { - SetTileType(0x1d4, 0x41e, 1); - SetTileType(0x1d4, 0x620, 1); -} - -void sub_0804F854(void) { - SetTileType(0x1d5, 0x41f, 1); - SetTileType(0x1d4, 0x4e5, 1); - SetTileType(0x1d5, 0x61f, 1); - SetTileType(0x1d4, 0x559, 1); -} - -void sub_0804F89C(void) { - SetTileType(0x1d6, 0x420, 1); - SetTileType(0x1d5, 0x525, 1); - SetTileType(0x1d6, 0x61e, 1); - SetTileType(0x1d5, 0x519, 1); -} - -void sub_0804F8E0(void) { - SetTileType(0x1d3, 0x421, 1); - SetTileType(0x1d6, 0x565, 1); - SetTileType(0x1d3, 0x61d, 1); - SetTileType(0x1d6, 0x4d9, 1); -} - -void sub_0804F928(void) { - sub_0807BA8C(0x41d, 1); - sub_0807BA8C(0x621, 1); -} - -void sub_0804F944(void) { - sub_0807BA8C(0x41e, 1); - sub_0807BA8C(0x620, 1); -} - -void sub_0804F960(void) { - sub_0807BA8C(0x41f, 1); - sub_0807BA8C(0x4e5, 1); - sub_0807BA8C(0x61f, 1); - sub_0807BA8C(0x559, 1); -} - -void sub_0804F994(void) { - sub_0807BA8C(0x420, 1); - sub_0807BA8C(0x525, 1); - sub_0807BA8C(0x61e, 1); - sub_0807BA8C(0x519, 1); -} - -void sub_0804F9C8(void) { - sub_0807BA8C(0x421, 1); - sub_0807BA8C(0x565, 1); - sub_0807BA8C(0x61d, 1); - sub_0807BA8C(0x4d9, 1); -} - -u32 sub_unk3_HyruleField_OutsideCastleWest() { - return 1; -} - -extern EntityData gUnk_080F806C; - -void sub_StateChange_HyruleField_OutsideCastleWest(void) { - Manager18_Main(NULL); - if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { - LoadRoomEntityList(&gUnk_080F806C); - } -} - -u32 sub_unk3_HyruleField_TrilbyHighlands() { - return 1; -} - -extern EntityData gUnk_080F82E0; - -void sub_StateChange_HyruleField_TrilbyHighlands(void) { - Manager18_Main(NULL); -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(ITEM_RED_SWORD) && !CheckLocalFlag(0x9b)) { -#else - if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(ITEM_RED_SWORD) && !CheckLocalFlag(0x9c)) { -#endif - LoadRoomEntityList(&gUnk_080F82E0); - } -} - -u32 sub_unk3_HyruleField_PercysHouse() { - return 1; -} - -extern EntityData gUnk_080F8430; - -void sub_StateChange_HyruleField_PercysHouse(void) { - Manager18_Main(NULL); - if (CheckKinstoneFused(0x21) && !CheckLocalFlagByBank(0x200, 0x42)) { - LoadRoomEntityList(&gUnk_080F8430); - } -} - -u32 sub_unk3_Caves_Boomerang() { - return 1; -} - -extern EntityData gUnk_080F85F8; -extern EntityData gUnk_080F85D8; - -void sub_StateChange_Caves_Boomerang(void) { - if (CheckGlobalFlag(SOUGEN_06_HASHIGO)) { - LoadRoomEntityList(&gUnk_080F85D8); - } else { - LoadRoomEntityList(&gUnk_080F85F8); - } - if (!GetInventoryValue(0xc)) { - ClearLocalFlag(8); - } -} - -u32 sub_unk3_Caves_ToGraveyard() { - return 1; -} - -void sub_StateChange_Caves_ToGraveyard() { -} - -u32 sub_unk3_Caves_2() { - return 1; -} - -void sub_StateChange_Caves_2() { -} - -u32 sub_unk3_Caves_3() { - return 1; -} - -void sub_StateChange_Caves_3() { -} - -u32 sub_unk3_Caves_4() { - return 1; -} - -void sub_StateChange_Caves_4() { -} - -u32 sub_unk3_Caves_5() { - return 1; -} - -void sub_StateChange_Caves_5() { -} - -u32 sub_unk3_Caves_6() { - return 1; -} - -void sub_StateChange_Caves_6() { -} - -u32 sub_unk3_Caves_KeeseChest() { - return 1; -} - -void sub_StateChange_Caves_KeeseChest() { -} - -u32 sub_unk3_Caves_FairyFountainTrilbyHighlands() { - return 1; -} - -void sub_StateChange_Caves_FairyFountainTrilbyHighlands() { -} - -u32 sub_unk3_Caves_FairyFountainLinksHouse() { - return 1; -} - -void sub_StateChange_Caves_FairyFountainLinksHouse() { -} - -u32 sub_unk3_Caves_A() { - return 1; -} - -void sub_StateChange_Caves_A() { -} - -u32 sub_unk3_Caves_HyruleTownWaterfall() { - return 1; -} - -void sub_StateChange_Caves_HyruleTownWaterfall() { -} - -u32 sub_unk3_Caves_LonLonRanch() { - return 1; -} - -void sub_StateChange_Caves_LonLonRanch() { -} - -u32 sub_unk3_Caves_LonLonRanchSecret() { - return 1; -} - -void sub_StateChange_Caves_LonLonRanchSecret(void) { - if (CheckLocalFlag(0x11)) { - SetRoomFlag(0); - SetRoomFlag(1); - ChangeLightLevel(0x100); - if (!CheckLocalFlag(0x12)) { - SetTileType(0x73, 0xcb, 1); - } - } -} - -u32 sub_unk3_Caves_TrilbyHighlands() { - return 1; -} - -void sub_StateChange_Caves_TrilbyHighlands() { -} - -u32 sub_unk3_Caves_LonLonRanchWallet() { - return 1; -} - -void sub_StateChange_Caves_LonLonRanchWallet() { -} - -u32 sub_unk3_Caves_RupeeLinksHouse() { - return 1; -} - -void sub_StateChange_Caves_RupeeLinksHouse() { -} - -u32 sub_unk3_Caves_RupeeTrilbyHighlands() { - return 1; -} - -void sub_StateChange_Caves_RupeeTrilbyHighlands() { -} - -u32 sub_unk3_Caves_FairyFountainMoleMitts() { - return 1; -} - -void sub_StateChange_Caves_FairyFountainMoleMitts() { -} - -u32 sub_unk3_Caves_KeeseChestSoutheastHyrule() { - return 1; -} -void sub_StateChange_Caves_KeeseChestSoutheastHyrule() { -} - -u32 sub_unk3_Caves_BottleBusinessScrub() { - return 1; -} - -void sub_StateChange_Caves_BottleBusinessScrub() { -} - -u32 sub_unk3_Caves_HeartPieceHallway() { - return 1; -} - -void sub_StateChange_Caves_HeartPieceHallway() { -} - -u32 sub_unk3_Caves_FairyFountainBoomerang() { - return 1; -} - -void sub_StateChange_Caves_FairyFountainBoomerang() { -} - -u32 sub_unk3_Caves_KinstoneBusinessScrub() { - return 1; -} - -void sub_StateChange_Caves_KinstoneBusinessScrub() { -} - -u32 sub_unk3_VeilFalls_Main() { - return 1; -} - -extern EntityData gUnk_080F9304; - -void sub_StateChange_VeilFalls_Main(void) { - if ((gSave.windcrests & 0x2000000) == 0) { - LoadRoomEntityList(&gUnk_080F9304); - } -} - -void sub_unk1_VeilFalls_Main(void) { - if ((gSave.windcrests & 0x2000000) == 0) { - LoadRoomEntityList(&gUnk_080F9304); - } -} - -u32 sub_unk3_VeilFallsCaves_Hallway2F() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_Hallway2F() { -} - -u32 sub_unk3_VeilFallsCaves_Hallway1F() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_Hallway1F() { -} - -u32 sub_unk3_VeilFallsCaves_SecretRoom() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_SecretRoom() { -} - -u32 sub_unk3_VeilFallsCaves_Entrance() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_Entrance() { -} - -u32 sub_unk3_VeilFallsCaves_Exit() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_Exit() { -} - -u32 sub_unk3_VeilFallsCaves_SecretChest() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_SecretChest() { -} - -u32 sub_unk3_VeilFallsCaves_SecretStaircases() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_SecretStaircases() { -} - -u32 sub_unk3_VeilFallsCaves_BlockPuzzle() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_BlockPuzzle() { -} - -u32 sub_unk3_VeilFallsCaves_RupeePath() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_RupeePath() { -} - -u32 sub_unk3_VeilFallsCaves_HeartPiece() { - return 1; -} - -void sub_StateChange_VeilFallsCaves_HeartPiece() { -} - -extern u32 gUnk_080F9BF8; - -u32 sub_unk3_VeilFallsTop_Main(void) { - if (!CheckKinstoneFused(0xe)) { - gRoomVars.field_0x6c[0] = &gUnk_080F9BF8; - } - return 1; -} - -void sub_StateChange_VeilFallsTop_Main() { - sub_0805B4D0(2); - sub_0806D0B0(0); -} - -u32 sub_unk3_47_0() { - return 1; -} - -void sub_StateChange_47_0() { -} - -u32 sub_unk3_47_1() { - return 1; -} - -void sub_StateChange_47_1() { -} - -u32 sub_unk3_47_2() { - return 1; -} - -void sub_StateChange_47_2() { -} - -u32 sub_unk3_47_3() { - return 1; -} - -void sub_StateChange_47_3() { -} - -u32 sub_unk3_47_4() { - return 1; -} - -void sub_StateChange_47_4() { -} - -u32 sub_unk3_TreeInteriors_WitchHut() { - return 1; -} - -extern EntityData gUnk_080F9FA8; -extern EntityData gUnk_080F9F88; - -void sub_StateChange_TreeInteriors_WitchHut(void) { - if (CheckKinstoneFused(0x14)) { - LoadRoomEntityList(&gUnk_080F9FA8); - } - if (!GetInventoryValue(ITEM_QST_MUSHROOM)) { - LoadRoomEntityList(&gUnk_080F9F88); - } -} - -u32 sub_0804FCD4() { - return 1; -} - -void nullsub_434() { -} - -u32 sub_0804FCDC() { - return 1; -} - -void nullsub_435() { -} - -u32 sub_0804FCE4() { - return 1; -} - -void nullsub_436() { -} - -u32 sub_0804FCEC() { - return 1; -} - -void nullsub_437() { -} - -u32 sub_0804FCF4() { - return 1; -} - -void nullsub_438() { -} - -u32 sub_0804FCFC() { - return 1; -} - -void nullsub_439() { -} - -u32 sub_0804FD04() { - return 1; -} - -void nullsub_440() { -} - -u32 sub_0804FD0C() { - return 1; -} - -void nullsub_441() { -} - -u32 sub_0804FD14() { - return 1; -} - -void nullsub_442() { -} - -u32 sub_0804FD1C() { - return 1; -} - -void nullsub_443() { -} - -u32 sub_0804FD24() { - return 1; -} - -void nullsub_444() { -} - -u32 sub_0804FD2C() { - return 1; -} - -void nullsub_445() { -} - -u32 sub_0804FD34() { - return 1; -} - -void nullsub_446() { -} - -u32 sub_0804FD3C() { - return 1; -} - -void nullsub_447() { -} - -u32 sub_0804FD44() { - return 1; -} - -void nullsub_448() { -} - -u32 sub_unk3_TreeInteriors_StairsToCarlov() { - return 1; -} - -void sub_StateChange_TreeInteriors_StairsToCarlov() { -} - -u32 sub_unk3_TreeInteriors_PercysTreehouse() { - return 1; -} - -extern EntityData gUnk_080FA5D0; - -void sub_StateChange_TreeInteriors_PercysTreehouse(void) { - if (!CheckKinstoneFused(0x21)) { - LoadRoomEntityList(&gUnk_080FA5D0); - } -} - -u32 sub_unk3_TreeInteriors_HeartPiece() { - return 1; -} -void sub_StateChange_TreeInteriors_HeartPiece() { -} - -u32 sub_unk3_TreeInteriors_StairsToBladeBrother() { - return 1; -} - -void sub_StateChange_TreeInteriors_StairsToBladeBrother() { -} - -u32 sub_unk3_TreeInteriors_14() { - return 1; -} - -void sub_StateChange_TreeInteriors_14() { -} - -u32 sub_unk3_TreeInteriors_BoomerangNorthwest() { - return 1; -} - -void sub_StateChange_TreeInteriors_BoomerangNorthwest() { -} - -u32 sub_unk3_TreeInteriors_BoomerangNortheast() { - return 1; -} - -void sub_StateChange_TreeInteriors_BoomerangNortheast() { -} - -u32 sub_unk3_TreeInteriors_BoomerangSouthwest() { - return 1; -} - -void sub_StateChange_TreeInteriors_BoomerangSouthwest() { -} - -u32 sub_unk3_TreeInteriors_BoomerangSoutheast() { - return 1; -} - -void sub_StateChange_TreeInteriors_BoomerangSoutheast() { -} - -u32 sub_unk3_TreeInteriors_HeartPieceSouthwestField() { - return 1; -} - -void sub_StateChange_TreeInteriors_HeartPieceSouthwestField() { -} - -u32 sub_unk3_TreeInteriors_StairsToFairyFountain() { - return 1; -} - -void sub_StateChange_TreeInteriors_StairsToFairyFountain() { -} - -u32 sub_unk3_TreeInteriors_StairsToWalletFairy() { - return 1; -} - -void sub_StateChange_TreeInteriors_StairsToWalletFairy() { -} - -u32 sub_unk3_TreeInteriors_1C() { - return 1; -} - -void sub_StateChange_TreeInteriors_1C() { -} - -u32 sub_unk3_TreeInteriors_StairsToBusinessScrub() { - return 1; -} - -void sub_StateChange_TreeInteriors_StairsToBusinessScrub() { -} - -u32 sub_unk3_TreeInteriors_1E() { - return 1; -} - -void sub_StateChange_TreeInteriors_1E() { -} - -u32 sub_unk3_TreeInteriors_1F() { - return 1; -} - -void sub_StateChange_TreeInteriors_1F() { -} - -extern u32 gUnk_080FAD48; - -u32 sub_unk3_MtCrenel_MountainTop(void) { - if (CheckGlobalFlag(ENDING)) { - gRoomVars.field_0x6c[0] = &gUnk_080FAD48; - gRoomVars.field_0x6c[2] = NULL; - } - return 1; -} - -extern EntityData gUnk_080FACB8; - -void sub_StateChange_MtCrenel_MountainTop(void) { - if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; - } else { - LoadRoomEntityList(&gUnk_080FACB8); - } - sub_0805B4D0(0); - sub_08059994(); -} - -void sub_unk1_MtCrenel_MountainTop() { - sub_0805B4D0(0); -} - -u32 sub_unk3_MtCrenel_WallClimb() { - return 1; -} - -void sub_StateChange_MtCrenel_WallClimb() { -} - -u32 sub_unk3_MtCrenel_CaveOfFlamesEntrance() { - return 1; -} - -extern EntityData gUnk_080FAFE4; -extern EntityData gUnk_080FB004; - -void sub_StateChange_MtCrenel_CaveOfFlamesEntrance(void) { - sub_0805B4D0(1); - if (CheckGlobalFlag(LV2_CLEAR) && !CheckLocalFlag(LV1_CLEAR)) { - LoadRoomEntityList(&gUnk_080FAFE4); - } - if ((gSave.windcrests & 0x1000000) == 0) { - LoadRoomEntityList(&gUnk_080FB004); - } - if (GetInventoryValue(0x2)) { - SetGlobalFlag(WHITE_SWORD_END); - } -} - -void sub_unk1_MtCrenel_CaveOfFlamesEntrance(void) { - if ((gSave.windcrests & 0x1000000) == 0) { - LoadRoomEntityList(&gUnk_080FB004); - } -} - -u32 sub_unk3_MtCrenel_GustJarShortcut() { - return 1; -} - -void sub_StateChange_MtCrenel_GustJarShortcut() { -} - -u32 sub_unk3_MtCrenel_Entrance() { - return 1; -} - -void sub_StateChange_MtCrenel_Entrance(void) { -#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) - SetTileType(0x176, 0x66f, 1); -#endif -} - -u32 sub_unk3_CrenelCaves_BlockPushing() { - return 1; -} - -void sub_StateChange_CrenelCaves_BlockPushing() { -} - -u32 sub_unk3_CrenelCaves_PillarCave() { - return 1; -} - -void sub_StateChange_CrenelCaves_PillarCave() { -} - -u32 sub_unk3_CrenelCaves_BridgeSwitch() { - return 1; -} - -void sub_StateChange_CrenelCaves_BridgeSwitch() { -} - -u32 sub_unk3_CrenelCaves_ExitToMines() { - return 1; -} - -void sub_StateChange_CrenelCaves_ExitToMines() { -} - -u32 sub_unk3_CrenelCaves_GripRing() { - return 1; -} - -void sub_StateChange_CrenelCaves_GripRing() { -} - -u32 sub_unk3_CrenelCaves_FairyFountain() { - return 1; -} - -void sub_StateChange_CrenelCaves_FairyFountain() { -} - -u32 sub_unk3_CrenelCaves_SpinyChuPuzzle() { - return 1; -} - -void sub_StateChange_CrenelCaves_SpinyChuPuzzle() { -} - -u32 sub_unk3_CrenelCaves_ChuchuPotChest() { - return 1; -} - -void sub_StateChange_CrenelCaves_ChuchuPotChest() { -} - -u32 sub_unk3_CrenelCaves_WaterHeartPiece() { - return 1; -} - -void sub_StateChange_CrenelCaves_WaterHeartPiece() { -} - -u32 sub_unk3_CrenelCaves_RupeeFairyFountain() { - return 1; -} - -void sub_StateChange_CrenelCaves_RupeeFairyFountain() { -} - -u32 sub_unk3_CrenelCaves_HelmasaurHallway() { - return 1; -} - -void sub_StateChange_CrenelCaves_HelmasaurHallway() { -} - -u32 sub_unk3_CrenelCaves_MushroomKeese() { - return 1; -} - -void sub_StateChange_CrenelCaves_MushroomKeese() { -} - -u32 sub_unk3_CrenelCaves_LadderToGreenWater() { - return 1; -} - -void sub_StateChange_CrenelCaves_LadderToGreenWater() { -} - -u32 sub_unk3_CrenelCaves_BombBusinessScrub() { - return 1; -} - -void sub_StateChange_CrenelCaves_BombBusinessScrub() { -} - -u32 sub_unk3_CrenelCaves_Hermit() { - return 1; -} - -void sub_StateChange_CrenelCaves_Hermit(void) { - if (!CheckLocalFlag(0x70)) { - SetLocalFlag(0x70); - } -} - -u32 sub_unk3_CrenelCaves_HintScrub() { - return 1; -} - -void sub_StateChange_CrenelCaves_HintScrub() { -} - -u32 sub_unk3_CrenelCaves_ToGrayblade() { - return 1; -} - -void sub_StateChange_CrenelCaves_ToGrayblade() { -} - -void sub_0804FF84(u32 arg0) { - gSaveHeader->brightnessPref = arg0; - gUsedPalettes = 0xffffffff; -} diff --git a/src/roomInit.c b/src/roomInit.c new file mode 100644 index 00000000..f6484343 --- /dev/null +++ b/src/roomInit.c @@ -0,0 +1,6667 @@ +#include "global.h" + +#include "main.h" +#include "random.h" + +#include "functions.h" +#include "structures.h" + +#include "audio.h" +#include "effects.h" +#include "screen.h" +#include "flags.h" +#include "item.h" +#include "save.h" +#include "script.h" + +#include "area.h" +#include "room.h" + +#include "entity.h" +#include "npc.h" +#include "player.h" + +u32 sub_unk3_ArmosInteriors_RuinsEntranceNorth(u32 arg0) { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsEntranceNorth() { + sub_08030118(0); +} + +u32 sub_unk3_ArmosInteriors_RuinsEntranceSouth() { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsEntranceSouth() { + sub_08030118(1); +} + +u32 sub_unk3_ArmosInteriors_RuinsLeft() { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsLeft() { + sub_08030118(2); +} + +u32 sub_unk3_ArmosInteriors_RuinsMiddleLeft() { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsMiddleLeft() { + sub_08030118(3); +} + +u32 sub_unk3_ArmosInteriors_RuinsMiddleRight() { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsMiddleRight() { + sub_08030118(4); +} + +u32 sub_unk3_ArmosInteriors_RuinsRight() { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsRight() { + sub_08030118(5); +} + +u32 sub_unk3_ArmosInteriors_6() { + return 1; +} + +void sub_StateChange_ArmosInteriors_6() { + sub_08030118(6); +} + +u32 sub_unk3_ArmosInteriors_RuinsGrassPath() { + return 1; +} + +void sub_StateChange_ArmosInteriors_RuinsGrassPath() { + sub_08030118(7); +} + +u32 sub_unk3_ArmosInteriors_8() { + return 1; +} + +void sub_StateChange_ArmosInteriors_8() { + sub_08030118(8); +} + +u32 sub_unk3_ArmosInteriors_FortressOfWindsLeft() { + return 1; +} + +void sub_StateChange_ArmosInteriors_FortressOfWindsLeft() { + sub_08030118(9); + gArea.dungeon_idx = 3; + gArea.areaMetadata = 0x4e; +} + +u32 sub_unk3_ArmosInteriors_FortressOfWindsRight() { + return 1; +} + +void sub_StateChange_ArmosInteriors_FortressOfWindsRight() { + sub_08030118(10); + gArea.dungeon_idx = 3; + gArea.areaMetadata = 0x4e; +} + +u32 sub_unk3_CrenelMinishPaths_CrenelBean() { + return 1; +} + +void sub_StateChange_CrenelMinishPaths_CrenelBean() { + sub_080575C8(35); + sub_08057688(); +} + +u32 sub_unk3_CrenelMinishPaths_CrenelWater() { + return 1; +} + +void sub_StateChange_CrenelMinishPaths_CrenelWater() { + sub_080575C8(35); +} + +void sub_unk1_CrenelMinishPaths_CrenelWater() { + sub_080575C8(35); +} + +u32 sub_unk3_CrenelMinishPaths_Rainfall() { + return 1; +} + +void sub_StateChange_CrenelMinishPaths_Rainfall() { + sub_080580B0(34); +} + +void sub_unk1_CrenelMinishPaths_Rainfall() { + sub_080580B0(34); +} + +u32 sub_unk3_CrenelMinishPaths_MelarisMine() { + return 1; +} + +void sub_StateChange_CrenelMinishPaths_MelarisMine(void) { + sub_080580B0(0x22); + // white sword + if (GetInventoryValue(0x2)) + SetGlobalFlag(WHITE_SWORD_END); +} + +void sub_unk1_CrenelMinishPaths_MelarisMine() { + sub_080580B0(34); +} + +u32 sub_unk3_MinishPaths1_ToMinishVillage() { + return 1; +} + +void sub_StateChange_MinishPaths1_ToMinishVillage() { + sub_080575C8(30); +} + +void sub_unk1_MinishPaths1_ToMinishVillage() { + sub_080575C8(30); +} + +u32 sub_unk3_MinishPaths1_CastorWilds() { + return 1; +} + +void sub_StateChange_MinishPaths1_CastorWilds() { + sub_080575C8(33); +} + +void sub_unk1_MinishPaths1_CastorWilds() { + sub_080575C8(33); +} + +u32 sub_unk3_MinishPaths1_HyruleTown() { + return 1; +} + +void sub_StateChange_MinishPaths1_HyruleTown() { + sub_080575C8(31); +} + +void sub_unk1_MinishPaths1_HyruleTown() { + sub_080575C8(31); +} + +u32 sub_unk3_MinishPaths1_LonLonRanch() { + return 1; +} + +void sub_StateChange_MinishPaths1_LonLonRanch() { + sub_080575C8(32); +} + +void sub_unk1_MinishPaths1_LonLonRanch() { + sub_080575C8(32); +} + +u32 sub_unk3_MinishPaths1_MayorsCabin() { + return 1; +} + +extern EntityData Entities_MinishPaths1_MayorsCabin_gUnk_080D6138; + +void sub_StateChange_MinishPaths1_MayorsCabin(void) { + + sub_080575C8(0x20); + + if (gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY > 0x40) + LoadRoomEntityList(&Entities_MinishPaths1_MayorsCabin_gUnk_080D6138); +} + +void sub_unk1_MinishPaths1_MayorsCabin() { + sub_080575C8(32); +} + +u32 sub_unk3_HouseInteriors1_Mayor() { + return 1; +} + +extern EntityData Entities_HouseInteriors1_Mayor_080D6210; + +void sub_StateChange_HouseInteriors1_Mayor(void) { + + if ((u16)gScreenTransition.player_status.start_pos.HALF.y > 0x40) + LoadRoomEntityList(&Entities_HouseInteriors1_Mayor_080D6210); +} + +u32 sub_unk3_HouseInteriors1_PostOffice() { + return 1; +} + +extern EntityData gUnk_080D6340; +extern EntityData gUnk_080D6360; +extern EntityData gUnk_080D6380; +extern EntityData gUnk_080D63A0; +extern EntityData gUnk_080D63C0; +extern EntityData gUnk_080D63E0; +extern EntityData gUnk_080D6400; +extern EntityData gUnk_080D6420; +extern EntityData gUnk_080D6440; + +extern u16 gUnk_080D64F8; +extern u16 gUnk_080D6508; + +void sub_StateChange_HouseInteriors1_PostOffice(void) { + u16 itemID; + s32 i; + u16* itemArr; + u16* flagArr; + s32 j; + + if (CheckKinstoneFused(0x2c)) { + LoadRoomEntityList(&gUnk_080D6340); + } + j = 0; + itemArr = &gUnk_080D64F8; + for (i = 7; i >= 0; i--) { + itemID = *itemArr; + itemArr++; + if (GetInventoryValue(itemID)) { + j++; + } + } + if (CheckLocalFlag(BILL01_TESSIN_RESERVED)) { + flagArr = &gUnk_080D6508; + i = 0; + while (i < j) { + if (CheckLocalFlag(*flagArr) == 0) { + SetLocalFlag(*flagArr); + ClearLocalFlag(BILL01_TESSIN_RESERVED); + SetLocalFlag(BILL01_TESSIN_BRANDNEW); + break; + } + i++; + flagArr++; + } + } + + if (CheckLocalFlag(BILL01_TESSIN_1)) + LoadRoomEntityList(&gUnk_080D6360); + + if (CheckLocalFlag(BILL01_TESSIN_2)) + LoadRoomEntityList(&gUnk_080D6380); + + if (CheckLocalFlag(BILL01_TESSIN_3)) + LoadRoomEntityList(&gUnk_080D63A0); + + if (CheckLocalFlag(BILL01_TESSIN_4)) + LoadRoomEntityList(&gUnk_080D63C0); + + if (CheckLocalFlag(BILL01_TESSIN_5)) + LoadRoomEntityList(&gUnk_080D63E0); + + if (CheckLocalFlag(BILL01_TESSIN_6)) + LoadRoomEntityList(&gUnk_080D6400); + + if (CheckLocalFlag(BILL01_TESSIN_7)) + LoadRoomEntityList(&gUnk_080D6420); + + if (CheckLocalFlag(BILL01_TESSIN_8)) + LoadRoomEntityList(&gUnk_080D6440); +} + +u32 sub_unk3_HouseInteriors1_Library2F() { + return 1; +} + +extern EntityData gUnk_080D6578; +extern EntityData gUnk_080D6638; +extern EntityData gUnk_080D6558; +extern EntityData gUnk_080D6618; + +void sub_StateChange_HouseInteriors1_Library2F(void) { + // flippers + if (GetInventoryValue(0x46) == 0) { + LoadRoomEntityList(&gUnk_080D6578); + if (CheckLocalFlag(MIZUKAKI_BOOK_ALLBACK) == 0) { + LoadRoomEntityList(&gUnk_080D6638); + return; + } + } else { + LoadRoomEntityList(&gUnk_080D6558); + } + LoadRoomEntityList(&gUnk_080D6618); +} + +u32 sub_unk3_HouseInteriors1_Library1F() { + return 1; +} + +extern EntityData gUnk_080D6714; +extern EntityData gUnk_additional_9_HouseInteriors1_Library1F; +extern EntityData gUnk_additional_8_HouseInteriors1_Library1F; + +void sub_StateChange_HouseInteriors1_Library1F(void) { + if (gSave.global_progress > 4) { + LoadRoomEntityList(&gUnk_080D6714); + } + // flippers + if (!GetInventoryValue(0x46) && CheckGlobalFlag(MIZUKAKI_START) && CheckLocalFlag(MIZUKAKI_KOBITO)) { + LoadRoomEntityList(&gUnk_additional_9_HouseInteriors1_Library1F); + } else { + LoadRoomEntityList(&gUnk_additional_8_HouseInteriors1_Library1F); + } +} + +u32 sub_unk3_HouseInteriors1_Inn1F() { + return 1; +} + +extern EntityData gUnk_080D6924; + +void sub_StateChange_HouseInteriors1_Inn1F(void) { + if (gSave.global_progress > 7) { + LoadRoomEntityList(&gUnk_080D6924); + } +} + +extern u32* gUnk_080D6A74[]; + +u32 sub_unk3_HouseInteriors1_InnWestRoom(void) { + u32 index; + + if (CheckLocalFlag(YADO_CHECKIN)) { + index = (s32)Random() % 3; + ClearLocalFlag(BILL05_YADO1F_MATSU_T0); + } else { + index = 0; + SetLocalFlag(BILL05_YADO1F_MATSU_T0); + } + gRoomVars.field_0x6c[3] = gUnk_080D6A74[index]; + return 1; +} + +extern void* script_08010A5C[]; + +void sub_StateChange_HouseInteriors1_InnWestRoom(void) { + if (CheckLocalFlag(YADO_CHECKIN)) { + ClearLocalFlag(YADO_CHECKIN); + DoFade(5, 256); + gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; + gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; + sub_080751E8(1, 2, &script_08010A5C); + } +} + +extern u32* gUnk_080D6B18[]; + +u32 sub_unk3_HouseInteriors1_InnMiddleRoom(void) { + u32 index; + + if (CheckLocalFlag(YADO_CHECKIN) != 0) { + index = Random() & 1; + ClearLocalFlag(BILL06_YADO1F_TAKE_T0); + } else { + index = 0; + SetLocalFlag(BILL06_YADO1F_TAKE_T0); + } + gRoomVars.field_0x6c[3] = gUnk_080D6B18[index]; + return 1; +} + +void sub_StateChange_HouseInteriors1_InnMiddleRoom(void) { + if (CheckLocalFlag(YADO_CHECKIN) != 0) { + ClearLocalFlag(YADO_CHECKIN); + DoFade(5, 256); + gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; + gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; + sub_080751E8(1, 2, &script_08010A5C); + } +} + +extern u32* gUnk_080D6BB8[]; + +u32 sub_unk3_HouseInteriors1_InnEastRoom(void) { + s32 index; + + if (CheckLocalFlag(YADO_CHECKIN) != 0) { + index = (s32)Random() % 3; + ClearLocalFlag(BILL07_YADO1F_UME_T0); + } else { + index = 0; + SetLocalFlag(BILL07_YADO1F_UME_T0); + } + gRoomVars.field_0x6c[3] = gUnk_080D6BB8[index]; + return 1; +} + +void sub_StateChange_HouseInteriors1_InnEastRoom(void) { + if (CheckLocalFlag(YADO_CHECKIN)) { + ClearLocalFlag(YADO_CHECKIN); + DoFade(5, 256); + gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x60; + gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; + sub_080751E8(1, 2, &script_08010A5C); + } +} + +u32 sub_unk3_HouseInteriors1_InnWest2F() { + return 1; +} + +extern EntityData UpperInn_Oracles; +extern EntityData UpperInn_NoFarore; +extern EntityData UpperInn_NoNayru; +extern EntityData UpperInn_NoDin; +extern EntityData UpperInn_Farore; +extern EntityData UpperInn_Nayru; +extern EntityData UpperInn_Din; + +void sub_StateChange_HouseInteriors1_InnWest2F(void) { + int iVar1; + + if (gSave.global_progress < 4) + return; + + if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { + if (!CheckGlobalFlag(NEW_HOUSE_NAYRU)) + if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) + LoadRoomEntityList(&UpperInn_NoDin); + else + LoadRoomEntityList(&UpperInn_Nayru); + else + LoadRoomEntityList(&UpperInn_Farore); + } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { + if (CheckGlobalFlag(NEW_HOUSE_DIN)) + LoadRoomEntityList(&UpperInn_Farore); + else if (!CheckGlobalFlag(NEW_HOUSE_FARORE)) + LoadRoomEntityList(&UpperInn_NoNayru); + else + LoadRoomEntityList(&UpperInn_Din); + } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { + if (CheckGlobalFlag(NEW_HOUSE_DIN)) + LoadRoomEntityList(&UpperInn_Nayru); + else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) + LoadRoomEntityList(&UpperInn_Din); + else + LoadRoomEntityList(&UpperInn_NoFarore); + } else + LoadRoomEntityList(&UpperInn_Oracles); +} + +u32 sub_unk3_HouseInteriors1_InnEast2F() { + return 1; +} + +void sub_StateChange_HouseInteriors1_InnEast2F() { +} + +u32 sub_unk3_HouseInteriors1_InnMinishHeartPiece() { + return 1; +} + +void sub_StateChange_HouseInteriors1_InnMinishHeartPiece() { +} + +u32 sub_unk3_HouseInteriors1_SchoolWest() { + return 1; +} + +extern EntityData gUnk_080D7038; + +void sub_StateChange_HouseInteriors1_SchoolWest(void) { + if (gSave.global_progress < 8) { + LoadRoomEntityList(&gUnk_080D7038); + } + if (gRoomVars.field_0x0 == 0) { + sub_08052CA4(2, 0, 0x2c8, 0xa8); + } +} + +u32 sub_unk3_HouseInteriors1_SchoolEast() { + return 1; +} + +extern EntityData gUnk_080D7140; +extern EntityData gUnk_080D7170; +extern EntityData gUnk_080D71A0; +extern EntityData gUnk_080D71D0; +extern EntityData gUnk_080D71F0; + +void sub_StateChange_HouseInteriors1_SchoolEast(void) { + + if (gSave.global_progress == 6) + LoadRoomEntityList(&gUnk_080D7140); + + if (gSave.global_progress == 7) + LoadRoomEntityList(&gUnk_080D7170); + + if ((gSave.global_progress < 8) || (LoadRoomEntityList(&gUnk_080D71A0), gSave.global_progress < 8)) + LoadRoomEntityList(&gUnk_080D71D0); + else + LoadRoomEntityList(&gUnk_080D71F0); +} + +extern u32 gUnk_080D7348; + +u32 sub_unk3_HyruleCastle_0(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080D7348; + gRoomVars.field_0x6c[2] = 0; + } + return 1; +} + +extern EntityData gUnk_080D7328; + +void sub_StateChange_HyruleCastle_0(void) { + if (!CheckGlobalFlag(LV2_CLEAR)) { + LoadRoomEntityList(&gUnk_080D7328); + } + +#if defined(JP) || defined(DEMO_JP) + if (CheckGlobalFlag(CASTLE_BGM) || CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } +#elif defined(EU) + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } +#else + if (CheckGlobalFlag(CASTLE_BGM)) { + gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; + } else if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } +#endif +} + +extern u32 gUnk_080D7410; + +u32 sub_unk3_HyruleCastle_1(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080D7410; + gRoomVars.field_0x6c[2] = 0; + } + return 1; +} + +extern EntityData gUnk_080D73B0; +extern EntityData gUnk_080D73E0; + +void sub_StateChange_HyruleCastle_1(void) { + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } else { + if (!CheckGlobalFlag(LV2_CLEAR)) { + LoadRoomEntityList(&gUnk_080D73B0); + } + if (!CheckGlobalFlag(LV1_CLEAR) && CheckGlobalFlag(TABIDACHI)) { + LoadRoomEntityList(&gUnk_080D73E0); + } +#ifndef EU + if (CheckGlobalFlag(CASTLE_BGM)) { + gArea.pMusicIndex = gArea.musicIndex; + } +#endif + } +} + +u32 sub_unk3_HyruleCastle_2() { + return 1; +} + +extern EntityData gUnk_080D74C8; +extern EntityData gUnk_080D7588; +extern EntityData gUnk_080D75D8; +extern EntityData gUnk_080D7618; + +void sub_StateChange_HyruleCastle_2(void) { +#ifndef EU + if (CheckGlobalFlag(CASTLE_BGM)) { + gArea.pMusicIndex = gArea.musicIndex; + } +#endif + + if (CheckGlobalFlag(ENDING)) { + LoadRoomEntityList(&gUnk_080D7618); + gArea.pMusicIndex = gArea.musicIndex; + } else if (CheckGlobalFlag(TABIDACHI) == 0) { + LoadRoomEntityList(&gUnk_080D74C8); + gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; + } else if (CheckGlobalFlag(LV1_CLEAR) == 0) { + LoadRoomEntityList(&gUnk_080D7588); + } else { + LoadRoomEntityList(&gUnk_080D75D8); + } +} + +u32 sub_unk3_HyruleCastle_3() { + return 1; +} + +extern EntityData gUnk_additional_8_HyruleCastle_3; + +void sub_StateChange_HyruleCastle_3(void) { + if (CheckLocalFlag(SOUGEN_08_TORITSUKI)) { + LoadRoomEntityList(&gUnk_additional_8_HyruleCastle_3); + } +} + +u32 sub_unk3_HyruleCastle_4(void) { + if (!CheckLocalFlag(CASTLE_04_MEZAME)) { + gScreenTransition.player_status.spawn_type = PL_SPAWN_SPECIAL; + ClearGlobalFlag(ZELDA_CHASE); + } + return 1; +} + +extern u32 script_08009E88; + +void sub_StateChange_HyruleCastle_4(void) { + if (!CheckLocalFlag(CASTLE_04_MEZAME)) { + DoFade(5, 256); + gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0xb0; + gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x40; + sub_080751E8(0, 6, &script_08009E88); +#ifdef EU + SoundReq(0x80010000); + gArea.musicIndex = gArea.pMusicIndex; + } +#else + } + + if (!CheckGlobalFlag(TABIDACHI)) { + sub_08052878(); +#if !(defined(JP) || defined(DEMO_JP)) + } else { +#else + } +#endif + if (CheckGlobalFlag(CASTLE_BGM)) { +#if defined(JP) || defined(DEMO_JP) + gArea.pMusicIndex = gArea.musicIndex; +#else + gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; +#endif + } +#if !(defined(JP) || defined(DEMO_JP)) + } +#endif +#endif +} + +extern ScreenTransitionData gUnk_0813AB80; + +void sub_0804BCDC() { + sub_0808091C(&gUnk_0813AB80, 4); +} + +u32 sub_unk3_HyruleCastle_5() { + return 1; +} + +void sub_StateChange_HyruleCastle_5() { +} + +u32 sub_unk3_87_Main() { + return 1; +} + +void sub_StateChange_87_Main() { +} + +u32 sub_unk3_45_Main() { + return 1; +} + +void sub_StateChange_45_Main() { +} + +u32 sub_unk3_4D_Main() { + return 1; +} + +void sub_StateChange_4D_Main() { +} + +u32 sub_unk3_57_Main() { + return 1; +} + +void sub_StateChange_57_Main() { +} + +u32 sub_unk3_5F_Main() { + return 1; +} + +void sub_StateChange_5F_Main() { +} + +u32 sub_unk3_67_Main() { + return 1; +} + +void sub_StateChange_67_Main() { +} + +u32 sub_unk3_6F_Main() { + return 1; +} + +void sub_StateChange_6F_Main() { +} + +u32 sub_unk3_77_Main() { + return 1; +} + +void sub_StateChange_77_Main() { +} + +u32 sub_unk3_7F_Main() { + return 1; +} + +void sub_StateChange_7F_Main() { +} + +u32 sub_unk3_8F_Main() { + return 1; +} + +void sub_StateChange_8F_Main() { +} + +u32 sub_unk3_GreatFairies_Entrance() { + return 1; +} + +void sub_StateChange_GreatFairies_Entrance() { +} + +u32 sub_unk3_GreatFairies_Exit() { + return 1; +} + +extern EntityData gUnk_080D7D34; + +void sub_StateChange_GreatFairies_Exit(void) { + // four sword + if (GetInventoryValue(0x6)) { + SetTile(0x4072, 0x14d, 1); + SetTile(0x4072, 0x10c, 1); + SetTile(0x4090, 0x14c, 1); + SetTile(0x4090, 0x18c, 1); + LoadRoomEntityList(&gUnk_080D7D34); + } +} + +u32 sub_unk3_Dojos_Grayblade() { + return 1; +} + +void sub_StateChange_Dojos_Grayblade() { +} + +u32 sub_unk3_Dojos_Splitblade() { + return 1; +} + +void sub_StateChange_Dojos_Splitblade() { +} + +u32 sub_unk3_Dojos_Greatblade() { + return 1; +} + +void sub_StateChange_Dojos_Greatblade() { +} + +u32 sub_unk3_Dojos_Scarblade() { + return 1; +} + +void sub_StateChange_Dojos_Scarblade() { +} + +u32 sub_unk3_Dojos_Swiftblade() { + return 1; +} + +void sub_StateChange_Dojos_Swiftblade() { +} + +u32 sub_unk3_Dojos_Grimblade() { + return 1; +} + +extern EntityData gUnk_080D827C; + +void sub_StateChange_Dojos_Grimblade(void) { + if (!CheckLocalFlag(3)) { + LoadRoomEntityList(&gUnk_080D827C); + } else { + sub_0805BC4C(); + SetTileType(0x76, 0x82, 2); + SetTileType(0x76, 0x8c, 2); + } +} + +u32 sub_unk3_Dojos_Waveblade() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade() { +} + +u32 sub_unk3_Dojos_7() { + return 1; +} + +void sub_StateChange_Dojos_7() { +} + +u32 sub_unk3_Dojos_8() { + return 1; +} + +void sub_StateChange_Dojos_8() { +} + +u32 sub_unk3_Dojos_9() { + return 1; +} + +void sub_StateChange_Dojos_9() { +} + +u32 sub_unk3_Dojos_ToGrimblade() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade() { +} + +u32 sub_unk3_Dojos_ToSplitblade() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade() { +} + +u32 sub_unk3_Dojos_ToGreatblade() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade() { +} + +u32 sub_unk3_Dojos_ToScarblade() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade() { +} + +u32 sub_unk3_GoronCave_StairsToCave() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave() { +} + +u32 sub_unk3_GoronCave_Main() { + return 1; +} + +extern EntityData gUnk_080D8B24; +extern EntityData gUnk_080D8AC4; +extern EntityData gUnk_080D8A74; +extern EntityData gUnk_080D8A34; +extern EntityData gUnk_080D8A04; +extern EntityData gUnk_080D89E4; + +extern u32 gUnk_080D8BBC; +extern u32 gUnk_080D8BFA; +extern u32 gUnk_080D8C68; + +void sub_StateChange_GoronCave_Main(void) { + if (!CheckLocalFlag(GORON_DOUKUTU_APPEAR)) + SetLocalFlag(GORON_DOUKUTU_APPEAR); + + if (CheckKinstoneFused(0x2f)) + LoadRoomEntityList(&gUnk_080D8B24); + else if (CheckKinstoneFused(0x2b)) + LoadRoomEntityList(&gUnk_080D8AC4); + else if (CheckKinstoneFused(0x26)) + LoadRoomEntityList(&gUnk_080D8A74); + else if (CheckKinstoneFused(0x2a)) + LoadRoomEntityList(&gUnk_080D8A34); + else if (CheckKinstoneFused(0x25)) + LoadRoomEntityList(&gUnk_080D8A04); + else + LoadRoomEntityList(&gUnk_080D89E4); + + if (CheckKinstoneFused(0x25)) + sub_0807BB68(&gUnk_080D8BBC, 0x7c5, 1); + + if (CheckKinstoneFused(0x26)) + sub_0807BB68(&gUnk_080D8BFA, 0x503, 1); + + if (CheckKinstoneFused(0x2f)) + sub_0807BB68(&gUnk_080D8C68, 0x281, 1); +} + +#if 0 +typedef struct { + u32 a; + u16 x, y; + u16 entCnt; + u16 shakeTime, shakeMag, sfx; +} struct_080D8E54; + +typedef struct { + u32 field_0x0; + u32 field_0x4; +} struct_0804BF38; + +extern struct_080D8E54 gUnk_080D8E50[]; + +void sub_0804BF38(u32 arg0, struct_0804BF38* arg1) +{ + u32 numEnts; + u32 iVar2; + u32 iVar3; + Entity *fx; + u32 entCnt; + u32 xOff; + + iVar2 = arg1->field_0x4; + iVar3 = iVar2 * 0x10; + sub_0807BB68(gUnk_080D8E50[iVar2].a, ((gUnk_080D8E50[iVar3].x >> 4) & 0x3f | (gUnk_080D8E50[iVar3].y >> 4) & 0x3f) << 6, 1); + numEnts = gUnk_080D8E50[iVar3].entCnt; + entCnt = 0; + + if (numEnts != 0) { + for (xOff = 0; entCnt < numEnts; xOff += 0x10, entCnt++) { + fx = CreateObject(SPECIAL_FX, 0xf, 0); + if (fx != NULL) { + fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.roomOriginX + xOff; + fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.roomOriginY + (entCnt & 1) * 8; + } + fx = CreateObject(SPECIAL_FX, 0x54, 0); + if (fx != NULL) { + fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.roomOriginX + xOff; + fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.roomOriginY + -0xc + (entCnt & 1) * 8; + fx->direction = 0; + fx->speed = 0x100; + } + } + } + + sub_08080964(gUnk_080D8E50[iVar3].shakeTime, gUnk_080D8E50[iVar3].shakeMag); + SoundReq(gUnk_080D8E50[iVar2].sfx); +} +#else +ASM_FUNC("asm/non_matching/sub_0804BF38.inc", void sub_0804BF38(Entity* this, ScriptExecutionContext* context)) +#endif + +u32 sub_unk3_EzloCutscene_Main() { + return 1; +} + +void sub_StateChange_EzloCutscene_Main() { +} + +u32 sub_unk3_RoyalValley_Main() { + return 1; +} + +extern EntityData gUnk_080D90C8; +extern EntityData gUnk_080D9108; +extern EntityData gUnk_080D9098; + +void sub_StateChange_RoyalValley_Main(void) { + if (!CheckGlobalFlag(HAKA_KEY_LOST)) { + if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) == 1) { + LoadRoomEntityList(&gUnk_080D90C8); + LoadRoomEntityList(&gUnk_080D9108); + } + } else if (!CheckGlobalFlag(HAKA_KEY_FOUND)) + LoadRoomEntityList(&gUnk_080D9108); + + if (GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) != 2) { + LoadRoomEntityList(&gUnk_080D9098); + SetTileType(0x17a, 0x58e, 1); + SetTileType(0x17b, 0x58f, 1); + SetTileType(0x17c, 0x5ce, 1); + SetTileType(0x17d, 0x5cf, 1); + } + + sub_08054570(); + sub_08059278(); + SetTile(0x4072, 0xa47, 1); + SetTile(0x4072, 0xc47, 1); + + if (CheckGlobalFlag(MAZE_CLEAR)) + if (gScreenTransition.player_status.start_pos.WORD == 0x2780078) // todo: wtf + SoundReq(SFX_SECRET); + + ClearGlobalFlag(MAZE_CLEAR); +} + +u32 sub_unk3_RoyalValley_ForestMaze() { + return 1; +} + +void sub_StateChange_RoyalValley_ForestMaze(void) { + gArea.areaMetadata |= 0x40; + sub_0804C128(gArea.filler[7] |= 1); +} + +ASM_FUNC("asm/non_matching/sub_0804C128.inc", void sub_0804C128(u32 arg0)) + +ASM_FUNC("asm/non_matching/sub_0804C258.inc", void sub_0804C258(void)) + +ASM_FUNC("asm/non_matching/sub_0804C290.inc", void sub_0804C290(void)) + +u32 sub_unk3_RoyalValleyGraves_HeartPiece() { + return 1; +} + +void sub_StateChange_RoyalValleyGraves_HeartPiece() { +} + +u32 sub_unk3_RoyalValleyGraves_Gina() { + return 1; +} + +void sub_StateChange_RoyalValleyGraves_Gina() { +} + +u32 sub_unk3_MinishRafters_Cafe() { + return 1; +} + +void sub_StateChange_MinishRafters_Cafe() { + sub_08058324(0); +} + +u32 sub_unk3_MinishRafters_Stockwell() { + return 1; +} + +void sub_StateChange_MinishRafters_Stockwell() { + sub_08058324(1); +} + +u32 sub_unk3_MinishRafters_DrLeft() { + return 1; +} + +extern EntityData gUnk_080D9800; + +void sub_StateChange_MinishRafters_DrLeft(void) { + + sub_08058324(2); + + if (CheckGlobalFlag(MIZUKAKI_START) && !CheckGlobalFlag(MIZUKAKI_HARIFALL)) + LoadRoomEntityList(&gUnk_080D9800); +} + +void sub_unk1_MinishRafters_DrLeft() { + sub_StateChange_MinishRafters_DrLeft(); +} + +u32 sub_unk3_MinishRafters_Bakery() { + return 1; +} + +void sub_StateChange_MinishRafters_Bakery() { + sub_08058324(3); +} + +u32 sub_unk3_CastorWilds_Main() { + return 1; +} + +extern EntityData gUnk_080D9CC8; +extern EntityData gUnk_080D9CE8; +extern EntityData gUnk_080D9C38; + +void sub_StateChange_CastorWilds_Main(void) { + + SetGlobalFlag(DASHBOOTS); + + if (CheckKinstoneFused(0x5b)) + LoadRoomEntityList(&gUnk_080D9CC8); + + if ((gSave.windcrests & 0x20000000) == 0) + LoadRoomEntityList(&gUnk_080D9CE8); + + if (!GetInventoryValue(ITEM_PEGASUS_BOOTS)) + LoadRoomEntityList(&gUnk_080D9C38); +} + +void sub_unk1_CastorWilds_Main(void) { + if ((gSave.windcrests & 0x20000000) == 0) + LoadRoomEntityList(&gUnk_080D9CE8); +} + +u32 sub_unk3_CastorCaves_South() { + return 1; +} + +void sub_StateChange_CastorCaves_South() { +} + +u32 sub_unk3_CastorCaves_North() { + return 1; +} + +void sub_StateChange_CastorCaves_North() { +} + +u32 sub_unk3_CastorCaves_WindRuins() { + return 1; +} + +void sub_StateChange_CastorCaves_WindRuins() { +} + +u32 sub_unk3_CastorCaves_Darknut() { + return 1; +} + +void sub_StateChange_CastorCaves_Darknut() { +} + +u32 sub_unk3_CastorCaves_HeartPiece() { + return 1; +} + +void sub_StateChange_CastorCaves_HeartPiece() { +} + +extern u32 gUnk_080DA230; + +u32 sub_unk3_CastorDarknut_Main(void) { + if (!CheckLocalFlag(LV4_0a_TSUBO)) + gRoomVars.field_0x6c[0] = &gUnk_080DA230; + + return 1; +} + +void sub_StateChange_CastorDarknut_Main() { +} + +u32 sub_unk3_CastorDarknut_Hall() { + return 1; +} + +void sub_StateChange_CastorDarknut_Hall() { +} + +u32 sub_unk3_GreatFairies_Graveyard() { + return 1; +} + +void sub_StateChange_GreatFairies_Graveyard() { +} + +u32 sub_unk3_GreatFairies_MinishWoods() { + return 1; +} + +void sub_StateChange_GreatFairies_MinishWoods() { +} + +u32 sub_unk3_GreatFairies_MtCrenel() { + return 1; +} + +void sub_StateChange_GreatFairies_MtCrenel() { +} + +u32 sub_unk3_GardenFountains_East() { + return 1; +} + +void sub_StateChange_GardenFountains_East() { +} + +u32 sub_unk3_GardenFountains_West() { + return 1; +} + +void sub_StateChange_GardenFountains_West() { +} + +u32 sub_unk3_MinishHouseInteriors_GentariMain() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_GentariMain() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_GentariExit() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_GentariExit() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_Festari() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_Festari() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_Red() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_Red() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_Green() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_Green() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_Blue() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_Blue() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_SideArea() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_SideArea() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_ShoeMinish() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_ShoeMinish() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_PotMinish() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_PotMinish() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_BarrelMinish() { + return 1; +} + +extern EntityData gUnk_080DAB44; +extern EntityData gUnk_080DAB64; +extern EntityData gUnk_080DAB84; +extern EntityData gUnk_080DAC54; +extern EntityData gUnk_080DAD24; +extern EntityData gUnk_080DABC4; +extern EntityData gUnk_080DAC94; +extern EntityData gUnk_080DAD64; +extern EntityData gUnk_080DAC04; +extern EntityData gUnk_080DACD4; +extern EntityData gUnk_080DADA4; + +void sub_StateChange_MinishHouseInteriors_BarrelMinish(void) { + u32 uVar1; + + if (!GetInventoryValue(ITEM_JABBERNUT)) + LoadRoomEntityList(&gUnk_080DAB44); + else + LoadRoomEntityList(&gUnk_080DAB64); + + if (CheckGlobalFlag(DRUG_COUNT) && sub_08060354()) { + SetRoomFlag(0); + if (!CheckGlobalFlag(DRUG_1)) + uVar1 = 0x3200; + else if (!CheckGlobalFlag(DRUG_2)) + uVar1 = 0x4600; + else + uVar1 = 0x4880; + } else { + if (CheckGlobalFlag(DRUG_3)) + uVar1 = 0x4900; + else if (CheckGlobalFlag(DRUG_2)) + uVar1 = 0x4a00; + else if (CheckGlobalFlag(DRUG_1)) + uVar1 = 0x5200; + else + uVar1 = 0x9200; + } + if (uVar1 & 0x8000) + LoadRoomEntityList(&gUnk_080DAB84); + + if (uVar1 & 0x4000) + LoadRoomEntityList(&gUnk_080DAC54); + + if (uVar1 & 0x2000) + LoadRoomEntityList(&gUnk_080DAD24); + + if (uVar1 & 0x1000) + LoadRoomEntityList(&gUnk_080DABC4); + + if (uVar1 & 0x800) + LoadRoomEntityList(&gUnk_080DAC94); + + if (uVar1 & 0x400) + LoadRoomEntityList(&gUnk_080DAD64); + + if (uVar1 & 0x200) + LoadRoomEntityList(&gUnk_080DAC04); + + if (uVar1 & 0x100) + LoadRoomEntityList(&gUnk_080DACD4); + + if (uVar1 & 0x80) + LoadRoomEntityList(&gUnk_080DADA4); + + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_MelariMinesSouthwest() { + return 1; +} + +extern EntityData gUnk_080DAEE8; + +void sub_StateChange_MinishHouseInteriors_MelariMinesSouthwest(void) { + if (CheckGlobalFlag(WHITE_SWORD_END)) + LoadRoomEntityList(&gUnk_080DAEE8); + + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_MelariMinesSoutheast() { + return 1; +} + +extern EntityData gUnk_080DAF80; + +void sub_StateChange_MinishHouseInteriors_MelariMinesSoutheast(void) { + if (CheckGlobalFlag(WHITE_SWORD_END)) + LoadRoomEntityList(&gUnk_080DAF80); + + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_MelariMinesEast() { + return 1; +} + +extern EntityData gUnk_080DB018; + +void sub_StateChange_MinishHouseInteriors_MelariMinesEast(void) { + if (CheckGlobalFlag(WHITE_SWORD_END)) + LoadRoomEntityList(&gUnk_080DB018); + + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_HyruleFieldSouthwest() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_HyruleFieldSouthwest() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_HyruleFieldOutsideLinksHouse() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_HyruleFieldOutsideLinksHouse() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_NextToKnuckle() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_NextToKnuckle() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_Librari() { + return 1; +} + +extern EntityData gUnk_080DB238; + +void sub_StateChange_MinishHouseInteriors_Librari(void) { + if (gSave.global_progress > 8) + LoadRoomEntityList(&gUnk_080DB238); + + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_HyruleFieldExit() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_HyruleFieldExit() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_HyruleTown() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_HyruleTown() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_MinishWoodsBomb() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_MinishWoodsBomb() { + sub_0801AFE4(); +} + +u32 sub_unk3_MinishHouseInteriors_LakeHyliaOcarina() { + return 1; +} + +void sub_StateChange_MinishHouseInteriors_LakeHyliaOcarina() { + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_MayorsHouse() { + return 1; +} + +extern EntityData gUnk_080DB4D0; +extern EntityData gUnk_080DB4A0; + +void sub_StateChange_TownMinishHoles_MayorsHouse(void) { + if (!GetInventoryValue(ITEM_FLIPPERS) && !GetInventoryValue(ITEM_QST_BOOK3) && CheckLocalFlag(KOBITO_DOUKUTU_04_T0)) + LoadRoomEntityList(&gUnk_080DB4D0); + else + LoadRoomEntityList(&gUnk_080DB4A0); + + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_WestOracle() { + return 1; +} + +void sub_StateChange_TownMinishHoles_WestOracle() { + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_DrLeft() { + return 1; +} + +void sub_StateChange_TownMinishHoles_DrLeft() { + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_Carpenter() { + return 1; +} + +void sub_StateChange_TownMinishHoles_Carpenter() { + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_Cafe() { + return 1; +} + +void sub_StateChange_TownMinishHoles_Cafe() { + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_5() { + return 1; +} + +void sub_StateChange_TownMinishHoles_5() { + sub_0801AFE4(); +} + +extern u32 gUnk_080DB910; + +u32 sub_unk3_TownMinishHoles_LibraryBookshelf(void) { + if (CheckGlobalFlag(MIZUKAKI_START) && !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { + gRoomVars.field_0x6c[1] = &gUnk_080DB910; + } + return 1; +} + +extern EntityData gUnk_080DB8F0; +extern EntityData gUnk_additional_a_TownMinishHoles_LibraryBookshelf; + +void sub_StateChange_TownMinishHoles_LibraryBookshelf(void) { + LoadRoomEntityList(&gUnk_080DB8F0); + if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START)) { + LoadRoomEntityList(&gUnk_additional_a_TownMinishHoles_LibraryBookshelf); + } + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_LibrariBookHouse() { + return 1; +} + +extern EntityData gUnk_080DBA08; + +void sub_StateChange_TownMinishHoles_LibrariBookHouse(void) { + if (GetInventoryValue(ITEM_FLIPPERS) || !CheckLocalFlag(KOBITO_DOUKUTU_09_T0)) { + LoadRoomEntityList(&gUnk_080DBA08); + } + sub_0801AFE4(); +} + +u32 sub_unk3_TownMinishHoles_RemShoeShop() { + return 1; +} + +extern EntityData gUnk_080DBB50; +extern EntityData gUnk_080DBB70; +extern EntityData gUnk_080DBB10; +extern EntityData gUnk_080DBAD0; +extern EntityData gUnk_080DBB90; + +void sub_StateChange_TownMinishHoles_RemShoeShop(void) { + u32 tilePos; + u32 i; + + if (!CheckLocalFlag(KOBITO_DOUKUTU_00_T0)) { + LoadRoomEntityList(&gUnk_080DBB50); + } + + if (GetInventoryValue(ITEM_PEGASUS_BOOTS) == 1) { + LoadRoomEntityList(&gUnk_080DBB70); + LoadRoomEntityList(&gUnk_080DBB10); + } else { + LoadRoomEntityList(&gUnk_080DBAD0); + } + if (!CheckLocalFlag(KOBITO_DOUKUTU_05_T0)) { + tilePos = 0x140; + for (i = 0; i < 0x13; i++, tilePos++) { + SetTileType(0x4072, tilePos, 1); + } + } + LoadRoomEntityList(&gUnk_080DBB90); + sub_0801AFE4(); +} + +u32 sub_unk3_MinishCaves_BeanPesto() { + return 1; +} + +void sub_StateChange_MinishCaves_BeanPesto() { +} + +u32 sub_unk3_MinishCaves_SoutheastWater1() { + return 1; +} + +void sub_StateChange_MinishCaves_SoutheastWater1() { +} + +u32 sub_unk3_MinishCaves_SoutheastWater2() { + return 1; +} + +void sub_StateChange_MinishCaves_SoutheastWater2() { +} + +u32 sub_unk3_MinishCaves_Ruins() { + return 1; +} + +void sub_StateChange_MinishCaves_Ruins() { +} + +u32 sub_unk3_MinishCaves_OutsideLinksHouse() { + return 1; +} + +void sub_StateChange_MinishCaves_OutsideLinksHouse() { +} + +u32 sub_unk3_MinishCaves_MinishWoodsNorth1() { + return 1; +} + +void sub_StateChange_MinishCaves_MinishWoodsNorth1() { +} + +u32 sub_unk3_MinishCaves_MinishWoodsNorth2() { + return 1; +} + +void sub_StateChange_MinishCaves_MinishWoodsNorth2() { +} + +u32 sub_unk3_MinishCaves_LakeHyliaNorth() { + return 1; +} + +void sub_StateChange_MinishCaves_LakeHyliaNorth() { +} + +u32 sub_unk3_MinishCaves_LakeHyliaLibrari() { + return 1; +} + +void sub_StateChange_MinishCaves_LakeHyliaLibrari() { +} + +u32 sub_unk3_MinishCaves_MinishWoodsSouthwest() { + return 1; +} + +void sub_StateChange_MinishCaves_MinishWoodsSouthwest() { +} + +u32 sub_unk3_MinishVillage_Main() { + return 1; +} + +extern EntityData gUnk_080DC390; +extern EntityData gUnk_080DC3F0; +extern EntityData gUnk_080DC430; +extern EntityData gUnk_080DC530; +extern EntityData gUnk_080DC470; +extern EntityData gUnk_080DC4C0; + +void sub_StateChange_MinishVillage_Main(void) { + if (!GetInventoryValue(ITEM_JABBERNUT)) { + LoadRoomEntityList(&gUnk_080DC390); + if (!CheckLocalFlagByBank(0x200, 0x80)) { + LoadRoomEntityList(&gUnk_080DC3F0); + } + } else { + LoadRoomEntityList(&gUnk_080DC430); + if (!GetInventoryValue(ITEM_GUST_JAR)) { + LoadRoomEntityList(&gUnk_080DC530); + } + } + if ((!CheckLocalFlagByBank(FLAG_BANK_2, M_ELDER_TALK2ND)) && GetInventoryValue(ITEM_GUST_JAR)) { + LoadRoomEntityList(&gUnk_080DC470); + } + if (!CheckLocalFlag(0x8d)) { + LoadRoomEntityList(&gUnk_080DC4C0); + } + sub_08057E64(); +} + +u32 sub_unk3_MinishVillage_SideHouse() { + return 1; +} + +void sub_StateChange_MinishVillage_SideHouse() { +} + +typedef struct { + u8 LO[0x4000]; + u8 HI[0x4000]; +} struct_086D4460; + +extern struct_086D4460 gUnk_086D4460; + +void sub_unk2_MinishVillage_SideHouse(void) { + LoadResourceAsync(&gUnk_086D4460.LO, 0x6000000, 0x4000); + LoadResourceAsync(&gUnk_086D4460.HI, 0x6008000, 0x4000); + LoadPaletteGroup(0x19); +} + +u32 sub_unk3_CastleGardenMinishHoles_East() { + return 1; +} + +void sub_StateChange_CastleGardenMinishHoles_East() { +} + +u32 sub_unk3_CastleGardenMinishHoles_West() { + return 1; +} + +void sub_StateChange_CastleGardenMinishHoles_West() { +} + +u32 sub_unk3_37_0() { + return 1; +} + +void sub_StateChange_37_0() { +} + +u32 sub_unk3_37_1() { + return 1; +} + +void sub_StateChange_37_1() { +} + +u32 sub_unk3_MinishCracks_LonLonRanchNorth() { + return 1; +} + +void sub_StateChange_MinishCracks_LonLonRanchNorth() { +} + +u32 sub_unk3_MinishCracks_LakeHyliaEast() { + return 1; +} + +void sub_StateChange_MinishCracks_LakeHyliaEast() { +} + +u32 sub_unk3_MinishCracks_HyruleCastleGarden() { + return 1; +} + +void sub_StateChange_MinishCracks_HyruleCastleGarden() { +} + +u32 sub_unk3_MinishCracks_MtCrenel() { + return 1; +} + +void sub_StateChange_MinishCracks_MtCrenel() { +} + +u32 sub_unk3_MinishCracks_EastHyruleCastle() { + return 1; +} + +void sub_StateChange_MinishCracks_EastHyruleCastle() { +} + +u32 sub_unk3_MinishCracks_5() { + return 1; +} + +void sub_StateChange_MinishCracks_5() { +} + +u32 sub_unk3_MinishCracks_CastleWildsBowHole() { + return 1; +} + +extern EntityData gUnk_080DCB10; + +void sub_StateChange_MinishCracks_CastleWildsBowHole(void) { + if (!GetInventoryValue(ITEM_BOW)) { + LoadRoomEntityList(&gUnk_080DCB10); + } +} + +u32 sub_unk3_MinishCracks_RuinsEntrance() { + return 1; +} + +void sub_StateChange_MinishCracks_RuinsEntrance() { +} + +u32 sub_unk3_MinishCracks_MinishWoodsSouth() { + return 1; +} + +void sub_StateChange_MinishCracks_MinishWoodsSouth() { +} + +u32 sub_unk3_MinishCracks_CastorWildsNorth() { + return 1; +} + +void sub_StateChange_MinishCracks_CastorWildsNorth() { +} + +u32 sub_unk3_MinishCracks_CastorWildsWest() { + return 1; +} + +void sub_StateChange_MinishCracks_CastorWildsWest() { +} + +u32 sub_unk3_MinishCracks_CastorWildsMiddle() { + return 1; +} + +void sub_StateChange_MinishCracks_CastorWildsMiddle() { +} + +u32 sub_unk3_MinishCracks_RuinsTektite() { + return 1; +} + +void sub_StateChange_MinishCracks_RuinsTektite() { +} + +u32 sub_unk3_MinishCracks_CastorWildsNextToBow() { + return 1; +} + +void sub_StateChange_MinishCracks_CastorWildsNextToBow() { +} + +u32 sub_unk3_MinishCracks_E() { + return 1; +} + +void sub_StateChange_MinishCracks_E() { +} + +u32 sub_unk3_MinishCracks_F() { + return 1; +} + +void sub_StateChange_MinishCracks_F() { +} + +u32 sub_unk3_MinishCracks_10() { + return 1; +} + +void sub_StateChange_MinishCracks_10() { +} + +u32 sub_unk3_MinishCracks_11() { + return 1; +} + +void sub_StateChange_MinishCracks_11() { +} + +u32 sub_unk3_MelarisMine_Main() { + return 1; +} + +extern EntityData gUnk_additional_8_MelarisMine_Main; +extern EntityData gUnk_additional_9_MelarisMine_Main; +extern EntityData gUnk_080DD294; + +void sub_StateChange_MelarisMine_Main(void) { + if (!CheckGlobalFlag(WHITE_SWORD_END)) { + LoadRoomEntityList(&gUnk_additional_8_MelarisMine_Main); + } + if (!CheckLocalFlag(0x7f)) { + LoadRoomEntityList(&gUnk_additional_9_MelarisMine_Main); + } else { + LoadRoomEntityList(&gUnk_080DD294); + } + SetLocalFlag(0x8e); +} + +u32 sub_unk3_CloudTops_House() { + return 1; +} + +extern EntityData gUnk_080DD364; + +void sub_StateChange_CloudTops_House(void) { + if (!(gSave.windcrests & 0x4000000)) { + LoadRoomEntityList(&gUnk_080DD364); + } +} + +void sub_unk1_CloudTops_House(void) { + if (!(gSave.windcrests & 0x4000000)) { + LoadRoomEntityList(&gUnk_080DD364); + } +} + +u32 sub_unk3_CloudTops_Middle() { + return 1; +} + +void sub_StateChange_CloudTops_Middle() { +} + +u32 sub_unk3_CloudTops_Bottom() { + return 1; +} + +extern EntityData gUnk_080DD7E0; +extern EntityData gUnk_080DD840; + +void sub_StateChange_CloudTops_Bottom(void) { + + if (CheckGlobalFlag(KUMOTATSUMAKI)) { + sub_0809F814(0x6de); + } +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckLocalFlag(0xf0)) { +#else + if (CheckLocalFlag(0xf3)) { +#endif + sub_0809F814(0xe0); + } else { + LoadRoomEntityList(&gUnk_080DD7E0); + } +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckLocalFlag(0xf2)) { +#else + if (CheckLocalFlag(0xf5)) { +#endif + sub_0809F814(0xba3); + } else { + LoadRoomEntityList(&gUnk_080DD840); + } +} + +u32 sub_unk3_Ruins_Entrance() { + return 1; +} + +void sub_StateChange_Ruins_Entrance() { + sub_080300E8(); +#if defined(JP) || defined(EU) || defined(DEMO_JP) + SetLocalFlag(0x25); +#else + SetLocalFlag(0x24); +#endif +} + +u32 sub_unk3_Ruins_Beanstalk() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk() { +} + +u32 sub_unk3_Ruins_TripleTektites() { + return 1; +} + +extern EntityData gUnk_080DDE88; + +void sub_StateChange_Ruins_TripleTektites(void) { + + if (CheckKinstoneFused(0x41)) { + LoadRoomEntityList(&gUnk_080DDE88); + } +} + +void sub_unk1_Ruins_TripleTektites(void) { +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_03_00)) { +#else + if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_02_00)) { +#endif + SetDirtTile(0x85); + } +} + +u32 sub_unk3_Ruins_LadderToTektites() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites() { +} + +u32 sub_unk3_Ruins_FortressEntrance() { + return 1; +} + +extern EntityData gUnk_080DE008; + +void sub_StateChange_Ruins_FortressEntrance(void) { + sub_080300E8(); + if (CheckGlobalFlag(LV3_CLEAR) && !CheckLocalFlag(3)) { + LoadRoomEntityList(&gUnk_080DE008); + } +} + +u32 sub_unk3_Ruins_Armos() { + return 1; +} + +extern EntityData gUnk_080DE1E0; +extern EntityData gUnk_080DE200; + +void sub_StateChange_Ruins_Armos(void) { + sub_080300E8(); +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x31)) { +#else + if (!CheckLocalFlag(0x30)) { +#endif + LoadRoomEntityList(&gUnk_080DE1E0); + } +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x32)) { +#else + if (!CheckLocalFlag(0x31)) { +#endif + LoadRoomEntityList(&gUnk_080DE200); + } +} + +u32 sub_unk3_DeepwoodShrine_Madderpillar() { + return 1; +} + +extern EntityData gUnk_080DE4C8; + +void sub_StateChange_DeepwoodShrine_Madderpillar(void) { + if ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) < (gRoomControls.height >> 1)) { + if (!CheckLocalFlag(0x17)) { + LoadRoomEntityList(&gUnk_080DE4C8); + } + } +} + +u32 sub_unk3_DeepwoodShrine_BluePortal() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_BluePortal() { +} + +u32 sub_unk3_DeepwoodShrine_StairsToB1() { + return 1; +} + +extern EntityData gUnk_080DE814; +extern EntityData gUnk_additional_8_DeepwoodShrine_StairsToB1; + +void sub_StateChange_DeepwoodShrine_StairsToB1(void) { + if (!CheckLocalFlag(0x4b)) { + LoadRoomEntityList(&gUnk_080DE814); + } else { + if (!CheckLocalFlag(0x4c)) { + LoadRoomEntityList(&gUnk_additional_8_DeepwoodShrine_StairsToB1); + SetTileType(0x79, 0x285, 1); + } else { + SetTileType(0x7a, 0x285, 1); + if (!CheckLocalFlag(0x24)) { + SetTileType(0x73, 0x205, 1); + } + } + } +} + +u32 sub_unk3_DeepwoodShrine_PotBridge() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_PotBridge() { +} + +u32 sub_unk3_DeepwoodShrine_DoubleStatue() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_DoubleStatue() { +} + +u32 sub_unk3_DeepwoodShrine_Map() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Map() { +} + +u32 sub_unk3_DeepwoodShrine_Barrel() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Barrel(void) { + if (gSave.unk7 == 0) { + goto a; + } + if (gSave.unk7 != 2) { + a: + SetTileType(0x90, 0x20b, 1); + SetTileType(0x90, 0x411, 1); + } else { + SetTileType(0x90, 0x211, 1); + SetTileType(0x90, 0x40b, 1); + } + if (CheckLocalFlag(0x15)) { + SetTileType(0x76, 0x304, 2); + } + if (CheckLocalFlag(0x16)) { + SetTileType(0x76, 0x318, 2); + } +} + +u32 sub_unk3_DeepwoodShrine_Button() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Button() { +} + +u32 sub_unk3_DeepwoodShrine_Mulldozer() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Mulldozer() { +} + +u32 sub_unk3_DeepwoodShrine_Pillars() { + return 1; +} +void sub_StateChange_DeepwoodShrine_Pillars() { +} + +u32 sub_unk3_DeepwoodShrine_Lever() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Lever() { +} + +u32 sub_unk3_DeepwoodShrine_Entrance() { + return 1; +} + +#if defined(DEMO_USA) || defined(DEMO_JP) +void sub_StateChange_DeepwoodShrine_Entrance() { +#ifdef DEMO_USA + if (gSaveHeader->saveFileId != 0 && GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { +#else +#ifdef DEMO_JP + if (GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { +#endif +#endif + SetTileType(0x365, 0x349, 1); + SetTileType(0x365, 0x34a, 1); + SetTileType(0x365, 0x34b, 1); + } +} +#else +void sub_StateChange_DeepwoodShrine_Entrance() { +} +#endif + +u32 sub_unk3_DeepwoodShrine_Torch() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Torch() { +} + +u32 sub_unk3_DeepwoodShrine_BossKey() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_BossKey() { +} + +u32 sub_unk3_DeepwoodShrine_Compass() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_Compass() { +} + +u32 sub_unk3_DeepwoodShrine_13() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_13() { +} + +u32 sub_unk3_DeepwoodShrine_LilyPadWest() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_LilyPadWest() { +} + +u32 sub_unk3_DeepwoodShrine_LilyPadEast() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_LilyPadEast() { +} + +u32 sub_unk3_DeepwoodShrineBoss_Main() { + return 1; +} + +extern EntityData gUnk_additional_a_DeepwoodShrineBoss_Main; + +extern u8 gUpdateVisibleTiles; +extern u32 gUsedPalettes; + +void sub_StateChange_DeepwoodShrineBoss_Main(void) { + + if (!CheckLocalFlag(0x48)) { + SetLocalFlag(0x48); + MenuFadeIn(5, 0); + gUpdateVisibleTiles = 0; + gFadeControl.active = 0; + gUsedPalettes = 0; + *(u16*)0x5000000 = 0x7fff; + DispReset(1); + } + if (CheckGlobalFlag(LV1_CLEAR)) { + LoadRoomEntityList(&gUnk_additional_a_DeepwoodShrineBoss_Main); + } else { + SoundReq(SONG_STOP_BGM); + gArea.musicIndex = gArea.pMusicIndex; + } +} + +u32 sub_unk3_DeepwoodShrine_PreBoss() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_PreBoss() { +} + +u32 sub_unk3_DeepwoodShrine_InsideBarrel() { + return 1; +} + +void sub_StateChange_DeepwoodShrine_InsideBarrel(void) { + sub_08058D34(); + gArea.areaMetadata |= 0x40; + gMain.transition = 5; +} + +u32 sub_unk3_DeepwoodShrineEntry_Main() { + return 1; +} + +extern EntityData gUnk_080DFB78; + +void sub_StateChange_DeepwoodShrineEntry_Main(void) { + if (CheckGlobalFlag(LV1_CLEAR) && !CheckLocalFlagByBank(FLAG_BANK_1, LV1_CLEAR_MES)) { + LoadRoomEntityList(&gUnk_080DFB78); + } +} + +u32 sub_unk3_CaveOfFlames_AfterCane() { + return 1; +} + +void sub_StateChange_CaveOfFlames_AfterCane() { +} + +u32 sub_unk3_CaveOfFlames_SpinyChus() { + return 1; +} + +void sub_StateChange_CaveOfFlames_SpinyChus() { +} + +u32 sub_unk3_CaveOfFlames_CartToSpinyChus() { + return 1; +} + +void sub_StateChange_CaveOfFlames_CartToSpinyChus() { +} + +u32 sub_unk3_CaveOfFlames_Entrance() { + return 1; +} + +#ifdef DEMO_USA +void sub_StateChange_CaveOfFlames_Entrance() { + if (GetInventoryValue(ITEM_FIRE_ELEMENT) == 0) { + SetTileType(0x365, 0x287, 2); + SetTileType(0x365, 0x288, 2); + SetTileType(0x365, 0x289, 2); + } +} +#else +void sub_StateChange_CaveOfFlames_Entrance() { +} +#endif + +u32 sub_unk3_CaveOfFlames_MainCart() { + return 1; +} + +void sub_StateChange_CaveOfFlames_MainCart() { +} + +u32 sub_unk3_CaveOfFlames_NorthEntrance() { + return 1; +} + +void sub_StateChange_CaveOfFlames_NorthEntrance() { +} + +u32 sub_unk3_CaveOfFlames_CartWest() { + return 1; +} + +void sub_StateChange_CaveOfFlames_CartWest() { +} + +u32 sub_unk3_CaveOfFlames_Helmasaur() { + return 1; +} + +void sub_StateChange_CaveOfFlames_Helmasaur() { +} + +u32 sub_unk3_CaveOfFlames_Rollobite() { + return 1; +} + +void sub_StateChange_CaveOfFlames_Rollobite() { +} + +u32 sub_unk3_CaveOfFlames_MinishLava() { + return 1; +} + +void sub_StateChange_CaveOfFlames_MinishLava() { +} + +u32 sub_unk3_CaveOfFlames_MinishSpikes() { + return 1; +} + +void sub_StateChange_CaveOfFlames_MinishSpikes() { +} + +u32 sub_unk3_CaveOfFlames_RollobiteSwitch() { + return 1; +} + +void sub_StateChange_CaveOfFlames_RollobiteSwitch() { +} + +extern u32 gUnk_080E103C; + +u32 sub_unk3_CaveOfFlames_BeforeGleerok(void) { + if (CheckGlobalFlag(LV2_CLEAR)) { + gRoomVars.field_0x6c[1] = &gUnk_080E103C; + } + return 1; +} + +void sub_StateChange_CaveOfFlames_BeforeGleerok() { +} + +u32 sub_unk3_CaveOfFlames_PathBossKey() { + return 1; +} + +void sub_StateChange_CaveOfFlames_PathBossKey() { +} + +u32 sub_unk3_CaveOfFlames_PathBossKey2() { + return 1; +} + +void sub_StateChange_CaveOfFlames_PathBossKey2() { +} + +u32 sub_unk3_CaveOfFlames_Compass() { + return 1; +} + +void sub_StateChange_CaveOfFlames_Compass() { +} + +u32 sub_unk3_CaveOfFlames_Bobomb() { + return 1; +} + +void sub_StateChange_CaveOfFlames_Bobomb() { +} + +u32 sub_unk3_CaveOfFlames_BossDoor() { + return 1; +} + +void sub_StateChange_CaveOfFlames_BossDoor() { +} + +u32 sub_unk3_CaveOfFlames_18() { + return 1; +} + +void sub_StateChange_CaveOfFlames_18() { +} + +u32 sub_unk3_CaveOfFlamesBoss_Main() { + return 1; +} + +extern EntityData gUnk_additional_a_CaveOfFlamesBoss_Main; + +extern u32 gUnk_0200B650; + +void sub_StateChange_CaveOfFlamesBoss_Main(void) { + + if (CheckGlobalFlag(LV2_CLEAR)) { + gUnk_0200B650 = 0; + gScreen.lcd.displayControl &= ~DISPCNT_BG1_ON; + sub_0807AABC(&gPlayerEntity); + LoadRoomEntityList(&gUnk_additional_a_CaveOfFlamesBoss_Main); + } else { + SoundReq(SONG_STOP_BGM); + gArea.musicIndex = gArea.pMusicIndex; + } +} + +u32 sub_unk3_FortressOfWinds_Eyegore() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Eyegore() { +} + +u32 sub_unk3_FortressOfWinds_BeforeMazaal() { + return 1; +} + +void sub_StateChange_FortressOfWinds_BeforeMazaal(void) { + gScreenTransition.field_0x38 = 0; + gScreenTransition.field_0x39 = 0x5a; +} + +u32 sub_unk3_FortressOfWinds_EastKeyLever() { + return 1; +} + +void sub_StateChange_FortressOfWinds_EastKeyLever() { + sub_080300E8(); +} + +u32 sub_unk3_FortressOfWinds_PitPlatforms() { + return 1; +} + +void sub_StateChange_FortressOfWinds_PitPlatforms() { +} + +u32 sub_unk3_FortressOfWinds_WestKeyLever() { + return 1; +} + +void sub_StateChange_FortressOfWinds_WestKeyLever() { + sub_080300E8(); +} + +u32 sub_unk3_FortressOfWinds_Darknut() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Darknut() { +} + +u32 sub_unk3_FortressOfWinds_EyeBridge() { + return 1; +} + +void sub_StateChange_FortressOfWinds_EyeBridge() { +} + +u32 sub_unk3_FortressOfWinds_Pit() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Pit() { +} + +u32 sub_unk3_FortressOfWinds_Wallmaster() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Wallmaster() { +} + +u32 sub_unk3_FortressOfWinds_Clone() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Clone() { +} + +u32 sub_unk3_FortressOfWinds_SpikeTraps() { + return 1; +} + +void sub_StateChange_FortressOfWinds_SpikeTraps() { +} + +u32 sub_unk3_FortressOfWinds_Mazaal() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Mazaal(void) { + + if (!CheckFlags(0x31)) { + if (gScreenTransition.field_0x38 == 0) { + SoundReq(SONG_STOP_BGM); + } else { + if (gScreenTransition.field_0x39 == 0) { + SoundReq(SONG_STOP); + SetPlayerControl(3); + } + } + gArea.musicIndex = gArea.pMusicIndex; + } +} + +u32 sub_unk3_FortressOfWinds_Stalfos() { + return 1; +} + +void sub_StateChange_FortressOfWinds_Stalfos() { +} + +u32 sub_unk3_FortressOfWinds_EntranceMoleMitts() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade0() { +} + +u32 sub_unk3_FortressOfWinds_Main2F() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade1() { +} + +u32 sub_unk3_FortressOfWinds_MinishHole() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade2() { +} + +u32 sub_unk3_FortressOfWinds_BossKey() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade3() { +} + +u32 sub_unk3_FortressOfWinds_WestStairs2F() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade4() { +} + +u32 sub_unk3_FortressOfWinds_EastStairs2F() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade5() { +} + +u32 sub_unk3_FortressOfWinds_WestStairs1F() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade6() { +} + +u32 sub_unk3_FortressOfWinds_CenterStairs1F() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade7() { +} + +u32 sub_unk3_FortressOfWinds_EastStairs1F() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade8() { +} + +u32 sub_unk3_FortressOfWinds_Wizzrobe() { + return 1; +} + +void sub_StateChange_Dojos_Waveblade9() { +} + +u32 sub_unk3_FortressOfWinds_HeartPiece() { + return 1; +} + +void sub_StateChange_Dojos_70() { +} + +u32 sub_unk3_InnerMazaal_Main() { + return 1; +} + +void sub_StateChange_Dojos_71() { +} + +u32 sub_unk3_FortressOfWindsTop_Main() { + return 1; +} + +extern EntityData gUnk_080E3850; + +void sub_StateChange_FortressOfWindsTop_Main(void) { + SetGlobalFlag(LV3_CLEAR); + UpdateGlobalProgress(); + sub_0805B4D0(3); + if (!GetInventoryValue(ITEM_OCARINA) && CheckLocalFlag(0x45)) { + LoadRoomEntityList(&gUnk_080E3850); + } +} + +u32 sub_unk3_TempleOfDroplets_WestHole() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_WestHole() { + sub_0804D0B4(); +} + +void sub_0804D0B4(void) { + if (!CheckLocalFlag(0x29)) { + SetLocalFlag(0x29); + SetLocalFlag(0x4b); + SetLocalFlag(0x4e); + } +} + +u32 sub_unk3_TempleOfDroplets_NorthSplit() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_NorthSplit() { +} + +u32 sub_unk3_TempleOfDroplets_EastHole() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_EastHole() { +} + +u32 sub_unk3_TempleOfDroplets_Entrance() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_Entrance() { +} + +u32 sub_unk3_TempleOfDroplets_NorthwestStairs() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_NorthwestStairs() { +} + +u32 sub_unk3_TempleOfDroplets_ScissorsMiniboss() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_ScissorsMiniboss() { +} + +u32 sub_unk3_TempleOfDroplets_WaterfallNorthwest() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_WaterfallNorthwest() { +} + +u32 sub_unk3_TempleOfDroplets_WaterfallNortheast() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_WaterfallNortheast() { +} + +u32 sub_unk3_TempleOfDroplets_Element() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_Element() { +} + +u32 sub_unk3_TempleOfDroplets_IceCorner() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_IceCorner() { +} + +u32 sub_unk3_TempleOfDroplets_IcePitMaze() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_IcePitMaze() { +} + +u32 sub_unk3_TempleOfDroplets_HoleToBlueChuchu() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_HoleToBlueChuchu() { +} + +u32 sub_unk3_TempleOfDroplets_WaterfallSoutheast() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_WaterfallSoutheast() { +} + +u32 sub_unk3_TempleOfDroplets_WaterfallSouthwest() { + return 1; +} + +void sub_StateChange_TempleOfDroplets_WaterfallSouthwest() { +} + +u32 sub_unk3_TempleOfDroplets_BigOcto() { + return 1; +} + +extern EntityData gUnk_additional_a_TempleOfDroplets_BigOcto; + +void sub_StateChange_TempleOfDroplets_BigOcto(void) { + ChangeLightLevel(0x100); + if (CheckGlobalFlag(LV4_CLEAR)) { + LoadRoomEntityList(&gUnk_additional_a_TempleOfDroplets_BigOcto); + } else { + SoundReq(SONG_STOP_BGM); + gArea.musicIndex = gArea.pMusicIndex; + } +} + +u32 sub_unk3_TempleOfDroplets_ToBigBlueChuchu() { + return 1; +} + +void sub_StateChange_Dojos_72() { +} + +u32 sub_unk3_TempleOfDroplets_BigBlueChuchu() { + return 1; +} + +extern EntityData gUnk_080E4BD8; + +void sub_StateChange_TempleOfDroplets_BigBlueChuchu(void) { + if (!CheckLocalFlag(0x48)) { + ClearLocalFlag(0x46); + LoadRoomEntityList(&gUnk_080E4BD8); + } +} + +u32 sub_unk3_TempleOfDroplets_BigBlueChuchuKey() { + return 1; +} + +extern EntityData gUnk_080E4CF8; +extern EntityData gUnk_080E4CD8; + +void sub_StateChange_TempleOfDroplets_BigBlueChuchuKey(void) { + sub_0804D0B4(); + if (CheckLocalFlag(0x6c)) { + LoadRoomEntityList(&gUnk_080E4CD8); + } else { + LoadRoomEntityList(&gUnk_080E4CF8); + } + if (!CheckLocalFlag(0x4b)) { + ClearLocalFlag(0x49); + } +} + +u32 sub_unk3_TempleOfDroplets_BossKey() { + return 1; +} + +void sub_StateChange_Dojos_73() { +} + +u32 sub_unk3_TempleOfDroplets_NorthSmallKey() { + return 1; +} + +void sub_StateChange_Dojos_74() { +} + +u32 sub_unk3_TempleOfDroplets_BlockCloneButtonPuzzle() { + return 1; +} + +void sub_StateChange_Dojos_75() { +} + +u32 sub_unk3_TempleOfDroplets_BlockClonePuzzle() { + return 1; +} + +void sub_StateChange_Dojos_76() { +} + +u32 sub_unk3_TempleOfDroplets_BlockCloneIceBridge() { + return 1; +} + +void sub_StateChange_Dojos_77() { +} + +u32 sub_unk3_TempleOfDroplets_StairsToScissorsMiniboss() { + return 1; +} + +void sub_StateChange_Dojos_78() { +} + +u32 sub_unk3_TempleOfDroplets_SpikeBar() { + return 1; +} + +void sub_StateChange_Dojos_79() { +} + +u32 sub_unk3_TempleOfDroplets_Lanterns() { + return 1; +} + +void sub_StateChange_Dojos_80() { +} + +u32 sub_unk3_TempleOfDroplets_LilypadIceBlocks() { + return 1; +} + +extern EntityData gUnk_080E5660; +extern EntityData gUnk_080E5680; + +void sub_StateChange_TempleOfDroplets_LilypadIceBlocks(void) { + if (!CheckLocalFlag(0x59)) { + LoadRoomEntityList(&gUnk_080E5660); + } else { + LoadRoomEntityList(&gUnk_080E5680); + } +} + +u32 sub_unk3_TempleOfDroplets_Pit() { + return 1; +} + +void sub_StateChange_Dojos_81() { +} + +u32 sub_unk3_TempleOfDroplets_FireBars() { + return 1; +} + +void sub_StateChange_Dojos_82() { +} + +u32 sub_unk3_TempleOfDroplets_LanternMaze() { + return 1; +} + +void sub_StateChange_Dojos_83() { +} + +u32 sub_unk3_TempleOfDroplets_Madderpillars() { + return 1; +} + +void sub_StateChange_Dojos_84() { +} + +u32 sub_unk3_TempleOfDroplets_AfterMadderpillars() { + return 1; +} + +void sub_StateChange_Dojos_85() { +} + +u32 sub_unk3_TempleOfDroplets_BlueChuchuKeyLever() { + return 1; +} + +extern EntityData gUnk_080E5E3C; +extern EntityData gUnk_080E5E5C; + +void sub_StateChange_TempleOfDroplets_BlueChuchuKeyLever(void) { + sub_0804D0B4(); + if (!CheckLocalFlag(0x4b)) { + LoadRoomEntityList(&gUnk_080E5E3C); + } else { + LoadRoomEntityList(&gUnk_080E5E5C); + } +} + +u32 sub_unk3_TempleOfDroplets_MulldozerKey() { + return 1; +} + +void sub_StateChange_Dojos_86() { +} + +u32 sub_unk3_TempleOfDroplets_BombWall() { + return 1; +} + +void sub_StateChange_Dojos_87() { +} + +u32 sub_unk3_TempleOfDroplets_LilypadWestB2() { + return 1; +} + +void sub_StateChange_Dojos_88() { +} + +u32 sub_unk3_TempleOfDroplets_CompassRoom() { + return 1; +} + +void sub_StateChange_Dojos_89() { +} + +u32 sub_unk3_TempleOfDroplets_LanternScissors() { + return 1; +} + +void sub_StateChange_Dojos_90() { +} + +u32 sub_unk3_TempleOfDroplets_LilypadMiddleB2() { + return 1; +} + +void sub_StateChange_Dojos_91() { +} + +u32 sub_unk3_TempleOfDroplets_LilypadEastB2() { + return 1; +} + +void sub_StateChange_Dojos_92() { +} + +u32 sub_unk3_TempleOfDroplets_FlameBarBlockPuzzle() { + return 1; +} + +void sub_StateChange_Dojos_93() { +} + +u32 sub_unk3_RoyalCrypt_KingGustaf() { + return 1; +} + +extern EntityData gUnk_080E693C; + +void sub_StateChange_RoyalCrypt_KingGustaf(void) { + if (!CheckLocalFlag(0x32)) { + LoadRoomEntityList(&gUnk_080E693C); + } +} + +u32 sub_unk3_RoyalCrypt_WaterRope() { + return 1; +} + +void sub_StateChange_Dojos_94() { +} + +u32 sub_unk3_RoyalCrypt_Gibdo() { + return 1; +} + +void sub_StateChange_Dojos_95() { +} + +u32 sub_unk3_RoyalCrypt_3() { + return 1; +} + +void sub_StateChange_Dojos_96() { +} + +u32 sub_unk3_RoyalCrypt_KeyBlock() { + return 1; +} + +void sub_StateChange_Dojos_97() { +} + +u32 sub_unk3_RoyalCrypt_5() { + return 1; +} + +void sub_StateChange_Dojos_98() { +} + +u32 sub_unk3_RoyalCrypt_6() { + return 1; +} + +void sub_StateChange_Dojos_99() { +} + +u32 sub_unk3_RoyalCrypt_MushroomPit() { + return 1; +} + +void sub_StateChange_RoyalCrypt_MushroomPit() { + sub_08054570(); +} + +u32 sub_unk3_RoyalCrypt_Entrance() { + return 1; +} + +extern EntityData gUnk_080E718C; +extern EntityData gUnk_080E71AC; + +void sub_StateChange_RoyalCrypt_Entrance(void) { + SetTileType(0x312, 0x108, 1); + sub_08054570(); + if (!CheckLocalFlag(0xc4)) { + LoadRoomEntityList(&gUnk_080E718C); + } + if (!CheckLocalFlag(0xc5)) { + LoadRoomEntityList(&gUnk_080E71AC); + } +} + +u32 sub_unk3_PalaceOfWinds_0() { + return 1; +} + +extern EntityData gUnk_additional_9_PalaceOfWinds_0; +extern EntityData gUnk_080E72C4; +extern EntityData gUnk_additional_8_PalaceOfWinds_0; + +void sub_StateChange_PalaceOfWinds_0(void) { + Manager19_Main(NULL); + if (CheckGlobalFlag(LV5_CLEAR)) { + LoadRoomEntityList(&gUnk_additional_9_PalaceOfWinds_0); + } + if (!CheckLocalFlag(0x7b)) { + LoadRoomEntityList(&gUnk_080E72C4); + } else { + SetGlobalFlag(LV5_CLEAR); + if (!GetInventoryValue(ITEM_WIND_ELEMENT)) { + SetPlayerControl(3); + LoadRoomEntityList(&gUnk_additional_8_PalaceOfWinds_0); + gArea.musicIndex = gArea.pMusicIndex; + SoundReq(SONG_STOP_BGM); + } + } +} + +u32 sub_unk3_PalaceOfWinds_1() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_1() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_2() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_2() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_3() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_3() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_4() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_4() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_5() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_5() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_6() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_6() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_7() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_7() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_8() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_8() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_9() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_9() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_10() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_10() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_11() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_11() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_12() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_12() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_13() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_13() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_14() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_14() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_15() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_15() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_16() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_16() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_17() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_17() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_18() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_18() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_19() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_19() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_20() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_20() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_21() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_21() { +} + +u32 sub_unk3_PalaceOfWinds_22() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_22() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_23() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_23() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_24() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_24() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_25() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_25() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_26() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_26() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_27() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_27() { +} + +u32 sub_unk3_PalaceOfWinds_28() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_28() { +} + +u32 sub_unk3_PalaceOfWinds_29() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_29() { +} + +u32 sub_unk3_PalaceOfWinds_30() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_30() { +} + +u32 sub_unk3_PalaceOfWinds_31() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_31() { +} + +u32 sub_unk3_PalaceOfWinds_32() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_32() { +} + +u32 sub_unk3_PalaceOfWinds_33() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_33() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_34() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_34() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_35() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_35() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_36() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_36() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_37() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_37() { +} + +u32 sub_unk3_PalaceOfWinds_38() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_38() { +} + +u32 sub_unk3_PalaceOfWinds_39() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_39() { +} + +u32 sub_unk3_PalaceOfWinds_40() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_40() { +} + +u32 sub_unk3_PalaceOfWinds_41() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_41() { +} + +u32 sub_unk3_PalaceOfWinds_42() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_42() { +} + +u32 sub_unk3_PalaceOfWinds_43() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_43() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_44() { + return 1; +} + +extern EntityData gUnk_080EA09C; + +void sub_StateChange_PalaceOfWinds_44(void) { + Manager19_Main(NULL); + if (!CheckLocalFlag(0x70)) { + LoadRoomEntityList(&gUnk_080EA09C); + } +} + +u32 sub_unk3_PalaceOfWinds_45() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_45() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_46() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_46() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_47() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_47() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_48() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_48() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_49() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_49() { + Manager19_Main(NULL); +} + +u32 sub_unk3_PalaceOfWinds_50() { + return 1; +} + +void sub_StateChange_PalaceOfWinds_50() { +} + +u32 sub_unk3_PalaceOfWindsBoss_Main() { + return 1; +} + +void sub_StateChange_PalaceOfWindsBoss_Main() { +} + +u32 sub_unk3_Vaati2_Main() { + return 1; +} + +void sub_StateChange_Vaati2_Main(void) { + SoundReq(SONG_STOP_BGM); + gArea.musicIndex = gArea.pMusicIndex; +} + +u32 sub_unk3_Vaati3_Main() { + return 1; +} + +void sub_StateChange_Vaati3_Main(void) { + Manager2F_Main(NULL); + + if ((gScreenTransition.field_0x38 & 1) && gScreenTransition.field_0x39) { + if (gScreenTransition.field_0x3c == 1) { + gPlayerEntity.x.HALF.HI = gScreenTransition.field_0x48; + gPlayerEntity.y.HALF.HI = gScreenTransition.field_0x4a + 8; + } else { + if (gScreenTransition.field_0x3c) { + return; + } + gPlayerEntity.x.HALF.HI = gScreenTransition.field_0x44; + gPlayerEntity.y.HALF.HI = gScreenTransition.field_0x46 + 8; + } + } +} + +u32 sub_unk3_DarkHyruleCastleBridge_Main() { + return 1; +} + +void sub_StateChange_DarkHyruleCastleBridge_Main() { + sub_0805B4D0(6); +} + +u32 sub_unk3_VaatisArms_First() { + return 1; +} + +void sub_StateChange_VaatisArms_First() { +} + +u32 sub_unk3_VaatisArms_Second() { + return 1; +} + +void sub_StateChange_VaatisArms_Second() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_ZeldaStatuePlatform() { + sub_080534AC(); + return 1; +} + +extern EntityData gUnk_080EAD68; +extern EntityData gUnk_080EADB8; + +void sub_StateChange_DarkHyruleCastleOutside_ZeldaStatuePlatform(void) { + sub_0805B4D0(4); + if (!CheckLocalFlag(0x77)) { + LoadRoomEntityList(&gUnk_080EAD68); + } else if (!CheckLocalFlag(0x79)) { + LoadRoomEntityList(&gUnk_080EADB8); + SetTileType(0x4072, 0x145, 1); + SetTileType(0x4072, 0x149, 1); + gArea.pMusicIndex = 0; + } +} + +extern u16 gUnk_080EAE00; + +void sub_0804D7EC(void) { + u16 temp; + u16* tilePos; + + tilePos = &gUnk_080EAE00; + while (*tilePos != 0) { + temp = *tilePos; + tilePos++; + SetTileType(0x4072, temp, 1); + } +} + +void sub_0804D810(void) { + u16 uVar1; + u16* puVar2; + + puVar2 = &gUnk_080EAE00; + while (*puVar2 != 0) { + uVar1 = *puVar2; + puVar2++; + sub_0807BA8C(uVar1, 1); + } +} + +u32 sub_unk3_DarkHyruleCastleOutside_Garden() { + return 1; +} + +extern EntityData gUnk_080EAE60; +extern EntityData gUnk_080EAEC0; +extern EntityData gUnk_080EAF20; + +void sub_StateChange_DarkHyruleCastleOutside_Garden(void) { + gArea.areaMetadata = 0x40; + gArea.locationIndex = 0; + if (CheckGlobalFlag(ENDING)) { + if (!CheckLocalFlag(0x7f)) { + LoadRoomEntityList(&gUnk_080EAEC0); + SetLocalFlag(0x7f); + gArea.pMusicIndex = 0x11; + } else { + LoadRoomEntityList(&gUnk_080EAF20); + gArea.pMusicIndex = gArea.musicIndex; + } + } else { + if (CheckLocalFlag(0x79)) { + gArea.pMusicIndex = gArea.musicIndex; + } + if (!CheckLocalFlag(1)) { + LoadRoomEntityList(&gUnk_080EAE60); + } + } + ClearGlobalFlag(0x5d); +} + +u32 sub_unk3_DarkHyruleCastleOutside_OutsideNorthwest() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade0() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_OutsideNortheast() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade1() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_OutsideEast() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade2() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouthwest() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade3() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouth() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade4() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_OutsideSoutheast() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade5() { +} + +u32 sub_unk3_DarkHyruleCastleOutside_8() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade6() { +} + +extern u32 gUnk_080EB604; +extern u32 gUnk_080EB5D4; + +u32 sub_unk3_DarkHyruleCastle_0(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080EB604; + gRoomVars.field_0x6c[2] = 0; + gArea.musicIndex = gArea.pMusicIndex = BGM_BEAT_VAATI; + } else if (CheckLocalFlag(0x79)) { + gRoomVars.field_0x6c[0] = NULL; + if (!CheckLocalFlag(0x7a)) { + SetGlobalFlag(ZELDA_CHASE); + gRoomVars.field_0x6c[0] = &gUnk_080EB5D4; + gRoomVars.field_0x6c[7] = sub_0804D9B0; + gRoomVars.field_0x6c[2] = 0; + } + } + return 1; +} + +void sub_StateChange_DarkHyruleCastle_0(void) { + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } + + if (CheckLocalFlag(0x79)) { + sub_0804D9B0(); + } +} + +extern EntityData gUnk_080EB684; + +void sub_0804D9B0(void) { + sub_0807BB98(0x797, 1, 5, 1); + sub_0807BB98(0x357, 1, 5, 1); + sub_0807BB98(0x55f, 1, 2, 1); + LoadRoomEntityList(&gUnk_080EB684); + gArea.pMusicIndex = gArea.musicIndex; +} + +u32 sub_unk3_DarkHyruleCastle_1() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade7() { +} + +u32 sub_unk3_DarkHyruleCastle_2() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade8() { +} + +u32 sub_unk3_DarkHyruleCastle_3() { + return 1; +} + +void sub_StateChange_Dojos_ToGrimblade9() { +} + +u32 sub_unk3_DarkHyruleCastle_4() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade0() { +} + +u32 sub_unk3_DarkHyruleCastle_5() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade1() { +} + +u32 sub_unk3_DarkHyruleCastle_6(void) { + if (!CheckLocalFlag(0x77)) { + gRoomVars.field_0x6c[0] = 0; + gRoomVars.field_0x6c[2] = 0; + } + return 1; +} + +extern EntityData gUnk_080EB9F4; +extern EntityData gUnk_080EBAA4; +extern EntityData gUnk_080EBAF4; + +void sub_StateChange_DarkHyruleCastle_6(void) { + if (!CheckLocalFlag(0x77)) { + LoadRoomEntityList(&gUnk_080EB9F4); + } else { + if (!CheckLocalFlag(0x78)) { + LoadRoomEntityList(&gUnk_080EBAA4); + SetLocalFlag(0x75); + } + if (CheckLocalFlag(0x7b)) { + LoadRoomEntityList(&gUnk_080EBAF4); + SetLocalFlag(0x76); + } + } +} + +u32 sub_unk3_DarkHyruleCastle_7() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade2() { +} + +u32 sub_unk3_DarkHyruleCastle_8() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade3() { +} + +u32 sub_unk3_DarkHyruleCastle_9() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade4() { +} + +u32 sub_unk3_DarkHyruleCastle_10() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade5() { +} + +u32 sub_unk3_DarkHyruleCastle_11() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade6() { +} + +u32 sub_unk3_DarkHyruleCastle_12() { + return 1; +} +void sub_StateChange_Dojos_ToSplitblade7() { +} + +u32 sub_unk3_DarkHyruleCastle_13() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade8() { +} + +u32 sub_unk3_DarkHyruleCastle_14() { + return 1; +} + +extern EntityData gUnk_080EC2CC; + +void sub_StateChange_DarkHyruleCastle_14(void) { + if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x4c)) { + LoadRoomEntityList(&gUnk_080EC2CC); + } +} + +u32 sub_unk3_DarkHyruleCastle_15() { + return 1; +} + +void sub_StateChange_Dojos_ToSplitblade9() { +} + +u32 sub_unk3_DarkHyruleCastle_16() { + return 1; +} + +extern EntityData gUnk_080EC4E8; + +void sub_StateChange_DarkHyruleCastle_16(void) { + if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x4d)) { + LoadRoomEntityList(&gUnk_080EC4E8); + } +} + +u32 sub_unk3_DarkHyruleCastle_17() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade0() { +} + +u32 sub_unk3_DarkHyruleCastle_18() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade1() { +} + +u32 sub_unk3_DarkHyruleCastle_19() { + return 1; +} + +extern EntityData gUnk_080EC820; + +void sub_StateChange_DarkHyruleCastle_19(void) { + if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x53)) { + LoadRoomEntityList(&gUnk_080EC820); + } +} + +u32 sub_unk3_DarkHyruleCastle_20() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade2() { +} + +u32 sub_unk3_DarkHyruleCastle_21() { + return 1; +} + +extern EntityData gUnk_080ECA60; + +void sub_StateChange_DarkHyruleCastle_21(void) { + if (CheckLocalFlag(0x86) && !CheckLocalFlag(0x56)) { + LoadRoomEntityList(&gUnk_080ECA60); + } +} + +u32 sub_unk3_DarkHyruleCastle_22() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade3() { +} + +u32 sub_unk3_DarkHyruleCastle_23() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade4() { +} + +u32 sub_unk3_DarkHyruleCastle_24() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade5() { +} + +u32 sub_unk3_DarkHyruleCastle_25() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade6() { +} + +u32 sub_unk3_DarkHyruleCastle_26() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade7() { +} + +u32 sub_unk3_DarkHyruleCastle_27() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade8() { +} + +u32 sub_unk3_DarkHyruleCastle_28(void) { + if (CheckLocalFlag(0x79)) { + gRoomVars.field_0x6c[2] = 0; + } + return 1; +} + +extern EntityData gUnk_080ECFCC; + +void sub_StateChange_DarkHyruleCastle_28(void) { + if (CheckLocalFlag(0x79)) { + sub_0807BB98(0x90, 1, 1, 5); + LoadRoomEntityList(&gUnk_080ECFCC); + gArea.pMusicIndex = gArea.musicIndex; + } +} + +u32 sub_unk3_DarkHyruleCastle_29() { + return 1; +} + +void sub_StateChange_Dojos_ToGreatblade9() { +} + +u32 sub_unk3_DarkHyruleCastle_30() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade0() { +} + +extern u32 gUnk_080ED1E4; + +u32 sub_unk3_DarkHyruleCastle_31(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080ED1E4; + gRoomVars.field_0x6c[2] = 0; + } + return 1; +} + +void sub_StateChange_DarkHyruleCastle_31(void) { + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } +} + +u32 sub_unk3_DarkHyruleCastle_32() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade1() { +} + +u32 sub_unk3_DarkHyruleCastle_33() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade2() { +} + +u32 sub_unk3_DarkHyruleCastle_34() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade3() { +} + +u32 sub_unk3_DarkHyruleCastle_35() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade4() { +} + +u32 sub_unk3_DarkHyruleCastle_36() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade5() { +} + +u32 sub_unk3_DarkHyruleCastle_37() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade6() { +} + +u32 sub_unk3_DarkHyruleCastle_38() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade7() { +} + +u32 sub_unk3_DarkHyruleCastle_39() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade8() { +} + +u32 sub_unk3_DarkHyruleCastle_40() { + return 1; +} + +void sub_StateChange_Dojos_ToScarblade9() { +} + +u32 sub_unk3_DarkHyruleCastle_41() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave0() { +} + +u32 sub_unk3_DarkHyruleCastle_42() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave1() { +} + +u32 sub_unk3_DarkHyruleCastle_43() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave2() { +} + +u32 sub_unk3_DarkHyruleCastle_44() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave3() { +} + +u32 sub_unk3_DarkHyruleCastle_45() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave4() { +} + +u32 sub_unk3_DarkHyruleCastle_46() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave5() { +} + +u32 sub_unk3_DarkHyruleCastle_47() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave6() { +} + +u32 sub_unk3_DarkHyruleCastle_48() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave7() { +} + +u32 sub_unk3_DarkHyruleCastle_49() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave8() { +} + +u32 sub_unk3_DarkHyruleCastle_50() { + return 1; +} + +void sub_StateChange_GoronCave_StairsToCave9() { +} + +u32 sub_unk3_DarkHyruleCastle_51() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk0() { +} + +u32 sub_unk3_DarkHyruleCastle_52() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk1() { +} + +u32 sub_unk3_DarkHyruleCastle_53(void) { + if (CheckLocalFlag(0x79)) { + gRoomVars.field_0x6c[2] = 0; + gRoomVars.field_0x6c[0] = 0; + } + return 1; +} + +extern EntityData gUnk_080EE314; + +void sub_StateChange_DarkHyruleCastle_53(void) { + if (CheckLocalFlag(0x79)) { + sub_0807BB98(3, 2, 5, 1); + LoadRoomEntityList(&gUnk_080EE314); + gArea.pMusicIndex = gArea.musicIndex; + } +} + +u32 sub_unk3_DarkHyruleCastle_54() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk2() { +} + +u32 sub_unk3_DarkHyruleCastle_55(void) { + if (CheckLocalFlag(0x79)) { + gRoomVars.field_0x6c[2] = 0; + } + return 1; +} + +extern EntityData gUnk_080EE5DC; + +void sub_StateChange_DarkHyruleCastle_55(void) { + if (CheckLocalFlag(0x79)) { + sub_0807BB98(0x392, 2, 2, 5); + LoadRoomEntityList(&gUnk_080EE5DC); + gArea.pMusicIndex = gArea.musicIndex; + } +} + +u32 sub_unk3_DarkHyruleCastle_56() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk3() { +} + +u32 sub_unk3_DarkHyruleCastle_57() { + return 1; +} + +extern EntityData gUnk_080EE71C; + +void sub_StateChange_DarkHyruleCastle_57(void) { + if (CheckLocalFlag(1)) { + LoadRoomEntityList(&gUnk_080EE71C); + } +} + +u32 sub_unk3_DarkHyruleCastle_58() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk4() { +} + +ASM_FUNC("asm/non_matching/sub_unk3_HyruleTown_0.inc", u32 sub_unk3_HyruleTown_0(void)) + +extern EntityData gUnk_080EEB6C; +extern EntityData gUnk_080EEB8C; +extern EntityData gUnk_080EE88C; +extern EntityData gUnk_080EE8FC; +extern EntityData gUnk_080EE91C; +extern EntityData gUnk_080EECBC; +extern EntityData gUnk_080EE93C; +extern EntityData gUnk_080EE95C; +extern EntityData gUnk_080EE97C; +extern EntityData gUnk_080EE9BC; +extern EntityData gUnk_080EE99C; +extern EntityData gUnk_080EE9DC; +extern EntityData gUnk_080EEA3C; +extern EntityData gUnk_080EEA1C; +extern EntityData gUnk_080EE9FC; +extern EntityData gUnk_080EEA5C; +extern EntityData gUnk_080EEABC; +extern EntityData gUnk_080EEA7C; +extern EntityData gUnk_080EEA9C; +extern EntityData gUnk_080EEBAC; + +void sub_StateChange_HyruleTown_0(void) { + sub_08054570(); + TryLoadPrologueHyruleTown(); +#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) + SetTileType(0x176, 0x66b, 1); +#endif + if (gSave.global_progress == 1) { + sub_0801D000(0); + } else { + sub_08018C58(0xdb4); + if (!CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE04_DANRO)) { + LoadRoomEntityList(&gUnk_080EEB6C); + } + if (!CheckLocalFlagByBank(FLAG_BANK_2, MHOUSE06_DANRO)) { + LoadRoomEntityList(&gUnk_080EEB8C); + } + + if ((!GetInventoryValue(ITEM_KINSTONE_BAG)) && CheckGlobalFlag(LV1_CLEAR)) { + LoadRoomEntityList(&gUnk_080EE88C); + } + if (!CheckKinstoneFused(0x28)) { + LoadRoomEntityList(&gUnk_080EE8FC); + } + if (CheckKinstoneFused(0x33)) { + LoadRoomEntityList(&gUnk_080EE91C); + } + if (CheckGlobalFlag(MACHI_MACHIHOKORI)) { + LoadRoomEntityList(&gUnk_080EE93C); + } else { + LoadRoomEntityList(&gUnk_080EECBC); + } + if (CheckKinstoneFused(0x1b) && (gSave.global_progress > 3)) { + if (!(CheckGlobalFlag(NEW_HOUSE_DIN) || CheckGlobalFlag(NEW_HOUSE_NAYRU) || + CheckGlobalFlag(NEW_HOUSE_FARORE))) { + if (!(CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || + CheckGlobalFlag(RENTED_HOUSE_FARORE))) { + LoadRoomEntityList(&gUnk_080EE95C); + } else { + if (!CheckGlobalFlag(TATEKAKE_HOUSE)) { + LoadRoomEntityList(&gUnk_080EE97C); + } else { + LoadRoomEntityList(&gUnk_080EE9BC); + } + } + } else { + LoadRoomEntityList(&gUnk_080EE99C); + } + } + if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { + LoadRoomEntityList(&gUnk_080EE9FC); + } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { + LoadRoomEntityList(&gUnk_080EEA1C); + } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { + LoadRoomEntityList(&gUnk_080EEA3C); + } else { + LoadRoomEntityList(&gUnk_080EE9DC); + } + if ((gSave.global_progress > 4) && !CheckKinstoneFused(0xb) && + (CheckGlobalFlag(RENTED_HOUSE_DIN) || CheckGlobalFlag(RENTED_HOUSE_NAYRU) || + CheckGlobalFlag(RENTED_HOUSE_FARORE))) { + LoadRoomEntityList(&gUnk_080EEA5C); + } + // rocs cape +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0xcd) && GetInventoryValue(ITEM_ROCS_CAPE)) { +#else + if (!CheckLocalFlag(0xd0) && GetInventoryValue(ITEM_ROCS_CAPE)) { +#endif + LoadRoomEntityList(&gUnk_080EEABC); + } + if ((gSave.global_progress > 3) && CheckGlobalFlag(INLOCK)) { + LoadRoomEntityList(&gUnk_080EEA7C); + } + if ((gSave.global_progress < 6) && !CheckGlobalFlag(MIZUKAKI_START)) { + LoadRoomEntityList(&gUnk_080EEA9C); + } + if ((gSave.windcrests & 0x8000000) == 0) { + LoadRoomEntityList(&gUnk_080EEBAC); + } + sub_0804E150(); + } +} + +void sub_unk1_HyruleTown_8(void) { + if ((gSave.windcrests & 0x8000000) == 0) { + LoadRoomEntityList(&gUnk_080EEBAC); + } +} + +ASM_FUNC("asm/non_matching/sub_0804E150.inc", void sub_0804E150(void)) + +u32 sub_unk3_HyruleTownMinishCaves_Entrance() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_Entrance() { +} + +u32 sub_unk3_HyruleTownMinishCaves_NorthRoom() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_NorthRoom() { +} + +u32 sub_unk3_HyruleTownMinishCaves_PacciJump() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_PacciJump() { +} + +u32 sub_unk3_HyruleTownMinishCaves_MulldozerFight() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_MulldozerFight() { +} + +u32 sub_unk3_HyruleTownMinishCaves_WestChest() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_WestChest() { +} + +u32 sub_unk3_HyruleTownMinishCaves_Flippers() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_Flippers() { +} + +u32 sub_unk3_HyruleTownMinishCaves_Librari() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_Librari() { +} + +u32 sub_unk3_HyruleTownMinishCaves_WestFrozenChest() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_WestFrozenChest() { +} + +u32 sub_unk3_HyruleTownMinishCaves_CrossIntersection() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_CrossIntersection() { +} + +u32 sub_unk3_HyruleTownMinishCaves_SoutheastCorner() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_SoutheastCorner() { +} + +u32 sub_unk3_HyruleTownMinishCaves_Entrance2() { + return 1; +} + +void sub_StateChange_HyruleTownMinishCaves_Entrance2() { +} + +u32 sub_unk3_HyruleTownUnderground_Main() { + return 1; +} + +void sub_StateChange_HyruleTownUnderground_Main() { +} + +u32 sub_unk3_HyruleTownUnderground_Well() { + return 1; +} + +void sub_StateChange_HyruleTownUnderground_Well() { +} + +extern u32 gUnk_080F09A0; + +u32 sub_unk3_CastleGarden_Main(void) { + if (GetInventoryValue(ITEM_FOURSWORD)) { + gRoomVars.field_0x6c[1] = &gUnk_080F09A0; + } + return 1; +} + +extern EntityData gUnk_080F0650; +extern EntityData gUnk_080F0800; +extern EntityData gUnk_080F08F0; +extern EntityData gUnk_080F0850; +extern EntityData gUnk_080F0870; +extern EntityData gUnk_080F0890; +extern EntityData gUnk_080F0920; + +void sub_StateChange_CastleGarden_Main(void) { + if (!CheckGlobalFlag(TABIDACHI)) { + LoadRoomEntityList(&gUnk_080F0650); +#ifdef EU + gArea.pMusicIndex = BGM_FESTIVAL_APPROACH; +#else + gArea.pMusicIndex = BGM_BEANSTALK; + SetGlobalFlag(CASTLE_BGM); + } else { + if (CheckGlobalFlag(CASTLE_BGM)) { +#if defined(JP) || defined(DEMO_JP) + gArea.pMusicIndex = gArea.musicIndex; +#else + gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; +#endif + } +#endif + } +#if defined(JP) || defined(DEMO_JP) || defined(EU) + if (!CheckLocalFlag(0x9b)) { +#else + if (!CheckLocalFlag(0x9c)) { +#endif + LoadRoomEntityList(&gUnk_080F0800); + SetTileType(0x4072, 600, 1); + SetTileType(0x4072, 0x298, 1); + SetTileType(0x4072, 0x266, 1); + SetTileType(0x4072, 0x2a6, 1); + } else { + if (!GetInventoryValue(ITEM_FOURSWORD)) { + LoadRoomEntityList(&gUnk_080F08F0); + SetTileType(0x4072, 0x9e, 1); + SetTileType(0x4072, 0x9f, 1); + SetTileType(0x4072, 0xa0, 1); + } + LoadRoomEntityList(&gUnk_080F0850); + if (!GetInventoryValue(ITEM_WATER_ELEMENT)) { + LoadRoomEntityList(&gUnk_080F0870); + } else { + LoadRoomEntityList(&gUnk_080F0890); + } + SetTileType(0x4072, 600, 1); + SetTileType(0x4072, 0x298, 1); +#if defined(JP) || defined(DEMO_JP) || defined(EU) + if (CheckLocalFlag(0x11)) { +#else + if (CheckLocalFlag(0x10)) { +#endif + LoadRoomEntityList(&gUnk_080F0920); +#if defined(JP) || defined(DEMO_JP) || defined(EU) + ClearLocalFlag(0x11); +#else + ClearLocalFlag(0x10); +#endif + } + } + sub_080AF284(); +} + +u32 sub_unk3_SimonsSimulation_Main() { + ClearLocalFlag(1); + return 1; +} + +extern u8* gUnk_080F0D58[4]; +extern Entity* gUnk_080F0CB8[15]; +extern u8* gUnk_080F0E08[]; +extern struct { + u32 unk_00; + u32 unk_04; +} gUnk_080F0E1C[]; + +void sub_StateChange_SimonsSimulation_Main() { + u32 r; + u32 index; + u32 tmp; + tmp = CheckGlobalFlag(LV4_CLEAR); + index = BOOLCAST(tmp); + if (CheckGlobalFlag(LV5_CLEAR)) { + index = 2; + } + if (CheckGlobalFlag(GAMECLEAR)) { + index = 3; + } + r = Random(); + index = gUnk_080F0D58[index][r & 0x1f]; + LoadRoomEntityList((EntityData*)gUnk_080F0CB8[index & 0xF]); + index >>= 4; + r >>= 8; + index = gUnk_080F0E08[index][r & 0x1F]; + if (!CheckLocalFlag(0xC6)) { + SetLocalFlag(0xC6); + index = 0xE; + } + sub_0804B3C4(&gUnk_080F0E1C[index]); + SoundReq(SONG_STOP_BGM); +} + +u32 sub_unk3_HouseInteriors2_Stranger() { + return 1; +} + +extern EntityData gUnk_080F1C68; +extern EntityData gUnk_080F1C88; + +void sub_StateChange_HouseInteriors2_Stranger(void) { + if (!CheckGlobalFlag(POWERGLOVE_HINT)) { + LoadRoomEntityList(&gUnk_080F1C68); + } else { + LoadRoomEntityList(&gUnk_080F1C88); + } +} + +u32 sub_unk3_HouseInteriors2_WestOracle() { + return 1; +} + +extern EntityData gUnk_080F1D90; +extern EntityData gUnk_080F1DB0; +extern EntityData gUnk_080F1DD0; + +void sub_StateChange_HouseInteriors2_WestOracle(void) { + if (CheckGlobalFlag(NEW_HOUSE_DIN)) { + LoadRoomEntityList(&gUnk_080F1D90); + } else if (CheckGlobalFlag(NEW_HOUSE_NAYRU)) { + LoadRoomEntityList(&gUnk_080F1DB0); + } else if (CheckGlobalFlag(NEW_HOUSE_FARORE)) { + LoadRoomEntityList(&gUnk_080F1DD0); + } +} + +u32 sub_unk3_HouseInteriors2_2() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk5() { +} + +u32 sub_unk3_HouseInteriors2_3() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk6() { +} + +u32 sub_unk3_HouseInteriors2_DrLeft() { + return 1; +} + +extern EntityData gUnk_080F2174; +extern EntityData gUnk_080F2194; +extern EntityData gUnk_080F21B4; + +void sub_StateChange_HouseInteriors2_DrLeft(void) { + LoadRoomEntityList(&gUnk_080F2174); + if (!GetInventoryValue(ITEM_QST_BOOK2) && CheckGlobalFlag(MIZUKAKI_HARIFALL)) { + LoadRoomEntityList(&gUnk_080F2194); + } + if (gScreenTransition.player_status.spawn_type == PL_SPAWN_MINISH) { + LoadRoomEntityList(&gUnk_080F21B4); + } +} + +u32 sub_unk3_HouseInteriors2_Romio() { + return 1; +} + +extern EntityData gUnk_080F23BC; +extern EntityData gUnk_080F238C; +extern EntityData gUnk_additional_c_HouseInteriors2_Romio; + +void sub_StateChange_HouseInteriors2_Romio(void) { + if (gSave.global_progress > 7) { + LoadRoomEntityList(&gUnk_080F23BC); + } + if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START)) { + LoadRoomEntityList(&gUnk_080F238C); + } else { + LoadRoomEntityList(&gUnk_additional_c_HouseInteriors2_Romio); + } +} + +u32 sub_unk3_HouseInteriors2_Julietta() { + return 1; +} + +extern EntityData gUnk_080F2570; +extern EntityData gUnk_080F2590; +extern EntityData gUnk_080F25C0; +extern EntityData gUnk_080F2600; + +void sub_StateChange_HouseInteriors2_Julietta(void) { + switch (gSave.global_progress) { + case 0: + case 2: + case 4: + LoadRoomEntityList(&gUnk_080F2570); + break; + case 1: + case 3: + break; + case 5: + if (!GetInventoryValue(ITEM_FLIPPERS)) { + if (!CheckGlobalFlag(MIZUKAKI_START)) { + LoadRoomEntityList(&gUnk_080F2570); + break; + } + if (!GetInventoryValue(0x39)) { + LoadRoomEntityList(&gUnk_080F25C0); + } + } else { + LoadRoomEntityList(&gUnk_080F2590); + } + break; + case 8: + case 9: + LoadRoomEntityList(&gUnk_080F2600); + case 6: + case 7: + LoadRoomEntityList(&gUnk_080F2590); + } +} + +u32 sub_unk3_HouseInteriors2_Percy() { + return 1; +} + +extern EntityData gUnk_additional_9_HouseInteriors2_Percy; +extern EntityData gUnk_080F2860; +extern EntityData gUnk_additional_a_HouseInteriors2_Percy; +extern EntityData gUnk_080F27D8; +extern EntityData gUnk_080F2798; + +void sub_StateChange_HouseInteriors2_Percy(void) { + if (CheckKinstoneFused(0x21)) { + if (!CheckLocalFlag(0x42)) { + if (!CheckLocalFlag(0x43)) { + LoadRoomEntityList(&gUnk_additional_9_HouseInteriors2_Percy); + LoadRoomTileEntities(&gUnk_080F2860); + } else { + LoadRoomEntityList(&gUnk_additional_a_HouseInteriors2_Percy); + } + } else if (!CheckLocalFlag(0x3f)) { + LoadRoomEntityList(&gUnk_080F27D8); + } else { + LoadRoomEntityList(&gUnk_080F2798); + } + } +} + +u32 sub_unk3_HouseInteriors2_EastOracle() { + return 1; +} + +extern EntityData gUnk_080F28D4; +extern EntityData gUnk_080F28F4; +extern EntityData gUnk_080F2914; + +void sub_StateChange_HouseInteriors2_EastOracle(void) { + if (CheckGlobalFlag(RENTED_HOUSE_DIN)) { + LoadRoomEntityList(&gUnk_080F28D4); + } else if (CheckGlobalFlag(RENTED_HOUSE_NAYRU)) { + LoadRoomEntityList(&gUnk_080F28F4); + } else if (CheckGlobalFlag(RENTED_HOUSE_FARORE)) { + LoadRoomEntityList(&gUnk_080F2914); + } +} + +u32 sub_unk3_HouseInteriors2_A() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk7() { +} + +u32 sub_unk3_HouseInteriors2_B() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk8() { +} + +u32 sub_unk3_HouseInteriors2_Cucco() { + return 1; +} + +void sub_StateChange_Ruins_Beanstalk9() { +} + +u32 sub_unk3_HouseInteriors2_LinksHouseEntrance() { + return 1; +} + +extern EntityData gUnk_080F2E2C; + +void sub_StateChange_HouseInteriors2_LinksHouseEntrance(void) { + if (!CheckGlobalFlag(OUTDOOR)) { + gArea.musicIndex = gArea.pMusicIndex; + SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); + } + if (!CheckGlobalFlag(START)) { + LoadRoomEntityList(&gUnk_080F2E2C); + } +} + +u32 sub_unk3_HouseInteriors2_LinksHouseSmith() { + return 1; +} + +extern EntityData gUnk_080F2E94; +extern EntityData gUnk_080F2EC4; + +void sub_StateChange_HouseInteriors2_LinksHouseSmith(void) { + if (!CheckGlobalFlag(OUTDOOR)) { + gArea.musicIndex = gArea.pMusicIndex; + SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); + } + if (!CheckGlobalFlag(START)) { + LoadRoomEntityList(&gUnk_080F2E94); + } else { + LoadRoomEntityList(&gUnk_080F2EC4); + } +} + +u32 sub_unk3_HouseInteriors2_Dampe() { + return 1; +} + +extern EntityData gUnk_080F2FD4; + +void sub_StateChange_HouseInteriors2_Dampe(void) { + if (!CheckLocalFlag(0x69) || GetInventoryValue(ITEM_QST_GRAVEYARD_KEY) > 1) { + LoadRoomEntityList(&gUnk_080F2FD4); + } +} + +u32 sub_unk3_HouseInteriors2_Stockwell() { + return 1; +} + +extern EntityData gUnk_080F30CC; + +void sub_StateChange_HouseInteriors2_Stockwell(void) { + if ((GetInventoryValue(ITEM_QST_DOGFOOD) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) && (gPlayerState.flags & PL_MINISH) == 0) { + LoadRoomEntityList(&gUnk_080F30CC); + } +} + +u32 sub_unk3_HouseInteriors2_LinksHouseBedroom() { + return 1; +} + +extern EntityData gUnk_080F31D8; +extern u32 script_08009B30; + +void sub_StateChange_HouseInteriors2_LinksHouseBedroom(void) { + if (!CheckGlobalFlag(START) && !CheckLocalFlag(0x46)) { + sub_080A71C4(5, 1, 4, 4); + gUpdateVisibleTiles = 0; + DoFade(5, 256); + sub_080751E8(0, 6, &script_08009B30); + } + if (!CheckGlobalFlag(OUTDOOR)) { + gArea.musicIndex = gArea.pMusicIndex; + SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); + } + if ((gPlayerState.flags & 8) == 0) { + LoadRoomEntityList(&gUnk_080F31D8); + } +} + +extern u32 script_08009E58; + +void sub_0804E864(void) { + gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x90; + gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; + sub_080751E8(1, 6, &script_08009E58); + ModHealth(0xa0); +} + +u32 sub_unk3_HouseInteriors4_Carpenter() { + return 1; +} + +extern EntityData gUnk_080F3260; + +void sub_StateChange_HouseInteriors4_Carpenter(void) { + if (GetInventoryValue(ITEM_PACCI_CANE)) { + LoadRoomEntityList(&gUnk_080F3260); + SetTileType(0x4072, 0x202, 1); + SetTileType(0x4072, 0x242, 1); + SetTileType(0x4072, 0x204, 1); + SetTileType(0x4072, 0x244, 1); + } +} + +u32 sub_unk3_HouseInteriors4_Swiftblade() { + return 1; +} + +void sub_StateChange_HouseInteriors4_Swiftblade() { + sub_08054564(); +} + +u32 sub_unk3_HouseInteriors4_RanchHouseWest() { + return 1; +} + +extern EntityData gUnk_080F36FC; +extern EntityData gUnk_080F3604; + +void sub_StateChange_HouseInteriors4_RanchHouseWest(void) { + if (!CheckGlobalFlag(INLOCK)) { + LoadRoomEntityList(&gUnk_080F36FC); + } else if (gSave.global_progress < 4) { + LoadRoomEntityList(&gUnk_080F3604); + } +} + +u32 sub_unk3_HouseInteriors4_RanchHouseEast() { + return 1; +} + +extern EntityData gUnk_080F37D0; + +void sub_StateChange_HouseInteriors4_RanchHouseEast(void) { + if (CheckGlobalFlag(INLOCK)) { + LoadRoomEntityList(&gUnk_080F37D0); + } +} + +u32 sub_unk3_HouseInteriors4_FarmHouse() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites0() { +} + +u32 sub_unk3_HouseInteriors4_Mayor() { + return 1; +} + +extern EntityData gUnk_080F3A48; + +void sub_StateChange_HouseInteriors4_Mayor(void) { + if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(ITEM_QST_BOOK3)) { + LoadRoomEntityList(&gUnk_080F3A48); + } + gScreenTransition.player_status.field_0x20 = 0xf28; + gScreenTransition.player_status.field_0x22 = 0x82d; +} + +extern u32 Enemies_LakeHylia_Main; +extern u32 gUnk_080F3EA4; + +u32 sub_unk3_LakeHylia_Main(void) { + if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) { + gRoomVars.field_0x6c[2] = &gUnk_080F3EA4; + } else { + gRoomVars.field_0x6c[2] = &Enemies_LakeHylia_Main; + } + return 1; +} + +extern EntityData gUnk_080F3C64; +extern EntityData gUnk_080F3C94; +extern EntityData gUnk_080F3C44; + +void sub_StateChange_LakeHylia_Main(void) { + if (CheckGlobalFlag(LV4_CLEAR) && !CheckLocalFlag(4)) { + LoadRoomEntityList(&gUnk_080F3C64); + } + if (CheckKinstoneFused(0x12)) { + LoadRoomEntityList(&gUnk_080F3C94); + } + if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { + LoadRoomEntityList(&gUnk_080F3C44); + } + SetTile(0x4091, 0x590, 1); + SetTile(0x4091, 0x591, 1); + SetTile(0x4091, 0x592, 1); + SetTile(0x4091, 0x593, 1); + SetTile(0x4091, 0x594, 1); + SetTile(0x4091, 0x5d0, 1); + SetTile(0x4091, 0x610, 1); + SetTile(0x4091, 0x650, 1); + SetTile(0x4091, 0x5d4, 1); + SetTile(0x4091, 0x614, 1); + SetTile(0x4091, 0x654, 1); + SetTile(0x4091, 0x690, 1); + SetTile(0x4091, 0x691, 1); + SetTile(0x4091, 0x692, 1); + SetTile(0x4091, 0x693, 1); + SetTile(0x4091, 0x694, 1); +} + +u32 sub_unk3_LakeHylia_Beanstalk() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites1() { +} + +u32 sub_unk3_LakeWoodsCave_Main() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites2() { +} + +u32 sub_unk3_HyliaDigCaves_Middle() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites3() { +} + +u32 sub_unk3_HyliaDigCaves_North() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites4() { +} + +u32 sub_unk3_CastorWildsDigCave_Main() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites5() { +} + +u32 sub_unk3_HyruleDigCaves_Main() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites6() { +} + +u32 sub_unk3_CrenelDigCave_Main() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites7() { +} + +u32 sub_unk3_DigCaves1_HyruleFieldFarm() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites8() { +} + +u32 sub_unk3_DigCaves1_TrilbyHighlands() { + return 1; +} + +void sub_StateChange_Ruins_LadderToTektites9() { +} + +u32 sub_unk3_VeilFallsDigCave_Main() { + return 1; +} + +void sub_StateChange_VeilFallsDigCave_Main() { +} + +u32 sub_unk3_OuterFortressOfWinds_EntranceHall(void) { + gArea.areaMetadata |= 0x48; + return 1; +} + +void sub_StateChange_OuterFortressOfWinds_EntranceHall() { +} + +u32 sub_unk3_OuterFortressOfWinds_2F(void) { + gArea.areaMetadata |= 0x48; + return 1; +} + +void sub_StateChange_OuterFortressOfWinds_2F() { +} + +u32 sub_unk3_OuterFortressOfWinds_3F(void) { + gArea.areaMetadata |= 0x48; + return 1; +} + +void sub_StateChange_OuterFortressOfWinds_3F() { +} + +u32 sub_unk3_OuterFortressOfWinds_MoleMitts(void) { + sub_0801DD58(0x58, 5); + gArea.areaMetadata |= 0x48; + return 1; +} + +void sub_StateChange_OuterFortressOfWinds_MoleMitts() { +} + +u32 sub_unk3_OuterFortressOfWinds_SmallKey(void) { + sub_0801DD58(0x58, 6); + gArea.areaMetadata |= 0x48; + return 1; +} + +void sub_StateChange_OuterFortressOfWinds_SmallKey() { +} + +extern u32 gUnk_080F4EB0; + +u32 sub_unk3_MinishWoods_Main(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080F4EB0; + gRoomVars.field_0x6c[2] = NULL; + } + return 1; +} + +extern EntityData gUnk_080F4D50; +extern EntityData gUnk_080F4DB0; +extern EntityData gUnk_080F4DD0; +extern EntityData gUnk_080F4DF0; +extern EntityData gUnk_080F4F10; +extern EntityData gUnk_080F4E10; + +void sub_StateChange_MinishWoods_Main(void) { + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } + if (!CheckGlobalFlag(EZERO_1ST)) { + LoadRoomEntityList(&gUnk_080F4D50); + } +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x3d)) { + if (!CheckLocalFlag(0x3a)) { +#else + if (!CheckLocalFlag(0x3e)) { + if (!CheckLocalFlag(0x3b)) { +#endif + LoadRoomEntityList(&gUnk_080F4DB0); + } else { + LoadRoomEntityList(&gUnk_080F4DD0); + } + LoadRoomEntityList(&gUnk_080F4DF0); + } + if (CheckKinstoneFused(0x4e)) { + LoadRoomEntityList(&gUnk_080F4F10); + } + if ((s32)gSave.windcrests > -1) { + LoadRoomEntityList(&gUnk_080F4E10); + } +#ifdef DEMO_USA + SetTileType(0x177, 0x5b4, 1); + SetTileType(0x177, 0x5f4, 1); +#endif +} + +void sub_unk1_MinishWoods_Main(void) { + if ((s32)gSave.windcrests > -1) { + LoadRoomEntityList(&gUnk_080F4E10); + } +} + +u32 sub_unk3_Empty_Main() { + return 1; +} + +void sub_StateChange_Empty_Main() { +} + +extern u32 gUnk_080F5348; + +u32 sub_unk3_SanctuaryEntrance_Main(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080F5348; + gRoomVars.field_0x6c[7] = sub_0804ED18; + gRoomVars.field_0x6c[2] = NULL; + } + return 1; +} + +extern EntityData gUnk_080F5328; +extern EntityData gUnk_080F5308; + +void sub_StateChange_SanctuaryEntrance_Main(void) { + if (GetInventoryValue(ITEM_GREEN_SWORD)) { + LoadRoomEntityList(&gUnk_080F5328); +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x15)) { +#else + if (!CheckLocalFlag(0x14)) { +#endif + LoadRoomEntityList(&gUnk_080F5308); + } + } +} + +void sub_0804ED18(void) { + gArea.pMusicIndex = gArea.musicIndex; +} + +u32 sub_unk3_Sanctuary_Hall() { + return 1; +} + +void sub_StateChange_Sanctuary_Hall(void) { + sub_080AF2E4(); + if (CheckGlobalFlag(SEIIKI_BGM)) { + gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; + } +} + +u32 sub_unk3_Sanctuary_Main() { + return 1; +} + +extern EntityData gUnk_080F54E8; +extern EntityData gUnk_080F5508; +extern EntityData gUnk_080F5558; +extern EntityData gUnk_080F5598; +extern EntityData gUnk_080F55D8; +extern EntityData gUnk_080F5528; +extern EntityData gUnk_080F5578; +extern EntityData gUnk_080F55B8; + +void sub_StateChange_Sanctuary_Main(void) { + if (!CheckLocalFlag(0x79)) { + LoadRoomEntityList(&gUnk_080F54E8); + } + if (!CheckLocalFlag(0x7a)) { + if (GetInventoryValue(ITEM_GREEN_SWORD) && !GetInventoryValue(ITEM_RED_SWORD) && GetInventoryValue(ITEM_EARTH_ELEMENT) && GetInventoryValue(ITEM_FIRE_ELEMENT)) { + LoadRoomEntityList(&gUnk_080F5508); + } + } else { + if (!CheckLocalFlag(0x7b)) { + if (GetInventoryValue(ITEM_RED_SWORD) && !GetInventoryValue(ITEM_BLUE_SWORD) && GetInventoryValue(ITEM_WATER_ELEMENT)) { + LoadRoomEntityList(&gUnk_080F5558); + } + } else { + if (!CheckLocalFlag(0x7c)) { + if (!GetInventoryValue(ITEM_FOURSWORD) && GetInventoryValue(ITEM_WIND_ELEMENT)) { + LoadRoomEntityList(&gUnk_080F5598); + } + } else { + LoadRoomEntityList(&gUnk_080F55D8); + } + } + } + if (CheckLocalFlag(0x7a)) { + LoadRoomEntityList(&gUnk_080F5528); + } + if (CheckLocalFlag(0x7b)) { + LoadRoomEntityList(&gUnk_080F5578); + } + if (CheckLocalFlag(0x7c)) { + LoadRoomEntityList(&gUnk_080F55B8); + } + if (CheckGlobalFlag(SEIIKI_BGM)) { + gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; + } +} + +u32 sub_unk3_Sanctuary_StainedGlass() { + return 1; +} + +extern EntityData gUnk_080F5660; + +void sub_StateChange_Sanctuary_StainedGlass(void) { + if (!CheckLocalFlag(0x78) && CheckLocalFlag(0x7c)) { + LoadRoomEntityList(&gUnk_080F5660); + } + if (CheckGlobalFlag(SEIIKI_BGM)) { + gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; + } +} + +u32 sub_unk3_HouseInteriors3_StockwellShop() { + return 1; +} + +extern EntityData gUnk_080F5758; +extern EntityData gUnk_080F57E8; +extern EntityData gUnk_080F57A8; +extern EntityData gUnk_080F57C8; +extern EntityData gUnk_080F5888; +extern EntityData gUnk_080F58A8; +extern EntityData gUnk_080F5868; +extern EntityData gUnk_080F5828; +extern EntityData gUnk_080F5848; +extern EntityData gUnk_080F5788; + +void sub_StateChange_HouseInteriors3_StockwellShop(void) { + LoadRoomEntityList(&gUnk_080F5758); + if (!GetInventoryValue(0x36) && CheckLocalFlagByBank(0x200, 0x8f)) { + LoadRoomEntityList(&gUnk_080F57E8); + } + if (!CheckLocalFlag(0x55)) { + LoadRoomEntityList(&gUnk_080F57A8); + } else { + if (gBombBagSizes[gSave.stats.bombBagType] >= 30) { + LoadRoomEntityList(&gUnk_080F57C8); + } + if (!GetInventoryValue(ITEM_BOOMERANG) && !GetInventoryValue(ITEM_MAGIC_BOOMERANG)) { + LoadRoomEntityList(&gUnk_080F5888); +#ifndef EU + } else { + if (!CheckLocalFlag(0xcd)) { + LoadRoomEntityList(&gUnk_080F58A8); + } +#endif + } + } + if (GetInventoryValue(ITEM_BOW) || CheckGlobalFlag(LV3_CLEAR)) { + LoadRoomEntityList(&gUnk_080F5868); + if (!CheckLocalFlag(0x56)) { + LoadRoomEntityList(&gUnk_080F5828); + } else { + LoadRoomEntityList(&gUnk_080F5848); + } + } + if (gSave.stats.filler3[0] == 0) { + LoadRoomEntityList(&gUnk_080F5788); + } +} + +u32 sub_unk3_HouseInteriors3_Cafe() { + return 1; +} + +void sub_StateChange_HouseInteriors3_Cafe() { +} + +u32 sub_unk3_HouseInteriors3_RemShoeShop() { + return 1; +} + +extern EntityData gUnk_080F5B3C; + +void sub_StateChange_HouseInteriors3_RemShoeShop(void) { +#ifndef EU + if (GetInventoryValue(0x38) == 1) { + LoadRoomEntityList(&gUnk_080F5B3C); + } +#endif +} + +u32 sub_unk3_HouseInteriors3_Bakery() { + return 1; +} +void sub_StateChange_HouseInteriors3_Bakery() { +} + +u32 sub_unk3_HouseInteriors3_Simon(void) { + if (CheckGlobalFlag(MAROYA_WAKEUP)) { + gScreenTransition.player_status.spawn_type = 5; + } + return 1; +} + +extern EntityData gUnk_080F5DD0; +extern u32 script_08011C50; + +void sub_StateChange_HouseInteriors3_Simon(void) { + if (gSave.global_progress > 7) { + LoadRoomEntityList(&gUnk_080F5DD0); + } + if (CheckGlobalFlag(MAROYA_WAKEUP)) { + sub_080751E8(1, 2, &script_08011C50); + } +} + +u32 sub_unk3_HouseInteriors3_FigurineHouse() { + return 1; +} + +extern EntityData gUnk_080F5E68; + +void sub_StateChange_HouseInteriors3_FigurineHouse(void) { +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlagByBank(0x100, 0xce)) { +#else + if (!CheckLocalFlagByBank(0x100, 0xd1)) { +#endif + LoadRoomEntityList(&gUnk_080F5E68); + } +} + +u32 sub_unk3_HouseInteriors3_BorlovEntrance() { + return 1; +} + +extern EntityData gUnk_additional_8_HouseInteriors3_BorlovEntrance; +extern EntityData gUnk_additional_9_HouseInteriors3_BorlovEntrance; +extern EntityData gUnk_additional_a_HouseInteriors3_BorlovEntrance; + +void sub_StateChange_HouseInteriors3_BorlovEntrance(void) { + if (gSave.global_progress > 4) { + LoadRoomEntityList(&gUnk_additional_8_HouseInteriors3_BorlovEntrance); + } + if (!CheckLocalFlag(0x92)) { + LoadRoomEntityList(&gUnk_additional_9_HouseInteriors3_BorlovEntrance); + } else { + LoadRoomEntityList(&gUnk_additional_a_HouseInteriors3_BorlovEntrance); + } +} + +u32 sub_unk3_HouseInteriors3_Carlov() { + return 1; +} + +void sub_StateChange_HouseInteriors3_Carlov() { +} + +u32 sub_unk3_HouseInteriors3_Borlov() { + return 1; +} + +void sub_StateChange_HouseInteriors3_Borlov() { +} + +u32 sub_unk3_WindTribeTower_Entrance(void) { +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByBank(0x100, 0xd9)) { +#else + if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByBank(0x100, 0xdc)) { +#endif + SetGlobalFlag(WARP_EVENT_END); + } + return 1; +} + +extern EntityData gUnk_080F61BC; + +void sub_StateChange_WindTribeTower_Entrance(void) { +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckLocalFlagByBank(0x100, 0xd9)) { +#else + if (CheckLocalFlagByBank(0x100, 0xdc)) { +#endif + SetLocalFlag(0x90); + } + if (CheckKinstoneFused(0xf)) { + LoadRoomEntityList(&gUnk_080F61BC); + } + if (!CheckGlobalFlag(WARP_EVENT_END)) { + SetTileType(0x4072, 0x4c7, 1); + SetTileType(0x4072, 0x507, 1); + } + sub_08052CA4(8, 0, 0x1e8, 0x158); +} + +u32 sub_unk3_WindTribeTower_Floor2() { + return 1; +} + +extern EntityData gUnk_080F62E4; +extern EntityData gUnk_080F6324; + +void sub_StateChange_WindTribeTower_Floor2(void) { + if (!CheckGlobalFlag(WARP_EVENT_END)) { + LoadRoomEntityList(&gUnk_080F62E4); + } else { + if (CheckLocalFlag(99)) { + LoadRoomEntityList(&gUnk_080F6324); + } + } +} + +u32 sub_unk3_WindTribeTower_Floor3() { + return 1; +} + +void sub_StateChange_WindTribeTower_Floor3() { +} + +u32 sub_unk3_WindTribeTower_Floor4() { + return 1; +} + +extern EntityData gUnk_080F6564; +extern EntityData gUnk_080F6584; + +void sub_StateChange_WindTribeTower_Floor4(void) { + if (!CheckLocalFlag(0xb1)) { + LoadRoomEntityList(&gUnk_080F6564); + } else { + LoadRoomEntityList(&gUnk_080F6584); + } +} + +u32 sub_unk3_WindTribeTowerRoof_Main() { + return 1; +} + +extern EntityData gUnk_080F66AC; + +void sub_StateChange_WindTribeTowerRoof_Main(void) { + sub_0805B4D0(5); + if (CheckGlobalFlag(LV5_CLEAR) && !CheckLocalFlagByBank(0x100, 5)) { + LoadRoomEntityList(&gUnk_080F66AC); + } + sub_08052CA4(8, 0, 0x1e8, 0x158); +#ifndef EU + gArea.areaMetadata |= 0x80; +#endif +} + +u32 sub_unk3_Beanstalks_MountCrenel() { + return 1; +} + +void sub_StateChange_Beanstalks_MountCrenel() { +} + +u32 sub_unk3_Beanstalks_LakeHylia() { + return 1; +} + +void sub_StateChange_Beanstalks_LakeHylia() { +} + +u32 sub_unk3_Beanstalks_Ruins() { + return 1; +} + +void sub_StateChange_Beanstalks_Ruins() { +} + +u32 sub_unk3_Beanstalks_EasternHills() { + return 1; +} + +void sub_StateChange_Beanstalks_EasternHills() { +} + +u32 sub_unk3_Beanstalks_WesternWoods() { + return 1; +} + +void sub_StateChange_Beanstalks_WesternWoods() { +} + +u32 sub_unk3_Beanstalks_MountCrenelClimb() { + return 1; +} + +void sub_StateChange_Beanstalks_MountCrenelClimb() { +} + +u32 sub_unk3_Beanstalks_LakeHyliaClimb() { + return 1; +} + +void sub_StateChange_Beanstalks_LakeHyliaClimb() { +} + +u32 sub_unk3_Beanstalks_RuinsClimb() { + return 1; +} + +void sub_StateChange_Beanstalks_RuinsClimb() { +} + +u32 sub_unk3_Beanstalks_EasternHillsClimb() { + return 1; +} + +void sub_StateChange_Beanstalks_EasternHillsClimb() { +} + +u32 sub_unk3_Beanstalks_WesternWoodsClimb() { + return 1; +} + +void sub_StateChange_Beanstalks_WesternWoodsClimb() { +} + +u32 sub_unk3_HyruleField_WesternWoodSouth() { + return 1; +} + +void sub_StateChange_HyruleField_WesternWoodSouth() { + Manager18_Main(0); +} + +u32 sub_unk3_HyruleField_LinksHouseExterior(void) { +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x6b)) { +#else + if (!CheckLocalFlag(0x6d)) { +#endif + DoFade(7, 256); + } + SetGlobalFlag(OUTDOOR); + return 1; +} + +extern EntityData gUnk_080F70A8; +extern EntityData gUnk_080F70D8; +extern EntityData gUnk_080F7088; + +void sub_StateChange_HyruleField_LinksHouseExterior(void) { + Manager18_Main(NULL); +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x6b)) { +#else + if (!CheckLocalFlag(0x6d)) { +#endif + LoadRoomEntityList(&gUnk_080F70A8); + ClearGlobalFlag(ZELDA_CHASE); + } + if (!CheckGlobalFlag(TABIDACHI)) { + gArea.pMusicIndex = BGM_FESTIVAL_APPROACH; + } + if ((gSave.windcrests & 0x40000000) == 0) { + LoadRoomEntityList(&gUnk_080F70D8); + } + if (gSave.global_progress > 3) { + LoadRoomEntityList(&gUnk_080F7088); + } +} + +void sub_unk1_HyruleField_LinksHouseExterior(void) { + if ((gSave.windcrests & 0x40000000) == 0) { + LoadRoomEntityList(&gUnk_080F70D8); + } +} + +u32 sub_unk3_HyruleField_FromMinishWoods() { + return 1; +} + +void sub_StateChange_HyruleField_FromMinishWoods() { + Manager18_Main(NULL); +} + +u32 sub_unk3_HyruleField_FromMinishWoodsNorth() { + return 1; +} + +void sub_StateChange_HyruleField_FromMinishWoodsNorth() { + Manager18_Main(NULL); +} + +extern u32 gUnk_080F7680; + +u32 sub_unk3_HyruleField_Farmers(void) { + if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { + gRoomVars.field_0x6c[2] = &gUnk_080F7680; + } + return 1; +} + +extern EntityData gUnk_080F7500; +extern EntityData gUnk_080F7550; + +void sub_StateChange_HyruleField_Farmers(void) { + Manager18_Main(NULL); + if (gSave.global_progress > 3) { + LoadRoomEntityList(&gUnk_080F7500); + } + if (GetInventoryValue(ITEM_GUST_JAR) && !GetInventoryValue(ITEM_PACCI_CANE)) { + LoadRoomEntityList(&gUnk_080F7550); + SetTileType(0x4072, 0x311, 1); + SetTileType(0x4072, 0x351, 1); + SetTileType(0x4072, 0x3d9, 1); + SetTileType(0x4072, 0x419, 1); + } +} + +u32 sub_unk3_HyruleField_LonLonRanch() { + return 1; +} + +extern EntityData gUnk_080F77F0; +extern EntityData gUnk_080F77C0; +extern EntityData gUnk_080F7810; +extern EntityData gUnk_080F7860; +extern EntityData gUnk_080F78A0; + +void sub_StateChange_HyruleField_LonLonRanch(void) { + + Manager18_Main(0); + if (CheckLocalFlagByBank(0x200, 0x8f)) { + if (!CheckGlobalFlag(INLOCK)) { + LoadRoomEntityList(&gUnk_080F77C0); + } + } else if (GetInventoryValue(ITEM_EARTH_ELEMENT)) { + LoadRoomEntityList(&gUnk_080F77F0); + } + if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(ITEM_EARTH_ELEMENT)) { + LoadRoomEntityList(&gUnk_080F7810); + } + if (!CheckKinstoneFused(0x29)) { + LoadRoomEntityList(&gUnk_080F7860); + SetTile(0x4072, 0xd88, 1); + SetTile(0x4096, 0xdc8, 1); + } + if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { + LoadRoomEntityList(&gUnk_080F78A0); + } +} + +extern u32 gUnk_080F7CD0; +extern void sub_0804F5E8(); +extern u32 gUnk_080F7C80; +extern void sub_0804F4E4(); + +u32 sub_unk3_HyruleField_OutsideCastle(void) { + if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(0x11)) { + gRoomVars.field_0x6c[0] = &gUnk_080F7CD0; + gRoomVars.field_0x6c[7] = sub_0804F5E8; + } +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8a)) { +#else + if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8c)) { +#endif + gRoomVars.field_0x6c[0] = &gUnk_080F7C80; + gRoomVars.field_0x6c[7] = sub_0804F4E4; + gRoomVars.field_0x6c[2] = NULL; + } +#ifndef EU + if (CheckGlobalFlag(TABIDACHI)) { + ClearGlobalFlag(CASTLE_BGM); + } +#endif + return 1; +} + +void sub_0804F4E4() { + Manager18_Main(NULL); + sub_0804F578(); +} + +extern EntityData gUnk_080F7D70; + +void sub_StateChange_HyruleField_OutsideCastle(void) { + sub_0804F4E4(); +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x89)) { +#else + if (!CheckLocalFlag(0x8b)) { +#endif + LoadRoomEntityList(&gUnk_080F7D70); + SetTileType(0x174, 0x7a2, 1); + SetTileType(0x174, 0x7a3, 1); + SetTileType(0x174, 0x7a5, 1); + SetTileType(0x174, 0x7a6, 1); + SetTileType(0x174, 0x7a7, 1); + } + if (!CheckGlobalFlag(TABIDACHI)) { +#ifdef EU + gArea.pMusicIndex = 0x10; +#else + gArea.pMusicIndex = 0x13; +#endif + } +} + +extern EntityData gUnk_080F7DC0; + +void sub_0804F578(void) { +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (!CheckLocalFlag(0x8c)) { +#else + if (!CheckLocalFlag(0x8e)) { +#endif + LoadRoomEntityList(&gUnk_080F7DC0); + } else { + SetTileType(0x37, 0x94a, 1); + SetTileType(0x37, 0x94b, 1); + SetTileType(0x37, 0x94c, 1); + SetTileType(0x37, 0x98a, 1); + SetTileType(0x37, 0x98b, 1); + SetTileType(0x37, 0x98c, 1); + } +} + +void sub_0804F5E8(void) { + sub_0804F4E4(); + SetTileType(0x1d3, 0xbde, 1); + SetTileType(0x1d6, 0xbe2, 1); + SetTileType(0x1d4, 0xc1f, 1); + SetTileType(0x1d5, 0xc20, 1); + SetTileType(0x1d6, 0xc5e, 1); + SetTileType(0x4072, 0xb9b, 1); + SetTileType(0x4072, 0xbdb, 1); + SetTileType(0x4072, 0xaa4, 1); + SetTileType(0x4072, 0xae4, 1); +} + +void sub_0804F680(Entity* parent, s32 x, s32 y) { + Entity* fx; + + fx = CreateFx(parent, FX_DEATH, 0); + if (fx != NULL) { + fx->x.HALF.HI = gRoomControls.roomOriginX + x; + fx->y.HALF.HI = gRoomControls.roomOriginY + y; + } +} + +void sub_0804F6A8(Entity* this) { + sub_0804F680(this, 0x1d8, 0x108); + sub_0804F680(this, 0x218, 0x188); +} + +void sub_0804F6C8(Entity* this) { + sub_0804F680(this, 0x1e8, 0x108); + sub_0804F680(this, 0x208, 0x188); +} + +void sub_0804F6E8(Entity* this) { + sub_0804F680(this, 0x1f8, 0x108); + sub_0804F680(this, 0x258, 0x138); + sub_0804F680(this, 0x1f8, 0x188); + sub_0804F680(this, 0x198, 0x158); +} + +void sub_0804F724(Entity* this) { + sub_0804F680(this, 0x208, 0x108); + sub_0804F680(this, 0x258, 0x148); + sub_0804F680(this, 0x1e8, 0x188); + sub_0804F680(this, 0x198, 0x148); +} + +void sub_0804F760(Entity* this) { + sub_0804F680(this, 0x218, 0x108); + sub_0804F680(this, 0x258, 0x158); + sub_0804F680(this, 0x1d8, 0x188); + sub_0804F680(this, 0x198, 0x138); +} + +void sub_0804F79C(Entity* parent) { + Entity* fx; + + fx = CreateFx(parent, FX_BIG_EXPLOSION, 0); + if (fx != NULL) { + fx->spriteRendering.b3 = 0; + fx->x.HALF.HI = gRoomControls.roomOriginX + 0x1b8; + fx->y.HALF.HI = gRoomControls.roomOriginY + 0x148; + } + fx = CreateFx(parent, FX_BIG_EXPLOSION, 0); + if (fx != NULL) { + fx->spriteRendering.b3 = 0; + fx->x.HALF.HI = gRoomControls.roomOriginX + 0x238; + fx->y.HALF.HI = gRoomControls.roomOriginY + 0x148; + } +} + +void sub_0804F808(void) { + SetTileType(0x1d3, 0x41d, 1); + SetTileType(0x1d3, 0x621, 1); +} + +void sub_0804F830(void) { + SetTileType(0x1d4, 0x41e, 1); + SetTileType(0x1d4, 0x620, 1); +} + +void sub_0804F854(void) { + SetTileType(0x1d5, 0x41f, 1); + SetTileType(0x1d4, 0x4e5, 1); + SetTileType(0x1d5, 0x61f, 1); + SetTileType(0x1d4, 0x559, 1); +} + +void sub_0804F89C(void) { + SetTileType(0x1d6, 0x420, 1); + SetTileType(0x1d5, 0x525, 1); + SetTileType(0x1d6, 0x61e, 1); + SetTileType(0x1d5, 0x519, 1); +} + +void sub_0804F8E0(void) { + SetTileType(0x1d3, 0x421, 1); + SetTileType(0x1d6, 0x565, 1); + SetTileType(0x1d3, 0x61d, 1); + SetTileType(0x1d6, 0x4d9, 1); +} + +void sub_0804F928(void) { + sub_0807BA8C(0x41d, 1); + sub_0807BA8C(0x621, 1); +} + +void sub_0804F944(void) { + sub_0807BA8C(0x41e, 1); + sub_0807BA8C(0x620, 1); +} + +void sub_0804F960(void) { + sub_0807BA8C(0x41f, 1); + sub_0807BA8C(0x4e5, 1); + sub_0807BA8C(0x61f, 1); + sub_0807BA8C(0x559, 1); +} + +void sub_0804F994(void) { + sub_0807BA8C(0x420, 1); + sub_0807BA8C(0x525, 1); + sub_0807BA8C(0x61e, 1); + sub_0807BA8C(0x519, 1); +} + +void sub_0804F9C8(void) { + sub_0807BA8C(0x421, 1); + sub_0807BA8C(0x565, 1); + sub_0807BA8C(0x61d, 1); + sub_0807BA8C(0x4d9, 1); +} + +u32 sub_unk3_HyruleField_OutsideCastleWest() { + return 1; +} + +extern EntityData gUnk_080F806C; + +void sub_StateChange_HyruleField_OutsideCastleWest(void) { + Manager18_Main(NULL); + if ((gSave.global_progress > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { + LoadRoomEntityList(&gUnk_080F806C); + } +} + +u32 sub_unk3_HyruleField_TrilbyHighlands() { + return 1; +} + +extern EntityData gUnk_080F82E0; + +void sub_StateChange_HyruleField_TrilbyHighlands(void) { + Manager18_Main(NULL); +#if defined(JP) || defined(EU) || defined(DEMO_JP) + if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(ITEM_RED_SWORD) && !CheckLocalFlag(0x9b)) { +#else + if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(ITEM_RED_SWORD) && !CheckLocalFlag(0x9c)) { +#endif + LoadRoomEntityList(&gUnk_080F82E0); + } +} + +u32 sub_unk3_HyruleField_PercysHouse() { + return 1; +} + +extern EntityData gUnk_080F8430; + +void sub_StateChange_HyruleField_PercysHouse(void) { + Manager18_Main(NULL); + if (CheckKinstoneFused(0x21) && !CheckLocalFlagByBank(0x200, 0x42)) { + LoadRoomEntityList(&gUnk_080F8430); + } +} + +u32 sub_unk3_Caves_Boomerang() { + return 1; +} + +extern EntityData gUnk_080F85F8; +extern EntityData gUnk_080F85D8; + +void sub_StateChange_Caves_Boomerang(void) { + if (CheckGlobalFlag(SOUGEN_06_HASHIGO)) { + LoadRoomEntityList(&gUnk_080F85D8); + } else { + LoadRoomEntityList(&gUnk_080F85F8); + } + if (!GetInventoryValue(0xc)) { + ClearLocalFlag(8); + } +} + +u32 sub_unk3_Caves_ToGraveyard() { + return 1; +} + +void sub_StateChange_Caves_ToGraveyard() { +} + +u32 sub_unk3_Caves_2() { + return 1; +} + +void sub_StateChange_Caves_2() { +} + +u32 sub_unk3_Caves_3() { + return 1; +} + +void sub_StateChange_Caves_3() { +} + +u32 sub_unk3_Caves_4() { + return 1; +} + +void sub_StateChange_Caves_4() { +} + +u32 sub_unk3_Caves_5() { + return 1; +} + +void sub_StateChange_Caves_5() { +} + +u32 sub_unk3_Caves_6() { + return 1; +} + +void sub_StateChange_Caves_6() { +} + +u32 sub_unk3_Caves_KeeseChest() { + return 1; +} + +void sub_StateChange_Caves_KeeseChest() { +} + +u32 sub_unk3_Caves_FairyFountainTrilbyHighlands() { + return 1; +} + +void sub_StateChange_Caves_FairyFountainTrilbyHighlands() { +} + +u32 sub_unk3_Caves_FairyFountainLinksHouse() { + return 1; +} + +void sub_StateChange_Caves_FairyFountainLinksHouse() { +} + +u32 sub_unk3_Caves_A() { + return 1; +} + +void sub_StateChange_Caves_A() { +} + +u32 sub_unk3_Caves_HyruleTownWaterfall() { + return 1; +} + +void sub_StateChange_Caves_HyruleTownWaterfall() { +} + +u32 sub_unk3_Caves_LonLonRanch() { + return 1; +} + +void sub_StateChange_Caves_LonLonRanch() { +} + +u32 sub_unk3_Caves_LonLonRanchSecret() { + return 1; +} + +void sub_StateChange_Caves_LonLonRanchSecret(void) { + if (CheckLocalFlag(0x11)) { + SetRoomFlag(0); + SetRoomFlag(1); + ChangeLightLevel(0x100); + if (!CheckLocalFlag(0x12)) { + SetTileType(0x73, 0xcb, 1); + } + } +} + +u32 sub_unk3_Caves_TrilbyHighlands() { + return 1; +} + +void sub_StateChange_Caves_TrilbyHighlands() { +} + +u32 sub_unk3_Caves_LonLonRanchWallet() { + return 1; +} + +void sub_StateChange_Caves_LonLonRanchWallet() { +} + +u32 sub_unk3_Caves_RupeeLinksHouse() { + return 1; +} + +void sub_StateChange_Caves_RupeeLinksHouse() { +} + +u32 sub_unk3_Caves_RupeeTrilbyHighlands() { + return 1; +} + +void sub_StateChange_Caves_RupeeTrilbyHighlands() { +} + +u32 sub_unk3_Caves_FairyFountainMoleMitts() { + return 1; +} + +void sub_StateChange_Caves_FairyFountainMoleMitts() { +} + +u32 sub_unk3_Caves_KeeseChestSoutheastHyrule() { + return 1; +} +void sub_StateChange_Caves_KeeseChestSoutheastHyrule() { +} + +u32 sub_unk3_Caves_BottleBusinessScrub() { + return 1; +} + +void sub_StateChange_Caves_BottleBusinessScrub() { +} + +u32 sub_unk3_Caves_HeartPieceHallway() { + return 1; +} + +void sub_StateChange_Caves_HeartPieceHallway() { +} + +u32 sub_unk3_Caves_FairyFountainBoomerang() { + return 1; +} + +void sub_StateChange_Caves_FairyFountainBoomerang() { +} + +u32 sub_unk3_Caves_KinstoneBusinessScrub() { + return 1; +} + +void sub_StateChange_Caves_KinstoneBusinessScrub() { +} + +u32 sub_unk3_VeilFalls_Main() { + return 1; +} + +extern EntityData gUnk_080F9304; + +void sub_StateChange_VeilFalls_Main(void) { + if ((gSave.windcrests & 0x2000000) == 0) { + LoadRoomEntityList(&gUnk_080F9304); + } +} + +void sub_unk1_VeilFalls_Main(void) { + if ((gSave.windcrests & 0x2000000) == 0) { + LoadRoomEntityList(&gUnk_080F9304); + } +} + +u32 sub_unk3_VeilFallsCaves_Hallway2F() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_Hallway2F() { +} + +u32 sub_unk3_VeilFallsCaves_Hallway1F() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_Hallway1F() { +} + +u32 sub_unk3_VeilFallsCaves_SecretRoom() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_SecretRoom() { +} + +u32 sub_unk3_VeilFallsCaves_Entrance() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_Entrance() { +} + +u32 sub_unk3_VeilFallsCaves_Exit() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_Exit() { +} + +u32 sub_unk3_VeilFallsCaves_SecretChest() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_SecretChest() { +} + +u32 sub_unk3_VeilFallsCaves_SecretStaircases() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_SecretStaircases() { +} + +u32 sub_unk3_VeilFallsCaves_BlockPuzzle() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_BlockPuzzle() { +} + +u32 sub_unk3_VeilFallsCaves_RupeePath() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_RupeePath() { +} + +u32 sub_unk3_VeilFallsCaves_HeartPiece() { + return 1; +} + +void sub_StateChange_VeilFallsCaves_HeartPiece() { +} + +extern u32 gUnk_080F9BF8; + +u32 sub_unk3_VeilFallsTop_Main(void) { + if (!CheckKinstoneFused(0xe)) { + gRoomVars.field_0x6c[0] = &gUnk_080F9BF8; + } + return 1; +} + +void sub_StateChange_VeilFallsTop_Main() { + sub_0805B4D0(2); + sub_0806D0B0(0); +} + +u32 sub_unk3_47_0() { + return 1; +} + +void sub_StateChange_47_0() { +} + +u32 sub_unk3_47_1() { + return 1; +} + +void sub_StateChange_47_1() { +} + +u32 sub_unk3_47_2() { + return 1; +} + +void sub_StateChange_47_2() { +} + +u32 sub_unk3_47_3() { + return 1; +} + +void sub_StateChange_47_3() { +} + +u32 sub_unk3_47_4() { + return 1; +} + +void sub_StateChange_47_4() { +} + +u32 sub_unk3_TreeInteriors_WitchHut() { + return 1; +} + +extern EntityData gUnk_080F9FA8; +extern EntityData gUnk_080F9F88; + +void sub_StateChange_TreeInteriors_WitchHut(void) { + if (CheckKinstoneFused(0x14)) { + LoadRoomEntityList(&gUnk_080F9FA8); + } + if (!GetInventoryValue(ITEM_QST_MUSHROOM)) { + LoadRoomEntityList(&gUnk_080F9F88); + } +} + +u32 sub_0804FCD4() { + return 1; +} + +void nullsub_434() { +} + +u32 sub_0804FCDC() { + return 1; +} + +void nullsub_435() { +} + +u32 sub_0804FCE4() { + return 1; +} + +void nullsub_436() { +} + +u32 sub_0804FCEC() { + return 1; +} + +void nullsub_437() { +} + +u32 sub_0804FCF4() { + return 1; +} + +void nullsub_438() { +} + +u32 sub_0804FCFC() { + return 1; +} + +void nullsub_439() { +} + +u32 sub_0804FD04() { + return 1; +} + +void nullsub_440() { +} + +u32 sub_0804FD0C() { + return 1; +} + +void nullsub_441() { +} + +u32 sub_0804FD14() { + return 1; +} + +void nullsub_442() { +} + +u32 sub_0804FD1C() { + return 1; +} + +void nullsub_443() { +} + +u32 sub_0804FD24() { + return 1; +} + +void nullsub_444() { +} + +u32 sub_0804FD2C() { + return 1; +} + +void nullsub_445() { +} + +u32 sub_0804FD34() { + return 1; +} + +void nullsub_446() { +} + +u32 sub_0804FD3C() { + return 1; +} + +void nullsub_447() { +} + +u32 sub_0804FD44() { + return 1; +} + +void nullsub_448() { +} + +u32 sub_unk3_TreeInteriors_StairsToCarlov() { + return 1; +} + +void sub_StateChange_TreeInteriors_StairsToCarlov() { +} + +u32 sub_unk3_TreeInteriors_PercysTreehouse() { + return 1; +} + +extern EntityData gUnk_080FA5D0; + +void sub_StateChange_TreeInteriors_PercysTreehouse(void) { + if (!CheckKinstoneFused(0x21)) { + LoadRoomEntityList(&gUnk_080FA5D0); + } +} + +u32 sub_unk3_TreeInteriors_HeartPiece() { + return 1; +} +void sub_StateChange_TreeInteriors_HeartPiece() { +} + +u32 sub_unk3_TreeInteriors_StairsToBladeBrother() { + return 1; +} + +void sub_StateChange_TreeInteriors_StairsToBladeBrother() { +} + +u32 sub_unk3_TreeInteriors_14() { + return 1; +} + +void sub_StateChange_TreeInteriors_14() { +} + +u32 sub_unk3_TreeInteriors_BoomerangNorthwest() { + return 1; +} + +void sub_StateChange_TreeInteriors_BoomerangNorthwest() { +} + +u32 sub_unk3_TreeInteriors_BoomerangNortheast() { + return 1; +} + +void sub_StateChange_TreeInteriors_BoomerangNortheast() { +} + +u32 sub_unk3_TreeInteriors_BoomerangSouthwest() { + return 1; +} + +void sub_StateChange_TreeInteriors_BoomerangSouthwest() { +} + +u32 sub_unk3_TreeInteriors_BoomerangSoutheast() { + return 1; +} + +void sub_StateChange_TreeInteriors_BoomerangSoutheast() { +} + +u32 sub_unk3_TreeInteriors_HeartPieceSouthwestField() { + return 1; +} + +void sub_StateChange_TreeInteriors_HeartPieceSouthwestField() { +} + +u32 sub_unk3_TreeInteriors_StairsToFairyFountain() { + return 1; +} + +void sub_StateChange_TreeInteriors_StairsToFairyFountain() { +} + +u32 sub_unk3_TreeInteriors_StairsToWalletFairy() { + return 1; +} + +void sub_StateChange_TreeInteriors_StairsToWalletFairy() { +} + +u32 sub_unk3_TreeInteriors_1C() { + return 1; +} + +void sub_StateChange_TreeInteriors_1C() { +} + +u32 sub_unk3_TreeInteriors_StairsToBusinessScrub() { + return 1; +} + +void sub_StateChange_TreeInteriors_StairsToBusinessScrub() { +} + +u32 sub_unk3_TreeInteriors_1E() { + return 1; +} + +void sub_StateChange_TreeInteriors_1E() { +} + +u32 sub_unk3_TreeInteriors_1F() { + return 1; +} + +void sub_StateChange_TreeInteriors_1F() { +} + +extern u32 gUnk_080FAD48; + +u32 sub_unk3_MtCrenel_MountainTop(void) { + if (CheckGlobalFlag(ENDING)) { + gRoomVars.field_0x6c[0] = &gUnk_080FAD48; + gRoomVars.field_0x6c[2] = NULL; + } + return 1; +} + +extern EntityData gUnk_080FACB8; + +void sub_StateChange_MtCrenel_MountainTop(void) { + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } else { + LoadRoomEntityList(&gUnk_080FACB8); + } + sub_0805B4D0(0); + sub_08059994(); +} + +void sub_unk1_MtCrenel_MountainTop() { + sub_0805B4D0(0); +} + +u32 sub_unk3_MtCrenel_WallClimb() { + return 1; +} + +void sub_StateChange_MtCrenel_WallClimb() { +} + +u32 sub_unk3_MtCrenel_CaveOfFlamesEntrance() { + return 1; +} + +extern EntityData gUnk_080FAFE4; +extern EntityData gUnk_080FB004; + +void sub_StateChange_MtCrenel_CaveOfFlamesEntrance(void) { + sub_0805B4D0(1); + if (CheckGlobalFlag(LV2_CLEAR) && !CheckLocalFlag(LV1_CLEAR)) { + LoadRoomEntityList(&gUnk_080FAFE4); + } + if ((gSave.windcrests & 0x1000000) == 0) { + LoadRoomEntityList(&gUnk_080FB004); + } + if (GetInventoryValue(0x2)) { + SetGlobalFlag(WHITE_SWORD_END); + } +} + +void sub_unk1_MtCrenel_CaveOfFlamesEntrance(void) { + if ((gSave.windcrests & 0x1000000) == 0) { + LoadRoomEntityList(&gUnk_080FB004); + } +} + +u32 sub_unk3_MtCrenel_GustJarShortcut() { + return 1; +} + +void sub_StateChange_MtCrenel_GustJarShortcut() { +} + +u32 sub_unk3_MtCrenel_Entrance() { + return 1; +} + +void sub_StateChange_MtCrenel_Entrance(void) { +#if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) + SetTileType(0x176, 0x66f, 1); +#endif +} + +u32 sub_unk3_CrenelCaves_BlockPushing() { + return 1; +} + +void sub_StateChange_CrenelCaves_BlockPushing() { +} + +u32 sub_unk3_CrenelCaves_PillarCave() { + return 1; +} + +void sub_StateChange_CrenelCaves_PillarCave() { +} + +u32 sub_unk3_CrenelCaves_BridgeSwitch() { + return 1; +} + +void sub_StateChange_CrenelCaves_BridgeSwitch() { +} + +u32 sub_unk3_CrenelCaves_ExitToMines() { + return 1; +} + +void sub_StateChange_CrenelCaves_ExitToMines() { +} + +u32 sub_unk3_CrenelCaves_GripRing() { + return 1; +} + +void sub_StateChange_CrenelCaves_GripRing() { +} + +u32 sub_unk3_CrenelCaves_FairyFountain() { + return 1; +} + +void sub_StateChange_CrenelCaves_FairyFountain() { +} + +u32 sub_unk3_CrenelCaves_SpinyChuPuzzle() { + return 1; +} + +void sub_StateChange_CrenelCaves_SpinyChuPuzzle() { +} + +u32 sub_unk3_CrenelCaves_ChuchuPotChest() { + return 1; +} + +void sub_StateChange_CrenelCaves_ChuchuPotChest() { +} + +u32 sub_unk3_CrenelCaves_WaterHeartPiece() { + return 1; +} + +void sub_StateChange_CrenelCaves_WaterHeartPiece() { +} + +u32 sub_unk3_CrenelCaves_RupeeFairyFountain() { + return 1; +} + +void sub_StateChange_CrenelCaves_RupeeFairyFountain() { +} + +u32 sub_unk3_CrenelCaves_HelmasaurHallway() { + return 1; +} + +void sub_StateChange_CrenelCaves_HelmasaurHallway() { +} + +u32 sub_unk3_CrenelCaves_MushroomKeese() { + return 1; +} + +void sub_StateChange_CrenelCaves_MushroomKeese() { +} + +u32 sub_unk3_CrenelCaves_LadderToGreenWater() { + return 1; +} + +void sub_StateChange_CrenelCaves_LadderToGreenWater() { +} + +u32 sub_unk3_CrenelCaves_BombBusinessScrub() { + return 1; +} + +void sub_StateChange_CrenelCaves_BombBusinessScrub() { +} + +u32 sub_unk3_CrenelCaves_Hermit() { + return 1; +} + +void sub_StateChange_CrenelCaves_Hermit(void) { + if (!CheckLocalFlag(0x70)) { + SetLocalFlag(0x70); + } +} + +u32 sub_unk3_CrenelCaves_HintScrub() { + return 1; +} + +void sub_StateChange_CrenelCaves_HintScrub() { +} + +u32 sub_unk3_CrenelCaves_ToGrayblade() { + return 1; +} + +void sub_StateChange_CrenelCaves_ToGrayblade() { +} diff --git a/src/sub_08050008.c b/src/sub_08050008.c deleted file mode 100644 index 4124df8f..00000000 --- a/src/sub_08050008.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "global.h" -#include "utils.h" -#include "structures.h" - -void sub_08050008() { - MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0)); - gFadeControl.mask = 0xFFFFFFFF; -} From 227703e4966071b98af129185ed7d70c782ceed2 Mon Sep 17 00:00:00 2001 From: theo3 Date: Sat, 18 Dec 2021 23:46:04 -0800 Subject: [PATCH 027/168] finish fade.c --- asm/code_08050038.s | 252 -------------------------------------------- asm/code_080526F8.s | 2 +- asm/code_080A5574.s | 2 +- asm/code_080ADD30.s | 4 +- asm/fileScreen.s | 2 +- asm/object3D.s | 2 +- include/arm_proxy.h | 2 +- include/audio.h | 2 +- include/functions.h | 1 - include/main.h | 25 +++-- linker.ld | 1 - src/audio.c | 2 +- src/demoScreen.c | 2 +- src/fade.c | 113 +++++++++++++++++++- src/fileScreen.c | 2 +- src/interrupts.c | 6 +- src/intro.c | 2 +- src/main.c | 43 ++++---- src/overworld.c | 4 +- src/save.c | 1 + 20 files changed, 163 insertions(+), 307 deletions(-) delete mode 100644 asm/code_08050038.s diff --git a/asm/code_08050038.s b/asm/code_08050038.s deleted file mode 100644 index 9e01870f..00000000 --- a/asm/code_08050038.s +++ /dev/null @@ -1,252 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start UpdateFade -UpdateFade: @ 0x08050154 - push {r4, r5, r6, lr} - ldr r4, _08050180 @ =gFadeControl - ldrh r0, [r4, #8] - movs r5, #0x1c - ands r5, r0 - movs r6, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _080501BE - ldrh r0, [r4, #0xc] - ldrh r1, [r4, #0xa] - subs r0, r0, r1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r4, #0xe] - movs r3, #0xe - ldrsh r1, [r4, r3] - cmp r0, r1 - bgt _080501B8 - strh r2, [r4, #0xc] - b _080501B8 - .align 2, 0 -_08050180: .4byte gFadeControl -_08050184: - mvns r0, r5 - adds r0, #1 - ands r0, r5 - eors r5, r0 - cmp r0, #8 - beq _080501A8 - cmp r0, #8 - bhi _0805019A - cmp r0, #4 - beq _080501A0 - b _080501B8 -_0805019A: - cmp r0, #0x10 - beq _080501B0 - b _080501B8 -_080501A0: - adds r0, r4, #0 - bl sub_080501C0 - b _080501B6 -_080501A8: - adds r0, r4, #0 - bl sub_08050230 - b _080501B6 -_080501B0: - adds r0, r4, #0 - bl sub_080502A4 -_080501B6: - orrs r6, r0 -_080501B8: - cmp r5, #0 - bne _08050184 - strb r6, [r4] -_080501BE: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080501C0 -sub_080501C0: @ 0x080501C0 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - ldrh r1, [r3, #8] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080501DA - movs r0, #0xc - ldrsh r1, [r3, r0] - movs r0, #0x80 - lsls r0, r0, #1 - subs r5, r0, r1 - b _080501DE -_080501DA: - movs r2, #0xc - ldrsh r5, [r3, r2] -_080501DE: - ldr r0, _080501F8 @ =gFadeControl - ldr r2, [r0, #4] - ldr r1, _080501FC @ =gUnk_020354C0 - movs r4, #0 - ldr r7, _08050200 @ =gUsedPalettes - movs r6, #1 -_080501EA: - adds r0, r2, #0 - ands r0, r6 - cmp r0, #0 - beq _08050204 - strb r6, [r1] - strh r5, [r1, #2] - b _08050208 - .align 2, 0 -_080501F8: .4byte gFadeControl -_080501FC: .4byte gUnk_020354C0 -_08050200: .4byte gUsedPalettes -_08050204: - strb r0, [r1] - strh r0, [r1, #2] -_08050208: - ldrb r0, [r3, #2] - strb r0, [r1, #1] - lsrs r2, r2, #1 - adds r4, #1 - adds r1, #4 - cmp r4, #0x1f - bls _080501EA - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r7] - movs r0, #0xe - ldrsh r1, [r3, r0] - movs r2, #0xc - ldrsh r0, [r3, r2] - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08050230 -sub_08050230: @ 0x08050230 - push {r4, r5, lr} - ldrh r4, [r0, #8] - ldrh r0, [r0, #0xc] - lsls r5, r0, #0x10 - asrs r2, r5, #0x14 - movs r0, #0xf - ands r2, r0 - movs r0, #1 - ands r4, r0 - cmp r4, #0 - beq _0805024A - movs r0, #0xf - subs r2, r0, r2 -_0805024A: - ldr r3, _08050264 @ =gScreen - ldr r1, _08050268 @ =gUnk_080FC3C4 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r3, #0 - adds r0, #0x64 - strh r1, [r0] - cmp r5, #0 - beq _0805026C - movs r0, #1 - b _08050298 - .align 2, 0 -_08050264: .4byte gScreen -_08050268: .4byte gUnk_080FC3C4 -_0805026C: - ldr r1, _0805029C @ =gUnk_03000000 - movs r0, #0 - strb r0, [r1, #2] - cmp r4, #0 - bne _08050296 - ldrh r2, [r3, #8] - ldr r1, _080502A0 @ =0x0000FFBF - adds r0, r1, #0 - ands r0, r2 - strh r0, [r3, #8] - ldrh r2, [r3, #0x14] - adds r0, r1, #0 - ands r0, r2 - strh r0, [r3, #0x14] - ldrh r2, [r3, #0x20] - adds r0, r1, #0 - ands r0, r2 - strh r0, [r3, #0x20] - ldrh r0, [r3, #0x2c] - ands r1, r0 - strh r1, [r3, #0x2c] -_08050296: - movs r0, #0 -_08050298: - pop {r4, r5, pc} - .align 2, 0 -_0805029C: .4byte gUnk_03000000 -_080502A0: .4byte 0x0000FFBF - - thumb_func_start sub_080502A4 -sub_080502A4: @ 0x080502A4 - push {r4, lr} - ldrh r1, [r0, #8] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080502E4 - ldr r4, _080502E0 @ =gFadeControl - ldrh r0, [r4, #0x10] - ldrh r1, [r4, #0xa] - subs r0, r0, r1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080502C4 - movs r0, #0 - strh r0, [r4, #0x10] -_080502C4: - movs r1, #0x12 - ldrsh r0, [r4, r1] - movs r2, #0x14 - ldrsh r1, [r4, r2] - movs r3, #0x10 - ldrsh r2, [r4, r3] - bl sub_0801E1EC - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08050314 - movs r0, #0 - b _08050316 - .align 2, 0 -_080502E0: .4byte gFadeControl -_080502E4: - ldr r4, _08050310 @ =gFadeControl - ldrh r0, [r4, #0xa] - ldrh r2, [r4, #0x10] - adds r0, r0, r2 - strh r0, [r4, #0x10] - movs r3, #0x12 - ldrsh r0, [r4, r3] - movs r2, #0x14 - ldrsh r1, [r4, r2] - movs r3, #0x10 - ldrsh r2, [r4, r3] - bl sub_0801E1EC - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #0x96 - ble _08050314 - bl sub_0801E104 - movs r0, #0 - b _08050316 - .align 2, 0 -_08050310: .4byte gFadeControl -_08050314: - movs r0, #1 -_08050316: - pop {r4, pc} diff --git a/asm/code_080526F8.s b/asm/code_080526F8.s index db0707fb..402a840e 100644 --- a/asm/code_080526F8.s +++ b/asm/code_080526F8.s @@ -510,7 +510,7 @@ sub_08053974: @ 0x08053974 ldrb r0, [r0] cmp r0, #0 bne _080539A8 - bl sub_0804FFE4 + bl InitFade movs r0, #1 bl DispReset bl sub_080197AC diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index 60c6ca18..ccc08052 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -4948,7 +4948,7 @@ sub_080A7328: @ 0x080A7328 movs r0, #1 bl DispReset bl MessageInitialize - bl sub_080ADD30 + bl ResetPalettes movs r0, #0 bl sub_0801CFA8 ldr r0, _080A739C @ =gGFXSlots diff --git a/asm/code_080ADD30.s b/asm/code_080ADD30.s index f4c1ec86..ed420750 100644 --- a/asm/code_080ADD30.s +++ b/asm/code_080ADD30.s @@ -8,8 +8,8 @@ - thumb_func_start sub_080ADD30 -sub_080ADD30: @ 0x080ADD30 + thumb_func_start ResetPalettes +ResetPalettes: @ 0x080ADD30 push {r4, r5, r6, lr} ldr r4, _080ADD6C @ =gGFXSlots movs r1, #0x85 diff --git a/asm/fileScreen.s b/asm/fileScreen.s index 50f5a585..94944122 100755 --- a/asm/fileScreen.s +++ b/asm/fileScreen.s @@ -125,7 +125,7 @@ sub_08051A14: @ 0x08051A14 bl EraseAllEntities bl sub_080197AC bl sub_08080668 - bl sub_080ADD30 + bl ResetPalettes movs r0, #1 bl sub_0801CFA8 bl sub_0806FD8C diff --git a/asm/object3D.s b/asm/object3D.s index 1fe40be6..3a81976a 100644 --- a/asm/object3D.s +++ b/asm/object3D.s @@ -89,7 +89,7 @@ _0808CF82: bl sub_0808D030 movs r0, #0 bl sub_0801CFA8 - bl sub_080ADD30 + bl ResetPalettes ldr r0, _0808D024 @ =gGFXSlots movs r6, #1 strb r6, [r0] diff --git a/include/arm_proxy.h b/include/arm_proxy.h index c07a649e..9364ebf0 100644 --- a/include/arm_proxy.h +++ b/include/arm_proxy.h @@ -1,6 +1,6 @@ #ifndef ARM_PROXY_H #define ARM_PROXY_H -extern void PrepNextFrame(void); +extern void WaitForNextFrame(void); #endif diff --git a/include/audio.h b/include/audio.h index 99ccf298..ccfdee57 100644 --- a/include/audio.h +++ b/include/audio.h @@ -593,6 +593,6 @@ extern SoundPlayingInfo gSoundPlayingInfo; void InitSound(void); void SoundReq(Sound sound); -void SoundLoop(void); +void AudioMain(void); #endif // AUDIO_H diff --git a/include/functions.h b/include/functions.h index d9125a19..1b446323 100644 --- a/include/functions.h +++ b/include/functions.h @@ -49,7 +49,6 @@ extern u32 GetSaleItemConfirmMessageID(u32); extern void FlushSprites(void); extern void DispReset(u32); extern void InitSoundPlayingInfo(void); -extern void InitDMA(void); extern Entity* CreateProjectile(u32); extern void RegisterPlayerHitbox(); extern s32 GetItemPrice(); diff --git a/include/main.h b/include/main.h index 5721b22d..c9675bfe 100644 --- a/include/main.h +++ b/include/main.h @@ -47,18 +47,23 @@ enum { SCREEN_DEBUG_TEXT, }; +enum { + DEFAULT, + SLEEP, +}; + typedef struct { vu8 interruptFlag; - u8 field_0x1; + u8 sleepStatus; u8 screen; u8 funcIndex; u8 transition; u8 field_0x5; u8 muteAudio; u8 field_0x7; - u8 countdown; - u8 field_0x9; - u8 field_0xa; + u8 pauseFrames; + u8 pauseCount; + u8 pauseInterval; u16 ticks; } Main; @@ -84,18 +89,20 @@ extern UI gUnk_02032EC0; */ void InitScreen(u32 screen); +void InitDMA(void); + extern void sub_08056208(void); -extern void sub_0804FFE4(void); -extern void sub_080ADD30(void); +extern void InitFade(void); +extern void ResetPalettes(void); extern void DoSoftReset(void); -extern void sub_08056260(void); +extern void SetSleepMode(void); extern void VBlankIntrWait(); -extern void UpdateFade(void); +extern void FadeMain(void); extern u8 gUnk_03003DE4; -extern void sub_0804FF84(u32); +extern void SetBrightness(u32); extern u16 gPaletteBuffer[]; extern void VBlankInterruptWait(void); extern void DisableInterruptsAndDMA(void); diff --git a/linker.ld b/linker.ld index 916842e9..f3b44b05 100644 --- a/linker.ld +++ b/linker.ld @@ -484,7 +484,6 @@ SECTIONS { src/room.o(.text); src/roomInit.o(.text); src/fade.o(.text); - asm/code_08050038.o(.text); src/fileScreen.o(.text); asm/fileScreen.o(.text); src/overworld.o(.text); diff --git a/src/audio.c b/src/audio.c index 5889a0eb..2b57b183 100644 --- a/src/audio.c +++ b/src/audio.c @@ -143,7 +143,7 @@ void SoundReq(Sound sound) { } } -void SoundLoop(void) { +void AudioMain(void) { s32 fadeValue; SoundPlayingInfo* ptr = &gSoundPlayingInfo; diff --git a/src/demoScreen.c b/src/demoScreen.c index f2b3315a..b10bd35f 100644 --- a/src/demoScreen.c +++ b/src/demoScreen.c @@ -34,7 +34,7 @@ void sub_080A2E40(void) { MemClear((void*)VRAM, 0x80); MessageInitialize(); EraseAllEntities(); - sub_080ADD30(); + ResetPalettes(); sub_0801CFA8(0); MemClear(&gUnk_02032EC0, sizeof gUnk_02032EC0); MemClear(&gChooseFileState, sizeof gChooseFileState); diff --git a/src/fade.c b/src/fade.c index 8ca58d5a..defbe187 100644 --- a/src/fade.c +++ b/src/fade.c @@ -8,22 +8,26 @@ typedef struct { u8 field_0x1; u8 spritesOffset; } struct_03000000; - extern struct_03000000 gUnk_03000000; +static u32 sub_080501C0(FadeControl* ctl); +static u32 sub_08050230(FadeControl* ctl); +static u32 sub_080502A4(FadeControl* ctl); + extern u32 gUsedPalettes; extern u16 gPaletteBuffer[]; +extern u16 gUnk_080FC3C4[]; // function pointer to overlay (0x03005e98) in ram calls rom function MakeFadeBuff256 extern u32 gMakeFadeBuff256; typedef void (*fptrMakeFadeBuff256)(u8*, u8*, u16, u8); -void sub_0804FF84(u32 arg0) { +void SetBrightness(u32 arg0) { gSaveHeader->brightnessPref = arg0; gUsedPalettes = 0xffffffff; } -void FadeMain() { +void FadeVBlank(void) { fptrMakeFadeBuff256 func; u32 usedPalettesTmp, palIdx; @@ -40,11 +44,11 @@ void FadeMain() { palIdx += 0x20; ptrUnk++; - usedPalettesTmp /= 2; + usedPalettesTmp >>= 1; } } -void sub_0804FFE4() { +void InitFade() { MemClear(&gFadeControl, sizeof(gFadeControl)); MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0)); gFadeControl.mask = 0xffffffff; @@ -115,3 +119,102 @@ void sub_08050110(u32 param_1, u32 param_2, u32 fadeType, u32 fadeSpeed) { gFadeControl.field_0x18 = 0; DoFade(fadeType, fadeSpeed); } + +void FadeMain(void) { + FadeControl* ctl = &gFadeControl; + u32 flags = ctl->fadeType & 0x1C; + u32 active = 0; + u32 bit; + + if (ctl->active) { + ctl->fadeDuration -= ctl->fadeSpeed; + if ((s16)ctl->fadeDuration <= (s16)ctl->field_0xe) + ctl->fadeDuration = ctl->field_0xe; + while (flags) { + bit = (~flags + 1) & flags; + flags ^= bit; + switch (bit) { + case 4: + active |= sub_080501C0(ctl); + break; + case 8: + active |= sub_08050230(ctl); + break; + case 16: + active |= sub_080502A4(ctl); + break; + } + } + ctl->active = active; + } +} + +static u32 sub_080501C0(FadeControl* ctl) { + u32 v1; + u32 v2; + struct_020354C0* v3; + u32 i; + + if (ctl->fadeType & 1) { + v1 = 256 - (s16)ctl->fadeDuration; + } else { + v1 = (s16)ctl->fadeDuration; + } + v2 = gFadeControl.mask; + v3 = gUnk_020354C0; + for (i = 0; i < 0x20; ++i, ++v3) { + if (v2 & 1) { + v3->unk0 = 1; + v3->unk2 = v1; + } else { + v3->unk0 = 0; + v3->unk2 = 0; + } + v3->unk1 = ctl->field_0x2; + v2 >>= 1; + } + gUsedPalettes = 0xffffffff; + + return !!((s16)ctl->field_0xe ^ (s16)ctl->fadeDuration); +} + +static u32 sub_08050230(FadeControl* ctl) { + u32 type = ctl->fadeType; + u32 idx = ((s16)ctl->fadeDuration >> 4) & 0xF; + if (type & 1) + idx = 0xF - idx; + gScreen.controls.mosaicSize = gUnk_080FC3C4[idx]; + if (ctl->fadeDuration != 0) + return 1; + + // fade is finished + gUnk_03000000.spritesOffset = 0; + if ((type & 1) == 0) { + // reset registers if fading in + gScreen.bg0.control &= ~BGCNT_MOSAIC; + gScreen.bg1.control &= ~BGCNT_MOSAIC; + gScreen.bg2.control &= ~BGCNT_MOSAIC; + gScreen.bg3.control &= ~BGCNT_MOSAIC; + } + return 0; +} + +static u32 sub_080502A4(FadeControl* ctl) { + if (ctl->fadeType & 1) { + s32 delta = (u16)gFadeControl.field_0x10 - gFadeControl.fadeSpeed; + gFadeControl.field_0x10 -= gFadeControl.fadeSpeed; + if (delta << 16 <= 0) + gFadeControl.field_0x10 = 0; + sub_0801E1EC(gFadeControl.field_0x12, gFadeControl.field_0x14, gFadeControl.field_0x10); + if (!gFadeControl.field_0x10) + return 0; + } else { + gFadeControl.field_0x10 += gFadeControl.fadeSpeed; + sub_0801E1EC(gFadeControl.field_0x12, gFadeControl.field_0x14, gFadeControl.field_0x10); + if (gFadeControl.field_0x10 > 150) { + sub_0801E104(); + return 0; + } + } + return 1; +} diff --git a/src/fileScreen.c b/src/fileScreen.c index 8a7fe482..8820f24f 100644 --- a/src/fileScreen.c +++ b/src/fileScreen.c @@ -197,7 +197,7 @@ static void HandleFileScreenEnter(void) { MessageInitialize(); EraseAllEntities(); sub_08080668(); - sub_080ADD30(); + ResetPalettes(); sub_0801CFA8(0); MemClear(&gUnk_0200AF00, sizeof(gUnk_0200AF00)); MemClear(&gUnk_02019EE0, sizeof(gUnk_02019EE0)); diff --git a/src/interrupts.c b/src/interrupts.c index 8a44a61b..f7252e64 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -29,7 +29,7 @@ extern void sub_080ADD70(); extern void sub_0801C25C(); extern void UpdateDisplayControls(); extern void LoadResources(); -extern void FadeMain(); +extern void FadeVBlank(); extern void HandlePlayerLife(); extern void DoPlayerAction(); extern void sub_080171F0(); @@ -156,7 +156,7 @@ void LoadResources(void) { } } -void PrepNextFrame(void) { +void WaitForNextFrame(void) { gMain.interruptFlag = 0; VBlankIntrWait(); do { @@ -176,7 +176,7 @@ void PrepNextFrame(void) { if (gUnk_0200B650 != NULL) DmaCopy32(3, &gBG2Buffer, VRAM + (*gUnk_0200B650 & 0x1f00) * 8, 0x5C0); } - FadeMain(); + FadeVBlank(); } void PlayerUpdate(Entity* this) { diff --git a/src/intro.c b/src/intro.c index 4a563487..3095dcb9 100644 --- a/src/intro.c +++ b/src/intro.c @@ -145,7 +145,7 @@ static void HandleTitlescreen(void) { gIntroState.gameLanguage = 7; EraseAllEntities(); sub_0801CFA8(0); - sub_080ADD30(); + ResetPalettes(); gGFXSlots.unk0 = 1; LoadGfxGroup(2); if (gSaveHeader->gameLanguage == 0) { diff --git a/src/main.c b/src/main.c index db3587c5..6a883794 100644 --- a/src/main.c +++ b/src/main.c @@ -38,8 +38,6 @@ void (*const sScreenHandlers[])(void) = { static void sub_080560B8(void); void AgbMain(void) { - int var0; - InitOverlays(); InitSound(); InitDMA(); @@ -47,11 +45,11 @@ void AgbMain(void) { sub_080560B8(); sub_08056208(); gUnk_02000010.field_0x4 = 193; - sub_0804FFE4(); + InitFade(); DmaCopy32(3, BG_PLTT, gPaletteBuffer, BG_PLTT_SIZE); - sub_0804FF84(1); + SetBrightness(1); MessageInitialize(); - sub_080ADD30(); + ResetPalettes(); gRand = 0x1234567; MemClear(&gMain, sizeof(gMain)); InitScreen(SCREEN_INTRO); @@ -61,22 +59,23 @@ void AgbMain(void) { DoSoftReset(); } - switch (gMain.field_0x1) { - case 1: - sub_08056260(); + switch (gMain.sleepStatus) { + case SLEEP: + SetSleepMode(); break; - case 0: + case DEFAULT: default: - if (gMain.countdown != 0) { + if (gMain.pauseFrames != 0) { do { VBlankIntrWait(); - } while (--gMain.countdown); + } while (--gMain.pauseFrames); } - if (gMain.field_0x9 != 0) { - gMain.field_0x9--; - var0 = gMain.field_0xa; - while (var0-- > 0) { + if (gMain.pauseCount != 0) { + int cnt; + gMain.pauseCount--; + cnt = gMain.pauseInterval; + while (cnt-- > 0) { VBlankIntrWait(); } } @@ -84,11 +83,11 @@ void AgbMain(void) { gMain.ticks++; sScreenHandlers[gMain.screen](); MessageMain(); - UpdateFade(); - SoundLoop(); + FadeMain(); + AudioMain(); break; } - PrepNextFrame(); + WaitForNextFrame(); } } @@ -200,7 +199,7 @@ NONMATCH("asm/non_matching/sub_080560B8.inc", static void sub_080560B8(void)) { } temp = gUnk_02000010.signature ^ SIGNATURE; - b = !!temp; + b = BOOLCAST(temp); if ((gUnk_02000010.field_0x4 != 0) && (gUnk_02000010.field_0x4 != 0xc1)) { b = TRUE; @@ -257,7 +256,7 @@ void sub_08056250() { gScreen._6c = 0; } -void sub_08056260(void) { +void SetSleepMode(void) { u32 restore; Main* m; @@ -272,8 +271,8 @@ void sub_08056260(void) { REG_IE = restore; REG_IME = 1; m = &gMain; - *(vu8*)&m->field_0x1; // force a read - m->field_0x1 = 0; + *(vu8*)&m->sleepStatus; // force a read + m->sleepStatus = 0; } // Convert AABB to screen coordinates and check if it's within the viewport diff --git a/src/overworld.c b/src/overworld.c index a5cc9c59..417988e0 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -513,7 +513,7 @@ void sub_0805289C(void) { u32 sub_080528B4(void) { if (gScreenTransition.field_0x4[1]) { - sub_0804FFE4(); + InitFade(); gMain.funcIndex = 3; gMain.transition = 0; DoFade(5, 8); @@ -564,7 +564,7 @@ u32 HandleRoomExit(void) { } RoomExitCallback(); gMain.transition = 3; - *(&gMain.field_0xa + 1) = 1; + *(&gMain.pauseInterval + 1) = 1; return 1; } return 0; diff --git a/src/save.c b/src/save.c index 1f3102b2..177ad460 100644 --- a/src/save.c +++ b/src/save.c @@ -2,6 +2,7 @@ #include "gba/eeprom.h" #include "audio.h" #include "menu.h" +#include "main.h" #include "functions.h" typedef struct SaveFileStatus { From 3c4e1762d9aefa7840d3e6ec8343e551e2e6607c Mon Sep 17 00:00:00 2001 From: theo3 Date: Sun, 19 Dec 2021 17:57:42 -0800 Subject: [PATCH 028/168] util files --- asm/code_0806EC20.s | 36 - asm/code_0806ED78.s | 1749 ------------------- asm/code_080A7C00.s | 197 --- asm/non_matching/showNPCDialogue.inc | 216 +++ asm/non_matching/sub_0806F798.inc | 30 + asm/non_matching/sub_0806F824.inc | 25 + asm/non_matching/sub_0806F998.inc | 48 + asm/non_matching/sub_0806FOA4.inc | 65 + include/functions.h | 4 +- include/room.h | 11 + include/save.h | 11 +- linker.ld | 12 +- src/coord.c | 251 +++ src/createEntity.c | 50 - src/createNPC.c | 67 - src/{enemyInit.c => enemyUtils.c} | 0 src/npcUtils.c | 312 ++++ src/{createObject.c => objectUtils.c} | 0 src/player.c | 1 - src/playerItemUtils.c | 106 ++ src/{projectileInit.c => projectileUtils.c} | 0 src/room.c | 11 - src/roomInit.c | 4 - 23 files changed, 1077 insertions(+), 2129 deletions(-) delete mode 100644 asm/code_0806EC20.s delete mode 100644 asm/code_0806ED78.s delete mode 100644 asm/code_080A7C00.s create mode 100644 asm/non_matching/showNPCDialogue.inc create mode 100644 asm/non_matching/sub_0806F798.inc create mode 100644 asm/non_matching/sub_0806F824.inc create mode 100644 asm/non_matching/sub_0806F998.inc create mode 100644 asm/non_matching/sub_0806FOA4.inc delete mode 100644 src/createEntity.c delete mode 100644 src/createNPC.c rename src/{enemyInit.c => enemyUtils.c} (100%) create mode 100644 src/npcUtils.c rename src/{createObject.c => objectUtils.c} (100%) create mode 100644 src/playerItemUtils.c rename src/{projectileInit.c => projectileUtils.c} (100%) diff --git a/asm/code_0806EC20.s b/asm/code_0806EC20.s deleted file mode 100644 index a0ea06ff..00000000 --- a/asm/code_0806EC20.s +++ /dev/null @@ -1,36 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806EC20 -sub_0806EC20: @ 0x0806EC20 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - movs r1, #0 - movs r2, #0 - bl CreateNPC - cmp r0, #0 - beq _0806EC34 - str r4, [r0, #0x50] -_0806EC34: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806EC38 -sub_0806EC38: @ 0x0806EC38 - push {lr} - movs r0, #7 - movs r1, #0x58 - movs r2, #7 - bl FindEntityByID - cmp r0, #0 - beq _0806EC4C - bl DeleteEntity -_0806EC4C: - pop {pc} - .align 2, 0 diff --git a/asm/code_0806ED78.s b/asm/code_0806ED78.s deleted file mode 100644 index 74ca8730..00000000 --- a/asm/code_0806ED78.s +++ /dev/null @@ -1,1749 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806ED78 -sub_0806ED78: @ 0x0806ED78 - push {r4, lr} - bl sub_0800445C - adds r4, r0, #0 - cmp r4, #0 - beq _0806ED94 - ldr r0, _0806ED98 @ =gPlayerState - ldrb r1, [r0, #0x1e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806ED94 - bl sub_08077B20 -_0806ED94: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_0806ED98: .4byte gPlayerState - - thumb_func_start sub_0806ED9C -sub_0806ED9C: @ 0x0806ED9C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r3, r2, #0 - movs r6, #1 - rsbs r6, r6, #0 - ldr r1, _0806EDC0 @ =gPlayerEntity - adds r2, r4, #0 - bl EntityInRectRadius - cmp r0, #0 - beq _0806EDBC - adds r0, r5, #0 - bl GetAnimationState - adds r6, r0, #0 -_0806EDBC: - adds r0, r6, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806EDC0: .4byte gPlayerEntity - - thumb_func_start GetAnimationState -GetAnimationState: @ 0x0806EDC4 - push {lr} - ldr r1, _0806EDD4 @ =gPlayerEntity - bl GetFacingDirection - bl sub_0806F5A4 - pop {pc} - .align 2, 0 -_0806EDD4: .4byte gPlayerEntity - - thumb_func_start sub_0806EDD8 -sub_0806EDD8: @ 0x0806EDD8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r3, r2, #0 - movs r7, #1 - rsbs r7, r7, #0 - ldr r6, _0806EE00 @ =gPlayerEntity - adds r1, r6, #0 - adds r2, r4, #0 - bl EntityInRectRadius - cmp r0, #0 - beq _0806EDFC - adds r0, r5, #0 - adds r1, r6, #0 - bl GetFacingDirection - adds r7, r0, #0 -_0806EDFC: - adds r0, r7, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806EE00: .4byte gPlayerEntity - - thumb_func_start sub_0806EE04 -sub_0806EE04: @ 0x0806EE04 - adds r3, r0, #0 - str r1, [r3, #0x54] - adds r0, #0x3c - movs r1, #0 - strb r2, [r0] - adds r0, #3 - strb r1, [r0] - adds r2, r3, #0 - adds r2, #0x46 - movs r0, #0 - strh r1, [r2] - strb r0, [r3, #0x16] - bx lr - .align 2, 0 - - thumb_func_start sub_0806EE20 -sub_0806EE20: @ 0x0806EE20 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0806EE4C - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0806EE66 - ldr r1, _0806EE48 @ =gUnk_08114EFC - ldrb r0, [r4, #0x16] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - b _0806EE68 - .align 2, 0 -_0806EE48: .4byte gUnk_08114EFC -_0806EE4C: - adds r1, r4, #0 - adds r1, #0x46 - movs r0, #8 - strh r0, [r1] - ldr r1, _0806EE6C @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] -_0806EE66: - movs r0, #0 -_0806EE68: - pop {r4, pc} - .align 2, 0 -_0806EE6C: .4byte gPlayerEntity - - thumb_func_start sub_0806EE70 -sub_0806EE70: @ 0x0806EE70 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x46 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #8 - bls _0806EE92 - movs r0, #0 - strh r0, [r1] - adds r0, r4, #0 - bl sub_0806EF14 -_0806EE92: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - mov r1, sp - bl sub_0806EF4C - mov r0, sp - ldrh r1, [r0] - ldrh r2, [r0, #2] - adds r0, r4, #0 - bl sub_080041DC - adds r1, r0, #0 - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0 - bge _0806EEB8 - rsbs r0, r0, #0 -_0806EEB8: - lsrs r0, r0, #3 - cmp r0, r1 - bhi _0806EEC2 - movs r0, #0 - b _0806EECA -_0806EEC2: - adds r0, r4, #0 - movs r1, #3 - bl sub_0806EF74 -_0806EECA: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806EED0 -sub_0806EED0: @ 0x0806EED0 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x46 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0806EEE8 - movs r0, #0 - b _0806EEF0 -_0806EEE8: - adds r0, r2, #0 - movs r1, #2 - bl sub_0806EF74 -_0806EEF0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806EEF4 -sub_0806EEF4: @ 0x0806EEF4 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0806EF08 - movs r0, #0 - b _0806EF10 -_0806EF08: - adds r0, r2, #0 - movs r1, #1 - bl sub_0806EF74 -_0806EF10: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806EF14 -sub_0806EF14: @ 0x0806EF14 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - mov r1, sp - bl sub_0806EF4C - mov r0, sp - ldrh r1, [r0] - ldrh r2, [r0, #2] - adds r0, r4, #0 - bl sub_080045B4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x3c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0806EF48 - ldrb r0, [r4, #0x15] - bl sub_0806F5A4 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] -_0806EF48: - add sp, #4 - pop {r4, pc} - - thumb_func_start sub_0806EF4C -sub_0806EF4C: @ 0x0806EF4C - push {r4, lr} - adds r2, r0, #0 - adds r2, #0x3f - ldrb r2, [r2] - lsls r2, r2, #1 - ldr r3, [r0, #0x54] - adds r3, r3, r2 - ldr r2, _0806EF70 @ =gRoomControls - ldrh r0, [r3, #2] - ldrh r4, [r2, #6] - adds r0, r0, r4 - strh r0, [r1] - ldrh r0, [r3, #4] - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r1, #2] - pop {r4, pc} - .align 2, 0 -_0806EF70: .4byte gRoomControls - - thumb_func_start sub_0806EF74 -sub_0806EF74: @ 0x0806EF74 - push {lr} - adds r3, r0, #0 - adds r3, #0x3f - ldrb r2, [r3] - adds r2, r2, r1 - strb r2, [r3] - bl sub_0806EF88 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806EF88 -sub_0806EF88: @ 0x0806EF88 - push {lr} - adds r1, r0, #0 - adds r1, #0x3f - ldrb r2, [r1] - lsls r2, r2, #1 - ldr r1, [r0, #0x54] - adds r1, r1, r2 - ldr r3, _0806EFA8 @ =gUnk_08114F0C - ldrb r2, [r1] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0806EFA8: .4byte gUnk_08114F0C - - thumb_func_start sub_0806EFAC -sub_0806EFAC: @ 0x0806EFAC - push {lr} - adds r2, r0, #0 - adds r2, #0x3f - movs r1, #0 - strb r1, [r2] - bl sub_0806EF88 - pop {pc} - - thumb_func_start sub_0806EFBC -sub_0806EFBC: @ 0x0806EFBC - movs r1, #1 - strb r1, [r0, #0x16] - adds r0, #0x46 - movs r1, #8 - strh r1, [r0] - movs r0, #0 - bx lr - .align 2, 0 - - thumb_func_start sub_0806EFCC -sub_0806EFCC: @ 0x0806EFCC - movs r2, #2 - strb r2, [r0, #0x16] - ldrh r1, [r1, #2] - adds r0, #0x46 - strh r1, [r0] - movs r0, #0 - bx lr - .align 2, 0 - - thumb_func_start sub_0806EFDC -sub_0806EFDC: @ 0x0806EFDC - push {lr} - adds r3, r0, #0 - ldrh r0, [r1] - lsrs r0, r0, #8 - cmp r0, #0 - beq _0806EFF4 - adds r2, r3, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - b _0806EFFE -_0806EFF4: - adds r2, r3, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #1 - orrs r0, r1 -_0806EFFE: - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x3f - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r3, #0 - bl sub_0806EF88 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806F014 -sub_0806F014: @ 0x0806F014 - push {lr} - ldrh r1, [r1, #2] - strh r1, [r0, #0x24] - adds r2, r0, #0 - adds r2, #0x3f - ldrb r1, [r2] - adds r1, #2 - strb r1, [r2] - bl sub_0806EF88 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806F02C -sub_0806F02C: @ 0x0806F02C - push {lr} - ldrh r1, [r1] - lsrs r1, r1, #8 - adds r2, r0, #0 - adds r2, #0x3e - strb r1, [r2] - adds r2, #1 - ldrb r1, [r2] - adds r1, #1 - strb r1, [r2] - bl sub_0806EF88 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806F048 -sub_0806F048: @ 0x0806F048 - movs r1, #3 - strb r1, [r0, #0x16] - movs r0, #0 - bx lr - - thumb_func_start sub_0806F050 -sub_0806F050: @ 0x0806F050 - push {lr} - adds r1, #2 - str r1, [r0, #0x54] - adds r2, r0, #0 - adds r2, #0x3f - movs r1, #0 - strb r1, [r2] - bl sub_0806EF88 - pop {pc} - - thumb_func_start sub_0806F064 -sub_0806F064: @ 0x0806F064 - movs r2, #0 - strb r2, [r0, #0x16] - adds r0, #0x3f - ldrb r2, [r0] - adds r2, #1 - strb r2, [r0] - ldrh r0, [r1] - lsrs r0, r0, #8 - bx lr - .align 2, 0 - - thumb_func_start sub_0806F078 -sub_0806F078: @ 0x0806F078 - push {lr} - adds r2, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _0806F0A0 - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _0806F096 - adds r0, r2, #0 - bl InitAnimationForceUpdate - b _0806F09C -_0806F096: - adds r0, r2, #0 - bl InitializeAnimation -_0806F09C: - movs r0, #1 - b _0806F0A2 -_0806F0A0: - movs r0, #0 -_0806F0A2: - pop {pc} - - thumb_func_start sub_0806F0A4 -sub_0806F0A4: @ 0x0806F0A4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r7, _0806F114 @ =gUnk_03003DA8 - ldr r5, [r7, #4] - movs r0, #0 - cmp r5, r7 - beq _0806F0BA -_0806F0B2: - adds r0, #1 - ldr r5, [r5, #4] - cmp r5, r7 - bne _0806F0B2 -_0806F0BA: - cmp r0, #1 - bls _0806F10E - ldr r5, [r7, #4] - cmp r5, r7 - beq _0806F10E - movs r2, #1 -_0806F0C6: - ldrb r1, [r5, #0x10] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F108 - ldrb r1, [r5, #0x17] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F108 - ldr r4, [r5, #4] - cmp r4, r7 - beq _0806F108 - movs r6, #1 -_0806F0E2: - ldrb r1, [r4, #0x10] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F102 - ldrb r1, [r4, #0x17] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F102 - adds r0, r5, #0 - adds r1, r4, #0 - str r2, [sp] - bl sub_08004484 - ldr r2, [sp] -_0806F102: - ldr r4, [r4, #4] - cmp r4, r7 - bne _0806F0E2 -_0806F108: - ldr r5, [r5, #4] - cmp r5, r7 - bne _0806F0C6 -_0806F10E: - add sp, #4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806F114: .4byte gUnk_03003DA8 - - thumb_func_start sub_0806F118 -sub_0806F118: @ 0x0806F118 - push {r4, lr} - adds r4, r0, #0 - bl sub_08002632 - ldr r1, _0806F140 @ =gUnk_08001A7C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r0, #2] - ldrh r3, [r0, #4] - adds r0, r4, #0 - bl sub_0801DFB4 - ldr r0, _0806F144 @ =gPlayerState - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - pop {r4, pc} - .align 2, 0 -_0806F140: .4byte gUnk_08001A7C -_0806F144: .4byte gPlayerState - - thumb_func_start UpdateFuseInteraction -UpdateFuseInteraction: @ 0x0806F148 - push {r4, lr} - bl sub_0801E00C - movs r4, #1 - rsbs r4, r4, #0 - ldr r0, _0806F164 @ =gUnk_02022740 - ldrb r0, [r0] - cmp r0, #1 - beq _0806F172 - cmp r0, #2 - beq _0806F168 - movs r4, #0 - b _0806F17E - .align 2, 0 -_0806F164: .4byte gUnk_02022740 -_0806F168: - ldr r0, _0806F184 @ =gPlayerState - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - movs r4, #1 -_0806F172: - bl sub_0807919C - ldr r0, _0806F184 @ =gPlayerState - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] -_0806F17E: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_0806F184: .4byte gPlayerState - - thumb_func_start sub_0806F188 -sub_0806F188: @ 0x0806F188 - push {lr} - bl sub_08002632 - adds r1, r0, #0 - cmp r1, #0 - beq _0806F1A0 - ldr r0, _0806F1A4 @ =gSave - ldr r2, _0806F1A8 @ =0x000001C1 - adds r0, r0, r2 - adds r0, r1, r0 - movs r1, #0xf3 - strb r1, [r0] -_0806F1A0: - pop {pc} - .align 2, 0 -_0806F1A4: .4byte gSave -_0806F1A8: .4byte 0x000001C1 - - thumb_func_start ShowNPCDialogue -ShowNPCDialogue: @ 0x0806F1AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r6, r1, #0 - ldrh r1, [r6, #2] - asrs r7, r1, #4 - movs r0, #1 - ands r7, r0 - movs r0, #0xf - ands r1, r0 - cmp r1, #6 - bls _0806F1C8 - b _0806F332 -_0806F1C8: - lsls r0, r1, #2 - ldr r1, _0806F1D4 @ =_0806F1D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806F1D4: .4byte _0806F1D8 -_0806F1D8: @ jump table - .4byte _0806F332 @ case 0 - .4byte _0806F342 @ case 1 - .4byte _0806F1F4 @ case 2 - .4byte _0806F24E @ case 3 - .4byte _0806F2BA @ case 4 - .4byte _0806F324 @ case 5 - .4byte _0806F336 @ case 6 -_0806F1F4: - ldr r4, [r6] - asrs r1, r4, #0xc - movs r0, #0xf - ands r1, r0 - ldr r0, _0806F210 @ =0x00000FFF - ands r4, r0 - movs r5, #0 - cmp r1, #1 - beq _0806F22A - cmp r1, #1 - bgt _0806F214 - cmp r1, #0 - beq _0806F21A - b _0806F248 - .align 2, 0 -_0806F210: .4byte 0x00000FFF -_0806F214: - cmp r1, #2 - beq _0806F23A - b _0806F248 -_0806F21A: - adds r0, r4, #0 - bl CheckRoomFlag - adds r5, r0, #0 -_0806F222: - adds r0, r4, #0 - bl SetRoomFlag - b _0806F248 -_0806F22A: - adds r0, r4, #0 - bl CheckLocalFlag - adds r5, r0, #0 -_0806F232: - adds r0, r4, #0 - bl SetLocalFlag - b _0806F248 -_0806F23A: - adds r0, r4, #0 - bl CheckGlobalFlag - adds r5, r0, #0 - adds r0, r4, #0 - bl SetGlobalFlag -_0806F248: - cmp r5, #0 - beq _0806F342 - b _0806F34C -_0806F24E: - ldr r4, [r6] - asrs r1, r4, #0xc - movs r0, #0xf - ands r1, r0 - ldr r0, _0806F26C @ =0x00000FFF - ands r4, r0 - movs r5, #0 - cmp r1, #1 - beq _0806F28A - cmp r1, #1 - bgt _0806F270 - cmp r1, #0 - beq _0806F276 - b _0806F248 - .align 2, 0 -_0806F26C: .4byte 0x00000FFF -_0806F270: - cmp r1, #2 - beq _0806F29E - b _0806F248 -_0806F276: - adds r0, r4, #0 - bl CheckRoomFlag - adds r5, r0, #0 - cmp r5, #0 - beq _0806F222 - adds r0, r4, #0 - bl ClearRoomFlag - b _0806F248 -_0806F28A: - adds r0, r4, #0 - bl CheckLocalFlag - adds r5, r0, #0 - cmp r5, #0 - beq _0806F232 - adds r0, r4, #0 - bl ClearLocalFlag - b _0806F248 -_0806F29E: - adds r0, r4, #0 - bl CheckGlobalFlag - adds r5, r0, #0 - cmp r5, #0 - bne _0806F2B2 - adds r0, r4, #0 - bl SetGlobalFlag - b _0806F248 -_0806F2B2: - adds r0, r4, #0 - bl ClearGlobalFlag - b _0806F248 -_0806F2BA: - ldr r4, [r6] - asrs r1, r4, #0xc - movs r0, #0xf - ands r1, r0 - ldr r0, _0806F2D8 @ =0x00000FFF - ands r4, r0 - movs r5, #0 - cmp r1, #4 - bhi _0806F248 - lsls r0, r1, #2 - ldr r1, _0806F2DC @ =_0806F2E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806F2D8: .4byte 0x00000FFF -_0806F2DC: .4byte _0806F2E0 -_0806F2E0: @ jump table - .4byte _0806F2F4 @ case 0 - .4byte _0806F2FC @ case 1 - .4byte _0806F304 @ case 2 - .4byte _0806F30C @ case 3 - .4byte _0806F314 @ case 4 -_0806F2F4: - adds r0, r4, #0 - bl CheckRoomFlag - b _0806F320 -_0806F2FC: - adds r0, r4, #0 - bl CheckLocalFlag - b _0806F320 -_0806F304: - adds r0, r4, #0 - bl CheckGlobalFlag - b _0806F320 -_0806F30C: - adds r0, r4, #0 - bl CheckKinstoneFused - b _0806F320 -_0806F314: - adds r0, r4, #0 - bl GetInventoryValue - cmp r0, #0 - beq _0806F320 - movs r0, #1 -_0806F320: - adds r5, r0, #0 - b _0806F248 -_0806F324: - ldr r1, [r6, #4] - cmp r1, #0 - beq _0806F332 - mov r0, r8 - bl _call_via_r1 - b _0806F35E -_0806F332: - movs r0, #0 - b _0806F34E -_0806F336: - ldr r0, _0806F348 @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806F34C -_0806F342: - ldrh r0, [r6, #6] - b _0806F34E - .align 2, 0 -_0806F348: .4byte gPlayerState -_0806F34C: - ldrh r0, [r6, #4] -_0806F34E: - cmp r7, #0 - beq _0806F35A - mov r1, r8 - bl MessageNoOverlap - b _0806F35E -_0806F35A: - bl MessageFromTarget -_0806F35E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0806F364 -sub_0806F364: @ 0x0806F364 - push {lr} - ldr r2, _0806F384 @ =gArea - ldrb r0, [r2, #8] - movs r1, #0x80 - eors r0, r1 - strb r0, [r2, #8] - ldrb r1, [r2, #8] - adds r0, r1, #7 - asrs r0, r0, #3 - ldr r3, _0806F388 @ =0x00000868 - adds r1, r2, r3 - adds r0, r0, r1 - movs r1, #0x10 - bl MemClear - pop {pc} - .align 2, 0 -_0806F384: .4byte gArea -_0806F388: .4byte 0x00000868 - - thumb_func_start sub_0806F38C -sub_0806F38C: @ 0x0806F38C - ldr r0, _0806F398 @ =gArea - ldrb r1, [r0, #8] - movs r2, #0x80 - eors r1, r2 - strb r1, [r0, #8] - bx lr - .align 2, 0 -_0806F398: .4byte gArea - - thumb_func_start sub_0806F39C -sub_0806F39C: @ 0x0806F39C - push {r4, lr} - adds r3, r0, #0 - ldr r2, _0806F3B8 @ =gPlayerEntity - ldrb r1, [r2, #0x14] - movs r0, #2 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _0806F3BC - movs r0, #0x2e - ldrsh r1, [r3, r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - b _0806F3C4 - .align 2, 0 -_0806F3B8: .4byte gPlayerEntity -_0806F3BC: - movs r0, #0x32 - ldrsh r1, [r3, r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] -_0806F3C4: - subs r1, r1, r0 - cmp r1, #0 - bge _0806F3CC - rsbs r1, r1, #0 -_0806F3CC: - cmp r1, #0x40 - bgt _0806F3D4 - movs r0, #0 - b _0806F3E2 -_0806F3D4: - movs r0, #0x24 - ldrsh r1, [r3, r0] - ldrb r2, [r3, #0x15] - adds r0, r4, #0 - bl sub_080027EA - movs r0, #1 -_0806F3E2: - pop {r4, pc} - - thumb_func_start sub_0806F3E4 -sub_0806F3E4: @ 0x0806F3E4 - push {r4, r5, r6, lr} - sub sp, #0x88 - adds r5, r0, #0 - ldr r2, _0806F408 @ =gPlayerState - ldrb r1, [r2, #0x1c] - movs r0, #0x7f - ands r0, r1 - cmp r0, #1 - bne _0806F4E0 - ldrb r0, [r2, #0x1d] - cmp r0, #2 - beq _0806F420 - cmp r0, #2 - bgt _0806F40C - cmp r0, #1 - beq _0806F416 - b _0806F410 - .align 2, 0 -_0806F408: .4byte gPlayerState -_0806F40C: - cmp r0, #3 - beq _0806F42A -_0806F410: - adds r3, r5, #0 - adds r3, #0x46 - b _0806F436 -_0806F416: - adds r1, r5, #0 - adds r1, #0x46 - ldrh r0, [r1] - adds r0, #0x40 - b _0806F432 -_0806F420: - adds r1, r5, #0 - adds r1, #0x46 - ldrh r0, [r1] - adds r0, #0x80 - b _0806F432 -_0806F42A: - adds r1, r5, #0 - adds r1, #0x46 - ldrh r0, [r1] - adds r0, #0xc0 -_0806F432: - strh r0, [r1] - adds r3, r1, #0 -_0806F436: - adds r2, r3, #0 - ldrh r0, [r2] - movs r1, #0xa0 - lsls r1, r1, #3 - cmp r0, r1 - bls _0806F444 - strh r1, [r2] -_0806F444: - ldr r6, _0806F4BC @ =gPlayerEntity - ldrb r0, [r6, #0x14] - movs r1, #0xe - ands r1, r0 - ldr r0, _0806F4C0 @ =gUnk_08126EE4 - adds r1, r1, r0 - mov r2, sp - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r4, [r6, #0x2e] - adds r0, r0, r4 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r6, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldrh r4, [r3] - adds r0, r5, #0 - mov r1, sp - bl GetFacingDirection - adds r2, r0, #0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806F5BC - mov r0, sp - adds r1, r5, #0 - movs r2, #4 - movs r3, #4 - bl sub_0800419C - cmp r0, #0 - beq _0806F4E0 - ldrb r0, [r5, #0x1c] - movs r1, #0xf - ands r1, r0 - cmp r1, #2 - bne _0806F4C8 - movs r0, #3 - strb r0, [r5, #0xd] - str r5, [r6, #0x70] - ldr r1, _0806F4C4 @ =gPlayerState - movs r0, #7 - strb r0, [r1, #0x1c] - movs r0, #0x11 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl CreatePlayerItem - cmp r0, #0 - beq _0806F4B4 - str r5, [r0, #0x54] - str r0, [r5, #0x50] -_0806F4B4: - movs r0, #0xed - bl SoundReq - b _0806F4D8 - .align 2, 0 -_0806F4BC: .4byte gPlayerEntity -_0806F4C0: .4byte gUnk_08126EE4 -_0806F4C4: .4byte gPlayerState -_0806F4C8: - cmp r1, #1 - bne _0806F4D8 - ldr r0, _0806F4DC @ =gPlayerState - ldr r0, [r0, #0x2c] - strb r1, [r0, #0xa] - movs r0, #0xef - bl SoundReq -_0806F4D8: - movs r0, #1 - b _0806F4E2 - .align 2, 0 -_0806F4DC: .4byte gPlayerState -_0806F4E0: - movs r0, #0 -_0806F4E2: - add sp, #0x88 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806F4E8 -sub_0806F4E8: @ 0x0806F4E8 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0x1d] - movs r2, #3 - ands r2, r0 - cmp r2, #1 - beq _0806F516 - cmp r2, #1 - bgt _0806F500 - cmp r2, #0 - beq _0806F510 - b _0806F51C -_0806F500: - cmp r2, #2 - beq _0806F50A - cmp r2, #3 - beq _0806F516 - b _0806F51C -_0806F50A: - adds r1, #0x62 - movs r0, #0xfe - b _0806F51A -_0806F510: - adds r1, #0x62 - movs r0, #2 - b _0806F51A -_0806F516: - adds r1, #0x62 - movs r0, #0 -_0806F51A: - strb r0, [r1] -_0806F51C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806F520 -sub_0806F520: @ 0x0806F520 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x93 - beq _0806F544 - adds r3, r2, #0 - adds r3, #0x3a - ldrb r1, [r3] - movs r0, #0xfb - ands r0, r1 - movs r1, #0 - strb r0, [r3] - adds r0, r2, #0 - adds r0, #0x63 - strb r1, [r0] - movs r0, #0 - b _0806F546 -_0806F544: - movs r0, #1 -_0806F546: - pop {pc} - - thumb_func_start sub_0806F548 -sub_0806F548: @ 0x0806F548 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl EntityInRectRadius - cmp r0, #0 - bne _0806F55A - movs r0, #0 - b _0806F562 -_0806F55A: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806F58C -_0806F562: - pop {r4, r5, pc} - - thumb_func_start sub_0806F564 -sub_0806F564: @ 0x0806F564 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r3, r2, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r5, #0 - bl sub_080045D4 - bl sub_0806F5A4 - movs r2, #0 - ldrb r1, [r4, #0x14] - cmp r1, r0 - bne _0806F588 - movs r2, #1 -_0806F588: - adds r0, r2, #0 - pop {r4, r5, pc} - - thumb_func_start sub_0806F58C -sub_0806F58C: @ 0x0806F58C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FCA0 - movs r2, #0 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - cmp r1, r0 - bne _0806F5A0 - movs r2, #1 -_0806F5A0: - adds r0, r2, #0 - pop {r4, pc} - - thumb_func_start sub_0806F5A4 -sub_0806F5A4: @ 0x0806F5A4 - ldr r1, _0806F5AC @ =gUnk_08114F38 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0806F5AC: .4byte gUnk_08114F38 - - thumb_func_start sub_0806F5B0 -sub_0806F5B0: @ 0x0806F5B0 - ldr r1, _0806F5B8 @ =gUnk_08114F58 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0806F5B8: .4byte gUnk_08114F58 - - thumb_func_start sub_0806F5BC -sub_0806F5BC: @ 0x0806F5BC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _0806F620 - ldr r0, _0806F628 @ =gSineTable - mov r8, r0 - lsls r4, r2, #3 - lsls r0, r2, #4 - add r0, r8 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r5, r1, #0x10 - asrs r5, r5, #0x10 - adds r1, r5, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r6, #0x80 - lsls r6, r6, #1 - adds r1, r6, #0 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r7, #0x2c] - adds r1, r1, r0 - str r1, [r7, #0x2c] - adds r4, #0x40 - lsls r4, r4, #1 - add r4, r8 - movs r1, #0 - ldrsh r0, [r4, r1] - adds r1, r5, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r6, #0 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r7, #0x30] - subs r1, r1, r0 - str r1, [r7, #0x30] -_0806F620: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806F628: .4byte gSineTable - - thumb_func_start sub_0806F62C -sub_0806F62C: @ 0x0806F62C - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - ldr r0, _0806F698 @ =gSineTable - mov sb, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r5, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - mov r8, r1 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r6, #0x2c] - adds r1, r1, r0 - str r1, [r6, #0x2c] - adds r4, #0x40 - lsls r4, r4, #1 - add r4, sb - movs r1, #0 - ldrsh r0, [r4, r1] - adds r1, r5, #0 - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r1, r8 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r6, #0x30] - subs r1, r1, r0 - str r1, [r6, #0x30] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806F698: .4byte gSineTable - - thumb_func_start sub_0806F69C -sub_0806F69C: @ 0x0806F69C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r1, [r6, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0806F6FE - ldr r5, _0806F700 @ =gSineTable - ldrb r0, [r6, #0x15] - lsls r0, r0, #4 - adds r0, r0, r5 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0x24 - ldrsh r1, [r6, r2] - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r6, #0x2c] - adds r1, r1, r0 - str r1, [r6, #0x2c] - ldrb r0, [r6, #0x15] - lsls r0, r0, #4 - adds r0, #0x80 - adds r0, r0, r5 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0x24 - ldrsh r1, [r6, r2] - bl FixedMul - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r4, #0 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r6, #0x30] - subs r1, r1, r0 - str r1, [r6, #0x30] -_0806F6FE: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806F700: .4byte gSineTable - - thumb_func_start sub_0806F704 -sub_0806F704: @ 0x0806F704 - push {r4, r5, r6, lr} - lsls r3, r1, #4 - movs r2, #0xfc - lsls r2, r2, #2 - adds r6, r2, #0 - ands r3, r6 - movs r5, #8 - orrs r3, r5 - ldr r4, _0806F72C @ =gRoomControls - ldrh r2, [r4, #6] - adds r2, r2, r3 - strh r2, [r0, #0x2e] - lsrs r1, r1, #2 - ands r1, r6 - orrs r1, r5 - ldrh r2, [r4, #8] - adds r2, r2, r1 - strh r2, [r0, #0x32] - pop {r4, r5, r6, pc} - .align 2, 0 -_0806F72C: .4byte gRoomControls - - thumb_func_start sub_0806F730 -sub_0806F730: @ 0x0806F730 - push {r4, r5, r6, lr} - movs r6, #0x3f - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldr r4, [r0, #0x48] - movs r1, #0 - ldrsb r1, [r4, r1] - adds r2, r2, r1 - ldr r3, _0806F764 @ =gRoomControls - ldrh r1, [r3, #6] - subs r5, r2, r1 - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r2, #1 - ldrsb r2, [r4, r2] - adds r1, r1, r2 - ldrh r2, [r3, #8] - subs r1, r1, r2 - ldrb r0, [r0, #0x14] - cmp r0, #2 - beq _0806F77E - cmp r0, #2 - bgt _0806F768 - cmp r0, #0 - beq _0806F772 - b _0806F788 - .align 2, 0 -_0806F764: .4byte gRoomControls -_0806F768: - cmp r0, #4 - beq _0806F778 - cmp r0, #6 - beq _0806F784 - b _0806F788 -_0806F772: - ldrb r0, [r4, #5] - subs r1, r1, r0 - b _0806F788 -_0806F778: - ldrb r0, [r4, #5] - adds r1, r1, r0 - b _0806F788 -_0806F77E: - ldrb r0, [r4, #2] - adds r5, r5, r0 - b _0806F788 -_0806F784: - ldrb r0, [r4, #2] - subs r5, r5, r0 -_0806F788: - lsrs r0, r5, #4 - ands r0, r6 - lsrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - adds r0, r0, r1 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806F798 -sub_0806F798: @ 0x0806F798 - push {r4, r5, lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r4, [r2, #0x48] - movs r1, #0 - ldrsb r1, [r4, r1] - adds r0, r0, r1 - ldr r3, _0806F7CC @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - movs r5, #0x32 - ldrsh r1, [r2, r5] - movs r2, #1 - ldrsb r2, [r4, r2] - adds r1, r1, r2 - ldrh r2, [r3, #8] - subs r1, r1, r2 - movs r2, #0x3f - lsrs r0, r0, #4 - ands r0, r2 - lsrs r1, r1, #4 - ands r1, r2 - lsls r1, r1, #6 - adds r0, r0, r1 - pop {r4, r5, pc} - .align 2, 0 -_0806F7CC: .4byte gRoomControls - - thumb_func_start sub_0806F7D0 -sub_0806F7D0: @ 0x0806F7D0 - push {r4, lr} - ldr r4, _0806F7E4 @ =gUnk_02025EB0 - bl sub_0806F730 - ldr r1, _0806F7E8 @ =0x00002004 - adds r4, r4, r1 - adds r0, r0, r4 - ldrb r0, [r0] - pop {r4, pc} - .align 2, 0 -_0806F7E4: .4byte gUnk_02025EB0 -_0806F7E8: .4byte 0x00002004 - - thumb_func_start sub_0806F7EC -sub_0806F7EC: @ 0x0806F7EC - push {r4, lr} - ldr r4, _0806F800 @ =gUnk_02025EB0 - bl sub_0806F730 - lsls r0, r0, #1 - adds r4, #4 - adds r0, r0, r4 - ldrh r0, [r0] - pop {r4, pc} - .align 2, 0 -_0806F800: .4byte gUnk_02025EB0 - - thumb_func_start sub_0806F804 -sub_0806F804: @ 0x0806F804 - lsrs r0, r0, #4 - movs r2, #0x3f - ands r0, r2 - movs r2, #0xfc - lsls r2, r2, #2 - ands r2, r1 - lsls r2, r2, #2 - adds r0, r0, r2 - ldr r1, _0806F820 @ =gUnk_02025EB0 - lsls r0, r0, #1 - adds r1, #4 - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_0806F820: .4byte gUnk_02025EB0 - - thumb_func_start sub_0806F824 -sub_0806F824: @ 0x0806F824 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r2, #0 - adds r5, r3, #0 - movs r2, #0x2e - ldrsh r6, [r0, r2] - movs r2, #0x32 - ldrsh r3, [r0, r2] - mov r8, r3 - movs r3, #0x2e - ldrsh r2, [r1, r3] - adds r2, r2, r4 - movs r0, #0x32 - ldrsh r3, [r1, r0] - adds r3, r3, r5 - adds r0, r6, #0 - mov r1, r8 - bl sub_080045D4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806F854 -sub_0806F854: @ 0x0806F854 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r6, r2, #0 - ldr r0, [r4, #0x34] - cmp r0, #0 - beq _0806F8D6 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806F8D6 - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r0, r0, r3 - ldr r2, _0806F8BC @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r5, #0x3f - ands r0, r5 - movs r3, #0x32 - ldrsh r1, [r4, r3] - adds r1, r1, r6 - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #2 - movs r2, #8 - bl sub_080002F0 - cmp r0, #0 - beq _0806F8C0 - ldrb r1, [r4, #0x19] - adds r0, r5, #0 - ands r0, r1 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r1, [r4, #0x1b] - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x1b] - movs r0, #1 - b _0806F8D8 - .align 2, 0 -_0806F8BC: .4byte gRoomControls -_0806F8C0: - ldrb r1, [r4, #0x19] - adds r0, r5, #0 - ands r0, r1 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r1, [r4, #0x1b] - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x1b] -_0806F8D6: - movs r0, #0 -_0806F8D8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806F8DC -sub_0806F8DC: @ 0x0806F8DC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806F942 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r1, #4 - movs r2, #2 - bl GetTileTypeByPos - cmp r0, #0 - beq _0806F91C - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] - movs r0, #1 - b _0806F944 -_0806F91C: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r1, #4 - ldrb r2, [r5] - bl GetTileTypeByPos - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] -_0806F942: - movs r0, #0 -_0806F944: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806F948 -sub_0806F948: @ 0x0806F948 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806F974 @ =gPlayerState - ldrb r0, [r1, #0xd] - cmp r0, #0xff - beq _0806F994 - ldrb r0, [r1, #0xd] - lsrs r3, r0, #2 - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _0806F978 - ldrb r2, [r4, #0x14] - subs r0, r2, #1 - subs r0, r3, r0 - movs r1, #4 - ands r0, r1 - cmp r0, #0 - bne _0806F978 - adds r0, r2, #0 - b _0806F996 - .align 2, 0 -_0806F974: .4byte gPlayerState -_0806F978: - movs r2, #0 - cmp r3, #4 - bls _0806F980 - movs r2, #1 -_0806F980: - lsls r2, r2, #6 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - movs r0, #6 - ands r3, r0 - strb r3, [r4, #0x14] -_0806F994: - ldrb r0, [r4, #0x14] -_0806F996: - pop {r4, pc} - - thumb_func_start sub_0806F998 -sub_0806F998: @ 0x0806F998 - push {r4, lr} - adds r2, r0, #0 - ldrb r4, [r2, #0x14] - ldrb r1, [r2, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0806F9E6 - movs r0, #0x1c - ands r0, r1 - lsrs r3, r0, #2 - movs r1, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F9C4 - subs r0, r3, r4 - adds r0, #1 - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _0806F9E6 -_0806F9C4: - ldrb r0, [r2, #0x15] - lsrs r0, r0, #2 - movs r1, #0x7e - ands r0, r1 - strb r0, [r2, #0x14] - adds r4, r0, #0 - cmp r4, #4 - bhi _0806F9DE - ldrb r1, [r2, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _0806F9E4 -_0806F9DE: - ldrb r0, [r2, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0806F9E4: - strb r0, [r2, #0x18] -_0806F9E6: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 diff --git a/asm/code_080A7C00.s b/asm/code_080A7C00.s deleted file mode 100644 index 988666cd..00000000 --- a/asm/code_080A7C00.s +++ /dev/null @@ -1,197 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start CreateItemEntity -CreateItemEntity: @ 0x080A7C00 - push {r4, lr} - bl GiveItemWithCutscene - adds r4, r0, #0 - cmp r4, #0 - beq _080A7C16 - ldrb r1, [r4, #0xa] - movs r2, #0 - bl sub_080A276C - str r0, [r4, #0x50] -_080A7C16: - pop {r4, pc} - - thumb_func_start sub_080A7C18 -sub_080A7C18: @ 0x080A7C18 - push {lr} - bl GiveItemWithCutscene - adds r2, r0, #0 - cmp r2, #0 - beq _080A7C32 - ldr r0, _080A7C34 @ =gPlayerEntity - str r0, [r2, #0x50] - ldrb r1, [r2, #0xa] - adds r0, r2, #0 - movs r2, #0 - bl sub_08078AF0 -_080A7C32: - pop {pc} - .align 2, 0 -_080A7C34: .4byte gPlayerEntity - - thumb_func_start GiveItemWithCutscene -GiveItemWithCutscene: @ 0x080A7C38 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - cmp r5, #0x3f - bne _080A7C52 - ldr r0, _080A7C78 @ =gSave - adds r0, #0xbb - ldrb r0, [r0] - cmp r0, #0 - beq _080A7C52 - movs r5, #0x57 - movs r6, #0 -_080A7C52: - bl sub_0805E744 - adds r4, r0, #0 - cmp r4, #0 - beq _080A7C72 - strb r5, [r4, #0xa] - strb r6, [r4, #0xb] - strb r7, [r4, #0xe] - movs r0, #0xb - strb r0, [r4, #9] - movs r0, #6 - strb r0, [r4, #8] - adds r0, r4, #0 - movs r1, #6 - bl AppendEntityToList -_080A7C72: - adds r0, r4, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A7C78: .4byte gSave - - thumb_func_start sub_080A7C7C -sub_080A7C7C: @ 0x080A7C7C - push {lr} - ldr r0, _080A7C88 @ =gUnk_02017660 - movs r1, #0x40 - bl MemClear - pop {pc} - .align 2, 0 -_080A7C88: .4byte gUnk_02017660 - - thumb_func_start sub_080A7C8C -sub_080A7C8C: @ 0x080A7C8C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r4, _080A7C9C @ =gUnk_02017660 - movs r2, #0 - movs r1, #0 - b _080A7CA8 - .align 2, 0 -_080A7C9C: .4byte gUnk_02017660 -_080A7CA0: - adds r1, #1 - adds r4, #8 - cmp r1, #7 - bhi _080A7CB0 -_080A7CA8: - ldrh r0, [r4, #4] - cmp r0, r5 - bne _080A7CA0 - movs r2, #1 -_080A7CB0: - lsrs r1, r6, #1 - ldrb r0, [r4, #6] - lsls r0, r0, #0x1f - lsrs r0, r0, #0x1f - cmp r1, r0 - bne _080A7CF4 - cmp r2, #0 - beq _080A7CD2 - ldrb r0, [r4, #1] - bl SetLocalFlag - ldrb r0, [r4, #2] - ldrb r1, [r4, #3] - movs r2, #0 - bl CreateItemEntity - b _080A7CDC -_080A7CD2: - movs r0, #0x60 - movs r1, #0 - movs r2, #0 - bl CreateItemEntity -_080A7CDC: - movs r0, #0x74 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0807B7D8 - movs r0, #0 - movs r1, #0x78 - bl RequestPriorityDuration - ldr r0, _080A7CF8 @ =0x0000011B - bl SoundReq -_080A7CF4: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A7CF8: .4byte 0x0000011B - - thumb_func_start sub_080A7CFC -sub_080A7CFC: @ 0x080A7CFC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0xc0 - lsls r4, r4, #3 - movs r6, #0 - movs r0, #3 - bl GetCurrentRoomProperty - adds r1, r0, #0 - cmp r1, #0 - beq _080A7D38 -_080A7D12: - ldrh r0, [r1, #4] - cmp r0, r5 - bne _080A7D30 - ldrb r0, [r1] - cmp r0, #5 - beq _080A7D24 - cmp r0, #6 - beq _080A7D2A - b _080A7D38 -_080A7D24: - movs r6, #0 - ldrh r4, [r1, #6] - b _080A7D38 -_080A7D2A: - movs r6, #1 - ldrh r4, [r1, #6] - b _080A7D38 -_080A7D30: - adds r1, #8 - ldrh r0, [r1, #4] - cmp r0, #0 - bne _080A7D12 -_080A7D38: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080A7D44 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080A7D44 -sub_080A7D44: @ 0x080A7D44 - push {lr} - cmp r1, #0 - beq _080A7D52 - movs r1, #0 - bl sub_08078AA8 - b _080A7D56 -_080A7D52: - bl MessageFromTarget -_080A7D56: - pop {pc} diff --git a/asm/non_matching/showNPCDialogue.inc b/asm/non_matching/showNPCDialogue.inc new file mode 100644 index 00000000..6db4a7c9 --- /dev/null +++ b/asm/non_matching/showNPCDialogue.inc @@ -0,0 +1,216 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r6, r1, #0 + ldrh r1, [r6, #2] + asrs r7, r1, #4 + movs r0, #1 + ands r7, r0 + movs r0, #0xf + ands r1, r0 + cmp r1, #6 + bls _0806F1C8 + b _0806F332 +_0806F1C8: + lsls r0, r1, #2 + ldr r1, _0806F1D4 @ =_0806F1D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806F1D4: .4byte _0806F1D8 +_0806F1D8: @ jump table + .4byte _0806F332 @ case 0 + .4byte _0806F342 @ case 1 + .4byte _0806F1F4 @ case 2 + .4byte _0806F24E @ case 3 + .4byte _0806F2BA @ case 4 + .4byte _0806F324 @ case 5 + .4byte _0806F336 @ case 6 +_0806F1F4: + ldr r4, [r6] + asrs r1, r4, #0xc + movs r0, #0xf + ands r1, r0 + ldr r0, _0806F210 @ =0x00000FFF + ands r4, r0 + movs r5, #0 + cmp r1, #1 + beq _0806F22A + cmp r1, #1 + bgt _0806F214 + cmp r1, #0 + beq _0806F21A + b _0806F248 + .align 2, 0 +_0806F210: .4byte 0x00000FFF +_0806F214: + cmp r1, #2 + beq _0806F23A + b _0806F248 +_0806F21A: + adds r0, r4, #0 + bl CheckRoomFlag + adds r5, r0, #0 +_0806F222: + adds r0, r4, #0 + bl SetRoomFlag + b _0806F248 +_0806F22A: + adds r0, r4, #0 + bl CheckLocalFlag + adds r5, r0, #0 +_0806F232: + adds r0, r4, #0 + bl SetLocalFlag + b _0806F248 +_0806F23A: + adds r0, r4, #0 + bl CheckGlobalFlag + adds r5, r0, #0 + adds r0, r4, #0 + bl SetGlobalFlag +_0806F248: + cmp r5, #0 + beq _0806F342 + b _0806F34C +_0806F24E: + ldr r4, [r6] + asrs r1, r4, #0xc + movs r0, #0xf + ands r1, r0 + ldr r0, _0806F26C @ =0x00000FFF + ands r4, r0 + movs r5, #0 + cmp r1, #1 + beq _0806F28A + cmp r1, #1 + bgt _0806F270 + cmp r1, #0 + beq _0806F276 + b _0806F248 + .align 2, 0 +_0806F26C: .4byte 0x00000FFF +_0806F270: + cmp r1, #2 + beq _0806F29E + b _0806F248 +_0806F276: + adds r0, r4, #0 + bl CheckRoomFlag + adds r5, r0, #0 + cmp r5, #0 + beq _0806F222 + adds r0, r4, #0 + bl ClearRoomFlag + b _0806F248 +_0806F28A: + adds r0, r4, #0 + bl CheckLocalFlag + adds r5, r0, #0 + cmp r5, #0 + beq _0806F232 + adds r0, r4, #0 + bl ClearLocalFlag + b _0806F248 +_0806F29E: + adds r0, r4, #0 + bl CheckGlobalFlag + adds r5, r0, #0 + cmp r5, #0 + bne _0806F2B2 + adds r0, r4, #0 + bl SetGlobalFlag + b _0806F248 +_0806F2B2: + adds r0, r4, #0 + bl ClearGlobalFlag + b _0806F248 +_0806F2BA: + ldr r4, [r6] + asrs r1, r4, #0xc + movs r0, #0xf + ands r1, r0 + ldr r0, _0806F2D8 @ =0x00000FFF + ands r4, r0 + movs r5, #0 + cmp r1, #4 + bhi _0806F248 + lsls r0, r1, #2 + ldr r1, _0806F2DC @ =_0806F2E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806F2D8: .4byte 0x00000FFF +_0806F2DC: .4byte _0806F2E0 +_0806F2E0: @ jump table + .4byte _0806F2F4 @ case 0 + .4byte _0806F2FC @ case 1 + .4byte _0806F304 @ case 2 + .4byte _0806F30C @ case 3 + .4byte _0806F314 @ case 4 +_0806F2F4: + adds r0, r4, #0 + bl CheckRoomFlag + b _0806F320 +_0806F2FC: + adds r0, r4, #0 + bl CheckLocalFlag + b _0806F320 +_0806F304: + adds r0, r4, #0 + bl CheckGlobalFlag + b _0806F320 +_0806F30C: + adds r0, r4, #0 + bl CheckKinstoneFused + b _0806F320 +_0806F314: + adds r0, r4, #0 + bl GetInventoryValue + cmp r0, #0 + beq _0806F320 + movs r0, #1 +_0806F320: + adds r5, r0, #0 + b _0806F248 +_0806F324: + ldr r1, [r6, #4] + cmp r1, #0 + beq _0806F332 + mov r0, r8 + bl _call_via_r1 + b _0806F35E +_0806F332: + movs r0, #0 + b _0806F34E +_0806F336: + ldr r0, _0806F348 @ =gPlayerState + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806F34C +_0806F342: + ldrh r0, [r6, #6] + b _0806F34E + .align 2, 0 +_0806F348: .4byte gPlayerState +_0806F34C: + ldrh r0, [r6, #4] +_0806F34E: + cmp r7, #0 + beq _0806F35A + mov r1, r8 + bl MessageNoOverlap + b _0806F35E +_0806F35A: + bl MessageFromTarget +_0806F35E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .syntax divided diff --git a/asm/non_matching/sub_0806F798.inc b/asm/non_matching/sub_0806F798.inc new file mode 100644 index 00000000..1ea837b0 --- /dev/null +++ b/asm/non_matching/sub_0806F798.inc @@ -0,0 +1,30 @@ + .syntax unified + push {r4, r5, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r4, [r2, #0x48] + movs r1, #0 + ldrsb r1, [r4, r1] + adds r0, r0, r1 + ldr r3, _0806F7CC @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + movs r5, #0x32 + ldrsh r1, [r2, r5] + movs r2, #1 + ldrsb r2, [r4, r2] + adds r1, r1, r2 + ldrh r2, [r3, #8] + subs r1, r1, r2 + movs r2, #0x3f + lsrs r0, r0, #4 + ands r0, r2 + lsrs r1, r1, #4 + ands r1, r2 + lsls r1, r1, #6 + adds r0, r0, r1 + pop {r4, r5, pc} + .align 2, 0 +_0806F7CC: .4byte gRoomControls + .syntax divided diff --git a/asm/non_matching/sub_0806F824.inc b/asm/non_matching/sub_0806F824.inc new file mode 100644 index 00000000..698d911d --- /dev/null +++ b/asm/non_matching/sub_0806F824.inc @@ -0,0 +1,25 @@ + .syntax unified + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r2, #0 + adds r5, r3, #0 + movs r2, #0x2e + ldrsh r6, [r0, r2] + movs r2, #0x32 + ldrsh r3, [r0, r2] + mov r8, r3 + movs r3, #0x2e + ldrsh r2, [r1, r3] + adds r2, r2, r4 + movs r0, #0x32 + ldrsh r3, [r1, r0] + adds r3, r3, r5 + adds r0, r6, #0 + mov r1, r8 + bl sub_080045D4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/sub_0806F998.inc b/asm/non_matching/sub_0806F998.inc new file mode 100644 index 00000000..5ee106c1 --- /dev/null +++ b/asm/non_matching/sub_0806F998.inc @@ -0,0 +1,48 @@ + .syntax unified + push {r4, lr} + adds r2, r0, #0 + ldrb r4, [r2, #0x14] + ldrb r1, [r2, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0806F9E6 + movs r0, #0x1c + ands r0, r1 + lsrs r3, r0, #2 + movs r1, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F9C4 + subs r0, r3, r4 + adds r0, #1 + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _0806F9E6 +_0806F9C4: + ldrb r0, [r2, #0x15] + lsrs r0, r0, #2 + movs r1, #0x7e + ands r0, r1 + strb r0, [r2, #0x14] + adds r4, r0, #0 + cmp r4, #4 + bhi _0806F9DE + ldrb r1, [r2, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0806F9E4 +_0806F9DE: + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0806F9E4: + strb r0, [r2, #0x18] +_0806F9E6: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/sub_0806FOA4.inc b/asm/non_matching/sub_0806FOA4.inc new file mode 100644 index 00000000..53a92f93 --- /dev/null +++ b/asm/non_matching/sub_0806FOA4.inc @@ -0,0 +1,65 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r7, _0806F114 @ =gUnk_03003DA8 + ldr r5, [r7, #4] + movs r0, #0 + cmp r5, r7 + beq _0806F0BA +_0806F0B2: + adds r0, #1 + ldr r5, [r5, #4] + cmp r5, r7 + bne _0806F0B2 +_0806F0BA: + cmp r0, #1 + bls _0806F10E + ldr r5, [r7, #4] + cmp r5, r7 + beq _0806F10E + movs r2, #1 +_0806F0C6: + ldrb r1, [r5, #0x10] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F108 + ldrb r1, [r5, #0x17] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F108 + ldr r4, [r5, #4] + cmp r4, r7 + beq _0806F108 + movs r6, #1 +_0806F0E2: + ldrb r1, [r4, #0x10] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F102 + ldrb r1, [r4, #0x17] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F102 + adds r0, r5, #0 + adds r1, r4, #0 + str r2, [sp] + bl sub_08004484 + ldr r2, [sp] +_0806F102: + ldr r4, [r4, #4] + cmp r4, r7 + bne _0806F0E2 +_0806F108: + ldr r5, [r5, #4] + cmp r5, r7 + bne _0806F0C6 +_0806F10E: + add sp, #4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806F114: .4byte gUnk_03003DA8 + .syntax divided diff --git a/include/functions.h b/include/functions.h index 1b446323..293f7e20 100644 --- a/include/functions.h +++ b/include/functions.h @@ -29,7 +29,7 @@ extern Entity* CreateDeathFx(Entity*, u32, u32); extern void UpdateAnimationVariableFrames(Entity*, u32); extern u8* GetSpriteSubEntryOffsetDataPointer(u32, u32); extern bool32 LoadFixedGFX(Entity*, u32); -extern Entity* CreateItemEntity(u32, u32, u32); +extern void CreateItemEntity(u32, u32, u32); extern u32 ProcessMovement(Entity*); extern void MenuFadeIn(u32, u32); extern void LoadResourceAsync(const void*, u32, u32); @@ -276,7 +276,7 @@ extern Entity* sub_08077C0C(ItemBehavior*, u32); extern void sub_08077D38(ItemBehavior*, u32); extern void sub_08077E78(ItemBehavior*, u32); extern void UpdateItemAnim(ItemBehavior*); -extern void sub_0806F948(Entity*); +extern u32 sub_0806F948(Entity*); extern void sub_08077DF4(ItemBehavior*, u32); extern void sub_08077BB8(ItemBehavior*); extern bool32 sub_08077EFC(ItemBehavior*); diff --git a/include/room.h b/include/room.h index 58d323b1..aafac5bd 100644 --- a/include/room.h +++ b/include/room.h @@ -143,6 +143,17 @@ typedef struct { } ScreenTransition; extern ScreenTransition gScreenTransition; +typedef struct { + u8 type; + u8 _1; + u8 _2; + u8 _3; + u16 _4; + u8 _6; + u8 _7; +} TileEntity; +extern TileEntity gUnk_02017660[]; + extern void SetTileType(u32, u32, u32); extern void sub_08080964(u32 time, u32 magnitude); // shake screen diff --git a/include/save.h b/include/save.h index 56e953a1..1126973d 100644 --- a/include/save.h +++ b/include/save.h @@ -42,11 +42,12 @@ typedef struct { /*0x088*/ PlayerWorldStatus saved_status; /*0x0A8*/ Stats stats; /*0x0D0*/ u8 fillerD0[0x71]; - /*0x141*/ u8 unk141[0x45c - 0x141]; - /*0x45c*/ u8 unk45C[0x10]; - /*0x46c*/ u8 unk46C[0x20]; - /*0x48c*/ u32 unk48C[8]; - /*0x4ac*/ u8 filler4ac[0x8]; + /*0x141*/ u8 unk141[0x1c1 - 0x141]; + /*0x1C1*/ u8 unk1C1[0x45c - 0x1c1]; + /*0x45C*/ u8 unk45C[0x10]; + /*0x46C*/ u8 unk46C[0x20]; + /*0x48C*/ u32 unk48C[8]; + /*0x4AC*/ u8 filler4ac[0x8]; } SaveFile; extern SaveFile gSave; diff --git a/linker.ld b/linker.ld index f3b44b05..d98c69d0 100644 --- a/linker.ld +++ b/linker.ld @@ -475,7 +475,7 @@ SECTIONS { /* END enemies */ src/code_08049CD4.o(.text); asm/code_08049D30.o(.text); - src/enemyInit.o(.text); + src/enemyUtils.o(.text); asm/code_0804A720.o(.text); asm/sub_0804AA30.o(.text); src/createEnemy.o(.text); @@ -650,9 +650,7 @@ SECTIONS { src/npc/phonograph.o(.text); src/npc/npc58.o(.text); /* END npcs */ - asm/code_0806EC20.o(.text); - src/createNPC.o(.text); - asm/code_0806ED78.o(.text); + src/npcUtils.o(.text); src/coord.o(.text); asm/code_0806FA6C.o(.text); src/playerItem/playerItem12.o(.text); @@ -901,7 +899,7 @@ SECTIONS { asm/objectC1.o(.text); /* END objects */ asm/sub_080A276C.o(.text); - src/createObject.o(.text); + src/objectUtils.o(.text); asm/code_080A29BC.o(.text); src/playerItem/playerItemShield.o(.text); src/playerItem/playerItem15.o(.text); @@ -915,8 +913,8 @@ SECTIONS { src/sub_080A554C.o(.text); asm/code_080A5574.o(.text); src/playerItem/playerItemSword.o(.text); - asm/code_080A7C00.o(.text); - src/projectileInit.o(.text); + src/playerItemUtils.o(.text); + src/projectileUtils.o(.text); src/projectile/darkNutSwordSlash.o(.text); src/projectile/rockProjectile.o(.text); src/projectile/boneProjectile.o(.text); diff --git a/src/coord.c b/src/coord.c index 4beb4c9b..3fe17296 100644 --- a/src/coord.c +++ b/src/coord.c @@ -1,10 +1,261 @@ +#include "area.h" +#include "player.h" #include "global.h" #include "entity.h" #include "coord.h" +#include "utils.h" +#include "audio.h" +#include "room.h" +#include "functions.h" extern u8 gUnk_08114F78[]; extern u8 gUnk_08114F80[]; +typedef struct { + u32 _0; + u16 _4[0x1000]; + u8 _2004[0x2000]; +} struct_02025EB0; +extern struct_02025EB0 gUnk_02025EB0; + +extern s8 gUnk_08126EE4[]; +extern u8 gUnk_08114F38[]; +extern u8 gUnk_08114F58[]; + +void sub_080027EA(Entity*, u32, u32); +void sub_0806F5BC(Entity*, u32, u32); +u32 sub_0806F58C(Entity*, Entity*); +u32 sub_0806FCA0(Entity*, Entity*); + +void sub_0806F364(void) { + gArea.filler[2] ^= 0x80; + MemClear(&gArea.filler5[(gArea.filler[2] + 7) / 8], 16); +} + +void sub_0806F38C(void) { + gArea.filler[2] ^= 0x80; +} + +u32 sub_0806F39C(Entity* ent) { + s32 dist; + + if (gPlayerEntity.animationState & 2) { + dist = ent->x.HALF.HI - gPlayerEntity.x.HALF.HI; + } else { + dist = ent->y.HALF.HI - gPlayerEntity.y.HALF.HI; + } + if (dist < 0) { + dist = -dist; + } + + if (dist > 64) { + sub_080027EA(&gPlayerEntity, ent->speed, ent->direction); + return 1; + } + return 0; +} + +u32 sub_0806F3E4(Entity* ent) { + Entity tmp_ent; + s8* p; + + if ((gPlayerState.field_0x1c & 0x7F) != 1) + return 0; + switch (gPlayerState.field_0x1d[0]) { + case 1: + ent->field_0x46 += 64; + break; + case 2: + ent->field_0x46 += 128; + break; + case 3: + ent->field_0x46 += 192; + break; + } + if (ent->field_0x46 > 0x500) + ent->field_0x46 = 0x500; + p = &gUnk_08126EE4[gPlayerEntity.animationState & 0xE]; + tmp_ent.x.HALF.HI = p[0] + gPlayerEntity.x.HALF.HI; + tmp_ent.y.HALF.HI = p[1] + gPlayerEntity.y.HALF.HI; + sub_0806F5BC(ent, ent->field_0x46, GetFacingDirection(ent, &tmp_ent)); + if (sub_0800419C(&tmp_ent, ent, 4, 4)) { + u32 state = ent->field_0x1c & 0xF; + if (state == 2) { + Entity* item; + ent->subAction = 3; + (Entity*)gPlayerEntity.field_0x70.WORD = ent; + gPlayerState.field_0x1c = 7; + item = CreatePlayerItem(0x11, 0, 0, 0); + if (item != NULL) { + item->child = ent; + ent->parent = item; + } + SoundReq(SFX_ED); + } else if (state == 1) { + gPlayerState.field_0x2c[10] = 1; + SoundReq(SFX_EF); + } + return 1; + } + return 0; +} + +void sub_0806F4E8(Entity* ent) { + switch (ent->field_0x1d & 3) { + case 2: + ent->spriteOffsetX = -2; + break; + case 1: + ent->spriteOffsetX = 0; + break; + case 0: + ent->spriteOffsetX = 2; + break; + case 3: + ent->spriteOffsetX = 0; + break; + } +} + +u32 sub_0806F520(Entity* ent) { + if (ent->bitfield == 0x93) + return 1; + ent->field_0x3a &= ~4; + ent->spriteOffsetY = 0; + return 0; +} + +u32 sub_0806F548(Entity* a, Entity* b, u32 x, u32 y) { + if (EntityInRectRadius(a, b, x, y)) + return sub_0806F58C(a, b); + return 0; +} + +u32 sub_0806F564(Entity* ent, u32 b, u32 c) { + u32 tmp = sub_080045D4(ent->x.HALF.HI, ent->y.HALF.HI, b, c); + return ent->animationState == sub_0806F5A4(tmp); +} + +u32 sub_0806F58C(Entity* a, Entity* b) { + return a->animationState >> 1 == sub_0806FCA0(a, b); +} + +u32 sub_0806F5A4(u32 idx) { + return gUnk_08114F38[idx]; +} + +u32 sub_0806F5B0(u32 idx) { + return gUnk_08114F58[idx]; +} + +void sub_0806F5BC(Entity* ent, u32 a, u32 b) { + if ((b & 0x80) == 0) { + u32 m1 = b; + + ent->x.WORD += FixedDiv(FixedMul(gSineTable[m1 *= 8], a), 256) << 8; + ent->y.WORD -= FixedDiv(FixedMul(gSineTable[m1 + 64], a), 256) << 8; + } +} + +void sub_0806F62C(Entity* ent, u32 a, u32 b) { + ent->x.WORD += FixedDiv(FixedMul(gSineTable[(u8)b], a), 256) << 8; + ent->y.WORD -= FixedDiv(FixedMul(gSineTable[(u8)b + 64], a), 256) << 8; +} + +void sub_0806F69C(Entity* ent) { + if ((ent->direction & 0x80) == 0) { + ent->x.WORD += FixedDiv(FixedMul(gSineTable[ent->direction * 8], ent->speed), 256) << 8; + ent->y.WORD -= FixedDiv(FixedMul(gSineTable[ent->direction * 8 + 64], ent->speed), 256) << 8; + } +} + +void sub_0806F704(Entity* ent, u32 a2) { + ent->x.HALF.HI = (((16 * a2) & 0x3F0) | 8) + gRoomControls.roomOriginX; + ent->y.HALF.HI = (((a2 >> 2) & 0x3F0) | 8) + gRoomControls.roomOriginY; +} + +u32 sub_0806F730(Entity* ent) { + u32 tmp = 0x3F; + u32 x = ent->x.HALF.HI + ent->hitbox->offset_x - gRoomControls.roomOriginX; + u32 y = ent->y.HALF.HI + ent->hitbox->offset_y - gRoomControls.roomOriginY; + switch (ent->animationState) { + case 0: + y -= ent->hitbox->unk2[3]; + break; + case 4: + y += ent->hitbox->unk2[3]; + break; + case 2: + x += ent->hitbox->unk2[0]; + break; + case 6: + x -= ent->hitbox->unk2[0]; + break; + } + return ((x >> 4) & tmp) + (((y >> 4) & tmp) << 6); +} + +ASM_FUNC("asm/non_matching/sub_0806F798.inc", u32 sub_0806F798(Entity* ent)); + +u32 sub_0806F7D0(Entity* ent) { + return gUnk_02025EB0._2004[sub_0806F730(ent)]; +} + +u32 sub_0806F7EC(Entity* ent) { + return gUnk_02025EB0._4[sub_0806F730(ent)]; +} + +u32 sub_0806F804(u32 x, u32 y) { + u32 idx = ((x >> 4) & 0x3F) + 4 * (y & 0x3F0); + return gUnk_02025EB0._4[idx]; +} + +ASM_FUNC("asm/non_matching/sub_0806F824.inc", void sub_0806F824(Entity* a, Entity* b, u32 x, u32 y)); + +u32 sub_0806F854(Entity* ent, s32 x, s32 y) { + if (ent->z.WORD == 0 || (ent->collisionLayer & 2)) + return 0; + if (!sub_080002F0(TILE(ent->x.HALF.HI + x, ent->y.HALF.HI + y), 2, 8)) { + ent->spriteRendering.b3 = 1; + ent->spriteOrientation.flipY = 1; + return 0; + } + ent->spriteRendering.b3 = 2; + ent->spriteOrientation.flipY = 2; + return 1; +} + +u32 sub_0806F8DC(Entity* ent) { + if (ent->collisionLayer & 2) + return 0; + if (!GetTileTypeByPos(ent->x.HALF.HI, ent->y.HALF.HI - 4, 2)) { + GetTileTypeByPos(ent->x.HALF.HI, ent->y.HALF.HI - 4, ent->collisionLayer); + ent->spriteRendering.b3 = 1; + ent->spriteOrientation.flipY = 1; + return 0; + } + ent->spriteRendering.b3 = 2; + ent->spriteOrientation.flipY = 2; + return 1; +} + +u32 sub_0806F948(Entity* ent) { + u32 v1; + if (gPlayerState.field_0xd == 0xFF) + return ent->animationState; + + v1 = gPlayerState.field_0xd / 4; + if ((v1 & 1) && !(((v1 + 1) - ent->animationState) & 4)) { + return ent->animationState; + } else { + ent->spriteSettings.flipX = v1 > 4; + ent->animationState = v1 & 6; + } + return ent->animationState; +} + +ASM_FUNC("asm/non_matching/sub_0806F998.inc", u32 sub_0806F998(Entity* ent)); + s16 FixedMul(s16 r0, s16 r1) { s32 temp = r0 * r1; if (temp < 0) diff --git a/src/createEntity.c b/src/createEntity.c deleted file mode 100644 index 9948a780..00000000 --- a/src/createEntity.c +++ /dev/null @@ -1,50 +0,0 @@ -// #include "entity.h" -// #include "entityData.h" -// #include "global.h" - -// extern Entity * DeepFindEntityByID(u32, u32); -// extern Entity * GetEmptyEntityByKind(); -// extern void RegisterRoomEntity(Entity *, EntityData *); -// extern u32 sub_0804AF0C(Entity *, EntityData *); -// extern void sub_08016A30(Entity *); -// extern u32 gRoomControls; - -// Entity * LoadRoomEntity(EntityData *param_1) -// { -// Entity *preexisting; -// Entity *entity; -// s32 type; - -// type = param_1->entityType & 15; -// if (((param_1->field_0x1 & 240) == 80) && -// (preexisting = DeepFindEntityByID(type,param_1->entitySubtype), preexisting != NULL)) { -// entity = NULL; -// } -// else { -// entity = GetEmptyEntityByKind(); //Get empty entity -// if (entity != NULL) { -// (entity->entityType).type = type; -// (entity->entityType).subtype = param_1->entitySubtype; -// (entity->entityType).form = param_1->entityform; -// RegisterRoomEntity(entity,param_1); -// if ((param_1->field_0x1 & 240) != 16) { -// (entity->type2 = *(u8 *)¶m_1->entityparameter; -// entity->actionDelay = (u8)((u32)param_1->entityparameter >> 8); -// if ((type != 9) && (sub_0804AF0C(entity,param_1), entity->field_0x4 != NULL)) { -// if ((param_1->entityType & 16) == 0) { -// if ((param_1->entityType & 32) != 0) { -// entity->collisionLayer = 2; -// return entity; -// } -// if ((gRoomControls & 2) == 0) { -// sub_08016A30(entity); -// return entity; -// } -// } -// entity->collisionLayer = 1; -// } -// } -// } -// } -// return entity; -// } diff --git a/src/createNPC.c b/src/createNPC.c deleted file mode 100644 index 8ef66a81..00000000 --- a/src/createNPC.c +++ /dev/null @@ -1,67 +0,0 @@ -#include "global.h" -#include "entity.h" -#include "functions.h" -#include "definitions.h" - -extern const NPCDefinition gNPCDefinitions[]; - -extern Hitbox* gNPCHitboxes[]; -const NPCDefinition* GetNPCDefinition(Entity*); - -const NPCDefinition* GetNPCDefinition(Entity* this) { - const NPCDefinition* definition = &gNPCDefinitions[this->id]; - if (definition->bitfield.type == 2) { - definition = &definition->data.definition[this->type]; - } - return definition; -} - -void NPCInit(Entity* this) { - u32 tmp; - u32 tmp2; - - if ((this->flags & 1) == 0) { - const NPCDefinition* definition = GetNPCDefinition(this); - if (definition->bitfield.type == 0) { - // No sprite for this NPC - this->flags |= 1; - } else { - tmp = definition->bitfield.gfx; - switch (definition->bitfield.gfx_type) { - case 2: - this->spriteVramOffset = definition->bitfield.gfx; - break; - case 1: - LoadSwapGFX(this, tmp, 0); - break; - default: - LoadFixedGFX(this, tmp); - break; - } - tmp = definition->data.sprite.paletteIndex; - LoadObjPalette(this, tmp); - this->spriteIndex = definition->data.sprite.spriteIndex; - this->spriteSettings.shadow = definition->data.sprite.shadow; - this->spritePriority.b1 = definition->data.sprite.spritePriority; - this->spriteSettings.draw = definition->data.sprite.draw; - this->hitbox = gNPCHitboxes[definition->bitfield.hitbox]; - this->flags |= ENT_DID_INIT; - tmp2 = 0xff; - this->animIndex = tmp2; - this->frameIndex = tmp2; - UpdateSpriteForCollisionLayer(this); - } - } -} - -Entity* CreateNPC(u32 subtype, u32 form, u32 parameter) { - Entity* entity = GetEmptyEntity(); - if (entity != NULL) { - entity->kind = 7; - entity->id = subtype; - entity->type = form; - entity->type2 = parameter; - AppendEntityToList(entity, 7); - } - return entity; -} diff --git a/src/enemyInit.c b/src/enemyUtils.c similarity index 100% rename from src/enemyInit.c rename to src/enemyUtils.c diff --git a/src/npcUtils.c b/src/npcUtils.c new file mode 100644 index 00000000..7511beff --- /dev/null +++ b/src/npcUtils.c @@ -0,0 +1,312 @@ +#include "global.h" +#include "entity.h" +#include "functions.h" +#include "definitions.h" +#include "save.h" + +extern const NPCDefinition gNPCDefinitions[]; + +extern Hitbox* gNPCHitboxes[]; +const NPCDefinition* GetNPCDefinition(Entity*); +extern u32 (*gUnk_08114EFC[])(); +extern u32 (*gUnk_08114F0C[])(Entity*, u8*); + +typedef struct { + u16 _0; + u16 _2; + u16 _4; +} NPCData; +extern NPCData* gUnk_08001A7C[]; + +u32 sub_0800445C(Entity*); +void sub_08077B20(void); +void sub_0806EF14(Entity*); +void sub_0806F69C(Entity*); +void sub_0806EF4C(Entity*, u16*); +u32 sub_080041DC(Entity*, u32, u32); +u32 sub_0806EF74(Entity*, u32); +u32 sub_0806EF88(Entity*); + +void sub_0806EC20(Entity* ent) { + Entity* e = CreateNPC(0x58, 0, 0); + if (e != NULL) { + e->parent = ent; + } +} + +void sub_0806EC38(void) { + Entity* e = FindEntityByID(7, 0x58, 7); + if (e != NULL) + DeleteEntity(e); +} + +const NPCDefinition* GetNPCDefinition(Entity* this) { + const NPCDefinition* definition = &gNPCDefinitions[this->id]; + if (definition->bitfield.type == 2) { + definition = &definition->data.definition[this->type]; + } + return definition; +} + +void NPCInit(Entity* this) { + u32 tmp; + u32 tmp2; + + if ((this->flags & 1) == 0) { + const NPCDefinition* definition = GetNPCDefinition(this); + if (definition->bitfield.type == 0) { + // No sprite for this NPC + this->flags |= 1; + } else { + tmp = definition->bitfield.gfx; + switch (definition->bitfield.gfx_type) { + case 2: + this->spriteVramOffset = definition->bitfield.gfx; + break; + case 1: + LoadSwapGFX(this, tmp, 0); + break; + default: + LoadFixedGFX(this, tmp); + break; + } + tmp = definition->data.sprite.paletteIndex; + LoadObjPalette(this, tmp); + this->spriteIndex = definition->data.sprite.spriteIndex; + this->spriteSettings.shadow = definition->data.sprite.shadow; + this->spritePriority.b1 = definition->data.sprite.spritePriority; + this->spriteSettings.draw = definition->data.sprite.draw; + this->hitbox = gNPCHitboxes[definition->bitfield.hitbox]; + this->flags |= ENT_DID_INIT; + tmp2 = 0xff; + this->animIndex = tmp2; + this->frameIndex = tmp2; + UpdateSpriteForCollisionLayer(this); + } + } +} + +Entity* CreateNPC(u32 subtype, u32 form, u32 parameter) { + Entity* entity = GetEmptyEntity(); + if (entity != NULL) { + entity->kind = 7; + entity->id = subtype; + entity->type = form; + entity->type2 = parameter; + AppendEntityToList(entity, 7); + } + return entity; +} + +u32 sub_0806ED78(Entity* ent) { + u32 result = sub_0800445C(ent); + if (result) { + if (gPlayerState.field_0x1d[1] & 0x40) { + sub_08077B20(); + } + } + return result; +} + +s32 sub_0806ED9C(Entity* ent, u32 x, u32 y) { + s32 anim = -1; + if (EntityInRectRadius(ent, &gPlayerEntity, x, y)) + anim = GetAnimationState(ent); + return anim; +} + +u32 GetAnimationState(Entity* ent) { + u32 direction = GetFacingDirection(ent, &gPlayerEntity); + return sub_0806F5A4(direction); +} + +s32 sub_0806EDD8(Entity* ent, u32 x, u32 y) { + s32 anim = -1; + if (EntityInRectRadius(ent, &gPlayerEntity, x, y)) + anim = GetFacingDirection(ent, &gPlayerEntity); + return anim; +} + +void sub_0806EE04(Entity* ent, void* a2, u32 a3) { + ent->child = a2; + ent->field_0x3c = a3; + ent->hitType = 0; + ent->field_0x46 = 0; + ent->field_0x16 = 0; +} + +u32 sub_0806EE20(Entity* ent) { + u32 v3; + + if (!ent->interactType) { + if (ent->child) + return gUnk_08114EFC[ent->field_0x16](ent); + } else { + ent->field_0x46 = 8; + v3 = GetFacingDirection(ent, &gPlayerEntity); + ent->knockbackDirection = sub_0806F5A4(v3); + } + return 0; +} + +u32 sub_0806EE70(Entity* ent) { + s32 tmp1; + s32 tmp2; + u32 result; + u16 xy[2]; + + if (++ent->field_0x46 > 8) { + ent->field_0x46 = 0; + sub_0806EF14(ent); + } + sub_0806F69C(ent); + sub_0806EF4C(ent, xy); + tmp1 = sub_080041DC(ent, xy[0], xy[1]); + tmp2 = ent->speed; + if (tmp2 < 0) + tmp2 = -tmp2; + if ((u32)tmp2 / 8 <= tmp1) + result = 0; + else + result = sub_0806EF74(ent, 3); + return result; +} + +u32 sub_0806EED0(Entity* ent) { + if (!--ent->field_0x46) + return sub_0806EF74(ent, 2); + return 0; +} + +u32 sub_0806EEF4(Entity* ent) { + if (ent->frame & 0x80) + return sub_0806EF74(ent, 1); + return 0; +} + +void sub_0806EF14(Entity* ent) { + u16 xy[2]; + sub_0806EF4C(ent, xy); + ent->direction = sub_080045B4(ent, xy[0], xy[1]); + if ((ent->field_0x3c & 1) == 0) + ent->knockbackDirection = sub_0806F5A4(ent->direction); +} + +void sub_0806EF4C(Entity* ent, u16* xy) { + u16* src = &((u16*)ent->child)[ent->hitType]; + xy[0] = gRoomControls.roomOriginX + src[1]; + xy[1] = gRoomControls.roomOriginY + src[2]; +} + +u32 sub_0806EF74(Entity* ent, u32 a2) { + ent->hitType += a2; + return sub_0806EF88(ent); +} + +u32 sub_0806EF88(Entity* ent) { + u8* v1 = (u8*)&((u16*)ent->child)[ent->hitType]; + return gUnk_08114F0C[*v1](ent, v1); +} + +u32 sub_0806EFAC(Entity* ent, u16* a2) { + ent->hitType = 0; + return sub_0806EF88(ent); +} + +u32 sub_0806EFBC(Entity* ent, u16* a2) { + ent->field_0x16 = 1; + ent->field_0x46 = 8; + return 0; +} + +u32 sub_0806EFCC(Entity* ent, u16* a2) { + ent->field_0x16 = 2; + ent->field_0x46 = a2[1]; + return 0; +} + +u32 sub_0806EFDC(Entity* ent, u16* a2) { + if (*a2 >> 8) { + ent->field_0x3c &= ~1; + } else { + ent->field_0x3c |= 1; + } + ent->hitType++; + return sub_0806EF88(ent); +} + +u32 sub_0806F014(Entity* ent, u16* a2) { + ent->speed = a2[1]; + ent->hitType += 2; + return sub_0806EF88(ent); +} + +u32 sub_0806F02C(Entity* ent, u16* a2) { + ent->knockbackDirection = *a2 >> 8; + ent->hitType++; + return sub_0806EF88(ent); +} + +u32 sub_0806F048(Entity* ent, u16* a2) { + ent->field_0x16 = 3; + return 0; +} + +u32 sub_0806F050(Entity* ent, u16* a2) { + (u16*)ent->child = a2 + 1; + ent->hitType = 0; + return sub_0806EF88(ent); +} + +u32 sub_0806F064(Entity* ent, u16* a2) { + ent->field_0x16 = 0; + ent->hitType++; + return *a2 >> 8; +} + +s32 sub_0806F078(Entity* ent, s32 a2) { + if (a2 != ent->animIndex) { + if (ent->spriteAnimation[0]) + InitAnimationForceUpdate(ent, a2); + else + InitializeAnimation(ent, a2); + return 1; + } + return 0; +} + +ASM_FUNC("asm/non_matching/sub_0806FOA4.inc", void sub_0806F0A4(void)); + +void sub_0806F118(Entity* ent) { + u32 idx = sub_08002632(ent); + NPCData* data = gUnk_08001A7C[idx]; + sub_0801DFB4(ent, data->_0, data->_2, data->_4); + gPlayerState.controlMode = 3; +} + +u32 UpdateFuseInteraction(void) { + u32 ret; + sub_0801E00C(); + ret = -1; + switch (gUnk_02022740[0]) { + default: + ret = 0; + break; + case 2: + gPlayerState.controlMode = 3; + ret = 1; + case 1: + sub_0807919C(); + gPlayerState.controlMode = 1; + break; + } + return ret; +} + +void sub_0806F188(Entity* ent) { + u32 idx = sub_08002632(ent); + if (idx != 0) + gSave.unk1C1[idx] = 0xF3; +} + +ASM_FUNC("asm/non_matching/showNPCDialogue.inc", void ShowNPCDialogue(Entity* ent, Dialog* dia)); diff --git a/src/createObject.c b/src/objectUtils.c similarity index 100% rename from src/createObject.c rename to src/objectUtils.c diff --git a/src/player.c b/src/player.c index eefd0d92..3f2c89e5 100644 --- a/src/player.c +++ b/src/player.c @@ -180,7 +180,6 @@ extern void RespawnPlayer(); extern void sub_080797EC(); extern void sub_08079E08(); extern void sub_08078F60(); -extern void sub_0806F948(); extern void sub_08077698(); extern void DisplayEzloMessage(); extern void sub_08079258(); diff --git a/src/playerItemUtils.c b/src/playerItemUtils.c new file mode 100644 index 00000000..98bd0309 --- /dev/null +++ b/src/playerItemUtils.c @@ -0,0 +1,106 @@ +#include "entity.h" +#include "functions.h" +#include "room.h" +#include "save.h" +#include "utils.h" +#include "audio.h" +#include "flags.h" +#include "textbox.h" + +Entity* GiveItemWithCutscene(u32, u32, u32); +Entity* sub_080A276C(Entity*, u32, u32); +void sub_08078AF0(Entity*, u32, u32); +Entity* sub_0805E744(void); +void sub_080A7D44(u32, u32); + +void CreateItemEntity(u32 a, u32 b, u32 c) { + Entity* e = GiveItemWithCutscene(a, b, c); + if (e != NULL) { + e->parent = sub_080A276C(e, e->type, 0); + } +} + +void sub_080A7C18(u32 a, u32 b, u32 c) { + Entity* e = GiveItemWithCutscene(a, b, c); + if (e != NULL) { + e->parent = &gPlayerEntity; + sub_08078AF0(e, e->type, 0); + } +} + +Entity* GiveItemWithCutscene(u32 type, u32 type2, u32 delay) { + Entity* e; + if (type == 63 && gSave.stats.filler3[0]) { + type = 87; + type2 = 0; + } + e = sub_0805E744(); + if (e != NULL) { + e->type = type; + e->type2 = type2; + e->actionDelay = delay; + e->id = 11; + e->kind = 6; + AppendEntityToList(e, 6); + } + return e; +} + +void sub_080A7C7C(void) { + MemClear(gUnk_02017660, 0x40); +} + +void sub_080A7C8C(u32 pos, u32 layer) { + TileEntity* t = gUnk_02017660; + u32 found = 0; + u32 i; + for (i = 0; i < 8; ++i, ++t) { + if (*(u16*)&t->_4 == pos) { + found = 1; + break; + } + } + if ((layer >> 1) == ((u32)(t->_6 << 31) >> 31)) { + if (found) { + SetLocalFlag(t->_1); + CreateItemEntity(t->_2, t->_3, 0); + } else { + CreateItemEntity(0x60, 0, 0); + } + sub_0807B7D8(0x74, pos, layer); + RequestPriorityDuration(NULL, 120); + SoundReq(283); + } +} + +u32 sub_080A7CFC(u32 a1) { + u32 ta = 0x600; + u32 tb = 0; + TileEntity* t = GetCurrentRoomProperty(3); + if (t != 0) { + do { + if (t->_4 == a1) { + switch (t->type) { + case 5: + tb = 0; + ta = *(u16*)&t->_6; + break; + case 6: + tb = 1; + ta = *(u16*)&t->_6; + break; + } + break; + } + t++; + } while (t->_4 != 0); + } + sub_080A7D44(ta, tb); +} + +void sub_080A7D44(u32 msg, u32 a2) { + if (a2) + sub_08078AA8(msg, 0); + else + MessageFromTarget(msg); +} diff --git a/src/projectileInit.c b/src/projectileUtils.c similarity index 100% rename from src/projectileInit.c rename to src/projectileUtils.c diff --git a/src/room.c b/src/room.c index 45af78fe..e892739e 100644 --- a/src/room.c +++ b/src/room.c @@ -29,17 +29,6 @@ void sub_0806F704(Entity*, u32); void sub_0805BB00(u32, u32); -typedef struct { - u8 type; - u8 _1; - u8 _2; - u8 _3; - u16 _4; - u8 _6; - u8 _7; -} TileEntity; -extern TileEntity gUnk_02017660[]; - static void sub_0804B290(TileEntity*); static void sub_0804B29C(TileEntity*); static void sub_0804B300(TileEntity*); diff --git a/src/roomInit.c b/src/roomInit.c index f6484343..0ab8138f 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -2011,11 +2011,7 @@ void sub_StateChange_Ruins_TripleTektites(void) { } void sub_unk1_Ruins_TripleTektites(void) { -#if defined(JP) || defined(EU) || defined(DEMO_JP) - if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_03_00)) { -#else if (CheckLocalFlagByBank(FLAG_BANK_1, LOST_02_00)) { -#endif SetDirtTile(0x85); } } From 29c0ee184456c6ceb5a6a7239beddfcdd8e9e256 Mon Sep 17 00:00:00 2001 From: theo3 Date: Sun, 19 Dec 2021 18:09:02 -0800 Subject: [PATCH 029/168] rebase --- Jenkinsfile | 10 ++++---- README.md | 15 +++++++++++- asm/objectOnPillar.s | 4 ++-- include/room.h | 19 ++++++++++++++- linker.ld | 2 +- progress.py | 54 ++++++++++++++++++++++++++++++++----------- src/playerItemUtils.c | 44 ++++++++++++++++++----------------- src/room.c | 10 ++++---- 8 files changed, 110 insertions(+), 48 deletions(-) mode change 100644 => 100755 progress.py diff --git a/Jenkinsfile b/Jenkinsfile index a01f6b2d..66549a57 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -26,8 +26,9 @@ pipeline { } steps { sh 'mkdir reports' - sh 'python3 progress.py >> reports/progress_tmc.csv' - sh 'python3 progress.py -m >> reports/progress_tmc_matching.csv' + sh 'python3 progress.py csv >> reports/progress-tmc-nonmatching.csv' + sh 'python3 progress.py csv -m >> reports/progress-tmc-matching.csv' + sh 'python3 progress.py shield-json > reports/progress-tmc-shield.json' stash includes: 'reports/*', name: 'reports' } } @@ -40,8 +41,9 @@ pipeline { } steps { unstash 'reports' - sh 'cat reports/progress_tmc.csv >> /var/www/html/reports/progress_tmc.csv' - sh 'cat reports/progress_tmc_matching.csv >> /var/www/html/reports/progress_tmc_matching.csv' + sh 'cat reports/progress-tmc-nonmatching.csv >> /var/www/zelda64.dev/assets/csv/progress-tmc-nonmatching.csv' + sh 'cat reports/progress-tmc-matching.csv >> /var/www/zelda64.dev/assets/csv/progress-tmc-matching.csv' + sh 'cat reports/progress-tmc-shield.json > /var/www/zelda64.dev/assets/csv/progress-tmc-shield.json' } } } diff --git a/README.md b/README.md index 5b3e1a88..5663c817 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,19 @@ # The Legend of Zelda: The Minish Cap -**Progress:** [⬛⬛⬛⬛⬛⬛⬛⬛⬛⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜⬜] 45% + +[![Build Status][jenkins-badge]][jenkins] [![Decompilation Progress][progress-badge]][progress] [![Contributors][contributors-badge]][contributors] [![Discord Channel][discord-badge]][discord] + +[jenkins]: https://jenkins.deco.mp/job/TMC/job/master +[jenkins-badge]: https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins.deco.mp%2Fjob%2FTMC%2Fjob%2Fmaster + +[progress]: https://zelda64.dev/games/tmc +[progress-badge]: https://img.shields.io/endpoint?url=https://zelda64.dev/assets/csv/progress-tmc-shield.json + +[contributors]: https://github.com/zeldaret/tmc/graphs/contributors +[contributors-badge]: https://img.shields.io/github/contributors/zeldaret/tmc + +[discord]: https://discord.zelda64.dev +[discord-badge]: https://img.shields.io/discord/688807550715560050?color=%237289DA&logo=discord&logoColor=%23FFFFFF ```diff - WARNING! - diff --git a/asm/objectOnPillar.s b/asm/objectOnPillar.s index a6f43db9..64542d7e 100644 --- a/asm/objectOnPillar.s +++ b/asm/objectOnPillar.s @@ -699,7 +699,7 @@ _08097346: sub_08097348: @ 0x08097348 push {lr} adds r3, r0, #0 - ldr r1, _08097360 @ =gUnk_02017660 + ldr r1, _08097360 @ =gSmallChests movs r2, #0 _08097350: ldrh r0, [r1, #4] @@ -709,7 +709,7 @@ _08097350: bl CheckLocalFlag b _0809736E .align 2, 0 -_08097360: .4byte gUnk_02017660 +_08097360: .4byte gSmallChests _08097364: adds r2, #1 adds r1, #8 diff --git a/include/room.h b/include/room.h index aafac5bd..568c3f61 100644 --- a/include/room.h +++ b/include/room.h @@ -152,7 +152,24 @@ typedef struct { u8 _6; u8 _7; } TileEntity; -extern TileEntity gUnk_02017660[]; +extern TileEntity gSmallChests[]; + +typedef enum { + NONE, + ROOM_VISIT_MARKER, + SMALL_CHEST, + BIG_CHEST, + BOMBABLE_WALL, + SIGN, + TILE_ENTITY_6, + MUSIC_SETTER, + TILE_ENTITY_8, + DARKNESS, + DESTRUCTIBLE_TILE, + GRASS_DROP_CHANGER, + TILE_ENTITY_C, + TILE_ENTITY_D +} TileEntityType; extern void SetTileType(u32, u32, u32); extern void sub_08080964(u32 time, u32 magnitude); // shake screen diff --git a/linker.ld b/linker.ld index d98c69d0..896a56fb 100644 --- a/linker.ld +++ b/linker.ld @@ -65,7 +65,7 @@ SECTIONS { . = 0x00012654; gMetatilesTop = .; . = 0x00016654; gUnk_02016654 = .; . = 0x00017654; gCurrentRoomProperties = .; - . = 0x00017660; gUnk_02017660 = .; + . = 0x00017660; gSmallChests = .; . = 0x000176A0; gPaletteBuffer = .; . = 0x000176E0; gUnk_020176E0 = .; . = 0x00017700; gUnk_02017700 = .; diff --git a/progress.py b/progress.py old mode 100644 new mode 100755 index 512dc31a..141fbc30 --- a/progress.py +++ b/progress.py @@ -1,4 +1,7 @@ +#!/usr/bin/env python3 + import argparse +import json import git import os import re @@ -80,9 +83,13 @@ def parse_map(non_matching_funcs): def main(): parser = argparse.ArgumentParser() - parser.add_argument('-m', '--matching', dest='matching', action='store_true', - help='Output matching progress instead of decompilation progress') + + parser = argparse.ArgumentParser(description="Computes current progress throughout the whole project.") + parser.add_argument("format", nargs="?", default="text", choices=["text", "csv", "shield-json"]) + parser.add_argument("-m", "--matching", dest='matching', action='store_true', + help="Output matching progress instead of decompilation progress") args = parser.parse_args() + matching = args.matching non_matching_funcs = [] @@ -101,21 +108,42 @@ def main(): total = src + asm data_total = src_data + data - src_pct = '%.4f' % (100 * src / total) - asm_pct = '%.4f' % (100 * asm / total) + src_percent = 100 * src / total + asm_percent = 100 * asm / total - src_data_pct = '%.4f' % (100 * src_data / data_total) - data_pct = '%.4f' % (100 * data / data_total) + src_data_percent = 100 * src_data / data_total + data_percent = 100 * data / data_total - version = 1 - git_object = git.Repo().head.object - timestamp = str(git_object.committed_date) - git_hash = git_object.hexsha - csv_list = [str(version), timestamp, git_hash, str(src_pct), - str(asm_pct), str(src_data_pct), str(data_pct)] + if args.format == 'csv': + version = 2 + git_object = git.Repo().head.object + timestamp = str(git_object.committed_date) + git_hash = git_object.hexsha - print(','.join(csv_list)) + csv_list = [str(version), timestamp, git_hash, str(src), + str(total), str(src_data), str(data_total)] + + print(','.join(csv_list)) + + elif args.format == 'shield-json': + # https://shields.io/endpoint + print(json.dumps({ + "schemaVersion": 1, + "label": "progress", + "message": f"{src_percent:.3g}%", + "color": 'yellow', + })) + + elif args.format == 'text': + adjective = "decompiled" if not args.matching else "matched" + + print("src: {:>9} / {:>8} total bytes {:<10} {:>9.4f}%".format(src, total, adjective, round(src_percent, 4))) + # print() + print("data: {:>9} / {:>8} total bytes analysed {:>9.4f}%".format(src_data, data_total, round(src_data_percent, 4))) + + else: + print("Unknown format argument: " + args.format) if __name__ == '__main__': diff --git a/src/playerItemUtils.c b/src/playerItemUtils.c index 98bd0309..5863d96f 100644 --- a/src/playerItemUtils.c +++ b/src/playerItemUtils.c @@ -6,6 +6,7 @@ #include "audio.h" #include "flags.h" #include "textbox.h" +#include "object.h" Entity* GiveItemWithCutscene(u32, u32, u32); Entity* sub_080A276C(Entity*, u32, u32); @@ -13,15 +14,15 @@ void sub_08078AF0(Entity*, u32, u32); Entity* sub_0805E744(void); void sub_080A7D44(u32, u32); -void CreateItemEntity(u32 a, u32 b, u32 c) { - Entity* e = GiveItemWithCutscene(a, b, c); +void CreateItemEntity(u32 type, u32 type2, u32 delay) { + Entity* e = GiveItemWithCutscene(type, type2, delay); if (e != NULL) { e->parent = sub_080A276C(e, e->type, 0); } } -void sub_080A7C18(u32 a, u32 b, u32 c) { - Entity* e = GiveItemWithCutscene(a, b, c); +void sub_080A7C18(u32 type, u32 type2, u32 delay) { + Entity* e = GiveItemWithCutscene(type, type2, delay); if (e != NULL) { e->parent = &gPlayerEntity; sub_08078AF0(e, e->type, 0); @@ -39,19 +40,19 @@ Entity* GiveItemWithCutscene(u32 type, u32 type2, u32 delay) { e->type = type; e->type2 = type2; e->actionDelay = delay; - e->id = 11; - e->kind = 6; + e->id = OBJECT_B; + e->kind = OBJECT; AppendEntityToList(e, 6); } return e; } -void sub_080A7C7C(void) { - MemClear(gUnk_02017660, 0x40); +void ClearSmallChests(void) { + MemClear(gSmallChests, 0x40); } void sub_080A7C8C(u32 pos, u32 layer) { - TileEntity* t = gUnk_02017660; + TileEntity* t = gSmallChests; u32 found = 0; u32 i; for (i = 0; i < 8; ++i, ++t) { @@ -69,25 +70,25 @@ void sub_080A7C8C(u32 pos, u32 layer) { } sub_0807B7D8(0x74, pos, layer); RequestPriorityDuration(NULL, 120); - SoundReq(283); + SoundReq(SFX_11B); } } u32 sub_080A7CFC(u32 a1) { - u32 ta = 0x600; - u32 tb = 0; + u32 msg = 0x600; + u32 isTileEntity6 = 0; TileEntity* t = GetCurrentRoomProperty(3); if (t != 0) { do { if (t->_4 == a1) { switch (t->type) { - case 5: - tb = 0; - ta = *(u16*)&t->_6; + case SIGN: + isTileEntity6 = 0; + msg = *(u16*)&t->_6; break; - case 6: - tb = 1; - ta = *(u16*)&t->_6; + case TILE_ENTITY_6: + isTileEntity6 = 1; + msg = *(u16*)&t->_6; break; } break; @@ -95,12 +96,13 @@ u32 sub_080A7CFC(u32 a1) { t++; } while (t->_4 != 0); } - sub_080A7D44(ta, tb); + sub_080A7D44(msg, isTileEntity6); } -void sub_080A7D44(u32 msg, u32 a2) { - if (a2) +void sub_080A7D44(u32 msg, u32 isTileEntity6) { + if (isTileEntity6) sub_08078AA8(msg, 0); else + // Read sign text MessageFromTarget(msg); } diff --git a/src/room.c b/src/room.c index e892739e..d4feb11f 100644 --- a/src/room.c +++ b/src/room.c @@ -17,7 +17,7 @@ extern u8 gUnk_081091E4[]; extern void sub_080186EC(); extern void sub_0804B16C(); -extern void sub_080A7C7C(void); +extern void ClearSmallChests(void); extern Entity* GetEmptyEntityByKind(u32 kind); void RegisterRoomEntity(Entity*, EntityData*); @@ -134,7 +134,7 @@ void sub_0804AF0C(Entity* ent, EntityData* dat) { void sub_0804AF90(void) { sub_0804AFB0(gArea.pCurrentRoomInfo->properties); - sub_080A7C7C(); + ClearSmallChests(); } void sub_0804AFB0(void** properties) { @@ -254,12 +254,12 @@ void* GetCurrentRoomProperty(u32 idx) { } void sub_0804B16C(void) { - TileEntity* tile = gUnk_02017660; + TileEntity* tile = gSmallChests; do { if (tile->_4 != 0 && CheckLocalFlag(tile->_1)) { SetTileType(0x74, tile->_4, tile->_6 & 1 ? 2 : 1); } - } while (++tile < gUnk_02017660 + 8); + } while (++tile < gSmallChests + 8); } void LoadRoomTileEntities(TileEntity* list) { @@ -315,7 +315,7 @@ static void sub_0804B290(TileEntity* tile) { } static void sub_0804B29C(TileEntity* tile) { - TileEntity* t = gUnk_02017660; + TileEntity* t = gSmallChests; u32 i = 0; for (i = 0; i < 8; ++i, ++t) { if (!t->_4) { From e29378b8690d4f3f190546045795c31cc2ed3e5b Mon Sep 17 00:00:00 2001 From: theo3 Date: Sun, 19 Dec 2021 18:19:19 -0800 Subject: [PATCH 030/168] propagate changes --- assets/sounds.json | 2 +- constants/audio_constants.inc | 2 +- data/sound/sounds.s | 2 +- include/audio.h | 2 +- include/room.h | 4 +-- src/audio.c | 4 +-- src/npc/rem.c | 2 +- src/playerItemUtils.c | 4 +-- src/room.c | 67 +++++++++++++++++------------------ 9 files changed, 44 insertions(+), 45 deletions(-) diff --git a/assets/sounds.json b/assets/sounds.json index 1b348d4e..e5769e56 100644 --- a/assets/sounds.json +++ b/assets/sounds.json @@ -3026,7 +3026,7 @@ "size": 28 }, { - "path": "sounds/sfx11B.bin", + "path": "sounds/sfxChestOpen.bin", "start": 14558640, "type": "midi", "options": { diff --git a/constants/audio_constants.inc b/constants/audio_constants.inc index 07cb901e..94589a41 100644 --- a/constants/audio_constants.inc +++ b/constants/audio_constants.inc @@ -281,7 +281,7 @@ .equiv SFX_ITEM_SHIELD_BOUNCE, 0x118 .equiv SFX_ITEM_GLOVES_KNOCKBACK, 0x119 .equiv SFX_EM_ARMOS_ON, 0x11a - .equiv SFX_11B, 0x11b + .equiv SFX_CHEST_OPEN, 0x11b .equiv SFX_11C, 0x11c .equiv SFX_11D, 0x11d .equiv SFX_EM_MOBLIN_SPEAR, 0x11e diff --git a/data/sound/sounds.s b/data/sound/sounds.s index a2a6df41..fb2a0819 100644 --- a/data/sound/sounds.s +++ b/data/sound/sounds.s @@ -247,7 +247,7 @@ .include "sounds/sfxItemShieldBounce.s" .include "sounds/sfxItemGlovesKnockback.s" .include "sounds/sfxEmArmosOn.s" - .include "sounds/sfx11B.s" + .include "sounds/sfxChestOpen.s" .include "sounds/sfx11C.s" .include "sounds/sfx11D.s" .include "sounds/sfxEmMoblinSpear.s" diff --git a/include/audio.h b/include/audio.h index ccfdee57..2add23dd 100644 --- a/include/audio.h +++ b/include/audio.h @@ -291,7 +291,7 @@ typedef enum { SFX_ITEM_SHIELD_BOUNCE, SFX_ITEM_GLOVES_KNOCKBACK, SFX_EM_ARMOS_ON, - SFX_11B, + SFX_CHEST_OPEN, SFX_11C, SFX_11D, SFX_EM_MOBLIN_SPEAR, diff --git a/include/room.h b/include/room.h index 568c3f61..fb706547 100644 --- a/include/room.h +++ b/include/room.h @@ -152,7 +152,7 @@ typedef struct { u8 _6; u8 _7; } TileEntity; -extern TileEntity gSmallChests[]; +extern TileEntity gSmallChests[8]; typedef enum { NONE, @@ -167,7 +167,7 @@ typedef enum { DARKNESS, DESTRUCTIBLE_TILE, GRASS_DROP_CHANGER, - TILE_ENTITY_C, + LOCATION_CHANGER, TILE_ENTITY_D } TileEntityType; diff --git a/src/audio.c b/src/audio.c index 2b57b183..1da1714a 100644 --- a/src/audio.c +++ b/src/audio.c @@ -478,7 +478,7 @@ extern const SongHeader sfx117; extern const SongHeader sfxItemShieldBounce; extern const SongHeader sfxItemGlovesKnockback; extern const SongHeader sfxEmArmosOn; -extern const SongHeader sfx11B; +extern const SongHeader sfxChestOpen; extern const SongHeader sfx11C; extern const SongHeader sfx11D; extern const SongHeader sfxEmMoblinSpear; @@ -1110,7 +1110,7 @@ const Song gSongTable[] = { [SFX_ITEM_SHIELD_BOUNCE] = { &sfxItemShieldBounce, MUSIC_PLAYER_07, MUSIC_PLAYER_07 }, [SFX_ITEM_GLOVES_KNOCKBACK] = { &sfxItemGlovesKnockback, MUSIC_PLAYER_14, MUSIC_PLAYER_14 }, [SFX_EM_ARMOS_ON] = { &sfxEmArmosOn, MUSIC_PLAYER_13, MUSIC_PLAYER_13 }, - [SFX_11B] = { &sfx11B, MUSIC_PLAYER_12, MUSIC_PLAYER_12 }, + [SFX_CHEST_OPEN] = { &sfxChestOpen, MUSIC_PLAYER_12, MUSIC_PLAYER_12 }, [SFX_11C] = { &sfx11C, MUSIC_PLAYER_11, MUSIC_PLAYER_11 }, [SFX_11D] = { &sfx11D, MUSIC_PLAYER_10, MUSIC_PLAYER_10 }, [SFX_EM_MOBLIN_SPEAR] = { &sfxEmMoblinSpear, MUSIC_PLAYER_0F, MUSIC_PLAYER_0F }, diff --git a/src/npc/rem.c b/src/npc/rem.c index d4c5ede5..94356c93 100644 --- a/src/npc/rem.c +++ b/src/npc/rem.c @@ -139,7 +139,7 @@ void sub_0806A550(Entity* this) { this->frame = 0; sub_08080964(8, 2); gActiveScriptInfo.unk_00 |= 0x100; - SoundReq(SFX_11B); + SoundReq(SFX_CHEST_OPEN); } if ((this->frame & 0x80) != 0) { this->action = 5; diff --git a/src/playerItemUtils.c b/src/playerItemUtils.c index 5863d96f..9871639a 100644 --- a/src/playerItemUtils.c +++ b/src/playerItemUtils.c @@ -48,7 +48,7 @@ Entity* GiveItemWithCutscene(u32 type, u32 type2, u32 delay) { } void ClearSmallChests(void) { - MemClear(gSmallChests, 0x40); + MemClear(gSmallChests, sizeof(gSmallChests)); } void sub_080A7C8C(u32 pos, u32 layer) { @@ -70,7 +70,7 @@ void sub_080A7C8C(u32 pos, u32 layer) { } sub_0807B7D8(0x74, pos, layer); RequestPriorityDuration(NULL, 120); - SoundReq(SFX_11B); + SoundReq(SFX_CHEST_OPEN); } } diff --git a/src/room.c b/src/room.c index d4feb11f..ae2bb9f0 100644 --- a/src/room.c +++ b/src/room.c @@ -4,6 +4,7 @@ #include "flags.h" #include "functions.h" #include "utils.h" +#include "object.h" extern void sub_0804B058(EntityData* dat); extern void sub_0801AC98(); @@ -29,14 +30,13 @@ void sub_0806F704(Entity*, u32); void sub_0805BB00(u32, u32); -static void sub_0804B290(TileEntity*); -static void sub_0804B29C(TileEntity*); -static void sub_0804B300(TileEntity*); -static void sub_0804B334(TileEntity*); -static void sub_0804B340(TileEntity*); -static void sub_0804B260(TileEntity*); -static void sub_0804B27C(TileEntity*); - +static void LoadRoomVisitTile(TileEntity*); +static void LoadSmallChestTile(TileEntity*); +static void LoadBombableWallTile(TileEntity*); +static void LoadDarknessTile(TileEntity*); +static void LoadDestructibleTile(TileEntity*); +static void LoadGrassDropTile(TileEntity*); +static void LoadLocationTile(TileEntity*); typedef struct { u8 filler[0x20]; @@ -221,7 +221,6 @@ void sub_0804B0E8(u32 arg0, u32 arg1) { void (*func)(); // init function at index 4 of room data - func = (void (*)())GetRoomProperty(arg0, arg1, 4); if (func != NULL) { func(); @@ -270,58 +269,58 @@ void LoadRoomTileEntities(TileEntity* list) { for (t; t->type != 0; ++t) { switch (t->type) { - case 1: - sub_0804B290(t); + case ROOM_VISIT_MARKER: + LoadRoomVisitTile(t); break; - case 2: - sub_0804B29C(t); + case SMALL_CHEST: + LoadSmallChestTile(t); break; - case 4: - sub_0804B300(t); + case BOMBABLE_WALL: + LoadBombableWallTile(t); break; - case 7: + case MUSIC_SETTER: gArea.pMusicIndex = t->_3; break; - case 9: - sub_0804B334(t); + case DARKNESS: + LoadDarknessTile(t); break; - case 10: - sub_0804B340(t); + case DESTRUCTIBLE_TILE: + LoadDestructibleTile(t); break; - case 11: - sub_0804B260(t); + case GRASS_DROP_CHANGER: + LoadGrassDropTile(t); break; - case 12: - sub_0804B27C(t); + case LOCATION_CHANGER: + LoadLocationTile(t); break; - case 13: + case TILE_ENTITY_D: gRoomVars.field_0x9 = t->_3; break; } } } -static void sub_0804B260(TileEntity* tile) { +static void LoadGrassDropTile(TileEntity* tile) { MemCopy(&gUnk_080015BC[tile->_1], &gRoomVars.filler4[44], 0x20); } -static void sub_0804B27C(TileEntity* tile) { +static void LoadLocationTile(TileEntity* tile) { gArea.locationIndex = tile->_1; sub_08054524(); } -static void sub_0804B290(TileEntity* tile) { +static void LoadRoomVisitTile(TileEntity* tile) { SetLocalFlag(tile->_1); } -static void sub_0804B29C(TileEntity* tile) { +static void LoadSmallChestTile(TileEntity* tile) { TileEntity* t = gSmallChests; u32 i = 0; for (i = 0; i < 8; ++i, ++t) { if (!t->_4) { MemCopy(tile, t, sizeof(TileEntity)); if ((t->_6 & 1) && (gRoomControls.unk6 & 2) && !CheckLocalFlag(t->_1)) { - Entity* e = CreateObject(0x52, t->_1, 0); + Entity* e = CreateObject(OBJECT_52, t->_1, 0); if (e != NULL) { sub_0806F704(e, t->_4); } @@ -331,7 +330,7 @@ static void sub_0804B29C(TileEntity* tile) { } } -static void sub_0804B300(TileEntity* tile) { +static void LoadBombableWallTile(TileEntity* tile) { Manager24* mgr = (Manager24*)GetEmptyManager(); if (mgr != NULL) { mgr->manager.type = 9; @@ -344,11 +343,11 @@ static void sub_0804B300(TileEntity* tile) { } } -static void sub_0804B334(TileEntity* tile) { +static void LoadDarknessTile(TileEntity* tile) { sub_0805BB00(tile->_3, 1); } -static void sub_0804B340(TileEntity* tile) { +static void LoadDestructibleTile(TileEntity* tile) { if (CheckLocalFlag(*(u16*)&tile->_2)) { SetTileType(*(u16*)&tile->_6, tile->_4, tile->_1); } else if (!gRoomVars.filler_0x1) { @@ -375,5 +374,5 @@ void sub_0804B388(u32 a1, u32 a2) { } void sub_0804B3C4(void* arg0) { - sub_0804B29C(arg0); + LoadSmallChestTile(arg0); } From d4d1f62004db1a9372a9d9179a9754b226eb4f07 Mon Sep 17 00:00:00 2001 From: theo3 Date: Sun, 19 Dec 2021 18:20:18 -0800 Subject: [PATCH 031/168] clang-format --- src/roomInit.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/roomInit.c b/src/roomInit.c index 0ab8138f..223d7c99 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -4791,7 +4791,8 @@ u32 sub_unk3_HouseInteriors2_Stockwell() { extern EntityData gUnk_080F30CC; void sub_StateChange_HouseInteriors2_Stockwell(void) { - if ((GetInventoryValue(ITEM_QST_DOGFOOD) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) && (gPlayerState.flags & PL_MINISH) == 0) { + if ((GetInventoryValue(ITEM_QST_DOGFOOD) == 1) && !CheckGlobalFlag(BIN_DOGFOOD) && + (gPlayerState.flags & PL_MINISH) == 0) { LoadRoomEntityList(&gUnk_080F30CC); } } @@ -5178,12 +5179,14 @@ void sub_StateChange_Sanctuary_Main(void) { LoadRoomEntityList(&gUnk_080F54E8); } if (!CheckLocalFlag(0x7a)) { - if (GetInventoryValue(ITEM_GREEN_SWORD) && !GetInventoryValue(ITEM_RED_SWORD) && GetInventoryValue(ITEM_EARTH_ELEMENT) && GetInventoryValue(ITEM_FIRE_ELEMENT)) { + if (GetInventoryValue(ITEM_GREEN_SWORD) && !GetInventoryValue(ITEM_RED_SWORD) && + GetInventoryValue(ITEM_EARTH_ELEMENT) && GetInventoryValue(ITEM_FIRE_ELEMENT)) { LoadRoomEntityList(&gUnk_080F5508); } } else { if (!CheckLocalFlag(0x7b)) { - if (GetInventoryValue(ITEM_RED_SWORD) && !GetInventoryValue(ITEM_BLUE_SWORD) && GetInventoryValue(ITEM_WATER_ELEMENT)) { + if (GetInventoryValue(ITEM_RED_SWORD) && !GetInventoryValue(ITEM_BLUE_SWORD) && + GetInventoryValue(ITEM_WATER_ELEMENT)) { LoadRoomEntityList(&gUnk_080F5558); } } else { From 6cff332e57b5cc723d9243c2d4667be7c7ca0273 Mon Sep 17 00:00:00 2001 From: theo3 Date: Mon, 20 Dec 2021 02:02:33 -0800 Subject: [PATCH 032/168] header overhaul --- asm/code_0801967C.s | 2 +- asm/code_0801D79C.s | 6 +- asm/code_08077B98.s | 4 +- asm/code_080A5574.s | 12 +-- asm/fileScreen.s | 2 +- asm/non_matching/sub_08077F24.inc | 7 -- data/data_080FC8A4.s | 9 -- include/arm_proxy.h | 6 -- include/asm.h | 25 ++++++ include/audio.h | 44 ++++----- include/coord.h | 4 + include/cutscene.h | 16 ---- include/enemy.h | 16 +++- include/entity.h | 13 +-- include/fade.h | 18 ++++ include/fileScreen.h | 1 - include/functions.h | 72 --------------- include/game.h | 8 -- include/greatFairy.h | 29 ------ include/interrupts.h | 6 ++ include/main.h | 1 - include/manager.h | 11 +++ include/npc.h | 47 +++++++++- include/object.h | 17 ++++ include/overworld.h | 63 +++++++++++++ include/random.h | 10 --- include/room.h | 3 + include/screen.h | 1 + include/utils.h | 6 +- linker.ld | 2 - src/audio.c | 21 +++-- src/code_08077B98.c | 120 ++++++++++++++++++++++++- src/code_08077DF4.c | 120 ------------------------- src/code_0808091C.c | 1 + src/collision.c | 2 +- src/coord.c | 1 + src/debugScreen.c | 1 + src/enemy/acroBandits.c | 3 - src/enemy/beetle.c | 3 - src/enemy/bladeTrap.c | 1 + src/enemy/bobomb.c | 3 +- src/enemy/bombPeahat.c | 2 +- src/enemy/businessScrub.c | 3 +- src/enemy/chuchu.c | 3 +- src/enemy/cuccoChickAggr.c | 2 - src/enemy/darkNut.c | 2 - src/enemy/doorMimic.c | 1 + src/enemy/fallingBoulder.c | 2 - src/enemy/fireballGuy.c | 4 - src/enemy/gibdo.c | 3 - src/enemy/gyorgMale.c | 3 - src/enemy/helmasaur.c | 1 - src/enemy/keaton.c | 4 - src/enemy/keese.c | 4 - src/enemy/lakitu.c | 5 -- src/enemy/lakituCloud.c | 1 + src/enemy/leever.c | 4 - src/enemy/likeLike.c | 2 - src/enemy/madderpillar.c | 3 - src/enemy/mazaalBracelet.c | 4 - src/enemy/mazaalHead.c | 7 +- src/enemy/mazaalMacro.c | 4 - src/enemy/miniFireballGuy.c | 3 - src/enemy/miniSlime.c | 3 - src/enemy/moldorm.c | 2 - src/enemy/moldworm.c | 3 - src/enemy/octorok.c | 3 - src/enemy/octorokBoss.c | 7 +- src/enemy/peahat.c | 2 - src/enemy/pesto.c | 4 +- src/enemy/puffstool.c | 3 - src/enemy/rockChuchu.c | 3 - src/enemy/rollobite.c | 2 - src/enemy/rope.c | 4 - src/enemy/rupeeLike.c | 2 + src/enemy/sensorBladeTrap.c | 1 + src/enemy/slime.c | 5 -- src/enemy/sluggula.c | 2 - src/enemy/smallPesto.c | 4 - src/enemy/spearMoblin.c | 3 - src/enemy/spikedBeetle.c | 2 - src/enemy/spinyChuchu.c | 3 - src/enemy/tektite.c | 3 - src/enemy/tektiteGolden.c | 4 - src/enemy/vaatiArm.c | 6 -- src/enemy/vaatiBall.c | 1 + src/enemy/vaatiEyesMacro.c | 3 - src/enemy/vaatiProjectile.c | 2 - src/enemy/vaatiRebornEnemy.c | 6 -- src/enemy/vaatiTransfigured.c | 5 -- src/enemy/vaatiWrath.c | 8 +- src/enemy/vaatiWrathEye.c | 4 +- src/enemy/wallMaster.c | 2 - src/enemy/wallMaster2.c | 1 - src/enemy/waterDrop.c | 2 - src/enemy/wisp.c | 5 -- src/enemyUtils.c | 2 +- src/entity.c | 15 ++-- src/fade.c | 19 ++-- src/fileScreen.c | 1 - src/item/itemPegasusBoots.c | 2 +- src/main.c | 10 ++- src/manager/manager15.c | 1 - src/manager/manager16.c | 2 +- src/manager/manager1C.c | 2 +- src/manager/manager23.c | 1 + src/manager/manager24.c | 2 +- src/manager/manager28.c | 1 + src/manager/manager3.c | 2 +- src/manager/manager31.c | 2 +- src/manager/manager32.c | 4 +- src/manager/manager37.c | 1 + src/manager/manager39.c | 2 +- src/npc.c | 3 +- src/npc/anju.c | 1 - src/npc/beedle.c | 3 +- src/npc/bigGoron.c | 11 +-- src/npc/bladeBrothers.c | 5 +- src/npc/brocco.c | 1 - src/npc/carlov.c | 2 +- src/npc/carpenter.c | 1 - src/npc/castleMaid.c | 3 +- src/npc/castorWildsStatue.c | 2 + src/npc/cat.c | 1 - src/npc/clothesRack.c | 5 +- src/npc/cow.c | 1 - src/npc/cucco.c | 5 +- src/npc/cuccoChick.c | 4 - src/npc/dog.c | 5 -- src/npc/drLeft.c | 7 +- src/npc/ezlo.c | 6 +- src/npc/farmers.c | 3 +- src/npc/forestMinish.c | 9 -- src/npc/gorman.c | 6 +- src/npc/goron.c | 1 + src/npc/goronMerchant.c | 1 + src/npc/guard.c | 3 +- src/npc/kid.c | 3 - src/npc/mailbox.c | 1 + src/npc/melari.c | 8 -- src/npc/milkCart.c | 1 + src/npc/mountainMinish.c | 1 + src/npc/npc23.c | 1 + src/npc/npc26.c | 1 + src/npc/npc4E.c | 1 + src/npc/npc4F.c | 4 +- src/npc/npc5.c | 9 +- src/npc/npc58.c | 1 + src/npc/npc9.c | 3 +- src/npc/pita.c | 6 +- src/npc/postman.c | 3 +- src/npc/rem.c | 8 +- src/npc/simon.c | 1 + src/npc/sittingPerson.c | 5 -- src/npc/smallTownMinish.c | 2 +- src/npc/smith.c | 8 -- src/npc/stamp.c | 1 + src/npc/stockwell.c | 1 + src/npc/sturgeon.c | 1 - src/npc/syrup.c | 4 - src/npc/talon.c | 6 -- src/npc/townMinish.c | 1 - src/npc/townsperson.c | 9 -- src/npc/wheaton.c | 9 +- src/npc/windTribespeople.c | 1 + src/npc/zelda.c | 1 + src/npcUtils.c | 22 ++--- src/object/archway.c | 2 +- src/object/backgroundCloud.c | 4 +- src/object/bakerOven.c | 3 - src/object/bell.c | 3 +- src/object/bird.c | 6 -- src/object/book.c | 6 +- src/object/button.c | 7 +- src/object/cloud.c | 7 -- src/object/fileScreenObjects.c | 6 +- src/object/fireplace.c | 7 +- src/object/floatingBlock.c | 3 +- src/object/frozenFlower.c | 3 +- src/object/giantLeaf.c | 5 +- src/object/greatFairy.c | 35 +++++--- src/object/houseDoorExterior.c | 1 + src/object/jarPortal.c | 7 +- src/object/lightableSwitch.c | 1 + src/object/lilypadSmall.c | 9 +- src/object/lockedDoor.c | 2 +- src/object/mask.c | 8 +- src/object/minecart.c | 5 +- src/object/minishSizedArchway.c | 2 +- src/object/minishSizedEntrance.c | 6 +- src/object/object1A.c | 3 - src/object/object2A.c | 1 + src/object/object49.c | 5 -- src/object/object86.c | 6 +- src/object/objectA.c | 1 + src/object/objectA2.c | 4 - src/object/octorokBossObject.c | 6 +- src/object/palaceArchway.c | 5 +- src/object/pot.c | 1 + src/object/railtrack.c | 1 + src/object/smoke.c | 4 - src/object/thoughtBubble.c | 1 - src/object/treeThorns.c | 1 - src/object/warpPoint.c | 5 +- src/object/windTribeFlag.c | 4 +- src/objectUtils.c | 2 +- src/overworld.c | 83 +++++++++++------ src/player.c | 7 +- src/playerItem/playerItem10.c | 2 +- src/playerItem/playerItem12.c | 1 + src/playerItem/playerItem3.c | 1 + src/playerItem/playerItemBow.c | 1 + src/projectile/dirtBallProjectile.c | 1 + src/projectile/gleerokProjectile.c | 2 +- src/projectile/guardLineOfSight.c | 2 +- src/projectile/gyorgTail.c | 2 +- src/projectile/mandiblesProjectile.c | 4 +- src/projectile/octorokBossProjectile.c | 2 +- src/projectile/v1DarkMagicProjectile.c | 2 +- src/projectile/v1FireProjectile.c | 2 +- src/projectile/v2Projectile.c | 2 +- src/projectile/winder.c | 2 +- src/projectileUtils.c | 2 +- src/room.c | 1 + src/roomInit.c | 6 +- src/save.c | 1 + src/script.c | 30 +++---- src/sub_08055E08.c | 1 + src/sub_0807B820.c | 5 +- src/sub_0807C998.c | 41 --------- src/sub_0807CA18.c | 40 +++++++++ src/sub_08127D30.c | 7 -- src/utils.c | 2 +- 233 files changed, 692 insertions(+), 943 deletions(-) delete mode 100644 include/arm_proxy.h create mode 100644 include/asm.h delete mode 100644 include/cutscene.h create mode 100644 include/fade.h delete mode 100644 include/game.h delete mode 100644 include/greatFairy.h create mode 100644 include/interrupts.h create mode 100644 include/overworld.h delete mode 100644 include/random.h delete mode 100644 src/code_08077DF4.c delete mode 100644 src/sub_0807C998.c delete mode 100644 src/sub_08127D30.c diff --git a/asm/code_0801967C.s b/asm/code_0801967C.s index d4982be5..69ea4740 100644 --- a/asm/code_0801967C.s +++ b/asm/code_0801967C.s @@ -939,7 +939,7 @@ _08019D76: _08019D8C: .4byte gPlayerState _08019D90: .4byte gUnk_0200AF00 _08019D94: - bl sub_08052734 + bl HasDungeonMap cmp r0, #0 bne _08019D9E b _0801A2A4 diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index 8a693cff..d3ffd9a8 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -466,7 +466,7 @@ _0801DC04: adds r0, r6, #0 bl sub_0801DF10 mov r8, r0 - bl sub_0805279C + bl HasDungeonBigKey movs r1, #8 adds r1, r1, r6 mov sb, r1 @@ -548,7 +548,7 @@ _0801DCA6: cmp r0, #0 bne _0801DC26 _0801DCAE: - bl sub_0805279C + bl HasDungeonBigKey cmp r0, #0 beq _0801DD16 ldrb r1, [r6, #2] @@ -731,7 +731,7 @@ _0801DDE4: _0801DE14: .4byte gUnk_02032EC0 _0801DE18: .4byte 0x0000FFFF _0801DE1C: - bl sub_080527CC + bl HasDungeonSmallKey cmp r0, #0 beq _0801DE28 movs r0, #2 diff --git a/asm/code_08077B98.s b/asm/code_08077B98.s index 972fafe0..6d889d80 100644 --- a/asm/code_08077B98.s +++ b/asm/code_08077B98.s @@ -741,13 +741,13 @@ _080785B0: ands r0, r1 cmp r0, #0 bne _080785F0 - bl sub_08052734 + bl HasDungeonMap cmp r0, #0 beq _080785C4 movs r0, #1 _080785C4: adds r7, r0, #0 - bl sub_08052764 + bl HasDungeonCompass cmp r0, #0 beq _080785D2 movs r0, #2 diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index ccc08052..cd023366 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -1344,7 +1344,7 @@ _080A558C: movs r0, #0x87 lsls r0, r0, #7 strh r0, [r5, #8] - bl sub_080527CC + bl HasDungeonSmallKey cmp r0, #0 beq _080A55BE movs r0, #0x18 @@ -1359,7 +1359,7 @@ _080A558C: adds r1, r4, #0 bl sub_080ADA14 _080A55BE: - bl sub_08052764 + bl HasDungeonCompass cmp r0, #0 beq _080A55DE movs r0, #0x2e @@ -1374,7 +1374,7 @@ _080A55BE: adds r1, r4, #0 bl sub_080ADA14 _080A55DE: - bl sub_0805279C + bl HasDungeonBigKey cmp r0, #0 beq _080A563CEU movs r0, #0x45 @@ -1600,7 +1600,7 @@ _080A5D9A: movs r0, #0x87 lsls r0, r0, #7 strh r0, [r5, #8] - bl sub_080527CC + bl HasDungeonSmallKey cmp r0, #0 beq _080A5DCC movs r0, #0x18 @@ -1616,7 +1616,7 @@ _080A5D9A: adds r1, r4, #0 bl sub_080ADA14 _080A5DCC: - bl sub_08052764 + bl HasDungeonCompass cmp r0, #0 beq _080A5DEE movs r0, #0x2e @@ -1632,7 +1632,7 @@ _080A5DCC: adds r1, r4, #0 bl sub_080ADA14 _080A5DEE: - bl sub_0805279C + bl HasDungeonBigKey cmp r0, #0 beq _080A5E48 movs r0, #0x45 diff --git a/asm/fileScreen.s b/asm/fileScreen.s index 94944122..c7b8a3ed 100755 --- a/asm/fileScreen.s +++ b/asm/fileScreen.s @@ -974,7 +974,7 @@ HandleGameOverScreen: @ 0x08052094 cmp r0, #0 beq _080520B8 bl FlushSprites - bl sub_080523D4 + bl DrawGameOverText bl sub_080AD918 _080520B8: pop {r4, pc} diff --git a/asm/non_matching/sub_08077F24.inc b/asm/non_matching/sub_08077F24.inc index e9a5d381..051ccf7a 100644 --- a/asm/non_matching/sub_08077F24.inc +++ b/asm/non_matching/sub_08077F24.inc @@ -1,11 +1,4 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - .syntax unified - - .text - push {lr} ldr r2, _08077F34 @ =gStats ldrb r3, [r0, #1] diff --git a/data/data_080FC8A4.s b/data/data_080FC8A4.s index db597a8d..ce05a4c6 100644 --- a/data/data_080FC8A4.s +++ b/data/data_080FC8A4.s @@ -93,12 +93,3 @@ gUnk_080FCA70:: @ 080FCA70 .4byte sub_080521A0 .4byte sub_080522F4 .4byte nullsub_107 - -gUnk_080FCA84:: @ 080FCA84 - .incbin "data_080FC8A4/gUnk_080FCA84.bin" - -gUnk_080FCA8C:: @ 080FCA8C - .incbin "data_080FC8A4/gUnk_080FCA8C.bin" - -gUnk_080FCAA4:: @ 080FCAA4 - .incbin "data_080FC8A4/gUnk_080FCAA4.bin" diff --git a/include/arm_proxy.h b/include/arm_proxy.h deleted file mode 100644 index 9364ebf0..00000000 --- a/include/arm_proxy.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef ARM_PROXY_H -#define ARM_PROXY_H - -extern void WaitForNextFrame(void); - -#endif diff --git a/include/asm.h b/include/asm.h new file mode 100644 index 00000000..cd151320 --- /dev/null +++ b/include/asm.h @@ -0,0 +1,25 @@ +#ifndef ASM_H +#define ASM_H + +#include "global.h" + +struct Entity_; + +extern u32 Random(void); +extern void sub_08000152(u32); +extern void SetTile(u32 index, u32 position, u32 layer); +extern void sub_08001242(struct Entity_*); +extern void sub_08001290(struct Entity_*, u32); +extern void sub_08001324(struct Entity_*); +extern u32 sub_08002632(struct Entity_*); +extern u32 sub_08003FC4(struct Entity_*, u32); +extern u32 sub_080043E8(struct Entity_*); +extern void sub_08004484(struct Entity_*, struct Entity_*); +extern u32 sub_080045D4(s16, s16, u32, u32); +extern u32 sub_080045DA(s32, s32); +extern void sub_08004596(struct Entity_*, u32); +extern u32 sub_080045B4(struct Entity_*, u32, u32); +extern u32 EntityInRectRadius(struct Entity_*, struct Entity_*, u32, u32); +extern void UpdateAnimationVariableFrames(struct Entity_*, u32); + +#endif // ASM_H diff --git a/include/audio.h b/include/audio.h index 2add23dd..e5e4c0e4 100644 --- a/include/audio.h +++ b/include/audio.h @@ -5,6 +5,29 @@ #define NUM_BGM 99 +void SoundReq(u32 sound); +extern void EnqueueSFX(u32); + +void InitSound(void); +void InitSoundPlayingInfo(void); +void AudioMain(void); + +typedef struct SoundPlayingInfo { + u16 unk_00; + bool8 stopBgm; + // u8 unk_03; + u16 unk_04; + s16 volumeMasterUnk; + s16 volumeMaster; + s16 volumeMasterTarget; + s16 volumeBgmUnk; + s16 volumeBgm; + s16 volumeBgmTarget; + s16 volumeSfx; + u16 currentBgm; +} SoundPlayingInfo; +extern SoundPlayingInfo gSoundPlayingInfo; + typedef enum { SFX_NONE, // BGM @@ -574,25 +597,4 @@ typedef enum { SONG_BGM_0 = 0x80110000, } Sound; -typedef struct SoundPlayingInfo { - u16 unk_00; - bool8 stopBgm; - // u8 unk_03; - u16 unk_04; - s16 volumeMasterUnk; - s16 volumeMaster; - s16 volumeMasterTarget; - s16 volumeBgmUnk; - s16 volumeBgm; - s16 volumeBgmTarget; - s16 volumeSfx; - u16 currentBgm; -} SoundPlayingInfo; - -extern SoundPlayingInfo gSoundPlayingInfo; - -void InitSound(void); -void SoundReq(Sound sound); -void AudioMain(void); - #endif // AUDIO_H diff --git a/include/coord.h b/include/coord.h index 52dcf210..4b6556e6 100644 --- a/include/coord.h +++ b/include/coord.h @@ -15,6 +15,10 @@ void sub_0806FA90(Entity*, Entity*, s32, s32); void ResolveEntityOnTop(Entity*, Entity*); void ResolveEntityBelow(Entity*, Entity*); +u32 sub_0806F5A4(u32 idx); +u32 sub_0806F3E4(Entity*); +void sub_0806F69C(Entity*); + extern const s16 gSineTable[64]; extern const s16 gCosineTable[256]; diff --git a/include/cutscene.h b/include/cutscene.h deleted file mode 100644 index 72d44fef..00000000 --- a/include/cutscene.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef CUTSCENE_H -#define CUTSCENE_H - -#include "global.h" - -typedef struct { - u32* cutsceneData; - u8 textIndex; - u8 filler[11]; - u16 pauseTime; - u8 filler2[2]; - s32 targetX; - s32 targetY; -} CutsceneBehavior; - -#endif diff --git a/include/enemy.h b/include/enemy.h index 6b187642..8595b8f3 100644 --- a/include/enemy.h +++ b/include/enemy.h @@ -2,8 +2,21 @@ #define ENEMY_H #include "global.h" +#include "asm.h" + +#include "audio.h" +#include "effects.h" +#include "flags.h" +#include "utils.h" + #include "entity.h" +extern u32 GetNextFunction(Entity*); +extern void EnemyFunctionHandler(Entity*, void (*const func[])(Entity*)); +extern void sub_08001324(Entity*); + +extern Entity* sub_0804A9FC(Entity*, u32); + typedef enum { /*0x00*/ OCTOROK, /*0x01*/ CHUCHU, @@ -213,7 +226,4 @@ extern void Enemy64(Entity*); extern void TreeItem(Entity*); extern void Enemy66(Entity*); -extern u32 GetNextFunction(Entity*); -extern void EnemyFunctionHandler(Entity*, void (*const func[])(Entity*)); -extern void sub_08001324(Entity*); #endif diff --git a/include/entity.h b/include/entity.h index 83c3a6c5..43c3b721 100644 --- a/include/entity.h +++ b/include/entity.h @@ -41,9 +41,9 @@ typedef struct { u8 unknown2[3]; } Hitbox3D; -typedef struct Entity { - /*0x00*/ struct Entity* prev; - /*0x04*/ struct Entity* next; +typedef struct Entity_ { + /*0x00*/ struct Entity_* prev; + /*0x04*/ struct Entity_* next; /*0x08*/ u8 kind; /*0x09*/ u8 id; /*0x0a*/ u8 type; @@ -118,9 +118,9 @@ typedef struct Entity { /*0x45*/ u8 health; /*0x46*/ u16 field_0x46; /*0x48*/ Hitbox* hitbox; - /*0x4c*/ struct Entity* field_0x4c; - /*0x50*/ struct Entity* parent; - /*0x54*/ struct Entity* child; + /*0x4c*/ struct Entity_* field_0x4c; + /*0x50*/ struct Entity_* parent; + /*0x54*/ struct Entity_* child; /*0x58*/ u8 animIndex; /*0x59*/ u8 frameDuration; /*0x5a*/ u8 frame; @@ -275,6 +275,7 @@ Entity* FindNextDuplicateID(Entity* ent, int listIndex); */ Entity* FindEntity(u32 kind, u32 id, u32 listIndex, u32 type, u32 type2); +void DeleteManager(void*); void DeleteEntityAny(Entity* ent); void UpdateEntities(void); diff --git a/include/fade.h b/include/fade.h new file mode 100644 index 00000000..7e71a435 --- /dev/null +++ b/include/fade.h @@ -0,0 +1,18 @@ +#ifndef FADE_H +#define FADE_H + +#include "global.h" + +void SetBrightness(u32 arg0); +void DoFade(u32 type, u32 speed); + +void sub_08050008(void); +void sub_08050038(u32); +void sub_080500F4(u32 arg0); +void sub_08050110(u32 param_1, u32 param_2, u32 fadeType, u32 fadeSpeed); + +void InitFade(void); +void FadeMain(void); +void FadeVBlank(void); + +#endif // FADE_H diff --git a/include/fileScreen.h b/include/fileScreen.h index 8cf2304b..04cfa4ba 100644 --- a/include/fileScreen.h +++ b/include/fileScreen.h @@ -59,7 +59,6 @@ extern void sub_0805F46C(u32, void*); extern void RecoverUI(u32 bottomPt, u32 topPt); extern void sub_08080668(void); extern void sub_0805194C(u32); -extern void LoadPalettes(const u8*, int, int); extern struct_02036540* sub_0805F2C8(void); extern void sub_0805F7DC(u32, struct_02036540*); extern void sub_0805F300(struct_02036540*); diff --git a/include/functions.h b/include/functions.h index 293f7e20..cc90e57f 100644 --- a/include/functions.h +++ b/include/functions.h @@ -12,21 +12,16 @@ #include "script.h" // Identified - to be sorted into header files -extern void ShowNPCDialogue(Entity*, Dialog*); -extern void DoFade(u32, u32); extern u32 CheckKinstoneFused(u32); extern void ForceEquipItem(u32, u32); extern void LoadRoomEntityList(EntityData* listPtr); -extern u32 GetAnimationState(Entity*); extern void SetChildOffset(Entity*, s32, s32, s32); extern Entity* CreatePlayerItem(u32, u32, u32, u32); extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer); extern u32 GetTileType(u32 pos, u32 layer); extern void SetTile(u32, u32, u32); extern void SetDirtTile(u32); -extern void LoadRoomTileEntities(); // tba extern Entity* CreateDeathFx(Entity*, u32, u32); -extern void UpdateAnimationVariableFrames(Entity*, u32); extern u8* GetSpriteSubEntryOffsetDataPointer(u32, u32); extern bool32 LoadFixedGFX(Entity*, u32); extern void CreateItemEntity(u32, u32, u32); @@ -35,20 +30,14 @@ extern void MenuFadeIn(u32, u32); extern void LoadResourceAsync(const void*, u32, u32); extern void LoadPaletteGroup(u32); extern void TryLoadPrologueHyruleTown(void); -extern Manager* GetEmptyManager(void); extern void LoadGfxGroup(u32); -extern void EnqueueSFX(u32); extern void ResetPlayer(void); extern u32 IsItemEquipped(u32); -extern void DeleteManager(Manager*); extern bool32 CheckPlayerInRegion(u32 centerX, u32 centerY, u32 radiusX, u32 radiusY); extern Entity* CreateProjectileWithParent(Entity*, u8, u8); -extern u32 GetBottleContaining(u32); extern u32 GetTileTypeByEntity(Entity*); extern u32 GetSaleItemConfirmMessageID(u32); extern void FlushSprites(void); -extern void DispReset(u32); -extern void InitSoundPlayingInfo(void); extern Entity* CreateProjectile(u32); extern void RegisterPlayerHitbox(); extern s32 GetItemPrice(); @@ -58,41 +47,22 @@ extern void PutItemOnSlot(u32 itemID); extern Entity* CreateSpeechBubbleQuestionMark(Entity*, s32, s32); extern Entity* CreateSpeechBubbleExclamationMark(Entity*, s32, s32); extern Entity* CreateSpeechBubbleSleep(Entity*, s32, s32); -extern u32 CheckPlayerProximity(u32, u32, u32, u32); -extern void ChangeLightLevel(s32); // Unidentified -extern u32 sub_0806ED78(Entity*); -extern u32 sub_0805ACC0(Entity*); -extern u32 sub_0801E99C(Entity*); -extern Entity* sub_080873AC(Entity*, u32, u32); -extern void sub_08078778(Entity*); -extern void sub_080787A8(Entity*, u32); -extern void sub_0806F118(Entity*); extern void sub_080791D0(); extern void sub_0805EC9C(); extern void sub_0805EC60(Entity*); -extern u32 sub_080045D4(s16, s16, u32, u32); -extern void sub_0806F69C(Entity*); extern void sub_0806D0B0(Entity*); extern void sub_0806D02C(Entity*); -extern u32 sub_0806F5A4(u32); -extern void sub_08078784(Entity*, u32); -extern s32 sub_0806ED9C(Entity*, u32, u32); -extern void sub_0807000C(Entity*); -extern void sub_08068BEC(Entity*, u32); -extern s32 sub_0806F078(Entity*, s32); extern void ChangeObjPalette(Entity*, u32); extern void sub_0806FD3C(Entity*); extern void sub_0805ED14(u32*); extern void sub_080A7C18(u32, u32, u32); extern void sub_0804AA30(Entity*, void (*const funcs[])(Entity*)); -extern Entity* sub_0804A9FC(Entity*, u32); extern void sub_0804A720(Entity*); extern u32 sub_080AEFE0(Entity*); extern u32 sub_08049FA0(Entity*); extern u32 sub_08049FDC(Entity*, u32); -extern u32 EntityInRectRadius(Entity*, Entity*, u32, u32); extern u32 sub_08049EE4(Entity*); extern void sub_08077E54(ItemBehavior*); extern void sub_080042BA(Entity*, u32); @@ -111,8 +81,6 @@ extern void sub_080575C8(u32); extern void sub_08057688(void); extern void sub_080580B0(u32); extern void sub_080751E8(u32, u32, void*); -extern void sub_08052CA4(u32, u32, u32, u32); -extern void sub_08052878(void); extern void sub_0808091C(ScreenTransitionData*, u32); extern void sub_0805BC4C(void); extern void sub_0807BB68(u32*, u32, u32); @@ -120,7 +88,6 @@ extern void sub_08054570(void); extern void sub_08059278(void); extern void sub_0804C128(u32); extern void sub_08058324(u32); -extern void sub_0804C2F0(void); extern void sub_0801AFE4(void); extern u32 sub_08060354(void); extern void sub_08057E64(void); @@ -128,7 +95,6 @@ extern void sub_0809F814(u32); extern void sub_080300E8(void); extern void sub_08058D34(void); extern void sub_0807AABC(Entity*); -extern void UpdateGlobalProgress(void); extern void sub_0805B4D0(u32); extern void sub_0804D0B4(void); extern void sub_080534AC(); @@ -137,7 +103,6 @@ extern void sub_0804D9B0(); extern void sub_0807BB98(u32, u32, u32, u32); extern void sub_0801D000(u32); extern void sub_08018C58(u32); -extern void sub_0804E150(void); extern void sub_080AF284(void); extern void sub_080A71C4(u32, u32, u32, u32); extern void sub_08054564(); @@ -150,7 +115,6 @@ extern s32 sub_0801CFA8(u32); extern void sub_080ADA14(u32, u32); // trampoline to sub_080B27F4 extern void sub_0801E1B8(u32, u32); extern void sub_0801E1EC(s32, s32, s32); -extern void sub_08050008(void); extern void sub_080A3B74(void); extern void sub_080A4054(void); extern void sub_0801C1D4(void); @@ -161,25 +125,16 @@ extern void sub_080A4528(void); extern void sub_080A4398(void); extern void sub_0801E738(u32); extern void sub_080A7114(u32); -extern void sub_08001324(Entity*); -extern void sub_08001242(Entity*); -extern u32 sub_08003FC4(Entity*, u32); -extern u32 sub_080043E8(Entity*); -extern void sub_08001290(Entity*, u32); -extern void sub_08004596(Entity*, u32); -extern u32 sub_080045B4(Entity*, u32, u32); extern u32 sub_0807953C(void); extern void sub_080AE068(Entity*); extern u32 sub_0800445C(Entity*); extern void sub_0807A108(void); extern u32 sub_0801766C(Entity*); extern void sub_08004168(Entity*); -extern u32 sub_08052638(u32); extern void sub_08056208(void); extern void sub_08050384(); extern u32 sub_0806F520(); extern void sub_0806F4E8(Entity*); -extern u32 sub_0806F3E4(Entity*); extern void sub_0804A7D4(Entity*); extern void sub_08033744(Entity*); extern void sub_0800417E(Entity*, u32); @@ -197,10 +152,8 @@ extern void sub_08079938(); extern void sub_0807ACCC(Entity*); extern void sub_080A2BE4(Entity*, u32); extern u32 sub_08097ADC(Entity*); -extern void sub_08097B24(Entity*); extern u32 sub_08079F8C(void); extern void sub_080787CC(Entity*); -extern void sub_080526F8(s32); extern u32 sub_080044EC(Entity*, u32); extern u32 sub_080002B8(Entity*); extern u32 sub_08049F84(Entity*, u32); @@ -215,7 +168,6 @@ extern void sub_08080CB4(Entity*); extern u32 sub_0800442E(Entity*); extern void sub_08081404(Entity*, u32); extern void sub_0807B7D8(u32, u32, u32); -extern void RegisterTransitionManager(void*, void (*)(), void (*)()); extern void sub_0800451C(Entity*); extern u32 sub_080002F0(u32, u32, u32); extern u32 sub_080040D8(Entity*, u8*, s32, s32); @@ -227,7 +179,6 @@ extern void sub_080026C4(u8*, u8*, u8*, u32); extern void sub_080026F2(u8*, void*, u8*, u32); extern u32 sub_0805F7A0(u32); extern u32* sub_0805F25C(u32); -extern u32 sub_080045DA(s32, s32); u32 sub_0806FCB8(Entity*, u32, u32, u32); extern void sub_080A1D70(Entity*, u32); extern void sub_0806F62C(Entity*, u32, u32); @@ -235,13 +186,6 @@ extern void sub_080A1ED0(u32, u32, u32); extern u32 sub_0806F5B0(u32); extern void sub_0801DFB4(Entity*, u32, u32, u32); extern void sub_0801E00C(); -extern void sub_08050038(u32); -extern void sub_080500F4(u32); -extern void sub_08050110(u32, u32, u32, u32); -extern u32 sub_08052734(); // has Dungeon Map? -extern u32 sub_08052764(); // has Dungeon Compass? -extern u32 sub_0805279C(); // has Dungeon Big Key? -extern u32 sub_080527CC(); // num Dungeon small keys? extern void sub_08078790(Entity*, u32); extern void sub_080788E0(Entity*); extern void sub_08078AA8(u32, u32); @@ -259,17 +203,7 @@ extern u32 sub_08079FC4(u32); extern void sub_0800455E(Entity*); extern u32* sub_08008790(Entity*, u32); extern void sub_0804ACF8(); -extern void sub_08073904(Entity*); -extern u32 CheckHeaderValid(void); -extern void sub_08004484(Entity*, Entity*); extern void sub_0805F8E4(u32 r0, WStruct* r1); -extern u32 sub_08002632(Entity*); -extern void sub_0807879C(Entity*); -extern void sub_080787C0(Entity*); -extern void sub_080787B4(Entity*); -extern void sub_0808C650(Entity*, u32); -extern u32 sub_0808C67C(void); -extern void sub_0808C688(void); extern Entity* sub_08077C94(ItemBehavior*, u32); extern Entity* sub_08077C0C(ItemBehavior*, u32); @@ -287,12 +221,6 @@ extern void sub_080042D0(Entity*, u32, u16); extern u32 sub_080002A8(u32, u32, u32); extern void sub_080806BC(u32, u32, u32, u32); -extern void sub_080186C0(u32); -extern void sub_0801855C(void); - -extern u32 sub_0807CAEC(u32); -extern void sub_0807CAC8(u32); extern void LoadObjPalette(Entity*, u32); -void sub_0804B3C4(void*); #endif diff --git a/include/game.h b/include/game.h deleted file mode 100644 index fb9d486b..00000000 --- a/include/game.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef GAME_H -#define GAME_H - -#include "gba/types.h" - -u32 CheckIsDungeon(void); - -#endif // GAME_H diff --git a/include/greatFairy.h b/include/greatFairy.h deleted file mode 100644 index 461b83f9..00000000 --- a/include/greatFairy.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef GREATFAIRY_H -#define GREATFAIRY_H - -#include "entity.h" -#include "screen.h" - -void GreatFairy_InitializeAnimation(Entity*); -Entity* GreatFairy_CreateForm(Entity*, u32, u32); -void sub_080873D0(); -extern void (*const GreatFairy_Main[])(Entity*); -extern void (*const GreatFairy_Behaviors[])(Entity*); -extern void (*const GreatFairy_WingsBehaviors[])(Entity*); -extern void (*const GreatFairy_WakeBehaviors[])(Entity*); -extern void (*const GreatFairy_MiniBehaviors[])(Entity*); -extern void (*const GreatFairy_MiniAffineBehaviors[])(Entity*); -extern void (*const GreatFairy_DropletBehaviors[])(Entity*); -extern void (*const GreatFairy_RippleBehaviors[])(Entity*); -extern void (*const GreatFairy_BigRippleBehaviors[])(Entity*); -extern void (*const GreatFairy_EnergyBehaviors[])(Entity*); -extern void (*const GreatFairy_Form1Behaviors[])(Entity*); -extern void (*const GreatFairy_Form2Behaviors[])(Entity*); -extern void (*const gUnk_081207A4[])(Entity*); - -extern u32 gUnk_0810C2E4; -extern const s16 GreatFairy_RippleOffsets[10]; -extern u8 gUnk_0812079C[8]; -extern s8 gUnk_081207AC[]; - -#endif diff --git a/include/interrupts.h b/include/interrupts.h new file mode 100644 index 00000000..b1952acd --- /dev/null +++ b/include/interrupts.h @@ -0,0 +1,6 @@ +#ifndef INTERRUPTS_H +#define INTERRUPTS_H + +extern void WaitForNextFrame(void); + +#endif // INTERRUPTS_H diff --git a/include/main.h b/include/main.h index c9675bfe..d5ffda2e 100644 --- a/include/main.h +++ b/include/main.h @@ -92,7 +92,6 @@ void InitScreen(u32 screen); void InitDMA(void); extern void sub_08056208(void); -extern void InitFade(void); extern void ResetPalettes(void); extern void DoSoftReset(void); diff --git a/include/manager.h b/include/manager.h index 013678b2..e18c51e8 100644 --- a/include/manager.h +++ b/include/manager.h @@ -230,4 +230,15 @@ extern void Manager39_Main(); extern void (*const gManagerFunctions[58])(); +Manager* GetEmptyManager(void); + +/** + * @brief Set manager responsible for handling room changes + */ +extern void RegisterTransitionManager(void* mgr, void (*onEnter)(), void (*onExit)()); + +extern u32 sub_0805ACC0(Entity*); +extern void sub_0801855C(void); +extern void sub_080186C0(u32); + #endif diff --git a/include/npc.h b/include/npc.h index bf49ef0a..d67652de 100644 --- a/include/npc.h +++ b/include/npc.h @@ -1,9 +1,50 @@ +#ifndef NPC_H +#define NPC_H + #include "global.h" +#include "asm.h" +#include "utils.h" + +#include "audio.h" +#include "effects.h" +#include "room.h" +#include "flags.h" +#include "coord.h" +#include "textbox.h" +#include "script.h" +#include "save.h" + #include "entity.h" #include "player.h" -#ifndef NPC_H -#define NPC_H +#include "structures.h" + +void sub_0806EC20(Entity* ent); +void sub_0806EC38(void); +u32 sub_0806ED78(Entity* ent); +s32 sub_0806ED9C(Entity*, u32, u32); +u32 GetAnimationState(Entity* ent); +s32 sub_0806EDD8(Entity* ent, u32 x, u32 y); +void sub_0806EE04(Entity* ent, void* a2, u32 a3); +u32 sub_0806EE20(Entity* ent); +s32 sub_0806F078(Entity* ent, s32 a2); +void sub_0806F118(Entity* ent); +void sub_0806F188(Entity* ent); +void ShowNPCDialogue(Entity* ent, Dialog* dia); + +Entity* CreateNPC(u32 subtype, u32 form, u32 parameter); +u32 UpdateFuseInteraction(Entity*); + +void NPCInit(Entity* ent); +void sub_0806F0A4(void); + +// TODO move? +void sub_08078784(Entity* ent, u32 arg1); +u32 sub_0806F5A4(u32); +u32 sub_0801E99C(Entity*); +void sub_08078778(Entity*); +void sub_0807000C(Entity*); +void sub_080787A8(Entity*, u32); enum NPC { /*0x00*/ NPC_NONE_0, @@ -297,8 +338,6 @@ extern void Phonograph(Entity*); extern void NPC58(Entity*); extern void NPC58_Head(Entity*); -extern u32 UpdateFuseInteraction(Entity*); - extern void (*const gNPCFunctions[128][3])(Entity*); #endif diff --git a/include/object.h b/include/object.h index 1a219e09..20515a6e 100644 --- a/include/object.h +++ b/include/object.h @@ -2,7 +2,24 @@ #define OBJECT_H #include "global.h" +#include "asm.h" +#include "utils.h" + +#include "audio.h" +#include "flags.h" +#include "effects.h" +#include "room.h" +#include "coord.h" + #include "entity.h" +#include "player.h" + +extern void sub_0807879C(Entity*); +extern void sub_080787C0(Entity*); +extern void sub_080787B4(Entity*); +extern void sub_0808C650(Entity*, u32); +extern u32 sub_0808C67C(void); +extern void sub_0808C688(void); typedef enum { GROUND_ITEM, diff --git a/include/overworld.h b/include/overworld.h new file mode 100644 index 00000000..2ffa87d9 --- /dev/null +++ b/include/overworld.h @@ -0,0 +1,63 @@ +#ifndef OVERWORLD_H +#define OVERWORLD_H + +#include "global.h" +#include "area.h" + +void ChangeLightLevel(s32); +void SetPopupState(u32 type, u32 choice_idx); + +bool32 CheckIsOverworld(void); +bool32 sub_08052638(u32 r0); +#ifndef EU +u32 sub_08052654(void); +#endif +u32 CheckIsDungeon(void); +u32 CheckIsInteriorWithEnemies(void); +u32 CheckIsInteriorNoEnemies(void); +u32 CheckHasMap(void); + +s32 ModHealth(s32 deltaHealth); +void ModRupees(s32 rupeeDelta); + +void sub_080526F8(s32 a1); +u32 sub_08052724(void); +u32 HasDungeonMap(void); +u32 HasDungeonCompass(void); +u32 HasDungeonBigKey(void); +u32 HasDungeonSmallKey(void); + +void sub_080527FC(u32 a1, u32 a2); +#ifndef EU +void sub_08052878(void); +#endif + +void RoomExitCallback(void); +void InitParachuteRoom(void); +u32 sub_08052B24(void); +void DisplayEzloMessage(void); + +void sub_08052CA4(u32 area, u32 room, u32 x, u32 y); +void sub_08052CD0(u32 area, u32 room, u32 x, u32 y); + +void sub_08052CFC(void); + +/** + * @brief Get bank offset for area + */ +u32 GetFlagBankOffset(u32 idx); + +RoomResInfo* GetCurrentRoomInfo(void); +void sub_08052EA0(void); +void sub_08052FD8(u32 room, u32 area); +void UpdateGlobalProgress(void); +void sub_08053250(void); +void sub_08053320(void); +void sub_080533CC(void); +void sub_08053494(void); +void sub_080534AC(void); +void sub_08053500(void); + +u32 GetBottleContaining(u32); + +#endif // OVERWORLD_H diff --git a/include/random.h b/include/random.h deleted file mode 100644 index d2c7f3d7..00000000 --- a/include/random.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef RANDOM_H -#define RANDOM_H - -#include "gba/types.h" - -extern u32 Random(void); - -extern u32 gRand; - -#endif diff --git a/include/room.h b/include/room.h index fb706547..efaed68b 100644 --- a/include/room.h +++ b/include/room.h @@ -175,5 +175,8 @@ extern void SetTileType(u32, u32, u32); extern void sub_08080964(u32 time, u32 magnitude); // shake screen extern void* GetCurrentRoomProperty(u32); +extern void LoadRoomTileEntities(); + +void sub_0804B3C4(void*); #endif diff --git a/include/screen.h b/include/screen.h index aaca4ef6..18962f80 100644 --- a/include/screen.h +++ b/include/screen.h @@ -2,6 +2,7 @@ #define BG_H #include "global.h" +#include "fade.h" typedef struct { u16 displayControl; diff --git a/include/utils.h b/include/utils.h index 19c57f14..8cb3e8d1 100644 --- a/include/utils.h +++ b/include/utils.h @@ -38,7 +38,7 @@ void MemCopy(const void* src, void* dest, u32 size); */ void ReadKeyInput(void); -void LoadPalettes(const u8*, int, int); +void LoadPalettes(const u8*, s32, s32); void LoadPaletteGroup(u32 group); void SetColor(u32 colorIndex, u32 color); void SetFillColor(u32 color, u32 arg1); @@ -70,4 +70,6 @@ void zFree(void* ptr); */ void DispReset(bool32 updateHUD); -#endif \ No newline at end of file +u32 CheckPlayerProximity(u32, u32, u32, u32); + +#endif diff --git a/linker.ld b/linker.ld index 896a56fb..852b72cf 100644 --- a/linker.ld +++ b/linker.ld @@ -677,13 +677,11 @@ SECTIONS { asm/code_08077698.o(.text); asm/respawnPlayer.o(.text); src/code_08077B98.o(.text); - src/code_08077DF4.o(.text); asm/code_08077B98.o(.text); src/code_08078778.o(.text); asm/code_08078778.o(.text); src/sub_0807B820.o(.text); asm/code_0807B9B8.o(.text); - src/sub_0807C998.o(.text); src/sub_0807CA18.o(.text); asm/getInventoryValue.o(.text); asm/code_0807CAA0.o(.text); diff --git a/src/audio.c b/src/audio.c index 1da1714a..16e22303 100644 --- a/src/audio.c +++ b/src/audio.c @@ -7,12 +7,11 @@ #define IS_BGM(song) (song) - 1 <= NUM_BGM - 1 #define IS_SFX(song) (song) - 1 > NUM_BGM - 1 -void InitSoundPlayingInfo(void); -s32 fade(s32 target, s32 current); -void doPlaySound(u32 sound); -void PlayFadeIn(u32 sound); -void PlayFadeOut(u32 sound); -void InitVolume(void); +static s32 fade(s32 target, s32 current); +static void doPlaySound(u32 sound); +static void PlayFadeIn(u32 sound); +static void PlayFadeOut(u32 sound); +static void InitVolume(void); void InitSound(void) { InitSoundPlayingInfo(); @@ -182,7 +181,7 @@ void AudioMain(void) { } } -s32 fade(s32 target, s32 current) { +static s32 fade(s32 target, s32 current) { if (target - current >= 1) { current += 4; if (target > current) @@ -196,7 +195,7 @@ s32 fade(s32 target, s32 current) { } } -void doPlaySound(u32 sound) { +static void doPlaySound(u32 sound) { u32 volume; MusicPlayerInfo* musicPlayerInfo; @@ -214,17 +213,17 @@ void doPlaySound(u32 sound) { m4aMPlayVolumeControl(musicPlayerInfo, 0xffff, volume); } -void PlayFadeIn(u32 sound) { +static void PlayFadeIn(u32 sound) { gSoundPlayingInfo.volumeMasterTarget = 0x100; doPlaySound(sound); } -void PlayFadeOut(u32 sound) { +static void PlayFadeOut(u32 sound) { gSoundPlayingInfo.volumeMasterTarget = 0; doPlaySound(sound); } -void InitVolume() { +static void InitVolume() { gSoundPlayingInfo.volumeMasterUnk = 0x100; gSoundPlayingInfo.volumeMaster = 0x100; gSoundPlayingInfo.volumeMasterTarget = 0x100; diff --git a/src/code_08077B98.c b/src/code_08077B98.c index ca36a700..eb3dcd88 100644 --- a/src/code_08077B98.c +++ b/src/code_08077B98.c @@ -1,7 +1,5 @@ -#include "global.h" -#include "entity.h" -#include "player.h" #include "functions.h" +#include "object.h" typedef struct { u8 unk[12]; @@ -122,4 +120,118 @@ Entity* sub_08077CF8(u32 subtype, u32 form, u32 parameter, u32 unk) { return ent; } -ASM_FUNC("asm/non_matching/sub_08077D38.inc", void sub_08077D38(ItemBehavior* beh, u32 arg1)) +ASM_FUNC("asm/non_matching/sub_08077D38.inc", void sub_08077D38(ItemBehavior* beh, u32 arg1)); + +typedef struct { + u8 b0 : 4; + u8 b1 : 4; +} PACKED Unk_bitfield; + +typedef struct { + u8 unk[16]; +} Unk_struct; + +void sub_08077DF4(ItemBehavior* beh, u32 arg1) { + Entity* ent = (Entity*)beh; // @nocheckin + *(u16*)&ent->flags = arg1; + if ((arg1 & 0xff) > 0xb8) { + arg1 += ent->type >> 1; + } + gPlayerEntity.spriteIndex = (short)(arg1 >> 8); + InitAnimationForceUpdate(&gPlayerEntity, (u8)arg1); + sub_08077E54(beh); +} + +void UpdateItemAnim(ItemBehavior* beh) { + UpdateAnimationSingleFrame(&gPlayerEntity); + sub_08077E54(beh); +} + +void sub_08077E3C(ItemBehavior* ent, u32 idx) { + sub_080042BA(&gPlayerEntity, idx); + sub_08077E54(ent); +} + +void sub_08077E54(ItemBehavior* beh) { + Entity* ent = (Entity*)beh; // @nocheckin + ent->action = gPlayerEntity.animIndex; + *(u8*)&ent->spriteIndex = gPlayerEntity.frameIndex; + ent->subAction = gPlayerEntity.frameDuration; + ent->actionDelay = gPlayerEntity.frame; +} + +void sub_08077E78(ItemBehavior* arg0, u32 bits) { + u32 not ; + + if (bits == 0) { + if (gPlayerState.field_0x2c != NULL) { + ((Unk_bitfield*)gPlayerState.field_0x2c)[0x11].b0 = 6; + gPlayerState.field_0x2c = (u8*)bits; + } else { + gPlayerState.field_0x2c = (u8*)bits; + } + } + + not = (8 >> bits); + gPlayerState.field_0x3[1] &= ~((u8)((8 >> bits) << 4) | not ); + not = ~not ; + gPlayerState.field_0xa &= not ; + gPlayerState.keepFacing &= not ; + MemClear(arg0, 0x1c); +} + +u32 sub_08077EC8(ItemBehavior* beh) { + Unk_struct* arg0 = (Unk_struct*)beh; // @nocheckin + + if ((gPlayerState.field_0x1a[1] & 8) != 0) { + sub_08077DF4(beh, 0x170); + arg0->unk[7] = 0x28; + arg0->unk[4] = 7; + arg0->unk[15] = 6; + return 1; + } else { + return 0; + } +} + +bool32 sub_08077EFC(ItemBehavior* arg0) { + return sub_08077F24(arg0, (u16)gPlayerState.field_0x90.HALF.LO); +} + +bool32 sub_08077F10(ItemBehavior* arg0) { + return sub_08077F24(arg0, (u16)gPlayerState.field_0x90.HALF.HI); +} + +ASM_FUNC("asm/non_matching/sub_08077F24.inc", bool32 sub_08077F24(ItemBehavior* beh, u32 arg1)) + +void sub_08077F50(ItemBehavior* beh, u32 arg1) { + sub_08079184(); + sub_08077E78(beh, arg1); +} + +u32 sub_08077F64(ItemBehavior* arg0, u32 unk) { + u32 temp; + if (gPlayerState.heldObject == 0) { + sub_08077F50(arg0, unk); + temp = 0; + } else { + temp = 1; + } + return temp; +} + +void sub_08077F84(void) { + Entity* obj; + + if (((gPlayerEntity.collisionLayer & 2) == 0) && + GetTileTypeByPos(gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI - 0xc, 2) - 0x343U < 4) { + sub_0807AA80(&gPlayerEntity); + gPlayerState.jumpStatus |= 8; + obj = CreateObject(OBJECT_44, 0, 0); + if (obj != NULL) { + obj->x = gPlayerEntity.x; + obj->y.HALF.HI = gPlayerEntity.y.HALF.HI - 0xc; + gPlayerEntity.y.HALF.HI -= 0xc; + } + } +} diff --git a/src/code_08077DF4.c b/src/code_08077DF4.c deleted file mode 100644 index 89246080..00000000 --- a/src/code_08077DF4.c +++ /dev/null @@ -1,120 +0,0 @@ -#include "global.h" -#include "entity.h" -#include "player.h" -#include "utils.h" -#include "object.h" -#include "functions.h" - -typedef struct { - u8 b0 : 4; - u8 b1 : 4; -} PACKED Unk_bitfield; - -typedef struct { - u8 unk[16]; -} Unk_struct; - -void sub_08077DF4(ItemBehavior* beh, u32 arg1) { - Entity* ent = (Entity*)beh; // @nocheckin - *(u16*)&ent->flags = arg1; - if ((arg1 & 0xff) > 0xb8) { - arg1 += ent->type >> 1; - } - gPlayerEntity.spriteIndex = (short)(arg1 >> 8); - InitAnimationForceUpdate(&gPlayerEntity, (u8)arg1); - sub_08077E54(beh); -} - -void UpdateItemAnim(ItemBehavior* beh) { - UpdateAnimationSingleFrame(&gPlayerEntity); - sub_08077E54(beh); -} - -void sub_08077E3C(ItemBehavior* ent, u32 idx) { - sub_080042BA(&gPlayerEntity, idx); - sub_08077E54(ent); -} - -void sub_08077E54(ItemBehavior* beh) { - Entity* ent = (Entity*)beh; // @nocheckin - ent->action = gPlayerEntity.animIndex; - *(u8*)&ent->spriteIndex = gPlayerEntity.frameIndex; - ent->subAction = gPlayerEntity.frameDuration; - ent->actionDelay = gPlayerEntity.frame; -} - -void sub_08077E78(ItemBehavior* arg0, u32 bits) { - u32 not ; - - if (bits == 0) { - if (gPlayerState.field_0x2c != NULL) { - ((Unk_bitfield*)gPlayerState.field_0x2c)[0x11].b0 = 6; - gPlayerState.field_0x2c = (u8*)bits; - } else { - gPlayerState.field_0x2c = (u8*)bits; - } - } - - not = (8 >> bits); - gPlayerState.field_0x3[1] &= ~((u8)((8 >> bits) << 4) | not ); - not = ~not ; - gPlayerState.field_0xa &= not ; - gPlayerState.keepFacing &= not ; - MemClear(arg0, 0x1c); -} - -u32 sub_08077EC8(ItemBehavior* beh) { - Unk_struct* arg0 = (Unk_struct*)beh; // @nocheckin - - if ((gPlayerState.field_0x1a[1] & 8) != 0) { - sub_08077DF4(beh, 0x170); - arg0->unk[7] = 0x28; - arg0->unk[4] = 7; - arg0->unk[15] = 6; - return 1; - } else { - return 0; - } -} - -bool32 sub_08077EFC(ItemBehavior* arg0) { - return sub_08077F24(arg0, (u16)gPlayerState.field_0x90.HALF.LO); -} - -bool32 sub_08077F10(ItemBehavior* arg0) { - return sub_08077F24(arg0, (u16)gPlayerState.field_0x90.HALF.HI); -} - -ASM_FUNC("asm/non_matching/sub_08077F24.inc", bool32 sub_08077F24(ItemBehavior* beh, u32 arg1)) - -void sub_08077F50(ItemBehavior* beh, u32 arg1) { - sub_08079184(); - sub_08077E78(beh, arg1); -} - -u32 sub_08077F64(ItemBehavior* arg0, u32 unk) { - u32 temp; - if (gPlayerState.heldObject == 0) { - sub_08077F50(arg0, unk); - temp = 0; - } else { - temp = 1; - } - return temp; -} - -void sub_08077F84(void) { - Entity* obj; - - if (((gPlayerEntity.collisionLayer & 2) == 0) && - GetTileTypeByPos(gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI - 0xc, 2) - 0x343U < 4) { - sub_0807AA80(&gPlayerEntity); - gPlayerState.jumpStatus |= 8; - obj = CreateObject(OBJECT_44, 0, 0); - if (obj != NULL) { - obj->x = gPlayerEntity.x; - obj->y.HALF.HI = gPlayerEntity.y.HALF.HI - 0xc; - gPlayerEntity.y.HALF.HI -= 0xc; - } - } -} diff --git a/src/code_0808091C.c b/src/code_0808091C.c index 4e9d7561..ab3ceb11 100644 --- a/src/code_0808091C.c +++ b/src/code_0808091C.c @@ -2,6 +2,7 @@ #include "entity.h" #include "structures.h" #include "functions.h" +#include "overworld.h" #include "room.h" extern void sub_08080BC4(void); diff --git a/src/collision.c b/src/collision.c index 9d3380e4..cadaf421 100644 --- a/src/collision.c +++ b/src/collision.c @@ -1,8 +1,8 @@ #include "global.h" +#include "asm.h" #include "entity.h" #include "player.h" #include "save.h" -#include "random.h" #include "utils.h" #include "functions.h" #include "enemy.h" diff --git a/src/coord.c b/src/coord.c index 3fe17296..7bad978a 100644 --- a/src/coord.c +++ b/src/coord.c @@ -1,3 +1,4 @@ +#include "asm.h" #include "area.h" #include "player.h" #include "global.h" diff --git a/src/debugScreen.c b/src/debugScreen.c index dcd22601..c3ddf710 100644 --- a/src/debugScreen.c +++ b/src/debugScreen.c @@ -1,4 +1,5 @@ #include "global.h" +#include "audio.h" #include "utils.h" #include "functions.h" #include "main.h" diff --git a/src/enemy/acroBandits.c b/src/enemy/acroBandits.c index c4784ee0..e43a8f39 100644 --- a/src/enemy/acroBandits.c +++ b/src/enemy/acroBandits.c @@ -1,7 +1,4 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "random.h" #include "functions.h" extern u32 sub_080002D4(s32, s32, u32); diff --git a/src/enemy/beetle.c b/src/enemy/beetle.c index b2b3e5ed..997f4faf 100644 --- a/src/enemy/beetle.c +++ b/src/enemy/beetle.c @@ -1,7 +1,4 @@ -#include "entity.h" #include "enemy.h" -#include "player.h" -#include "random.h" #include "functions.h" extern u32 PlayerInRange(Entity*, u32, u32); diff --git a/src/enemy/bladeTrap.c b/src/enemy/bladeTrap.c index 66729fce..70fd869c 100644 --- a/src/enemy/bladeTrap.c +++ b/src/enemy/bladeTrap.c @@ -1,4 +1,5 @@ #include "global.h" +#include "audio.h" #include "entity.h" #include "room.h" #include "functions.h" diff --git a/src/enemy/bobomb.c b/src/enemy/bobomb.c index b9976950..9a68209d 100644 --- a/src/enemy/bobomb.c +++ b/src/enemy/bobomb.c @@ -1,5 +1,6 @@ +#include "asm.h" +#include "audio.h" #include "enemy.h" -#include "random.h" #include "createObject.h" #include "object.h" #include "functions.h" diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c index 187670e9..71e0540d 100644 --- a/src/enemy/bombPeahat.c +++ b/src/enemy/bombPeahat.c @@ -1,8 +1,8 @@ +#include "asm.h" #include "global.h" #include "entity.h" #include "enemy.h" #include "player.h" -#include "random.h" #include "object.h" #include "functions.h" diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index 6e75d855..e53d46e5 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -1,9 +1,10 @@ +#include "asm.h" #include "enemy.h" +#include "audio.h" #include "entity.h" #include "flags.h" #include "textbox.h" #include "save.h" -#include "random.h" #include "npc.h" #include "functions.h" #include "effects.h" diff --git a/src/enemy/chuchu.c b/src/enemy/chuchu.c index c6c83615..f14b400c 100644 --- a/src/enemy/chuchu.c +++ b/src/enemy/chuchu.c @@ -1,7 +1,8 @@ +#include "asm.h" #include "enemy.h" #include "entity.h" -#include "random.h" #include "functions.h" +#include "audio.h" extern s32 sub_080012DC(Entity*); extern void sub_08001318(Entity*); diff --git a/src/enemy/cuccoChickAggr.c b/src/enemy/cuccoChickAggr.c index d3295203..abb416f2 100644 --- a/src/enemy/cuccoChickAggr.c +++ b/src/enemy/cuccoChickAggr.c @@ -1,6 +1,4 @@ #include "enemy.h" -#include "entity.h" -#include "random.h" #include "functions.h" extern Entity* sub_08049DF4(u32); diff --git a/src/enemy/darkNut.c b/src/enemy/darkNut.c index e9061ad0..ed6d602b 100644 --- a/src/enemy/darkNut.c +++ b/src/enemy/darkNut.c @@ -1,6 +1,4 @@ -#include "entity.h" #include "enemy.h" -#include "random.h" #include "functions.h" typedef struct { diff --git a/src/enemy/doorMimic.c b/src/enemy/doorMimic.c index 713ace16..ab1531fb 100644 --- a/src/enemy/doorMimic.c +++ b/src/enemy/doorMimic.c @@ -1,3 +1,4 @@ +#include "audio.h" #include "enemy.h" #include "entity.h" #include "functions.h" diff --git a/src/enemy/fallingBoulder.c b/src/enemy/fallingBoulder.c index 6084d868..7e4ddde1 100644 --- a/src/enemy/fallingBoulder.c +++ b/src/enemy/fallingBoulder.c @@ -1,7 +1,5 @@ #include "enemy.h" -#include "random.h" #include "functions.h" -#include "effects.h" void sub_0802C4B0(Entity*); void sub_0802C62C(Entity*); diff --git a/src/enemy/fireballGuy.c b/src/enemy/fireballGuy.c index c6e0123e..afcc4ac7 100644 --- a/src/enemy/fireballGuy.c +++ b/src/enemy/fireballGuy.c @@ -1,9 +1,5 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "random.h" #include "functions.h" -#include "effects.h" typedef struct { s8 h, v; diff --git a/src/enemy/gibdo.c b/src/enemy/gibdo.c index 59e03862..912f0f61 100644 --- a/src/enemy/gibdo.c +++ b/src/enemy/gibdo.c @@ -1,8 +1,5 @@ #include "global.h" -#include "entity.h" -#include "sprite.h" #include "enemy.h" -#include "random.h" #include "object.h" #include "functions.h" // Gibudo diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c index 855a66dc..40497928 100644 --- a/src/enemy/gyorgMale.c +++ b/src/enemy/gyorgMale.c @@ -1,10 +1,7 @@ #include "global.h" #include "enemy.h" #include "player.h" -#include "room.h" -#include "coord.h" #include "fileScreen.h" -#include "random.h" #include "functions.h" #include "effects.h" diff --git a/src/enemy/helmasaur.c b/src/enemy/helmasaur.c index 0bb1c1c4..594c8800 100644 --- a/src/enemy/helmasaur.c +++ b/src/enemy/helmasaur.c @@ -1,5 +1,4 @@ #include "enemy.h" -#include "random.h" #include "object.h" #include "functions.h" diff --git a/src/enemy/keaton.c b/src/enemy/keaton.c index b5bbef3f..6c551e9c 100644 --- a/src/enemy/keaton.c +++ b/src/enemy/keaton.c @@ -1,9 +1,5 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "random.h" #include "functions.h" -#include "effects.h" extern Entity* gUnk_020000B0; diff --git a/src/enemy/keese.c b/src/enemy/keese.c index 92d3ff86..1b3c4e11 100644 --- a/src/enemy/keese.c +++ b/src/enemy/keese.c @@ -1,8 +1,4 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "player.h" -#include "random.h" #include "functions.h" extern void sub_08001328(Entity*); diff --git a/src/enemy/lakitu.c b/src/enemy/lakitu.c index 8e4ae08e..85d80ee3 100644 --- a/src/enemy/lakitu.c +++ b/src/enemy/lakitu.c @@ -1,11 +1,6 @@ #include "global.h" -#include "entity.h" #include "enemy.h" #include "functions.h" -#include "coord.h" -#include "random.h" -#include "player.h" -#include "effects.h" extern void (*const LakituActionFuncs[])(Entity*); diff --git a/src/enemy/lakituCloud.c b/src/enemy/lakituCloud.c index f847b0bd..f391c5ee 100644 --- a/src/enemy/lakituCloud.c +++ b/src/enemy/lakituCloud.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "entity.h" #include "player.h" #include "functions.h" diff --git a/src/enemy/leever.c b/src/enemy/leever.c index d5b8e3de..e7624432 100644 --- a/src/enemy/leever.c +++ b/src/enemy/leever.c @@ -1,9 +1,5 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "random.h" #include "functions.h" -#include "coord.h" extern u32 sub_080002D4(s32, s32, u32); extern u32 sub_080002BC(s32, s32, u32); diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c index 42e8d88f..3bba9493 100644 --- a/src/enemy/likeLike.c +++ b/src/enemy/likeLike.c @@ -1,8 +1,6 @@ #include "enemy.h" -#include "entity.h" #include "textbox.h" #include "save.h" -#include "random.h" #include "createObject.h" #include "functions.h" diff --git a/src/enemy/madderpillar.c b/src/enemy/madderpillar.c index 45ac8b27..11742547 100644 --- a/src/enemy/madderpillar.c +++ b/src/enemy/madderpillar.c @@ -1,8 +1,5 @@ #include "enemy.h" -#include "entity.h" -#include "random.h" #include "functions.h" -#include "effects.h" extern u8 gEntCount; extern Hitbox gUnk_080FD298; diff --git a/src/enemy/mazaalBracelet.c b/src/enemy/mazaalBracelet.c index eb32b41b..d0db11ed 100644 --- a/src/enemy/mazaalBracelet.c +++ b/src/enemy/mazaalBracelet.c @@ -1,10 +1,6 @@ -#include "global.h" #include "enemy.h" -#include "audio.h" -#include "random.h" #include "object.h" #include "functions.h" -#include "effects.h" void sub_0803B538(Entity*); u32 sub_0803B4E4(Entity*); diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c index b282e776..a96e4f84 100644 --- a/src/enemy/mazaalHead.c +++ b/src/enemy/mazaalHead.c @@ -1,12 +1,7 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "screen.h" -#include "audio.h" -#include "random.h" #include "object.h" #include "functions.h" -#include "effects.h" +#include "screen.h" extern void UnloadOBJPalette(Entity*); diff --git a/src/enemy/mazaalMacro.c b/src/enemy/mazaalMacro.c index 89eed0d1..ed28d6c8 100644 --- a/src/enemy/mazaalMacro.c +++ b/src/enemy/mazaalMacro.c @@ -1,11 +1,7 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "random.h" #include "script.h" #include "structures.h" #include "functions.h" -#include "effects.h" extern void sub_0807B600(u32); diff --git a/src/enemy/miniFireballGuy.c b/src/enemy/miniFireballGuy.c index 7f538b1b..cca05ed4 100644 --- a/src/enemy/miniFireballGuy.c +++ b/src/enemy/miniFireballGuy.c @@ -1,7 +1,4 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "random.h" #include "functions.h" extern void sub_08045678(Entity*); diff --git a/src/enemy/miniSlime.c b/src/enemy/miniSlime.c index 521b52a8..488cb419 100644 --- a/src/enemy/miniSlime.c +++ b/src/enemy/miniSlime.c @@ -1,7 +1,4 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "random.h" #include "functions.h" void sub_08045374(Entity*); diff --git a/src/enemy/moldorm.c b/src/enemy/moldorm.c index 25ae0111..767254f9 100644 --- a/src/enemy/moldorm.c +++ b/src/enemy/moldorm.c @@ -1,6 +1,4 @@ #include "enemy.h" -#include "entity.h" -#include "random.h" #include "functions.h" void sub_08022EAC(Entity*); diff --git a/src/enemy/moldworm.c b/src/enemy/moldworm.c index 7b700322..9ffd49fa 100644 --- a/src/enemy/moldworm.c +++ b/src/enemy/moldworm.c @@ -1,8 +1,5 @@ #include "enemy.h" -#include "entity.h" -#include "random.h" #include "functions.h" -#include "effects.h" extern void sub_0800449C(Entity*, u32); extern bool32 sub_08023A38(u32); diff --git a/src/enemy/octorok.c b/src/enemy/octorok.c index 9ca40e32..4c142bdc 100644 --- a/src/enemy/octorok.c +++ b/src/enemy/octorok.c @@ -1,7 +1,4 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "random.h" #include "functions.h" extern Entity* sub_08049DF4(u32); diff --git a/src/enemy/octorokBoss.c b/src/enemy/octorokBoss.c index 7544b241..23dca6d4 100644 --- a/src/enemy/octorokBoss.c +++ b/src/enemy/octorokBoss.c @@ -1,14 +1,9 @@ -#include "global.h" -#include "audio.h" #include "enemy.h" #include "functions.h" #include "object.h" #include "projectile.h" -#include "random.h" -#include "room.h" #include "structures.h" -#include "structures.h" -#include "utils.h" +#include "overworld.h" extern void sub_08078AC0(u32, u32, u32); extern u32 GetRandomByWeight(const u8*); diff --git a/src/enemy/peahat.c b/src/enemy/peahat.c index de45a52a..5d8ba2d5 100644 --- a/src/enemy/peahat.c +++ b/src/enemy/peahat.c @@ -1,6 +1,4 @@ -#include "entity.h" #include "enemy.h" -#include "random.h" #include "functions.h" extern void (*const gPeahatFunctions[])(Entity*); diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index 472d982d..8694f4af 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -1,8 +1,6 @@ #include "enemy.h" -#include "entity.h" -#include "random.h" #include "createObject.h" -#include "game.h" +#include "overworld.h" #include "functions.h" #include "save.h" diff --git a/src/enemy/puffstool.c b/src/enemy/puffstool.c index 207934a9..6240bcd2 100644 --- a/src/enemy/puffstool.c +++ b/src/enemy/puffstool.c @@ -1,9 +1,6 @@ #include "enemy.h" -#include "entity.h" -#include "random.h" #include "object.h" #include "functions.h" -#include "effects.h" extern u32 sub_080002E0(u32, u32); extern u32 sub_080002C8(u16, u8); diff --git a/src/enemy/rockChuchu.c b/src/enemy/rockChuchu.c index 95e0a9c1..dd3987cd 100644 --- a/src/enemy/rockChuchu.c +++ b/src/enemy/rockChuchu.c @@ -1,8 +1,5 @@ #include "enemy.h" -#include "entity.h" -#include "random.h" #include "functions.h" -#include "effects.h" extern void sub_0804A4E4(Entity*, Entity*); diff --git a/src/enemy/rollobite.c b/src/enemy/rollobite.c index 9815510f..5fb77dab 100644 --- a/src/enemy/rollobite.c +++ b/src/enemy/rollobite.c @@ -1,6 +1,4 @@ -#include "entity.h" #include "enemy.h" -#include "random.h" #include "functions.h" extern void (*const gRollobiteFunctions[])(Entity*); diff --git a/src/enemy/rope.c b/src/enemy/rope.c index 2c61fb03..d001888d 100644 --- a/src/enemy/rope.c +++ b/src/enemy/rope.c @@ -1,8 +1,4 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "random.h" -#include "audio.h" #include "functions.h" extern void (*const gRope[6])(Entity*); diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c index 05334d65..62853353 100644 --- a/src/enemy/rupeeLike.c +++ b/src/enemy/rupeeLike.c @@ -1,4 +1,6 @@ #include "global.h" +#include "asm.h" +#include "audio.h" #include "entity.h" #include "enemy.h" #include "npc.h" diff --git a/src/enemy/sensorBladeTrap.c b/src/enemy/sensorBladeTrap.c index 0aae18f1..40ad4f03 100644 --- a/src/enemy/sensorBladeTrap.c +++ b/src/enemy/sensorBladeTrap.c @@ -1,4 +1,5 @@ #include "enemy.h" +#include "audio.h" #include "functions.h" extern u32 sub_0804A024(Entity*, u32, u32); diff --git a/src/enemy/slime.c b/src/enemy/slime.c index ab7666f8..86069f50 100644 --- a/src/enemy/slime.c +++ b/src/enemy/slime.c @@ -1,10 +1,5 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "room.h" -#include "random.h" #include "functions.h" -#include "effects.h" typedef struct { s8 h, v; diff --git a/src/enemy/sluggula.c b/src/enemy/sluggula.c index d6361507..5d307fc4 100644 --- a/src/enemy/sluggula.c +++ b/src/enemy/sluggula.c @@ -1,6 +1,4 @@ #include "enemy.h" -#include "entity.h" -#include "random.h" #include "functions.h" extern s32 sub_080012DC(Entity*); diff --git a/src/enemy/smallPesto.c b/src/enemy/smallPesto.c index 3be1f047..b8fdc5db 100644 --- a/src/enemy/smallPesto.c +++ b/src/enemy/smallPesto.c @@ -1,8 +1,4 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "coord.h" -#include "random.h" #include "functions.h" extern void sub_080317F8(Entity*); diff --git a/src/enemy/spearMoblin.c b/src/enemy/spearMoblin.c index fa90d4f8..6e35d52a 100644 --- a/src/enemy/spearMoblin.c +++ b/src/enemy/spearMoblin.c @@ -1,8 +1,5 @@ #include "enemy.h" -#include "entity.h" -#include "random.h" #include "functions.h" -#include "effects.h" extern bool32 sub_0806FC80(Entity*, Entity*, u32); extern Entity* sub_08049DF4(u32); diff --git a/src/enemy/spikedBeetle.c b/src/enemy/spikedBeetle.c index 89d9e031..903908c4 100644 --- a/src/enemy/spikedBeetle.c +++ b/src/enemy/spikedBeetle.c @@ -1,6 +1,4 @@ #include "enemy.h" -#include "entity.h" -#include "random.h" #include "functions.h" extern u32 sub_0804A024(Entity*, u32, u32); diff --git a/src/enemy/spinyChuchu.c b/src/enemy/spinyChuchu.c index 887a433d..69664d39 100644 --- a/src/enemy/spinyChuchu.c +++ b/src/enemy/spinyChuchu.c @@ -1,7 +1,4 @@ #include "enemy.h" -#include "entity.h" -#include "random.h" -#include "audio.h" #include "functions.h" extern void sub_08001318(Entity*); diff --git a/src/enemy/tektite.c b/src/enemy/tektite.c index a4f78704..ac123367 100644 --- a/src/enemy/tektite.c +++ b/src/enemy/tektite.c @@ -1,7 +1,4 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "random.h" #include "functions.h" extern void (*const gUnk_080CDED0[])(Entity*); diff --git a/src/enemy/tektiteGolden.c b/src/enemy/tektiteGolden.c index 12287902..ba3b5d58 100644 --- a/src/enemy/tektiteGolden.c +++ b/src/enemy/tektiteGolden.c @@ -1,8 +1,4 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "flags.h" -#include "random.h" #include "functions.h" extern void sub_08038168(Entity*); diff --git a/src/enemy/vaatiArm.c b/src/enemy/vaatiArm.c index 139b1fe0..8a5dd737 100644 --- a/src/enemy/vaatiArm.c +++ b/src/enemy/vaatiArm.c @@ -1,12 +1,6 @@ -#include "global.h" #include "enemy.h" -#include "entity.h" -#include "audio.h" #include "object.h" -#include "random.h" -#include "utils.h" #include "functions.h" -#include "effects.h" extern void DoExitTransition(ScreenTransitionData*); diff --git a/src/enemy/vaatiBall.c b/src/enemy/vaatiBall.c index 778af1a7..f6a4356f 100644 --- a/src/enemy/vaatiBall.c +++ b/src/enemy/vaatiBall.c @@ -1,4 +1,5 @@ #include "entity.h" +#include "enemy.h" #include "player.h" #include "screen.h" #include "createObject.h" diff --git a/src/enemy/vaatiEyesMacro.c b/src/enemy/vaatiEyesMacro.c index 5bc955dc..be77a617 100644 --- a/src/enemy/vaatiEyesMacro.c +++ b/src/enemy/vaatiEyesMacro.c @@ -1,7 +1,4 @@ -#include "global.h" #include "enemy.h" -#include "audio.h" -#include "random.h" #include "functions.h" extern u32 sub_080002E0(u32, u32); diff --git a/src/enemy/vaatiProjectile.c b/src/enemy/vaatiProjectile.c index c8c85e44..2efae6f5 100644 --- a/src/enemy/vaatiProjectile.c +++ b/src/enemy/vaatiProjectile.c @@ -1,6 +1,4 @@ -#include "global.h" #include "enemy.h" -#include "random.h" #include "functions.h" extern bool32 PlayerInRange(Entity*, u32, u32); diff --git a/src/enemy/vaatiRebornEnemy.c b/src/enemy/vaatiRebornEnemy.c index d1a2e4c8..c8f97752 100644 --- a/src/enemy/vaatiRebornEnemy.c +++ b/src/enemy/vaatiRebornEnemy.c @@ -1,12 +1,6 @@ -#include "global.h" #include "enemy.h" -#include "coord.h" -#include "flags.h" -#include "random.h" -#include "audio.h" #include "area.h" #include "functions.h" -#include "effects.h" extern void sub_080AEFB4(Entity*); extern u8 gEntCount; diff --git a/src/enemy/vaatiTransfigured.c b/src/enemy/vaatiTransfigured.c index c00649a5..232d95a5 100644 --- a/src/enemy/vaatiTransfigured.c +++ b/src/enemy/vaatiTransfigured.c @@ -1,11 +1,6 @@ -#include "entity.h" #include "enemy.h" #include "object.h" -#include "random.h" -#include "flags.h" -#include "audio.h" #include "functions.h" -#include "effects.h" void sub_080409B0(Entity*); void sub_080408EC(Entity*); diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index 21d38958..a8843ae8 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -1,16 +1,10 @@ -#include "entity.h" #include "enemy.h" -#include "audio.h" -#include "room.h" -#include "random.h" #include "object.h" #include "textbox.h" -#include "flags.h" -#include "utils.h" #include "structures.h" #include "functions.h" #include "save.h" -#include "effects.h" +#include "screen.h" extern u8 gEntCount; diff --git a/src/enemy/vaatiWrathEye.c b/src/enemy/vaatiWrathEye.c index d476ca6c..d8590edc 100644 --- a/src/enemy/vaatiWrathEye.c +++ b/src/enemy/vaatiWrathEye.c @@ -1,8 +1,6 @@ -#include "entity.h" -#include "audio.h" +#include "enemy.h" #include "structures.h" #include "functions.h" -#include "effects.h" void sub_080485D8(Entity*); void sub_080485FC(Entity*); diff --git a/src/enemy/wallMaster.c b/src/enemy/wallMaster.c index a0d612f7..e548e329 100644 --- a/src/enemy/wallMaster.c +++ b/src/enemy/wallMaster.c @@ -1,7 +1,5 @@ #include "enemy.h" -#include "entity.h" #include "area.h" -#include "random.h" #include "functions.h" extern void sub_08001328(Entity*); diff --git a/src/enemy/wallMaster2.c b/src/enemy/wallMaster2.c index 03d35e80..73deb8da 100644 --- a/src/enemy/wallMaster2.c +++ b/src/enemy/wallMaster2.c @@ -1,6 +1,5 @@ #include "enemy.h" #include "area.h" -#include "random.h" #include "functions.h" extern void sub_08001328(Entity*); diff --git a/src/enemy/waterDrop.c b/src/enemy/waterDrop.c index 96ff44c2..32390db3 100644 --- a/src/enemy/waterDrop.c +++ b/src/enemy/waterDrop.c @@ -1,7 +1,5 @@ #include "enemy.h" -#include "entity.h" #include "screen.h" -#include "random.h" #include "object.h" #include "structures.h" #include "functions.h" diff --git a/src/enemy/wisp.c b/src/enemy/wisp.c index beb1ec43..b2c00736 100644 --- a/src/enemy/wisp.c +++ b/src/enemy/wisp.c @@ -1,12 +1,7 @@ -#include "global.h" -#include "entity.h" #include "enemy.h" -#include "player.h" #include "save.h" -#include "random.h" #include "createObject.h" #include "functions.h" -#include "effects.h" extern void (*const gUnk_080CEB74[])(Entity*); extern void (*const gUnk_080CEB8C[])(Entity*); diff --git a/src/enemyUtils.c b/src/enemyUtils.c index 111ed63f..6d8acd97 100644 --- a/src/enemyUtils.c +++ b/src/enemyUtils.c @@ -17,7 +17,7 @@ const EnemyDefinition* GetEnemyDefinition(Entity* entity) { } bool32 EnemyInit(Entity* this) { - if ((this->flags & 1) == 0) { + if ((this->flags & ENT_DID_INIT) == 0) { const EnemyDefinition* definition = GetEnemyDefinition(this); if (LoadEnemySprite(this, definition) == FALSE) { return FALSE; diff --git a/src/entity.c b/src/entity.c index c0d5b62d..85979ca8 100644 --- a/src/entity.c +++ b/src/entity.c @@ -6,6 +6,7 @@ #include "room.h" #include "script.h" #include "textbox.h" +#include "npc.h" extern u8 gUnk_081091F8[]; extern u8 gUnk_081091EE[]; @@ -13,7 +14,6 @@ extern u8 gUpdateVisibleTiles; extern Manager gUnk_02033290; void sub_0805ED30(void); void ClearHitboxList(void); -void sub_0806F0A4(void); void sub_0805EE88(void); void ClearAllDeletedEntities(void); void DeleteAllEntities(void); @@ -277,7 +277,7 @@ void DeleteThisEntity(void) { f(); } -void DeleteManager(Manager*); +void DeleteManager(void*); typedef void (*Deleter)(void*); @@ -378,13 +378,14 @@ Manager* GetEmptyManager(void) { extern u8 gManagerCount; -void DeleteManager(Manager* ent) { - if (!ent->next) +void DeleteManager(void* ent) { + Manager* manager = (Manager*)ent; + if (!manager->next) return; - ReleaseTransitionManager(ent); - UnlinkEntity(ent); - MemClear(ent, sizeof(Temp)); + ReleaseTransitionManager(manager); + UnlinkEntity(manager); + MemClear(manager, sizeof(Temp)); gManagerCount--; } diff --git a/src/fade.c b/src/fade.c index defbe187..2d107df7 100644 --- a/src/fade.c +++ b/src/fade.c @@ -2,6 +2,7 @@ #include "functions.h" #include "screen.h" #include "utils.h" +#include "fade.h" typedef struct { u8 field_0x0; @@ -48,18 +49,18 @@ void FadeVBlank(void) { } } -void InitFade() { +void InitFade(void) { MemClear(&gFadeControl, sizeof(gFadeControl)); MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0)); gFadeControl.mask = 0xffffffff; } -void sub_08050008() { +void sub_08050008(void) { MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0)); gFadeControl.mask = 0xFFFFFFFF; } -void sub_08050024() { +static void sub_08050024(void) { sub_0801E104(); DoFade(5, 256); } @@ -72,9 +73,9 @@ void sub_08050038(u32 arg0) { } } -void DoFade(u32 fadeType, u32 fadeSpeed) { - gFadeControl.fadeSpeed = fadeSpeed; - gFadeControl.fadeType = fadeType; +void DoFade(u32 type, u32 speed) { + gFadeControl.fadeSpeed = speed; + gFadeControl.fadeType = type; gFadeControl.active = 1; gFadeControl.fadeDuration = 0x100; gFadeControl.field_0xe = 0; @@ -83,16 +84,16 @@ void DoFade(u32 fadeType, u32 fadeSpeed) { } else { gFadeControl.field_0x2 = 0; } - if (fadeType & 8) { + if (type & 8) { gUnk_03000000.spritesOffset = 1; gScreen.bg1.control |= BGCNT_MOSAIC; gScreen.bg2.control |= BGCNT_MOSAIC; gScreen.bg3.control |= BGCNT_MOSAIC; } - if (fadeType & 0x10) { + if (type & 0x10) { sub_0801E1B8(gFadeControl.field_0x16, gFadeControl.field_0x18); sub_0801E1EC(gFadeControl.field_0x12, gFadeControl.field_0x14, gFadeControl.field_0x10); - if ((fadeType & 1) == 0) { + if ((type & 1) == 0) { gFadeControl.fadeType &= ~4; sub_08050008(); gUsedPalettes = 0xffffffff; diff --git a/src/fileScreen.c b/src/fileScreen.c index 8820f24f..50f0a4bb 100644 --- a/src/fileScreen.c +++ b/src/fileScreen.c @@ -4,7 +4,6 @@ #include "utils.h" #include "screen.h" #include "menu.h" -#include "random.h" #include "textbox.h" #include "object.h" #include "functions.h" diff --git a/src/item/itemPegasusBoots.c b/src/item/itemPegasusBoots.c index e66f8240..e2d9a268 100644 --- a/src/item/itemPegasusBoots.c +++ b/src/item/itemPegasusBoots.c @@ -1,6 +1,6 @@ +#include "asm.h" #include "item.h" #include "audio.h" -#include "random.h" #include "functions.h" #include "effects.h" diff --git a/src/main.c b/src/main.c index 6a883794..7cd2f92b 100644 --- a/src/main.c +++ b/src/main.c @@ -1,14 +1,15 @@ #include "audio.h" -#include "global.h" +#include "asm.h" #include "functions.h" #include "structures.h" #include "main.h" #include "screen.h" -#include "random.h" #include "utils.h" #include "save.h" #include "textbox.h" -#include "arm_proxy.h" +#include "interrupts.h" + +extern u32 gRand; extern void HandleIntroScreen(void); extern void HandleChooseFileScreen(void); @@ -20,6 +21,7 @@ extern void HandleDebugTextScreen(void); static void InitOverlays(void); static bool32 SoftResetKeysPressed(void); +static u32 CheckHeaderValid(void); void (*const sScreenHandlers[])(void) = { [SCREEN_INTRO] = HandleIntroScreen, @@ -211,7 +213,7 @@ NONMATCH("asm/non_matching/sub_080560B8.inc", static void sub_080560B8(void)) { } END_NONMATCH -u32 CheckHeaderValid(void) { +static u32 CheckHeaderValid(void) { if ((gSaveHeader->signature != SIGNATURE) || (gSaveHeader->saveFileId >= NUM_SAVE_SLOTS) || (gSaveHeader->messageSpeed >= MAX_MSG_SPEED) || (gSaveHeader->brightnessPref >= MAX_BRIGHTNESS) #ifdef EU diff --git a/src/manager/manager15.c b/src/manager/manager15.c index 867a9429..15f336c4 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -452,7 +452,6 @@ void sub_0805A9CC(Manager15* this) { extern struct { u8 unk_00[0x20]; } gUnk_085A97A0[]; extern u16 gUnk_081085B8[]; -extern void LoadPalettes(const u8*, u32, u32); void sub_0805AA58(Manager15* this) { if (--this->manager.unk_0e == 0) { diff --git a/src/manager/manager16.c b/src/manager/manager16.c index 23292b39..03450bad 100644 --- a/src/manager/manager16.c +++ b/src/manager/manager16.c @@ -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", u32 sub_0805ACC0(Entity* ent)) diff --git a/src/manager/manager1C.c b/src/manager/manager1C.c index cadaec86..4ff51e27 100644 --- a/src/manager/manager1C.c +++ b/src/manager/manager1C.c @@ -1,5 +1,5 @@ #include "manager.h" -#include "random.h" +#include "asm.h" #include "room.h" #include "enemy.h" diff --git a/src/manager/manager23.c b/src/manager/manager23.c index 43f0c688..494018a4 100644 --- a/src/manager/manager23.c +++ b/src/manager/manager23.c @@ -4,6 +4,7 @@ #include "functions.h" #include "flags.h" #include "object.h" +#include "overworld.h" extern void (*const gUnk_08108CCC[])(Manager*); diff --git a/src/manager/manager24.c b/src/manager/manager24.c index 141e1a01..7b3f2d19 100644 --- a/src/manager/manager24.c +++ b/src/manager/manager24.c @@ -2,7 +2,7 @@ #include "functions.h" #include "flags.h" #include "audio.h" -#include "game.h" +#include "overworld.h" #include "object.h" #include "area.h" diff --git a/src/manager/manager28.c b/src/manager/manager28.c index 94ad456a..4d4155c7 100644 --- a/src/manager/manager28.c +++ b/src/manager/manager28.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "manager.h" #include "entity.h" #include "room.h" diff --git a/src/manager/manager3.c b/src/manager/manager3.c index b71d8a51..e485f8b0 100644 --- a/src/manager/manager3.c +++ b/src/manager/manager3.c @@ -1,10 +1,10 @@ #include "global.h" +#include "asm.h" #include "manager.h" #include "flags.h" #include "area.h" #include "room.h" #include "player.h" -#include "random.h" #include "audio.h" #include "object.h" #include "functions.h" diff --git a/src/manager/manager31.c b/src/manager/manager31.c index bb7ebdde..1cc7beff 100644 --- a/src/manager/manager31.c +++ b/src/manager/manager31.c @@ -1,7 +1,7 @@ #include "manager.h" #include "flags.h" -#include "random.h" +#include "asm.h" #include "object.h" #include "room.h" diff --git a/src/manager/manager32.c b/src/manager/manager32.c index 606f07ea..9cb61068 100644 --- a/src/manager/manager32.c +++ b/src/manager/manager32.c @@ -5,7 +5,7 @@ #include "functions.h" #include "area.h" #include "utils.h" -#include "gba/types.h" +#include "overworld.h" typedef struct { Manager manager; @@ -18,8 +18,6 @@ extern void (*const gUnk_08108D7C[])(Manager32*); void sub_0805D9D8(Manager32*); void sub_0805DA08(u32, u32, u32); -extern void RoomExitCallback(); - extern u8 gUnk_08108D74[]; extern struct BgAffineDstData gUnk_02017AA0[]; diff --git a/src/manager/manager37.c b/src/manager/manager37.c index 937e5b4b..0258dee6 100644 --- a/src/manager/manager37.c +++ b/src/manager/manager37.c @@ -8,6 +8,7 @@ #include "object.h" #include "area.h" #include "enemy.h" +#include "screen.h" extern ScreenTransitionData gUnk_0813AC34; diff --git a/src/manager/manager39.c b/src/manager/manager39.c index 65355f84..96787a29 100644 --- a/src/manager/manager39.c +++ b/src/manager/manager39.c @@ -4,7 +4,7 @@ #include "area.h" #include "textbox.h" #include "utils.h" -#include "game.h" +#include "overworld.h" #include "functions.h" typedef struct { diff --git a/src/npc.c b/src/npc.c index ba3c0ada..4f48e34f 100644 --- a/src/npc.c +++ b/src/npc.c @@ -137,7 +137,7 @@ void (*const gNPCFunctions[][3])(Entity* ent) = { //clang-format on const u8 npc_unk[] = { 0x04, 0x05, 0x06, 0x06 }; -extern u8 gUnk_020342F8; +extern u32 gUnk_020342F8; typedef struct { u16 unk0; u16 unk1; @@ -147,7 +147,6 @@ typedef struct { extern NPCStruct gUnk_02031EC0[100]; void InitNPC(Entity*); -u32 ReadBit(void*, u32); // regalloc NONMATCH("asm/non_matching/arm_proxy/NPCUpdate.inc", void NPCUpdate(Entity* this)) { diff --git a/src/npc/anju.c b/src/npc/anju.c index b7262d24..29a80185 100644 --- a/src/npc/anju.c +++ b/src/npc/anju.c @@ -3,7 +3,6 @@ #include "player.h" #include "npc.h" #include "script.h" -#include "functions.h" void Anju(Entity* this) { switch (this->action) { diff --git a/src/npc/beedle.c b/src/npc/beedle.c index ada9a485..1e303b7a 100644 --- a/src/npc/beedle.c +++ b/src/npc/beedle.c @@ -1,10 +1,11 @@ #include "global.h" #include "entity.h" -#include "functions.h" #include "textbox.h" #include "player.h" #include "room.h" #include "script.h" +#include "npc.h" +#include "overworld.h" typedef struct { u32 unk_00; diff --git a/src/npc/bigGoron.c b/src/npc/bigGoron.c index e76a26e2..63c25922 100644 --- a/src/npc/bigGoron.c +++ b/src/npc/bigGoron.c @@ -1,16 +1,7 @@ -#include "global.h" -#include "entity.h" -#include "player.h" +#include "npc.h" #include "structures.h" -#include "script.h" -#include "random.h" -#include "audio.h" #include "functions.h" -#include "script.h" -#include "save.h" #include "screen.h" -#include "utils.h" -#include "textbox.h" extern void (*gUnk_081140D4[])(Entity*); diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c index 10080ffe..66d0a733 100644 --- a/src/npc/bladeBrothers.c +++ b/src/npc/bladeBrothers.c @@ -33,8 +33,9 @@ extern u16 gUnk_0811172A[]; extern u32 gUnk_0300402B; extern EntityData gUnk_080F3494; -void BladeBrothers(Entity* this) { +static void sub_08068BEC(Entity* this, u32 unused); +void BladeBrothers(Entity* this) { if ((this->flags & 2) != 0) { gUnk_081115D0[this->action](this); } else { @@ -163,7 +164,7 @@ void sub_08068BD0(Entity* this) { ForceEquipItem(*(u8*)(&this->field_0x68.HALF.HI + 1), 1); } -void sub_08068BEC(Entity* this, u32 unused) { +static void sub_08068BEC(Entity* this, u32 unused) { Entity* target; target = CreateFx(this, FX_WHITE_SPLASH, 0); diff --git a/src/npc/brocco.c b/src/npc/brocco.c index ee03fa3a..0ec333bb 100644 --- a/src/npc/brocco.c +++ b/src/npc/brocco.c @@ -1,5 +1,4 @@ #include "entity.h" -#include "functions.h" #include "textbox.h" #include "save.h" #include "npc.h" diff --git a/src/npc/carlov.c b/src/npc/carlov.c index f095fe1e..dd25013a 100644 --- a/src/npc/carlov.c +++ b/src/npc/carlov.c @@ -1,9 +1,9 @@ #include "global.h" +#include "audio.h" #include "entity.h" #include "room.h" #include "npc.h" #include "script.h" -#include "functions.h" void Carlov(Entity* this) { if (this->action == 0) { diff --git a/src/npc/carpenter.c b/src/npc/carpenter.c index 8663b241..97efd2c1 100644 --- a/src/npc/carpenter.c +++ b/src/npc/carpenter.c @@ -3,7 +3,6 @@ #include "sprite.h" #include "player.h" #include "npc.h" -#include "functions.h" #include "script.h" #include "flags.h" #include "textbox.h" diff --git a/src/npc/castleMaid.c b/src/npc/castleMaid.c index af001b63..bc6eb925 100644 --- a/src/npc/castleMaid.c +++ b/src/npc/castleMaid.c @@ -1,9 +1,10 @@ #include "entity.h" #include "script.h" #include "save.h" -#include "functions.h" #include "flags.h" #include "textbox.h" +#include "npc.h" +#include "manager.h" extern Dialog gUnk_0810F894[]; diff --git a/src/npc/castorWildsStatue.c b/src/npc/castorWildsStatue.c index 489b584a..884a4289 100644 --- a/src/npc/castorWildsStatue.c +++ b/src/npc/castorWildsStatue.c @@ -1,8 +1,10 @@ +#include "audio.h" #include "entity.h" #include "script.h" #include "functions.h" #include "flags.h" #include "effects.h" +#include "npc.h" extern Hitbox gUnk_08110E94; diff --git a/src/npc/cat.c b/src/npc/cat.c index 3fec5ab9..b670b5ab 100644 --- a/src/npc/cat.c +++ b/src/npc/cat.c @@ -3,7 +3,6 @@ #include "functions.h" #include "save.h" #include "player.h" -#include "random.h" #include "textbox.h" #include "npc.h" #include "audio.h" diff --git a/src/npc/clothesRack.c b/src/npc/clothesRack.c index 63d6cc0c..f616eccc 100644 --- a/src/npc/clothesRack.c +++ b/src/npc/clothesRack.c @@ -1,7 +1,4 @@ -#include "global.h" -#include "entity.h" -#include "functions.h" -#include "flags.h" +#include "npc.h" extern void (*gUnk_0811423C[])(Entity*); diff --git a/src/npc/cow.c b/src/npc/cow.c index fa57d88c..295e387a 100644 --- a/src/npc/cow.c +++ b/src/npc/cow.c @@ -2,7 +2,6 @@ #include "audio.h" #include "entity.h" #include "player.h" -#include "random.h" #include "npc.h" #include "functions.h" diff --git a/src/npc/cucco.c b/src/npc/cucco.c index b935dc7b..27f3fc5a 100644 --- a/src/npc/cucco.c +++ b/src/npc/cucco.c @@ -1,8 +1,5 @@ -#include "entity.h" -#include "functions.h" #include "npc.h" -#include "audio.h" -#include "random.h" +#include "functions.h" extern void (*const gUnk_081145B4[])(Entity*); diff --git a/src/npc/cuccoChick.c b/src/npc/cuccoChick.c index bfadc897..11aab009 100644 --- a/src/npc/cuccoChick.c +++ b/src/npc/cuccoChick.c @@ -1,9 +1,5 @@ -#include "entity.h" -#include "textbox.h" #include "npc.h" #include "functions.h" -#include "random.h" -#include "audio.h" extern void (*const gUnk_081145D4[])(Entity*); diff --git a/src/npc/dog.c b/src/npc/dog.c index e749ea7e..97fadf4b 100644 --- a/src/npc/dog.c +++ b/src/npc/dog.c @@ -1,12 +1,7 @@ #include "entity.h" #include "functions.h" -#include "script.h" -#include "flags.h" -#include "random.h" #include "npc.h" -#include "audio.h" #include "save.h" -#include "textbox.h" extern void (*gUnk_08111D88[])(Entity*); void sub_08069FE8(Entity*); diff --git a/src/npc/drLeft.c b/src/npc/drLeft.c index 9a81aceb..bccfb259 100644 --- a/src/npc/drLeft.c +++ b/src/npc/drLeft.c @@ -1,10 +1,5 @@ -#include "entity.h" -#include "script.h" -#include "random.h" +#include "npc.h" #include "functions.h" -#include "save.h" -#include "textbox.h" -#include "flags.h" extern void sub_08078850(Entity*, u32, u8, u32*); extern u32 gUnk_081133B4; diff --git a/src/npc/ezlo.c b/src/npc/ezlo.c index 4f1dcd62..6a3a96da 100644 --- a/src/npc/ezlo.c +++ b/src/npc/ezlo.c @@ -1,9 +1,5 @@ -#include "global.h" -#include "entity.h" +#include "npc.h" #include "script.h" -#include "audio.h" -#include "functions.h" -#include "effects.h" const u8 gUnk_08114134[]; const u8 gUnk_08114144[]; diff --git a/src/npc/farmers.c b/src/npc/farmers.c index d31a7a3a..d3c9d94c 100644 --- a/src/npc/farmers.c +++ b/src/npc/farmers.c @@ -1,11 +1,10 @@ #include "entity.h" #include "script.h" #include "functions.h" +#include "npc.h" extern Dialog gUnk_08113158[]; -extern void sub_0806F188(Entity*); - extern SpriteLoadData gUnk_08113140[]; void sub_0806BC58(Entity* this); diff --git a/src/npc/forestMinish.c b/src/npc/forestMinish.c index a8e04f9c..912549bf 100644 --- a/src/npc/forestMinish.c +++ b/src/npc/forestMinish.c @@ -1,18 +1,9 @@ -#include "global.h" -#include "entity.h" #include "npc.h" -#include "flags.h" -#include "textbox.h" -#include "player.h" -#include "save.h" -#include "script.h" -#include "random.h" #include "createObject.h" #include "structures.h" #include "functions.h" extern void sub_080600F0(Entity*); -extern s32 sub_0806EDD8(Entity*, u32, u32); extern void sub_08060158(Entity*); extern void ModBombs(s32); diff --git a/src/npc/gorman.c b/src/npc/gorman.c index c118eeb5..7dfaf6ca 100644 --- a/src/npc/gorman.c +++ b/src/npc/gorman.c @@ -1,9 +1,5 @@ -#include "entity.h" -#include "script.h" #include "functions.h" -#include "random.h" -#include "flags.h" -#include "textbox.h" +#include "npc.h" extern void (*const gUnk_08111C48[])(Entity*); diff --git a/src/npc/goron.c b/src/npc/goron.c index c7e70d29..d48cda07 100644 --- a/src/npc/goron.c +++ b/src/npc/goron.c @@ -4,6 +4,7 @@ #include "textbox.h" #include "script.h" #include "effects.h" +#include "npc.h" extern void (*gUnk_08111A80[])(Entity*); extern void (*gUnk_08111A8C[])(Entity*); diff --git a/src/npc/goronMerchant.c b/src/npc/goronMerchant.c index 9c1b107c..f4640890 100644 --- a/src/npc/goronMerchant.c +++ b/src/npc/goronMerchant.c @@ -7,6 +7,7 @@ #include "flags.h" #include "script.h" #include "save.h" +#include "npc.h" static u32 GoronMerchant_GetSalePrice(Entity*); diff --git a/src/npc/guard.c b/src/npc/guard.c index aa2d95bd..67c4fa2e 100644 --- a/src/npc/guard.c +++ b/src/npc/guard.c @@ -7,6 +7,7 @@ #include "script.h" #include "structures.h" #include "functions.h" +#include "npc.h" typedef struct { u32 unk; @@ -19,9 +20,7 @@ typedef struct { } struct_08064050; extern void sub_08063D24(Entity*); -extern void sub_0806EE20(Entity*); extern void sub_08064428(Entity*); -extern void sub_0806EE04(Entity*, void*, u32); void sub_08063DC8(Entity*); void sub_08063F20(Entity*); diff --git a/src/npc/kid.c b/src/npc/kid.c index 03ebf3b8..41bebb98 100644 --- a/src/npc/kid.c +++ b/src/npc/kid.c @@ -1,10 +1,7 @@ -#include "entity.h" #include "functions.h" #include "textbox.h" #include "npc.h" #include "script.h" -#include "utils.h" -#include "random.h" #include "save.h" extern void (*const gUnk_0810BE0C[])(Entity*); diff --git a/src/npc/mailbox.c b/src/npc/mailbox.c index 8c7dc813..a4afd083 100644 --- a/src/npc/mailbox.c +++ b/src/npc/mailbox.c @@ -3,6 +3,7 @@ #include "textbox.h" #include "functions.h" #include "effects.h" +#include "npc.h" extern void sub_08063280(); diff --git a/src/npc/melari.c b/src/npc/melari.c index 146ae078..757bc43e 100644 --- a/src/npc/melari.c +++ b/src/npc/melari.c @@ -1,15 +1,7 @@ -#include "global.h" -#include "entity.h" #include "npc.h" -#include "textbox.h" -#include "script.h" -#include "random.h" -#include "audio.h" #include "functions.h" -#include "effects.h" extern void sub_08068780(Entity*); -extern s32 sub_0806EDD8(Entity*, u32, u32); extern void (*const gUnk_08111530[])(Entity*); diff --git a/src/npc/milkCart.c b/src/npc/milkCart.c index 8ce2eb74..7b32235f 100644 --- a/src/npc/milkCart.c +++ b/src/npc/milkCart.c @@ -1,6 +1,7 @@ #include "global.h" #include "entity.h" #include "functions.h" +#include "npc.h" extern void (*gMilkCartBehaviors[2])(Entity*); diff --git a/src/npc/mountainMinish.c b/src/npc/mountainMinish.c index 14c4d6a1..b7c0f08a 100644 --- a/src/npc/mountainMinish.c +++ b/src/npc/mountainMinish.c @@ -3,6 +3,7 @@ #include "functions.h" #include "textbox.h" #include "flags.h" +#include "npc.h" extern SpriteLoadData gUnk_08111358; diff --git a/src/npc/npc23.c b/src/npc/npc23.c index e90d084c..003c5bd9 100644 --- a/src/npc/npc23.c +++ b/src/npc/npc23.c @@ -5,6 +5,7 @@ #include "functions.h" #include "structures.h" #include "textbox.h" +#include "npc.h" extern void (*const gUnk_081104C8[])(Entity*); diff --git a/src/npc/npc26.c b/src/npc/npc26.c index ca0b17a4..81ce55b7 100644 --- a/src/npc/npc26.c +++ b/src/npc/npc26.c @@ -2,6 +2,7 @@ #include "entity.h" #include "functions.h" #include "script.h" +#include "npc.h" static void (*const gUnk_081106D4[])(Entity*); static void (*const gUnk_081106E0[])(Entity*); diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index f4a87161..84d18da1 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -7,6 +7,7 @@ #include "save.h" #include "flags.h" #include "object.h" +#include "npc.h" extern Hitbox gHitbox_2; typedef struct { diff --git a/src/npc/npc4F.c b/src/npc/npc4F.c index 07e05132..0ab80863 100644 --- a/src/npc/npc4F.c +++ b/src/npc/npc4F.c @@ -1,6 +1,4 @@ -#include "global.h" -#include "entity.h" -#include "random.h" +#include "npc.h" void NPC4F(Entity* this) { if (this->action == 0) { diff --git a/src/npc/npc5.c b/src/npc/npc5.c index f6b04a24..a86189ef 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -1,12 +1,6 @@ -#include "global.h" -#include "entity.h" -#include "player.h" -#include "room.h" -#include "coord.h" -#include "random.h" -#include "utils.h" #include "functions.h" #include "textbox.h" +#include "npc.h" extern void (*const gUnk_0810AC1C[])(Entity*); @@ -86,6 +80,7 @@ void sub_08061AFC(Entity*); extern u16* gUnk_0810B660[8]; +// UNUSED zelda follower, probably because it was too resource heavy void NPC5(Entity* this) { gUnk_0810AC1C[this->type](this); } diff --git a/src/npc/npc58.c b/src/npc/npc58.c index b21de320..5cebcb57 100644 --- a/src/npc/npc58.c +++ b/src/npc/npc58.c @@ -1,5 +1,6 @@ #include "entity.h" #include "functions.h" +#include "npc.h" extern void sub_0806FFBC(Entity*, u32, u32, u32); diff --git a/src/npc/npc9.c b/src/npc/npc9.c index 97b32871..0c514fd3 100644 --- a/src/npc/npc9.c +++ b/src/npc/npc9.c @@ -2,6 +2,7 @@ #include "entity.h" #include "textbox.h" #include "functions.h" +#include "npc.h" extern void (*const gUnk_0810C290[])(Entity*); @@ -30,7 +31,7 @@ void sub_08062B14(Entity* this) { void sub_08062B48(Entity* this) { GetNextFrame(this); if (this->frame & 0x80) { - MessageFromTarget(0xa01); + MessageFromTarget(0xa01); // invalid this->action++; } } diff --git a/src/npc/pita.c b/src/npc/pita.c index 3bb6080f..97abf77d 100644 --- a/src/npc/pita.c +++ b/src/npc/pita.c @@ -1,9 +1,5 @@ -#include "entity.h" #include "functions.h" -#include "script.h" -#include "flags.h" -#include "random.h" -#include "textbox.h" +#include "npc.h" extern Hitbox gUnk_0810C428; diff --git a/src/npc/postman.c b/src/npc/postman.c index 0ea13635..3014e4b8 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -1,4 +1,5 @@ #include "global.h" +#include "audio.h" #include "entity.h" #include "functions.h" #include "npc.h" @@ -12,9 +13,7 @@ #include "effects.h" extern void sub_08060528(Entity*); -extern void sub_0806EE04(Entity*, void*, u32); extern void sub_080604DC(Entity*); -extern void sub_0806EE20(Entity*); extern void sub_080606D8(Entity*); extern void sub_080606C0(Entity*); diff --git a/src/npc/rem.c b/src/npc/rem.c index 94356c93..d3ab32d0 100644 --- a/src/npc/rem.c +++ b/src/npc/rem.c @@ -1,11 +1,5 @@ -#include "global.h" -#include "entity.h" -#include "script.h" -#include "audio.h" #include "functions.h" -#include "random.h" -#include "flags.h" -#include "textbox.h" +#include "npc.h" extern void sub_0806A8C8(Entity*); diff --git a/src/npc/simon.c b/src/npc/simon.c index 09f4b40c..3fffc8cc 100644 --- a/src/npc/simon.c +++ b/src/npc/simon.c @@ -6,6 +6,7 @@ #include "script.h" #include "object.h" #include "functions.h" +#include "screen.h" typedef struct { u8 filler[4]; diff --git a/src/npc/sittingPerson.c b/src/npc/sittingPerson.c index 8a9a7e0d..c8c8e084 100644 --- a/src/npc/sittingPerson.c +++ b/src/npc/sittingPerson.c @@ -1,9 +1,4 @@ -#include "entity.h" -#include "script.h" #include "npc.h" -#include "functions.h" -#include "save.h" -#include "random.h" extern void (*gUnk_0810CBD8[])(Entity*); diff --git a/src/npc/smallTownMinish.c b/src/npc/smallTownMinish.c index f34ecd7d..d4e7d1ea 100644 --- a/src/npc/smallTownMinish.c +++ b/src/npc/smallTownMinish.c @@ -3,7 +3,7 @@ #include "player.h" #include "script.h" #include "save.h" -#include "functions.h" +#include "npc.h" extern Hitbox gUnk_081142FC; extern void sub_08078850(Entity*, u32, u32, u32*); diff --git a/src/npc/smith.c b/src/npc/smith.c index 3f187b73..307bd0bd 100644 --- a/src/npc/smith.c +++ b/src/npc/smith.c @@ -1,13 +1,5 @@ -#include "global.h" -#include "entity.h" -#include "textbox.h" -#include "save.h" -#include "script.h" -#include "random.h" #include "npc.h" -#include "audio.h" #include "functions.h" -#include "effects.h" extern void sub_08078850(Entity*, u32, u32, u32*); diff --git a/src/npc/stamp.c b/src/npc/stamp.c index 7c71744e..2b5888a8 100644 --- a/src/npc/stamp.c +++ b/src/npc/stamp.c @@ -4,6 +4,7 @@ #include "functions.h" #include "script.h" #include "effects.h" +#include "npc.h" extern void sub_08062CA4(); diff --git a/src/npc/stockwell.c b/src/npc/stockwell.c index f7ebc594..454b8b2a 100644 --- a/src/npc/stockwell.c +++ b/src/npc/stockwell.c @@ -3,6 +3,7 @@ #include "room.h" #include "textbox.h" #include "functions.h" +#include "npc.h" extern void (*const gUnk_0810FDC8[])(Entity*); diff --git a/src/npc/sturgeon.c b/src/npc/sturgeon.c index 749e0732..c5c28329 100644 --- a/src/npc/sturgeon.c +++ b/src/npc/sturgeon.c @@ -10,7 +10,6 @@ extern u16 gUnk_0810FA54[]; extern SpriteLoadData gUnk_0810FA38; -extern void sub_0806EE04(Entity*, void*, u32); extern u32 gUnk_0810FA5A; void sub_08064CC0(Entity* this); diff --git a/src/npc/syrup.c b/src/npc/syrup.c index 3554d95a..45e44c11 100644 --- a/src/npc/syrup.c +++ b/src/npc/syrup.c @@ -1,10 +1,6 @@ -#include "global.h" -#include "entity.h" #include "npc.h" -#include "script.h" #include "functions.h" #include "object.h" -#include "random.h" extern void (*gUnk_081121D4[])(Entity*); diff --git a/src/npc/talon.c b/src/npc/talon.c index 4629119e..1ed653fd 100644 --- a/src/npc/talon.c +++ b/src/npc/talon.c @@ -1,10 +1,4 @@ -#include "global.h" -#include "entity.h" -#include "textbox.h" -#include "player.h" -#include "script.h" #include "npc.h" -#include "random.h" #include "functions.h" extern void (*gUnk_0810FEC4[])(Entity* this); diff --git a/src/npc/townMinish.c b/src/npc/townMinish.c index cde7c526..dc8e0531 100644 --- a/src/npc/townMinish.c +++ b/src/npc/townMinish.c @@ -12,7 +12,6 @@ extern void sub_0806ACC4(Entity*); extern void sub_0806AEA8(); extern void sub_0806AEE4(Entity*); extern void sub_0806AFE8(Entity*, ScriptExecutionContext*); -extern s32 sub_0806EDD8(Entity*, u32, u32); extern void sub_08078850(Entity*, u32, u32, u32*); extern u8 gUnk_081125F4[12]; diff --git a/src/npc/townsperson.c b/src/npc/townsperson.c index 2a9033a5..3b674b37 100644 --- a/src/npc/townsperson.c +++ b/src/npc/townsperson.c @@ -1,15 +1,6 @@ -#include "global.h" -#include "entity.h" #include "npc.h" -#include "player.h" -#include "textbox.h" -#include "flags.h" -#include "save.h" -#include "script.h" -#include "random.h" #include "structures.h" #include "functions.h" -#include "effects.h" typedef struct { u8 frame1; diff --git a/src/npc/wheaton.c b/src/npc/wheaton.c index 7eafda20..ba154f41 100644 --- a/src/npc/wheaton.c +++ b/src/npc/wheaton.c @@ -1,7 +1,5 @@ -#include "global.h" -#include "entity.h" +#include "npc.h" #include "script.h" -#include "functions.h" extern Hitbox gUnk_0810C3C0; @@ -10,15 +8,10 @@ void Wheaton(Entity* this) { this->action++; SetDefaultPriority(this, PRIO_MESSAGE); - ResolveEntityOnTop(this, this); - this->hitbox = &gUnk_0810C3C0; - this->spriteOffsetY = 0xfe; - sub_0807DD64(this); } - sub_0807DD94(this, 0); } diff --git a/src/npc/windTribespeople.c b/src/npc/windTribespeople.c index 80da0d08..f5e3d57d 100644 --- a/src/npc/windTribespeople.c +++ b/src/npc/windTribespeople.c @@ -1,4 +1,5 @@ #include "global.h" +#include "audio.h" #include "entity.h" #include "npc.h" #include "textbox.h" diff --git a/src/npc/zelda.c b/src/npc/zelda.c index 834679fa..781c2c80 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -5,6 +5,7 @@ #include "room.h" #include "flags.h" #include "script.h" +#include "npc.h" extern Entity* DeepFindEntityByID(u32, u32); void sub_08068680(Entity*, Entity*); diff --git a/src/npcUtils.c b/src/npcUtils.c index 7511beff..f1c8f1b8 100644 --- a/src/npcUtils.c +++ b/src/npcUtils.c @@ -1,13 +1,14 @@ #include "global.h" +#include "asm.h" #include "entity.h" #include "functions.h" #include "definitions.h" #include "save.h" +#include "npc.h" extern const NPCDefinition gNPCDefinitions[]; extern Hitbox* gNPCHitboxes[]; -const NPCDefinition* GetNPCDefinition(Entity*); extern u32 (*gUnk_08114EFC[])(); extern u32 (*gUnk_08114F0C[])(Entity*, u8*); @@ -20,13 +21,14 @@ extern NPCData* gUnk_08001A7C[]; u32 sub_0800445C(Entity*); void sub_08077B20(void); -void sub_0806EF14(Entity*); void sub_0806F69C(Entity*); -void sub_0806EF4C(Entity*, u16*); u32 sub_080041DC(Entity*, u32, u32); -u32 sub_0806EF74(Entity*, u32); u32 sub_0806EF88(Entity*); +static void sub_0806EF14(Entity*); +static void sub_0806EF4C(Entity*, u16*); +static u32 sub_0806EF74(Entity*, u32); + void sub_0806EC20(Entity* ent) { Entity* e = CreateNPC(0x58, 0, 0); if (e != NULL) { @@ -40,7 +42,7 @@ void sub_0806EC38(void) { DeleteEntity(e); } -const NPCDefinition* GetNPCDefinition(Entity* this) { +static const NPCDefinition* GetNPCDefinition(Entity* this) { const NPCDefinition* definition = &gNPCDefinitions[this->id]; if (definition->bitfield.type == 2) { definition = &definition->data.definition[this->type]; @@ -52,7 +54,7 @@ void NPCInit(Entity* this) { u32 tmp; u32 tmp2; - if ((this->flags & 1) == 0) { + if ((this->flags & ENT_DID_INIT) == 0) { const NPCDefinition* definition = GetNPCDefinition(this); if (definition->bitfield.type == 0) { // No sprite for this NPC @@ -184,7 +186,7 @@ u32 sub_0806EEF4(Entity* ent) { return 0; } -void sub_0806EF14(Entity* ent) { +static void sub_0806EF14(Entity* ent) { u16 xy[2]; sub_0806EF4C(ent, xy); ent->direction = sub_080045B4(ent, xy[0], xy[1]); @@ -192,13 +194,13 @@ void sub_0806EF14(Entity* ent) { ent->knockbackDirection = sub_0806F5A4(ent->direction); } -void sub_0806EF4C(Entity* ent, u16* xy) { +static void sub_0806EF4C(Entity* ent, u16* xy) { u16* src = &((u16*)ent->child)[ent->hitType]; xy[0] = gRoomControls.roomOriginX + src[1]; xy[1] = gRoomControls.roomOriginY + src[2]; } -u32 sub_0806EF74(Entity* ent, u32 a2) { +static u32 sub_0806EF74(Entity* ent, u32 a2) { ent->hitType += a2; return sub_0806EF88(ent); } @@ -284,7 +286,7 @@ void sub_0806F118(Entity* ent) { gPlayerState.controlMode = 3; } -u32 UpdateFuseInteraction(void) { +u32 UpdateFuseInteraction(Entity* ent) { u32 ret; sub_0801E00C(); ret = -1; diff --git a/src/object/archway.c b/src/object/archway.c index 823fa485..d0ed7559 100644 --- a/src/object/archway.c +++ b/src/object/archway.c @@ -1,6 +1,6 @@ #include "global.h" #include "entity.h" -#include "game.h" +#include "overworld.h" void Archway(Entity* this) { if (this->action == 0) { diff --git a/src/object/backgroundCloud.c b/src/object/backgroundCloud.c index 2ab9051a..edd764d2 100644 --- a/src/object/backgroundCloud.c +++ b/src/object/backgroundCloud.c @@ -1,6 +1,4 @@ -#include "global.h" -#include "entity.h" -#include "random.h" +#include "object.h" #include "functions.h" extern void (*const gUnk_08121EA4[])(Entity*); diff --git a/src/object/bakerOven.c b/src/object/bakerOven.c index b1c3a1db..ffe11cd9 100644 --- a/src/object/bakerOven.c +++ b/src/object/bakerOven.c @@ -1,7 +1,4 @@ -#include "global.h" -#include "entity.h" #include "object.h" -#include "functions.h" extern void sub_0800449C(Entity*, u32); extern u32 sub_0806FC80(Entity*, Entity*, s32); diff --git a/src/object/bell.c b/src/object/bell.c index a3e7ce3c..135584c3 100644 --- a/src/object/bell.c +++ b/src/object/bell.c @@ -1,5 +1,4 @@ -#include "global.h" -#include "entity.h" +#include "object.h" extern void (*gUnk_08123384[])(Entity*); diff --git a/src/object/bird.c b/src/object/bird.c index 3045fecb..b7774df4 100644 --- a/src/object/bird.c +++ b/src/object/bird.c @@ -1,12 +1,6 @@ -#include "global.h" -#include "audio.h" -#include "entity.h" -#include "flags.h" #include "save.h" -#include "random.h" #include "object.h" #include "functions.h" -#include "effects.h" extern void (*const gUnk_08123EC0[])(Entity*); extern void (*const gUnk_08123EEC[])(Entity*); diff --git a/src/object/book.c b/src/object/book.c index 3430e4ef..9a99b928 100644 --- a/src/object/book.c +++ b/src/object/book.c @@ -1,11 +1,7 @@ -#include "entity.h" +#include "object.h" #include "functions.h" -#include "player.h" #include "script.h" -#include "flags.h" -#include "room.h" #include "textbox.h" -#include "effects.h" extern void (*const BookActionFuncs[])(Entity*); extern s8 const gUnk_08123D94[]; diff --git a/src/object/button.c b/src/object/button.c index 4c026baf..76b48da8 100644 --- a/src/object/button.c +++ b/src/object/button.c @@ -1,10 +1,5 @@ -#include "global.h" -#include "entity.h" -#include "flags.h" -#include "room.h" -#include "audio.h" +#include "object.h" #include "functions.h" -#include "effects.h" extern void (*const gUnk_0811EE38[])(Entity*); diff --git a/src/object/cloud.c b/src/object/cloud.c index d8915514..22494391 100644 --- a/src/object/cloud.c +++ b/src/object/cloud.c @@ -1,10 +1,3 @@ -#include "global.h" -#include "audio.h" -#include "entity.h" -#include "room.h" -#include "player.h" -#include "flags.h" -#include "random.h" #include "object.h" #include "structures.h" #include "functions.h" diff --git a/src/object/fileScreenObjects.c b/src/object/fileScreenObjects.c index 549e2600..345e8a2b 100644 --- a/src/object/fileScreenObjects.c +++ b/src/object/fileScreenObjects.c @@ -1,12 +1,8 @@ -#include "global.h" -#include "entity.h" -#include "flags.h" +#include "object.h" #include "main.h" #include "menu.h" #include "npc.h" -#include "coord.h" #include "fileScreen.h" -#include "utils.h" #include "structures.h" #include "functions.h" diff --git a/src/object/fireplace.c b/src/object/fireplace.c index fe2dc0d6..1fda4e9f 100644 --- a/src/object/fireplace.c +++ b/src/object/fireplace.c @@ -1,9 +1,6 @@ -#include "entity.h" -#include "functions.h" -#include "player.h" +#include "object.h" #include "script.h" -#include "flags.h" -#include "room.h" +#include "functions.h" extern void (*gUnk_08123D98[])(Entity*); diff --git a/src/object/floatingBlock.c b/src/object/floatingBlock.c index 7e1ad599..c7024c9b 100644 --- a/src/object/floatingBlock.c +++ b/src/object/floatingBlock.c @@ -1,5 +1,4 @@ -#include "global.h" -#include "entity.h" +#include "object.h" void FloatingBlock(Entity* this) { if (this->action == 0) { diff --git a/src/object/frozenFlower.c b/src/object/frozenFlower.c index 92118c4e..e576218b 100644 --- a/src/object/frozenFlower.c +++ b/src/object/frozenFlower.c @@ -1,5 +1,4 @@ -#include "global.h" -#include "entity.h" +#include "object.h" extern void (*const gUnk_0812119C[])(Entity*); diff --git a/src/object/giantLeaf.c b/src/object/giantLeaf.c index a61b267a..a5d25b30 100644 --- a/src/object/giantLeaf.c +++ b/src/object/giantLeaf.c @@ -1,7 +1,4 @@ -#include "global.h" -#include "entity.h" -#include "room.h" -#include "functions.h" +#include "object.h" void sub_0808D618(Entity* ent); diff --git a/src/object/greatFairy.c b/src/object/greatFairy.c index e5575a47..db393026 100644 --- a/src/object/greatFairy.c +++ b/src/object/greatFairy.c @@ -1,16 +1,31 @@ -#include "global.h" -#include "audio.h" -#include "entity.h" -#include "room.h" -#include "screen.h" -#include "greatFairy.h" -#include "flags.h" -#include "save.h" -#include "random.h" -#include "script.h" #include "object.h" +#include "save.h" +#include "script.h" #include "structures.h" #include "functions.h" +#include "screen.h" + +void GreatFairy_InitializeAnimation(Entity*); +Entity* GreatFairy_CreateForm(Entity*, u32, u32); +void sub_080873D0(); +extern void (*const GreatFairy_Main[])(Entity*); +extern void (*const GreatFairy_Behaviors[])(Entity*); +extern void (*const GreatFairy_WingsBehaviors[])(Entity*); +extern void (*const GreatFairy_WakeBehaviors[])(Entity*); +extern void (*const GreatFairy_MiniBehaviors[])(Entity*); +extern void (*const GreatFairy_MiniAffineBehaviors[])(Entity*); +extern void (*const GreatFairy_DropletBehaviors[])(Entity*); +extern void (*const GreatFairy_RippleBehaviors[])(Entity*); +extern void (*const GreatFairy_BigRippleBehaviors[])(Entity*); +extern void (*const GreatFairy_EnergyBehaviors[])(Entity*); +extern void (*const GreatFairy_Form1Behaviors[])(Entity*); +extern void (*const GreatFairy_Form2Behaviors[])(Entity*); +extern void (*const gUnk_081207A4[])(Entity*); + +extern u32 gUnk_0810C2E4; +extern const s16 GreatFairy_RippleOffsets[10]; +extern u8 gUnk_0812079C[8]; +extern s8 gUnk_081207AC[]; enum { BEHAVIORS, diff --git a/src/object/houseDoorExterior.c b/src/object/houseDoorExterior.c index b9747788..79b8425c 100644 --- a/src/object/houseDoorExterior.c +++ b/src/object/houseDoorExterior.c @@ -6,6 +6,7 @@ #include "audio.h" #include "object.h" #include "functions.h" +#include "npc.h" typedef struct { /*0x00*/ u16 unk0; diff --git a/src/object/jarPortal.c b/src/object/jarPortal.c index b5eddce6..d84c12b6 100644 --- a/src/object/jarPortal.c +++ b/src/object/jarPortal.c @@ -1,9 +1,6 @@ -#include "global.h" -#include "entity.h" -#include "flags.h" -#include "functions.h" +#include "object.h" #include "area.h" -#include "audio.h" +#include "functions.h" extern void (*gUnk_08121488[])(Entity*); diff --git a/src/object/lightableSwitch.c b/src/object/lightableSwitch.c index 3bcb95a1..54716b5e 100644 --- a/src/object/lightableSwitch.c +++ b/src/object/lightableSwitch.c @@ -1,4 +1,5 @@ #include "global.h" +#include "audio.h" #include "entity.h" #include "room.h" #include "flags.h" diff --git a/src/object/lilypadSmall.c b/src/object/lilypadSmall.c index ae74c9c8..31c5c3a8 100644 --- a/src/object/lilypadSmall.c +++ b/src/object/lilypadSmall.c @@ -1,13 +1,12 @@ -#include "global.h" -#include "entity.h" -#include "player.h" -#include "random.h" +#include "object.h" #include "functions.h" extern void sub_080A2CC0(Entity*, Entity**, u16*); extern u16 gUnk_08123318[]; +static void sub_08097B24(Entity* this); + void LilypadSmall(Entity* this) { u32 rand; u16* psVar4; @@ -48,7 +47,7 @@ u32 sub_08097ADC(Entity* this) { } } -void sub_08097B24(Entity* this) { +static void sub_08097B24(Entity* this) { u32 temp; u32 temp2; u16* temp3; diff --git a/src/object/lockedDoor.c b/src/object/lockedDoor.c index f81f63b7..fccc8b5f 100644 --- a/src/object/lockedDoor.c +++ b/src/object/lockedDoor.c @@ -1,10 +1,10 @@ #include "global.h" #include "entity.h" #include "flags.h" -#include "game.h" #include "audio.h" #include "functions.h" #include "effects.h" +#include "overworld.h" void sub_08083338(Entity*); void sub_080834B4(Entity*); diff --git a/src/object/mask.c b/src/object/mask.c index 837614bd..854cd5c2 100644 --- a/src/object/mask.c +++ b/src/object/mask.c @@ -1,12 +1,6 @@ -#include "global.h" -#include "entity.h" -#include "room.h" -#include "random.h" +#include "object.h" #include "structures.h" -#include "player.h" -#include "flags.h" #include "functions.h" -#include "effects.h" extern void (*MaskActionFuncs[])(Entity*); diff --git a/src/object/minecart.c b/src/object/minecart.c index fe333927..8f5e9360 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -1,8 +1,5 @@ -#include "global.h" -#include "audio.h" -#include "entity.h" +#include "object.h" #include "functions.h" -#include "room.h" extern u32 sub_08091DDC(Entity*); extern u32 sub_080002B4(Entity*, u32, u32); diff --git a/src/object/minishSizedArchway.c b/src/object/minishSizedArchway.c index 240fdf95..ad001c83 100644 --- a/src/object/minishSizedArchway.c +++ b/src/object/minishSizedArchway.c @@ -1,6 +1,6 @@ #include "global.h" #include "entity.h" -#include "game.h" +#include "overworld.h" void MinishSizedArchway(Entity* this) { if (this->action == 0) { diff --git a/src/object/minishSizedEntrance.c b/src/object/minishSizedEntrance.c index 9338bca5..a92a887c 100644 --- a/src/object/minishSizedEntrance.c +++ b/src/object/minishSizedEntrance.c @@ -1,7 +1,5 @@ -#include "global.h" -#include "entity.h" -#include "game.h" -#include "player.h" +#include "object.h" +#include "overworld.h" #include "functions.h" extern void (*const gUnk_08122254[])(Entity*); diff --git a/src/object/object1A.c b/src/object/object1A.c index 7f76d0f7..bdc3fe49 100644 --- a/src/object/object1A.c +++ b/src/object/object1A.c @@ -1,6 +1,3 @@ -#include "global.h" -#include "entity.h" -#include "random.h" #include "object.h" #include "functions.h" diff --git a/src/object/object2A.c b/src/object/object2A.c index edc742c0..9e36b439 100644 --- a/src/object/object2A.c +++ b/src/object/object2A.c @@ -1,4 +1,5 @@ #include "global.h" +#include "audio.h" #include "entity.h" #include "functions.h" #include "flags.h" diff --git a/src/object/object49.c b/src/object/object49.c index 5a02a82c..125c6440 100644 --- a/src/object/object49.c +++ b/src/object/object49.c @@ -1,8 +1,3 @@ -#include "global.h" -#include "audio.h" -#include "entity.h" -#include "coord.h" -#include "random.h" #include "object.h" #include "structures.h" #include "functions.h" diff --git a/src/object/object86.c b/src/object/object86.c index 147e623c..b5c9e60b 100644 --- a/src/object/object86.c +++ b/src/object/object86.c @@ -1,8 +1,4 @@ -#include "global.h" -#include "entity.h" -#include "coord.h" -#include "player.h" -#include "flags.h" +#include "object.h" #include "functions.h" void sub_08099ECC(Entity*); diff --git a/src/object/objectA.c b/src/object/objectA.c index 9335bdc5..c7d885e7 100644 --- a/src/object/objectA.c +++ b/src/object/objectA.c @@ -4,6 +4,7 @@ #include "flags.h" #include "createObject.h" #include "functions.h" +#include "overworld.h" extern Hitbox gHitbox_2; diff --git a/src/object/objectA2.c b/src/object/objectA2.c index 8d751592..c3ad215b 100644 --- a/src/object/objectA2.c +++ b/src/object/objectA2.c @@ -1,11 +1,7 @@ -#include "global.h" #include "object.h" #include "menu.h" -#include "random.h" -#include "audio.h" #include "structures.h" #include "functions.h" -#include "effects.h" void sub_0809F318(Entity*); void sub_0809F374(Entity*); diff --git a/src/object/octorokBossObject.c b/src/object/octorokBossObject.c index b1df61ee..6e69a7db 100644 --- a/src/object/octorokBossObject.c +++ b/src/object/octorokBossObject.c @@ -1,10 +1,6 @@ -#include "global.h" -#include "entity.h" -#include "coord.h" -#include "audio.h" #include "functions.h" -#include "random.h" #include "object.h" +#include "overworld.h" extern void sub_0807B9B8(s32, s32, s32); diff --git a/src/object/palaceArchway.c b/src/object/palaceArchway.c index cec05cbe..13e6d3bb 100644 --- a/src/object/palaceArchway.c +++ b/src/object/palaceArchway.c @@ -1,7 +1,4 @@ -#include "global.h" -#include "entity.h" -#include "room.h" -#include "functions.h" +#include "object.h" extern void (*const gUnk_081246EC[])(Entity*); diff --git a/src/object/pot.c b/src/object/pot.c index 110c1eb8..dd645021 100644 --- a/src/object/pot.c +++ b/src/object/pot.c @@ -1,4 +1,5 @@ #include "global.h" +#include "audio.h" #include "entity.h" #include "flags.h" #include "player.h" diff --git a/src/object/railtrack.c b/src/object/railtrack.c index 00fbb4ec..223a5603 100644 --- a/src/object/railtrack.c +++ b/src/object/railtrack.c @@ -1,4 +1,5 @@ #include "global.h" +#include "audio.h" #include "entity.h" #include "room.h" #include "flags.h" diff --git a/src/object/smoke.c b/src/object/smoke.c index 17ec7ad0..d603ea1c 100644 --- a/src/object/smoke.c +++ b/src/object/smoke.c @@ -1,8 +1,4 @@ -#include "global.h" -#include "entity.h" -#include "random.h" #include "object.h" -#include "functions.h" extern void (*const gUnk_08121060[])(Entity*); extern void (*const gUnk_08121070[])(Entity*); diff --git a/src/object/thoughtBubble.c b/src/object/thoughtBubble.c index 1789195b..e90cfbd7 100644 --- a/src/object/thoughtBubble.c +++ b/src/object/thoughtBubble.c @@ -1,7 +1,6 @@ #include "global.h" #include "entity.h" #include "audio.h" -#include "functions.h" extern void (*const ThoughtBubble_Behaviors[])(Entity*); diff --git a/src/object/treeThorns.c b/src/object/treeThorns.c index 5a52b9a5..8cd2a06f 100644 --- a/src/object/treeThorns.c +++ b/src/object/treeThorns.c @@ -3,7 +3,6 @@ #include "coord.h" #include "room.h" #include "object.h" -#include "functions.h" extern Hitbox gHitbox_1; diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index 58b2722b..b238e897 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -2,12 +2,15 @@ #include "object.h" #include "player.h" #include "flags.h" -#include "game.h" +#include "overworld.h" #include "audio.h" #include "functions.h" extern Hitbox gHitbox_1; +extern void sub_0807CAC8(u32); +extern u32 sub_0807CAEC(u32); + void WarpPoint(Entity*); void sub_0808B474(Entity*); void sub_0808B530(Entity*); diff --git a/src/object/windTribeFlag.c b/src/object/windTribeFlag.c index 1fcfea7d..b8943a58 100644 --- a/src/object/windTribeFlag.c +++ b/src/object/windTribeFlag.c @@ -1,6 +1,4 @@ -#include "global.h" -#include "entity.h" -#include "random.h" +#include "object.h" void WindTribeFlag(Entity* this) { if (this->action == 0) { diff --git a/src/objectUtils.c b/src/objectUtils.c index 01fe8c6c..b250b0e6 100644 --- a/src/objectUtils.c +++ b/src/objectUtils.c @@ -24,7 +24,7 @@ u32 LoadObjectSprite(Entity* this, s32 type, const ObjectDefinition* definition) u16 tmp1; u8 tmp2; - if ((this->flags & 1) != 0) { + if ((this->flags & ENT_DID_INIT) != 0) { // Sprite already loaded return 1; } diff --git a/src/overworld.c b/src/overworld.c index 417988e0..f33a2584 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -14,6 +14,7 @@ #include "structures.h" #include "area.h" #include "textbox.h" +#include "overworld.h" extern u32 gUnk_03003FC0; @@ -43,8 +44,6 @@ void sub_0801AE44(u32); void sub_0801862C(void); void sub_08078160(u32); void SetPlayerEventPriority(void); -void InitAllRoomResInfo(void); -void InitRoomResInfo(RoomResInfo* info, RoomHeader* hdr, u32 area, u32 room); RoomResInfo* GetCurrentRoomInfo(void); void sub_08049D30(void); void InitScriptData(void); @@ -55,8 +54,6 @@ void sub_08052FF4(u32 area, u32 room); void sub_0807C860(void); void sub_0807C740(void); void sub_080197AC(void); -void sub_080532E4(void); -void sub_08053460(void); void sub_08053390(void); static u32 StairsAreValid(); @@ -64,6 +61,10 @@ static void ClearFlagArray(const u16*); static void DummyHandler(u32* a1); static void sub_08053434(u32* a1); static void sub_080534E4(u32* a1); +static void InitAllRoomResInfo(void); +static void InitRoomResInfo(RoomResInfo* info, RoomHeader* hdr, u32 area, u32 room); +static void sub_080532E4(void); +static void sub_08053460(void); typedef struct { u16* dest; @@ -90,9 +91,6 @@ typedef struct { u16 _a; } PopupOption; -extern Font gUnk_080FCA8C; -extern PopupOption gUnk_080FCAA4[4]; - extern void CreateDialogBox(); void sub_0805212C(void) { @@ -113,7 +111,7 @@ void sub_0805212C(void) { SetPopupState(0, 0); gScreen.lcd.displayControl |= DISPCNT_BG1_ON | DISPCNT_BG2_ON; gFadeControl.mask = 0x0000ffff; - DoFade(4, 0x10); + DoFade(4, 16); #endif } } @@ -261,7 +259,11 @@ void sub_080522F4(void) { void nullsub_107(void) { } -void sub_080523D4(void) { +void DrawGameOverText(void) { + static const u8 sOffsets[] = { + 48, 68, 88, 108, 137, 156, 174, 192, + }; + u32 i; gOamCmd._4 = 0; @@ -269,7 +271,7 @@ void sub_080523D4(void) { gOamCmd._8 = 0x8600; gOamCmd.y = gMenu.focusCoords[0]; for (i = 0; i < 8; ++i) { - gOamCmd.x = gUnk_080FCA84[i]; + gOamCmd.x = sOffsets[i]; #ifdef EU sub_080ADA14(0x1fc, i); #else @@ -279,8 +281,31 @@ void sub_080523D4(void) { } void SetPopupState(u32 type, u32 choice_idx) { + static const Font sDefaultFont = { + .dest = gBG1Buffer, + .gfx_dest = (u16*)0x06006000, + .buffer_loc = gTextGfxBuffer, + ._c = 0, + .gfx_src = 0xD300, + .width = 0xE0, + .right_align = 0, + .sm_border = 0, + .unused = 0, + .draw_border = 0, + .border_type = 0, + .fill_type = 6, + ._15 = 4, + ._16 = 1, + .stylized = 0, + }; + static const PopupOption sPopupOptions[] = { + { { 11, 11, 11, 10, 11, 10, 10, 0 }, 8, 0, 16 }, + { { 10, 11, 11, 9, 11, 9, 9, 0 }, 8, 0, 17 }, + { { 15, 15, 15, 15, 15, 15, 15, 0 }, 5, 1, 13 }, + }; + Font font; - PopupOption* opt; + const PopupOption* opt; u32 fakematch; MemClear(gBG1Buffer, sizeof gBG1Buffer); @@ -290,9 +315,9 @@ void SetPopupState(u32 type, u32 choice_idx) { gUnk_020227E8[3]._0.WORD = 0xf; *(&gUnk_020227E8[choice_idx]._0.BYTES.byte0 + 1) = fakematch = 1; - MemCopy(&gUnk_080FCA8C, &font, sizeof font); - opt = &gUnk_080FCAA4[type]; - font.dest = gUnk_080FCA8C.dest + (opt->dest_off[gSaveHeader->gameLanguage] + opt->_8 * 32); + MemCopy(&sDefaultFont, &font, sizeof font); + opt = &sPopupOptions[type]; + font.dest = sDefaultFont.dest + (opt->dest_off[gSaveHeader->gameLanguage] + opt->_8 * 32); font.right_align = opt->right_align; sub_0805F46C(opt->_a, &font); gScreen.bg1.updated = fakematch; @@ -437,7 +462,7 @@ void ModRupees(s32 rupeeDelta) { s->rupees = newRupeeCount; } -void sub_080526F8(int a1) { +void sub_080526F8(s32 a1) { if (sub_08052724()) { u8* p = &gSave.unk45C[gArea.dungeon_idx]; if (*p + a1 < 0) @@ -451,7 +476,7 @@ u32 sub_08052724(void) { return (gArea.areaMetadata >> 1) & 1; } -u32 sub_08052734(u32 x, u32 y) { +u32 HasDungeonMap(void) { u32 tmp; if (sub_08052724()) @@ -459,7 +484,7 @@ u32 sub_08052734(u32 x, u32 y) { return tmp ? 1 : 0; } -u32 sub_08052764(u32 x, u32 y) { +u32 HasDungeonCompass(void) { u32 tmp; if (sub_08052724()) @@ -467,13 +492,13 @@ u32 sub_08052764(u32 x, u32 y) { return tmp ? 1 : 0; } -u32 sub_0805279C(u32 x, u32 y) { +u32 HasDungeonBigKey(void) { if (!sub_08052724()) return 0; return (gSave.unk46C[gArea.dungeon_idx] >> 1) & 1; } -u32 sub_080527CC(u32 x, u32 y) { +u32 HasDungeonSmallKey(void) { u32 tmp; if (!sub_08052724()) @@ -482,7 +507,7 @@ u32 sub_080527CC(u32 x, u32 y) { } void sub_080527FC(u32 a1, u32 a2) { - sub_08053320(a1, a2); + sub_08053320(); #ifndef EU CleanUpGFXSlots(); #endif @@ -506,7 +531,7 @@ void sub_08052878(void) { SoundReq(SONG_STOP_ALL); } -void sub_0805289C(void) { +static void sub_0805289C(void) { gArea.pMusicIndex = gArea.musicIndex; } #endif @@ -724,7 +749,7 @@ void sub_08052CD0(u32 area, u32 room, u32 x, u32 y) { gScreenTransition.player_status.field_0x1e = hdr->map_y + y; } -void sub_08052CFC() { +void sub_08052CFC(void) { AreaHeader* a_hdr = NULL; MemClear(&gArea, sizeof gArea); @@ -753,7 +778,7 @@ void RegisterTransitionManager(void* mgr, void (*onEnter)(), void (*onExit)()) { } } -void InitAllRoomResInfo(void) { +static void InitAllRoomResInfo(void) { RoomHeader* r_hdr = gAreaRoomHeaders[gRoomControls.areaID]; RoomResInfo* info = gArea.roomResInfos; u32 i; @@ -765,7 +790,7 @@ void InitAllRoomResInfo(void) { gArea.pCurrentRoomInfo = GetCurrentRoomInfo(); } -void InitRoomResInfo(RoomResInfo* info, RoomHeader* r_hdr, u32 area, u32 room) { +static void InitRoomResInfo(RoomResInfo* info, RoomHeader* r_hdr, u32 area, u32 room) { info->map_x = r_hdr->map_x; info->map_y = r_hdr->map_y; info->pixel_width = r_hdr->pixel_width; @@ -800,7 +825,7 @@ void sub_08052EA0(void) { UpdateGlobalProgress(); } -u32 sub_08052EF4(s32 idx) { +static u32 sub_08052EF4(s32 idx) { AreaHeader* a_hdr = NULL; u32 i = idx < 0 ? gRoomControls.areaID : idx; a_hdr = &gAreaMetadata[i]; @@ -885,7 +910,7 @@ void ChangeLightLevel(s32 lightLevel) { gRoomVars.lightLevel = lightLevel; } -void sub_080530B0(void) { +static void sub_080530B0(void) { static const u16 sMinecartData[] = { 0x189, 0x0, 0x102, 0x4, 0x1af, 0x0, 0x204, 0x0, 0x1cf, 0x0, 0x10, 0x4, 0x0, 0x0, 0x0, 0x0 }; @@ -912,7 +937,7 @@ void UpdateGlobalProgress(void) { gSave.global_progress = pcnt; } -u32 sub_08053144(void) { +static u32 sub_08053144(void) { u32 ret; if (CheckGlobalFlag(ENDING)) @@ -992,7 +1017,7 @@ void sub_0805329C(void) { } } -void sub_080532E4(void) { +static void sub_080532E4(void) { s32 x, y; RoomHeader* r_hdr = gAreaRoomHeaders[AREA_FORTRESS_OF_WINDS] + 33; @@ -1065,7 +1090,7 @@ static void sub_08053434(u32* a1) { } } -void sub_08053460(void) { +static void sub_08053460(void) { static const u16 sClearFlags[] = { FLAG_BANK_10, LV6_GUFUU1_GISHIKI, FLAG_BANK_10, LV6_GUFUU1_DEMO, FLAG_BANK_10, LV6_ZELDA_DISCURSE, FLAG_BANK_10, LV6_00_ESCAPE, FLAG_BANK_10, LV6_GUFUU2_DEAD, FLAG_BANK_G, ENDING, diff --git a/src/player.c b/src/player.c index 3f2c89e5..b0bedf4d 100644 --- a/src/player.c +++ b/src/player.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "audio.h" #include "entity.h" #include "player.h" @@ -6,13 +7,13 @@ #include "utils.h" #include "area.h" #include "save.h" -#include "game.h" #include "object.h" #include "functions.h" #include "object.h" #include "effects.h" -#include "random.h" #include "hitbox.h" +#include "overworld.h" +#include "screen.h" typedef void(EntityAction)(Entity*); @@ -181,7 +182,6 @@ extern void sub_080797EC(); extern void sub_08079E08(); extern void sub_08078F60(); extern void sub_08077698(); -extern void DisplayEzloMessage(); extern void sub_08079258(); extern void sub_0807A298(); extern u32 sub_08079B24(); @@ -206,6 +206,7 @@ extern u32 sub_0806F730(); extern u32 sub_08007DD6(); extern u32 GetSurfaceCalcType(); extern void sub_08074808(); +extern void sub_08073904(Entity*); extern ScreenTransitionData gUnk_0813AB58; diff --git a/src/playerItem/playerItem10.c b/src/playerItem/playerItem10.c index d733570d..02ff1fb6 100644 --- a/src/playerItem/playerItem10.c +++ b/src/playerItem/playerItem10.c @@ -1,7 +1,7 @@ #include "entity.h" #include "player.h" #include "functions.h" -#include "random.h" +#include "asm.h" extern void (*const gUnk_0812AA80[])(Entity*); diff --git a/src/playerItem/playerItem12.c b/src/playerItem/playerItem12.c index 1c14e0ed..3f750765 100644 --- a/src/playerItem/playerItem12.c +++ b/src/playerItem/playerItem12.c @@ -1,3 +1,4 @@ +#include "asm.h" #include "entity.h" #include "functions.h" #include "audio.h" diff --git a/src/playerItem/playerItem3.c b/src/playerItem/playerItem3.c index 790062c0..83fdea5a 100644 --- a/src/playerItem/playerItem3.c +++ b/src/playerItem/playerItem3.c @@ -1,4 +1,5 @@ #include "entity.h" +#include "audio.h" #include "functions.h" extern void (*const gUnk_080B77FC[])(Entity*); diff --git a/src/playerItem/playerItemBow.c b/src/playerItem/playerItemBow.c index 6c2b8206..f9739d9b 100644 --- a/src/playerItem/playerItemBow.c +++ b/src/playerItem/playerItemBow.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "entity.h" #include "functions.h" #include "effects.h" diff --git a/src/projectile/dirtBallProjectile.c b/src/projectile/dirtBallProjectile.c index 4a805082..791dd040 100644 --- a/src/projectile/dirtBallProjectile.c +++ b/src/projectile/dirtBallProjectile.c @@ -1,3 +1,4 @@ +#include "audio.h" #include "entity.h" #include "enemy.h" #include "player.h" diff --git a/src/projectile/gleerokProjectile.c b/src/projectile/gleerokProjectile.c index 3c59c8f2..f4d71406 100644 --- a/src/projectile/gleerokProjectile.c +++ b/src/projectile/gleerokProjectile.c @@ -3,7 +3,7 @@ #include "enemy.h" #include "player.h" #include "functions.h" -#include "random.h" +#include "asm.h" #include "audio.h" #include "effects.h" diff --git a/src/projectile/guardLineOfSight.c b/src/projectile/guardLineOfSight.c index cf0510e4..a4a87308 100644 --- a/src/projectile/guardLineOfSight.c +++ b/src/projectile/guardLineOfSight.c @@ -1,5 +1,5 @@ #include "entity.h" -#include "random.h" +#include "asm.h" #include "coord.h" #include "functions.h" diff --git a/src/projectile/gyorgTail.c b/src/projectile/gyorgTail.c index 684ace6b..556087f7 100644 --- a/src/projectile/gyorgTail.c +++ b/src/projectile/gyorgTail.c @@ -1,5 +1,5 @@ #include "entity.h" -#include "random.h" +#include "asm.h" #include "coord.h" #include "audio.h" #include "functions.h" diff --git a/src/projectile/mandiblesProjectile.c b/src/projectile/mandiblesProjectile.c index c50657f9..79fcb38b 100644 --- a/src/projectile/mandiblesProjectile.c +++ b/src/projectile/mandiblesProjectile.c @@ -3,8 +3,8 @@ #include "coord.h" #include "functions.h" #include "audio.h" -#include "random.h" -#include "game.h" +#include "asm.h" +#include "overworld.h" extern Entity* sub_08049DF4(u32); extern u32 sub_08049F1C(Entity*, Entity*, u32); diff --git a/src/projectile/octorokBossProjectile.c b/src/projectile/octorokBossProjectile.c index 58b6dbfc..70315175 100644 --- a/src/projectile/octorokBossProjectile.c +++ b/src/projectile/octorokBossProjectile.c @@ -1,6 +1,6 @@ #include "entity.h" #include "enemy.h" -#include "random.h" +#include "asm.h" #include "functions.h" #include "audio.h" #include "effects.h" diff --git a/src/projectile/v1DarkMagicProjectile.c b/src/projectile/v1DarkMagicProjectile.c index 529d46e7..76097b4d 100644 --- a/src/projectile/v1DarkMagicProjectile.c +++ b/src/projectile/v1DarkMagicProjectile.c @@ -4,7 +4,7 @@ #include "player.h" #include "audio.h" #include "functions.h" -#include "random.h" +#include "asm.h" extern void sub_0800449C(Entity*, u32); diff --git a/src/projectile/v1FireProjectile.c b/src/projectile/v1FireProjectile.c index 3379c344..4384766d 100644 --- a/src/projectile/v1FireProjectile.c +++ b/src/projectile/v1FireProjectile.c @@ -3,7 +3,7 @@ #include "player.h" #include "functions.h" #include "audio.h" -#include "random.h" +#include "asm.h" extern void sub_0806F5BC(Entity*, u32, u32); extern u32 sub_080041DC(Entity*, u32, u32); diff --git a/src/projectile/v2Projectile.c b/src/projectile/v2Projectile.c index c7be6769..e0213f6f 100644 --- a/src/projectile/v2Projectile.c +++ b/src/projectile/v2Projectile.c @@ -2,7 +2,7 @@ #include "entity.h" #include "enemy.h" #include "functions.h" -#include "random.h" +#include "asm.h" #include "audio.h" #include "effects.h" diff --git a/src/projectile/winder.c b/src/projectile/winder.c index 640038e2..0075763c 100644 --- a/src/projectile/winder.c +++ b/src/projectile/winder.c @@ -1,5 +1,5 @@ #include "entity.h" -#include "random.h" +#include "asm.h" #include "functions.h" #include "utils.h" diff --git a/src/projectileUtils.c b/src/projectileUtils.c index 5c82f3cf..7e4ee3ef 100644 --- a/src/projectileUtils.c +++ b/src/projectileUtils.c @@ -16,7 +16,7 @@ const ProjectileDefinition* GetProjectileDefinition(Entity* this) { } bool32 ProjectileInit(Entity* this) { - if ((this->flags & 1) == 0) { + if ((this->flags & ENT_DID_INIT) == 0) { const ProjectileDefinition* definition = GetProjectileDefinition(this); if (LoadProjectileSprite(this, definition) == FALSE) { return FALSE; diff --git a/src/room.c b/src/room.c index ae2bb9f0..f685c833 100644 --- a/src/room.c +++ b/src/room.c @@ -5,6 +5,7 @@ #include "functions.h" #include "utils.h" #include "object.h" +#include "overworld.h" extern void sub_0804B058(EntityData* dat); extern void sub_0801AC98(); diff --git a/src/roomInit.c b/src/roomInit.c index 223d7c99..e553a20f 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -1,7 +1,7 @@ #include "global.h" #include "main.h" -#include "random.h" +#include "utils.h" #include "functions.h" #include "structures.h" @@ -13,14 +13,18 @@ #include "item.h" #include "save.h" #include "script.h" +#include "screen.h" #include "area.h" #include "room.h" +#include "overworld.h" #include "entity.h" #include "npc.h" #include "player.h" +static void sub_0804E150(void); + u32 sub_unk3_ArmosInteriors_RuinsEntranceNorth(u32 arg0) { return 1; } diff --git a/src/save.c b/src/save.c index 177ad460..a5b8caea 100644 --- a/src/save.c +++ b/src/save.c @@ -4,6 +4,7 @@ #include "menu.h" #include "main.h" #include "functions.h" +#include "overworld.h" typedef struct SaveFileStatus { u16 checksum1; diff --git a/src/script.c b/src/script.c index 1ca4785a..6d7203eb 100644 --- a/src/script.c +++ b/src/script.c @@ -1,18 +1,14 @@ -#include "global.h" -#include "audio.h" -#include "flags.h" -#include "entity.h" -#include "area.h" #include "script.h" -#include "structures.h" -#include "textbox.h" -#include "utils.h" -#include "save.h" -#include "random.h" -#include "audio.h" -#include "functions.h" #include "main.h" -#include "effects.h" +#include "screen.h" +#include "area.h" +#include "overworld.h" + +#include "object.h" +#include "npc.h" + +#include "functions.h" +#include "structures.h" void InitScriptForEntity(Entity*, ScriptExecutionContext*, u16*); void InitScriptExecutionContext(ScriptExecutionContext* context, u16* script); @@ -733,16 +729,16 @@ void ScriptCommand_CheckInventory1(Entity* entity, ScriptExecutionContext* conte u32 tmp2 = GetNextScriptCommandHalfwordAfterCommandMetadata(context->scriptInstructionPointer); switch (tmp2) { case 0x53: - tmp = sub_08052734(); + tmp = HasDungeonMap(); break; case 0x52: - tmp = sub_08052764(); + tmp = HasDungeonCompass(); break; case 0x51: - tmp = sub_0805279C(); + tmp = HasDungeonBigKey(); break; case 0x50: - tmp = sub_080527CC(); + tmp = HasDungeonSmallKey(); break; default: tmp = GetInventoryValue(tmp2); diff --git a/src/sub_08055E08.c b/src/sub_08055E08.c index e564244f..2c0532eb 100644 --- a/src/sub_08055E08.c +++ b/src/sub_08055E08.c @@ -2,6 +2,7 @@ #include "menu.h" #include "room.h" #include "functions.h" +#include "screen.h" extern void (*const gUnk_080FF420[])(); extern void sub_0804B0B0(u32, u32); diff --git a/src/sub_0807B820.c b/src/sub_0807B820.c index 14da7b18..7d2441c3 100644 --- a/src/sub_0807B820.c +++ b/src/sub_0807B820.c @@ -1,7 +1,6 @@ -#include "global.h" -#include "functions.h" +#include "asm.h" +#include "room.h" -extern void sub_08000152(u32); extern void sub_0807B778(u32, u32); void sub_0807B7D8(u32 param_1, u32 param_2, u32 param_3) { diff --git a/src/sub_0807C998.c b/src/sub_0807C998.c deleted file mode 100644 index 361c0142..00000000 --- a/src/sub_0807C998.c +++ /dev/null @@ -1,41 +0,0 @@ -#include "global.h" - -extern void sub_0807C960(); -extern void LoadPalettes(const u8*, s32, s32); - -extern u16 gMetatilesBottom[]; -extern u16 gMetatilesTop[]; -extern u8 gMapData; - -extern const u8 gUnk_020176E0[]; - -void sub_0807C960(void* dest, u32 offset) { - void* src; - - if (offset != -1) { - src = &gMapData + (offset & 0x7fffffff); - if ((u32)dest >> 0x18 == 6) { - LZ77UnCompVram(src, (void*)dest); - } else { - LZ77UnCompWram(src, (void*)dest); - } - } -} - -void sub_0807C998(u32* a1) { - sub_0807C960(gMetatilesBottom, a1[0]); - sub_0807C960(gMetatilesBottom - 0x1000, a1[1]); - sub_0807C960(gMetatilesTop, a1[2]); - sub_0807C960(gMetatilesTop - 0x1000, a1[3]); -} - -void sub_0807C9D8(u32* a1) { - u32* v1; // r5@1 - - v1 = a1; - sub_0807C960((u8*)0x6004000, *a1); - sub_0807C960((u8*)0x6000000, v1[1]); - sub_0807C960((u8*)0x6008000, v1[2]); - sub_0807C960((u8*)gUnk_020176E0, v1[3]); - LoadPalettes(gUnk_020176E0, 2, 13); -} diff --git a/src/sub_0807CA18.c b/src/sub_0807CA18.c index 3e99e52b..d74a54c3 100644 --- a/src/sub_0807CA18.c +++ b/src/sub_0807CA18.c @@ -3,6 +3,46 @@ #include "save.h" #include "utils.h" +extern void sub_0807C960(); +extern void LoadPalettes(const u8*, s32, s32); + +extern u16 gMetatilesBottom[]; +extern u16 gMetatilesTop[]; +extern u8 gMapData; + +extern const u8 gUnk_020176E0[]; + +void sub_0807C960(void* dest, u32 offset) { + void* src; + + if (offset != -1) { + src = &gMapData + (offset & 0x7fffffff); + if ((u32)dest >> 0x18 == 6) { + LZ77UnCompVram(src, (void*)dest); + } else { + LZ77UnCompWram(src, (void*)dest); + } + } +} + +void sub_0807C998(u32* a1) { + sub_0807C960(gMetatilesBottom, a1[0]); + sub_0807C960(gMetatilesBottom - 0x1000, a1[1]); + sub_0807C960(gMetatilesTop, a1[2]); + sub_0807C960(gMetatilesTop - 0x1000, a1[3]); +} + +void sub_0807C9D8(u32* a1) { + u32* v1; // r5@1 + + v1 = a1; + sub_0807C960((u8*)0x6004000, *a1); + sub_0807C960((u8*)0x6000000, v1[1]); + sub_0807C960((u8*)0x6008000, v1[2]); + sub_0807C960((u8*)gUnk_020176E0, v1[3]); + LoadPalettes(gUnk_020176E0, 2, 13); +} + u8 sub_0807CA18() { if (gSave.unk_00 != 0x00 || gSave.unk_01 != 1) { gSave.unk_00 = 0; diff --git a/src/sub_08127D30.c b/src/sub_08127D30.c deleted file mode 100644 index 13b6839b..00000000 --- a/src/sub_08127D30.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "global.h" - -extern u8 gAreaMetadata[69]; - -u32 sub_08052654(u32 r0) { - return gAreaMetadata[r0 * 4] == 129; -} diff --git a/src/utils.c b/src/utils.c index feb31265..f8ae7c2d 100644 --- a/src/utils.c +++ b/src/utils.c @@ -113,7 +113,7 @@ void LoadPaletteGroup(u32 group) { } } -void LoadPalettes(const u8* src, int destPaletteNum, int numPalettes) { +void LoadPalettes(const u8* src, s32 destPaletteNum, s32 numPalettes) { u16* dest; u32 size = numPalettes * 32; u32 usedPalettesMask = 1 << destPaletteNum; From cb95bdb96a20a3024a6f3de23627fe670a9ec0fe Mon Sep 17 00:00:00 2001 From: theo3 Date: Mon, 20 Dec 2021 23:11:22 -0800 Subject: [PATCH 033/168] framestate, ezlo hint --- asm/code_08077B98.s | 2 +- asm/code_08078778.s | 4 +- asm/macros/entity.inc | 16 +++ asm/object6A.s | 2 +- asm/object91.s | 2 +- data/map/entity_headers.s | 237 +++++++++++++++++---------------- include/area.h | 2 +- include/flags.h | 4 +- include/functions.h | 2 +- include/manager.h | 26 ++-- include/player.h | 36 ++++- include/room.h | 5 +- src/enemy/beetle.c | 4 +- src/enemy/vaatiWrath.c | 4 +- src/interrupts.c | 6 +- src/item/itemGustJar.c | 2 +- src/item/itemSword.c | 2 +- src/item/itemTryPickupObject.c | 2 +- src/manager/manager15.c | 6 +- src/manager/manager3.c | 6 +- src/manager/manager33.c | 2 +- src/manager/managerA.c | 154 +++++++++++---------- src/manager/managerF.c | 2 +- src/npc/guardWithSpear.c | 2 +- src/npc/kid.c | 2 +- src/object/warpPoint.c | 4 +- src/overworld.c | 8 +- src/player.c | 41 +++--- src/playerItemUtils.c | 2 +- src/projectile/spiderWeb.c | 2 +- src/script.c | 8 +- 31 files changed, 326 insertions(+), 271 deletions(-) diff --git a/asm/code_08077B98.s b/asm/code_08077B98.s index 6d889d80..8f480ce5 100644 --- a/asm/code_08077B98.s +++ b/asm/code_08077B98.s @@ -555,7 +555,7 @@ _08078414: .4byte 0x0000012B _08078418: ldr r0, _08078428 @ =0x00000B65 movs r1, #0 - bl sub_08078AA8 + bl CreateEzloHint _08078420: movs r0, #0x13 bl sub_08078160 diff --git a/asm/code_08078778.s b/asm/code_08078778.s index 52fad31a..d6955113 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -305,8 +305,8 @@ _08078AA2: .align 2, 0 _08078AA4: .4byte gPlayerState - thumb_func_start sub_08078AA8 -sub_08078AA8: @ 0x08078AA8 + thumb_func_start CreateEzloHint +CreateEzloHint: @ 0x08078AA8 ldr r3, _08078AB8 @ =gPlayerState movs r2, #0x16 strb r2, [r3, #0xc] diff --git a/asm/macros/entity.inc b/asm/macros/entity.inc index e55c90da..0c70833c 100755 --- a/asm/macros/entity.inc +++ b/asm/macros/entity.inc @@ -75,6 +75,22 @@ .4byte \paramC .endm + .macro ezlo_hint type=0 x:req, y:req, rx:req, ry:req, msg:req, flag:req, msg_y=0, flag2=0 + .byte 9 + .byte 0 + .byte 10 + .byte \type + .byte 0 + .byte \msg_y + .2byte \msg + .byte \x >> 1 /* normalize to same coordinates */ + .byte \y >> 1 + .byte \rx + .byte \ry + .2byte \flag + .2byte \flag2 + .endm + .macro manager subtype:req, collision=0, unknown=0xf, paramA=0, paramB=0, x=0, y=0, paramC=0 entity_raw type=9, subtype=\subtype, collision=\collision, unknown=\unknown, paramA=\paramA, paramB=\paramB, x=\x, y=\y, paramC=\paramC .endm diff --git a/asm/object6A.s b/asm/object6A.s index 086fa52d..2b6fd5f4 100644 --- a/asm/object6A.s +++ b/asm/object6A.s @@ -967,7 +967,7 @@ _080950C8: bl sub_080788E0 ldr r0, _080950EC @ =0x00001F1F movs r1, #0 - bl sub_08078AA8 + bl CreateEzloHint b _0809510A .align 2, 0 _080950EC: .4byte 0x00001F1F diff --git a/asm/object91.s b/asm/object91.s index 1df7bfef..5a32bd05 100644 --- a/asm/object91.s +++ b/asm/object91.s @@ -998,7 +998,7 @@ sub_0809CB4C: @ 0x0809CB4C bne _0809CB66 ldr r0, _0809CB6C @ =0x00000B44 movs r1, #0 - bl sub_08078AA8 + bl CreateEzloHint bl DeleteThisEntity _0809CB66: pop {pc} diff --git a/data/map/entity_headers.s b/data/map/entity_headers.s index 677e2b4e..ed4e3308 100644 --- a/data/map/entity_headers.s +++ b/data/map/entity_headers.s @@ -4,6 +4,13 @@ .section .rodata .align 2 +#define local_flag(idx) (idx & 0x3fff) | (0 << 14) +#define local_flags(idx, length) (idx & 0x3fff) | (0 << 14) | (((length - 1) & 0xf) << 6) +#define global_flag(idx) (idx & 0x3fff) | (1 << 14) +#define global_flags(idx, length) (idx & 0x3fff) | (1 << 14) | (((length - 1) & 0xf) << 6) +#define room_flag(idx) (idx & 0x3fff) | (2 << 14) +#define room_flags(idx, length) (idx & 0x3fff) | (2 << 14) | (((length - 1) & 0xf) << 6) + @ define helper constants .ifdef JP EU_JP: @@ -1673,7 +1680,7 @@ Room_CrenelMinishPaths_CrenelWater:: @ 080D5AA8 .4byte sub_StateChange_CrenelMinishPaths_CrenelWater Entities_CrenelMinishPaths_Rainfall_0:: @ 080D5AC8 - manager subtype=0xa, x=0x204, y=0x903, unknown=0x0, paramB=0xb1c0000, paramC=0xc1 + ezlo_hint x=8, y=4, rx=3, ry=9, msg=0xb1c, flag=0xc1 entity_list_end Entities_CrenelMinishPaths_Rainfall_1:: @ 080D5AE8 @@ -1907,7 +1914,7 @@ Entities_HouseInteriors1_Mayor_0:: @ 080D61C0 npc_raw subtype=0x4b, x=0x88, y=0x60, script=script_0800EA54 object_raw subtype=0x4c, x=0x7c, y=0x48, collision=1 object_raw subtype=0x4c, x=0x94, y=0x48, collision=1 - manager subtype=0xa, x=0x905, y=0x103, unknown=0x0, paramB=0xb550000, paramC=0xc4 + ezlo_hint x=0xa, y=0x12, rx=0x3, ry=0x1, msg=0xb55, flag=0xc4 entity_list_end Entities_HouseInteriors1_Mayor_080D6210:: @ 080D6210 @@ -2019,7 +2026,7 @@ Room_HouseInteriors1_PostOffice:: @ 080D6518 .4byte sub_StateChange_HouseInteriors1_PostOffice Entities_HouseInteriors1_Library2F_0:: @ 080D6538 - manager subtype=0xa, x=0x70b, y=0x201, unknown=0x0, paramB=0xb570000, paramC=0xc5 + ezlo_hint x=0x16, y=0xe, rx=0x1, ry=0x2, msg=0xb57, flag=0xc5 entity_list_end gUnk_080D6558:: @ 080D6558 @@ -3553,9 +3560,9 @@ Entities_RoyalValley_Main_0:: @ 080D8FB8 object_raw subtype=0x19, x=0x1a0, y=0x1a2, unknown=0x4f, collision=1, paramA=0x1, paramB=0x3, paramC=script_08009698 npc_raw subtype=0x21, x=0x88, y=0x118, script=script_08009740 .ifdef EU_JP - manager subtype=0xa, x=0x251c, y=0x401, unknown=0x0, paramB=0xb1d0000, paramC=0x58 + ezlo_hint x=0x38, y=0x4a, rx=0x1, ry=0x4, msg=0xb1d, flag=0x58 .else - manager subtype=0xa, x=0x251c, y=0x401, unknown=0x0, paramB=0xb1d0000, paramC=0x5a + ezlo_hint x=0x38, y=0x4a, rx=0x1, ry=0x4, msg=0xb1d, flag=0x5a .endif entity_list_end @@ -3910,12 +3917,12 @@ Entities_CastorWilds_Main_0:: @ 080D9AD8 manager subtype=0x4 manager subtype=0x20, x=0x2b8, y=0x148, paramB=0x12b82e00, paramC=0x1f1158 manager subtype=0xe, unknown=0x1f, paramA=0x10, paramC=0xc0000 - manager subtype=0xa, x=0x1b39, y=0xa02, unknown=0x0, paramB=0xb2e0000, paramC=0x1b - manager subtype=0xa, x=0x153a, y=0x504, unknown=0x0, paramB=0xb2f0000, paramC=0x1d - manager subtype=0xa, x=0x2a15, y=0x204, unknown=0x0, paramB=0xb2f0000, paramC=0x1d - manager subtype=0xa, x=0x3726, y=0x304, unknown=0x0, paramB=0xb2f0000, paramC=0x1d + ezlo_hint x=0x72, y=0x36, rx=0x2, ry=0xa, msg=0xb2e, flag=0x1b + ezlo_hint x=0x74, y=0x2a, rx=0x4, ry=0x5, msg=0xb2f, flag=0x1d + ezlo_hint x=0x2a, y=0x54, rx=0x4, ry=0x2, msg=0xb2f, flag=0x1d + ezlo_hint x=0x4c, y=0x6e, rx=0x4, ry=0x3, msg=0xb2f, flag=0x1d .ifndef EU - manager subtype=0xa, x=0x918, y=0x403, unknown=0x0, paramB=0xb2f0000, paramC=0x1d + ezlo_hint x=0x30, y=0x12, rx=0x3, ry=0x4, msg=0xb2f, flag=0x1d .endif object_raw subtype=0x0, x=0x3d8, y=0x268, collision=1, paramA=0x5c, paramB=0x86e, paramC=0x220000 object_raw subtype=0x0, x=0x3d8, y=0x288, collision=1, paramA=0x5c, paramB=0x86f, paramC=0x230000 @@ -3932,11 +3939,11 @@ Entities_CastorWilds_Main_0:: @ 080D9AD8 manager subtype=0x4 manager subtype=0x20, x=0x2b8, y=0x148, paramB=0x12b82e00, paramC=0x1e1158 manager subtype=0xe, unknown=0x1f, paramA=0x10, paramC=0x230000 - manager subtype=0xa, x=0x1b39, y=0xa02, unknown=0x0, paramB=0xb2e0000, paramC=0x1a - manager subtype=0xa, x=0x153a, y=0x504, unknown=0x0, paramB=0xb2f0000, paramC=0x1c - manager subtype=0xa, x=0x2a15, y=0x204, unknown=0x0, paramB=0xb2f0000, paramC=0x1c - manager subtype=0xa, x=0x3726, y=0x304, unknown=0x0, paramB=0xb2f0000, paramC=0x1c - manager subtype=0xa, x=0x918, y=0x403, unknown=0x0, paramB=0xb2f0000, paramC=0x1c + ezlo_hint x=0x72, y=0x36, rx=0x2, ry=0xa, msg=0xb2e, flag=0x1a + ezlo_hint x=0x74, y=0x2a, rx=0x4, ry=0x5, msg=0xb2f, flag=0x1c + ezlo_hint x=0x2a, y=0x54, rx=0x4, ry=0x2, msg=0xb2f, flag=0x1c + ezlo_hint x=0x4c, y=0x6e, rx=0x4, ry=0x3, msg=0xb2f, flag=0x1c + ezlo_hint x=0x30, y=0x12, rx=0x3, ry=0x4, msg=0xb2f, flag=0x1c object_raw subtype=0x0, x=0x3d8, y=0x268, collision=1, paramA=0x5c, paramB=0x86e, paramC=0x200000 object_raw subtype=0x0, x=0x3d8, y=0x288, collision=1, paramA=0x5c, paramB=0x86f, paramC=0x210000 object_raw subtype=0x0, x=0x3d8, y=0x2a8, collision=1, paramA=0x5c, paramB=0x870, paramC=0x220000 @@ -3954,9 +3961,9 @@ gUnk_080D9C38:: @ 080D9C38 gUnk_additional_13_CastorWilds_Main:: @ 080D9CA8 .ifdef EU_JP - manager subtype=0xa, x=0x1e38, y=0x705, unknown=0x0, paramB=0xb660000, paramC=0x1c + ezlo_hint x=0x70, y=0x3c, rx=0x5, ry=0x7, msg=0xb66, flag=0x1c .else - manager subtype=0xa, x=0x1e38, y=0x705, unknown=0x0, paramB=0xb660000, paramC=0x1b + ezlo_hint x=0x70, y=0x3c, rx=0x5, ry=0x7, msg=0xb66, flag=0x1b .endif entity_list_end @@ -4196,7 +4203,7 @@ gUnk_080DA230:: @ 080DA230 gUnk_080DA260:: @ 080DA260 object_raw subtype=0x8, x=0x88, y=0xb8, paramA=0x12, paramC=0x39ffff manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x398000 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb100000, paramC=0x80000039 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb10, flag=0x39, flag2=0x8000 entity_list_end Entities_CastorDarknut_Main_1:: @ 080DA2A0 @@ -6236,9 +6243,9 @@ Room_MelarisMine_Main:: @ 080DD31C Entities_CloudTops_House_0:: @ 080DD344 .ifdef EU_JP - manager subtype=0xa, x=0x171c, y=0x205, unknown=0x0, paramB=0xb220000, paramC=0xd9 + ezlo_hint x=0x38, y=0x2e, rx=0x5, ry=0x2, msg=0xb22, flag=0xd9 .else - manager subtype=0xa, x=0x171c, y=0x205, unknown=0x0, paramB=0xb220000, paramC=0xdc + ezlo_hint x=0x38, y=0x2e, rx=0x5, ry=0x2, msg=0xb22, flag=0xdc .endif entity_list_end @@ -6278,7 +6285,7 @@ Entities_CloudTops_Middle_0:: @ 080DD40C object_raw subtype=0x0, x=0x28, y=0x388, collision=1, paramA=0x5c, paramB=0x775, paramC=0xe60000 object_raw subtype=0x0, x=0x2e8, y=0x388, collision=1, paramA=0x5c, paramB=0x76e, paramC=0xe70000 object_raw subtype=0x0, x=0x3a8, y=0x378, collision=1, paramA=0x5c, paramB=0x772, paramC=0xe80000 - manager subtype=0xa, x=0x1715, y=0x210, unknown=0x0, paramB=0xb220000, paramC=0xda + ezlo_hint x=0x2a, y=0x2e, rx=0x10, ry=0x2, msg=0xb22, flag=0xda .else object_raw subtype=0x0, x=0x38, y=0x28, collision=1, paramA=0x5c, paramB=0x773, paramC=0xe50000 object_raw subtype=0x0, x=0x3c8, y=0x38, collision=1, paramA=0x5c, paramB=0x76f, paramC=0xe60000 @@ -6287,7 +6294,7 @@ Entities_CloudTops_Middle_0:: @ 080DD40C object_raw subtype=0x0, x=0x28, y=0x388, collision=1, paramA=0x5c, paramB=0x775, paramC=0xe90000 object_raw subtype=0x0, x=0x2e8, y=0x388, collision=1, paramA=0x5c, paramB=0x76e, paramC=0xea0000 object_raw subtype=0x0, x=0x3a8, y=0x378, collision=1, paramA=0x5c, paramB=0x772, paramC=0xeb0000 - manager subtype=0xa, x=0x1715, y=0x210, unknown=0x0, paramB=0xb220000, paramC=0xdd + ezlo_hint x=0x2a, y=0x2e, rx=0x10, ry=0x2, msg=0xb22, flag=0xdd .endif entity_list_end @@ -6378,11 +6385,11 @@ Entities_CloudTops_Bottom_0:: @ 080DD790 .ifdef EU_JP manager subtype=0x17, x=0x208, y=0x38, paramA=0x5c, paramB=0x10466, paramC=0xf000f1 manager subtype=0x17, x=0x238, y=0x2e8, paramA=0x5c, paramB=0x10466, paramC=0xf200f3 - manager subtype=0xa, x=0x1d18, y=0x302, unknown=0x0, paramB=0xb210000, paramC=0xea + ezlo_hint x=0x30, y=0x3a, rx=0x2, ry=0x3, msg=0xb21, flag=0xea .else manager subtype=0x17, x=0x208, y=0x38, paramA=0x5c, paramB=0x10466, paramC=0xf300f4 manager subtype=0x17, x=0x238, y=0x2e8, paramA=0x5c, paramB=0x10466, paramC=0xf500f6 - manager subtype=0xa, x=0x1d18, y=0x302, unknown=0x0, paramB=0xb210000, paramC=0xed + ezlo_hint x=0x30, y=0x3a, rx=0x2, ry=0x3, msg=0xb21, flag=0xed .endif entity_list_end @@ -6887,7 +6894,7 @@ gUnk_additional_8_DeepwoodShrine_Madderpillar:: @ 080DE4E8 enemy_raw subtype=0x18, x=0x98, y=0x88 manager subtype=0x2e, x=0x2d, unknown=0x0, paramB=0x100, paramC=0x80000000 object_raw subtype=0x8, x=0xe8, y=0x58, paramA=0x5, paramC=0x8000ffff - manager subtype=0xa, x=0x404, y=0x70a, unknown=0x0, paramA=0x3, paramB=0xb000000, paramC=0x80000017 + ezlo_hint type=0x3, x=0x8, y=0x8, rx=0xa, ry=0x7, msg=0xb00, flag=0x17, flag2=0x8000 entity_list_end TileEntities_DeepwoodShrine_Madderpillar:: @ 080DE538 @@ -7011,7 +7018,7 @@ Entities_DeepwoodShrine_PotBridge_0:: @ 080DE8D0 manager subtype=0x20, x=0x48, y=0x48, paramB=0x10c80500, paramC=0x261048 object_raw subtype=0x3, x=0xc8, y=0x48, paramA=0x1, paramC=0x80000000 manager subtype=0x5, x=0xa, y=0x6, paramB=0x12, paramC=0x80000001 - manager subtype=0xa, x=0x407, y=0x103, unknown=0x0, paramB=0xb360000, paramC=0x25 + ezlo_hint x=0xe, y=0x8, rx=0x3, ry=0x1, msg=0xb36, flag=0x25 manager subtype=0x1e, x=0x70, y=0xb0, paramB=0x100030, paramC=0x510000 entity_list_end @@ -7036,7 +7043,7 @@ Room_DeepwoodShrine_PotBridge:: @ 080DE980 .4byte sub_StateChange_DeepwoodShrine_PotBridge Entities_DeepwoodShrine_DoubleStatue_0:: @ 080DE9A0 - manager subtype=0xa, x=0x503, y=0x10b, unknown=0x0, paramB=0xb330000, paramC=0x50 + ezlo_hint x=0x6, y=0xa, rx=0xb, ry=0x1, msg=0xb33, flag=0x50 object_raw subtype=0x3, x=0x68, y=0x68, paramA=0x1, paramC=0x80000000 object_raw subtype=0x3, x=0xa8, y=0x68, paramA=0x1, paramC=0x80010000 object_raw subtype=0xc, x=0x88, y=0x58, paramA=0x1, paramC=0x84000000 @@ -7095,7 +7102,7 @@ Entities_DeepwoodShrine_Barrel_0:: @ 080DEB30 object_raw subtype=0x8, x=0x1b8, y=0x48, paramA=0x9, paramC=0x2affff object_raw subtype=0x8, x=0xe8, y=0x28, paramC=0x1c object_raw subtype=0x25, x=0xe8, y=0xc8 - manager subtype=0xa, x=0xc02, y=0x219, unknown=0x0, paramB=0xb340000, paramC=0x2c + ezlo_hint x=0x4, y=0x18, rx=0x19, ry=0x2, msg=0xb34, flag=0x2c object_raw subtype=0x3, x=0x28, y=0xb8, paramA=0x1, paramC=0x80000000 object_raw subtype=0x3, x=0x28, y=0xd8, paramA=0x1, paramC=0x80010000 manager subtype=0x11, paramC=0x84000015 @@ -7230,7 +7237,7 @@ Entities_DeepwoodShrine_Lever_0:: @ 080DEF80 object_raw subtype=0x54, x=0x108, y=0x24, paramB=0x200000, paramC=0x80000000 manager subtype=0x11, paramC=0x80000032 manager subtype=0x5, x=0xf, y=0x8, paramB=0x8b, paramC=0x320001 - manager subtype=0xa, x=0x30f, y=0x203, unknown=0x0, paramB=0xb320000, paramC=0x33 + ezlo_hint x=0x1e, y=0x6, rx=0x3, ry=0x2, msg=0xb32, flag=0x33 object_raw subtype=0x32, x=0x88, y=0x88 object_raw subtype=0x5, x=0x118, y=0xd8, collision=1 object_raw subtype=0x5, x=0x38, y=0xc8, collision=1 @@ -7261,7 +7268,7 @@ Room_DeepwoodShrine_Lever:: @ 080DF090 .4byte sub_StateChange_DeepwoodShrine_Lever Entities_DeepwoodShrine_Entrance_0:: @ 080DF0B0 - manager subtype=0xa, x=0xb03, y=0x30f, unknown=0x0, paramB=0xb120000, paramC=0x37 + ezlo_hint x=0x6, y=0x16, rx=0xf, ry=0x3, msg=0xb12, flag=0x37 projectile_raw subtype=0x15, x=0x48, y=0x68, unknown=0xf, paramC=0x340000 projectile_raw subtype=0x15, x=0x108, y=0x68, unknown=0xf, paramC=0x350000 object_raw subtype=0x34, x=0x98, y=0x88, paramB=0x148, paramC=0x36014e @@ -7298,7 +7305,7 @@ Room_DeepwoodShrine_Entrance:: @ 080DF1B0 Entities_DeepwoodShrine_Torch_0:: @ 080DF1D4 object_raw subtype=0x8, x=0xa8, y=0x28, paramA=0x8, paramC=0x3c0000 - manager subtype=0xa, x=0x309, y=0x103, unknown=0x0, paramB=0xb6b0000, paramC=0x55 + ezlo_hint x=0x12, y=0x6, rx=0x3, ry=0x1, msg=0xb6b, flag=0x55 object_raw subtype=0x3, x=0x68, y=0x68, paramC=0x380000 object_raw subtype=0x3, x=0x68, y=0xa8, paramC=0x390000 object_raw subtype=0x3, x=0xe8, y=0x68, paramC=0x3a0000 @@ -7387,7 +7394,7 @@ Entities_DeepwoodShrine_Compass_0:: @ 080DF48C object_raw subtype=0x14, x=0xa8, y=0x88, paramA=0x1, paramB=0x40 manager subtype=0x1e, x=0xf0, y=0xd0, paramB=0x200040, paramC=0x440000 .ifdef DEMO_JP - manager subtype=0xa, x=0x30a, y=0x403, unknown=0x0, paramB=0xb6f0000, paramC=0x430056 + ezlo_hint x=0x14, y=0x6, rx=0x3, ry=0x4, msg=0xb6f, flag=0x56, flag2=0x43 .endif entity_list_end .else @@ -7404,7 +7411,7 @@ Entities_DeepwoodShrine_Compass_0:: @ 080DF48C object_raw subtype=0xc, x=0x100, y=0x38, paramA=0x4, paramB=0x42 object_raw subtype=0x14, x=0xa8, y=0x88, paramA=0x1, paramB=0x40 manager subtype=0x1e, x=0xf0, y=0xd0, paramB=0x200040, paramC=0x440000 - manager subtype=0xa, x=0x30a, y=0x403, unknown=0x0, paramB=0xb6f0000, paramC=0x430056 + ezlo_hint x=0x14, y=0x6, rx=0x3, ry=0x4, msg=0xb6f, flag=0x56, flag2=0x43 entity_list_end .endif @@ -7452,7 +7459,7 @@ Room_DeepwoodShrine_13:: @ 080DF62C Entities_DeepwoodShrine_LilyPadWest_0:: @ 080DF64C object_raw subtype=0x8, x=0x48, y=0x28, paramA=0x8, paramC=0x45ffff - manager subtype=0xa, x=0xa0b, y=0x501, unknown=0x0, paramB=0xb370000, paramC=0x46 + ezlo_hint x=0x16, y=0x14, rx=0x1, ry=0x5, msg=0xb37, flag=0x46 object_raw subtype=0x14, x=0x78, y=0xc8, paramA=0xff entity_list_end @@ -7541,7 +7548,7 @@ Entities_DeepwoodShrineBoss_Main_0:: @ 080DF88C object_raw subtype=0x39, x=0x88, y=0xc8, paramA=0x6, paramC=0xffff manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x40020000 manager subtype=0xe, y=0x3c, paramA=0x9, paramB=0x1, paramC=0x40020000 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb010000, paramC=0x4002 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb01, flag=0x4002 object_raw subtype=0x5, x=0x38, y=0x38, paramA=0x5f object_raw subtype=0x5, x=0xd8, y=0x38, paramA=0x5f object_raw subtype=0x5, x=0x38, y=0xb8, paramA=0x5f @@ -7615,7 +7622,7 @@ Entities_DeepwoodShrine_InsideBarrel_0:: @ 080DFA90 object_raw subtype=0x26, x=0x78, y=0x50, paramA=0x4 object_raw subtype=0x26, x=0xa0, y=0x50, paramA=0x5 manager subtype=0x1a, unknown=0x8 - manager subtype=0xa, x=0x502, y=0x10c, unknown=0x0, paramB=0xb350000, paramC=0x415004e + ezlo_hint x=0x4, y=0xa, rx=0xc, ry=0x1, msg=0xb35, flag=0x4e, flag2=0x415 entity_list_end Enemies_DeepwoodShrine_InsideBarrel:: @ 080DFB30 @@ -7666,7 +7673,7 @@ Entities_CaveOfFlames_AfterCane_0:: @ 080DFBD0 object_raw subtype=0x5, x=0x118, y=0x48, paramA=0x5f object_raw subtype=0x5, x=0x118, y=0x98, paramA=0x5f manager subtype=0x1e, x=0x50, y=0xc0, paramB=0x200070, paramC=0x3b0000 - manager subtype=0xa, x=0x705, y=0x404, unknown=0x0, paramB=0xb680000, paramC=0x43 + ezlo_hint x=0xa, y=0xe, rx=0x4, ry=0x4, msg=0xb68, flag=0x43 entity_list_end Entities_CaveOfFlames_AfterCane_1:: @ 080DFC70 @@ -7702,7 +7709,7 @@ Entities_CaveOfFlames_SpinyChus_0:: @ 080DFD14 manager subtype=0x1e, x=0x70, y=0x60, paramB=0x300020, paramC=0x80000000 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x168000 object_raw subtype=0xc, x=0x80, y=0x78, paramA=0x2, paramB=0x19, paramC=0x160000 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb020000, paramC=0x80000016 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb02, flag=0x16, flag2=0x8000 object_raw subtype=0x8, x=0x38, y=0x78, paramA=0x3, paramC=0x160000 entity_list_end @@ -7788,7 +7795,7 @@ Room_CaveOfFlames_CartToSpinyChus:: @ 080E0048 .4byte sub_StateChange_CaveOfFlames_CartToSpinyChus Entities_CaveOfFlames_Entrance_0:: @ 080E0068 - manager subtype=0xa, x=0x803, y=0x30b, unknown=0x0, paramB=0xb130000, paramC=0x1b + ezlo_hint x=0x6, y=0x10, rx=0xb, ry=0x3, msg=0xb13, flag=0x1b object_raw subtype=0x5, x=0x38, y=0xa8, paramA=0x5f object_raw subtype=0x5, x=0x48, y=0xa8, paramA=0x5f object_raw subtype=0x5, x=0xc8, y=0xa8, paramA=0x5f @@ -7828,7 +7835,7 @@ Entities_CaveOfFlames_MainCart_0:: @ 080E01AC object_raw subtype=0x8, x=0x258, y=0x38, paramA=0x9, paramC=0x1dffff object_raw subtype=0x8, x=0x2a8, y=0x38, paramA=0xb, paramC=0x1dffff object_raw subtype=0x55, x=0x2f8, y=0x68, paramA=0x2, paramB=0x100 - manager subtype=0xa, x=0x62b, y=0x20a, unknown=0x0, paramB=0xb380000, paramC=0x1e + ezlo_hint x=0x56, y=0xc, rx=0xa, ry=0x2, msg=0xb38, flag=0x1e object_raw subtype=0x6c, x=0x28, y=0x38, paramA=0x3 object_raw subtype=0x6c, x=0x28, y=0xd8, paramA=0x3 object_raw subtype=0x2f, x=0x178, y=0x58, paramC=0x1c0000 @@ -7917,7 +7924,7 @@ Entities_CaveOfFlames_CartWest_0:: @ 080E04D0 object_raw subtype=0x6c, x=0x288, y=0x38, paramA=0x1 object_raw subtype=0x6c, x=0x288, y=0xd8, paramA=0x1 object_raw subtype=0x55, x=0x238, y=0xd8, paramA=0x2, paramB=0x100 - manager subtype=0xa, x=0xb20, y=0x401, unknown=0x0, paramB=0xb390000, paramC=0x21 + ezlo_hint x=0x40, y=0x16, rx=0x1, ry=0x4, msg=0xb39, flag=0x21 object_raw subtype=0x8, x=0xb8, y=0xf8, paramA=0x2, paramC=0x24ffff object_raw subtype=0x8, x=0xb8, y=0xf8, paramA=0x12, paramC=0xffff object_raw subtype=0x5, x=0x168, y=0xc8 @@ -7977,7 +7984,7 @@ Entities_CaveOfFlames_Helmasaur_0:: @ 080E0790 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x220000 object_raw subtype=0x74, x=0x78, y=0x88, collision=2, paramC=0x220000 manager subtype=0x3, x=0x78, y=0x88, unknown=0x0, paramA=0x3, paramB=0x200 - manager subtype=0xa, x=0x303, y=0xb09, unknown=0x0, paramB=0xb3b0000, paramC=0x40630023 + ezlo_hint x=0x6, y=0x6, rx=0x9, ry=0xb, msg=0xb3b, flag=0x23, flag2=0x4063 entity_list_end Entities_CaveOfFlames_Helmasaur_1:: @ 080E07E0 @@ -8065,7 +8072,7 @@ Entities_CaveOfFlames_MinishLava_0:: @ 080E0A44 object_raw subtype=0x3, x=0x58, y=0x138, paramC=0x280000 object_raw subtype=0x8, x=0x48, y=0x178, paramA=0x3, paramC=0x280000 object_raw subtype=0x59, paramB=0x8 - manager subtype=0xa, x=0x1205, y=0x20f, unknown=0x0, paramB=0xb3a0000, paramC=0x44 + ezlo_hint x=0xa, y=0x24, rx=0xf, ry=0x2, msg=0xb3a, flag=0x44 object_raw subtype=0x5, x=0xe8, y=0x138 object_raw subtype=0x5, x=0xf8, y=0x138 object_raw subtype=0x5, x=0xe8, y=0x148 @@ -8293,7 +8300,7 @@ Room_CaveOfFlames_PathBossKey2:: @ 080E11F0 Entities_CaveOfFlames_Compass_0:: @ 080E1218 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x310000 - manager subtype=0xa, x=0x503, y=0x209, unknown=0x0, paramB=0xb270000, paramC=0x33 + ezlo_hint x=0x6, y=0xa, rx=0x9, ry=0x2, msg=0xb27, flag=0x33 object_raw subtype=0xc, x=0x78, y=0x68, paramA=0x2, paramB=0x32, paramC=0x310000 object_raw subtype=0x8, x=0x28, y=0x58, paramA=0x3, paramC=0x31ffff entity_list_end @@ -8468,7 +8475,7 @@ Room_CaveOfFlames_18:: @ 080E1784 Entities_CaveOfFlamesBoss_Main_0:: @ 080E17A4 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x40030000 manager subtype=0xe, y=0x168, paramA=0x9, paramB=0x1, paramC=0x40030000 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb030000, paramC=0x4003 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb03, flag=0x4003 entity_list_end gUnk_additional_9_CaveOfFlamesBoss_Main:: @ 080E17E4 @@ -8588,7 +8595,7 @@ Entities_FortressOfWinds_EastKeyLever_0:: @ 080E1AEC manager subtype=0x11, paramC=0x80020020 manager subtype=0xf, x=0xa8, y=0x148, paramA=0x2, paramC=0x200000 manager subtype=0x2e, unknown=0x0, paramB=0x1e00, paramC=0x20001f - manager subtype=0xa, x=0x1006, y=0x704, unknown=0x0, paramB=0xb3d0000, paramC=0x1f0046 + ezlo_hint x=0xc, y=0x20, rx=0x4, ry=0x7, msg=0xb3d, flag=0x46, flag2=0x1f enemy_raw subtype=0x43, x=0x1d8, y=0x108 enemy_raw subtype=0x43, x=0x1d8, y=0x118 enemy_raw subtype=0x43, x=0x218, y=0x108 @@ -8693,7 +8700,7 @@ Entities_FortressOfWinds_WestKeyLever_0:: @ 080E1F74 manager subtype=0x11, paramC=0x80000024 manager subtype=0xf, x=0x98, y=0x68, paramA=0x1, paramC=0x240000 manager subtype=0x2e, unknown=0x0, paramB=0x1e00, paramC=0x240023 - manager subtype=0xa, x=0x30c, y=0x503, unknown=0x0, paramB=0xb3d0000, paramC=0x230046 + ezlo_hint x=0x18, y=0x6, rx=0x3, ry=0x5, msg=0xb3d, flag=0x46, flag2=0x23 enemy_raw subtype=0x43, x=0x48, y=0x48 enemy_raw subtype=0x43, x=0x38, y=0x88 enemy_raw subtype=0x43, x=0x48, y=0x88 @@ -8744,7 +8751,7 @@ Entities_FortressOfWinds_Darknut_0:: @ 080E2158 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x278000 manager subtype=0x2e, unknown=0x0, paramB=0x3c00, paramC=0x270048 object_raw subtype=0x34, x=0x88, y=0x68, paramB=0x2158, paramC=0x480186 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb040000, paramC=0x80000027 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb04, flag=0x27, flag2=0x8000 enemy_raw subtype=0x43, x=0x48, y=0x28 enemy_raw subtype=0x43, x=0x38, y=0x38 enemy_raw subtype=0x43, x=0xc8, y=0x28 @@ -8830,7 +8837,7 @@ Entities_FortressOfWinds_Pit_0:: @ 080E2444 object_raw subtype=0x54, x=0xc8, y=0x17c, paramB=0x200002, paramC=0x80000000 manager subtype=0x5, x=0xa, y=0x7, paramB=0x2a, paramC=0x80000001 manager subtype=0x5, x=0xb, y=0x7, paramB=0x2a, paramC=0x80000001 - manager subtype=0xa, x=0x409, y=0x204, unknown=0x0, paramB=0xb3c0000, paramC=0x29 + ezlo_hint x=0x12, y=0x8, rx=0x4, ry=0x2, msg=0xb3c, flag=0x29 object_raw subtype=0xae, x=0x58, y=0x78 object_raw subtype=0xae, x=0x78, y=0x78 object_raw subtype=0xae, x=0x68, y=0xa8 @@ -9014,7 +9021,7 @@ Entities_FortressOfWinds_Mazaal_0:: @ 080E2AD8 manager subtype=0x3, x=0x138, y=0x38, unknown=0x0, paramA=0x3, paramB=0x102 object_raw subtype=0x8, x=0xb8, y=0xb8, paramA=0x12, paramC=0x8000ffff object_raw subtype=0x8, x=0xb8, y=0x18, paramC=0x31ffff - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb050000, paramC=0x31 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb05, flag=0x31 entity_list_end Enemies_FortressOfWinds_Mazaal:: @ 080E2BA8 @@ -9296,7 +9303,7 @@ Room_FortressOfWinds_EastStairs2F:: @ 080E33DC .4byte sub_StateChange_Dojos_Waveblade5 Entities_FortressOfWinds_WestStairs1F_0:: @ 080E33FC - manager subtype=0xa, x=0x802, y=0x308, unknown=0x0, paramB=0xb140000, paramC=0x40 + ezlo_hint x=0x4, y=0x10, rx=0x8, ry=0x3, msg=0xb14, flag=0x40 manager subtype=0x17, x=0x68, y=0x68, paramA=0x53, paramB=0x10400, paramC=0x24003f enemy_raw subtype=0x43, x=0x28, y=0x68, paramB=0x5f enemy_raw subtype=0x43, x=0x28, y=0x78, paramB=0x5f @@ -9323,7 +9330,7 @@ Room_FortressOfWinds_WestStairs1F:: @ 080E347C .4byte sub_StateChange_Dojos_Waveblade6 Entities_FortressOfWinds_CenterStairs1F_0:: @ 080E349C - manager subtype=0xa, x=0x803, y=0x309, unknown=0x0, paramB=0xb140000, paramC=0x40 + ezlo_hint x=0x6, y=0x10, rx=0x9, ry=0x3, msg=0xb14, flag=0x40 object_raw subtype=0x34, x=0x68, y=0x68, paramB=0x1058, paramC=0x80000188 object_raw subtype=0x34, x=0x88, y=0x68, paramA=0x1, paramB=0x458, paramC=0x80010199 enemy_raw subtype=0x43, x=0x38, y=0xa8, paramB=0x5f @@ -9348,7 +9355,7 @@ Room_FortressOfWinds_CenterStairs1F:: @ 080E351C .4byte sub_StateChange_Dojos_Waveblade7 Entities_FortressOfWinds_EastStairs1F_0:: @ 080E353C - manager subtype=0xa, x=0x803, y=0x308, unknown=0x0, paramB=0xb140000, paramC=0x40 + ezlo_hint x=0x6, y=0x10, rx=0x8, ry=0x3, msg=0xb14, flag=0x40 manager subtype=0x17, x=0x68, y=0x68, paramA=0x53, paramB=0x10400, paramC=0x200041 entity_list_end @@ -9429,7 +9436,7 @@ Room_FortressOfWinds_HeartPiece:: @ 080E3728 .4byte sub_StateChange_Dojos_70 Entities_InnerMazaal_Main_0:: @ 080E3748 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb050000, paramC=0x31 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb05, flag=0x31 entity_list_end Enemies_InnerMazaal_Main:: @ 080E3768 @@ -9574,9 +9581,9 @@ Room_TempleOfDroplets_EastHole:: @ 080E3B40 .4byte sub_StateChange_TempleOfDroplets_EastHole Entities_TempleOfDroplets_Entrance_0:: @ 080E3B60 - manager subtype=0xa, x=0xd0c, y=0x309, unknown=0x0, paramB=0xb170000, paramC=0x2b - manager subtype=0xa, x=0x130a, y=0x501, unknown=0x0, paramB=0xb3e0000, paramC=0x7f - manager subtype=0xa, x=0x1316, y=0x501, unknown=0x0, paramB=0xb3e0000, paramC=0x7f + ezlo_hint x=0x18, y=0x1a, rx=0x9, ry=0x3, msg=0xb17, flag=0x2b + ezlo_hint x=0x14, y=0x26, rx=0x1, ry=0x5, msg=0xb3e, flag=0x7f + ezlo_hint x=0x2c, y=0x26, rx=0x1, ry=0x5, msg=0xb3e, flag=0x7f object_raw subtype=0x84, x=0x78, y=0xb8 object_raw subtype=0x84, x=0x98, y=0xb8 object_raw subtype=0x84, x=0x88, y=0xc8 @@ -9741,12 +9748,12 @@ Room_TempleOfDroplets_WaterfallNortheast:: @ 080E4054 .4byte sub_StateChange_TempleOfDroplets_WaterfallNortheast Entities_TempleOfDroplets_Element_0:: @ 080E4074 - manager subtype=0xa, x=0xa0a, y=0x20d, unknown=0x0, paramB=0xb410000, paramC=0x80 + ezlo_hint x=0x14, y=0x14, rx=0xd, ry=0x2, msg=0xb41, flag=0x80 manager subtype=0x15, x=0x108, y=0x118, unknown=0x8, paramA=0x4, paramB=0xff78, paramC=0x340000 object_raw subtype=0x8f, x=0x108, y=0xd8 object_raw subtype=0x83, x=0x58, y=0x58, paramC=0x360000 object_raw subtype=0x83, x=0x1b8, y=0x58, paramC=0x340000 - manager subtype=0xa, x=0x319, y=0x505, unknown=0x0, paramB=0xb420000, paramC=0x80640081 + ezlo_hint x=0x32, y=0x6, rx=0x5, ry=0x5, msg=0xb42, flag=0x81, flag2=0x8064 object_raw subtype=0x85, x=0x160, y=0x120, paramB=0x8, paramC=0x310000 object_raw subtype=0x5, x=0xc8, y=0x38 object_raw subtype=0x5, x=0x148, y=0x38 @@ -10017,7 +10024,7 @@ Entities_TempleOfDroplets_BigOcto_0:: @ 080E4944 object_raw subtype=0x33, x=0x108, y=0x18, paramA=0x4, paramB=0x1, paramC=0x80010000 object_raw subtype=0x33, x=0x118, y=0x18, paramA=0x4, paramB=0x1, paramC=0x80010000 manager subtype=0xe, y=0x3c, paramA=0x9, paramB=0x1, paramC=0x40050000 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb070000, paramC=0x4005 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb07, flag=0x4005 entity_list_end gUnk_additional_9_TempleOfDroplets_BigOcto:: @ 080E49C4 @@ -10191,8 +10198,8 @@ Entities_TempleOfDroplets_NorthSmallKey_0:: @ 080E4E30 manager subtype=0x2e, unknown=0x0, paramB=0x1e00, paramC=0x510050 manager subtype=0x15, x=0x88, y=0x68, unknown=0x8, paramA=0x2, paramB=0xfff8, paramC=0x5100a3 object_raw subtype=0x84, x=0x48, y=0x48, paramA=0x1, paramB=0x8, paramC=0x520000 - manager subtype=0xa, x=0x30b, y=0x503, unknown=0x0, paramB=0xb400000, paramC=0x500053 - manager subtype=0xa, x=0x303, y=0x504, unknown=0x0, paramB=0xb3f0000, paramC=0x84 + ezlo_hint x=0x16, y=0x6, rx=0x3, ry=0x5, msg=0xb40, flag=0x53, flag2=0x50 + ezlo_hint x=0x6, y=0x6, rx=0x4, ry=0x5, msg=0xb3f, flag=0x84 entity_list_end Enemies_TempleOfDroplets_NorthSmallKey:: @ 080E4EA0 @@ -10485,7 +10492,7 @@ Room_TempleOfDroplets_LilypadIceBlocks:: @ 080E5730 .4byte sub_StateChange_TempleOfDroplets_LilypadIceBlocks Entities_TempleOfDroplets_Pit_0:: @ 080E5750 - manager subtype=0xa, x=0x502, y=0x302, unknown=0x0, paramB=0xb450000, paramC=0x5c + ezlo_hint x=0x4, y=0xa, rx=0x2, ry=0x3, msg=0xb45, flag=0x5c object_raw subtype=0x5, x=0x48, y=0x28 object_raw subtype=0x5, x=0x48, y=0x38 object_raw subtype=0x5, x=0x48, y=0x88 @@ -11270,7 +11277,7 @@ Room_RoyalCrypt_MushroomPit:: @ 080E714C .4byte sub_StateChange_RoyalCrypt_MushroomPit Entities_RoyalCrypt_Entrance_0:: @ 080E716C - manager subtype=0xa, x=0x707, y=0x103, unknown=0x0, paramB=0xb180000, paramC=0xc0 + ezlo_hint x=0xe, y=0xe, rx=0x3, ry=0x1, msg=0xb18, flag=0xc0 entity_list_end gUnk_080E718C:: @ 080E718C @@ -11639,7 +11646,7 @@ Entities_PalaceOfWinds_10_0:: @ 080E7CA4 enemy_raw subtype=0x43, x=0xa8, y=0x38, paramB=0x5f enemy_raw subtype=0x43, x=0x58, y=0x38, paramB=0x5f enemy_raw subtype=0x43, x=0x98, y=0x38, paramB=0x5f - manager subtype=0xa, x=0x803, y=0x209, unknown=0x0, paramB=0xb6a0000, paramC=0x7f + ezlo_hint x=0x6, y=0x10, rx=0x9, ry=0x2, msg=0xb6a, flag=0x7f entity_list_end Enemies_PalaceOfWinds_10:: @ 080E7D24 @@ -12364,7 +12371,7 @@ Entities_PalaceOfWinds_33_0:: @ 080E9330 object_raw subtype=0x29, x=0x80, y=0xe0, paramA=0x8 object_raw subtype=0x29, x=0x140, y=0xe0, paramA=0x80 manager subtype=0x2c, x=0x80, paramB=0x4011670, paramC=0x500080 - manager subtype=0xa, x=0x1721, y=0x307, unknown=0x0, paramB=0xb480000, paramC=0x65 + ezlo_hint x=0x42, y=0x2e, rx=0x7, ry=0x3, msg=0xb48, flag=0x65 object_raw subtype=0x16, x=0x60, y=0x180, collision=1, paramA=0x3, paramB=0x8 entity_list_end @@ -12432,7 +12439,7 @@ Entities_PalaceOfWinds_34_0:: @ 080E9544 object_raw subtype=0x9f, x=0x108, y=0x110, paramA=0x3, paramB=0x3c100f01, paramC=0x67 object_raw subtype=0x9f, x=0x108, y=0x1a0, paramA=0x3, paramB=0x3c100f01, paramC=0x67 object_raw subtype=0x9f, x=0x108, y=0x1c0, paramA=0x3, paramB=0x3c100f01, paramC=0x67 - manager subtype=0xa, x=0x1311, y=0x302, unknown=0x0, paramB=0xb490000, paramC=0x68 + ezlo_hint x=0x22, y=0x26, rx=0x2, ry=0x3, msg=0xb49, flag=0x68 entity_list_end Enemies_PalaceOfWinds_34:: @ 080E9684 @@ -12750,7 +12757,7 @@ Entities_PalaceOfWinds_44_0:: @ 080E9F4C object_raw subtype=0xc, x=0x78, y=0xd8, paramA=0x2, paramB=0x74, paramC=0x700000 object_raw subtype=0x29, x=0x140, y=0xe0, paramA=0x8 manager subtype=0x2c, x=0x140, paramB=0x4012170, paramC=0xe00140 - manager subtype=0xa, x=0xd13, y=0x404, unknown=0x0, paramB=0xb470000, paramC=0x75 + ezlo_hint x=0x26, y=0x1a, rx=0x4, ry=0x4, msg=0xb47, flag=0x75 .else object_raw subtype=0x29, x=0x140, y=0xe0, paramA=0x8 manager subtype=0x2c, x=0x140, paramB=0x4012170, paramC=0xe00140 @@ -12763,7 +12770,7 @@ Entities_PalaceOfWinds_44_0:: @ 080E9F4C object_raw subtype=0x33, x=0x78, y=0x118, paramA=0x5, paramB=0x1, paramC=0x80000000 object_raw subtype=0x33, x=0x88, y=0x118, paramA=0x5, paramB=0x1, paramC=0x80000000 object_raw subtype=0xc, x=0x78, y=0xd8, paramA=0x2, paramB=0x74, paramC=0x700000 - manager subtype=0xa, x=0xd13, y=0x404, unknown=0x0, paramB=0xb470000, paramC=0x75 + ezlo_hint x=0x26, y=0x1a, rx=0x4, ry=0x4, msg=0xb47, flag=0x75 .endif object_raw subtype=0x5, x=0x168, y=0xb8 object_raw subtype=0x5, x=0x178, y=0xb8, paramA=0x5e @@ -12969,7 +12976,7 @@ Room_PalaceOfWinds_48:: @ 080EA6E8 .4byte sub_StateChange_PalaceOfWinds_48 Entities_PalaceOfWinds_49_0:: @ 080EA708 - manager subtype=0xa, x=0x222, y=0x703, unknown=0x0, paramB=0xb190000, paramC=0x77 + ezlo_hint x=0x44, y=0x4, rx=0x3, ry=0x7, msg=0xb19, flag=0x77 manager subtype=0x1a, unknown=0x8, paramA=0x32 object_raw subtype=0x34, x=0x208, y=0x58, paramB=0xc70, paramC=0x840207 object_raw subtype=0x34, x=0x1d8, y=0x58, paramA=0x1, paramB=0x1570, paramC=0x860128 @@ -12998,7 +13005,7 @@ Room_PalaceOfWinds_49:: @ 080EA7C8 .4byte sub_StateChange_PalaceOfWinds_49 Entities_PalaceOfWinds_50_0:: @ 080EA7E8 - manager subtype=0xa, x=0xf14, y=0x305, unknown=0x0, paramB=0xb1a0000, paramC=0x78 + ezlo_hint x=0x28, y=0x1e, rx=0x5, ry=0x3, msg=0xb1a, flag=0x78 object_raw subtype=0xa1, x=0x168, y=0x128, paramB=0x1 object_raw subtype=0xc, x=0x218, y=0x98, paramA=0x4, paramB=0x79 enemy_raw subtype=0x43, x=0x198, y=0xb8, paramB=0x5f @@ -13049,7 +13056,7 @@ Room_PalaceOfWinds_50:: @ 080EA9E0 Entities_PalaceOfWindsBoss_Main_0:: @ 080EAA00 object_raw subtype=0xba - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb090000 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb09, flag=0x0 entity_list_end Entities_PalaceOfWindsBoss_Main_1:: @ 080EAA30 @@ -13074,7 +13081,7 @@ Room_PalaceOfWindsBoss_Main:: @ 080EAA58 Entities_Vaati2_Main_0:: @ 080EAA78 object_raw subtype=0x69, unknown=0x4f, paramC=script_0800DFE4 npc_raw subtype=0x3b, x=0xb0, y=0x88, unknown=0xf, script=0x0 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0c0000, paramC=0x7b + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0c, flag=0x7b entity_list_end Entities_Vaati2_Main_1:: @ 080EAAB8 @@ -13104,7 +13111,7 @@ Entities_Vaati3_Main_0:: @ 080EAB20 npc_raw subtype=0x4e, script=script_0800A0FC object_raw subtype=0x74, x=0xb0, y=0x28, collision=1, paramC=0xffff0000 manager subtype=0x3, x=0xb0, y=0x28, unknown=0x0, paramA=0x3, paramB=0x102 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0d0000, paramC=0x4051 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0d, flag=0x4051 entity_list_end Enemies_Vaati3_Main:: @ 080EAB90 @@ -13152,7 +13159,7 @@ Room_DarkHyruleCastleBridge_Main:: @ 080EAC40 Entities_VaatisArms_First_0:: @ 080EAC60 enemy_raw subtype=0x25, x=0x98, y=0x68 .ifdef USA_DEMOS - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0d0000 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0d, flag=0x0 .endif entity_list_end @@ -13175,7 +13182,7 @@ Room_VaatisArms_First:: @ 080EACA8 Entities_VaatisArms_Second_0:: @ 080EACC8 enemy_raw subtype=0x25, x=0x98, y=0x68 .ifdef USA_DEMOS - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0d0000 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0d, flag=0x0 .endif entity_list_end @@ -13242,7 +13249,7 @@ gUnk_080EAE60:: @ 080EAE60 npc_raw subtype=0x25, x=0xb8, y=0x138, script=script_0800E0BC npc_raw subtype=0x15, x=0x68, y=0x118, paramB=0x24, script=script_0800E154 npc_raw subtype=0x15, x=0x88, y=0x180, paramB=0x25, script=script_0800E200 - manager subtype=0xa, x=0xf02, y=0x90d, unknown=0x0, paramB=0xb250000, paramC=0x85 + ezlo_hint x=0x4, y=0x1e, rx=0xd, ry=0x9, msg=0xb25, flag=0x85 .ifndef EU manager subtype=0xf, paramA=0xe .endif @@ -13695,7 +13702,7 @@ Enemies_DarkHyruleCastle_6:: @ 080EBB34 object_raw subtype=0x5, x=0x38, y=0xc8, paramA=0x5e object_raw subtype=0x5, x=0x118, y=0xc8, paramA=0x60 .endif - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0b0000 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0b, flag=0x0 entity_list_end TileEntities_DarkHyruleCastle_6:: @ 080EBBA4 @@ -13839,7 +13846,7 @@ gUnk_additional_8_DarkHyruleCastle_10:: @ 080EBFD8 object_raw subtype=0x8, x=0x88, y=0xa8, paramA=0x12, paramC=0x86ffff object_raw subtype=0x39, x=0x88, y=0x28, paramA=0x4, paramC=0x86ffff object_raw subtype=0x69, unknown=0x4f, paramC=script_0800E5C4 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0a0000, paramC=0x86 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0a, flag=0x86 entity_list_end Room_DarkHyruleCastle_10:: @ 080EC038 @@ -13967,7 +13974,7 @@ gUnk_additional_8_DarkHyruleCastle_14:: @ 080EC374 enemy_raw subtype=0x5, x=0x88, y=0x68, paramA=0x2 object_raw subtype=0x8, x=0x88, y=0xa8, paramA=0x12, paramC=0x4cffff object_raw subtype=0x8, x=0xe8, y=0x68, paramA=0x11, paramC=0x4cffff - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0f0000, paramC=0x4c + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0f, flag=0x4c entity_list_end Room_DarkHyruleCastle_14:: @ 080EC3C4 @@ -14038,7 +14045,7 @@ gUnk_additional_8_DarkHyruleCastle_16:: @ 080EC590 manager subtype=0x28, unknown=0x3, paramB=0x8 object_raw subtype=0x8, x=0x88, y=0xa8, paramA=0x12, paramC=0x4dffff object_raw subtype=0x8, x=0x28, y=0x68, paramA=0x13, paramC=0x4dffff - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0f0000, paramC=0x4d + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0f, flag=0x4d entity_list_end Room_DarkHyruleCastle_16:: @ 080EC600 @@ -14140,7 +14147,7 @@ gUnk_additional_8_DarkHyruleCastle_19:: @ 080EC8C8 manager subtype=0x28, unknown=0x3, paramB=0x8 object_raw subtype=0x8, x=0x88, y=0x28, paramA=0x10, paramC=0x53ffff object_raw subtype=0x8, x=0xe8, y=0x68, paramA=0x11, paramC=0x53ffff - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0f0000, paramC=0x53 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0f, flag=0x53 entity_list_end Room_DarkHyruleCastle_19:: @ 080EC938 @@ -14211,7 +14218,7 @@ gUnk_additional_8_DarkHyruleCastle_21:: @ 080ECB00 enemy_raw subtype=0x5, x=0x88, y=0x68, paramA=0x2 object_raw subtype=0x8, x=0x88, y=0x28, paramA=0x10, paramC=0x56ffff object_raw subtype=0x8, x=0x28, y=0x68, paramA=0x13, paramC=0x56ffff - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0f0000, paramC=0x4c + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0f, flag=0x4c entity_list_end Room_DarkHyruleCastle_21:: @ 080ECB50 @@ -14387,7 +14394,7 @@ Room_DarkHyruleCastle_27:: @ 080ECF6C .4byte sub_StateChange_Dojos_ToGreatblade8 Entities_DarkHyruleCastle_28_0:: @ 080ECF8C - manager subtype=0xa, x=0x300, y=0x811, unknown=0x0, paramB=0xb1b0000, paramC=0x5c + ezlo_hint x=0x0, y=0x6, rx=0x11, ry=0x8, msg=0xb1b, flag=0x5c entity_list_end Enemies_DarkHyruleCastle_28:: @ 080ECFAC @@ -14685,7 +14692,7 @@ Entities_DarkHyruleCastle_38_0:: @ 080ED668 object_raw subtype=0x33, x=0x88, y=0x58, paramA=0x5, paramC=0x620000 object_raw subtype=0x33, x=0x98, y=0x58, paramA=0x5, paramC=0x620000 object_raw subtype=0x33, x=0xa8, y=0x58, paramA=0x5, paramC=0x620000 - manager subtype=0xa, x=0x608, y=0x501, unknown=0x0, paramB=0xb4a0000, paramC=0x63 + ezlo_hint x=0x10, y=0xc, rx=0x1, ry=0x5, msg=0xb4a, flag=0x63 entity_list_end Enemies_DarkHyruleCastle_38:: @ 080ED6E8 @@ -15932,7 +15939,7 @@ Room_HyruleTown_8:: @ 080EFCC0 .4byte sub_StateChange_HyruleTown_0 Entities_HyruleTownMinishCaves_Entrance_0:: @ 080EFCE0 - manager subtype=0xa, x=0xe0e, y=0x105, unknown=0x0, paramB=0xb150000, paramC=0xbe + ezlo_hint x=0x1c, y=0x1c, rx=0x5, ry=0x1, msg=0xb15, flag=0xbe object_raw subtype=0x5, x=0x48, y=0x78 object_raw subtype=0x5, x=0x58, y=0x78 object_raw subtype=0x5, x=0x68, y=0x78 @@ -16091,7 +16098,7 @@ Entities_HyruleTownMinishCaves_Flippers_0:: @ 080F0114 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x120011 object_raw subtype=0xc, x=0xd8, y=0x28, paramA=0x2, paramB=0x14, paramC=0x120000 .ifndef EU - manager subtype=0xa, x=0x509, y=0x409, unknown=0x0, paramB=0xb6d0000, paramC=0x1400c7 + ezlo_hint x=0x12, y=0xa, rx=0x9, ry=0x4, msg=0xb6d, flag=0xc7, flag2=0x14 .endif object_raw subtype=0x0, x=0x60, y=0x28, collision=1, paramA=0x57, paramB=0x800, paramC=0x130000 entity_list_end @@ -16123,7 +16130,7 @@ Entities_HyruleTownMinishCaves_Librari_0:: @ 080F01F8 entity_list_end Enemies_HyruleTownMinishCaves_Librari:: @ 080F0208 - manager subtype=0xa, x=0x20a, y=0x305, unknown=0x0, paramB=0xb160000, paramC=0xbf + ezlo_hint x=0x14, y=0x4, rx=0x5, ry=0x3, msg=0xb16, flag=0xbf entity_list_end TileEntities_HyruleTownMinishCaves_Librari:: @ 080F0228 @@ -16293,9 +16300,9 @@ Room_HyruleTownUnderground_Well:: @ 080F0610 Entities_CastleGarden_Main_0:: @ 080F0630 .ifdef EU_JP - manager subtype=0xa, x=0x31e, y=0x103, unknown=0x0, paramB=0xb580000, paramC=0x14 + ezlo_hint x=0x3c, y=0x6, rx=0x3, ry=0x1, msg=0xb58, flag=0x14 .else - manager subtype=0xa, x=0x31e, y=0x103, unknown=0x0, paramB=0xb580000, paramC=0x13 + ezlo_hint x=0x3c, y=0x6, rx=0x3, ry=0x1, msg=0xb58, flag=0x13 .endif entity_list_end @@ -16863,7 +16870,7 @@ Room_HouseInteriors2_DrLeft:: @ 080F22F4 Entities_HouseInteriors2_Romio_0:: @ 080F232C npc_raw subtype=0x35, x=0x48, y=0x68, unknown=0xf, paramA=0x3, paramB=0x3, script=0x0 object_raw subtype=0x8d, x=0x98, y=0x28, paramC=0x850000 - manager subtype=0xa, x=0x50b, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb240000, paramC=0xc3 + ezlo_hint type=0x2, x=0x16, y=0xa, rx=0x2, ry=0x2, msg=0xb24, flag=0xc3 entity_list_end gUnk_additional_c_HouseInteriors2_Romio:: @ 080F236C @@ -16932,8 +16939,8 @@ Entities_HouseInteriors2_Julietta_0:: @ 080F2510 npc_raw subtype=0x2c, x=0x38, y=0x78, unknown=0xf, collision=1, paramA=0x4, paramB=0x4000, script=0x0 manager subtype=0x26, paramA=0xa, paramB=0x28ff object_raw subtype=0x8b, x=0x68, y=0x48, collision=1, paramB=0x1, paramC=0x3e0000 - manager subtype=0xa, x=0x608, y=0x105, unknown=0x0, paramA=0x2, paramB=0xb5a0000, paramC=0xc6 - manager subtype=0xa, x=0x403, y=0x102, unknown=0x0, paramA=0x2, paramB=0xb5b0000, paramC=0xc7 + ezlo_hint type=0x2, x=0x10, y=0xc, rx=0x5, ry=0x1, msg=0xb5a, flag=0xc6 + ezlo_hint type=0x2, x=0x6, y=0x8, rx=0x2, ry=0x1, msg=0xb5b, flag=0xc7 entity_list_end gUnk_080F2570:: @ 080F2570 @@ -16948,7 +16955,7 @@ gUnk_080F2590:: @ 080F2590 gUnk_080F25C0:: @ 080F25C0 object_raw subtype=0x8c, x=0x6c, y=0x36, collision=1, paramC=0x6c0000 object_raw subtype=0x5a, x=0xb0, y=0x80, collision=1, paramA=0x2, paramB=0x1 - manager subtype=0xa, x=0x402, y=0x406, unknown=0x0, paramB=0xb600000, paramC=0xcc + ezlo_hint x=0x4, y=0x8, rx=0x6, ry=0x4, msg=0xb60, flag=0xcc entity_list_end gUnk_080F2600:: @ 080F2600 @@ -17223,7 +17230,7 @@ Room_HouseInteriors2_Cucco:: @ 080F2D7C .4byte gUnk_additional_b_HouseInteriors2_Cucco Entities_HouseInteriors2_LinksHouseEntrance_0:: @ 080F2DAC - manager subtype=0xa, x=0x706, y=0x103, unknown=0x0, paramB=0xb510000, paramC=0xc8 + ezlo_hint x=0xc, y=0xe, rx=0x3, ry=0x1, msg=0xb51, flag=0xc8 entity_list_end Entities_HouseInteriors2_LinksHouseEntrance_1:: @ 080F2DCC @@ -17365,9 +17372,9 @@ Room_HouseInteriors2_Stockwell:: @ 080F3174 .4byte gUnk_additional_8_HouseInteriors2_Stockwell Entities_HouseInteriors2_LinksHouseBedroom_0:: @ 080F3198 - manager subtype=0xa, x=0x302, y=0x107, unknown=0x0, paramB=0xb520000, paramC=0xc9 - manager subtype=0xa, x=0x206, y=0x101, unknown=0x0, paramB=0xb520000, paramC=0xc9 - manager subtype=0xa, x=0x702, y=0x101, unknown=0x0, paramB=0xb530000, paramC=0xca + ezlo_hint x=0x4, y=0x6, rx=0x7, ry=0x1, msg=0xb52, flag=0xc9 + ezlo_hint x=0xc, y=0x4, rx=0x1, ry=0x1, msg=0xb52, flag=0xc9 + ezlo_hint x=0x4, y=0xe, rx=0x1, ry=0x1, msg=0xb53, flag=0xca entity_list_end gUnk_080F31D8:: @ 080F31D8 @@ -18668,7 +18675,7 @@ Entities_HouseInteriors3_Cafe_0:: @ 080F5958 npc_raw subtype=0x6, x=0x40, y=0x50, paramA=0x5, paramB=0x400, script=script_0800EC8C npc_raw subtype=0x53, x=0x28, y=0x78, script=script_08010BB4 manager subtype=0x26, paramA=0xb, paramB=0x28ff - manager subtype=0xa, x=0xa0b, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb240000, paramC=0xc3 + ezlo_hint type=0x2, x=0x16, y=0x14, rx=0x2, ry=0x2, msg=0xb24, flag=0xc3 entity_list_end Entities_HouseInteriors3_Cafe_1:: @ 080F59E8 @@ -18716,12 +18723,12 @@ Room_HouseInteriors3_Cafe:: @ 080F5ADC Entities_HouseInteriors3_RemShoeShop_0:: @ 080F5B0C npc_raw subtype=0x37, x=0x68, y=0x41, unknown=0xf, script=0x0 - manager subtype=0xa, x=0x402, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb240000, paramC=0xc3 + ezlo_hint type=0x2, x=0x4, y=0x8, rx=0x2, ry=0x2, msg=0xb24, flag=0xc3 entity_list_end gUnk_080F5B3C:: @ 080F5B3C .ifndef EU - manager subtype=0xa, x=0x108, y=0x802, unknown=0x0, paramB=0xb6e0000, paramC=0xce + ezlo_hint x=0x10, y=0x2, rx=0x2, ry=0x8, msg=0xb6e, flag=0xce entity_list_end .endif @@ -18768,7 +18775,7 @@ Room_HouseInteriors3_RemShoeShop:: @ 080F5BE8 Entities_HouseInteriors3_Bakery_0:: @ 080F5C10 npc_raw subtype=0xd, x=0xa8, y=0x5c, script=script_08010674 npc_raw subtype=0xe, x=0x30, y=0x56, script=script_080106AC - manager subtype=0xa, x=0x702, y=0x107, unknown=0x0, paramB=0xb560000, paramC=0xcb + ezlo_hint x=0x4, y=0xe, rx=0x7, ry=0x1, msg=0xb56, flag=0xcb entity_list_end npc_raw subtype=0x6, x=0x68, y=0x90, paramA=0x7, paramB=0x400, script=script_0800EBDC entity_list_end @@ -19783,11 +19790,11 @@ Entities_HyruleField_LonLonRanch_0:: @ 080F7720 .ifdef EU_JP object_raw subtype=0x0, x=0x218, y=0x74, collision=1, paramA=0x63, paramB=0x400, paramC=0x7c0000 object_raw subtype=0x0, x=0x138, y=0x108, collision=1, paramA=0x57, paramB=0x700, paramC=0x7d0000 - manager subtype=0xa, x=0x1b16, y=0x203, unknown=0x0, paramB=0xb590000, paramC=0x7e + ezlo_hint x=0x2c, y=0x36, rx=0x3, ry=0x2, msg=0xb59, flag=0x7e .else object_raw subtype=0x0, x=0x218, y=0x74, collision=1, paramA=0x63, paramB=0x400, paramC=0x7e0000 object_raw subtype=0x0, x=0x138, y=0x108, collision=1, paramA=0x57, paramB=0x700, paramC=0x7f0000 - manager subtype=0xa, x=0x1b16, y=0x203, unknown=0x0, paramB=0xb590000, paramC=0x80 + ezlo_hint x=0x2c, y=0x36, rx=0x3, ry=0x2, msg=0xb59, flag=0x80 .endif entity_list_end @@ -20920,7 +20927,7 @@ Entities_VeilFalls_Main_0:: @ 080F9264 object_raw subtype=0x0, x=0x178, y=0x278, collision=1, paramA=0x56, paramB=0x400, paramC=0xa40000 object_raw subtype=0x0, x=0x148, y=0xb8, collision=1, paramA=0x57, paramB=0x700, paramC=0xa70000 object_raw subtype=0x0, x=0x138, y=0x308, collision=1, paramA=0x57, paramB=0x700, paramC=0xf70000 - manager subtype=0xa, x=0x2002, y=0x303, unknown=0x0, paramB=0xb1e0000, paramC=0xa5 + ezlo_hint x=0x4, y=0x40, rx=0x3, ry=0x3, msg=0xb1e, flag=0xa5 entity_list_end .else manager subtype=0x4 @@ -20931,7 +20938,7 @@ Entities_VeilFalls_Main_0:: @ 080F9264 object_raw subtype=0x0, x=0x178, y=0x278, collision=1, paramA=0x56, paramB=0x400, paramC=0xa50000 object_raw subtype=0x0, x=0x148, y=0xb8, collision=1, paramA=0x57, paramB=0x700, paramC=0xa80000 object_raw subtype=0x0, x=0x138, y=0x308, collision=1, paramA=0x57, paramB=0x700, paramC=0xaa0000 - manager subtype=0xa, x=0x2002, y=0x303, unknown=0x0, paramB=0xb1e0000, paramC=0xa6 + ezlo_hint x=0x4, y=0x40, rx=0x3, ry=0x3, msg=0xb1e, flag=0xa6 entity_list_end .endif @@ -21259,12 +21266,12 @@ Entities_VeilFallsTop_Main_0:: @ 080F9B78 gUnk_080F9BF8:: @ 080F9BF8 .ifdef EU_JP - manager subtype=0xa, x=0x307, y=0x202, unknown=0x0, paramB=0xb200000, paramC=0xaa + ezlo_hint x=0xe, y=0x6, rx=0x2, ry=0x2, msg=0xb20, flag=0xaa object_raw subtype=0x82, x=0x58, y=0x38, paramB=0x1 npc_raw subtype=0x4c, x=0x140, y=0xf8, script=script_08009320 entity_list_end .else - manager subtype=0xa, x=0x307, y=0x202, unknown=0x0, paramB=0xb200000, paramC=0xac + ezlo_hint x=0xe, y=0x6, rx=0x2, ry=0x2, msg=0xb20, flag=0xac object_raw subtype=0x82, x=0x58, y=0x38, paramB=0x1 npc_raw subtype=0x4c, x=0x140, y=0xf8, script=script_08009320 entity_list_end @@ -22381,9 +22388,9 @@ Entities_MtCrenel_Entrance_0:: @ 080FB480 object_raw subtype=0x5e, x=0x178, y=0x178 object_raw subtype=0x5e, x=0x128, y=0x160 object_raw subtype=0x0, x=0x318, y=0x164, collision=1, paramA=0x56, paramB=0x400, paramC=0x490000 - manager subtype=0xa, x=0x1316, y=0x204, unknown=0x0, paramB=0xb2a0000, paramC=0x48 - manager subtype=0xa, x=0xd11, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb230000, paramC=0xf8 - manager subtype=0xa, x=0xe2e, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb230000, paramC=0xf8 + ezlo_hint x=0x2c, y=0x26, rx=0x4, ry=0x2, msg=0xb2a, flag=0x48 + ezlo_hint type=0x2, x=0x22, y=0x1a, rx=0x2, ry=0x2, msg=0xb23, flag=0xf8 + ezlo_hint type=0x2, x=0x5c, y=0x1c, rx=0x2, ry=0x2, msg=0xb23, flag=0xf8 entity_list_end .else object_raw subtype=0x6b, x=0x118, y=0x28, paramB=0x4e @@ -22403,9 +22410,9 @@ Entities_MtCrenel_Entrance_0:: @ 080FB480 object_raw subtype=0x5e, x=0x178, y=0x178 object_raw subtype=0x5e, x=0x128, y=0x160 object_raw subtype=0x0, x=0x318, y=0x164, collision=1, paramA=0x56, paramB=0x400, paramC=0x4b0000 - manager subtype=0xa, x=0x1316, y=0x204, unknown=0x0, paramB=0xb2a0000, paramC=0x49 - manager subtype=0xa, x=0xd11, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb230000, paramC=0x4a - manager subtype=0xa, x=0xe2e, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb230000, paramC=0x4a + ezlo_hint x=0x2c, y=0x26, rx=0x4, ry=0x2, msg=0xb2a, flag=0x49 + ezlo_hint type=0x2, x=0x22, y=0x1a, rx=0x2, ry=0x2, msg=0xb23, flag=0x4a + ezlo_hint type=0x2, x=0x5c, y=0x1c, rx=0x2, ry=0x2, msg=0xb23, flag=0x4a entity_list_end .endif @@ -22784,7 +22791,7 @@ Entities_CrenelCaves_HelmasaurHallway_0:: @ 080FBF3C object_raw subtype=0x5, x=0x198, y=0x38, collision=1 object_raw subtype=0x5, x=0x208, y=0x48, collision=1 object_raw subtype=0x5, x=0x208, y=0x58, collision=1 - manager subtype=0xa, x=0x404, y=0x508, unknown=0x0, paramB=0xb260000, paramC=0x86 + ezlo_hint x=0x8, y=0x8, rx=0x8, ry=0x5, msg=0xb26, flag=0x86 entity_list_end Entities_CrenelCaves_HelmasaurHallway_1:: @ 080FBFFC diff --git a/include/area.h b/include/area.h index c8d10a53..3f1c0421 100644 --- a/include/area.h +++ b/include/area.h @@ -38,7 +38,7 @@ typedef struct { bool8 playShrinkSeq; u8 unk1A; u8 filler2[13]; - u8 field_0x28; + u8 inventoryGfxIdx; u8 filler4[0x13]; RoomResInfo roomResInfos[MAX_ROOMS]; RoomResInfo currentRoomInfo; diff --git a/include/flags.h b/include/flags.h index e7219f3a..1d3080ae 100644 --- a/include/flags.h +++ b/include/flags.h @@ -648,8 +648,8 @@ typedef enum { BILL_02_CAP_0, MHOUSE_07_CAP_0, MHOUSE_07_CAP_1, - MHOUSE_10_CAP_0, - MHOUSE_15_CAP_0, + MHOUSE_10_CAP_0, // links house entrance + MHOUSE_15_CAP_0, // links bedroom MHOUSE_15_CAP_1, SHOP_03_CAP_0, MHOUSE_07_CAP_2, diff --git a/include/functions.h b/include/functions.h index cc90e57f..31402827 100644 --- a/include/functions.h +++ b/include/functions.h @@ -188,7 +188,7 @@ extern void sub_0801DFB4(Entity*, u32, u32, u32); extern void sub_0801E00C(); extern void sub_08078790(Entity*, u32); extern void sub_080788E0(Entity*); -extern void sub_08078AA8(u32, u32); +extern void CreateEzloHint(u32, u32); extern void sub_08078B48(void); extern void sub_0807919C(); extern void sub_0807CAA0(u32, u32); diff --git a/include/manager.h b/include/manager.h index e18c51e8..44852146 100644 --- a/include/manager.h +++ b/include/manager.h @@ -63,19 +63,19 @@ typedef struct { typedef struct { Manager manager; - u16 unk_20; - u16 unk_22; - u16 unk_24; - u16 unk_26; - u8 unk_28[0x0D]; - u8 unk_35; - u16 unk_36; - u8 unk_38; - u8 unk_39; - u8 unk_3a; - u8 unk_3b; - u16 unk_3c; - u16 unk_3e; + u16 x; + u16 y; + u16 rx; + u16 ry; + u8 unk_28[13]; + u8 msg_height; + u16 msg_idx; + u8 x_raw; + u8 y_raw; + u8 rx_raw; + u8 ry_raw; + u16 flag1; + u16 flag2; } ManagerA; typedef struct { diff --git a/include/player.h b/include/player.h index 8512db67..be0e0987 100644 --- a/include/player.h +++ b/include/player.h @@ -39,6 +39,38 @@ enum PlayerActions { PLAYER_PARACHUTE, }; +enum PlayerFrameState { + PL_STATE_IDLE, + PL_STATE_WALK, + PL_STATE_SWORD, + PL_STATE_GUSTJAR, + PL_STATE_HOLD, + PL_STATE_THROW, + PL_STATE_6, + PL_STATE_SWIM, + PL_STATE_PARACHUTE, + PL_STATE_ROLL, + PL_STATE_FALL, + PL_STATE_JUMP, + PL_STATE_C, + PL_STATE_D, + PL_STATE_USEPORTAL, + PL_STATE_F, + PL_STATE_TRAPPED, + PL_STATE_11, + PL_STATE_DIE, + PL_STATE_TALKEZLO, + PL_STATE_CAPE, + PL_STATE_ITEMGET, + PL_STATE_DROWN, + PL_STATE_HOLE, + PL_STATE_CLIMB, + PL_STATE_PUSH, + PL_STATE_PULL, + PL_STATE_1B, + PL_STATE_STAIRS, +}; + enum PlayerSpawnType { PL_SPAWN_DEFAULT, PL_SPAWN_MINISH, @@ -137,8 +169,8 @@ typedef struct { /*0x9a*/ u16 field_0x9a; /*0x9c*/ u32 field_0x9c; /*0xa0*/ u8 field_0xa0[8]; - /*0xa8*/ u8 field_0xa8; - /*0xa9*/ u8 field_0xa9; + /*0xa8*/ u8 framestate; + /*0xa9*/ u8 framestate_last; /*0xaa*/ u8 field_0xaa; /*0xab*/ u8 field_0xab; /*0xac*/ u16 field_0xac; diff --git a/include/room.h b/include/room.h index efaed68b..8a837b91 100644 --- a/include/room.h +++ b/include/room.h @@ -121,8 +121,9 @@ typedef struct { u8 transitionType; // transition when changing areas u16 stairs_idx; // seems to be a tile type PlayerWorldStatus player_status; - u8 field_0x2c[0xa]; - u16 field_0x36; + u8 field_0x2c[0x9]; + u8 hint_height; + u16 hint_idx; u8 field_0x38; u8 field_0x39; u8 field_0x3a; diff --git a/src/enemy/beetle.c b/src/enemy/beetle.c index 997f4faf..205e149e 100644 --- a/src/enemy/beetle.c +++ b/src/enemy/beetle.c @@ -25,7 +25,7 @@ void sub_08021768(Entity* this) { void sub_08021780(Entity* this) { switch (this->bitfield) { case 0x80: - if (gPlayerState.field_0xa8 == 24) { + if (gPlayerState.framestate == PL_STATE_CLIMB) { sub_08021768(this); } else { this->action = 5; @@ -219,7 +219,7 @@ void sub_08021B64(Entity* this) { InitializeAnimation(this, 2); } else { int iVar4 = 1; - if (gPlayerState.field_0xa8 != 11 && gPlayerState.field_0xa8 != 20) { + if (gPlayerState.framestate != PL_STATE_JUMP && gPlayerState.framestate != PL_STATE_CAPE) { if (sub_0807953C()) iVar4 = this->type * 3 + 8; diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index a8843ae8..1b2f96e2 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -998,13 +998,13 @@ void VaatiWrathType0PreAction(Entity* this) { if (gSave.unk48C[3] != 0) { gSave.unk48C[3]--; } else { - temp = gPlayerState.field_0xa9; + temp = gPlayerState.framestate_last; if (temp < 2) { if (temp >= 0) { if (gPlayerState.field_0x2c == NULL) { if (gPlayerEntity.field_0x7a.HWORD == 0) { if ((gPlayerEntity.z.HALF.HI & 0x8000U) == 0 || (gPlayerState.field_0xa != 0)) { - sub_08078AA8(0xb70, 0); + CreateEzloHint(0xb70, 0); gScreenTransition.field_0x38 |= 2; } } diff --git a/src/interrupts.c b/src/interrupts.c index f7252e64..0e42d94d 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -195,7 +195,7 @@ void PlayerUpdate(Entity* this) { COLLISION_ON(this); } else { COLLISION_OFF(this); - gPlayerState.field_0xa8 = 0xf; + gPlayerState.framestate = PL_STATE_F; } } HandlePlayerLife(this); @@ -235,8 +235,8 @@ void HandlePlayerLife(Entity* this) { if (gPlayerState.field_0x27[0] != 0) gPlayerState.field_0x27[0]--; - gPlayerState.field_0xa9 = gPlayerState.field_0xa8; - gPlayerState.field_0xa8 = 0; + gPlayerState.framestate_last = gPlayerState.framestate; + gPlayerState.framestate = PL_STATE_IDLE; if (gPlayerState.hurtType[0x4a] != 0) { gPlayerState.hurtType[0x4a]--; return; diff --git a/src/item/itemGustJar.c b/src/item/itemGustJar.c index 12410354..bef6e091 100644 --- a/src/item/itemGustJar.c +++ b/src/item/itemGustJar.c @@ -6,7 +6,7 @@ extern void (*const gUnk_0811BDF4[])(ItemBehavior* beh, u32); void ItemGustJar(ItemBehavior* this, u32 arg1) { - gPlayerState.field_0xa8 = 3; + gPlayerState.framestate = PL_STATE_GUSTJAR; gUnk_0811BDF4[this->stateID](this, arg1); } diff --git a/src/item/itemSword.c b/src/item/itemSword.c index 50abf71a..47dc95ba 100644 --- a/src/item/itemSword.c +++ b/src/item/itemSword.c @@ -11,7 +11,7 @@ extern u32 sub_08077EC8(ItemBehavior*); void sub_08075694(ItemBehavior* this, u32 arg1); void ItemSword(ItemBehavior* this, u32 arg1) { - gPlayerState.field_0xa8 = 0x02; + gPlayerState.framestate = PL_STATE_SWORD; gUnk_0811BD44[this->stateID](this, arg1); } diff --git a/src/item/itemTryPickupObject.c b/src/item/itemTryPickupObject.c index 80d8565d..a8d59830 100644 --- a/src/item/itemTryPickupObject.c +++ b/src/item/itemTryPickupObject.c @@ -42,7 +42,7 @@ void sub_08076488(ItemBehavior* this, u32 arg1) { } else { this->field_0x5[2] -= 1; } - gPlayerState.field_0xa8 = 4; + gPlayerState.framestate = PL_STATE_HOLD; } ASM_FUNC("asm/non_matching/itemTryPickupObject/sub_08076518.inc", void sub_08076518(ItemBehavior* this, u32 arg1)) diff --git a/src/manager/manager15.c b/src/manager/manager15.c index 15f336c4..5289a511 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -297,9 +297,9 @@ void sub_0805A758(Manager15* this) { void sub_0805A76C(Manager15* this) { if ((gPlayerEntity.health != 0) && (gPlayerEntity.z.HALF.HI == 0) && (!gPlayerState.field_0x2c)) { - switch (gPlayerState.field_0xa9) { - case 1: - case 0: + switch (gPlayerState.framestate_last) { + case PL_STATE_IDLE: + case PL_STATE_WALK: if (sub_0805A73C(this)) { this->manager.action++; sub_08004168(&gPlayerEntity); diff --git a/src/manager/manager3.c b/src/manager/manager3.c index e485f8b0..308de277 100644 --- a/src/manager/manager3.c +++ b/src/manager/manager3.c @@ -96,9 +96,9 @@ void CreateMagicSparkles(u32 baseX, u32 baseY, u32 layer) { u32 sub_08057810(void) { if ((gPlayerState.flags & PL_MINISH) && !gPlayerState.field_0xaa && (gArea.curPortalType != 0x6) && (gPlayerState.heldObject == 0)) { - switch (gPlayerState.field_0xa8) { - case 0: - case 1: + switch (gPlayerState.framestate) { + case PL_STATE_IDLE: + case PL_STATE_WALK: return 1; } } diff --git a/src/manager/manager33.c b/src/manager/manager33.c index 7dbf75b4..b0c7fa29 100644 --- a/src/manager/manager33.c +++ b/src/manager/manager33.c @@ -11,7 +11,7 @@ void Manager33_Main(Manager* this) { u32 b = roomControls->roomOriginY + 0x140; u32 y = (b - gPlayerEntity.y.HALF.HI) + 0x10; if (this->action == 0) { - if (x < 0x20 && y < 0x20 && gPlayerEntity.z.HALF.HI < -0x18 && gPlayerState.field_0xa8 == 0x14) { + if (x < 0x20 && y < 0x20 && gPlayerEntity.z.HALF.HI < -0x18 && gPlayerState.framestate == PL_STATE_CAPE) { this->action += 1; this->unk_0e = 0x5a; SoundReq(SFX_10A); diff --git a/src/manager/managerA.c b/src/manager/managerA.c index 564c1cac..fbaf30ff 100644 --- a/src/manager/managerA.c +++ b/src/manager/managerA.c @@ -6,53 +6,54 @@ #include "area.h" #include "functions.h" -void sub_08058398(ManagerA*); -void sub_080583EC(ManagerA*); -void sub_08058408(ManagerA*); -void sub_08058514(ManagerA*); -void sub_080585B0(ManagerA*); +static void sub_08058398(ManagerA*); +static void sub_080583EC(ManagerA*); +static void sub_08058408(ManagerA*); +static void sub_08058514(ManagerA*); +static void sub_080585B0(ManagerA*); -void (*const gUnk_081081F4[])(ManagerA*) = { sub_08058398, sub_080583EC, sub_08058408, sub_08058514, sub_080585B0 }; +static u32 PlayerStateValid(ManagerA*); +static void sub_080585DC(ManagerA*); +extern void sub_0801855C(void); + +/** + * Ezlo hint manager + */ void ManagerA_Main(ManagerA* this) { - gUnk_081081F4[this->manager.action](this); + static void (*const sActions[])(ManagerA*) = { sub_08058398, sub_080583EC, sub_08058408, sub_08058514, + sub_080585B0 }; + + sActions[this->manager.action](this); } -void sub_08058398(ManagerA* this) { - - if (CheckFlags(this->unk_3c) != 0) { +static void sub_08058398(ManagerA* this) { + if (CheckFlags(this->flag1) != 0) { DeleteThisEntity(); } - this->unk_24 = this->unk_3a << 3; - this->unk_26 = this->unk_3b << 3; - this->unk_20 = this->unk_24 + (this->unk_38 << 4); - this->unk_22 = this->unk_26 + (this->unk_39 << 4); - SetDefaultPriority((Entity*)&this->manager, 0x06); - if (this->unk_3e == 0) { + this->rx = this->rx_raw << 3; + this->ry = this->ry_raw << 3; + this->x = this->rx + (this->x_raw << 4); + this->y = this->ry + (this->y_raw << 4); + SetDefaultPriority((Entity*)&this->manager, PRIO_PLAYER_EVENT); + if (this->flag2 == 0) { this->manager.action = 2; } else { this->manager.action = 1; } } -void sub_080583EC(ManagerA* this) { - if (CheckFlags(this->unk_3e) != 0) { +static void sub_080583EC(ManagerA* this) { + if (CheckFlags(this->flag2)) { this->manager.action = 2; sub_08058408(this); } } -extern void SetPlayerEventPriority(void); - -u32 sub_0805848C(ManagerA*); -void sub_080585DC(ManagerA*); - -void sub_08058408(ManagerA* this) { - u32 tmp2; - tmp2 = (gPlayerState.flags & 0x08); - if (tmp2 != 0) +static void sub_08058408(ManagerA* this) { + if (gPlayerState.flags & PL_NO_CAP) return; - if (!CheckPlayerInRegion(this->unk_20, this->unk_22, this->unk_24, this->unk_26)) + if (!CheckPlayerInRegion(this->x, this->y, this->rx, this->ry)) return; switch (this->manager.unk_0a) { case 1: @@ -64,101 +65,98 @@ void sub_08058408(ManagerA* this) { case 0: default: sub_080585DC(this); - if (sub_0805848C(this) == 0) + if (!PlayerStateValid(this)) return; SetPlayerControl(3); sub_08078B48(); SetPlayerEventPriority(); this->manager.action = 3; this->manager.unk_0d = 0; - this->manager.unk_0e = 0x1e; + this->manager.unk_0e = 30; return; case 3: this->manager.action = 4; - this->manager.unk_0d = tmp2; - sub_080186C0(this->unk_36); + this->manager.unk_0d = 0; + sub_080186C0(this->msg_idx); return; } } -u32 sub_0805848C(ManagerA* this) { - switch (gPlayerState.field_0xa8 - 5) { - case 0: - case 2: - case 3: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 22: - case 23: +static u32 PlayerStateValid(ManagerA* this) { + switch (gPlayerState.framestate) { + case PL_STATE_THROW: + case PL_STATE_SWIM: + case PL_STATE_PARACHUTE: + case PL_STATE_FALL: + case PL_STATE_JUMP: + case PL_STATE_C: + case PL_STATE_D: + case PL_STATE_USEPORTAL: + case PL_STATE_F: + case PL_STATE_TRAPPED: + case PL_STATE_11: + case PL_STATE_DIE: + case PL_STATE_TALKEZLO: + case PL_STATE_CAPE: + case PL_STATE_ITEMGET: + case PL_STATE_DROWN: + case PL_STATE_HOLE: + case PL_STATE_CLIMB: + case PL_STATE_1B: + case PL_STATE_STAIRS: return 0; - case 1: - case 4: - case 20: - case 21: + case PL_STATE_6: + case PL_STATE_ROLL: + case PL_STATE_PUSH: + case PL_STATE_PULL: default: return 1; } } -extern void ResetPlayerEventPriority(void); - -void sub_08058514(ManagerA* this) { +static void sub_08058514(ManagerA* this) { switch (this->manager.unk_0d) { case 1: - if ((gPlayerState.flags & 0x1235) != 0) + if (gPlayerState.flags & (PL_BUSY | PL_DROWNING | PL_USE_PORTAL | 0x1210)) return; if (gPlayerEntity.z.HALF.HI != 0) return; gPlayerState.jumpStatus = 0; - sub_08078AA8(this->unk_36, this->unk_35); + CreateEzloHint(this->msg_idx, this->msg_height); this->manager.unk_0d++; - this->manager.unk_0e = 0x1E; + this->manager.unk_0e = 30; return; case 0: case 2: - if (((--this->manager.unk_0e) << 0x18) == 0) { + if (--this->manager.unk_0e == 0) { this->manager.unk_0d++; } return; case 3: - if (gPlayerEntity.action != 1 && gPlayerEntity.action != 9) - return; - gPlayerState.controlMode = 1; - ResetPlayerEventPriority(); - SetFlag(this->unk_3c); - DeleteThisEntity(); + /* wait for player to finish talking */ + if (gPlayerEntity.action == PLAYER_NORMAL || gPlayerEntity.action == PLAYER_MINISH) { + gPlayerState.controlMode = 1; + ResetPlayerEventPriority(); + SetFlag(this->flag1); + DeleteThisEntity(); + } return; default: return; } } -extern void sub_0801855C(void); - -void sub_080585B0(ManagerA* this) { - if (gArea.field_0x28 != 0xFF) { +static void sub_080585B0(ManagerA* this) { + if (gArea.inventoryGfxIdx != 0xFF) { DeleteThisEntity(); } - if (CheckFlags(this->unk_3c)) { + if (CheckFlags(this->flag1)) { sub_0801855C(); DeleteThisEntity(); } } -void sub_080585DC(ManagerA* this) { - if (CheckFlags(this->unk_3c)) { +static void sub_080585DC(ManagerA* this) { + if (CheckFlags(this->flag1)) { DeleteThisEntity(); } } diff --git a/src/manager/managerF.c b/src/manager/managerF.c index a010f2ca..cc7b7692 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -414,7 +414,7 @@ void sub_080594DC(ManagerF* this) { break; case 2: default: - if (gArea.field_0x28 != 0xFF) { + if (gArea.inventoryGfxIdx != 0xFF) { DeleteThisEntity(); } if (CheckLocalFlagByBank(0x8c0, 0x85)) { diff --git a/src/npc/guardWithSpear.c b/src/npc/guardWithSpear.c index 0332ce5f..ddb8ffde 100644 --- a/src/npc/guardWithSpear.c +++ b/src/npc/guardWithSpear.c @@ -29,7 +29,7 @@ void sub_08064470(Entity* this, ScriptExecutionContext* context) { } void sub_08064488(void) { - if (gPlayerState.field_0xa8 != 2) { + if (gPlayerState.framestate != PL_STATE_SWORD) { gPlayerState.field_0xab = 0; } } diff --git a/src/npc/kid.c b/src/npc/kid.c index 41bebb98..c109baae 100644 --- a/src/npc/kid.c +++ b/src/npc/kid.c @@ -170,7 +170,7 @@ NONMATCH("asm/non_matching/kid/sub_0806252C.inc", void sub_0806252C(Entity* this s32 iVar10; s32 iVar11; - uVar4 = gPlayerState.field_0xa8; + uVar4 = gPlayerState.framestate; uVar3 = gPlayerEntity.z.HALF.HI; sVar2 = gPlayerEntity.y.HALF.HI; sVar1 = gPlayerEntity.x.HALF.HI; diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index b238e897..df5a9ba2 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -209,9 +209,9 @@ void sub_0808B73C(Entity* this) { } u32 sub_0808B7C8(Entity* this) { - if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.field_0xa8 != 0x12 && gPlayerEntity.health != 0 && + if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.framestate != PL_STATE_DIE && gPlayerEntity.health != 0 && sub_08079F8C() && EntityInRectRadius(this, &gPlayerEntity, 5, 5) && gPlayerEntity.z.HALF.HI == 0) { - if (this->actionDelay == 0 && gPlayerEntity.action == 0x1b) { + if (this->actionDelay == 0 && gPlayerEntity.action == PLAYER_08072C9C) { sub_080791D0(); } return 1; diff --git a/src/overworld.c b/src/overworld.c index f33a2584..c087776c 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -554,7 +554,7 @@ void RoomExitCallback(void) { } u32 HandleRoomExit(void) { - if (gScreenTransition.transitioningOut && gSave.stats.health != 0 && gPlayerState.field_0xa8 != 18) { + if (gScreenTransition.transitioningOut && gSave.stats.health != 0 && gPlayerState.framestate != PL_STATE_DIE) { if (StairsAreValid()) { gScreenTransition.transitioningOut = 0; return 0; @@ -660,13 +660,13 @@ static void HandleRoomEnter(void) { } u32 sub_08052B24(void) { - s32 tmp = 1; + s32 tmp = PL_STATE_WALK; if (!(gInput.heldKeys & SELECT_BUTTON) || gPlayerState.controlMode != CONTROL_ENABLED || gUnk_02034490[0] || gUnk_0200AF00.filler0[1]) return 0; - if ((gPlayerState.flags & 0x118) || (gPlayerState.field_0xa9 > tmp) || gPlayerState.field_0x2c || + if ((gPlayerState.flags & 0x118) || (gPlayerState.framestate_last > tmp) || gPlayerState.field_0x2c || gPlayerEntity.field_0x7a.HWORD) return 0; @@ -693,7 +693,7 @@ void DisplayEzloMessage(void) { } else { height = gScreenTransition.player_status.field_0x24[idx]; } - MessageAtHeight(gScreenTransition.field_0x36, height); + MessageAtHeight(gScreenTransition.hint_idx, height); } #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) diff --git a/src/player.c b/src/player.c index b0bedf4d..2b3f8371 100644 --- a/src/player.c +++ b/src/player.c @@ -6,6 +6,7 @@ #include "textbox.h" #include "utils.h" #include "area.h" +#include "item.h" #include "save.h" #include "object.h" #include "functions.h" @@ -271,7 +272,7 @@ static void PlayerInit(Entity* this) { sub_08016A30(this); } - if (IsItemEquipped(0x10) != 2) { + if (IsItemEquipped(ITEM_LANTERN_ON) != 2) { sub_08077728(); } sub_0807A108(); @@ -284,7 +285,7 @@ static void PlayerInit(Entity* this) { Entity* ent; gPlayerState.swimState = 1; sub_08079938(); - gPlayerState.field_0xa8 = 7; + gPlayerState.framestate = PL_STATE_SWIM; sub_0807ACCC(this); ent = FindEntity(0x6, 0xf, 0x6, 0xb, 0x0); if (ent != NULL) { @@ -315,7 +316,7 @@ static void PlayerFall(Entity* this) { gPlayerState.field_0xd = 0xFF; gPlayerState.pushedObject = 0x80; - gPlayerState.field_0xa8 = 10; + gPlayerState.framestate = PL_STATE_FALL; sPlayerFallStates[this->subAction](this); } @@ -454,7 +455,7 @@ static void sub_08070E9C(Entity* this) { MessageClose(); } else { gPlayerState.field_0x27[0] = 4; - gPlayerState.field_0xa8 = 0x13; + gPlayerState.framestate = PL_STATE_TALKEZLO; sub_0807A1B8(); gUnk_0811BA74[this->subAction](this); } @@ -490,7 +491,7 @@ static void PlayerItemGet(Entity* this) { Entity* child; u8* temp; - gPlayerState.field_0xa8 = 0x15; + gPlayerState.framestate = PL_STATE_ITEMGET; COLLISION_OFF(this); sPlayerItemGetStates[this->subAction](this); @@ -561,7 +562,7 @@ static void PlayerJump(Entity* this) { sub_08071208, }; - gPlayerState.field_0xa8 = 0xb; + gPlayerState.framestate = PL_STATE_JUMP; sPlayerJumpStates[this->subAction](this); } @@ -675,7 +676,7 @@ static void PlayerDrown(Entity* this) { sub_080712F0, }; - gPlayerState.field_0xa8 = 0x16; + gPlayerState.framestate = PL_STATE_DROWN; gPlayerState.flags |= PL_DROWNING; COLLISION_OFF(this); sPlayerDrownStates[this->subAction](this); @@ -737,7 +738,7 @@ static void PlayerUsePortal(Entity* this) { PortalShrinkInit, PortalShrinkUpdate, PortalEnterUpdate, PortalUnknownUpdate, }; - gPlayerState.field_0xa8 = 0xe; + gPlayerState.framestate = PL_STATE_USEPORTAL; sPlayerUsePortalStates[this->subAction](this); // probably a switch @@ -813,7 +814,7 @@ static void PortalStandUpdate(Entity* this) { this->animationState = Direction8ToAnimationState(this->direction); this->zVelocity = 0x20000; this->speed = 256; - this->action = 9; + this->action = PLAYER_MINISH; this->subAction = 7; this->field_0xf = 0; gPlayerState.animation = (gPlayerState.flags & PL_NO_CAP) ? 0x41C : 0x80C; @@ -866,7 +867,7 @@ static void PortalShrinkInit(Entity* this) { *(u32*)&this->cutsceneBeh = 0x100; sub_0805EC9C(this, 0x100, 0x100, 0); gPlayerState.animation = 0x2c3; - gPlayerState.flags |= 0x80; + gPlayerState.flags |= PL_MINISH; SoundReq(SFX_PLY_SHRINKING); } @@ -943,7 +944,7 @@ static void PlayerTalkEzlo(Entity* this) { MessageClose(); ResetPlayerPriority(); } else { - gPlayerState.field_0xa8 = 0x13; + gPlayerState.framestate = PL_STATE_TALKEZLO; COLLISION_OFF(this); sPlayerTalkEzloStates[this->subAction](this); } @@ -1057,7 +1058,7 @@ static void PlayerPush(Entity* this) { sub_08071B60, }; - gPlayerState.field_0xa8 = 0x19; + gPlayerState.framestate = PL_STATE_PUSH; sPlayerPushStates[this->subAction](this); } @@ -1132,7 +1133,7 @@ static void PlayerMinishDie(Entity* this) { COLLISION_OFF(this); sPlayerMinishDieStates[this->subAction](this); - gPlayerState.field_0xa8 = 0x12; + gPlayerState.framestate = PL_STATE_DIE; } static void sub_08071BDC(Entity* this) { @@ -1477,7 +1478,7 @@ static void PlayerPull(Entity* this) { sub_08072260, }; - gPlayerState.field_0xa8 = 0x1a; + gPlayerState.framestate = PL_STATE_PULL; sPlayerPullStates[this->subAction](this); gUnk_0200AF00.filler25[9] = 8; } @@ -1520,7 +1521,7 @@ static void PlayerLava(Entity* this) { sub_0807240C, }; - gPlayerState.field_0xa8 = 10; + gPlayerState.framestate = PL_STATE_FALL; sPlayerLavaStates[this->subAction](this); } @@ -1677,7 +1678,7 @@ static void PlayerRoll(Entity* this) { sub_080726F4, }; - gPlayerState.field_0xa8 = 9; + gPlayerState.framestate = PL_STATE_ROLL; sPlayerRollStates[this->subAction](this); } @@ -1815,7 +1816,7 @@ static void PlayerInHole(Entity* this) { sub_08072970, sub_08072A60, sub_08072ACC, sub_08072B5C, sub_08072C48, }; - gPlayerState.field_0xa8 = 0x17; + gPlayerState.framestate = PL_STATE_HOLE; sPlayerInHoleStates[this->subAction](this); } @@ -1948,7 +1949,7 @@ static void sub_08072C9C(Entity* this) { sub_08072D54, sub_08072F14, }; - gPlayerState.field_0xa8 = 0x11; + gPlayerState.framestate = 0x11; gUnk_0811BBAC[this->subAction](this); } @@ -2095,7 +2096,7 @@ static void sub_08072F34(Entity* this) { }; if (!sub_08078EFC()) { - gPlayerState.field_0xa8 = 0x18; + gPlayerState.framestate = PL_STATE_CLIMB; gPlayerState.field_0x10[2] = GetSurfaceCalcType(this, 0, 0); gUnk_0811BBE4[this->subAction](this); if (this->knockbackDuration != 0) { @@ -2221,7 +2222,7 @@ static void PlayerUseEntrance(Entity* this) { sub_080733BC, }; - gPlayerState.field_0xa8 = 0x1c; + gPlayerState.framestate = PL_STATE_STAIRS; RequestPriorityDuration(NULL, 8); sPlayerUseEntranceStates[this->subAction](this); } diff --git a/src/playerItemUtils.c b/src/playerItemUtils.c index 9871639a..de1d4989 100644 --- a/src/playerItemUtils.c +++ b/src/playerItemUtils.c @@ -101,7 +101,7 @@ u32 sub_080A7CFC(u32 a1) { void sub_080A7D44(u32 msg, u32 isTileEntity6) { if (isTileEntity6) - sub_08078AA8(msg, 0); + CreateEzloHint(msg, 0); else // Read sign text MessageFromTarget(msg); diff --git a/src/projectile/spiderWeb.c b/src/projectile/spiderWeb.c index fe98e9fb..7323ae0a 100644 --- a/src/projectile/spiderWeb.c +++ b/src/projectile/spiderWeb.c @@ -143,7 +143,7 @@ void SpiderWeb_SubAction0(Entity* this) { this->field_0xf = 2; InitAnimationForceUpdate(this, this->type + 4); } - if ((entity->animationState >> 1 == this->type) && (gPlayerState.field_0xa8 == 0x1a) && + if ((entity->animationState >> 1 == this->type) && (gPlayerState.framestate == PL_STATE_PULL) && ((gPlayerState.heldObject & 2) != 0) && ((gPlayerEntity.frame & 2) != 0) && ((this->frame & 0x80) == 0)) { UpdateAnimationSingleFrame(this); if ((this->frame & 1) != 0) { diff --git a/src/script.c b/src/script.c index 6d7203eb..a05c3629 100644 --- a/src/script.c +++ b/src/script.c @@ -1228,7 +1228,7 @@ void ScriptCommand_MessageNoOverlapVar(Entity* entity, ScriptExecutionContext* c } void ScriptCommand_0807EB28(Entity* entity, ScriptExecutionContext* context) { - sub_08078AA8(context->scriptInstructionPointer[1], 0); + CreateEzloHint(context->scriptInstructionPointer[1], 0); } void ScriptCommand_0807EB38(Entity* entity, ScriptExecutionContext* context) { @@ -1789,7 +1789,7 @@ void sub_0807F584(Entity* entity, ScriptExecutionContext* context) { } void sub_0807F594(Entity* entity, ScriptExecutionContext* context) { - if (gPlayerState.field_0xa8) + if (gPlayerState.framestate) gActiveScriptInfo.commandSize = 0; } @@ -2011,7 +2011,7 @@ void sub_0807F994(Entity* entity, ScriptExecutionContext* context) { } void sub_0807F9A4(Entity* entity, ScriptExecutionContext* context) { - switch (gPlayerState.field_0xa8) { + switch (gPlayerState.framestate) { case 5: case 7: case 8: @@ -2041,7 +2041,7 @@ void sub_0807F9A4(Entity* entity, ScriptExecutionContext* context) { } void sub_0807FA40(Entity* entity, ScriptExecutionContext* context) { - switch (gPlayerState.field_0xa8) { + switch (gPlayerState.framestate) { case 5: case 7: case 8: From 1218a8b691b3aa0246e4bed3e463cea4103d57d0 Mon Sep 17 00:00:00 2001 From: theo3 Date: Wed, 22 Dec 2021 22:13:30 -0800 Subject: [PATCH 034/168] object6A ok --- asm/non_matching/object6A/sub_08095EAC.inc | 70 + asm/object6A.s | 3342 -------------------- data/const/object/object6A.s | 45 - include/createObject.h | 10 - include/object.h | 3 + include/script.h | 9 + include/structures.h | 9 - linker.ld | 3 +- src/enemy/bobomb.c | 1 - src/enemy/likeLike.c | 2 +- src/enemy/pesto.c | 2 +- src/enemy/rupeeLike.c | 2 +- src/enemy/vaatiBall.c | 2 +- src/enemy/wisp.c | 2 +- src/npc/forestMinish.c | 2 +- src/npc/sturgeon.c | 2 +- src/object/object6A.c | 1323 ++++++++ src/object/objectA.c | 2 +- src/object/pinwheel.c | 2 +- src/objectUtils.c | 1 - src/projectile/arrowProjectile.c | 2 +- 21 files changed, 1417 insertions(+), 3419 deletions(-) create mode 100644 asm/non_matching/object6A/sub_08095EAC.inc delete mode 100644 asm/object6A.s delete mode 100644 include/createObject.h create mode 100644 src/object/object6A.c diff --git a/asm/non_matching/object6A/sub_08095EAC.inc b/asm/non_matching/object6A/sub_08095EAC.inc new file mode 100644 index 00000000..ed92dd8a --- /dev/null +++ b/asm/non_matching/object6A/sub_08095EAC.inc @@ -0,0 +1,70 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + adds r4, r1, #0 + movs r0, #0x6a + movs r1, #0x1e + movs r2, #1 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _08095F2A + ldr r0, [r4, #4] + cmp r0, #0 + bne _08095EE0 + movs r7, #0x10 + movs r6, #0x1f + movs r0, #0x80 + lsls r0, r0, #7 + mov sl, r0 + movs r2, #0 + mov r8, r2 + b _08095F02 +_08095EE0: + movs r7, #8 + movs r6, #0xf + movs r0, #0x80 + lsls r0, r0, #0xb + mov sl, r0 + ldr r4, _08095F34 @ =gUnk_08122B0E + bl Random + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r2, [r1, r0] + mov r8, r2 + movs r0, #0xff + strb r0, [r5, #0xb] +_08095F02: + bl Random + adds r4, r0, #0 + ands r4, r6 + subs r4, r7, r4 + bl Random + ands r6, r0 + subs r3, r7, r6 + lsls r4, r4, #0x10 + lsls r3, r3, #0x10 + mov r0, sb + adds r1, r5, #0 + adds r2, r4, #0 + bl PositionRelative + mov r2, sl + str r2, [r5, #0x20] + mov r0, r8 + strh r0, [r5, #0x24] +_08095F2A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08095F34: .4byte gUnk_08122B0E + .syntax divided diff --git a/asm/object6A.s b/asm/object6A.s deleted file mode 100644 index 2b6fd5f4..00000000 --- a/asm/object6A.s +++ /dev/null @@ -1,3342 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object6A -Object6A: @ 0x08094A44 - push {lr} - ldr r2, _08094A58 @ =gUnk_08122A34 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08094A58: .4byte gUnk_08122A34 - - thumb_func_start sub_08094A5C -sub_08094A5C: @ 0x08094A5C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08094A78 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #4 - bl InitializeAnimation -_08094A78: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08094A90 -sub_08094A90: @ 0x08094A90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08094ACE - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer - ldr r1, _08094AE4 @ =gUnk_08114F30 - ldrb r2, [r4, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_0807DD64 -_08094ACE: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 -_08094AE4: .4byte gUnk_08114F30 - - thumb_func_start sub_08094AE8 -sub_08094AE8: @ 0x08094AE8 - push {r4, r5, lr} - adds r5, r1, #0 - movs r0, #0x6a - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08094B08 - ldr r1, [r5, #4] - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08094B08: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08094B0C -sub_08094B0C: @ 0x08094B0C - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x36] - subs r0, #1 - movs r3, #0 - strh r0, [r2, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _08094B30 - ldr r0, _08094B2C @ =0x0000FFE0 - strh r0, [r2, #0x36] - b _08094B34 - .align 2, 0 -_08094B2C: .4byte 0x0000FFE0 -_08094B30: - ldr r0, _08094B38 @ =gActiveScriptInfo - strb r3, [r0, #6] -_08094B34: - pop {pc} - .align 2, 0 -_08094B38: .4byte gActiveScriptInfo - - thumb_func_start sub_08094B3C -sub_08094B3C: @ 0x08094B3C - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x34] - movs r1, #0x80 - lsls r1, r1, #8 - adds r0, r0, r1 - str r0, [r2, #0x34] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0xd - rsbs r0, r0, #0 - cmp r1, r0 - blt _08094B60 - ldr r0, _08094B5C @ =0x0000FFF3 - strh r0, [r2, #0x36] - b _08094B66 - .align 2, 0 -_08094B5C: .4byte 0x0000FFF3 -_08094B60: - ldr r1, _08094B68 @ =gActiveScriptInfo - movs r0, #0 - strb r0, [r1, #6] -_08094B66: - pop {pc} - .align 2, 0 -_08094B68: .4byte gActiveScriptInfo - - thumb_func_start sub_08094B6C -sub_08094B6C: @ 0x08094B6C - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x18 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_08094B80 -sub_08094B80: @ 0x08094B80 - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x10 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_08094B94 -sub_08094B94: @ 0x08094B94 - push {r4, lr} - movs r0, #0x6a - movs r1, #0x22 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08094BD2 - ldr r0, _08094BD4 @ =gPlayerEntity - adds r1, r4, #0 - bl CopyPosition - ldr r0, _08094BD8 @ =0x0000FFD0 - strh r0, [r4, #0x36] - ldr r1, _08094BDC @ =script_0800AEDC - adds r0, r4, #0 - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - adds r0, r4, #0 - bl CreateDust - ldrh r0, [r4, #0x36] - adds r0, #0x10 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] -_08094BD2: - pop {r4, pc} - .align 2, 0 -_08094BD4: .4byte gPlayerEntity -_08094BD8: .4byte 0x0000FFD0 -_08094BDC: .4byte script_0800AEDC - - thumb_func_start sub_08094BE0 -sub_08094BE0: @ 0x08094BE0 - push {r4, lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #0x22 - bl FindEntity - adds r4, r0, #0 - cmp r4, #0 - beq _08094C22 - ldr r0, _08094C28 @ =gPlayerEntity - adds r1, r4, #0 - bl CopyPosition - ldr r0, _08094C2C @ =0x0000FFF4 - strh r0, [r4, #0x36] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer - adds r0, r4, #0 - movs r1, #1 - bl InitAnimationForceUpdate -_08094C22: - add sp, #4 - pop {r4, pc} - .align 2, 0 -_08094C28: .4byte gPlayerEntity -_08094C2C: .4byte 0x0000FFF4 - - thumb_func_start sub_08094C30 -sub_08094C30: @ 0x08094C30 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - beq _08094C40 - ldr r0, [r5, #4] - cmp r0, #0 - bne _08094C44 -_08094C40: - bl DeleteThisEntity -_08094C44: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08094C74 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl SetDefaultPriority - ldr r1, _08094C84 @ =gUnk_08114F30 - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - movs r1, #1 - bl InitAnimationForceUpdate -_08094C74: - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, r5, pc} - .align 2, 0 -_08094C84: .4byte gUnk_08114F30 - - thumb_func_start sub_08094C88 -sub_08094C88: @ 0x08094C88 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xc] - cmp r1, #0 - beq _08094CA0 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08094CCC - bl DeleteThisEntity - b _08094CDA -_08094CA0: - adds r0, r1, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r0, r5, #0 - movs r1, #3 - bl SetDefaultPriority - ldrb r0, [r5, #0xb] - cmp r0, #0x43 - bgt _08094CCC - cmp r0, #0x40 - blt _08094CCC - adds r0, r5, #0 - adds r1, r5, #0 - bl ResolveEntityBelow -_08094CCC: - ldrb r4, [r5, #0xa] - ldrb r0, [r5, #0xb] - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] -_08094CDA: - pop {r4, r5, pc} - - thumb_func_start sub_08094CDC -sub_08094CDC: @ 0x08094CDC - push {lr} - movs r0, #0x6a - movs r1, #3 - movs r2, #0x62 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08094D0A - ldr r1, _08094D0C @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #0xe0 - strh r0, [r2, #0x2e] - movs r3, #0x96 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #0xa2 - lsls r0, r0, #1 - bl SoundReq -_08094D0A: - pop {pc} - .align 2, 0 -_08094D0C: .4byte gRoomControls - - thumb_func_start sub_08094D10 -sub_08094D10: @ 0x08094D10 - push {lr} - sub sp, #4 - movs r0, #0x62 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #3 - bl FindEntity - adds r1, r0, #0 - cmp r1, #0 - beq _08094D2E - movs r0, #0xff - strb r0, [r1, #0xc] -_08094D2E: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094D34 -sub_08094D34: @ 0x08094D34 - push {lr} - movs r0, #0x6a - movs r1, #0x15 - movs r2, #0xd - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08094D68 - ldr r1, _08094D6C @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r3, #0x96 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #0xa2 - lsls r0, r0, #1 - bl SoundReq -_08094D68: - pop {pc} - .align 2, 0 -_08094D6C: .4byte gRoomControls - - thumb_func_start sub_08094D70 -sub_08094D70: @ 0x08094D70 - push {lr} - sub sp, #4 - movs r0, #0xd - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #0x15 - bl FindEntity - adds r1, r0, #0 - cmp r1, #0 - beq _08094D8E - movs r0, #0xff - strb r0, [r1, #0xc] -_08094D8E: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094D94 -sub_08094D94: @ 0x08094D94 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #0 - beq _08094DAC - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08094DCE - bl DeleteThisEntity - b _08094DD4 -_08094DAC: - adds r0, r1, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #3 - bl SetDefaultPriority - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate -_08094DCE: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_08094DD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08094DD8 -sub_08094DD8: @ 0x08094DD8 - push {lr} - movs r0, #0x6a - movs r1, #4 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08094E06 - ldr r1, _08094E08 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #0xf0 - strh r0, [r2, #0x2e] - movs r3, #0x96 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x32] - movs r0, #0xa2 - lsls r0, r0, #1 - bl SoundReq -_08094E06: - pop {pc} - .align 2, 0 -_08094E08: .4byte gRoomControls - - thumb_func_start sub_08094E0C -sub_08094E0C: @ 0x08094E0C - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #4 - bl FindEntity - adds r1, r0, #0 - cmp r1, #0 - beq _08094E2A - movs r0, #0xff - strb r0, [r1, #0xc] -_08094E2A: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094E30 -sub_08094E30: @ 0x08094E30 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08094E88 - ldr r0, _08094E80 @ =gScreenTransition - ldr r0, [r0] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - beq _08094E48 - b _08094F94 -_08094E48: - movs r0, #0x6a - movs r1, #5 - movs r2, #1 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - bne _08094E5A - b _08094F94 -_08094E5A: - bl Random - ldr r4, _08094E84 @ =gRoomControls - movs r1, #0xf0 - bl __modsi3 - ldrh r1, [r4, #0xa] - adds r1, r1, r0 - strh r1, [r5, #0x2e] - bl Random - movs r1, #0xa0 - bl __modsi3 - ldrh r1, [r4, #0xc] - adds r1, r1, r0 - strh r1, [r5, #0x32] - b _08094F94 - .align 2, 0 -_08094E80: .4byte gScreenTransition -_08094E84: .4byte gRoomControls -_08094E88: - cmp r0, #1 - bne _08094F44 - ldrb r1, [r4, #0xc] - cmp r1, #1 - beq _08094ED4 - cmp r1, #1 - bgt _08094E9C - cmp r1, #0 - beq _08094EA6 - b _08094F94 -_08094E9C: - cmp r1, #2 - beq _08094F08 - cmp r1, #3 - beq _08094F22 - b _08094F94 -_08094EA6: - strb r0, [r4, #0xc] - ldr r0, _08094ED0 @ =0xFF600000 - str r0, [r4, #0x34] - str r1, [r4, #0x20] - adds r0, r4, #0 - movs r1, #6 - bl SetDefaultPriority - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0xd - bne _08094F94 - movs r0, #3 - strb r0, [r4, #0xc] - b _08094F94 - .align 2, 0 -_08094ED0: .4byte 0xFF600000 -_08094ED4: - ldr r1, [r4, #0x34] - ldr r0, [r4, #0x20] - subs r1, r1, r0 - str r1, [r4, #0x34] - ldr r2, _08094F04 @ =0xFFFFE000 - adds r0, r0, r2 - str r0, [r4, #0x20] - cmp r1, #0 - ble _08094F94 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - str r1, [r4, #0x34] - str r1, [r4, #0x20] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation - movs r0, #0xbf - lsls r0, r0, #1 - bl EnqueueSFX - b _08094F94 - .align 2, 0 -_08094F04: .4byte 0xFFFFE000 -_08094F08: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08094F94 - bl DeleteThisEntity - b _08094F94 -_08094F22: - ldr r0, [r4, #0x34] - ldr r1, [r4, #0x20] - subs r0, r0, r1 - str r0, [r4, #0x34] - ldr r0, _08094F40 @ =0xFFFFE000 - adds r1, r1, r0 - str r1, [r4, #0x20] - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08094F94 - bl DeleteThisEntity - b _08094F94 - .align 2, 0 -_08094F40: .4byte 0xFFFFE000 -_08094F44: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08094F94 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #1 - beq _08094F68 - cmp r0, #1 - bgt _08094F5E - cmp r0, #0 - beq _08094F7A - b _08094F94 -_08094F5E: - cmp r0, #2 - beq _08094F72 - cmp r0, #3 - beq _08094F84 - b _08094F94 -_08094F68: - adds r0, r4, #0 - movs r1, #2 - bl InitializeAnimation - b _08094F94 -_08094F72: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_08094F7A: - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - b _08094F94 -_08094F84: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl InitializeAnimation -_08094F94: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08094F98 -sub_08094F98: @ 0x08094F98 - push {lr} - movs r0, #0x6a - movs r1, #5 - movs r2, #0 - bl CreateObject - pop {pc} - .align 2, 0 - - thumb_func_start sub_08094FA8 -sub_08094FA8: @ 0x08094FA8 -.ifdef EU - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #1 - beq _080948B4 - cmp r1, #1 - bgt _08094890 - cmp r1, #0 - beq _0809489A - b _08094912 -_08094890: - cmp r1, #2 - beq _080948E0 - cmp r1, #3 - beq _080948FC - b _08094912 -_0809489A: - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_080787B4 - b _08094912 -_080948B4: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08094912 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080788E0 - ldr r0, _080948DC @ =gPlayerState - movs r1, #0xc - strb r1, [r0, #0xc] - adds r0, #0x38 - movs r1, #0x36 - strb r1, [r0] - b _08094912 - .align 2, 0 -_080948DC: .4byte gPlayerState -_080948E0: - movs r0, #0x36 - bl GetInventoryValue - cmp r0, #2 - bne _08094912 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08094912 -_080948FC: - ldr r0, _08094914 @ =gPlayerEntity - ldrb r0, [r0, #0xc] - cmp r0, #0xc - beq _08094912 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x1c - movs r1, #0 - movs r2, #0 - bl CreateItemEntity -_08094912: - pop {r4, pc} - .align 2, 0 -_08094914: .4byte gPlayerEntity - -.else - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #4 - bhi _08095086 - lsls r0, r0, #2 - ldr r1, _08094FBC @ =_08094FC0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08094FBC: .4byte _08094FC0 -_08094FC0: @ jump table - .4byte _08094FD4 @ case 0 - .4byte _08094FF0 @ case 1 - .4byte _08095024 @ case 2 - .4byte _08095040 @ case 3 - .4byte _08095070 @ case 4 -_08094FD4: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_080787B4 - b _08095086 -_08094FF0: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08095086 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080788E0 - ldr r0, _08095020 @ =gPlayerState - movs r1, #0xc - strb r1, [r0, #0xc] - adds r0, #0x38 - movs r1, #0x36 - strb r1, [r0] - movs r0, #2 - bl SetPlayerControl - b _08095086 - .align 2, 0 -_08095020: .4byte gPlayerState -_08095024: - movs r0, #0x36 - bl GetInventoryValue - cmp r0, #2 - bne _08095086 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08095086 -_08095040: - ldr r0, _0809506C @ =gPlayerEntity - ldrb r0, [r0, #0xc] - cmp r0, #0xc - beq _08095086 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x5b - bl CheckGlobalFlag - cmp r0, #0 - bne _08095086 - movs r0, #0x1c - movs r1, #0 - movs r2, #0 - bl CreateItemEntity - movs r0, #0x5b - bl SetGlobalFlag - movs r0, #0x3c - strb r0, [r4, #0xe] - b _08095086 - .align 2, 0 -_0809506C: .4byte gPlayerEntity -_08095070: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095086 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #1 - bl SetPlayerControl -_08095086: - pop {r4, pc} -.endif - - thumb_func_start sub_08095088 -sub_08095088: @ 0x08095088 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #1 - beq _080950C8 - cmp r0, #1 - bgt _0809509C - cmp r0, #0 - beq _080950A2 - b _0809510A -_0809509C: - cmp r0, #2 - beq _080950F0 - b _0809510A -_080950A2: - movs r0, #0x5b - bl GetInventoryValue - cmp r0, #0 - beq _080950B0 - bl DeleteThisEntity -_080950B0: - movs r0, #1 - strb r0, [r5, #0xc] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - bl sub_080787B4 - b _0809510A -_080950C8: - adds r1, r5, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0809510A - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r5, #0xc] - adds r0, r5, #0 - bl sub_080788E0 - ldr r0, _080950EC @ =0x00001F1F - movs r1, #0 - bl CreateEzloHint - b _0809510A - .align 2, 0 -_080950EC: .4byte 0x00001F1F -_080950F0: - ldr r0, _0809511C @ =gMessage - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0809510A - movs r0, #0x5b - movs r1, #0 - movs r2, #0 - bl CreateItemEntity - bl DeleteThisEntity -_0809510A: - ldrb r4, [r5, #0xa] - movs r0, #0x5b - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, pc} - .align 2, 0 -_0809511C: .4byte gMessage - - thumb_func_start sub_08095120 -sub_08095120: @ 0x08095120 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809514C - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl SetDefaultPriority - adds r0, r4, #0 - adds r1, r4, #0 - bl ResolveEntityBelow - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #2 - bl InitAnimationForceUpdate -_0809514C: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095164 -sub_08095164: @ 0x08095164 - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #8 - bl FindEntity - cmp r0, #0 - beq _08095182 - movs r1, #3 - bl InitAnimationForceUpdate -_08095182: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08095188 -sub_08095188: @ 0x08095188 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080951B4 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl SetDefaultPriority - adds r0, r4, #0 - adds r1, r4, #0 - bl ResolveEntityBelow - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate -_080951B4: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - pop {r4, pc} - - thumb_func_start sub_080951C4 -sub_080951C4: @ 0x080951C4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080951E8 - adds r0, #1 - strb r0, [r4, #0xc] - movs r1, #0 - ldr r0, _08095240 @ =0x0000FFF0 - strh r0, [r4, #0x36] - strb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #3 - bl InitializeAnimation -_080951E8: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08095218 - str r0, [r4, #0x34] - str r0, [r4, #0x50] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08095218 - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0xe6 - bl SoundReq -_08095218: - ldr r3, [r4, #0x50] - cmp r3, #0 - beq _0809523C - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r3, #0x2e] - adds r0, #0x10 - strh r0, [r4, #0x2e] - ldrh r0, [r3, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] -_0809523C: - pop {r4, pc} - .align 2, 0 -_08095240: .4byte 0x0000FFF0 - - thumb_func_start sub_08095244 -sub_08095244: @ 0x08095244 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _0809527C - movs r0, #0x6a - movs r1, #0xa - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809527C - str r5, [r4, #0x50] - movs r2, #0x80 - lsls r2, r2, #0xd - ldr r3, _08095280 @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - ldr r1, _08095284 @ =script_0801183C - adds r0, r4, #0 - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_0809527C: - pop {r4, r5, pc} - .align 2, 0 -_08095280: .4byte 0xFFF00000 -_08095284: .4byte script_0801183C - - thumb_func_start sub_08095288 -sub_08095288: @ 0x08095288 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _080952AA - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - movs r1, #3 - bl SetDefaultPriority - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate -_080952AA: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _080952F0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bhi _080952D4 - movs r0, #0 - strb r0, [r4, #0xd] - movs r2, #0x80 - lsls r2, r2, #1 - movs r3, #0xc0 - lsls r3, r3, #8 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C - b _080952F0 -_080952D4: - movs r2, #0x80 - lsls r2, r2, #1 - ldrb r3, [r4, #0xe] - lsls r3, r3, #8 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C - ldrb r0, [r4, #0xe] - adds r0, #0xa - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806F69C -_080952F0: - ldr r3, [r4, #0x54] - cmp r3, #0 - beq _080952FE - adds r0, r3, #0 - adds r1, r4, #0 - bl CopyPosition -_080952FE: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - ldr r3, [r4, #0x50] - cmp r3, #0 - beq _08095328 - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r3, #4] - cmp r0, #0 - bne _0809532C - bl DeleteThisEntity - b _0809532C -_08095328: - bl DeleteThisEntity -_0809532C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095330 -sub_08095330: @ 0x08095330 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0xb - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809535E - str r4, [r5, #0x54] - str r5, [r4, #0x54] - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r0, _08095360 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - adds r1, r4, #0 - bl ResolveEntityOnTop -_0809535E: - pop {r4, r5, pc} - .align 2, 0 -_08095360: .4byte 0x0000FFF0 - - thumb_func_start sub_08095364 -sub_08095364: @ 0x08095364 - push {r4, r5, r6, lr} - ldr r6, [r0, #0x54] - cmp r6, #0 - beq _0809539E - movs r5, #0 - movs r0, #2 - strb r0, [r6, #0x1e] - adds r0, r6, #0 - adds r0, #0x38 - movs r4, #1 - strb r4, [r0] - adds r0, r6, #0 - bl UpdateSpriteForCollisionLayer - str r5, [r6, #0x54] - strb r4, [r6, #0xd] - ldr r0, _080953A0 @ =0x0000FFF0 - strh r0, [r6, #0x36] - movs r0, #7 - strb r0, [r6, #0x15] - movs r0, #0xc0 - lsls r0, r0, #0xa - str r0, [r6, #0x20] - movs r0, #0x80 - strh r0, [r6, #0x24] - adds r0, r6, #0 - movs r1, #1 - bl InitAnimationForceUpdate -_0809539E: - pop {r4, r5, r6, pc} - .align 2, 0 -_080953A0: .4byte 0x0000FFF0 - - thumb_func_start sub_080953A4 -sub_080953A4: @ 0x080953A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080953E0 - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _08095414 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #2 - bl SetDefaultPriority - ldr r1, _08095418 @ =gUnk_08114F30 - ldrb r2, [r4, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - adds r1, r4, #0 - bl ResolveEntityOnTop - adds r0, r4, #0 - bl sub_0807DD64 -_080953E0: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - ldrb r0, [r4, #0xa] - cmp r0, #0xd - bne _08095412 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - ldr r1, _0809541C @ =0x00000139 - cmp r0, #0 - beq _0809540C - movs r1, #0 -_0809540C: - adds r0, r4, #0 - bl ChangeObjPalette -_08095412: - pop {r4, pc} - .align 2, 0 -_08095414: .4byte 0x0000FFF0 -_08095418: .4byte gUnk_08114F30 -_0809541C: .4byte 0x00000139 - - thumb_func_start sub_08095420 -sub_08095420: @ 0x08095420 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0xc - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095450 - ldr r3, _08095454 @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldr r1, [r6, #4] - adds r0, r4, #0 - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095450: - pop {r4, r5, r6, pc} - .align 2, 0 -_08095454: .4byte 0xFFF00000 - - thumb_func_start nullsub_527 -nullsub_527: @ 0x08095458 - bx lr - .align 2, 0 - - thumb_func_start sub_0809545C -sub_0809545C: @ 0x0809545C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0xd - movs r2, #0 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _080954A6 - ldr r3, _080954A8 @ =0xFFF00000 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - ldr r1, [r6, #4] - adds r0, r5, #0 - bl StartCutscene - adds r1, r5, #0 - adds r1, #0x84 - str r0, [r1] - movs r0, #0x6a - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080954A6 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - str r5, [r4, #0x50] -_080954A6: - pop {r4, r5, r6, pc} - .align 2, 0 -_080954A8: .4byte 0xFFF00000 - - thumb_func_start sub_080954AC -sub_080954AC: @ 0x080954AC - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x1a - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080954D6 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r1, _080954D8 @ =script_08015B14 - adds r0, r4, #0 - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_080954D6: - pop {r4, r5, pc} - .align 2, 0 -_080954D8: .4byte script_08015B14 - - thumb_func_start sub_080954DC -sub_080954DC: @ 0x080954DC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08095598 - cmp r0, #1 - bgt _080954F0 - cmp r0, #0 - beq _080954FC - b _0809562C -_080954F0: - cmp r0, #2 - beq _080955B8 - cmp r0, #3 - bne _080954FA - b _08095620 -_080954FA: - b _0809562C -_080954FC: - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _0809550A - subs r0, #1 - strb r0, [r4, #0xe] - b _0809562C -_0809550A: - movs r0, #1 - movs r2, #1 - strb r0, [r4, #0xc] - strb r5, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - strh r5, [r4, #0x36] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x6c - strh r5, [r0] - ldr r1, _08095590 @ =gUnk_08122AE0 - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - adds r5, r4, #0 - adds r5, #0x6e - strb r0, [r5] - ldr r1, _08095594 @ =gUnk_08122AE8 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r4, #0 - bl ChangeObjPalette - adds r0, r4, #0 - bl sub_0807DD64 - ldrb r1, [r4, #0xb] - adds r1, #2 - adds r0, r4, #0 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_08095754 - bl Random - movs r1, #6 - bl __modsi3 - movs r1, #0xde - lsls r1, r1, #1 - adds r0, r0, r1 - bl SoundReq - adds r1, r5, #0 - b _08095630 - .align 2, 0 -_08095590: .4byte gUnk_08122AE0 -_08095594: .4byte gUnk_08122AE8 -_08095598: - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x10 - rsbs r2, r2, #0 - adds r1, r4, #0 - adds r1, #0x6e - cmp r0, r2 - bgt _08095630 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - strh r2, [r4, #0x36] - b _08095630 -_080955B8: - adds r5, r4, #0 - adds r5, #0x6c - ldrh r0, [r5] - adds r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x40 - bls _080955CE - movs r0, #0x40 - strh r0, [r5] -_080955CE: - ldr r3, _0809561C @ =gSineTable - movs r2, #0x6e - adds r2, r2, r4 - mov ip, r2 - ldrb r0, [r2] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r1, [r0, r2] - ldrh r0, [r5] - lsls r0, r0, #8 - adds r2, r1, #0 - muls r2, r0, r2 - asrs r2, r2, #0x10 - strh r2, [r4, #0x2e] - mov r1, ip - ldrb r0, [r1] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsh r1, [r0, r3] - ldrh r0, [r5] - lsls r0, r0, #7 - muls r1, r0, r1 - asrs r1, r1, #0x10 - strh r1, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x68 - ldrh r0, [r0] - adds r2, r2, r0 - strh r2, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x6a - ldrh r0, [r0] - adds r1, r1, r0 - strh r1, [r4, #0x32] - mov r1, ip - b _08095630 - .align 2, 0 -_0809561C: .4byte gSineTable -_08095620: - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C -_0809562C: - adds r1, r4, #0 - adds r1, #0x6e -_08095630: - ldrb r0, [r1] - adds r0, #4 - strb r0, [r1] - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0809564A - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0809564A - bl DeleteThisEntity -_0809564A: - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809565E - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _08095664 -_0809565E: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_08095664: - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - pop {r4, r5, pc} - - thumb_func_start sub_0809567C -sub_0809567C: @ 0x0809567C - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x68 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r1, r1, #0x10 - ldr r0, [r4, #0x2c] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x6a - movs r3, #0 - ldrsh r2, [r1, r3] - lsls r2, r2, #0x10 - ldr r1, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080956B4 -sub_080956B4: @ 0x080956B4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080956E2 - adds r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - movs r1, #0 - bl InitializeAnimation - adds r4, r5, #0 - adds r4, #0x68 - ldrh r2, [r5, #0x2e] - ldrh r1, [r5, #0x32] - movs r0, #7 -_080956D4: - strh r2, [r4] - adds r4, #2 - strh r1, [r4] - adds r4, #2 - subs r0, #1 - cmp r0, #0 - bge _080956D4 -_080956E2: - adds r0, r5, #0 - bl GetNextFrame - ldrb r0, [r5, #0xb] - ldr r1, _08095724 @ =gScreenTransition - ldr r1, [r1] - adds r0, r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _080956FE - adds r0, r5, #0 - bl sub_080957B4 -_080956FE: - ldr r6, [r5, #0x50] - cmp r6, #0 - beq _08095728 - ldrb r1, [r6, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - ldr r0, [r6, #4] - cmp r0, #0 - bne _0809572C - bl DeleteThisEntity - b _0809572C - .align 2, 0 -_08095724: .4byte gScreenTransition -_08095728: - bl DeleteThisEntity -_0809572C: - adds r4, r5, #0 - adds r4, #0x68 - adds r0, r5, #0 - adds r0, #0x6c - adds r1, r4, #0 - movs r2, #0x1c - bl MemCopy - ldrh r0, [r4, #0x14] - strh r0, [r5, #0x2e] - ldrh r0, [r4, #0x16] - strh r0, [r5, #0x32] - ldrh r0, [r6, #0x36] - strh r0, [r5, #0x36] - ldrh r0, [r6, #0x2e] - strh r0, [r4, #0x1c] - ldrh r0, [r6, #0x32] - strh r0, [r4, #0x1e] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08095754 -sub_08095754: @ 0x08095754 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r2, [r5, #0xb] - movs r0, #0x6a - movs r1, #0xf - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809577A - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl ResolveEntityBelow -_0809577A: - pop {r4, r5, pc} - - thumb_func_start sub_0809577C -sub_0809577C: @ 0x0809577C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095796 - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080957B0 @ =0x0000FFF0 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation -_08095796: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080957AE - bl DeleteThisEntity -_080957AE: - pop {r4, pc} - .align 2, 0 -_080957B0: .4byte 0x0000FFF0 - - thumb_func_start sub_080957B4 -sub_080957B4: @ 0x080957B4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x10 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080957DA - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl ResolveEntityBelow -_080957DA: - pop {r4, r5, pc} - - thumb_func_start sub_080957DC -sub_080957DC: @ 0x080957DC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080957F8 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate -_080957F8: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095810 -sub_08095810: @ 0x08095810 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x11 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095844 - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl ResolveEntityOnTop - ldr r1, _08095848 @ =script_08011940 - adds r0, r4, #0 - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095844: - pop {r4, r5, pc} - .align 2, 0 -_08095848: .4byte script_08011940 - - thumb_func_start sub_0809584C -sub_0809584C: @ 0x0809584C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _0809586C - ldr r0, _080958D0 @ =gUnk_020342F8 - subs r1, #1 - bl ReadBit - cmp r0, #0 - bne _0809586C - bl DeleteThisEntity -_0809586C: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08095880 - ldrb r0, [r5, #0xb] - bl CheckKinstoneFused - cmp r0, #0 - beq _08095880 - bl DeleteThisEntity -_08095880: - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080958B2 - adds r0, #1 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - bl UpdateSpriteForCollisionLayer - ldr r1, _080958D4 @ =gUnk_08114F30 - ldrb r2, [r5, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x19] - adds r0, r5, #0 - bl sub_0807DD64 -_080958B2: - adds r0, r5, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r5, #0 - bl HandleEntity0x82Actions - ldrb r4, [r5, #0xa] - movs r0, #0x5c - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, pc} - .align 2, 0 -_080958D0: .4byte gUnk_020342F8 -_080958D4: .4byte gUnk_08114F30 - - thumb_func_start sub_080958D8 -sub_080958D8: @ 0x080958D8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080958EC - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 -_080958EC: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08095914 - adds r0, r4, #0 - bl sub_08095954 -_08095914: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095918 -sub_08095918: @ 0x08095918 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809593C - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #6 - bl SetDefaultPriority - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation -_0809593C: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095954 -sub_08095954: @ 0x08095954 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x14 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080959B8 - str r5, [r4, #0x50] - ldrb r0, [r5, #0x14] - ldr r1, _080959AC @ =gUnk_08122AF8 - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - ldr r0, _080959B0 @ =0x0000FFFD - strh r0, [r4, #0x36] - ldr r1, _080959B4 @ =script_08012C48 - adds r0, r4, #0 - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - movs r0, #0x92 - lsls r0, r0, #1 - bl EnqueueSFX - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - b _080959C4 - .align 2, 0 -_080959AC: .4byte gUnk_08122AF8 -_080959B0: .4byte 0x0000FFFD -_080959B4: .4byte script_08012C48 -_080959B8: - ldr r0, _080959C8 @ =gActiveScriptInfo - ldr r1, [r0] - movs r2, #0x80 - lsls r2, r2, #1 - orrs r1, r2 - str r1, [r0] -_080959C4: - pop {r4, r5, pc} - .align 2, 0 -_080959C8: .4byte gActiveScriptInfo - - thumb_func_start sub_080959CC -sub_080959CC: @ 0x080959CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080959F2 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #3 - bl SetDefaultPriority - adds r0, r4, #0 - bl sub_0807DD64 -_080959F2: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r1, r0 - adds r0, r4, #0 - bl sub_08095D30 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095A1C -sub_08095A1C: @ 0x08095A1C - push {r4, r5, lr} - adds r5, r1, #0 - movs r0, #0x6a - movs r1, #0x16 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095A5E - ldr r1, _08095A60 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #0xe8 - strh r0, [r4, #0x2e] - movs r2, #0x9c - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldr r0, _08095A64 @ =0x0000FFFC - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldr r1, [r5, #4] - adds r0, r4, #0 - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095A5E: - pop {r4, r5, pc} - .align 2, 0 -_08095A60: .4byte gRoomControls -_08095A64: .4byte 0x0000FFFC - - thumb_func_start sub_08095A68 -sub_08095A68: @ 0x08095A68 - push {lr} - sub sp, #4 - movs r0, #0 - str r0, [sp] - movs r0, #6 - movs r1, #0x6a - movs r2, #6 - movs r3, #0x16 - bl FindEntity - adds r1, r0, #0 - cmp r1, #0 - beq _08095A86 - movs r0, #0xff - strb r0, [r1, #0xc] -_08095A86: - add sp, #4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08095A8C -sub_08095A8C: @ 0x08095A8C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #5 - bhi _08095B44 - lsls r0, r0, #2 - ldr r1, _08095AA0 @ =_08095AA4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08095AA0: .4byte _08095AA4 -_08095AA4: @ jump table - .4byte _08095ABC @ case 0 - .4byte _08095ACC @ case 1 - .4byte _08095ADC @ case 2 - .4byte _08095AE6 @ case 3 - .4byte _08095B12 @ case 4 - .4byte _08095B1C @ case 5 -_08095ABC: - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - bl sub_0807DD64 -_08095ACC: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - b _08095B44 -_08095ADC: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] -_08095AE6: - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - movs r5, #1 - eors r0, r5 - movs r3, #4 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x18] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095B44 - movs r0, #1 - strb r5, [r4, #0xc] - ands r2, r3 - orrs r2, r0 - b _08095B42 -_08095B12: - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] -_08095B1C: - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - movs r5, #1 - eors r0, r5 - movs r3, #4 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x18] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08095B44 - strb r5, [r4, #0xc] - ands r2, r3 -_08095B42: - strb r2, [r4, #0x18] -_08095B44: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08095B48 -sub_08095B48: @ 0x08095B48 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08095B78 - adds r0, #1 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - bl UpdateSpriteForCollisionLayer - ldr r1, _08095BA8 @ =gUnk_08114F30 - ldrb r2, [r5, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x19] -_08095B78: - ldrb r0, [r5, #0x18] - movs r4, #4 - rsbs r4, r4, #0 - adds r1, r4, #0 - ands r1, r0 - strb r1, [r5, #0x18] - ldr r2, [r5, #0x50] - cmp r2, #0 - beq _08095BCE - adds r0, r2, #0 - adds r0, #0x5a - ldrb r3, [r0] - movs r0, #0x40 - ands r0, r3 - cmp r0, #0 - bne _08095BAC - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _08095BCE - bl DeleteThisEntity - b _08095BDC - .align 2, 0 -_08095BA8: .4byte gUnk_08114F30 -_08095BAC: - adds r0, r1, #0 - ands r0, r4 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrh r0, [r2, #0x12] - ldrb r1, [r2, #0x1e] - bl GetSpriteSubEntryOffsetDataPointer - ldrb r1, [r0] - adds r2, r5, #0 - adds r2, #0x62 - strb r1, [r2] - ldrb r0, [r0, #1] - adds r1, r5, #0 - adds r1, #0x63 - strb r0, [r1] -_08095BCE: - ldrb r4, [r5, #0xa] - ldrb r0, [r5, #0xb] - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] -_08095BDC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08095BE0 -sub_08095BE0: @ 0x08095BE0 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - movs r0, #0x6a - movs r1, #0x18 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08095BFC - str r4, [r1, #0x50] - adds r0, r4, #0 - bl CopyPosition -_08095BFC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095C00 -sub_08095C00: @ 0x08095C00 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0xc] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08095C14 - bl DeleteThisEntity - b _08095C46 -_08095C14: - ldr r3, [r2, #0x50] - cmp r3, #0 - beq _08095C46 - adds r1, r2, #0 - adds r1, #0x60 - movs r0, #0xe8 - strh r0, [r1] - ldrb r0, [r3, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08095C38 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _08095C46 -_08095C38: - ldrb r0, [r2, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r2, #0x18] -_08095C46: - pop {pc} - - thumb_func_start sub_08095C48 -sub_08095C48: @ 0x08095C48 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x6a - movs r1, #0x19 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08095C66 - str r1, [r4, #0x54] - str r4, [r1, #0x50] - adds r0, r4, #0 - bl CopyPosition -_08095C66: - pop {r4, pc} - - thumb_func_start sub_08095C68 -sub_08095C68: @ 0x08095C68 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095C80 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_08095C80: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08095CAA - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bhi _08095CA4 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_08095CA4: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08095CAE -_08095CAA: - bl DeleteThisEntity -_08095CAE: - pop {r4, pc} - - thumb_func_start sub_08095CB0 -sub_08095CB0: @ 0x08095CB0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x6a - movs r1, #0x1b - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095CDC - str r4, [r5, #0x54] - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r5, #0x1e] - strb r0, [r4, #0x1e] - ldrb r0, [r5, #0x1e] - strb r0, [r4, #0x1f] -_08095CDC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08095CE0 -sub_08095CE0: @ 0x08095CE0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095D06 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #6 - bl SetDefaultPriority - adds r0, r4, #0 - bl sub_0807DD64 -_08095D06: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r1, r0 - adds r0, r4, #0 - bl sub_08095D30 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08095D30 -sub_08095D30: @ 0x08095D30 - push {lr} - adds r2, r0, #0 - adds r0, r1, #0 - cmp r0, #0 - beq _08095D4E - ldr r1, _08095D50 @ =gUnk_08122B00 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r1, r0 - adds r0, r2, #0 - bl ChangeObjPalette -_08095D4E: - pop {pc} - .align 2, 0 -_08095D50: .4byte gUnk_08122B00 - - thumb_func_start sub_08095D54 -sub_08095D54: @ 0x08095D54 - push {r4, r5, lr} - adds r5, r1, #0 - movs r0, #0x6a - movs r1, #0x1c - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095D86 - ldr r0, _08095D88 @ =gPlayerEntity - adds r1, r4, #0 - bl CopyPosition - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldr r1, [r5, #4] - adds r0, r4, #0 - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095D86: - pop {r4, r5, pc} - .align 2, 0 -_08095D88: .4byte gPlayerEntity - - thumb_func_start sub_08095D8C -sub_08095D8C: @ 0x08095D8C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0x1d - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095DB8 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r1, [r6, #4] - adds r0, r4, #0 - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095DB8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08095DBC -sub_08095DBC: @ 0x08095DBC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08095DF0 @ =gActiveScriptInfo - ldr r0, [r5] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08095DD0 - bl DeleteThisEntity -_08095DD0: - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _08095DF4 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095DE6 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 -_08095DE6: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - b _08095E74 - .align 2, 0 -_08095DF0: .4byte gActiveScriptInfo -_08095DF4: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095E30 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x4b - bl InitializeAnimation - ldr r1, _08095E78 @ =gUnk_08114F30 - ldrb r2, [r4, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - adds r1, r4, #0 - bl ResolveEntityOnTop -_08095E30: - ldrb r2, [r4, #0xb] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08095E56 - ldr r0, [r5] - movs r1, #0x80 - lsls r1, r1, #0xa - ands r0, r1 - cmp r0, #0 - beq _08095E56 - movs r0, #0xff - strb r0, [r4, #0xb] - movs r0, #0x80 - lsls r0, r0, #0xb - str r0, [r4, #0x20] - movs r0, #0xc0 - lsls r0, r0, #8 - strh r0, [r4, #0x24] -_08095E56: - movs r0, #0x24 - ldrsh r1, [r4, r0] - adds r0, r4, #0 - bl sub_08003FC4 - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08095E74 - bl DeleteThisEntity -_08095E74: - pop {r4, r5, pc} - .align 2, 0 -_08095E78: .4byte gUnk_08114F30 - - thumb_func_start sub_08095E7C -sub_08095E7C: @ 0x08095E7C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0x1e - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08095EA8 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r1, [r6, #4] - adds r0, r4, #0 - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08095EA8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08095EAC -sub_08095EAC: @ 0x08095EAC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r0 - adds r4, r1, #0 - movs r0, #0x6a - movs r1, #0x1e - movs r2, #1 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _08095F2A - ldr r0, [r4, #4] - cmp r0, #0 - bne _08095EE0 - movs r7, #0x10 - movs r6, #0x1f - movs r0, #0x80 - lsls r0, r0, #7 - mov sl, r0 - movs r2, #0 - mov r8, r2 - b _08095F02 -_08095EE0: - movs r7, #8 - movs r6, #0xf - movs r0, #0x80 - lsls r0, r0, #0xb - mov sl, r0 - ldr r4, _08095F34 @ =gUnk_08122B0E - bl Random - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - movs r0, #0 - ldrsh r2, [r1, r0] - mov r8, r2 - movs r0, #0xff - strb r0, [r5, #0xb] -_08095F02: - bl Random - adds r4, r0, #0 - ands r4, r6 - subs r4, r7, r4 - bl Random - ands r6, r0 - subs r3, r7, r6 - lsls r4, r4, #0x10 - lsls r3, r3, #0x10 - mov r0, sb - adds r1, r5, #0 - adds r2, r4, #0 - bl PositionRelative - mov r2, sl - str r2, [r5, #0x20] - mov r0, r8 - strh r0, [r5, #0x24] -_08095F2A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08095F34: .4byte gUnk_08122B0E - - thumb_func_start sub_08095F38 -sub_08095F38: @ 0x08095F38 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08095FC2 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x1e] - ldrb r0, [r4, #0xb] - cmp r0, #4 - beq _08095F64 - cmp r0, #4 - bgt _08095F5A - cmp r0, #3 - beq _08095F60 - b _08095F6A -_08095F5A: - cmp r0, #6 - beq _08095F68 - b _08095F6A -_08095F60: - movs r1, #0 - b _08095F6A -_08095F64: - movs r1, #1 - b _08095F6A -_08095F68: - movs r1, #4 -_08095F6A: - adds r0, r4, #0 - bl ChangeObjPalette - ldr r0, _08095F90 @ =gPlayerEntity - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08095F98 - adds r1, r4, #0 - adds r1, #0x84 - ldr r0, _08095F94 @ =0x000008BF - str r0, [r1] - movs r0, #0x34 - strb r0, [r4, #0xe] - movs r0, #0xb5 - b _08095FA6 - .align 2, 0 -_08095F90: .4byte gPlayerEntity -_08095F94: .4byte 0x000008BF -_08095F98: - adds r1, r4, #0 - adds r1, #0x84 - ldr r0, _08096020 @ =0x000008E3 - str r0, [r1] - movs r0, #0x55 - strb r0, [r4, #0xe] - movs r0, #0xd6 -_08095FA6: - strb r0, [r4, #0xf] - ldr r0, _08096024 @ =gPlayerEntity - adds r1, r4, #0 - bl CopyPosition - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] -_08095FC2: - ldr r5, _08096024 @ =gPlayerEntity - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08095FE0 - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - movs r0, #0xea - lsls r0, r0, #1 - bl SoundReq -_08095FE0: - ldrh r0, [r5, #0x12] - adds r1, r4, #0 - adds r1, #0x84 - ldr r2, [r1] - lsrs r1, r2, #8 - cmp r0, r1 - bne _08095FFC - adds r0, r5, #0 - adds r0, #0x58 - ldrb r1, [r0] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - beq _08096000 -_08095FFC: - bl DeleteThisEntity -_08096000: - ldr r0, _08096024 @ =gPlayerEntity - ldrb r0, [r0, #0x1e] - ldrb r1, [r4, #0xe] - subs r0, r0, r1 - ldrb r1, [r4, #0xf] - adds r0, r0, r1 - ldrb r1, [r4, #0x1e] - cmp r0, r1 - beq _0809601E - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_0809601E: - pop {r4, r5, pc} - .align 2, 0 -_08096020: .4byte 0x000008E3 -_08096024: .4byte gPlayerEntity - - thumb_func_start sub_08096028 -sub_08096028: @ 0x08096028 - push {r4, r5, lr} - movs r4, #6 - movs r5, #0xc0 - lsls r5, r5, #2 - adds r0, r5, #0 - movs r1, #0x7b - bl CheckLocalFlagByBank - cmp r0, #0 - bne _0809603E - movs r4, #4 -_0809603E: - adds r0, r5, #0 - movs r1, #0x7a - bl CheckLocalFlagByBank - cmp r0, #0 - bne _0809604C - movs r4, #3 -_0809604C: - movs r0, #0x6a - movs r1, #0x1f - adds r2, r4, #0 - bl CreateObject - pop {r4, r5, pc} - - thumb_func_start sub_08096058 -sub_08096058: @ 0x08096058 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809606C - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 -_0809606C: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08096084 -sub_08096084: @ 0x08096084 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080960A0 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl InitializeAnimation -_080960A0: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _080960C0 - adds r1, r4, #0 - bl CopyPosition -_080960C0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080960C4 -sub_080960C4: @ 0x080960C4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r0, #0x6a - movs r1, #0x23 - movs r2, #0x49 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08096110 - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r1, _08096160 @ =gUnk_08114F34 - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r5, #0 - adds r1, r4, #0 - bl ResolveEntityBelow - ldr r1, [r6, #4] - adds r0, r4, #0 - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_08096110: - movs r0, #0x6a - movs r1, #0x24 - movs r2, #0x4a - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0809615E - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r1, _08096164 @ =gUnk_08114F30 - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r5, #0 - adds r1, r4, #0 - bl ResolveEntityOnTop - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldr r1, [r6, #4] - adds r0, r4, #0 - bl StartCutscene - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_0809615E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08096160: .4byte gUnk_08114F34 -_08096164: .4byte gUnk_08114F30 - - thumb_func_start sub_08096168 -sub_08096168: @ 0x08096168 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809618C - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x4b - bl InitializeAnimation -_0809618C: - adds r0, r4, #0 - bl GetNextFrame - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _080961AC - bl DeleteThisEntity -_080961AC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080961B0 -sub_080961B0: @ 0x080961B0 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - movs r5, #0 - ldr r6, _080961F0 @ =gUnk_08122B1E -_080961B8: - movs r0, #0x6a - movs r1, #0x25 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _080961E6 - adds r0, r7, #0 - adds r1, r4, #0 - bl CopyPosition - lsls r0, r5, #5 - strb r0, [r4, #0x15] - bl Random - movs r2, #0xf8 - lsls r2, r2, #1 - adds r1, r2, #0 - ands r0, r1 - ldrh r1, [r6] - adds r0, r0, r1 - strh r0, [r4, #0x24] -_080961E6: - adds r6, #2 - adds r5, #1 - cmp r5, #7 - ble _080961B8 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080961F0: .4byte gUnk_08122B1E - - thumb_func_start sub_080961F4 -sub_080961F4: @ 0x080961F4 - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - movs r1, #0 - strb r1, [r0, #0x1e] - bx lr - - thumb_func_start sub_08096208 -sub_08096208: @ 0x08096208 - push {r4, r5, lr} - adds r5, r0, #0 - lsls r1, r1, #1 - ldr r0, _08096238 @ =gUnk_08122B2E - adds r4, r1, r0 - movs r0, #0x6a - movs r1, #0x26 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08096234 - movs r2, #0 - ldrsb r2, [r4, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r4, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - bl PositionRelative -_08096234: - pop {r4, r5, pc} - .align 2, 0 -_08096238: .4byte gUnk_08122B2E - - thumb_func_start sub_0809623C -sub_0809623C: @ 0x0809623C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x6a - movs r1, #0x27 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809625A - ldr r3, _0809625C @ =0xFFF00000 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative -_0809625A: - pop {r4, pc} - .align 2, 0 -_0809625C: .4byte 0xFFF00000 - - thumb_func_start sub_08096260 -sub_08096260: @ 0x08096260 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x6a - movs r1, #0x28 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0809627E - ldr r3, _08096280 @ =0xFFF00000 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative -_0809627E: - pop {r4, pc} - .align 2, 0 -_08096280: .4byte 0xFFF00000 - - thumb_func_start sub_08096284 -sub_08096284: @ 0x08096284 - push {lr} - movs r1, #0xd - bl sub_0809629C - pop {pc} - .align 2, 0 - - thumb_func_start sub_08096290 -sub_08096290: @ 0x08096290 - push {lr} - movs r1, #0xe - bl sub_0809629C - pop {pc} - .align 2, 0 - - thumb_func_start sub_0809629C -sub_0809629C: @ 0x0809629C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080962B2 - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - bl sub_0807DD64 -_080962B2: - adds r0, r5, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r5, #0 - bl HandleEntity0x82Actions - movs r1, #0x80 - lsls r1, r1, #5 - adds r0, r5, #0 - bl sub_08003FC4 - ldrb r4, [r5, #0xa] - strb r6, [r5, #0xa] - adds r0, r5, #0 - bl sub_08080CB4 - strb r4, [r5, #0xa] - pop {r4, r5, r6, pc} - - thumb_func_start sub_080962D8 -sub_080962D8: @ 0x080962D8 - push {lr} - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #6 - bl DoFade - pop {pc} - .align 2, 0 - - thumb_func_start sub_080962E8 -sub_080962E8: @ 0x080962E8 - push {lr} - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #7 - bl DoFade - pop {pc} - .align 2, 0 - - thumb_func_start sub_080962F8 -sub_080962F8: @ 0x080962F8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r1, #4] - lsls r4, r4, #4 - ldr r0, _08096318 @ =gUnk_08122B3C - adds r4, r4, r0 - ldrb r2, [r4, #0xc] - adds r3, r4, #0 - adds r3, #8 - adds r0, r5, #0 - movs r1, #1 - bl sub_08078850 - str r4, [r5, #0x48] - pop {r4, r5, pc} - .align 2, 0 -_08096318: .4byte gUnk_08122B3C diff --git a/data/const/object/object6A.s b/data/const/object/object6A.s index 5481c8e1..d2d186f0 100644 --- a/data/const/object/object6A.s +++ b/data/const/object/object6A.s @@ -4,51 +4,6 @@ .section .rodata .align 2 -gUnk_08122A34:: @ 08122A34 - .4byte sub_08094A5C - .4byte sub_08094A90 - .4byte sub_08094C30 - .4byte sub_08094C88 - .4byte sub_08094D94 - .4byte sub_08094E30 - .4byte sub_08094FA8 - .4byte sub_08095088 - .4byte sub_08095120 - .4byte sub_08095188 - .4byte sub_080951C4 - .4byte sub_08095288 - .4byte sub_080953A4 - .4byte sub_080953A4 - .4byte sub_080954DC - .4byte sub_080956B4 - .4byte sub_0809577C - .4byte sub_080957DC - .4byte sub_0809584C - .4byte sub_080958D8 - .4byte sub_08095918 - .4byte sub_08094C88 - .4byte sub_080959CC - .4byte sub_08095A8C - .4byte sub_08095B48 - .4byte sub_08095C00 - .4byte sub_080953A4 - .4byte sub_08095C68 - .4byte sub_08095CE0 - .4byte sub_08095CE0 - .4byte sub_08095DBC - .4byte sub_08095F38 - .4byte sub_08096058 - .4byte sub_08096058 - .4byte sub_08094A90 - .4byte sub_08096084 - .4byte sub_08096084 - .4byte sub_08096168 - .4byte sub_080961F4 - .4byte sub_080961F4 - .4byte sub_080961F4 - .4byte sub_08096284 - .4byte sub_08096290 - gUnk_08122AE0:: @ 08122AE0 .incbin "object6A/gUnk_08122AE0.bin" diff --git a/include/createObject.h b/include/createObject.h deleted file mode 100644 index 19efbf38..00000000 --- a/include/createObject.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CREATEOBJECT_H -#define CREATEOBJECT_H - -#include "entity.h" - -// maybe a dedicated (create)Effect.h/c -void CreateDust(Entity* parent); -void CreateDustSmall(Entity* parent); - -#endif // CREATEOBJECT_H diff --git a/include/object.h b/include/object.h index 20515a6e..d7256397 100644 --- a/include/object.h +++ b/include/object.h @@ -21,6 +21,9 @@ extern void sub_0808C650(Entity*, u32); extern u32 sub_0808C67C(void); extern void sub_0808C688(void); +void CreateDust(Entity* parent); +void CreateDustSmall(Entity* parent); + typedef enum { GROUND_ITEM, DEATH_FX, diff --git a/include/script.h b/include/script.h index a251d2d5..9dd1f116 100644 --- a/include/script.h +++ b/include/script.h @@ -19,6 +19,15 @@ typedef struct ScriptExecutionContext { union SplitWord y; } ScriptExecutionContext; +typedef struct { + u32 unk_00; + u16 commandIndex; + u8 commandSize; + u8 flags; + u8 unk_08; +} struct_02033280; +extern struct_02033280 gActiveScriptInfo; + void ExecuteScript(Entity* entity, ScriptExecutionContext* context); extern u32 GetNextScriptCommandHalfword(u16*); diff --git a/include/structures.h b/include/structures.h index 2073f1b0..c8843e00 100644 --- a/include/structures.h +++ b/include/structures.h @@ -94,15 +94,6 @@ typedef struct { } struct_02024490; extern struct_02024490 gGFXSlots; -typedef struct { - u32 unk_00; - u16 commandIndex; - u8 commandSize; - u8 flags; - u8 unk_08; -} struct_02033280; -extern struct_02033280 gActiveScriptInfo; - typedef struct { u16 unk_00; u8 unk_02[0xE]; diff --git a/linker.ld b/linker.ld index 852b72cf..6e10500c 100644 --- a/linker.ld +++ b/linker.ld @@ -805,7 +805,7 @@ SECTIONS { asm/object67.o(.text); asm/object68.o(.text); asm/object69.o(.text); - asm/object6A.o(.text); + src/object/object6A.o(.text); asm/crenalBeanSprout.o(.text); asm/minecartDoor.o(.text); asm/objectOnPillar.o(.text); @@ -1543,6 +1543,7 @@ SECTIONS { data/const/object/ladderHoleInBookshelf.o(.rodata); data/const/object/object67.o(.rodata); data/const/object/object68.o(.rodata); + src/object/object6A.o(.rodata); data/const/object/object6A.o(.rodata); data/animations/object/object6A.o(.rodata); data/const/object/crenalBeanSprout.o(.rodata); diff --git a/src/enemy/bobomb.c b/src/enemy/bobomb.c index 9a68209d..32e72b86 100644 --- a/src/enemy/bobomb.c +++ b/src/enemy/bobomb.c @@ -1,7 +1,6 @@ #include "asm.h" #include "audio.h" #include "enemy.h" -#include "createObject.h" #include "object.h" #include "functions.h" diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c index 3bba9493..edab8bed 100644 --- a/src/enemy/likeLike.c +++ b/src/enemy/likeLike.c @@ -1,7 +1,7 @@ #include "enemy.h" #include "textbox.h" #include "save.h" -#include "createObject.h" +#include "object.h" #include "functions.h" extern bool32 ItemIsShield(u32); diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index 8694f4af..54f43381 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -1,5 +1,5 @@ #include "enemy.h" -#include "createObject.h" +#include "object.h" #include "overworld.h" #include "functions.h" #include "save.h" diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c index 62853353..926648bf 100644 --- a/src/enemy/rupeeLike.c +++ b/src/enemy/rupeeLike.c @@ -6,7 +6,7 @@ #include "npc.h" #include "player.h" #include "save.h" -#include "createObject.h" +#include "object.h" #include "functions.h" extern void sub_080293DC(Entity*); diff --git a/src/enemy/vaatiBall.c b/src/enemy/vaatiBall.c index f6a4356f..c060f5b9 100644 --- a/src/enemy/vaatiBall.c +++ b/src/enemy/vaatiBall.c @@ -2,7 +2,7 @@ #include "enemy.h" #include "player.h" #include "screen.h" -#include "createObject.h" +#include "object.h" #include "audio.h" #include "functions.h" diff --git a/src/enemy/wisp.c b/src/enemy/wisp.c index b2c00736..111e4f04 100644 --- a/src/enemy/wisp.c +++ b/src/enemy/wisp.c @@ -1,6 +1,6 @@ #include "enemy.h" #include "save.h" -#include "createObject.h" +#include "object.h" #include "functions.h" extern void (*const gUnk_080CEB74[])(Entity*); diff --git a/src/npc/forestMinish.c b/src/npc/forestMinish.c index 912549bf..1ebe4176 100644 --- a/src/npc/forestMinish.c +++ b/src/npc/forestMinish.c @@ -1,5 +1,5 @@ #include "npc.h" -#include "createObject.h" +#include "object.h" #include "structures.h" #include "functions.h" diff --git a/src/npc/sturgeon.c b/src/npc/sturgeon.c index c5c28329..147382a8 100644 --- a/src/npc/sturgeon.c +++ b/src/npc/sturgeon.c @@ -2,7 +2,7 @@ #include "functions.h" #include "npc.h" #include "textbox.h" -#include "createObject.h" +#include "object.h" #include "flags.h" #include "script.h" diff --git a/src/object/object6A.c b/src/object/object6A.c new file mode 100644 index 00000000..baeccd92 --- /dev/null +++ b/src/object/object6A.c @@ -0,0 +1,1323 @@ +#define NENT_DEPRECATED +#include "object.h" +#include "area.h" +#include "script.h" +#include "textbox.h" +#include "functions.h" +#include "screen.h" + +extern u8 gUnk_08114F30[]; +extern u8 gUnk_08114F34[]; +extern u8 gUnk_08122AE0[]; +extern u16 gUnk_08122AE8[]; +extern s8 gUnk_08122AF8[]; +extern u16 gUnk_08122B00[]; +extern s16 gUnk_08122B0E[]; +extern u16 gUnk_08122B1E[]; +extern s8 gUnk_08122B2E[]; + +extern u16 script_0800AEDC; +extern u16 script_0801183C; +extern u16 script_08015B14; +extern u16 script_08011940; +extern u16 script_08012C48; + +typedef struct { + Entity base; + u16 px, py, pz; + u8 off; + u8 fill[0x14]; + void* ctx; +} Object6AEntity; + +typedef struct { + u16 arr[8]; + u8 filler[4]; + u16 my_x, my_y; + u8 fill[4]; + u16 parent_x, parent_y; +} Type15Vars; + +typedef struct { + Entity base; + Type15Vars vars; +} Object6AEntityType15; + +typedef struct { + Entity base; + u8 fill[0x1C]; + u32 anim; +} Type1F; + +typedef struct { + Hitbox hit; + u8 _8[4]; + u8 _c; +} HitboxCfg; +extern HitboxCfg gUnk_08122B3C[]; + +typedef void(Object6ATypeAction)(Object6AEntity*); + +Object6ATypeAction sub_08094A5C; +Object6ATypeAction sub_08094A90; +Object6ATypeAction sub_08094C30; +Object6ATypeAction sub_08094C88; +Object6ATypeAction sub_08094D94; +Object6ATypeAction sub_08094E30; +Object6ATypeAction sub_08094FA8; +Object6ATypeAction sub_08095088; +Object6ATypeAction sub_08095120; +Object6ATypeAction sub_08095188; +Object6ATypeAction sub_080951C4; +Object6ATypeAction sub_08095288; +Object6ATypeAction sub_080953A4; +Object6ATypeAction sub_080953A4; +Object6ATypeAction sub_080954DC; +Object6ATypeAction sub_080956B4; +Object6ATypeAction sub_0809577C; +Object6ATypeAction sub_080957DC; +Object6ATypeAction sub_0809584C; +Object6ATypeAction sub_080958D8; +Object6ATypeAction sub_08095918; +Object6ATypeAction sub_08094C88; +Object6ATypeAction sub_080959CC; +Object6ATypeAction sub_08095A8C; +Object6ATypeAction sub_08095B48; +Object6ATypeAction sub_08095C00; +Object6ATypeAction sub_080953A4; +Object6ATypeAction sub_08095C68; +Object6ATypeAction sub_08095CE0; +Object6ATypeAction sub_08095CE0; +Object6ATypeAction sub_08095DBC; +Object6ATypeAction sub_08095F38; +Object6ATypeAction sub_08096058; +Object6ATypeAction sub_08096058; +Object6ATypeAction sub_08094A90; +Object6ATypeAction sub_08096084; +Object6ATypeAction sub_08096084; +Object6ATypeAction sub_08096168; +Object6ATypeAction sub_080961F4; +Object6ATypeAction sub_080961F4; +Object6ATypeAction sub_080961F4; +Object6ATypeAction sub_08096284; +Object6ATypeAction sub_08096290; + +extern void sub_08080CB4(Entity*); +extern u32 sub_080002B8(Entity*); +extern u32 sub_080040A8(Entity*); +extern void sub_08078850(Entity*, u32, u32, u8*); + +void sub_08095754(Object6AEntity*); +void sub_080957B4(Object6AEntity*); +void sub_08095954(Object6AEntity*); +void sub_08095D30(Object6AEntity*, u32); + +static void sub_0809629C(Object6AEntity*, u32); + +void Object6A(Entity* this) { + static Object6ATypeAction* const sTypeTable[] = { + sub_08094A5C, sub_08094A90, sub_08094C30, sub_08094C88, sub_08094D94, sub_08094E30, sub_08094FA8, sub_08095088, + sub_08095120, sub_08095188, sub_080951C4, sub_08095288, sub_080953A4, sub_080953A4, sub_080954DC, sub_080956B4, + sub_0809577C, sub_080957DC, sub_0809584C, sub_080958D8, sub_08095918, sub_08094C88, sub_080959CC, sub_08095A8C, + sub_08095B48, sub_08095C00, sub_080953A4, sub_08095C68, sub_08095CE0, sub_08095CE0, sub_08095DBC, sub_08095F38, + sub_08096058, sub_08096058, sub_08094A90, sub_08096084, sub_08096084, sub_08096168, sub_080961F4, sub_080961F4, + sub_080961F4, sub_08096284, sub_08096290, + }; + sTypeTable[this->type]((Object6AEntity*)this); +} + +void sub_08094A5C(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + sub_0807DD64(super); + InitializeAnimation(super, 4); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + GetNextFrame(super); +} + +void sub_08094A90(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + super->collisionLayer = 2; + UpdateSpriteForCollisionLayer(super); + super->spriteRendering.b3 = gUnk_08114F30[super->spriteRendering.b3]; + InitAnimationForceUpdate(super, 0); + sub_0807DD64(super); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + UpdateAnimationSingleFrame(super); +} + +void sub_08094AE8(Entity* this, ScriptExecutionContext* ctx) { + Object6AEntity* e = (Object6AEntity*)CreateObject(0x6A, 1, 0); + if (e != NULL) { + e->ctx = StartCutscene(&e->base, (void*)ctx->intVariable); + } +} + +void sub_08094B0C(Object6AEntity* this) { + if (--super->z.HALF.HI <= -32) + super->z.HALF.HI = -32; + else + gActiveScriptInfo.commandSize = 0; +} + +void sub_08094B3C(Object6AEntity* this) { + super->z.WORD += 0x8000; + if (super->z.HALF.HI >= -13) + super->z.HALF.HI = -13; + else + gActiveScriptInfo.commandSize = 0; +} + +void sub_08094B6C(Object6AEntity* this) { + super->spritePriority.b1 = 0x3; +} + +void sub_08094B80(Object6AEntity* this) { + super->spritePriority.b1 = 0x2; +} + +void sub_08094B94(Object6AEntity* this) { + Entity* e = CreateObject(0x6A, 0x22, 0); + if (e != NULL) { + CopyPosition(&gPlayerEntity, e); + e->z.HALF.HI = -48; + ((Object6AEntity*)e)->ctx = StartCutscene(e, &script_0800AEDC); + CreateDust(e); + e->z.HALF.HI += 16; + e->y.HALF.HI++; + } +} + +void sub_08094BE0(Entity* this) { + Entity* e = FindEntity(6, 0x6A, 6, 0x22, 0); + if (e != NULL) { + CopyPosition(&gPlayerEntity, e); + e->z.HALF.HI = -12; + e->y.HALF.HI++; + e->collisionLayer = 2; + UpdateSpriteForCollisionLayer(e); + InitAnimationForceUpdate(e, 1); + } +} + +void sub_08094C30(Object6AEntity* this) { + Entity* p = super->parent; + if (p == NULL || p->next == NULL) + DeleteThisEntity(); + if (super->action == 0) { + super->action++; + SetDefaultPriority(super, 2); + super->spriteRendering.b3 = gUnk_08114F30[p->spriteRendering.b3]; + InitAnimationForceUpdate(super, 1); + } + CopyPosition(p, super); + UpdateAnimationSingleFrame(super); +} + +void sub_08094C88(Object6AEntity* this) { + u32 tmp; + + if (super->action != 0) { + if (super->action & 0x80) { + DeleteThisEntity(); + return; + } + } else { + super->action++; + super->spriteSettings.draw = 1; + SetDefaultPriority(super, 3); + switch (super->type2) { + case 0x40: + case 0x41: + case 0x42: + case 0x43: + ResolveEntityBelow(super, super); + } + } + + tmp = super->type; + super->type = super->type2; + sub_08080CB4(super); + super->type = tmp; +} + +void sub_08094CDC(Object6AEntity* this) { + Entity* e = CreateObject(0x6a, 3, 0x62); + if (e != NULL) { + e->x.HALF.HI = gRoomControls.roomOriginX + 224; + e->y.HALF.HI = gRoomControls.roomOriginY + 600; + SoundReq(324); + } +} + +void sub_08094D10(Object6AEntity* this) { + Entity* e = FindEntity(6, 0x6a, 6, 3, 98); + if (e != NULL) { + e->action = 0xFF; + } +} + +void sub_08094D34(Object6AEntity* this) { + Entity* e = CreateObject(0x6a, 0x15, 0xd); + if (e != NULL) { + e->x.HALF.HI = gRoomControls.roomOriginX + 256; + e->y.HALF.HI = gRoomControls.roomOriginY + 600; + SoundReq(324); + } +} + +void sub_08094D70(Object6AEntity* this) { + Entity* e = FindEntity(6, 0x6a, 6, 0x15, 0xd); + if (e != NULL) { + e->action = 0xFF; + } +} + +void sub_08094D94(Object6AEntity* this) { + u32 tmp; + + if (super->action != 0) { + if (super->action & 0x80) { + DeleteThisEntity(); + return; + } + } else { + super->action++; + super->spriteSettings.draw = 1; + SetDefaultPriority(super, 3); + InitAnimationForceUpdate(super, 0); + } + UpdateAnimationSingleFrame(super); +} + +void sub_08094DD8(Object6AEntity* this) { + Entity* e = CreateObject(0x6a, 0x4, 0); + if (e != NULL) { + e->x.HALF.HI = gRoomControls.roomOriginX + 240; + e->y.HALF.HI = gRoomControls.roomOriginY + 600; + SoundReq(324); + } +} + +void sub_08094E0C(Object6AEntity* this) { + Entity* e = FindEntity(6, 0x6a, 6, 4, 0); + if (e != NULL) { + e->action = 0xFF; + } +} + +void sub_08094E30(Object6AEntity* this) { + if (super->type2 == 0) { + if ((gScreenTransition.frameCount % 32) == 0) { + Entity* e = CreateObject(0x6A, 5, 1); + if (e != NULL) { + e->x.HALF.HI = gRoomControls.roomScrollX + (s32)Random() % DISPLAY_WIDTH; + e->y.HALF.HI = gRoomControls.roomScrollY + (s32)Random() % DISPLAY_HEIGHT; + } + } + return; + } + + if (super->type2 == 1) { + switch (super->action) { + case 0: + super->action++; + super->z.WORD = -0xA00000; + super->zVelocity = 0; + SetDefaultPriority(super, 6); + InitializeAnimation(super, 0); + if (sub_080002B8(super) == 13) { + super->action = 3; + } + break; + case 1: + super->z.WORD -= super->zVelocity; + super->zVelocity -= 0x2000; + if (super->z.WORD > 0) { + super->action++; + super->z.WORD = 0; + super->zVelocity = 0; + InitializeAnimation(super, 1); + EnqueueSFX(382); + } + break; + case 2: + GetNextFrame(super); + if (super->frame & 0x80) { + DeleteThisEntity(); + } + break; + case 3: + super->z.WORD -= super->zVelocity; + super->zVelocity -= 0x2000; + if (!sub_080040A8(super)) { + DeleteThisEntity(); + } + break; + } + } else if (super->action == 0) { + super->action++; + switch (super->actionDelay) { + case 1: + InitializeAnimation(super, 2); + break; + case 2: + super->spriteSettings.flipX = 1; + InitializeAnimation(super, 0); + break; + case 0: + InitializeAnimation(super, 0); + break; + case 3: + super->spriteSettings.flipX = 1; + InitializeAnimation(super, 2); + break; + } + } +} + +void sub_08094F98(Object6AEntity* this) { + CreateObject(0x6A, 5, 0); +} + +void sub_08094FA8(Object6AEntity* this) { + switch (super->action) { + case 0: + super->action = 1; + super->frameIndex = 0; + super->spritePriority.b0 = 7; + sub_080787B4(super); + break; + case 1: + if (super->interactType != 0) { + super->interactType = 0; + super->action = 2; + sub_080788E0(super); + gPlayerState.playerAction = 12; + gPlayerState.field_0x38 = 54; +#ifndef EU + SetPlayerControl(2); +#endif + } + break; + case 2: + if (GetInventoryValue(54) == 2) { + super->action = 3; + super->spriteSettings.draw = 1; + } + break; + case 3: + if (gPlayerEntity.action != 12) { + super->action = 4; +#ifndef EU + if (!CheckGlobalFlag(BIN_DOGFOOD)) { + CreateItemEntity(0x1c, 0, 0); + SetGlobalFlag(BIN_DOGFOOD); + super->actionDelay = 60; + } +#else + CreateItemEntity(0x1c, 0, 0); +#endif + } + break; +#ifndef EU + case 4: + if (!--super->actionDelay) { + super->action = 5; + SetPlayerControl(1); + } + break; +#endif + } +} + +void sub_08095088(Object6AEntity* this) { + u32 tmp; + + switch (super->action) { + case 0: + if (GetInventoryValue(91)) + DeleteThisEntity(); + super->action = 1; + super->spritePriority.b0 = 7; + sub_080787B4(super); + break; + case 1: + if (super->interactType != 0) { + super->interactType = 0; + super->action = 2; + sub_080788E0(super); + CreateEzloHint(0x1F1F, 0); + } + break; + case 2: + if ((gMessage.doTextBox & 0x7F) == 0) { + CreateItemEntity(0x5b, 0, 0); + DeleteThisEntity(); + } + break; + } + tmp = super->type; + super->type = 91; + sub_08080CB4(super); + super->type = tmp; +} + +void sub_08095120(Object6AEntity* this) { + if (super->action == 0) { + super->action = 1; + SetDefaultPriority(super, 3); + ResolveEntityBelow(super, super); + sub_0807DD64(super); + InitAnimationForceUpdate(super, 2); + } + ExecuteScriptForEntity(super, NULL); + HandleEntity0x82Actions(super); + UpdateAnimationSingleFrame(super); +} + +void sub_08095164(Object6AEntity* this) { + Entity* e = FindEntity(6, 0x6A, 6, 8, 0); + if (e != NULL) { + InitAnimationForceUpdate(e, 3); + } +} + +void sub_08095188(Object6AEntity* this) { + if (super->action == 0) { + super->action = 1; + SetDefaultPriority(super, 3); + ResolveEntityBelow(super, super); + sub_0807DD64(super); + InitAnimationForceUpdate(super, 0); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); +} + +void sub_080951C4(Object6AEntity* this) { + Entity* p; + + if (super->action == 0) { + super->action++; + super->z.HALF.HI = -16; + super->actionDelay = 0; + sub_0807DD64(super); + InitializeAnimation(super, 3); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + GetNextFrame(super); + if (super->z.HALF.HI == 0) { + super->z.WORD = 0; + super->parent = NULL; + if (super->actionDelay == 0) { + super->actionDelay++; + SoundReq(230); + } + } + p = super->parent; + if (p != NULL) { + super->spriteSettings.draw = p->spriteSettings.draw; + super->x.HALF.HI = p->x.HALF.HI + 16; + super->y.HALF.HI = p->y.HALF.HI - 16; + } +} + +void sub_08095244(Object6AEntity* this) { + if (super->type == 0) { + Entity* e = CreateObject(0x6A, 0xA, 0); + if (e != NULL) { + e->parent = super; + PositionRelative(super, e, 0x100000, -0x100000); + ((Object6AEntity*)e)->ctx = StartCutscene(e, &script_0801183C); + } + } +} + +void sub_08095288(Object6AEntity* this) { + Entity* p; + + if (super->action == 0) { + super->action++; + super->subAction = 0; + SetDefaultPriority(super, 3); + InitAnimationForceUpdate(super, 0); + } + if (super->subAction != 0) { + if ((u32)sub_080044EC(super, 0x1800) <= 1) { + super->subAction = 0; + sub_0805EC9C(super, 0x100, 0x100, 0xC000); + } else { + sub_0805EC9C(super, 0x100, 0x100, super->actionDelay << 8); + super->actionDelay += 10; + sub_0806F69C(super); + } + } + p = super->child; + if (p != NULL) { + CopyPosition(p, super); + } + UpdateAnimationSingleFrame(super); + p = super->parent; + if (p != NULL) { + super->spriteSettings.draw = p->spriteSettings.draw; + if (p->next == NULL) + DeleteThisEntity(); + } else { + DeleteThisEntity(); + } +} + +void sub_08095330(Object6AEntity* this) { + Entity* e = CreateObject(0x6A, 0xB, 0); + if (e != NULL) { + super->child = e; + e->child = super; + e->parent = super; + CopyPosition(super, e); + e->z.HALF.HI = -16; + ResolveEntityOnTop(e, e); + } +} + +void sub_08095364(Object6AEntity* this) { + Entity* e = super->child; + if (e != NULL) { + e->frameIndex = 2; + e->collisionLayer = 1; + UpdateSpriteForCollisionLayer(e); + e->child = NULL; + e->subAction = 1; + e->z.HALF.HI = -16; + e->direction = 7; + e->zVelocity = 0x30000; + e->speed = 128; + InitAnimationForceUpdate(e, 1); + } +} + +void sub_080953A4(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + super->z.HALF.HI = -16; + SetDefaultPriority(super, 2); + super->spriteRendering.b3 = gUnk_08114F30[super->spriteRendering.b3]; + ResolveEntityOnTop(super, super); + sub_0807DD64(super); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + GetNextFrame(super); + if (super->type == 13) { + u32 x = 0; + u32 y = 0x139; + ChangeObjPalette(super, super->frameSpriteSettings & 1 ? x : y); + } +} + +void sub_08095420(Object6AEntity* this, ScriptExecutionContext* ctx) { + Entity* e = CreateObject(0x6A, 0xC, 0); + if (e != NULL) { + PositionRelative(super, e, 0, -0x100000); + ((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable); + } +} + +void nullsub_527(Object6AEntity* this) { +} + +void sub_0809545C(Object6AEntity* this, ScriptExecutionContext* ctx) { + Entity* p = CreateObject(0x6A, 0xD, 0); + Entity* e; + if (p != NULL) { + PositionRelative(super, p, 0, -0x100000); + ((Object6AEntity*)p)->ctx = StartCutscene(p, (u16*)ctx->intVariable); + e = CreateObject(0x6A, 2, 0); + if (e != NULL) { + CopyPosition(p, e); + e->parent = p; + } + } +} + +void sub_080954AC(Object6AEntity* this) { + Entity* e = CreateObject(0x6A, 0x1A, 0); + if (e != NULL) { + CopyPosition(super, e); + ((Object6AEntity*)e)->ctx = StartCutscene(e, &script_08015B14); + } +} + +void sub_080954DC(Object6AEntity* this) { + switch (super->action) { + case 0: + if (super->actionDelay != 0) { + super->actionDelay--; + } else { + super->action++; + super->subAction = 0; + super->spriteSettings.draw = 1; + super->z.HALF.HI = 0; + super->spritePriority.b0 = 1; + this->px = super->x.HALF.HI; + this->py = super->y.HALF.HI; + this->pz = 0; + this->off = gUnk_08122AE0[super->type2]; + ChangeObjPalette(super, gUnk_08122AE8[super->type2]); + sub_0807DD64(super); + InitializeAnimation(super, super->type2 + 2); + sub_08095754(this); + SoundReq((s32)Random() % 6 + 0x1BC); + } + break; + case 1: + if (--super->z.HALF.HI <= -16) { + super->action++; + super->z.HALF.HI = -16; + } + break; + case 2: + if (++this->pz > 0x40) + this->pz = 0x40; + super->x.HALF.HI = (gSineTable[this->off + 64] * (this->pz << 8)) >> 16; + super->y.HALF.HI = (gSineTable[this->off] * (this->pz << 7)) >> 16; + super->x.HALF.HI += this->px; + super->y.HALF.HI += this->py; + break; + case 3: + sub_0806F62C(super, super->speed, super->direction); + break; + } + this->off += 4; + if (super->subAction != 0 && !sub_080040A8(super)) + DeleteThisEntity(); + if (super->direction & 0x80) + super->spriteSettings.flipX = 0; + else + super->spriteSettings.flipX = 1; + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + GetNextFrame(super); +} + +void sub_0809567C(Object6AEntity* this) { + super->action = 3; + super->subAction = 1; + super->speed = 0x400; + super->direction = sub_080045DA(super->x.WORD - ((s16)this->px << 16), super->y.WORD - ((s16)this->py << 16)); +} + +void sub_080956B4(Object6AEntity* this) { + Entity* p; + u16* p1; + u16* p2; + Type15Vars* tmp; + + if (super->action == 0) { + s32 i; + u16* p; + u32 x; + u32 y; + + super->action++; + InitializeAnimation(super, 0); + // p = this->v.arr; + asm("mov r4, r5"); + asm("add r4, #0x68"); + x = super->x.HALF_U.HI; + y = super->y.HALF_U.HI; + for (i = 0; i < 8; i++) { + *p++ = x; + *p++ = y; + } + } + GetNextFrame(super); + if ((super->type2 + gScreenTransition.frameCount) % 16 == 0) + sub_080957B4(this); + p = super->parent; + if (p != NULL) { + super->spriteSettings.draw = p->spriteSettings.draw; + if (p->next == NULL) { + DeleteThisEntity(); + } + } else { + DeleteThisEntity(); + } + tmp = &((Object6AEntityType15*)this)->vars; + MemCopy(&tmp->arr[2], &tmp->arr[0], 0x1C); + super->x.HALF.HI = tmp->my_x; + super->y.HALF.HI = tmp->my_y; + super->z.HALF.HI = p->z.HALF.HI; + tmp->parent_x = p->x.HALF.HI; + tmp->parent_y = p->y.HALF.HI; +} + +void sub_08095754(Object6AEntity* this) { + Entity* e = CreateObject(0x6A, 0xF, super->type2); + if (e != NULL) { + e->parent = super; + CopyPosition(super, e); + ResolveEntityBelow(super, e); + } +} + +void sub_0809577C(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + super->z.HALF.HI = -16; + InitializeAnimation(super, 1); + } + GetNextFrame(super); + if (super->frame & 0x80) + DeleteThisEntity(); +} + +void sub_080957B4(Object6AEntity* this) { + Entity* e = CreateObject(0x6A, 0x10, 0); + if (e != NULL) { + e->parent = super; + CopyPosition(super, e); + ResolveEntityBelow(super, e); + } +} + +void sub_080957DC(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + sub_0807DD64(super); + InitAnimationForceUpdate(super, 0); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + UpdateAnimationSingleFrame(super); +} + +void sub_08095810(Object6AEntity* this) { + Entity* e = CreateObject(0x6A, 0x11, 0); + if (e != NULL) { + e->parent = super; + CopyPosition(super, e); + ResolveEntityOnTop(super, e); + ((Object6AEntity*)e)->ctx = StartCutscene(e, &script_08011940); + } +} + +void sub_0809584C(Object6AEntity* this) { + u32 tmp, idx; + + idx = super->health; + if ((idx & 0x7F) != 0 && !ReadBit((u32*)gArea.filler5, idx - 1)) + DeleteThisEntity(); + if (super->actionDelay != 0 && CheckKinstoneFused(super->type2)) + DeleteThisEntity(); + if (super->action == 0) { + super->action++; + super->collisionLayer = 2; + UpdateSpriteForCollisionLayer(super); + super->spriteRendering.b3 = gUnk_08114F30[super->spriteRendering.b3]; + sub_0807DD64(super); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + tmp = super->type; + super->type = 92; + sub_08080CB4(super); + super->type = tmp; +} + +void sub_080958D8(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + sub_0807DD64(super); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + GetNextFrame(super); + if (super->frame & 1) + sub_08095954(this); +} + +void sub_08095918(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + SetDefaultPriority(super, 6); + sub_0807DD64(super); + InitializeAnimation(super, 0); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + GetNextFrame(super); +} + +void sub_08095954(Object6AEntity* this) { + typedef struct { + s8 x, y; + } s8XY; + + Entity* e = CreateObject(0x6A, 0x14, 0); + if (e != NULL) { + u32 tmp, x, y; + e->parent = super; + tmp = super->animationState; + x = ((s8XY*)(&gUnk_08122AF8[tmp]))->x << 16; + y = ((s8XY*)(&gUnk_08122AF8[tmp]))->y << 16; + PositionRelative(super, e, x, y); + e->z.HALF.HI = -3; + ((Object6AEntity*)e)->ctx = StartCutscene(e, &script_08012C48); + EnqueueSFX(292); + super->frame &= ~1; + } else { + gActiveScriptInfo.unk_00 |= 0x100; + } +} + +void sub_080959CC(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + super->spriteSettings.draw = 0; + SetDefaultPriority(super, 3); + sub_0807DD64(super); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + UpdateAnimationSingleFrame(super); + sub_08095D30(this, super->frame & ~0x80); +} + +void sub_08095A1C(Object6AEntity* this, ScriptExecutionContext* ctx) { + Entity* e = CreateObject(0x6A, 0x16, 0); + if (e != NULL) { + e->x.HALF.HI = gRoomControls.roomOriginX + 232; + e->y.HALF.HI = gRoomControls.roomOriginY + 312; + e->z.HALF.HI = -4; + e->collisionLayer = 2; + ((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable); + } +} + +void sub_08095A68(Object6AEntity* this) { + Entity* e = FindEntity(6, 0x6A, 6, 0x16, 0); + if (e != NULL) { + e->action = 0xFF; + } +} + +void sub_08095A8C(Object6AEntity* this) { + switch (super->action) { + case 0: + super->action++; + super->frameIndex = 0; + sub_0807DD64(super); + case 1: + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + break; + case 2: + super->action++; + super->actionDelay = 120; + case 3: + super->spriteSettings.draw ^= 1; + if (--super->actionDelay == 0) { + super->action = 1; + super->spriteSettings.draw = 1; + } + break; + case 4: + super->action++; + super->actionDelay = 120; + case 5: + super->spriteSettings.draw ^= 1; + if (--super->actionDelay == 0) { + super->action = 1; + super->spriteSettings.draw = 0; + } + break; + } +} + +void sub_08095B48(Object6AEntity* this) { + Entity* p; + u32 tmp; + + if (super->action == 0) { + super->action++; + super->collisionLayer = 2; + UpdateSpriteForCollisionLayer(super); + super->spriteRendering.b3 = gUnk_08114F30[super->spriteRendering.b3]; + } + super->spriteSettings.draw = 0; + p = super->parent; + if (p != NULL) { + if ((p->frame & 0x40) == 0) { + if (p->frame & 0x80) { + DeleteThisEntity(); + return; + } + } else { + s8* data; + super->spriteSettings.draw = 1; + data = GetSpriteSubEntryOffsetDataPointer((u16)p->spriteIndex, p->frameIndex); + super->spriteOffsetX = data[0]; + super->spriteOffsetY = data[1]; + } + } + tmp = super->type; + super->type = super->type2; + sub_08080CB4(super); + super->type = tmp; +} + +void sub_08095BE0(Object6AEntity* this, u32 val) { + Entity* e = CreateObject(0x6A, 0x18, val); + if (e != NULL) { + e->parent = super; + CopyPosition(super, e); + } +} + +void sub_08095C00(Object6AEntity* this) { + if (super->action & 0x80) { + DeleteThisEntity(); + } else { + Entity* p = super->parent; + if (p != NULL) { + super->spriteVramOffset = 232; + if (p->spriteSettings.draw == 1) + super->spriteSettings.draw = 0; + else + super->spriteSettings.draw = 1; + } + } +} + +void sub_08095C48(Object6AEntity* this) { + Entity* e = CreateObject(0x6A, 0x19, 0); + if (e != NULL) { + super->child = e; + e->parent = super; + CopyPosition(super, e); + } +} + +void sub_08095C68(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + sub_080042D0(super, super->frameIndex, (u16)super->spriteIndex); + } + if (super->actionDelay != 0) { + if (--super->actionDelay < 8) { + super->spriteSettings.draw ^= 1; + } + if (super->actionDelay != 0) { + return; + } + } + DeleteThisEntity(); +} + +void sub_08095CB0(Object6AEntity* this) { + Entity* e = CreateObject(0x6A, 0x1B, 0); + if (e != NULL) { + super->child = e; + e->parent = super; + CopyPosition(super, e); + e->actionDelay = 16; + e->frameIndex = super->frameIndex; + e->lastFrameIndex = super->frameIndex; + } +} + +void sub_08095CE0(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + super->spriteSettings.draw = 0; + SetDefaultPriority(super, 6); + sub_0807DD64(super); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + UpdateAnimationSingleFrame(super); + sub_08095D30(this, super->frame & ~0x80); +} + +void sub_08095D30(Object6AEntity* this, u32 a2) { + if (a2 != 0) + ChangeObjPalette(super, gUnk_08122B00[a2] & ~0x80); +} + +void sub_08095D54(Object6AEntity* this, ScriptExecutionContext* ctx) { + Entity* e = CreateObject(0x6A, 0x1C, 0); + if (e != NULL) { + CopyPosition(&gPlayerEntity, e); + e->collisionLayer = 2; + ((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable); + } +} + +void sub_08095D8C(Object6AEntity* this, ScriptExecutionContext* ctx) { + Entity* e = CreateObject(0x6A, 0x1D, 0); + if (e != NULL) { + CopyPosition(super, e); + ((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable); + } +} + +void sub_08095DBC(Object6AEntity* this) { + if (gActiveScriptInfo.unk_00 & 0x10) + DeleteThisEntity(); + if (super->type2 == 0) { + if (super->action == 0) { + super->action++; + sub_0807DD64(super); + } + ExecuteScriptForEntity(super, 0); + } else { + if (super->action == 0) { + super->action++; + super->spriteSettings.draw = 1; + InitializeAnimation(super, 75); + super->spriteRendering.b3 = gUnk_08114F30[super->spriteRendering.b3]; + ResolveEntityOnTop(super, super); + } + if ((super->type2 & 0x80) == 0 && gActiveScriptInfo.unk_00 & 0x20000) { + super->type2 = -1; + super->zVelocity = 0x40000; + super->speed = 0xC000; + } + sub_08003FC4(super, super->speed); + GetNextFrame(super); + if (!sub_080040A8(super)) + DeleteThisEntity(); + } +} + +void sub_08095E7C(Object6AEntity* this, ScriptExecutionContext* ctx) { + Entity* e = CreateObject(0x6A, 0x1E, 0); + if (e != NULL) { + CopyPosition(super, e); + ((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable); + } +} + +NONMATCH("asm/non_matching/object6A/sub_08095EAC.inc", + void sub_08095EAC(Object6AEntity* this, ScriptExecutionContext* ctx)) { + Entity* e = CreateObject(0x6A, 0x1E, 1); + s32 x, y; + + if (e != NULL) { + s32 a, b, vel, speed; + if (ctx->intVariable == 0) { + a = 0x10; + b = 0x1F; + vel = 0x4000; + speed = 0; + } else { + a = 0x8; + b = 0xF; + vel = 0x40000; + speed = gUnk_08122B0E[Random() & 7]; + super->type2 = -1; + } + + x = a - (Random() & b); + y = a - (Random() & b); + PositionRelative(super, e, x << 16, y << 16); + super->zVelocity = vel; + super->speed = speed; + } +} +END_NONMATCH + +#define local ((Type1F*)this) +void sub_08095F38(Object6AEntity* this) { + u32 tmp; + + if (super->action == 0) { + u32 pal; + + super->action = 1; + super->frameIndex = -1; + switch (super->type2) { + case 3: + pal = 0; + break; + case 4: + pal = 1; + break; + case 6: + pal = 4; + break; + } + ChangeObjPalette(super, pal); + if ((gPlayerEntity.frame & 1) == 0) { + local->anim = 0x8BF; + super->actionDelay = 52; + super->field_0xf = -75; + } else { + local->anim = 0x8E3; + super->actionDelay = 85; + super->field_0xf = -42; + } + CopyPosition(&gPlayerEntity, super); + super->spritePriority.b0 = 3; + } + if (gPlayerEntity.frame & 0x10) { + gPlayerEntity.frame &= ~0x10; + SoundReq(468); + } + if ((u16)gPlayerEntity.spriteIndex != local->anim >> 8 || gPlayerEntity.animIndex != (u8)local->anim) + DeleteThisEntity(); + tmp = gPlayerEntity.frameIndex - super->actionDelay + super->field_0xf; + if (tmp != super->frameIndex) { + super->frameIndex = tmp; + sub_080042D0(super, super->frameIndex, (u16)super->spriteIndex); + } +} + +void sub_08096028(Object6AEntity* this) { + u32 type2 = 6; + if (!CheckLocalFlagByBank(768, 123)) + type2 = 4; + if (!CheckLocalFlagByBank(768, 122)) + type2 = 3; + CreateObject(0x6A, 0x1F, type2); +} + +void sub_08096058(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + sub_0807DD64(super); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + GetNextFrame(super); +} + +void sub_08096084(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + sub_0807DD64(super); + InitializeAnimation(super, super->type2); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + GetNextFrame(super); + if (super->parent != NULL) { + CopyPosition(super->parent, super); + } +} + +void sub_080960C4(Object6AEntity* this, ScriptExecutionContext* ctx) { + Entity* e = CreateObject(0x6A, 0x23, 0x49); + if (e != NULL) { + e->parent = super; + CopyPosition(super, e); + e->spriteRendering.b3 = gUnk_08114F34[super->spriteRendering.b3]; + ResolveEntityBelow(super, e); + ((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable); + } + e = CreateObject(0x6A, 0x24, 0x4A); + if (e != NULL) { + e->parent = super; + CopyPosition(super, e); + e->spriteRendering.b3 = gUnk_08114F30[super->spriteRendering.b3]; + ResolveEntityOnTop(super, e); + e->collisionLayer = 2; + ((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable); + } +} + +void sub_08096168(Object6AEntity* this) { + if (super->action == 0) { + super->action++; + super->spriteSettings.draw = 1; + InitializeAnimation(super, 75); + } + GetNextFrame(super); + sub_0806F62C(super, super->speed, super->direction); + if (!sub_080040A8(super)) + DeleteThisEntity(); +} + +void sub_080961B0(Object6AEntity* this) { + int i; + for (i = 0; i < 8; ++i) { + Entity* e = CreateObject(0x6A, 0x25, 0); + if (e != NULL) { + CopyPosition(super, e); + e->direction = 32 * i; + e->speed = (Random() & 0x1F0) + gUnk_08122B1E[i]; + } + } +} + +void sub_080961F4(Object6AEntity* this) { + super->spriteSettings.draw = 1; + super->frameIndex = 0; +} + +void sub_08096208(Object6AEntity* this, u32 x) { + s8* p = &gUnk_08122B2E[x * 2]; + Entity* e = CreateObject(0x6A, 0x26, 0); + if (e != NULL) { + PositionRelative(super, e, p[0] << 16, p[1] << 16); + } +} + +void sub_0809623C(Object6AEntity* this) { + Entity* e = CreateObject(0x6A, 0x27, 0); + if (e != NULL) { + PositionRelative(super, e, 0, -0x100000); + } +} + +void sub_08096260(Object6AEntity* this) { + Entity* e = CreateObject(0x6A, 0x28, 0); + if (e != NULL) { + PositionRelative(super, e, 0, -0x100000); + } +} + +void sub_08096284(Object6AEntity* this) { + sub_0809629C(this, 0xd); +} + +void sub_08096290(Object6AEntity* this) { + sub_0809629C(this, 0xe); +} + +void sub_0809629C(Object6AEntity* this, u32 type) { + u32 tmp; + + if (super->action == 0) { + super->action = 1; + sub_0807DD64(super); + } + ExecuteScriptForEntity(super, 0); + HandleEntity0x82Actions(super); + sub_08003FC4(super, 0x1000); + tmp = super->type; + super->type = type; + sub_08080CB4(super); + super->type = tmp; +} + +void sub_080962D8(Object6AEntity* this) { + DoFade(6, 0x100); +} + +void sub_080962E8(Object6AEntity* this) { + DoFade(7, 0x100); +} + +void sub_080962F8(Object6AEntity* this, ScriptExecutionContext* ctx) { + HitboxCfg* cfg = &gUnk_08122B3C[ctx->intVariable]; + sub_08078850(super, 1, cfg->_c, cfg->_8); + super->hitbox = &cfg->hit; +} diff --git a/src/object/objectA.c b/src/object/objectA.c index c7d885e7..8578c1be 100644 --- a/src/object/objectA.c +++ b/src/object/objectA.c @@ -2,7 +2,7 @@ #include "entity.h" #include "room.h" #include "flags.h" -#include "createObject.h" +#include "object.h" #include "functions.h" #include "overworld.h" diff --git a/src/object/pinwheel.c b/src/object/pinwheel.c index 37234dc5..b44f5a8c 100644 --- a/src/object/pinwheel.c +++ b/src/object/pinwheel.c @@ -1,7 +1,7 @@ #include "global.h" #include "entity.h" #include "flags.h" -#include "createObject.h" +#include "object.h" extern u32 ReadBit(u32*, u32); diff --git a/src/objectUtils.c b/src/objectUtils.c index b250b0e6..3fb4da3c 100644 --- a/src/objectUtils.c +++ b/src/objectUtils.c @@ -2,7 +2,6 @@ #include "entity.h" #include "coord.h" #include "room.h" -#include "createObject.h" #include "object.h" #include "effects.h" #include "functions.h" diff --git a/src/projectile/arrowProjectile.c b/src/projectile/arrowProjectile.c index 51a49e34..03994e21 100644 --- a/src/projectile/arrowProjectile.c +++ b/src/projectile/arrowProjectile.c @@ -2,7 +2,7 @@ #include "enemy.h" #include "functions.h" #include "audio.h" -#include "createObject.h" +#include "object.h" extern s32 sub_080AF090(Entity*); From 1f515e6958497600f277114f163b31f92acbf22c Mon Sep 17 00:00:00 2001 From: theo3 Date: Sat, 25 Dec 2021 16:35:54 -0800 Subject: [PATCH 035/168] doc surface types --- asm/code_080732D0.s | 6 +- asm/code_08078778.s | 4 +- asm/non_matching/player/PlayerNormal.inc | 4 +- asm/non_matching/player/sub_08070DC4.inc | 2 +- include/functions.h | 2 +- include/player.h | 83 ++++++--- src/code_08077B98.c | 18 +- src/collision.c | 4 +- src/coord.c | 4 +- src/enemy/vaatiWrath.c | 2 +- src/item/itemBow.c | 18 +- src/item/itemLantern.c | 4 +- src/item/itemPegasusBoots.c | 10 +- src/item/itemRocsCape.c | 6 +- src/item/itemSword.c | 4 +- src/manager/manager15.c | 2 +- src/manager/manager6.c | 2 +- src/npcUtils.c | 2 +- src/object/furniture.c | 2 +- src/overworld.c | 2 +- src/player.c | 211 ++++++++++++----------- src/playerItem/playerItem11.c | 2 +- src/playerItem/playerItemC.c | 12 +- src/playerItem/playerItemGustJar.c | 2 +- 24 files changed, 227 insertions(+), 181 deletions(-) diff --git a/asm/code_080732D0.s b/asm/code_080732D0.s index 8a27c50a..36957a76 100644 --- a/asm/code_080732D0.s +++ b/asm/code_080732D0.s @@ -182,7 +182,7 @@ PlayerParachute: @ 0x08073420 bl sub_08078EFC cmp r0, #0 bne _0807345E - bl sub_0807A1B8 + bl UpdateFloorType ldrb r2, [r4, #0x1b] movs r1, #0x3f adds r0, r1, #0 @@ -1105,7 +1105,7 @@ _08073AFA: bl sub_0807A2B8 movs r0, #0 strb r0, [r6, #2] - bl sub_0807A1B8 + bl UpdateFloorType ldrb r0, [r6, #0xc] cmp r0, #0 bne _08073B5C @@ -1422,7 +1422,7 @@ _08073D74: _08073D80: adds r0, r4, #0 bl sub_08073904 - bl sub_0807A1B8 + bl UpdateFloorType ldrb r0, [r5, #2] cmp r0, #0 beq _08073D96 diff --git a/asm/code_08078778.s b/asm/code_08078778.s index d6955113..36074a2e 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -3371,8 +3371,8 @@ sub_0807A180: @ 0x0807A180 .align 2, 0 _0807A1B4: .4byte 0xFFFC0000 - thumb_func_start sub_0807A1B8 -sub_0807A1B8: @ 0x0807A1B8 + thumb_func_start UpdateFloorType +UpdateFloorType: @ 0x0807A1B8 push {r4, lr} ldr r4, _0807A1DC @ =gPlayerEntity adds r0, r4, #0 diff --git a/asm/non_matching/player/PlayerNormal.inc b/asm/non_matching/player/PlayerNormal.inc index a1555771..17b2e5e8 100644 --- a/asm/non_matching/player/PlayerNormal.inc +++ b/asm/non_matching/player/PlayerNormal.inc @@ -154,7 +154,7 @@ _080708AC: ands r0, r6 cmp r0, #0 bne _080708C4 - bl sub_0807A1B8 + bl UpdateFloorType _080708C4: bl sub_08078EFC cmp r0, #0 @@ -194,7 +194,7 @@ _08070902: beq _0807090C b _08070BE4 _0807090C: - bl sub_0807A1B8 + bl UpdateFloorType bl sub_08078EFC b _08070BE4 .align 2, 0 diff --git a/asm/non_matching/player/sub_08070DC4.inc b/asm/non_matching/player/sub_08070DC4.inc index 0b73a553..c7142c97 100644 --- a/asm/non_matching/player/sub_08070DC4.inc +++ b/asm/non_matching/player/sub_08070DC4.inc @@ -5,7 +5,7 @@ adds r0, r4, #0 bl sub_080085B0 bl sub_08079E08 - bl sub_0807A1B8 + bl UpdateFloorType bl sub_08078EFC cmp r0, #0 bne _08070E76 diff --git a/include/functions.h b/include/functions.h index 31402827..7c875323 100644 --- a/include/functions.h +++ b/include/functions.h @@ -147,7 +147,7 @@ extern void sub_08077728(); extern void sub_0807AEE4(); extern u32 sub_08078EFC(); extern void sub_0807921C(); -extern void sub_0807A1B8(); +extern void UpdateFloorType(); extern void sub_08079938(); extern void sub_0807ACCC(Entity*); extern void sub_080A2BE4(Entity*, u32); diff --git a/include/player.h b/include/player.h index be0e0987..943d7f5e 100644 --- a/include/player.h +++ b/include/player.h @@ -107,6 +107,54 @@ enum PlayerFlags { PL_USE_OCARINA = (1 << 28), }; +enum SurfaceType { + SURFACE_NORMAL, + SURFACE_PIT, + SURFACE_2, + SURFACE_3, + SURFACE_SLOPE_GNDGND_V, + SURFACE_SLOPE_GNDGND_H, + SURFACE_6, + SURFACE_7, + SURFACE_MINISH_DOOR_FRONT, + SURFACE_MINISH_DOOR_BACK, + SURFACE_A, + SURFACE_B, + SURFACE_SLOPE_GNDWATER, + SURFACE_D, + SURFACE_E, + SURFACE_F, + SURFACE_10, + SURFACE_11, + SURFACE_DOOR, + SURFACE_DOOR_13, + SURFACE_14, + SURFACE_CLONE_TILE, + SURFACE_16, + SURFACE_ICE, + SURFACE_SHALLOW_WATER, + SURFACE_WATER, + SURFACE_BUTTON, + SURFACE_1B, + SURFACE_1C, + SURFACE_1D, + SURFACE_LADDER, + SURFACE_1F, + SURFACE_20, + SURFACE_21, + SURFACE_22, + SURFACE_EDGE, + SURFACE_24, + SURFACE_DUST, + SURFACE_26, + SURFACE_HOLE, + SURFACE_LIGHT_GRADE, + SURFACE_29, + SURFACE_AUTO_LADDER, + SURFACE_CLIMB_WALL, + SURFACE_2C, +}; + typedef struct { /*0x00*/ u8 field_0x0[2]; /*0x02*/ u8 jumpStatus; @@ -121,32 +169,24 @@ typedef struct { /*0x0d*/ u8 field_0xd; /*0x0e*/ u8 field_0xe; /*0x0f*/ u8 hurtBlinkSpeed; - /*0x10*/ u8 field_0x10[4]; - /*0x11*/ u8 field_0x14; - /*0x11*/ u8 field_0x15; - /*0x14*/ u16 startPosX; - /*0x16*/ u16 startPosY; + /*0x10*/ u8 field_0x10; + /*0x11*/ u8 field_0x11; + /*0x12*/ u8 floor_type; + /*0x13*/ u8 floor_type_last; + /*0x14*/ u8 field_0x14; + /*0x15*/ u8 field_0x15; + /*0x16*/ u16 startPosX; + /*0x18*/ u16 startPosY; /*0x1a*/ u8 field_0x1a[2]; /*0x1c*/ u8 field_0x1c; - /*0x1d*/ u8 field_0x1d[5]; + /*0x1d*/ u8 field_0x1d; + /*0x1e*/ u8 dash_state; + /*0x1f*/ u8 field_0x1f[3]; /*0x22*/ u16 field_0x22[2]; /*0x26*/ u8 swimState; /*0x27*/ u8 field_0x27[5]; - /*0x2c*/ u8* field_0x2c; + /*0x2c*/ Entity* item; /*0x30*/ u32 flags; - /* unk1 : 1; */ - /* unk2 : 1; */ - /* unk4 : 1; */ - /* noMinishCap : 1; */ - /* pullingState : 1; */ - /* windyState : 1; */ - /* filler6 : 1; */ - /* unk7 : 1; */ - /* unk8 : 1; */ - /* unk9 : 1; */ - /* slipperyState : 1; */ - /* filler11 : 5; */ - /* filler11b : 16; */ /*0x34*/ u8 field_0x34[2]; /*0x36*/ s16 field_0x36; /*0x38*/ u8 field_0x38; @@ -162,7 +202,8 @@ typedef struct { /*0x80*/ u16 field_0x80; /*0x82*/ u8 field_0x82[9]; /*0x8b*/ u8 controlMode; - /*0x8c*/ u32 field_0x8c; + /*0x8c*/ u16 vel_x; + /*0x8e*/ u16 vel_y; /*0x90*/ union SplitWord field_0x90; /*0x94*/ u32 field_0x94; /*0x98*/ u16 field_0x98; diff --git a/src/code_08077B98.c b/src/code_08077B98.c index eb3dcd88..ca1863f7 100644 --- a/src/code_08077B98.c +++ b/src/code_08077B98.c @@ -18,18 +18,18 @@ extern Entity* sub_0805E744(); extern struct_0811BE48 gUnk_0811BE48[]; void sub_08077B98(UnkItemStruct* unk) { - if ((gPlayerState.field_0x2c == NULL) || (gPlayerState.field_0x2c[9] != 1)) { - gPlayerState.field_0x2c = sub_08077C54(unk); + if ((gPlayerState.item == NULL) || (gPlayerState.item->id != 1)) { + gPlayerState.item = sub_08077C54(unk); } } void sub_08077BB8(ItemBehavior* beh) { UnkItemStruct* unk = (UnkItemStruct*)beh; // @nocheckin - u8* temp = sub_08077C54(unk); + Entity* temp = sub_08077C54(unk); if (temp != NULL) { - temp[0x10] = 0x20; + temp->flags = 0x20; } - gPlayerState.field_0x2c = temp; + gPlayerState.item = temp; } Entity* sub_08077BD4(ItemBehavior* beh) { @@ -164,11 +164,11 @@ void sub_08077E78(ItemBehavior* arg0, u32 bits) { u32 not ; if (bits == 0) { - if (gPlayerState.field_0x2c != NULL) { - ((Unk_bitfield*)gPlayerState.field_0x2c)[0x11].b0 = 6; - gPlayerState.field_0x2c = (u8*)bits; + if (gPlayerState.item != NULL) { + ((Unk_bitfield*)gPlayerState.item)[0x11].b0 = 6; + gPlayerState.item = NULL; } else { - gPlayerState.field_0x2c = (u8*)bits; + gPlayerState.item = NULL; } } diff --git a/src/collision.c b/src/collision.c index cadaf421..3dac2783 100644 --- a/src/collision.c +++ b/src/collision.c @@ -359,7 +359,7 @@ s32 CollisionGroundItem(Entity* org, Entity* tgt, u32 direction, ColSettings* se } s32 sub_08017B1C(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { - if ((gPlayerState.field_0x1d[1] & 0x60) != 0) { + if ((gPlayerState.dash_state & 0x60) != 0) { COLLISION_OFF(tgt); } else { org->knockbackDuration = 0x10; @@ -372,7 +372,7 @@ s32 sub_08017B1C(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) s32 sub_08017B58(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { if ((tgt->field_0x3a & 4) != 0) { if (tgt->field_0x1d) { - s32 x = tgt->field_0x1d = tgt->field_0x1d - gPlayerState.field_0x1d[0]; + s32 x = tgt->field_0x1d = tgt->field_0x1d - gPlayerState.field_0x1d; if (x << 24 <= 0) { tgt->field_0x1d = 0; tgt->subAction = 2; diff --git a/src/coord.c b/src/coord.c index 7bad978a..e982aa9d 100644 --- a/src/coord.c +++ b/src/coord.c @@ -62,7 +62,7 @@ u32 sub_0806F3E4(Entity* ent) { if ((gPlayerState.field_0x1c & 0x7F) != 1) return 0; - switch (gPlayerState.field_0x1d[0]) { + switch (gPlayerState.field_0x1d) { case 1: ent->field_0x46 += 64; break; @@ -93,7 +93,7 @@ u32 sub_0806F3E4(Entity* ent) { } SoundReq(SFX_ED); } else if (state == 1) { - gPlayerState.field_0x2c[10] = 1; + gPlayerState.item->type = 1; SoundReq(SFX_EF); } return 1; diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index 1b2f96e2..25fb3dba 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -1001,7 +1001,7 @@ void VaatiWrathType0PreAction(Entity* this) { temp = gPlayerState.framestate_last; if (temp < 2) { if (temp >= 0) { - if (gPlayerState.field_0x2c == NULL) { + if (gPlayerState.item == NULL) { if (gPlayerEntity.field_0x7a.HWORD == 0) { if ((gPlayerEntity.z.HALF.HI & 0x8000U) == 0 || (gPlayerState.field_0xa != 0)) { CreateEzloHint(0xb70, 0); diff --git a/src/item/itemBow.c b/src/item/itemBow.c index 9a4e5e89..c4c29947 100644 --- a/src/item/itemBow.c +++ b/src/item/itemBow.c @@ -16,7 +16,7 @@ void sub_08075DF4(ItemBehavior* this, u32 arg1) { sub_0806F948(&gPlayerEntity); sub_08077BB8(this); sub_08077D38(this, arg1); - gPlayerState.field_0x1d[4] = 1; + gPlayerState.field_0x1f[2] = 1; } else { sub_08077E78(this, arg1); } @@ -25,7 +25,7 @@ void sub_08075DF4(ItemBehavior* this, u32 arg1) { void sub_08075E40(ItemBehavior* this, u32 arg1) { u8 bVar1; - if (gPlayerState.field_0x1d[4] != 0) { + if (gPlayerState.field_0x1f[2] != 0) { bVar1 = gPlayerState.field_0x3[1] & 0x80; if (bVar1 == 0) { UpdateItemAnim(this); @@ -40,7 +40,7 @@ void sub_08075E40(ItemBehavior* this, u32 arg1) { return; } } - gPlayerState.field_0x1d[4] = 0; + gPlayerState.field_0x1f[2] = 0; sub_08077E78(this, arg1); } @@ -51,8 +51,8 @@ void sub_08075EC0(ItemBehavior* this, u32 arg1) { arrowCount = gSave.stats.arrowCount; iVar2 = sub_08077EFC(this); if (iVar2 != 0 && arrowCount != 0) { - if (((gPlayerState.field_0x3[1] & 0x80) != 0) || (gPlayerState.field_0x1d[4] == 0)) { - gPlayerState.field_0x1d[4] = 0; + if (((gPlayerState.field_0x3[1] & 0x80) != 0) || (gPlayerState.field_0x1f[2] == 0)) { + gPlayerState.field_0x1f[2] = 0; sub_08077E78(this, arg1); } } else { @@ -65,19 +65,19 @@ void sub_08075EC0(ItemBehavior* this, u32 arg1) { } void sub_08075F38(ItemBehavior* this, u32 arg1) { - if (((gPlayerState.field_0x3[1] & 0x80) == 0) && (gPlayerState.field_0x1d[4] != 0)) { + if (((gPlayerState.field_0x3[1] & 0x80) == 0) && (gPlayerState.field_0x1f[2] != 0)) { UpdateItemAnim(this); if ((this->field_0x5[9] & 1) != 0) { this->stateID = 4; } } else { - gPlayerState.field_0x1d[4] = 0; + gPlayerState.field_0x1f[2] = 0; sub_08077E78(this, arg1); } } void sub_08075F84(ItemBehavior* this, u32 arg1) { - if (((gPlayerState.field_0x3[1] & 0x80) == 0) && (gPlayerState.field_0x1d[4] != 0)) { + if (((gPlayerState.field_0x3[1] & 0x80) == 0) && (gPlayerState.field_0x1f[2] != 0)) { if (GetInventoryValue(0x70) == 1) { sub_08077E3C(this, 5); } else { @@ -87,6 +87,6 @@ void sub_08075F84(ItemBehavior* this, u32 arg1) { return; } } - gPlayerState.field_0x1d[4] = 0; + gPlayerState.field_0x1f[2] = 0; sub_08077E78(this, arg1); } diff --git a/src/item/itemLantern.c b/src/item/itemLantern.c index acb3a728..2903b2de 100644 --- a/src/item/itemLantern.c +++ b/src/item/itemLantern.c @@ -21,7 +21,7 @@ void sub_08075A0C(ItemBehavior* this, u32 arg1) { s8* tmp; itemSlot = IsItemEquipped(this->behaviorID); if (gPlayerState.heldObject != 0 || gPlayerState.playerAction == 0x18 || gPlayerState.jumpStatus != 0 || - gPlayerState.field_0x2c != NULL || (gPlayerState.flags & PL_MINISH) != 0) { + gPlayerState.item != NULL || (gPlayerState.flags & PL_MINISH) != 0) { ForceEquipItem(0xf, itemSlot); gPlayerState.flags &= 0xff7fffff; ForceEquipItem(0xf, itemSlot); @@ -50,7 +50,7 @@ ASM_FUNC("asm/non_matching/eu/sub_08075ADC.inc", void sub_08075ADC(ItemBehavior* void sub_08075ADC(ItemBehavior* this, u32 arg1) { u32 bVar1; - if (gPlayerState.field_0x2c != NULL || (this->field_0x5[9] & 1) == 0 || (gPlayerState.flags & 0x110) != 0 || + if (gPlayerState.item != NULL || (this->field_0x5[9] & 1) == 0 || (gPlayerState.flags & 0x110) != 0 || sub_08079D48() == 0) { this->field_0xf = 0; this->stateID += 1; diff --git a/src/item/itemPegasusBoots.c b/src/item/itemPegasusBoots.c index e2d9a268..a12e31f3 100644 --- a/src/item/itemPegasusBoots.c +++ b/src/item/itemPegasusBoots.c @@ -14,7 +14,7 @@ void ItemPegasusBoots(ItemBehavior* this, u32 arg1) { u32 uVar4; if (gPlayerEntity.field_0x7a.HWORD != 0) { - gPlayerState.field_0x1d[1] = 0; + gPlayerState.dash_state = 0; gPlayerState.field_0xe = 0; sub_08077E78(this, arg1); } else { @@ -24,7 +24,7 @@ void ItemPegasusBoots(ItemBehavior* this, u32 arg1) { SoundReq(SFX_PLY_LAND); } if (((gPlayerState.flags & PL_MINISH) == 0) && ((this->field_0x5[2] & 7) == 0)) { - if (gPlayerState.field_0x10[2] == 0x11) { + if (gPlayerState.floor_type == SURFACE_11) { if (gPlayerEntity.spriteOffsetY == 0) { CreateFx(&gPlayerEntity, FX_GREEN_SPLASH, 0); } @@ -56,8 +56,8 @@ void sub_080768F8(ItemBehavior* this, u32 arg1) { bVar2 = (gPlayerState.flags & 0x1000); bVar1 |= bVar2; if (bVar1 == 0) { - gPlayerState.field_0x1d[1] = 1; - gPlayerState.field_0x1d[4] = bVar1; + gPlayerState.dash_state = 1; + gPlayerState.field_0x1f[2] = bVar1; if ((gPlayerState.flags & PL_MINISH) == 0) { this->field_0x5[2] = 0x10; } else { @@ -66,7 +66,7 @@ void sub_080768F8(ItemBehavior* this, u32 arg1) { sub_08077D38(this, arg1); sub_08076964(this, arg1); } else { - gPlayerState.field_0x1d[1] = 0; + gPlayerState.dash_state = 0; gPlayerState.field_0xe = 0; sub_08077E78(this, arg1); } diff --git a/src/item/itemRocsCape.c b/src/item/itemRocsCape.c index dd4c69bd..a24967e9 100644 --- a/src/item/itemRocsCape.c +++ b/src/item/itemRocsCape.c @@ -12,7 +12,7 @@ extern bool32 sub_08077EFC(ItemBehavior*); sub_08076758(this, arg1); return; } - if (gPlayerState.field_0x2c == NULL) { + if (gPlayerState.item == NULL) { if (gPlayerState.field_0x0[1] == 0) { if (((u8)(gPlayerState.field_0x1a[1] | gPlayerState.field_0xa | gPlayerState.field_0x3[1] | gPlayerState.heldObject | gPlayerState.field_0x1c | gPlayerState.field_0x3c[1]) == 0) && @@ -24,7 +24,7 @@ extern bool32 sub_08077EFC(ItemBehavior*); if (-1 < gPlayerEntity.z.WORD) { gPlayerEntity.zVelocity = 0x20000; gPlayerState.jumpStatus = 1; - gPlayerState.field_0x2c = NULL; + gPlayerState.item = NULL; this->stateID += 1; goto _0807673C; } @@ -44,7 +44,7 @@ extern bool32 sub_08077EFC(ItemBehavior*); gPlayerState.keepFacing = 0; gPlayerState.jumpStatus = 1; gPlayerState.field_0xe = -1; - gPlayerState.field_0x2c = NULL; + gPlayerState.item = NULL; gPlayerEntity.zVelocity = 0x20000; _0807673C: sub_08077F84(); diff --git a/src/item/itemSword.c b/src/item/itemSword.c index 47dc95ba..45441f72 100644 --- a/src/item/itemSword.c +++ b/src/item/itemSword.c @@ -27,7 +27,7 @@ void sub_08075580(ItemBehavior* this, u32 arg1) { if ((sub_08077EFC(this) != 0) && (gPlayerState.jumpStatus == 0)) { gPlayerState.field_0xa = gPlayerState.field_0xa & ~(8 >> arg1); gPlayerState.field_0x1a[1] = 1; - gPlayerState.field_0x2c[0x40] = 0xd; + gPlayerState.item->hurtType = 0xd; this->field_0xf = 0; this->stateID = 2; if ((gPlayerState.field_0xac & 0x200) != 0) { @@ -126,6 +126,6 @@ void sub_080759B8(ItemBehavior* this, u32 arg1) { } gPlayerState.flags &= 0xf7ffffff; gPlayerState.field_0x1a[1] = 0; - gPlayerState.field_0x2c = NULL; + gPlayerState.item = NULL; sub_08077E78(this, arg1); } diff --git a/src/manager/manager15.c b/src/manager/manager15.c index 5289a511..b73beba0 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -296,7 +296,7 @@ void sub_0805A758(Manager15* this) { } void sub_0805A76C(Manager15* this) { - if ((gPlayerEntity.health != 0) && (gPlayerEntity.z.HALF.HI == 0) && (!gPlayerState.field_0x2c)) { + if ((gPlayerEntity.health != 0) && (gPlayerEntity.z.HALF.HI == 0) && (!gPlayerState.item)) { switch (gPlayerState.framestate_last) { case PL_STATE_IDLE: case PL_STATE_WALK: diff --git a/src/manager/manager6.c b/src/manager/manager6.c index dfacaf3a..f412a208 100644 --- a/src/manager/manager6.c +++ b/src/manager/manager6.c @@ -14,7 +14,7 @@ void Manager6_Main(Manager6* this) { return; } } - if (this->manager.unk_0e == 0 || gPlayerState.field_0x10[2] == 0x1e) { + if (this->manager.unk_0e == 0 || gPlayerState.floor_type == SURFACE_LADDER) { for (i = this->warpList; i->posX != 0xFFFF; i++) { tmp = (i->unk_07.all & 0x3); if (((tmp & (gPlayerEntity.collisionLayer)) != 0) && diff --git a/src/npcUtils.c b/src/npcUtils.c index f1c8f1b8..a1dca14f 100644 --- a/src/npcUtils.c +++ b/src/npcUtils.c @@ -103,7 +103,7 @@ Entity* CreateNPC(u32 subtype, u32 form, u32 parameter) { u32 sub_0806ED78(Entity* ent) { u32 result = sub_0800445C(ent); if (result) { - if (gPlayerState.field_0x1d[1] & 0x40) { + if (gPlayerState.dash_state & 0x40) { sub_08077B20(); } } diff --git a/src/object/furniture.c b/src/object/furniture.c index a4d003bd..6429e776 100644 --- a/src/object/furniture.c +++ b/src/object/furniture.c @@ -282,7 +282,7 @@ static void FurnitureUpdate(FurnitureEntity* this) { break; case 0x80: if (gPlayerEntity.y.HALF.HI < super->y.HALF.HI + 8) { - if (gPlayerState.field_0x10[2] != 30 && GetTileTypeByEntity(super) == 0x4017) { + if (gPlayerState.floor_type != SURFACE_LADDER && GetTileTypeByEntity(super) == 0x4017) { SetTile(0x4026, this->tile, super->collisionLayer); SetTile(0x403D, this->tile - 64, super->collisionLayer); SetTile(0x403D, this->tile - 128, super->collisionLayer); diff --git a/src/overworld.c b/src/overworld.c index c087776c..997ce29d 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -666,7 +666,7 @@ u32 sub_08052B24(void) { gUnk_0200AF00.filler0[1]) return 0; - if ((gPlayerState.flags & 0x118) || (gPlayerState.framestate_last > tmp) || gPlayerState.field_0x2c || + if ((gPlayerState.flags & 0x118) || (gPlayerState.framestate_last > tmp) || gPlayerState.item || gPlayerEntity.field_0x7a.HWORD) return 0; diff --git a/src/player.c b/src/player.c index 2b3f8371..455f018c 100644 --- a/src/player.c +++ b/src/player.c @@ -54,12 +54,12 @@ static EntityAction PlayerUseEntrance; EntityAction PlayerParachute; // PLAYER_FALL -static EntityAction sub_08070C3C; -static EntityAction sub_08070CB4; +static EntityAction PlayerFallInit; +static EntityAction PlayerFallUpdate; // PLAYER_BOUNCE -static EntityAction sub_08070D38; -static EntityAction sub_08070DC4; +static EntityAction PlayerBounceInit; +static EntityAction PlayerBounceUpdate; static EntityAction sub_08070E7C; // PLAYER_08070E9C @@ -67,17 +67,17 @@ static EntityAction sub_08070EDC; static EntityAction sub_08070f24; // PLAYER_ITEMGET -static EntityAction sub_08070FA4; -static EntityAction sub_08071020; +static EntityAction PlayerItemGetInit; +static EntityAction PlayerItemGetUpdate; static EntityAction sub_08071038; // PLAYER_JUMP -static EntityAction sub_080710A8; +static EntityAction PlayerJumpInit; static EntityAction sub_08071130; static EntityAction sub_08071208; // PLAYER_DROWN -static EntityAction sub_0807127C; +static EntityAction PlayerDrownInit; static EntityAction sub_080712F0; // PLAYER_USEPORTAL @@ -91,18 +91,18 @@ static EntityAction PortalEnterUpdate; static EntityAction PortalUnknownUpdate; // PLAYER_TALKEZLO -static EntityAction sub_080718A0; +static EntityAction PlayerTalkEzloInit; static EntityAction sub_0807193C; static EntityAction sub_08071990; static EntityAction sub_08071A4C; // PLAYER_PUSH -static EntityAction sub_08071AB0; -static EntityAction sub_08071AF0; +static EntityAction PlayerPushInit; +static EntityAction PlayerPushUpdate; static EntityAction sub_08071B60; // PLAYER_MINISHDIE -static EntityAction sub_08071BDC; +static EntityAction PlayerMinishDieInit; static EntityAction sub_08071CAC; static EntityAction sub_08071D04; static EntityAction sub_08071D80; @@ -113,12 +113,12 @@ static EntityAction sub_08071E04; static EntityAction sub_08071E74; // PLAYER_EMPTYBOTTLE -static EntityAction sub_08071EB0; -static EntityAction sub_08071F14; +static EntityAction PlayerEmptyBottleInit; +static EntityAction PlayerEmptyBottleUpdate; // PLAYER_FROZEN -static EntityAction sub_08071F50; -static EntityAction sub_08071F80; +static EntityAction PlayerFrozenInit; +static EntityAction PlayerFrozenUpdate; // PLAYER_0807204C static EntityAction sub_08072064; @@ -133,7 +133,7 @@ static EntityAction sub_08072214; static EntityAction sub_08072260; // PLAYER_LAVA -static EntityAction sub_080722DC; +static EntityAction PlayerLavaInit; static EntityAction sub_08072354; static EntityAction sub_080723D0; static EntityAction sub_0807240C; @@ -147,12 +147,12 @@ static EntityAction sub_080724DC; static EntityAction sub_0807258C; // PLAYER_ROLL -static EntityAction sub_08072650; -static EntityAction sub_080726F4; +static EntityAction PlayerRollInit; +static EntityAction PlayerRollUpdate; // PLAYER_INHOLE -static EntityAction sub_08072970; -static EntityAction sub_08072A60; +static EntityAction PlayerInHoleInit; +static EntityAction PlayerInHoleUpdate; static EntityAction sub_08072ACC; static EntityAction sub_08072B5C; static EntityAction sub_08072C48; @@ -280,7 +280,7 @@ static void PlayerInit(Entity* this) { if (sub_08078EFC() == 0) { sub_0807921C(); - sub_0807A1B8(); + UpdateFloorType(); if (gPlayerState.swimState != 0) { Entity* ent; gPlayerState.swimState = 1; @@ -310,8 +310,8 @@ static void sub_08070BEC(Entity* this, u32 r0) { static void PlayerFall(Entity* this) { static EntityAction* const sPlayerFallStates[] = { - sub_08070C3C, - sub_08070CB4, + PlayerFallInit, + PlayerFallUpdate, }; gPlayerState.field_0xd = 0xFF; @@ -321,7 +321,7 @@ static void PlayerFall(Entity* this) { sPlayerFallStates[this->subAction](this); } -static void sub_08070C3C(Entity* this) { +static void PlayerFallInit(Entity* this) { sub_08004168(this); gPlayerState.flags |= PL_BUSY | PL_DROWNING; @@ -345,7 +345,7 @@ static void sub_08070C3C(Entity* this) { SoundReq(SFX_FALL_HOLE); } -static void sub_08070CB4(Entity* this) { +static void PlayerFallUpdate(Entity* this) { UpdateAnimationSingleFrame(this); if ((this->frame & 0x80) != 0) { if ((gSave.stats.health != 0) && ((gPlayerState.flags & 0x8000) != 0)) { @@ -363,14 +363,14 @@ static void sub_08070CB4(Entity* this) { static void PlayerBounce(Entity* this) { static EntityAction* const sPlayerBounceStates[] = { - sub_08070D38, - sub_08070DC4, + PlayerBounceInit, + PlayerBounceUpdate, sub_08070E7C, }; sPlayerBounceStates[this->subAction](this); } -static void sub_08070D38(Entity* this) { +static void PlayerBounceInit(Entity* this) { COLLISION_OFF(this); this->direction = DirectionTurnAround(Direction8FromAnimationState(AnimationStateWalk(this->animationState))); this->speed = 0x100; @@ -395,11 +395,11 @@ static void sub_08070D38(Entity* this) { } // minor regalloc -static NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void sub_08070DC4(Entity* this)) { +static NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void PlayerBounceUpdate(Entity* this)) { UpdateAnimationSingleFrame(this); sub_080085B0(this); sub_08079E08(); - sub_0807A1B8(); + UpdateFloorType(); if (sub_08078EFC() || sub_08003FC4(this, 0x2000)) return; @@ -423,7 +423,7 @@ static NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void sub_08070DC4(En COLLISION_ON(this); if ((gPlayerState.field_0x14 == 0) && sub_08008B22()) { - gPlayerState.field_0x10[1] = 7; + gPlayerState.field_0x11 = 7; sub_08079938(); sub_080791BC(); return; @@ -456,7 +456,7 @@ static void sub_08070E9C(Entity* this) { } else { gPlayerState.field_0x27[0] = 4; gPlayerState.framestate = PL_STATE_TALKEZLO; - sub_0807A1B8(); + UpdateFloorType(); gUnk_0811BA74[this->subAction](this); } } @@ -483,8 +483,8 @@ static void sub_08070f24(Entity* this) { static void PlayerItemGet(Entity* this) { static EntityAction* const sPlayerItemGetStates[] = { - sub_08070FA4, - sub_08071020, + PlayerItemGetInit, + PlayerItemGetUpdate, sub_08071038, }; @@ -504,7 +504,7 @@ static void PlayerItemGet(Entity* this) { } } -static void sub_08070FA4(Entity* this) { +static void PlayerItemGetInit(Entity* this) { this->spriteSettings.flipX = FALSE; this->animationState = IdleSouth; @@ -534,9 +534,9 @@ static void sub_08070FA4(Entity* this) { sub_08078F60(); } -static void sub_08071020(Entity* this) { +static void PlayerItemGetUpdate(Entity* this) { UpdateAnimationSingleFrame(this); - if (this->frame != 0) + if (this->frame != /* entire animation is a static frame */ 0) this->subAction = 2; } @@ -557,7 +557,7 @@ static void sub_08071038(Entity* this) { static void PlayerJump(Entity* this) { static EntityAction* const sPlayerJumpStates[] = { - sub_080710A8, + PlayerJumpInit, sub_08071130, sub_08071208, }; @@ -566,7 +566,7 @@ static void PlayerJump(Entity* this) { sPlayerJumpStates[this->subAction](this); } -static void sub_080710A8(Entity* this) { +static void PlayerJumpInit(Entity* this) { u32 temp; this->subAction++; @@ -588,7 +588,7 @@ static void sub_080710A8(Entity* this) { } } - gPlayerState.field_0x1d[1] = 0; + gPlayerState.dash_state = 0; this->direction = Direction8FromAnimationState(AnimationStateWalk(this->animationState)); temp = sub_08079FC4(1); @@ -629,7 +629,7 @@ static void sub_08071130(Entity* this) { if (gPlayerState.field_0x14) return; - sub_0807A1B8(); + UpdateFloorType(); if (sub_08078EFC()) return; @@ -672,7 +672,7 @@ static void sub_08071208(Entity* this) { static void PlayerDrown(Entity* this) { static EntityAction* const sPlayerDrownStates[] = { - sub_0807127C, + PlayerDrownInit, sub_080712F0, }; @@ -682,7 +682,7 @@ static void PlayerDrown(Entity* this) { sPlayerDrownStates[this->subAction](this); } -static void sub_0807127C(Entity* this) { +static void PlayerDrownInit(Entity* this) { this->subAction = 1; this->spritePriority.b1 = 0; @@ -934,7 +934,7 @@ static void sub_080717F8(Entity* this) { static void PlayerTalkEzlo(Entity* this) { static EntityAction* const sPlayerTalkEzloStates[] = { - sub_080718A0, + PlayerTalkEzloInit, sub_0807193C, sub_08071990, sub_08071A4C, @@ -950,7 +950,7 @@ static void PlayerTalkEzlo(Entity* this) { } } -static void sub_080718A0(Entity* this) { +static void PlayerTalkEzloInit(Entity* this) { ResetPlayer(); gUnk_03000B80.filler[0x63] = 0; this->iframes = 0; @@ -1053,8 +1053,8 @@ static void ResetPlayerPriority(void) { static void PlayerPush(Entity* this) { static EntityAction* const sPlayerPushStates[] = { - sub_08071AB0, - sub_08071AF0, + PlayerPushInit, + PlayerPushUpdate, sub_08071B60, }; @@ -1062,7 +1062,7 @@ static void PlayerPush(Entity* this) { sPlayerPushStates[this->subAction](this); } -static void sub_08071AB0(Entity* this) { +static void PlayerPushInit(Entity* this) { u32 speed; this->subAction++; @@ -1074,10 +1074,10 @@ static void sub_08071AB0(Entity* this) { } else { this->speed = (gPlayerState.flags & PL_MINISH) ? 64 : 128; } - sub_08071AF0(this); + PlayerPushUpdate(this); } -static void sub_08071AF0(Entity* this) { +static void PlayerPushUpdate(Entity* this) { typedef struct { u8 frame; u16 speed; @@ -1125,7 +1125,7 @@ static void sub_08071B60(Entity* this) { static void PlayerMinishDie(Entity* this) { static EntityAction* const sPlayerMinishDieStates[] = { - sub_08071BDC, + PlayerMinishDieInit, sub_08071CAC, sub_08071D04, sub_08071D80, @@ -1136,7 +1136,7 @@ static void PlayerMinishDie(Entity* this) { gPlayerState.framestate = PL_STATE_DIE; } -static void sub_08071BDC(Entity* this) { +static void PlayerMinishDieInit(Entity* this) { u32 temp; if (gPlayerState.flags & (0x10 | 0x100)) @@ -1152,7 +1152,8 @@ static void sub_08071BDC(Entity* this) { gPlayerState.playerAction = 0; if (gPlayerState.flags & PL_MINISH) { - if ((u8)(gPlayerState.field_0x10[2] - 8) < 3) { + if (gPlayerState.floor_type == SURFACE_MINISH_DOOR_FRONT || + gPlayerState.floor_type == SURFACE_MINISH_DOOR_BACK || gPlayerState.floor_type == SURFACE_A) { sub_0807A298(this); RespawnPlayer(); this->action = 10; @@ -1258,9 +1259,9 @@ static void sub_08071DD0(Entity* this) { static void sub_08071E04(Entity* this) { if ((this->z.WORD != 0) && (gPlayerState.field_0x14 == '\0')) { - sub_0807A1B8(); - if (gPlayerState.field_0x10[2] == 1) { - gPlayerState.field_0x10[1] = 7; + UpdateFloorType(); + if (gPlayerState.floor_type == SURFACE_PIT) { + gPlayerState.field_0x11 = 7; gPlayerState.flags |= 0x200; sub_080791BC(); return; @@ -1295,14 +1296,14 @@ static void sub_08071E74(Entity* this) { static void PlayerEmptyBottle(Entity* this) { static EntityAction* const sPlayerEmptyBottleStates[] = { - sub_08071EB0, - sub_08071F14, + PlayerEmptyBottleInit, + PlayerEmptyBottleUpdate, }; sPlayerEmptyBottleStates[this->subAction](this); } -static void sub_08071EB0(Entity* this) { +static void PlayerEmptyBottleInit(Entity* this) { Entity* ent; ResetPlayer(); @@ -1325,24 +1326,24 @@ static void sub_08071EB0(Entity* this) { } } -static void sub_08071F14(Entity* this) { +static void PlayerEmptyBottleUpdate(Entity* this) { UpdateAnimationSingleFrame(this); if (this->frame & 0x80) { - gPlayerState.field_0x2c = NULL; + gPlayerState.item = NULL; sub_0807921C(); } } static void PlayerFrozen(Entity* this) { static EntityAction* const sPlayerFrozenStates[] = { - sub_08071F50, - sub_08071F80, + PlayerFrozenInit, + PlayerFrozenUpdate, }; sPlayerFrozenStates[this->subAction](this); } -static void sub_08071F50(Entity* this) { +static void PlayerFrozenInit(Entity* this) { COLLISION_OFF(this); this->actionDelay = 120; this->subAction++; @@ -1351,7 +1352,7 @@ static void sub_08071F50(Entity* this) { SoundReq(SFX_195); } -static void sub_08071F80(Entity* this) { +static void PlayerFrozenUpdate(Entity* this) { if (sub_08003FC4(this, 0x2000) == 0) { UpdateSpriteForCollisionLayer(this); gPlayerState.jumpStatus = 0; @@ -1515,7 +1516,7 @@ static void sub_08072260(Entity* this) { static void PlayerLava(Entity* this) { static EntityAction* const sPlayerLavaStates[] = { - sub_080722DC, + PlayerLavaInit, sub_08072354, sub_080723D0, sub_0807240C, @@ -1525,7 +1526,7 @@ static void PlayerLava(Entity* this) { sPlayerLavaStates[this->subAction](this); } -static void sub_080722DC(Entity* this) { +static void PlayerLavaInit(Entity* this) { Entity* ent; COLLISION_OFF(this); @@ -1674,15 +1675,15 @@ static void sub_0807258C(Entity* this) { static void PlayerRoll(Entity* this) { static EntityAction* const sPlayerRollStates[] = { - sub_08072650, - sub_080726F4, + PlayerRollInit, + PlayerRollUpdate, }; gPlayerState.framestate = PL_STATE_ROLL; sPlayerRollStates[this->subAction](this); } -static void sub_08072650(Entity* this) { +static void PlayerRollInit(Entity* this) { u32 temp; if ((gPlayerState.flags & 0x200000) == 0) { @@ -1713,7 +1714,7 @@ static void sub_08072650(Entity* this) { SoundReq(SFX_7E); } -static void sub_080726F4(Entity* this) { +static void PlayerRollUpdate(Entity* this) { if (((gPlayerState.flags & (PL_ROLLING | 0x80000)) != PL_ROLLING) || (!(gPlayerState.flags & 0x200000) && (this->iframes != 0) && (this->bitfield & 0x80))) { gPlayerState.flags &= ~PL_ROLLING; @@ -1728,7 +1729,7 @@ static void sub_080726F4(Entity* this) { this->actionDelay = 4; } if ((gPlayerState.flags & 2) == 0) { - sub_0807A1B8(); + UpdateFloorType(); } if (sub_08078EFC()) { gPlayerState.flags &= ~PL_ROLLING; @@ -1750,7 +1751,8 @@ static void sub_080726F4(Entity* this) { return; } - if (gPlayerState.field_0x10[2] == 0x17) { + if (gPlayerState.floor_type == SURFACE_ICE) { + // roll in place when on ice sub_0800892E(this); } else { switch (this->frame & 0xf) { @@ -1773,7 +1775,8 @@ static void sub_080726F4(Entity* this) { sub_08079E08(); } if (((this->frame & 0x10) == 0) && ((gPlayerState.flags & PL_MINISH) == 0)) { - *(u8*)&this->hurtType = 0; + // dont take damage + this->hurtType = 0; } if ((this->frame & 0x40) != 0) { sub_08077698(this); @@ -1796,31 +1799,31 @@ static void sub_080728AC(Entity* this) { if (gPlayerState.swimState != 0) this->speed = 0; - if (!(gPlayerState.flags & 0x40)) + if ((gPlayerState.flags & 0x40) == 0) gPlayerEntity.spriteSettings.draw = 3; - if (!(gPlayerState.flags & PL_MINISH)) + if ((gPlayerState.flags & PL_MINISH) == 0) gPlayerEntity.spritePriority.b1 = 1; - if (!(gRoomControls.unk6 & 4)) { - if ((gPlayerState.flags & 0x40)) + if ((gRoomControls.unk6 & 4) == 0) { + if (gPlayerState.flags & 0x40) COLLISION_ON(this); sub_080791D0(); } - if (!(gPlayerState.flags & 2)) { - sub_0807A1B8(); + if ((gPlayerState.flags & 2) == 0) { + UpdateFloorType(); } } static void PlayerInHole(Entity* this) { static EntityAction* const sPlayerInHoleStates[] = { - sub_08072970, sub_08072A60, sub_08072ACC, sub_08072B5C, sub_08072C48, + PlayerInHoleInit, PlayerInHoleUpdate, sub_08072ACC, sub_08072B5C, sub_08072C48, }; gPlayerState.framestate = PL_STATE_HOLE; sPlayerInHoleStates[this->subAction](this); } -static void sub_08072970(Entity* this) { +static void PlayerInHoleInit(Entity* this) { if (this->health != 0) { this->subAction = 1; this->x.HALF.HI = (this->x.HALF.HI & ~0xF) | 8; @@ -1840,12 +1843,12 @@ static void sub_08072970(Entity* this) { } SetTile(0x4070, COORD_TO_TILE(this), this->collisionLayer); ResetPlayer(); - sub_08072A60(this); + PlayerInHoleUpdate(this); SoundReq(0x81); } } -static void sub_08072A60(Entity* this) { +static void PlayerInHoleUpdate(Entity* this) { if (this->frame & 0x80) { if (this->actionDelay == 1) { this->subAction = 3; @@ -1932,7 +1935,7 @@ static void sub_08072C48(Entity* this) { sub_08008790(this, 7); if (gPlayerState.field_0x14) { if (sub_08008B22()) { - gPlayerState.field_0x10[1] = 7; + gPlayerState.field_0x11 = 7; if (!(gPlayerState.flags & PL_MINISH)) { sub_080791BC(); } @@ -2061,7 +2064,7 @@ static NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(En sub_08008790(this, 7); if (gPlayerState.field_0x14 != 0) { if (sub_08008B22() == 0) { - gPlayerState.field_0x10[1] = 7; + gPlayerState.field_0x11 = 7; if (!(gPlayerState.flags & PL_MINISH)) { sub_080791BC(); } @@ -2097,7 +2100,7 @@ static void sub_08072F34(Entity* this) { if (!sub_08078EFC()) { gPlayerState.framestate = PL_STATE_CLIMB; - gPlayerState.field_0x10[2] = GetSurfaceCalcType(this, 0, 0); + gPlayerState.floor_type = GetSurfaceCalcType(this, 0, 0); gUnk_0811BBE4[this->subAction](this); if (this->knockbackDuration != 0) { sub_080792D8(); @@ -2114,18 +2117,20 @@ static void sub_08072F34(Entity* this) { static void sub_08072F94(Entity* this) { u32 bVar1; - switch (gPlayerState.field_0x10[2]) { + switch (gPlayerState.floor_type) { default: sub_0807921C(); break; - case 0x1E: - case 0x2A ... 0x2C: + case SURFACE_LADDER: + case SURFACE_AUTO_LADDER: + case SURFACE_CLIMB_WALL: + case SURFACE_2C: this->spritePriority.b1 = 0; bVar1 = gPlayerState.field_0xd; if ((gPlayerState.field_0xd & 0x80) == 0) { this->direction = gPlayerState.field_0xd; if ((gPlayerState.field_0xd == 8) || (gPlayerState.field_0xd == 0x18)) { - if (gPlayerState.field_0x10[2] == 0x1e) { + if (gPlayerState.floor_type == SURFACE_LADDER) { return; } if ((this->frame & 0x10)) { @@ -2135,7 +2140,7 @@ static void sub_08072F94(Entity* this) { } sub_08073094(this); } else { - if ((gPlayerState.field_0x10[2] == 0x1e) && ((bVar1 & 7) != 0)) { + if ((gPlayerState.floor_type == SURFACE_LADDER) && ((bVar1 & 7) != 0)) { this->direction = (bVar1 + 8) & 0x10; } if (this->direction & 0x10) { @@ -2174,36 +2179,36 @@ static void sub_08073094(Entity* this) { sub_08079E08(); if (!sub_08019840()) { gPlayerState.pushedObject ^= 0x80; - if ((gPlayerState.field_0x10[2] != 0x2a) && (gPlayerState.field_0x10[2] != 0x2c)) { - sub_0807A1B8(); + if ((gPlayerState.floor_type != SURFACE_AUTO_LADDER) && (gPlayerState.floor_type != SURFACE_2C)) { + UpdateFloorType(); } if (sub_08078EFC() == 0) { - switch (gPlayerState.field_0x10[2]) { - case 0x2a: - case 0x2c: + switch (gPlayerState.floor_type) { + case SURFACE_AUTO_LADDER: + case SURFACE_2C: this->knockbackDuration = 0; gPlayerState.flags |= 0x20000000; UpdateAnimationSingleFrame(this); if ((this->frame & 0x40) != 0) { - sub_0807A1B8(); + UpdateFloorType(); if (!sub_08078EFC()) { this->subAction--; } } break; - case 0x19: + case SURFACE_WATER: sub_08074808(this); sub_080791D0(); break; default: sub_0807921C(); break; - case 0x1e: - case 0x2b: + case SURFACE_LADDER: + case SURFACE_CLIMB_WALL: UpdateAnimationSingleFrame(this); if ((this->frame & 0x40) != 0) { - sub_0807A1B8(); + UpdateFloorType(); if (!sub_08078EFC()) { this->subAction--; } diff --git a/src/playerItem/playerItem11.c b/src/playerItem/playerItem11.c index 7b0aaac2..242dc616 100644 --- a/src/playerItem/playerItem11.c +++ b/src/playerItem/playerItem11.c @@ -55,7 +55,7 @@ void sub_08018CBC(Entity* this) { this->spriteIndex = 0xa6; this->palette.raw = 0x33; this->spriteVramOffset = 0; - this->type = gPlayerState.field_0x1d[0] - 1; + this->type = gPlayerState.field_0x1d - 1; this->actionDelay = gUnk_080B3DE0[this->type * 2]; this->damage = gUnk_080B3DE0[this->type * 2 + 1]; this->hurtType = 0x1b; diff --git a/src/playerItem/playerItemC.c b/src/playerItem/playerItemC.c index d223b637..cc494f79 100644 --- a/src/playerItem/playerItemC.c +++ b/src/playerItem/playerItemC.c @@ -17,8 +17,8 @@ void PlayerItemC(Entity* this) { } void sub_0801B8B0(Entity* this) { - if (gPlayerState.field_0x1d[1] != 0) { - gPlayerState.field_0x2c = (u8*)this; + if (gPlayerState.dash_state != 0) { + gPlayerState.item = this; this->flags |= 0x20; this->action = 0x01; this->flags2 = 8; @@ -33,12 +33,12 @@ void sub_0801B8B0(Entity* this) { void sub_0801B8FC(Entity* this) { Entity* pbVar1; - pbVar1 = (Entity*)gPlayerState.field_0x2c; - if ((Entity*)gPlayerState.field_0x2c != this) { + pbVar1 = (Entity*)gPlayerState.item; + if ((Entity*)gPlayerState.item != this) { DeleteThisEntity(); } else { - if ((u8*)(u32)gPlayerState.field_0x1d[1] == NULL) { - gPlayerState.field_0x2c = (u8*)(u32)gPlayerState.field_0x1d[1]; + if (gPlayerState.dash_state == 0) { + gPlayerState.item = NULL; DeleteThisEntity(); } else { pbVar1->flags |= 0x80; diff --git a/src/playerItem/playerItemGustJar.c b/src/playerItem/playerItemGustJar.c index 119a884a..43e3bd74 100644 --- a/src/playerItem/playerItemGustJar.c +++ b/src/playerItem/playerItemGustJar.c @@ -10,7 +10,7 @@ void sub_080ADC84(Entity*); void sub_080ADCA0(Entity*, u32); void PlayerItemGustJar(Entity* this) { - if (((Entity*)gPlayerState.field_0x2c != this) || (gPlayerState.field_0x1c == 0)) { + if (((Entity*)gPlayerState.item != this) || (gPlayerState.field_0x1c == 0)) { DeleteThisEntity(); } gUnk_08132700[this->action](this); From 079260dbd64b6d090e05b409ded30a95bf33a9e9 Mon Sep 17 00:00:00 2001 From: theo3 Date: Sat, 25 Dec 2021 21:28:44 -0800 Subject: [PATCH 036/168] name asm funcs --- asm/bird.s | 8 +++---- asm/chuchuBoss.s | 4 ++-- asm/code_080011C4.s | 4 +++- asm/code_08003FC4.s | 12 ++++++---- asm/code_080043E8.s | 2 +- asm/code_080732D0.s | 24 +++++++++---------- asm/code_08078778.s | 6 ++--- asm/crenalBeanSprout.s | 2 +- asm/crow.s | 4 ++-- asm/cuccoAggr.s | 2 +- asm/eyegore.s | 6 ++--- asm/ezloCap.s | 4 ++-- asm/flyingPot.s | 2 +- asm/flyingSkull.s | 2 +- asm/gleerok.s | 4 ++-- asm/itemForSale.s | 2 +- asm/ladderUp.s | 4 ++-- asm/lavaPlatform.s | 2 +- asm/lilypadLarge.s | 4 ++-- asm/macroPlayer.s | 8 +++---- asm/minecart.s | 2 +- .../castorWildsStatue/sub_080676E0.inc | 2 +- asm/non_matching/cucco/sub_0806E564.inc | 2 +- asm/non_matching/cuccoChick/sub_0806E7B0.inc | 2 +- .../mountainMinish/sub_08067EF0.inc | 2 +- asm/non_matching/player/sub_08070DC4.inc | 2 +- asm/non_matching/player/sub_08072D54.inc | 2 +- .../playerItem13/sub_080AD040.inc | 2 +- asm/non_matching/postman/sub_0806076C.inc | 2 +- asm/object1F.s | 2 +- asm/object30.s | 2 +- asm/object4B.s | 2 +- asm/object53.s | 2 +- asm/object67.s | 2 +- asm/object97.s | 6 ++--- asm/objectB3.s | 4 ++-- asm/objectOnSpinyBeetle.s | 2 +- asm/stalfos.s | 8 +++---- asm/takkuri.s | 6 ++--- asm/wizzrobeFire.s | 2 +- asm/wizzrobeIce.s | 2 +- asm/wizzrobeWind.s | 2 +- include/asm.h | 2 +- include/entity.h | 2 +- include/functions.h | 2 +- src/enemy/acroBandits.c | 8 +++---- src/enemy/beetle.c | 6 ++--- src/enemy/chuchu.c | 16 ++++++------- src/enemy/cuccoChickAggr.c | 6 ++--- src/enemy/fireballGuy.c | 2 +- src/enemy/helmasaur.c | 2 +- src/enemy/lakitu.c | 2 +- src/enemy/mazaalBracelet.c | 2 +- src/enemy/mazaalHead.c | 2 +- src/enemy/miniFireballGuy.c | 2 +- src/enemy/peahat.c | 4 ++-- src/enemy/puffstool.c | 10 ++++---- src/enemy/rollobite.c | 2 +- src/enemy/rope.c | 2 +- src/enemy/sluggula.c | 2 +- src/enemy/spikedBeetle.c | 2 +- src/enemy/spinyChuchu.c | 8 +++---- src/enemy/tektite.c | 2 +- src/enemy/tektiteGolden.c | 2 +- src/enemy/vaatiArm.c | 2 +- src/enemy/vaatiTransfigured.c | 4 ++-- src/enemy/vaatiWrath.c | 2 +- src/enemy/waterDrop.c | 2 +- src/npc/cuccoChick.c | 2 +- src/npc/melari.c | 2 +- src/npc/npc5.c | 2 +- src/npc/postman.c | 4 ++-- src/npc/townMinish.c | 4 ++-- src/npc/zelda.c | 4 ++-- src/object/bird.c | 4 ++-- src/object/itemOnGround.c | 8 +++---- src/object/jarPortal.c | 4 ++-- src/object/object49.c | 2 +- src/object/object6A.c | 14 +++++------ src/object/pot.c | 2 +- src/player.c | 22 ++++++++--------- src/playerItem/playerItem12.c | 2 +- src/playerItem/playerItemBow.c | 2 +- src/projectile/arrowProjectile.c | 2 +- src/projectile/boneProjectile.c | 4 ++-- src/projectile/gleerokProjectile.c | 4 ++-- src/projectile/mandiblesProjectile.c | 2 +- src/projectile/octorokBossProjectile.c | 4 ++-- src/projectile/rockProjectile.c | 2 +- src/projectile/stalfosProjectile.c | 2 +- src/projectile/v1FireProjectile.c | 2 +- src/projectile/v2Projectile.c | 4 ++-- src/script.c | 12 +++++----- 93 files changed, 193 insertions(+), 187 deletions(-) diff --git a/asm/bird.s b/asm/bird.s index 765e06da..a0db6e49 100644 --- a/asm/bird.s +++ b/asm/bird.s @@ -225,7 +225,7 @@ _0809D3A8: movs r2, #0 ldrsh r1, [r0, r2] adds r0, r5, #0 - bl sub_08003FC4 + bl GravityUpdate adds r0, r5, #0 bl UpdateAnimationSingleFrame ldr r4, [r5, #0x54] @@ -298,7 +298,7 @@ _0809D448: bl CopyPosition _0809D454: adds r0, r5, #0 - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 bne _0809D488 ldrb r0, [r5, #0xc] @@ -528,11 +528,11 @@ _0809D62E: movs r0, #0 ldrsh r1, [r7, r0] adds r0, r5, #0 - bl sub_08003FC4 + bl GravityUpdate adds r0, r5, #0 bl UpdateAnimationSingleFrame adds r0, r5, #0 - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 bne _0809D652 bl DeleteThisEntity diff --git a/asm/chuchuBoss.s b/asm/chuchuBoss.s index 332527a1..d3f20d5a 100644 --- a/asm/chuchuBoss.s +++ b/asm/chuchuBoss.s @@ -1028,7 +1028,7 @@ sub_0802647C: @ 0x0802647C adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #7 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _080264A6 movs r0, #0x10 @@ -1551,7 +1551,7 @@ sub_0802686C: @ 0x0802686C adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #7 - bl sub_08003FC4 + bl GravityUpdate adds r5, r0, #0 cmp r5, #0 beq _08026888 diff --git a/asm/code_080011C4.s b/asm/code_080011C4.s index a08f6287..45532f9d 100644 --- a/asm/code_080011C4.s +++ b/asm/code_080011C4.s @@ -109,7 +109,7 @@ sub_08001242: @ 0x08001242 pop {r0} _08001282: ldr r1, _08001364 @ =0x00001800 - bl sub_08003FC4 + bl GravityUpdate pop {pc} .align 2, 0 _0800128C: @@ -126,6 +126,8 @@ sub_08001290: @ 0x08001290 _0800129C: bx lr + @ r0: Entity* + @ r1: Function* array non_word_aligned_thumb_func_start EnemyFunctionHandler EnemyFunctionHandler: @ 0x0800129E mov r3, lr diff --git a/asm/code_08003FC4.s b/asm/code_08003FC4.s index 4e033a93..9b66ce10 100644 --- a/asm/code_08003FC4.s +++ b/asm/code_08003FC4.s @@ -5,8 +5,12 @@ .text - thumb_func_start sub_08003FC4 -sub_08003FC4: @ 0x08003FC4 + thumb_func_start GravityUpdate +GravityUpdate: @ 0x08003FC4 + @ r0 = Entity* + @ r1 = Gravity strength + @ returns z pos + adds r3, r0, #0 ldr r0, [r3, #0x34] ldr r2, [r3, #0x20] @@ -141,8 +145,8 @@ sub_080040A2: @ 0x080040A2 lsrs r1, r1, #2 bhs _080040D0 - thumb_func_start sub_080040A8 -sub_080040A8: @ 0x080040A8 + thumb_func_start CheckOnScreen +CheckOnScreen: @ 0x080040A8 ldr r1, _08004368 @ =gRoomControls movs r2, #0x2e ldrsh r2, [r0, r2] diff --git a/asm/code_080043E8.s b/asm/code_080043E8.s index 8cbadc90..4a962130 100644 --- a/asm/code_080043E8.s +++ b/asm/code_080043E8.s @@ -102,7 +102,7 @@ _0800449A: thumb_func_start sub_0800449C sub_0800449C: @ 0x0800449C push {r1, lr} - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 pop {r0} beq _080044AC diff --git a/asm/code_080732D0.s b/asm/code_080732D0.s index 36957a76..ad91468f 100644 --- a/asm/code_080732D0.s +++ b/asm/code_080732D0.s @@ -272,7 +272,7 @@ sub_080734D4: @ 0x080734D4 push {r4, lr} adds r4, r0, #0 ldr r1, _080734FC @ =0xFFFFF000 - bl sub_08003FC4 + bl GravityUpdate ldr r0, [r4, #0x20] cmp r0, #0 bgt _080734EE @@ -307,7 +307,7 @@ sub_08073504: @ 0x08073504 lsls r1, r1, #4 _08073516: adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate ldr r0, [r4, #0x20] cmp r0, #0 bge _08073576 @@ -737,7 +737,7 @@ _0807382A: movs r1, #0x80 lsls r1, r1, #2 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate b _0807387A .align 2, 0 _08073854: .4byte gScreenTransition @@ -818,7 +818,7 @@ _080738EC: _080738F0: ldr r1, _08073900 @ =0xFFFFE800 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate adds r0, r4, #0 bl UpdateAnimationSingleFrame pop {r4, pc} @@ -1029,7 +1029,7 @@ _08073A48: _08073A7E: adds r0, r4, #0 adds r1, r2, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08073A90 adds r0, r4, #0 @@ -1206,7 +1206,7 @@ _08073BD0: movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #8 @@ -1500,7 +1500,7 @@ _08073E10: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate adds r1, r0, #0 cmp r1, #0 bne _08073E32 @@ -1737,7 +1737,7 @@ _08073FF8: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate ldr r0, [r4, #0x20] cmp r0, #0 bne _08074016 @@ -1796,7 +1796,7 @@ sub_08074060: @ 0x08074060 adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #6 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _080740D0 ldr r0, _080740C4 @ =gPlayerHitbox @@ -1966,7 +1966,7 @@ _080741B0: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _080741C2 bl sub_0807921C @@ -3517,7 +3517,7 @@ _08074D20: movs r1, #0x80 lsls r1, r1, #6 adds r0, r5, #0 - bl sub_08003FC4 + bl GravityUpdate adds r0, r5, #0 bl UpdateAnimationSingleFrame pop {r4, r5, r6, pc} @@ -4009,7 +4009,7 @@ sub_0807508C: @ 0x0807508C movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 beq _080750AA adds r0, r4, #0 diff --git a/asm/code_08078778.s b/asm/code_08078778.s index 36074a2e..973db1ec 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -5581,13 +5581,13 @@ sub_0807B21C: @ 0x0807B21C movs r1, #0x80 lsls r1, r1, #3 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate b _0807B240 _0807B236: movs r1, #0x80 lsls r1, r1, #4 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate _0807B240: ldr r1, [r4, #0x20] ldr r0, _0807B260 @ =0xFFFF8000 @@ -5659,7 +5659,7 @@ sub_0807B2B8: @ 0x0807B2B8 push {r4, lr} adds r4, r0, #0 ldr r1, _0807B2F0 @ =0xFFFFE000 - bl sub_08003FC4 + bl GravityUpdate adds r0, r4, #0 bl UpdateAnimationSingleFrame ldrb r0, [r4, #0xe] diff --git a/asm/crenalBeanSprout.s b/asm/crenalBeanSprout.s index 10d49ea1..1085ea32 100644 --- a/asm/crenalBeanSprout.s +++ b/asm/crenalBeanSprout.s @@ -648,7 +648,7 @@ _0809681C: movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08096830 adds r0, r4, #0 diff --git a/asm/crow.s b/asm/crow.s index d736150b..58f659f5 100644 --- a/asm/crow.s +++ b/asm/crow.s @@ -280,7 +280,7 @@ sub_080329E8: @ 0x080329E8 sub_080329F0: @ 0x080329F0 push {r4, lr} adds r4, r0, #0 - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 bne _08032A3A movs r0, #4 @@ -326,7 +326,7 @@ _08032A46: sub_08032A48: @ 0x08032A48 push {r4, r5, lr} adds r4, r0, #0 - bl sub_080040A8 + bl CheckOnScreen adds r5, r0, #0 cmp r5, #0 bne _08032AAE diff --git a/asm/cuccoAggr.s b/asm/cuccoAggr.s index c8046759..612b0979 100644 --- a/asm/cuccoAggr.s +++ b/asm/cuccoAggr.s @@ -312,7 +312,7 @@ sub_08038EE0: @ 0x08038EE0 movs r1, #0xe0 lsls r1, r1, #5 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08038F1C ldrb r0, [r4, #0xe] diff --git a/asm/eyegore.s b/asm/eyegore.s index a49491c7..14833af2 100644 --- a/asm/eyegore.s +++ b/asm/eyegore.s @@ -161,7 +161,7 @@ sub_08030B34: @ 0x08030B34 movs r1, #0xe0 lsls r1, r1, #5 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate b _08030B70 _08030B52: adds r0, r4, #0 @@ -425,7 +425,7 @@ _08030D44: movs r1, #0xe0 lsls r1, r1, #5 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08030D66 adds r0, r4, #0 @@ -506,7 +506,7 @@ _08030DDE: movs r1, #0xe0 lsls r1, r1, #5 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08030E1C adds r0, r4, #0 diff --git a/asm/ezloCap.s b/asm/ezloCap.s index cb68080e..99afe54f 100644 --- a/asm/ezloCap.s +++ b/asm/ezloCap.s @@ -551,7 +551,7 @@ _08082D0C: movs r1, #0x80 lsls r1, r1, #6 adds r0, r5, #0 - bl sub_08003FC4 + bl GravityUpdate adds r0, r5, #0 bl UpdateAnimationSingleFrame _08082D1C: @@ -709,7 +709,7 @@ sub_08082E14: @ 0x08082E14 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate ldrb r0, [r4, #0xd] cmp r0, #0 beq _08082E38 diff --git a/asm/flyingPot.s b/asm/flyingPot.s index 75e3a8b5..1dfba1a3 100644 --- a/asm/flyingPot.s +++ b/asm/flyingPot.s @@ -501,7 +501,7 @@ _080373F2: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08037406 adds r0, r4, #0 diff --git a/asm/flyingSkull.s b/asm/flyingSkull.s index d0ae76c4..c3aee745 100644 --- a/asm/flyingSkull.s +++ b/asm/flyingSkull.s @@ -694,7 +694,7 @@ _0803A0CA: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _0803A0DE adds r0, r4, #0 diff --git a/asm/gleerok.s b/asm/gleerok.s index 6cf5f3a5..32779e12 100644 --- a/asm/gleerok.s +++ b/asm/gleerok.s @@ -1294,7 +1294,7 @@ _0802D95E: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate adds r2, r0, #0 cmp r2, #0 beq _0802D970 @@ -1526,7 +1526,7 @@ _0802DB20: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate ldr r0, [r4, #0x20] cmp r0, #0 bgt _0802DB7E diff --git a/asm/itemForSale.s b/asm/itemForSale.s index 8b5a7c02..156e200d 100644 --- a/asm/itemForSale.s +++ b/asm/itemForSale.s @@ -19,7 +19,7 @@ ItemForSale: @ 0x08081814 adds r0, r4, #0 bl _call_via_r1 adds r0, r4, #0 - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 beq _08081838 adds r0, r4, #0 diff --git a/asm/ladderUp.s b/asm/ladderUp.s index 785c3f3b..1eaecf27 100644 --- a/asm/ladderUp.s +++ b/asm/ladderUp.s @@ -83,7 +83,7 @@ _0808D4D8: movs r1, #0x80 lsls r1, r1, #5 adds r0, r7, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 beq _0808D4E8 b _0808D642 @@ -340,7 +340,7 @@ _0808DBE8: movs r1, #0x80 lsls r1, r1, #5 adds r0, r7, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 beq _0808DBF8 b _0808DD72 diff --git a/asm/lavaPlatform.s b/asm/lavaPlatform.s index a973a799..e4199773 100644 --- a/asm/lavaPlatform.s +++ b/asm/lavaPlatform.s @@ -87,7 +87,7 @@ sub_080922E4: @ 0x080922E4 adds r4, r0, #0 movs r1, #0x90 lsls r1, r1, #6 - bl sub_08003FC4 + bl GravityUpdate adds r2, r0, #0 cmp r2, #0 bne _08092322 diff --git a/asm/lilypadLarge.s b/asm/lilypadLarge.s index 4d2e643d..a9158fe8 100644 --- a/asm/lilypadLarge.s +++ b/asm/lilypadLarge.s @@ -850,7 +850,7 @@ sub_08085B40: @ 0x08085B40 movs r1, #0x80 lsls r1, r1, #6 adds r0, r5, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 beq _08085BE8 ldr r1, [r5, #0x78] @@ -930,7 +930,7 @@ _08085BE8: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08085C58 adds r0, r4, #0 diff --git a/asm/macroPlayer.s b/asm/macroPlayer.s index 26025e39..d5df62c2 100644 --- a/asm/macroPlayer.s +++ b/asm/macroPlayer.s @@ -262,7 +262,7 @@ sub_0808CCBC: @ 0x0808CCBC movs r1, #0x80 lsls r1, r1, #5 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _0808CCFA ldrb r0, [r4, #0xc] @@ -300,7 +300,7 @@ sub_0808CD00: @ 0x0808CD00 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 beq _0808CD24 adds r0, r4, #0 @@ -335,7 +335,7 @@ sub_0808CD44: @ 0x0808CD44 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 beq _0808CD68 adds r0, r4, #0 @@ -368,7 +368,7 @@ sub_0808CD88: @ 0x0808CD88 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 beq _0808CDB8 adds r0, r4, #0 diff --git a/asm/minecart.s b/asm/minecart.s index 9192a4e1..3ed01b8f 100644 --- a/asm/minecart.s +++ b/asm/minecart.s @@ -233,7 +233,7 @@ _08091DA0: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08091DD8 ldrb r1, [r4, #0xb] diff --git a/asm/non_matching/castorWildsStatue/sub_080676E0.inc b/asm/non_matching/castorWildsStatue/sub_080676E0.inc index dbf35d08..862de60f 100644 --- a/asm/non_matching/castorWildsStatue/sub_080676E0.inc +++ b/asm/non_matching/castorWildsStatue/sub_080676E0.inc @@ -49,7 +49,7 @@ _08067734: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r3, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 beq _08067748 _08067742: diff --git a/asm/non_matching/cucco/sub_0806E564.inc b/asm/non_matching/cucco/sub_0806E564.inc index 81b21c45..69dbcecf 100644 --- a/asm/non_matching/cucco/sub_0806E564.inc +++ b/asm/non_matching/cucco/sub_0806E564.inc @@ -36,7 +36,7 @@ _0806E5AA: movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _0806E5D4 ldrb r0, [r4, #0xe] diff --git a/asm/non_matching/cuccoChick/sub_0806E7B0.inc b/asm/non_matching/cuccoChick/sub_0806E7B0.inc index 25c8580e..5044ade9 100644 --- a/asm/non_matching/cuccoChick/sub_0806E7B0.inc +++ b/asm/non_matching/cuccoChick/sub_0806E7B0.inc @@ -35,7 +35,7 @@ _0806E7F2: movs r1, #0xc0 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _0806E81C ldrb r0, [r4, #0xe] diff --git a/asm/non_matching/mountainMinish/sub_08067EF0.inc b/asm/non_matching/mountainMinish/sub_08067EF0.inc index 6dc123ef..5efe7adb 100644 --- a/asm/non_matching/mountainMinish/sub_08067EF0.inc +++ b/asm/non_matching/mountainMinish/sub_08067EF0.inc @@ -161,7 +161,7 @@ _0806802C: ands r0, r2 strb r0, [r6] adds r0, r5, #0 - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 bne _08068068 ldr r4, _08068064 @ =gUnk_0811137A diff --git a/asm/non_matching/player/sub_08070DC4.inc b/asm/non_matching/player/sub_08070DC4.inc index c7142c97..5f9b8e7e 100644 --- a/asm/non_matching/player/sub_08070DC4.inc +++ b/asm/non_matching/player/sub_08070DC4.inc @@ -12,7 +12,7 @@ movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08070E76 ldr r6, _08070E18 @ =gPlayerState diff --git a/asm/non_matching/player/sub_08072D54.inc b/asm/non_matching/player/sub_08072D54.inc index 6ade7257..74485d74 100644 --- a/asm/non_matching/player/sub_08072D54.inc +++ b/asm/non_matching/player/sub_08072D54.inc @@ -151,7 +151,7 @@ _08072E80: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08072F10 ldrb r1, [r4, #0x10] diff --git a/asm/non_matching/playerItem13/sub_080AD040.inc b/asm/non_matching/playerItem13/sub_080AD040.inc index 33fff72b..01a96f6c 100644 --- a/asm/non_matching/playerItem13/sub_080AD040.inc +++ b/asm/non_matching/playerItem13/sub_080AD040.inc @@ -71,7 +71,7 @@ _080AD0C8: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 beq _080AD0D8 b _080AD202 diff --git a/asm/non_matching/postman/sub_0806076C.inc b/asm/non_matching/postman/sub_0806076C.inc index 086d9be1..d82f1b9f 100644 --- a/asm/non_matching/postman/sub_0806076C.inc +++ b/asm/non_matching/postman/sub_0806076C.inc @@ -148,7 +148,7 @@ _08060864: strh r0, [r7, #0x32] adds r0, r7, #0 str r2, [sp] - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 beq _080608B8 ldr r0, [sp, #4] diff --git a/asm/object1F.s b/asm/object1F.s index 315749f8..9f65249f 100644 --- a/asm/object1F.s +++ b/asm/object1F.s @@ -139,7 +139,7 @@ _08087788: movs r1, #0xa0 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate _08087798: cmp r0, #0 bne _080877A0 diff --git a/asm/object30.s b/asm/object30.s index 084b0cfc..8ad2185f 100644 --- a/asm/object30.s +++ b/asm/object30.s @@ -127,7 +127,7 @@ _0808A924: _0808A926: ldr r1, [r4, #0x70] adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate b _0808A962 _0808A930: ldr r2, _0808A964 @ =gUnk_08121194 diff --git a/asm/object4B.s b/asm/object4B.s index 80b99e0e..b66012b4 100644 --- a/asm/object4B.s +++ b/asm/object4B.s @@ -141,7 +141,7 @@ sub_0808F858: @ 0x0808F858 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _0808F88A adds r0, r4, #0 diff --git a/asm/object53.s b/asm/object53.s index 9be70782..cb6da18f 100644 --- a/asm/object53.s +++ b/asm/object53.s @@ -95,7 +95,7 @@ _080911AA: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _080911E8 ldrb r1, [r4, #0xb] diff --git a/asm/object67.s b/asm/object67.s index aa5a10de..fe69518b 100644 --- a/asm/object67.s +++ b/asm/object67.s @@ -341,7 +341,7 @@ _080943A8: movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08094420 ldrb r0, [r4, #0xb] diff --git a/asm/object97.s b/asm/object97.s index 380c921b..cc0b3c10 100644 --- a/asm/object97.s +++ b/asm/object97.s @@ -197,7 +197,7 @@ sub_0809DB14: @ 0x0809DB14 adds r4, r0, #0 bl sub_0809E1F0 adds r0, r4, #0 - bl sub_080040A8 + bl CheckOnScreen adds r5, r0, #0 cmp r5, #0 bne _0809DB36 @@ -586,7 +586,7 @@ sub_0809DDE4: @ 0x0809DDE4 adds r0, r4, #0 bl sub_0809E210 adds r0, r4, #0 - bl sub_080040A8 + bl CheckOnScreen adds r5, r0, #0 cmp r5, #0 bne _0809DE2A @@ -814,7 +814,7 @@ _0809DFD6: sub_0809DFE0: @ 0x0809DFE0 push {r4, lr} adds r4, r0, #0 - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 bne _0809E028 ldr r1, [r4, #0x54] diff --git a/asm/objectB3.s b/asm/objectB3.s index bb58c920..4111e371 100644 --- a/asm/objectB3.s +++ b/asm/objectB3.s @@ -92,7 +92,7 @@ sub_080A0AC4: @ 0x080A0AC4 sub_080A0AD0: @ 0x080A0AD0 push {lr} movs r1, #0x80 - bl sub_08003FC4 + bl GravityUpdate pop {pc} .align 2, 0 @@ -131,7 +131,7 @@ sub_080A0AF0: @ 0x080A0AF0 _080A0B1C: adds r0, r4, #0 movs r1, #0x80 - bl sub_08003FC4 + bl GravityUpdate pop {r4, pc} .align 2, 0 diff --git a/asm/objectOnSpinyBeetle.s b/asm/objectOnSpinyBeetle.s index 76679025..bcf85560 100644 --- a/asm/objectOnSpinyBeetle.s +++ b/asm/objectOnSpinyBeetle.s @@ -517,7 +517,7 @@ _080988FA: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _0809890E adds r0, r4, #0 diff --git a/asm/stalfos.s b/asm/stalfos.s index fa469360..8dfd95a9 100644 --- a/asm/stalfos.s +++ b/asm/stalfos.s @@ -353,7 +353,7 @@ sub_08039530: @ 0x08039530 adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08039568 adds r0, r4, #0 @@ -442,7 +442,7 @@ sub_080395D8: @ 0x080395D8 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _08039602 adds r0, r4, #0 @@ -464,7 +464,7 @@ sub_08039604: @ 0x08039604 movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 - bl sub_08003FC4 + bl GravityUpdate ldr r0, [r4, #0x20] cmp r0, #0 bge _08039624 @@ -563,7 +563,7 @@ sub_080396BC: @ 0x080396BC adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 - bl sub_08003FC4 + bl GravityUpdate cmp r0, #0 bne _080396E2 adds r1, r4, #0 diff --git a/asm/takkuri.s b/asm/takkuri.s index 57dbaf0e..c8b490ae 100644 --- a/asm/takkuri.s +++ b/asm/takkuri.s @@ -226,7 +226,7 @@ sub_0803BD08: @ 0x0803BD08 cmp r0, #0 beq _0803BD2C adds r0, r4, #0 - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 bne _0803BD80 strb r0, [r4, #0xf] @@ -290,7 +290,7 @@ sub_0803BD88: @ 0x0803BD88 sub_0803BD90: @ 0x0803BD90 push {r4, lr} adds r4, r0, #0 - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 bne _0803BDC8 movs r0, #4 @@ -415,7 +415,7 @@ _0803BE78: .4byte gRoomControls sub_0803BE7C: @ 0x0803BE7C push {r4, r5, lr} adds r4, r0, #0 - bl sub_080040A8 + bl CheckOnScreen adds r5, r0, #0 cmp r5, #0 bne _0803BEE6 diff --git a/asm/wizzrobeFire.s b/asm/wizzrobeFire.s index ffe3a72f..7433c82d 100644 --- a/asm/wizzrobeFire.s +++ b/asm/wizzrobeFire.s @@ -242,7 +242,7 @@ _0802FCDE: cmp r0, #0 beq _0802FDCA adds r0, r4, #0 - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 beq _0802FDCA adds r0, r4, #0 diff --git a/asm/wizzrobeIce.s b/asm/wizzrobeIce.s index ae171a3f..4ac417bd 100644 --- a/asm/wizzrobeIce.s +++ b/asm/wizzrobeIce.s @@ -269,7 +269,7 @@ _0802FFB6: cmp r0, #0 beq _080300A2 adds r0, r4, #0 - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 beq _080300A2 adds r0, r4, #0 diff --git a/asm/wizzrobeWind.s b/asm/wizzrobeWind.s index ed1ca987..2fef5564 100644 --- a/asm/wizzrobeWind.s +++ b/asm/wizzrobeWind.s @@ -294,7 +294,7 @@ _0802F6B6: cmp r0, #0 beq _0802F7A2 adds r0, r4, #0 - bl sub_080040A8 + bl CheckOnScreen cmp r0, #0 beq _0802F7A2 adds r0, r4, #0 diff --git a/include/asm.h b/include/asm.h index cd151320..99ad082a 100644 --- a/include/asm.h +++ b/include/asm.h @@ -12,7 +12,7 @@ extern void sub_08001242(struct Entity_*); extern void sub_08001290(struct Entity_*, u32); extern void sub_08001324(struct Entity_*); extern u32 sub_08002632(struct Entity_*); -extern u32 sub_08003FC4(struct Entity_*, u32); +extern u32 GravityUpdate(struct Entity_*, u32); extern u32 sub_080043E8(struct Entity_*); extern void sub_08004484(struct Entity_*, struct Entity_*); extern u32 sub_080045D4(s16, s16, u32, u32); diff --git a/include/entity.h b/include/entity.h index 43c3b721..8a895838 100644 --- a/include/entity.h +++ b/include/entity.h @@ -61,7 +61,7 @@ typedef struct Entity_ { /*0x16*/ u8 field_0x16; /*0x17*/ u8 field_0x17; /*0x18*/ struct { - /* */ u32 draw : 2; // 1-2 + /* */ u32 draw : 2; // 0 = no draw, 1 = draw clip, 3 = force draw /* */ u32 ss2 : 1; // 4 /* */ u32 ss3 : 1; // 8 /* */ u32 shadow : 2; //0x10-0x20 diff --git a/include/functions.h b/include/functions.h index 7c875323..23e0a7cc 100644 --- a/include/functions.h +++ b/include/functions.h @@ -161,7 +161,7 @@ extern void sub_0802F45C(Entity*); extern u32 sub_0800419C(Entity*, Entity*, u32, u32); extern void sub_08004542(Entity*); extern void sub_08077B20(); -extern bool32 sub_080040A8(Entity*); +extern bool32 CheckOnScreen(Entity*); extern u32 sub_08017850(Entity*); extern void sub_080809D4(void); extern void sub_08080CB4(Entity*); diff --git a/src/enemy/acroBandits.c b/src/enemy/acroBandits.c index e43a8f39..865791d5 100644 --- a/src/enemy/acroBandits.c +++ b/src/enemy/acroBandits.c @@ -108,7 +108,7 @@ void sub_080318DC(Entity* this) { void sub_08031A60(Entity* this) { if (this->iframes > 0) - sub_08003FC4(this, 0x1800); + GravityUpdate(this, 0x1800); sub_08001324(this); } @@ -351,7 +351,7 @@ void sub_08031EE8(Entity* this) { } void sub_08031F54(Entity* this) { - sub_08003FC4(this, gUnk_080CE5F0[this->type2]); + GravityUpdate(this, gUnk_080CE5F0[this->type2]); if (this->type2 * -0xe <= this->z.HALF.HI) { this->action = 3; this->actionDelay = 20; @@ -426,7 +426,7 @@ void sub_08032008(Entity* this) { } void sub_08032148(Entity* this) { - if (sub_08003FC4(this, 0x2000)) + if (GravityUpdate(this, 0x2000)) return; sub_08032290(this); @@ -481,7 +481,7 @@ void sub_08032204(Entity* this) { } void sub_08032248(Entity* this) { - if (sub_08003FC4(this, 0x1800) == 0) { + if (GravityUpdate(this, 0x1800) == 0) { if (this->frame & 0x80) { ((Entity*)this->field_0x7c.WORD)->actionDelay--; diff --git a/src/enemy/beetle.c b/src/enemy/beetle.c index 205e149e..b6988f6c 100644 --- a/src/enemy/beetle.c +++ b/src/enemy/beetle.c @@ -133,7 +133,7 @@ void sub_08021984(Entity* this) { EnqueueSFX(0x12d); } - if (sub_08003FC4(this, 0x1800) == 0) { + if (GravityUpdate(this, 0x1800) == 0) { this->action = 2; this->actionDelay = 16; this->field_0xf = 1; @@ -200,7 +200,7 @@ void sub_08021AD8(Entity* this) { EnqueueSFX(0x7c); } sub_080AEFE0(this); - if (!sub_08003FC4(this, 0x1800)) + if (!GravityUpdate(this, 0x1800)) this->frameDuration = 1; } @@ -259,7 +259,7 @@ void sub_08021C58(Entity* this) { GetNextFrame(this); if (this->frame & 1) { sub_080AEFE0(this); - if (sub_08003FC4(this, 0x1800) == 0) + if (GravityUpdate(this, 0x1800) == 0) this->frameDuration = 1; } diff --git a/src/enemy/chuchu.c b/src/enemy/chuchu.c index f14b400c..eb77023e 100644 --- a/src/enemy/chuchu.c +++ b/src/enemy/chuchu.c @@ -134,7 +134,7 @@ void sub_0801EFD8(Entity* this) { sub_0801FB68(this); InitializeAnimation(this, 8); } - sub_08003FC4(this, 0x1800); + GravityUpdate(this, 0x1800); GetNextFrame(this); } } @@ -146,7 +146,7 @@ void sub_0801F02C(Entity* this) { } void sub_0801F048(Entity* this) { - sub_08003FC4(this, 0x1800); + GravityUpdate(this, 0x1800); GetNextFrame(this); if (this->type == 0) { sub_0804A7D4(this); @@ -218,7 +218,7 @@ void sub_0801F1B0(Entity* this) { EnqueueSFX(299); } sub_080AEFE0(this); - if (sub_08003FC4(this, 0x4000) == 0) + if (GravityUpdate(this, 0x4000) == 0) GetNextFrame(this); } else { GetNextFrame(this); @@ -278,7 +278,7 @@ void sub_0801F2CC(Entity* this) { } void sub_0801F2F8(Entity* this) { - sub_08003FC4(this, 0x1800); + GravityUpdate(this, 0x1800); GetNextFrame(this); if (this->frame & 0x80) { sub_0801F340(this); @@ -409,7 +409,7 @@ void sub_0801F584(Entity* this) { EnqueueSFX(299); } sub_080AEFE0(this); - if (sub_08003FC4(this, 0x4000) == 0) + if (GravityUpdate(this, 0x4000) == 0) GetNextFrame(this); } else { @@ -471,7 +471,7 @@ void sub_0801F6CC(Entity* this) { } void sub_0801F6F8(Entity* this) { - sub_08003FC4(this, 0x1800); + GravityUpdate(this, 0x1800); GetNextFrame(this); if (this->frame & 0x80) { this->action = 4; @@ -586,7 +586,7 @@ void sub_0801F940(Entity* this) { EnqueueSFX(299); } sub_080AEFE0(this); - if (sub_08003FC4(this, 0x4000) == 0) + if (GravityUpdate(this, 0x4000) == 0) GetNextFrame(this); } else { GetNextFrame(this); @@ -646,7 +646,7 @@ void sub_0801FA78(Entity* this) { } void sub_0801FAAC(Entity* this) { - sub_08003FC4(this, 0x1800); + GravityUpdate(this, 0x1800); GetNextFrame(this); if (this->frame & 0x80) { sub_0801FB14(this); diff --git a/src/enemy/cuccoChickAggr.c b/src/enemy/cuccoChickAggr.c index abb416f2..46b7c58b 100644 --- a/src/enemy/cuccoChickAggr.c +++ b/src/enemy/cuccoChickAggr.c @@ -52,7 +52,7 @@ void sub_08022988(Entity* this) { } ProcessMovement(this); - if (sub_08003FC4(this, 0x2000) == 0) { + if (GravityUpdate(this, 0x2000) == 0) { if (--this->actionDelay == 0) { sub_08022A88(this); } else { @@ -64,7 +64,7 @@ void sub_08022988(Entity* this) { } void sub_080229F8(Entity* this) { - if (sub_08003FC4(this, 0x2800) == 0) { + if (GravityUpdate(this, 0x2800) == 0) { if (--this->actionDelay == 0) { this->action = 4; this->actionDelay = 6; @@ -88,7 +88,7 @@ void sub_08022A40(Entity* this) { } ProcessMovement(this); - if (sub_08003FC4(this, 0x2000) == 0) { + if (GravityUpdate(this, 0x2000) == 0) { if (--this->actionDelay == 0) { sub_08022A88(this); } else { diff --git a/src/enemy/fireballGuy.c b/src/enemy/fireballGuy.c index afcc4ac7..ebeaaf1f 100644 --- a/src/enemy/fireballGuy.c +++ b/src/enemy/fireballGuy.c @@ -49,7 +49,7 @@ void sub_080453E8(Entity* this) { void sub_08045430(Entity* this) { sub_080AEFE0(this); GetNextFrame(this); - if (sub_08003FC4(this, 0x1800) == 0) + if (GravityUpdate(this, 0x1800) == 0) sub_08045524(this); } diff --git a/src/enemy/helmasaur.c b/src/enemy/helmasaur.c index 594c8800..494b577b 100644 --- a/src/enemy/helmasaur.c +++ b/src/enemy/helmasaur.c @@ -227,7 +227,7 @@ void sub_0802BEEC(Entity* this) { this->direction = this->animationState << 3; InitializeAnimation(this, this->animationState + 4); } - } else if (!sub_08003FC4(this, 0x1c00)) { + } else if (!GravityUpdate(this, 0x1c00)) { this->action = 8; this->actionDelay = 30; this->speed = 0x120; diff --git a/src/enemy/lakitu.c b/src/enemy/lakitu.c index 85d80ee3..9179a7a5 100644 --- a/src/enemy/lakitu.c +++ b/src/enemy/lakitu.c @@ -224,7 +224,7 @@ void Lakitu_LightningDelay(Entity* this) { } void Lakitu_Cloudless(Entity* this) { - if (sub_08003FC4(this, 0x1800) == 0 && this->animIndex <= 19) { + if (GravityUpdate(this, 0x1800) == 0 && this->animIndex <= 19) { InitAnimationForceUpdate(this, this->animationState + 20); this->spritePriority.b1 = 0; diff --git a/src/enemy/mazaalBracelet.c b/src/enemy/mazaalBracelet.c index d0db11ed..2adfed33 100644 --- a/src/enemy/mazaalBracelet.c +++ b/src/enemy/mazaalBracelet.c @@ -927,7 +927,7 @@ void sub_0803B100(Entity* this) { void sub_0803B144(Entity* this) { UpdateAnimationSingleFrame(this->child); - if (sub_08003FC4(this, 0x2000) == 0) { + if (GravityUpdate(this, 0x2000) == 0) { this->action = 0x2a; InitializeAnimation(this, 0x16); sub_0803B8E8(this, 0x14); diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c index a96e4f84..553d5053 100644 --- a/src/enemy/mazaalHead.c +++ b/src/enemy/mazaalHead.c @@ -315,7 +315,7 @@ void sub_080342C8(Entity* this) { this->spriteOffsetX = gUnk_080CECEC[this->actionDelay >> 1 & 7]; } else { this->spriteOffsetX = 0; - if (sub_08003FC4(this, 0x2000) == 0) { + if (GravityUpdate(this, 0x2000) == 0) { this->action = 0xc; this->field_0x7c.HALF.HI = 0x708; this->field_0x7c.BYTES.byte1 = 0; diff --git a/src/enemy/miniFireballGuy.c b/src/enemy/miniFireballGuy.c index cca05ed4..0cde6285 100644 --- a/src/enemy/miniFireballGuy.c +++ b/src/enemy/miniFireballGuy.c @@ -43,7 +43,7 @@ void sub_08045618(Entity* this) { void sub_08045654(Entity* this) { sub_080AEFE0(this); GetNextFrame(this); - if (sub_08003FC4(this, 0x1800) == 0) { + if (GravityUpdate(this, 0x1800) == 0) { sub_08045678(this); } } diff --git a/src/enemy/peahat.c b/src/enemy/peahat.c index 5d8ba2d5..804ccba6 100644 --- a/src/enemy/peahat.c +++ b/src/enemy/peahat.c @@ -238,7 +238,7 @@ void Peahat_Stunned(Entity* this) { GetNextFrame(this); break; case PeahatAnimation_SlicedPropeller: - sub_08003FC4(this, 0x1c00); + GravityUpdate(this, 0x1c00); if (this->z.HALF.HI == 0) { this->action = 7; this->actionDelay = 150; @@ -316,7 +316,7 @@ void Peahat_Takeoff(Entity* this) { } else if (this->frame & 1) { sub_0800442E(this); } else { - sub_08003FC4(this, 0x1c00); + GravityUpdate(this, 0x1c00); ProcessMovement(this); } } diff --git a/src/enemy/puffstool.c b/src/enemy/puffstool.c index 6240bcd2..2641033f 100644 --- a/src/enemy/puffstool.c +++ b/src/enemy/puffstool.c @@ -104,7 +104,7 @@ void sub_0802511C(Entity* this) { } void sub_0802514C(Entity* this) { - sub_08003FC4(this, 0x2000); + GravityUpdate(this, 0x2000); if (sub_0806F520(this)) { gUnk_080CBFEC[this->subAction](this); } else { @@ -209,7 +209,7 @@ void sub_0802538C(Entity* this) { if (this->frame == 0) { GetNextFrame(this); } else { - sub_08003FC4(this, 0x2000); + GravityUpdate(this, 0x2000); if (this->zVelocity < 0x2000) { this->action = 4; InitializeAnimation(this, 2); @@ -220,7 +220,7 @@ void sub_0802538C(Entity* this) { void sub_080253D4(Entity* this) { GetNextFrame(this); - if (!sub_08003FC4(this, 0x2000)) { + if (!GravityUpdate(this, 0x2000)) { if (this->field_0xf == 0) { this->action = 5; InitializeAnimation(this, 3); @@ -256,7 +256,7 @@ void sub_0802544C(Entity* this) { } void sub_0802547C(Entity* this) { - sub_08003FC4(this, 0x2000); + GravityUpdate(this, 0x2000); GetNextFrame(this); if ((this->actionDelay & 7) == 0) { sub_08025BD4(this); @@ -268,7 +268,7 @@ void sub_0802547C(Entity* this) { } void sub_080254B4(Entity* this) { - sub_08003FC4(this, 0x2000); + GravityUpdate(this, 0x2000); if (this->frame & 0x80) { if (this->z.HALF.HI == 0) { if (this->cutsceneBeh.HWORD == 0) { diff --git a/src/enemy/rollobite.c b/src/enemy/rollobite.c index 5fb77dab..0a7dc34c 100644 --- a/src/enemy/rollobite.c +++ b/src/enemy/rollobite.c @@ -206,7 +206,7 @@ void Rollobite_Unroll(Entity* this) { } void Rollobite_LinedUp(Entity* this) { - if (sub_08003FC4(this, 0x1c00) == 0) { + if (GravityUpdate(this, 0x1c00) == 0) { this->action = 7; this->spritePriority.b0 = 7; } diff --git a/src/enemy/rope.c b/src/enemy/rope.c index d001888d..e555d60b 100644 --- a/src/enemy/rope.c +++ b/src/enemy/rope.c @@ -83,7 +83,7 @@ void sub_08031480(Entity* this) { SoundReq(SFX_12D); } } else { - if (sub_08003FC4(this, 0x1800) == 0) { + if (GravityUpdate(this, 0x1800) == 0) { this->action = 2; this->field_0xf = 0xf; this->spriteSettings.draw = 1; diff --git a/src/enemy/sluggula.c b/src/enemy/sluggula.c index 5d307fc4..57a6b416 100644 --- a/src/enemy/sluggula.c +++ b/src/enemy/sluggula.c @@ -117,7 +117,7 @@ void sub_08023CE0(Entity* this) { EnqueueSFX(0x12d); InitializeAnimation(this, 4); } - } else if (!sub_08003FC4(this, 0x1800)) { + } else if (!GravityUpdate(this, 0x1800)) { this->action = 3; this->spriteSettings.draw = 1; EnqueueSFX(0x84); diff --git a/src/enemy/spikedBeetle.c b/src/enemy/spikedBeetle.c index 903908c4..ec281989 100644 --- a/src/enemy/spikedBeetle.c +++ b/src/enemy/spikedBeetle.c @@ -173,7 +173,7 @@ void sub_0802B8E0(Entity* this) { } void sub_0802B948(Entity* this) { - if (!sub_08003FC4(this, 0x1800)) { + if (!GravityUpdate(this, 0x1800)) { this->action = 1; this->actionDelay = 1; } diff --git a/src/enemy/spinyChuchu.c b/src/enemy/spinyChuchu.c index 69664d39..7d5ea60b 100644 --- a/src/enemy/spinyChuchu.c +++ b/src/enemy/spinyChuchu.c @@ -86,7 +86,7 @@ void sub_080225A0(Entity* this) { } void sub_080225BC(Entity* this) { - sub_08003FC4(this, 0x1800); + GravityUpdate(this, 0x1800); if (this->frame & 1) { sub_0804A7D4(this); } else { @@ -125,7 +125,7 @@ void sub_08022654(Entity* this) { InitializeAnimation(this, 0); /* fallthrough */ case 1: - if (sub_08003FC4(this, 0x1800)) + if (GravityUpdate(this, 0x1800)) return; this->subAction = 2; @@ -204,7 +204,7 @@ void sub_080227AC(Entity* this) { } void sub_0802281C(Entity* this) { - sub_08003FC4(this, 0x1800); + GravityUpdate(this, 0x1800); GetNextFrame(this); if (this->frame & 0x80) { this->action = 2; @@ -218,7 +218,7 @@ void sub_08022854(Entity* this) { GetNextFrame(this); if (this->frame & 1) { sub_080AEFE0(this); - if (sub_08003FC4(this, 0x1800) == 0) { + if (GravityUpdate(this, 0x1800) == 0) { this->action = 7; this->hitType = 0x5c; InitializeAnimation(this, 5); diff --git a/src/enemy/tektite.c b/src/enemy/tektite.c index ac123367..07709ae9 100644 --- a/src/enemy/tektite.c +++ b/src/enemy/tektite.c @@ -56,7 +56,7 @@ void nullsub_16(Entity* this) { void sub_0802F1F0(Entity* this) { sub_08001242(this); if (this->z.HALF.HI != 0) { - sub_08003FC4(this, this->field_0x80.HWORD); + GravityUpdate(this, this->field_0x80.HWORD); } } diff --git a/src/enemy/tektiteGolden.c b/src/enemy/tektiteGolden.c index ba3b5d58..2fc3bfb0 100644 --- a/src/enemy/tektiteGolden.c +++ b/src/enemy/tektiteGolden.c @@ -55,7 +55,7 @@ void sub_08037F58(Entity* this) { void sub_08037F84(Entity* this) { sub_08001242(this); if (this->z.HALF.HI != 0) { - sub_08003FC4(this, 0x3000); + GravityUpdate(this, 0x3000); } } diff --git a/src/enemy/vaatiArm.c b/src/enemy/vaatiArm.c index 8a5dd737..7882441e 100644 --- a/src/enemy/vaatiArm.c +++ b/src/enemy/vaatiArm.c @@ -972,7 +972,7 @@ void sub_08043520(Entity* this) { Entity* entity; entity = ((VaatiArm_HeapStruct*)this->myHeap)->entities[4]; - sub_08003FC4(entity, 0x1a00); + GravityUpdate(entity, 0x1a00); if ((entity->zVelocity < 0) && (-6 < entity->z.HALF.HI)) { entity->z.HALF.HI = -6; this->subAction = 3; diff --git a/src/enemy/vaatiTransfigured.c b/src/enemy/vaatiTransfigured.c index 232d95a5..c9198d08 100644 --- a/src/enemy/vaatiTransfigured.c +++ b/src/enemy/vaatiTransfigured.c @@ -313,7 +313,7 @@ void VaatiTransfiguredType0Action3(Entity* this) { } break; } - if (sub_08003FC4(this, 0x2800) == 0) { + if (GravityUpdate(this, 0x2800) == 0) { this->field_0x80.HALF.LO = 5; this->actionDelay = 0x10; COLLISION_ON(this); @@ -379,7 +379,7 @@ void VaatiTransfiguredType0Action4(Entity* this) { } break; case 1: - if (sub_08003FC4(this, 0x2800) != 0) + if (GravityUpdate(this, 0x2800) != 0) break; this->field_0x80.HALF.LO += 1; switch (this->cutsceneBeh.HALF.LO) { diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index 25fb3dba..d216ba7f 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -470,7 +470,7 @@ void VaatiWrathType0ActionB(Entity* this) { UpdateAnimationSingleFrame(this); GetNextFrame(((VaatiWrathHeapStruct*)this->myHeap)->type1); GetNextFrame(((VaatiWrathHeapStruct*)this->myHeap)->type2); - if (sub_08003FC4(this, 0x2000) == 0) { + if (GravityUpdate(this, 0x2000) == 0) { this->subAction = 1; this->actionDelay = 0xf0; this->health = 8; diff --git a/src/enemy/waterDrop.c b/src/enemy/waterDrop.c index 32390db3..fc63d632 100644 --- a/src/enemy/waterDrop.c +++ b/src/enemy/waterDrop.c @@ -34,7 +34,7 @@ void sub_0802A250(Entity* this) { } void sub_0802A2B4(Entity* this) { - if (!sub_08003FC4(this, 0x2800)) { + if (!GravityUpdate(this, 0x2800)) { this->action = 2; this->spritePriority.b0 = 7; EnqueueSFX(0x84); diff --git a/src/npc/cuccoChick.c b/src/npc/cuccoChick.c index 11aab009..10a51b9f 100644 --- a/src/npc/cuccoChick.c +++ b/src/npc/cuccoChick.c @@ -74,7 +74,7 @@ void CuccoChick_Fusion(Entity* this) { this->spriteSettings.draw = 1; this->frameIndex = 1; } else { - if (sub_08003FC4(this, 0x3000) == 0) { + if (GravityUpdate(this, 0x3000) == 0) { this->zVelocity = 0x10000; } } diff --git a/src/npc/melari.c b/src/npc/melari.c index 757bc43e..f2d408b2 100644 --- a/src/npc/melari.c +++ b/src/npc/melari.c @@ -79,7 +79,7 @@ void sub_08068780(Entity* this) { if (this->frame & 0x40) { this->frame &= 0xbf; - if (sub_080040A8(this) == 0) { + if (CheckOnScreen(this) == 0) { SoundReq(gUnk_0811153E[(s32)Random() % 3]); } else { EnqueueSFX(gUnk_08111538[(s32)Random() % 3]); diff --git a/src/npc/npc5.c b/src/npc/npc5.c index a86189ef..97d3c819 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -265,7 +265,7 @@ void sub_08060DFC(Entity* this) { sub_0806F69C(this); sub_08060E94(this); - uVar1 = sub_08003FC4(this, 0x2000); + uVar1 = GravityUpdate(this, 0x2000); if (uVar1 == 0) { this->action = 7; this->collisionLayer = 1; diff --git a/src/npc/postman.c b/src/npc/postman.c index 3014e4b8..9e643e8e 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -96,7 +96,7 @@ void sub_080604DC(Entity* this) { int iVar2; Entity* ent; - if (this->spriteSettings.draw == 1 && sub_080040A8(this)) { + if (this->spriteSettings.draw == 1 && CheckOnScreen(this)) { if ((this->frame & 1) != 0) { this->frame &= 0xfe; ent = CreateFx(this, 17, 0x40); @@ -163,7 +163,7 @@ void sub_08060528(Entity* this) { this->field_0x6a.HWORD -= 1; } } - sub_08003FC4(this, 0x1800); + GravityUpdate(this, 0x1800); if (((this->field_0x6c.HALF.HI != 0) && (this->zVelocity == 0)) && this->z.WORD == 0) { this->field_0x6c.HALF.HI = 0; sub_080606C0(this); diff --git a/src/npc/townMinish.c b/src/npc/townMinish.c index dc8e0531..3d89d6f4 100644 --- a/src/npc/townMinish.c +++ b/src/npc/townMinish.c @@ -174,7 +174,7 @@ void sub_0806AEA8(Entity* this) { int old = this->field_0x82.HWORD; this->field_0x82.HWORD &= ~0x20; if (old & 0x20) { - sub_08003FC4(this, 0x4000); + GravityUpdate(this, 0x4000); } HandleEntity0x82Actions(this); this->field_0x82.HWORD = old; @@ -226,7 +226,7 @@ void sub_0806AF70(Entity* this, ScriptExecutionContext* context) { } void sub_0806AF78(Entity* this, ScriptExecutionContext* context) { - sub_08003FC4(this, 0x1800); + GravityUpdate(this, 0x1800); if (0 <= this->z.WORD && this->zVelocity < 1) { this->z.WORD = 0; sub_0806AF70(this, context); diff --git a/src/npc/zelda.c b/src/npc/zelda.c index 781c2c80..4cb5a1ae 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -137,7 +137,7 @@ void sub_08066E80(Entity* this, ScriptExecutionContext* context) { break; case 2: sub_0806F62C(this, 0x100, 0x80); - sub_08003FC4(this, 0x2000); + GravityUpdate(this, 0x2000); if (!(this->frame & 1)) { UpdateAnimationSingleFrame(this); } @@ -148,7 +148,7 @@ void sub_08066E80(Entity* this, ScriptExecutionContext* context) { case 3: sub_0806F62C(this, 0x100, 0x80); UpdateAnimationSingleFrame(this); - if (sub_08003FC4(this, 0x2000) == 0) { + if (GravityUpdate(this, 0x2000) == 0) { context->unk_18++; InitAnimationForceUpdate(this, 0x1E); } diff --git a/src/object/bird.c b/src/object/bird.c index b7774df4..9a131075 100644 --- a/src/object/bird.c +++ b/src/object/bird.c @@ -44,12 +44,12 @@ void sub_0809CF54(Entity* this) { void sub_0809CFEC(Entity* this) { sub_0806F69C(this); - sub_08003FC4(this, *(s16*)&this->field_0x68.HWORD); + GravityUpdate(this, *(s16*)&this->field_0x68.HWORD); if (this->actionDelay != 0) { if (--this->actionDelay == 0) { this->field_0xf = 0; } - } else if (sub_080040A8(this) == 0) { + } else if (CheckOnScreen(this) == 0) { DeleteThisEntity(); } UpdateAnimationSingleFrame(this); diff --git a/src/object/itemOnGround.c b/src/object/itemOnGround.c index 2c025c77..78d8c881 100644 --- a/src/object/itemOnGround.c +++ b/src/object/itemOnGround.c @@ -216,7 +216,7 @@ void sub_080811EC(Entity* this) { sub_0806F69C(this); } - sub_08003FC4(this, 0x2800); + GravityUpdate(this, 0x2800); if (this->zVelocity <= 0) { this->action = 2; COLLISION_ON(this); @@ -302,7 +302,7 @@ void sub_0808136C(Entity* this) { this->y.WORD = other->y.WORD; this->spriteOrientation.flipY = other->spriteOrientation.flipY; this->spriteRendering.b3 = other->spriteRendering.b3; - sub_08003FC4(this, 0x2800); + GravityUpdate(this, 0x2800); } else { sub_08081404(this, 1); } @@ -410,14 +410,14 @@ void sub_0808153C(Entity* this) { return; if (this->field_0x68.HALF.LO == 0) { - if (!sub_08003FC4(this, 0x1000) && !sub_0800442E(this)) { + if (!GravityUpdate(this, 0x1000) && !sub_0800442E(this)) { this->field_0x68.HALF.LO = 1; this->zVelocity = 0x1E000; sub_0808148C(this->type); UpdateSpriteForCollisionLayer(this); } } else { - if (!sub_08003FC4(this, 0x2800)) { + if (!GravityUpdate(this, 0x2800)) { this->field_0x68.HALF.LO = 2; sub_0808148C(this->type); } diff --git a/src/object/jarPortal.c b/src/object/jarPortal.c index d84c12b6..8adb45e7 100644 --- a/src/object/jarPortal.c +++ b/src/object/jarPortal.c @@ -57,7 +57,7 @@ void sub_0808BF14(Entity* this) { } void sub_0808BF58(Entity* this) { - sub_08003FC4(this, 0x2000); + GravityUpdate(this, 0x2000); switch (this->subAction) { case 0: if (this->zVelocity <= 98303) { @@ -125,7 +125,7 @@ void sub_0808C01C(Entity* this, u32 r1) { } void sub_0808C0AC(Entity* this) { - sub_08003FC4(this, 0x2000); + GravityUpdate(this, 0x2000); switch (this->subAction) { case 0: if (this->zVelocity <= 98303) { diff --git a/src/object/object49.c b/src/object/object49.c index 125c6440..4b4be720 100644 --- a/src/object/object49.c +++ b/src/object/object49.c @@ -53,7 +53,7 @@ void sub_0808F0D0(Entity* this) { void sub_0808F14C(Entity* this) { sub_0808F2B0(this); - if (sub_08003FC4(this, 0x2000) == 0) { + if (GravityUpdate(this, 0x2000) == 0) { this->action++; SoundReq(SFX_WATER_SPLASH); } diff --git a/src/object/object6A.c b/src/object/object6A.c index baeccd92..d0063f60 100644 --- a/src/object/object6A.c +++ b/src/object/object6A.c @@ -104,7 +104,7 @@ Object6ATypeAction sub_08096290; extern void sub_08080CB4(Entity*); extern u32 sub_080002B8(Entity*); -extern u32 sub_080040A8(Entity*); +extern u32 CheckOnScreen(Entity*); extern void sub_08078850(Entity*, u32, u32, u8*); void sub_08095754(Object6AEntity*); @@ -355,7 +355,7 @@ void sub_08094E30(Object6AEntity* this) { case 3: super->z.WORD -= super->zVelocity; super->zVelocity -= 0x2000; - if (!sub_080040A8(super)) { + if (!CheckOnScreen(super)) { DeleteThisEntity(); } break; @@ -695,7 +695,7 @@ void sub_080954DC(Object6AEntity* this) { break; } this->off += 4; - if (super->subAction != 0 && !sub_080040A8(super)) + if (super->subAction != 0 && !CheckOnScreen(super)) DeleteThisEntity(); if (super->direction & 0x80) super->spriteSettings.flipX = 0; @@ -1090,9 +1090,9 @@ void sub_08095DBC(Object6AEntity* this) { super->zVelocity = 0x40000; super->speed = 0xC000; } - sub_08003FC4(super, super->speed); + GravityUpdate(super, super->speed); GetNextFrame(super); - if (!sub_080040A8(super)) + if (!CheckOnScreen(super)) DeleteThisEntity(); } } @@ -1241,7 +1241,7 @@ void sub_08096168(Object6AEntity* this) { } GetNextFrame(super); sub_0806F62C(super, super->speed, super->direction); - if (!sub_080040A8(super)) + if (!CheckOnScreen(super)) DeleteThisEntity(); } @@ -1301,7 +1301,7 @@ void sub_0809629C(Object6AEntity* this, u32 type) { } ExecuteScriptForEntity(super, 0); HandleEntity0x82Actions(super); - sub_08003FC4(super, 0x1000); + GravityUpdate(super, 0x1000); tmp = super->type; super->type = type; sub_08080CB4(super); diff --git a/src/object/pot.c b/src/object/pot.c index dd645021..d7a7ae96 100644 --- a/src/object/pot.c +++ b/src/object/pot.c @@ -256,7 +256,7 @@ void sub_08082824(Entity* this) { this->spriteSettings.flipY = 1; } - if (sub_08003FC4(this, 0x2000) == 0) { + if (GravityUpdate(this, 0x2000) == 0) { sub_08082850(this, NULL); } } diff --git a/src/player.c b/src/player.c index 455f018c..ead93d25 100644 --- a/src/player.c +++ b/src/player.c @@ -401,7 +401,7 @@ static NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void PlayerBounceUpd sub_08079E08(); UpdateFloorType(); - if (sub_08078EFC() || sub_08003FC4(this, 0x2000)) + if (sub_08078EFC() || GravityUpdate(this, 0x2000)) return; gPlayerState.jumpStatus = 0; @@ -615,7 +615,7 @@ static void sub_08071130(Entity* this) { sub_0806F69C(this); - if (sub_08003FC4(this, 0x2000)) + if (GravityUpdate(this, 0x2000)) return; gPlayerState.jumpStatus = 0; @@ -880,7 +880,7 @@ static ASM_FUNC("asm/non_matching/player/PortalShrinkUpdate.inc", void PortalShr static void PortalEnterUpdate(Entity* this) { if (this->actionDelay == 0) { - if (sub_08003FC4(this, 0x2000)) + if (GravityUpdate(this, 0x2000)) return; this->spriteSettings.draw = FALSE; @@ -976,7 +976,7 @@ static void PlayerTalkEzloInit(Entity* this) { return; } - if (!sub_08003FC4(this, 0x2000)) + if (!GravityUpdate(this, 0x2000)) gPlayerState.jumpStatus = 0; } @@ -1142,7 +1142,7 @@ static void PlayerMinishDieInit(Entity* this) { if (gPlayerState.flags & (0x10 | 0x100)) return; - if (sub_08003FC4(this, 0x2000)) { + if (GravityUpdate(this, 0x2000)) { if (gPlayerState.flags & PL_NO_CAP) gPlayerState.animation = 0x420; else @@ -1287,7 +1287,7 @@ static void sub_08071E04(Entity* this) { static void sub_08071E74(Entity* this) { u32 temp; - sub_08003FC4(this, 0x2000); + GravityUpdate(this, 0x2000); sub_08079E08(); temp = this->actionDelay--; if (temp == 0) @@ -1353,7 +1353,7 @@ static void PlayerFrozenInit(Entity* this) { } static void PlayerFrozenUpdate(Entity* this) { - if (sub_08003FC4(this, 0x2000) == 0) { + if (GravityUpdate(this, 0x2000) == 0) { UpdateSpriteForCollisionLayer(this); gPlayerState.jumpStatus = 0; if (gPlayerState.field_0x14 == 0) { @@ -1457,7 +1457,7 @@ static void sub_08072168(Entity* this) { UpdateAnimationSingleFrame(this); i = (u16)sub_0806F854(this, 0, -12) ? 0x4000 : 0x2000; - sub_08003FC4(this, i); + GravityUpdate(this, i); if (gPlayerState.field_0x3a) { sub_0806F69C(this); } else { @@ -1553,7 +1553,7 @@ static void sub_08072354(Entity* this) { sub_0806F854(this, 0, -12); UpdateAnimationSingleFrame(this); sub_08079744(this); - if (sub_08003FC4(this, 0x2000)) + if (GravityUpdate(this, 0x2000)) return; this->spritePriority.b1 = 0; @@ -1929,7 +1929,7 @@ static void sub_08072B5C(Entity* this) { static void sub_08072C48(Entity* this) { UpdateAnimationSingleFrame(this); sub_0806F69C(this); - if (sub_08003FC4(this, 0x2000)) + if (GravityUpdate(this, 0x2000)) return; sub_08008790(this, 7); @@ -2054,7 +2054,7 @@ static NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(En } this->actionDelay = bVar1; - if (!sub_08003FC4(this, 0x2000)) { + if (!GravityUpdate(this, 0x2000)) { COLLISION_ON(this); if (this->collisionLayer == 1) { sub_0800455E(this); diff --git a/src/playerItem/playerItem12.c b/src/playerItem/playerItem12.c index 3f750765..855fcef8 100644 --- a/src/playerItem/playerItem12.c +++ b/src/playerItem/playerItem12.c @@ -25,7 +25,7 @@ void sub_0807037C(Entity* this) { void sub_08070398(Entity* this) { GetNextFrame(this); sub_0806F69C(this); - if (sub_08003FC4(this, 0x2000) == 0) { + if (GravityUpdate(this, 0x2000) == 0) { DeleteThisEntity(); } } diff --git a/src/playerItem/playerItemBow.c b/src/playerItem/playerItemBow.c index f9739d9b..c1295acd 100644 --- a/src/playerItem/playerItemBow.c +++ b/src/playerItem/playerItemBow.c @@ -28,7 +28,7 @@ void sub_08019410(Entity* this) { void sub_08019444(Entity* this) { GetNextFrame(this); sub_0806F69C(this); - if (sub_08003FC4(this, 0x2000) == 0) { + if (GravityUpdate(this, 0x2000) == 0) { DeleteThisEntity(); } } diff --git a/src/projectile/arrowProjectile.c b/src/projectile/arrowProjectile.c index 03994e21..845a839b 100644 --- a/src/projectile/arrowProjectile.c +++ b/src/projectile/arrowProjectile.c @@ -90,7 +90,7 @@ void ArrowProjectile_Action3(Entity* this) { } void ArrowProjectile_Action4(Entity* this) { - if (sub_08003FC4(this, 0x2800) == 0) { + if (GravityUpdate(this, 0x2800) == 0) { CreateDust(this); DeleteThisEntity(); } else { diff --git a/src/projectile/boneProjectile.c b/src/projectile/boneProjectile.c index 1bececa0..d778558d 100644 --- a/src/projectile/boneProjectile.c +++ b/src/projectile/boneProjectile.c @@ -55,7 +55,7 @@ void BoneProjectile_Action1(Entity* this) { void BoneProjectile_Action2(Entity* this) { GetNextFrame(this); sub_080AF090(this); - if (sub_08003FC4(this, 0x1800) == 0) { + if (GravityUpdate(this, 0x1800) == 0) { this->action = 3; COLLISION_OFF(this); this->speed = 0xe0; @@ -75,7 +75,7 @@ void BoneProjectile_Action3(Entity* this) { void BoneProjectile_Action4(Entity* this) { GetNextFrame(this); sub_0806F69C(this); - if (sub_08003FC4(this, 0x1800) == 0) { + if (GravityUpdate(this, 0x1800) == 0) { DeleteEntity(this); } } diff --git a/src/projectile/gleerokProjectile.c b/src/projectile/gleerokProjectile.c index f4d71406..6a25ec3e 100644 --- a/src/projectile/gleerokProjectile.c +++ b/src/projectile/gleerokProjectile.c @@ -89,7 +89,7 @@ void GleerokProjectile_Init(Entity* this) { void GleerokProjectile_Action1(Entity* this) { if (this->type == 3) { - if (sub_08003FC4(this, 0x1800) == 0) { + if (GravityUpdate(this, 0x1800) == 0) { sub_08008790(this, 7); CreateFx(this, FX_ROCK, 0); DeleteThisEntity(); @@ -101,7 +101,7 @@ void GleerokProjectile_Action1(Entity* this) { this->field_0xf = 0x1e; sub_08004596(this, GetFacingDirection(this, &gPlayerEntity)); } - if (sub_08003FC4(this, 0) == 0) { + if (GravityUpdate(this, 0) == 0) { this->action = 2; sub_080A90D8(this); if (this->type == 2) { diff --git a/src/projectile/mandiblesProjectile.c b/src/projectile/mandiblesProjectile.c index 79fcb38b..43551110 100644 --- a/src/projectile/mandiblesProjectile.c +++ b/src/projectile/mandiblesProjectile.c @@ -198,7 +198,7 @@ void MandiblesProjectile_Action4(Entity* this) { } } } else { - if (sub_080040A8(this) == 0) { + if (CheckOnScreen(this) == 0) { DeleteThisEntity(); } } diff --git a/src/projectile/octorokBossProjectile.c b/src/projectile/octorokBossProjectile.c index 70315175..d04903b5 100644 --- a/src/projectile/octorokBossProjectile.c +++ b/src/projectile/octorokBossProjectile.c @@ -154,7 +154,7 @@ void OctorokBossProjectile_Action1(Entity* this) { OctorokBossProjectile_Action2(this); } GetNextFrame(this); - if (sub_08003FC4(this, 0x1800) != 0) { + if (GravityUpdate(this, 0x1800) != 0) { sub_080AE58C(this, this->direction >> 3, 0); if (this->collisions == 0) { sub_0806F62C(this, (s32)this->speed, (u32)this->direction); @@ -189,7 +189,7 @@ void OctorokBossProjectile_Action1(Entity* this) { DeleteThisEntity(); break; case 3: - if (sub_08003FC4(this, 0x1800) != 0) { + if (GravityUpdate(this, 0x1800) != 0) { return; } CreateFx(this, FX_ROCK, 0); diff --git a/src/projectile/rockProjectile.c b/src/projectile/rockProjectile.c index 02fea8ba..5ad1b0ef 100644 --- a/src/projectile/rockProjectile.c +++ b/src/projectile/rockProjectile.c @@ -56,7 +56,7 @@ void RockProjectile_Action1(Entity* this) { void RockProjectile_Action2(Entity* this) { sub_0806F69C(this); GetNextFrame(this); - if (sub_08003FC4(this, 0x1800) == 0) { + if (GravityUpdate(this, 0x1800) == 0) { DeleteEntity(this); } } diff --git a/src/projectile/stalfosProjectile.c b/src/projectile/stalfosProjectile.c index 0f3bfec5..92868e26 100644 --- a/src/projectile/stalfosProjectile.c +++ b/src/projectile/stalfosProjectile.c @@ -120,7 +120,7 @@ void StalfosProjectile_Action3(Entity* this) { if (this->zVelocity < 0) { this->spriteSettings.flipY = 1; } - if (sub_08003FC4(this, 0x2000) == 0) { + if (GravityUpdate(this, 0x2000) == 0) { sub_080A9BA8(this); } } diff --git a/src/projectile/v1FireProjectile.c b/src/projectile/v1FireProjectile.c index 4384766d..6c7efb5e 100644 --- a/src/projectile/v1FireProjectile.c +++ b/src/projectile/v1FireProjectile.c @@ -76,7 +76,7 @@ void V1FireProjectile_Init(Entity* this) { void V1FireProjectile_Action1(Entity* this) { GetNextFrame(this); sub_0806F69C(this); - if (sub_08003FC4(this, 0) == 0) { + if (GravityUpdate(this, 0) == 0) { this->action = 2; this->actionDelay = 0xf; InitializeAnimation(this, 0x54); diff --git a/src/projectile/v2Projectile.c b/src/projectile/v2Projectile.c index e0213f6f..b3574211 100644 --- a/src/projectile/v2Projectile.c +++ b/src/projectile/v2Projectile.c @@ -96,7 +96,7 @@ void sub_080ABD70(Entity* this) { ASM_FUNC("asm/non_matching/v2Projectile/sub_080ABE04.inc", void sub_080ABE04(Entity* this)) void sub_080ABE88(Entity* this) { - if (sub_08003FC4(this, 0x1800) == 0) { + if (GravityUpdate(this, 0x1800) == 0) { CreateFx(this, FX_ROCK, 0); DeleteThisEntity(); } @@ -118,7 +118,7 @@ void sub_080ABEA8(Entity* this) { } void sub_080ABF04(Entity* this) { - if (sub_080040A8(this) == 0) { + if (CheckOnScreen(this) == 0) { DeleteThisEntity(); } sub_0806F69C(this); diff --git a/src/script.c b/src/script.c index a05c3629..2a28188e 100644 --- a/src/script.c +++ b/src/script.c @@ -391,7 +391,7 @@ void HandleEntity0x82Actions(Entity* entity) { } break; case 1 << 5: - sub_08003FC4(entity, 0x2000); + GravityUpdate(entity, 0x2000); break; } } @@ -1440,9 +1440,9 @@ void ScriptCommand_0807EF3C(Entity* entity, ScriptExecutionContext* context) { context->unk_18 = 1; entity->zVelocity = ((s16)context->scriptInstructionPointer[1]) << 8; context->x.HALF.LO = context->scriptInstructionPointer[2] << 8; - sub_08003FC4(entity, (u16)context->x.HALF.LO); + GravityUpdate(entity, (u16)context->x.HALF.LO); } else { - if (!sub_08003FC4(entity, (u16)context->x.HALF.LO)) + if (!GravityUpdate(entity, (u16)context->x.HALF.LO)) return; } gActiveScriptInfo.commandSize = 0; @@ -1952,14 +1952,14 @@ void sub_0807F854(Entity* entity, ScriptExecutionContext* context) { } void sub_0807F8BC(Entity* entity, ScriptExecutionContext* context) { - if (sub_080040A8(entity)) + if (CheckOnScreen(entity)) context->condition = 1; else context->condition = 0; } void sub_0807F8D0(Entity* entity, ScriptExecutionContext* context) { - sub_08003FC4(entity, context->intVariable); + GravityUpdate(entity, context->intVariable); gActiveScriptInfo.flags |= 1; } @@ -2129,7 +2129,7 @@ void sub_0807FBCC(Entity* entity, ScriptExecutionContext* context) { void sub_0807FBD4(Entity* entity, ScriptExecutionContext* context) { sub_0806F62C(entity, entity->speed, entity->direction); - if (sub_080040A8(entity)) + if (CheckOnScreen(entity)) gActiveScriptInfo.commandSize = 0; } From 2ccf89a1fb89e01f449e1d4ce734c57943fa093b Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Sun, 26 Dec 2021 23:22:16 +0100 Subject: [PATCH 037/168] Rename scripts --- asm/bird.s | 4 +- asm/businessScrubPrologue.s | 4 +- asm/code_080732D0.s | 8 +- asm/fourElements.s | 4 +- asm/mazaalBossObject.s | 4 +- asm/non_matching/stockwell/sub_080650CC.inc | 8 +- data/const/npc/forestMinish.s | 88 +- data/data_080FCAC8.s | 50 +- data/data_080FEEB8.s | 70 +- data/map/entity_headers.s | 1110 ++++++++--------- data/scripts.s | 979 +++++++++------ data/scripts/CreateDustFromScript.inc | 5 + .../script_CastorWildsStatueLeft.inc | 18 + .../script_CastorWildsStatueMiddle.inc | 18 + .../script_CastorWildsStatueRight.inc | 29 + .../script_CastorWildsStatueRock.inc} | 3 +- .../castorWilds/script_GreatFairyRupees.inc | 28 + .../castorWilds/script_MalonAtRanch.inc | 17 + .../script_Object69.inc} | 3 +- .../script_Object69DarknutFight.inc | 20 + .../script_PlayerAtDarknutFight.inc} | 3 +- .../script_EzloTalkPoW.inc} | 3 +- .../cloudTops/script_GregalHealthy.inc | 36 + .../script_GregalSick.inc} | 64 +- .../script_HiddenWhirlwind1.inc} | 3 +- .../script_HiddenWhirlwind2.inc} | 3 +- .../cloudTops/script_Npc4EFirstCloud.inc | 37 + .../script_Npc4EKinstoneFused.inc} | 3 +- ...script_Object69GreatWhirlwindRevealed.inc} | 3 +- .../script_Object6AMysteriousCloud.inc} | 3 +- .../script_PlayerAtSiroc.inc} | 3 +- data/scripts/cloudTops/script_Siroc.inc | 27 + .../cloudTops/script_WindTribespeople1.inc | 21 + .../cloudTops/script_WindTribespeople2.inc | 21 + .../cloudTops/script_WindTribespeople3.inc | 30 + .../cloudTops/script_WindTribespeople4.inc | 17 + .../cloudTops/script_WindTribespeople5.inc | 17 + .../cloudTops/script_WindTribespeople6.inc | 23 + .../cloudTops/script_WindTribespeople7.inc | 27 + ...indTribespeopleGreatWhirlwindRevealed1.inc | 26 + ...indTribespeopleGreatWhirlwindRevealed2.inc | 27 + .../ezlo/script_EzloCap.inc} | 5 +- .../ezlo/script_Npc4EEzloCutscene.inc} | 43 +- .../script_Object6ALeftBullyingOctorok.inc} | 3 +- .../script_Object6ARightBullyingOctorok.inc} | 3 +- .../ezlo/script_PlayerAtFirstLookAtEzlo.inc} | 3 +- .../ezlo/script_PlayerDefeatedOctoroks.inc} | 3 +- .../ezlo/script_PlayerEzloBeingBullied.inc} | 3 +- .../cutscene/ezlo/script_PlayerGetEzloCap.inc | 5 + .../intro/script_HouseDoorIntro.inc} | 8 +- .../intro/script_IntroCameraTarget.inc} | 15 +- .../intro/script_Npc4EOutsideLinksHouse.inc} | 3 +- .../intro/script_Object69Intro.inc} | 3 +- .../cutscene/intro/script_Object69Intro2.inc | 9 + .../intro/script_PlayerIntro.inc} | 6 +- .../intro/script_PlayerMoveToSmith.inc} | 3 +- .../intro/script_SmithIntro.inc} | 3 +- .../intro/script_SmithIntro2.inc} | 7 +- .../intro/script_ZeldaIntro.inc} | 3 +- .../intro/script_ZeldaLeaveLinksHouse.inc} | 3 +- .../intro/script_ZeldaMoveToLinksHouse.inc} | 7 +- .../intro/script_ZeldaOutsideLinksHouse.inc} | 6 +- .../intro/script_ZeldaTalkToSmith.inc} | 4 +- .../introAssembly/script_GuardAtAssembly.inc} | 3 +- .../script_KingDaltusAtAssembly.inc | 68 + .../script_MinisterPothoAtAssembly.inc | 19 + .../script_Npc4EIntroAssembly.inc} | 43 +- .../introAssembly/script_PlayerEnters.inc} | 3 +- .../introAssembly/script_PlayerGetSword.inc} | 3 +- .../script_PlayerWakingUpInHyruleCastle.inc} | 3 +- .../introAssembly/script_SmithAtAssembly.inc | 55 + .../introBusinessScrub}/script_080157AC.inc | 7 +- .../introBusinessScrub}/script_08015B14.inc | 1 + .../introBusinessScrub}/script_08015B34.inc | 4 +- .../script_BusinessScrubIntro.inc} | 3 +- .../script_PlayerAtIntroBusinessScrub4.inc} | 3 +- .../script_PlayerIntroBusinessScrub1.inc} | 3 +- .../script_PlayerIntroBusinessScrub2.inc} | 3 +- .../script_PlayerIntroBusinessScrub3.inc} | 3 +- .../script_ZeldaIntroBusinessScrub.inc} | 3 +- .../introCeremony}/script_08011890.inc | 1 + .../script_GuardBottomRight.inc} | 3 +- .../script_GuardCarryingChest.inc} | 7 +- .../introCeremony/script_GuardEntryLeft.inc} | 3 +- .../introCeremony/script_GuardEntryRight.inc} | 3 +- .../introCeremony/script_GuardTopLeft.inc} | 3 +- .../introCeremony/script_GuardTopRight.inc} | 3 +- .../script_KingDaltusIntroCeremony.inc} | 3 +- .../script_MinisterPothoIntroCastle.inc} | 3 +- .../introCeremony/script_Npc4EMonsters.inc} | 3 +- .../script_Npc4EVaatiAttacking.inc} | 5 +- .../script_Object6AMonsterFromChest.inc | 6 + .../script_Object6ASwordInChest.inc} | 3 +- .../script_PlayerAtIntroCeremony.inc} | 3 +- .../introCeremony/script_PlayerFainting.inc} | 3 +- .../script_PlayerIntroCastle.inc} | 3 +- .../script_PlayerProtectingZelda.inc} | 3 +- .../introCeremony/script_VaatiDarkMagic.inc} | 5 +- .../script_VaatiIntroCeremony.inc} | 5 +- .../script_ZeldaIntroCastle.inc} | 3 +- .../introCeremony/script_ZeldaMagic.inc | 5 + .../cutscene/introTown/script_BeedleIntro.inc | 20 + .../cutscene/introTown/script_GuardIntro.inc | 19 + .../cutscene/introTown/script_KidIntro1.inc | 18 + .../cutscene/introTown/script_KidIntro2.inc | 36 + .../cutscene/introTown/script_KidIntro3.inc | 24 + .../introTown/script_Npc4EIntroCastle.inc} | 26 +- .../introTown/script_Npc4EIntroTown.inc} | 42 +- .../introTown/script_Object69IntroTown.inc} | 8 +- .../cutscene/introTown/script_PercyIntro.inc | 23 + .../cutscene/introTown/script_PinaIntro.inc | 40 + .../introTown/script_PlayerIntro1.inc} | 3 +- .../introTown/script_PlayerIntro2.inc} | 3 +- .../introTown/script_PlayerIntro3.inc} | 3 +- .../introTown/script_PlayerIntro4.inc} | 3 +- .../introTown/script_PlayerIntro5.inc} | 3 +- .../introTown/script_PlayerIntroTown.inc} | 3 +- .../introTown/script_TownsperonIntro.inc | 18 + .../script_WindtribespeopleIntro.inc | 17 + .../introTown/script_ZeldaIntroTown.inc} | 4 +- .../script_HurdyGurdyManFirstKinstone.inc} | 11 +- .../kinstones/script_KidKinstone1.inc} | 3 +- .../kinstones/script_KidKinstone2.inc} | 3 +- .../kinstones/script_KidKinstone3.inc} | 3 +- .../kinstones/script_Npc4EFirstKinstone.inc | 48 + .../script_PlayerAtFirstKinstone.inc} | 3 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone1.inc | 8 + ...pt_PlayerAtHurdyGurdyManFirstKinstone2.inc | 8 + ...pt_PlayerAtHurdyGurdyManFirstKinstone3.inc | 8 + ...pt_PlayerAtHurdyGurdyManFirstKinstone4.inc | 8 + .../minishVillage/script_ForestMinish5.inc} | 3 +- .../minishVillage/script_ForestMinish6.inc} | 3 +- .../minishVillage/script_ForestMinish7.inc} | 3 +- .../minishVillage/script_ForestMinish8.inc} | 3 +- .../minishVillage/script_ForestMinish9.inc} | 3 +- .../script_Object69VillageIntro.inc} | 5 +- .../script_PlayerAtVillageIntro.inc} | 3 +- .../script_EzloCapExplainingOriginStory.inc} | 5 +- .../originStory/script_MinishEzlo.inc} | 3 +- .../script_Object69CameraTarget.inc} | 3 +- .../script_Object69MinishVaati.inc} | 3 +- .../script_Object69VaatiAppears.inc | 161 +++ .../originStory/script_Object6ADarkMagic.inc} | 3 +- .../originStory/script_Object6AMinishCap.inc} | 3 +- .../script_PlayerAtVaatisAppearance.inc} | 3 +- .../script_PlayerDefeatedMoblins.inc} | 3 +- .../script_PlayerReceivedExposition.inc | 5 + .../script_PlayerSeenOriginStory.inc} | 3 +- .../script_PlayerStoneWallsAppear.inc | 15 + .../script_PlayerTryToFollowVaati.inc} | 3 +- .../originStory/script_Vaati.inc} | 5 +- .../originStory/script_VaatiAppearsAgain.inc} | 3 +- .../outro/script_EzloCapOutro.inc} | 5 +- .../outro/script_EzloZeldaMagic.inc} | 3 +- .../outro/script_GuardStoneOutro1.inc | 18 + .../outro/script_GuardStoneOutro2.inc | 18 + .../outro/script_GuardStoneOutro3.inc | 18 + .../cutscene/outro/script_MaidStoneOutro1.inc | 18 + .../cutscene/outro/script_MaidStoneOutro2.inc | 18 + .../outro/script_MinishEzloGoodbye.inc} | 14 +- .../outro/script_MinishEzloOutro.inc} | 18 +- .../outro/script_Npc4EDHCEntrance.inc} | 3 +- .../outro/script_Npc4EDHCThrone.inc} | 3 +- .../outro/script_Npc4EFixedEverything.inc} | 3 +- .../script_Npc4EHyruleCastleEntrance.inc} | 3 +- .../outro/script_Npc4EHyruleCastleThrone.inc} | 3 +- .../script_Npc4EMinishPortalClosing.inc} | 11 +- .../outro/script_Npc4EMinishWoods.inc | 20 + .../outro/script_Npc4EMtCrenel.inc} | 3 +- .../outro/script_Npc4EOutro.inc} | 5 +- .../outro/script_Npc4ESanctuaryEntrance.inc} | 3 +- .../script_Npc4EUnfreezeCastleStaff.inc} | 3 +- .../outro/script_Object6AEzloDismounting.inc} | 3 +- .../outro/script_Object6AEzloFinalMagic.inc} | 3 +- .../outro/script_Object6AMinishCapOutro.inc} | 5 +- .../outro/script_Object6AOctorok1.inc} | 3 +- .../outro/script_Object6AOctorok2.inc} | 3 +- .../outro/script_Object6AOctorok3.inc} | 3 +- .../outro/script_Object6AOctorok4.inc} | 3 +- .../outro/script_Object6ATektite1.inc} | 3 +- .../outro/script_Object6ATektite2.inc} | 3 +- .../outro/script_Object6ATektite3.inc} | 3 +- .../outro/script_Object6ATektite4.inc} | 3 +- .../outro/script_Object6ATheLittleHat.inc} | 3 +- .../outro/script_Object6AZeldaMagic.inc} | 3 +- .../outro/script_PlayerAtEzlo.inc} | 3 +- .../outro/script_PlayerAtOutro.inc} | 6 +- .../outro/script_PlayerGetGreenCap.inc} | 3 +- .../outro/script_PlayerSayGoodbye.inc | 10 + .../outro/script_ZeldaGoodbye.inc} | 3 +- .../outro/script_ZeldaOutro.inc} | 7 +- .../{ => cutscene/reveal}/script_08013494.inc | 1 + .../reveal/script_FakeKingDaltus.inc} | 3 +- .../script_Object3EPictureBackRoom.inc} | 24 +- .../reveal/script_PlayerAtPicture.inc} | 3 +- .../script_PlayerDistanceFromVaati.inc} | 3 +- .../reveal/script_PlayerFaintAgain.inc} | 3 +- .../reveal/script_PlayerMoveToPicture.inc} | 3 +- .../reveal/script_VaatiSanctuary.inc} | 3 +- .../takeover/script_GuardTakeover.inc} | 3 +- .../takeover/script_KingDaltusTakeover.inc} | 3 +- .../script_MinisterPothoTakeover.inc} | 3 +- .../takeover/script_Object69Takeover.inc} | 5 +- .../script_Object69TakeoverCutscene.inc} | 3 +- .../takeover/script_PlayerAtTakeover.inc} | 3 +- .../takeover/script_VaatiTakeover.inc} | 3 +- .../takeover/script_ZeldaStoneTakeover.inc} | 3 +- data/scripts/dhc/script_GuardCellLeft.inc | 18 + data/scripts/dhc/script_GuardCellRight.inc | 20 + data/scripts/dhc/script_GuardStone1.inc | 49 + data/scripts/dhc/script_GuardStone2.inc | 91 ++ data/scripts/dhc/script_KingDaltusStone.inc | 62 + .../dhc/script_MinishterPothoStone.inc | 48 + data/scripts/dhc/script_MinisterPothoCell.inc | 17 + .../script_Npc4EAfterDefeatingV2.inc} | 7 +- .../script_Npc4ECastleCollapsing.inc} | 7 +- .../script_Npc4EV3Defeated.inc} | 5 +- ...script_Object69BallAndChainSoldierRoom.inc | 58 + .../script_Object69CastleEscape.inc} | 5 +- data/scripts/dhc/script_Object69DHC.inc | 8 + .../script_Object69DarkNutsRoom.inc} | 3 +- .../script_Object69KeatonsRoom.inc} | 3 +- .../script_Object69KillDarkNut.inc} | 3 +- .../script_Object69V1Defeated.inc} | 3 +- .../script_Object69V2Defeated.inc} | 5 +- .../script_Object69V2Intro.inc} | 4 +- .../script_Object69VaatiWithZelda.inc} | 3 +- .../script_Object6AV3DefeatedMinishCap.inc} | 5 +- .../script_Object6AV3DefeatedMinishCap2.inc} | 3 +- .../script_PlayerAfterDefeatingV2.inc} | 3 +- .../script_PlayerAtDarkNut1.inc} | 3 +- .../script_PlayerAtDarkNut2.inc} | 3 +- .../script_PlayerAtDarkNut3.inc} | 3 +- .../script_PlayerCastleCollapsing.inc} | 3 +- .../script_PlayerCastleEscape.inc} | 3 +- .../script_PlayerRescuedZelda.inc} | 3 +- .../script_PlayerStonesFall.inc} | 3 +- .../script_PlayerV2Defeated.inc} | 3 +- .../script_Vaati1Intro.inc} | 3 +- .../script_VaatiWithZelda.inc} | 3 +- .../script_ZeldaAfterDefeatingV2.inc} | 3 +- .../script_ZeldaCastleEscape.inc} | 3 +- .../script_ZeldaStoneDHC.inc} | 3 +- .../script_ZeldaStoneInDHC.inc} | 3 +- .../script_MazaalMacroDefeated.inc} | 5 +- .../script_Object89Mazaal.inc} | 5 +- .../script_PlayerAtMazaal.inc} | 3 +- .../script_PlayerDefeatedMazaal.inc} | 3 +- data/scripts/graveyard/script_DampeInside.inc | 20 + .../scripts/graveyard/script_DampeInside2.inc | 13 + data/scripts/graveyard/script_DampeOuside.inc | 36 + .../graveyard/script_GhostBrothers.inc | 20 + data/scripts/graveyard/script_Gina.inc | 28 + .../graveyard/script_GraveyardHouseDoor.inc | 30 + .../script_GreatFairyArrows.inc} | 21 +- .../script_KingGustav.inc} | 5 +- .../script_Object69CrowStealingKey.inc} | 24 +- .../script_Object69GetKeyBack.inc} | 3 +- .../script_Object6AKingsGravestone.inc} | 3 +- .../script_Object97FirstCrow.inc} | 3 +- .../script_Object97SecondCrow.inc} | 3 +- .../script_PlayerAtGraveyardHouseDoor.inc} | 3 +- .../script_PlayerAtKingGustav.inc} | 3 +- .../script_PlayerGetKeyStolen.inc} | 3 +- .../hyruleCastle/script_CastleMaid.inc | 14 + .../hyruleCastle/script_GuardAtEntry.inc | 20 + .../hyruleCastle/script_KingDaltus.inc | 10 + .../hyruleCastle/script_MinisterPotho.inc | 20 + .../script_Object69SanctuaryEntrance.inc} | 7 +- .../hyruleCastle/script_SmithAtCastle.inc | 19 + .../hyruleCastle/script_StoneZelda.inc | 17 + .../hyruleCastleGarden/script_GardGarden5.inc | 6 + .../hyruleCastleGarden/script_GuardEntry1.inc | 20 + .../hyruleCastleGarden/script_GuardEntry2.inc | 18 + .../hyruleCastleGarden/script_GuardEntry3.inc | 38 + .../script_GuardGarden1.inc | 6 + .../script_GuardGarden2.inc | 6 + .../script_GuardGarden3.inc | 26 + .../script_GuardGarden4.inc | 13 + .../script_GuardGarden6.inc | 6 + .../script_GuardGarden7.inc | 29 + .../script_GuardGarden8.inc} | 3 +- .../script_Anju.inc} | 47 +- data/scripts/hyruleTown/script_AnjuInside.inc | 17 + .../script_BedAtSimons.inc} | 5 +- data/scripts/hyruleTown/script_Beedle.inc | 90 ++ data/scripts/hyruleTown/script_Brocco.inc | 21 + data/scripts/hyruleTown/script_CafeGuy.inc | 32 + .../script_Carlov.inc} | 3 +- .../script_Carlov2.inc} | 61 +- .../scripts/hyruleTown/script_CarlovChest.inc | 32 + .../script_CarlovGame.inc} | 34 +- data/scripts/hyruleTown/script_CarlovWon.inc | 18 + data/scripts/hyruleTown/script_Carpenter.inc | 20 + data/scripts/hyruleTown/script_CatPerson.inc | 19 + .../script_CatPersonTalkingToDogPerson.inc | 20 + data/scripts/hyruleTown/script_Din.inc | 61 + data/scripts/hyruleTown/script_Din2.inc | 50 + data/scripts/hyruleTown/script_DinAlone.inc | 20 + data/scripts/hyruleTown/script_DinMovedIn.inc | 59 + .../hyruleTown/script_DogPersonInCatHouse.inc | 27 + data/scripts/hyruleTown/script_DrLeft.inc | 27 + .../script_DrLeftDoor.inc} | 5 +- data/scripts/hyruleTown/script_Emma.inc | 35 + .../hyruleTown/script_EmmaNotEnoughRupees.inc | 11 + data/scripts/hyruleTown/script_Farore.inc | 61 + data/scripts/hyruleTown/script_Farore2.inc | 52 + .../scripts/hyruleTown/script_FaroreAlone.inc | 20 + .../hyruleTown/script_FaroreMovedIn.inc | 59 + .../hyruleTown/script_FirstHouseDoor.inc | 26 + .../hyruleTown/script_ForestMinish11.inc | 21 + data/scripts/hyruleTown/script_Ghost.inc | 19 + data/scripts/hyruleTown/script_GormanCats.inc | 38 + .../hyruleTown/script_GormanFirstHouse.inc | 19 + .../hyruleTown/script_GormanSecondHouse.inc | 38 + .../hyruleTown/script_GoronMerchant.inc | 87 ++ .../script_GuardEast.inc} | 3 +- .../hyruleTown/script_GuardLibrary.inc | 17 + data/scripts/hyruleTown/script_GuardNorth.inc | 29 + .../hyruleTown/script_GuardPatrolling.inc | 13 + .../script_GuardWest.inc} | 3 +- .../hyruleTown/script_HurdyGurdyMan.inc | 20 + data/scripts/hyruleTown/script_InnDoor.inc | 17 + data/scripts/hyruleTown/script_Kid1.inc | 27 + data/scripts/hyruleTown/script_Kid2.inc | 17 + data/scripts/hyruleTown/script_Kid3.inc | 46 + data/scripts/hyruleTown/script_Kid4.inc | 11 + data/scripts/hyruleTown/script_Kid5.inc | 16 + data/scripts/hyruleTown/script_Kid6.inc | 6 + data/scripts/hyruleTown/script_Kid7.inc | 14 + data/scripts/hyruleTown/script_KidInn.inc | 32 + .../script_Librari.inc} | 39 +- .../hyruleTown/script_LibrariLater.inc | 35 + .../hyruleTown/script_LibrarianLeft.inc | 18 + .../script_LibrarianLeftWithQuest.inc | 49 + .../hyruleTown/script_LibrarianRight.inc | 19 + .../hyruleTown/script_LibraryVisitor.inc | 18 + data/scripts/hyruleTown/script_MaidTown.inc | 14 + .../hyruleTown/script_MalonHyruleTown.inc | 44 + data/scripts/hyruleTown/script_Mama.inc | 23 + data/scripts/hyruleTown/script_Marcy.inc | 34 + data/scripts/hyruleTown/script_Mayor.inc | 23 + .../scripts/hyruleTown/script_MutohInMill.inc | 21 + data/scripts/hyruleTown/script_Nayru.inc | 61 + data/scripts/hyruleTown/script_Nayru2.inc | 50 + data/scripts/hyruleTown/script_NayruAlone.inc | 20 + .../hyruleTown/script_NayruMovedIn.inc | 59 + .../script_Object69AllBooksCollected.inc} | 3 +- .../scripts/hyruleTown/script_Object69Rem.inc | 15 + .../script_Object69SimonsSimulation.inc | 34 + .../script_Object6ACarlov.inc} | 3 +- .../hyruleTown/script_Object6ACarlov2.inc | 53 + ...cript_Object6APreventPlayerLeaveCarlov.inc | 20 + .../hyruleTown/script_OldLadyCatHouse1.inc | 9 + .../hyruleTown/script_OldLadyCatHouse2.inc | 20 + data/scripts/hyruleTown/script_Phonograph.inc | 21 + .../script_PhonographDoor.inc} | 27 +- data/scripts/hyruleTown/script_Pina.inc | 21 + data/scripts/hyruleTown/script_Pita.inc | 45 + .../script_PlayerActivatedTrapCard.inc} | 3 +- .../script_PlayerAtCarlov.inc} | 3 +- .../script_PlayerAtDrLeftDoor.inc} | 3 +- .../script_PlayerAtInnDoor.inc} | 3 +- .../script_PlayerAtRem.inc} | 3 +- .../script_PlayerCannotEnter.inc} | 3 +- .../script_PlayerSleepingInn.inc} | 3 +- .../script_PlayerStepOnTrap.inc} | 3 +- .../script_PlayerWakingUpAtSimons.inc} | 3 +- ...pt_PlayerWhenLeavingCarlovAlreadyPaid.inc} | 3 +- .../script_Postman.inc} | 22 +- .../script_Rem.inc} | 5 +- .../script_RemFallingAsleep.inc} | 11 +- .../script_RemTownMinish.inc} | 10 +- .../script_RentRegularRoom.inc} | 5 +- .../script_RentSmallRoom.inc} | 5 +- .../script_Simon.inc} | 36 +- data/scripts/hyruleTown/script_SimonsDoor.inc | 19 + .../hyruleTown/script_SittingPerson.inc | 25 + .../script_SmallTownMinish.inc} | 3 +- data/scripts/hyruleTown/script_Stamp.inc | 21 + .../script_Stockwell.inc} | 3 +- .../script_StockwellBuy.inc} | 3 +- .../script_StockwellDogFood.inc} | 3 +- data/scripts/hyruleTown/script_Sturgeon.inc | 19 + .../script_SturgeonAllBooksCollected.inc | 55 + data/scripts/hyruleTown/script_Teachers.inc | 18 + .../scripts/hyruleTown/script_TownMinish1.inc | 30 + .../scripts/hyruleTown/script_TownMinish2.inc | 16 + .../scripts/hyruleTown/script_TownMinish3.inc | 48 + .../scripts/hyruleTown/script_TownMinish4.inc | 52 + .../scripts/hyruleTown/script_TownMinish5.inc | 64 + .../scripts/hyruleTown/script_TownMinish6.inc | 46 + .../hyruleTown/script_Townsperson1.inc | 18 + .../hyruleTown/script_Townsperson2.inc | 12 + .../script_TownspersonInDogHouse.inc | 19 + data/scripts/hyruleTown/script_Wheaton.inc | 21 + .../script_WindTribespeopleVisitor.inc | 19 + .../script_BigGoronKinstone1.inc} | 3 +- .../script_BigGoronKinstone2.inc} | 3 +- .../script_BigGoronKinstone3.inc} | 3 +- .../script_BigGoronKinstone4.inc} | 3 +- .../script_BigGoronKinstone5.inc} | 3 +- .../script_BombMinishKinstone.inc} | 3 +- .../script_CarlovKinstone.inc} | 3 +- .../script_GhostBrotherKinstone.inc} | 3 +- .../script_GormanFirstAppearance.inc | 24 + .../script_Goron1Kinstone2.inc} | 3 +- .../kinstoneFusion/script_Goron1Kinstone3.inc | 18 + .../kinstoneFusion/script_Goron1Kinstone4.inc | 18 + .../kinstoneFusion/script_Goron1Kinstone5.inc | 18 + .../kinstoneFusion/script_Goron1Kinstone6.inc | 18 + .../script_Goron2Kinstone2.inc} | 3 +- .../script_Goron2Kinstone3.inc} | 20 +- .../script_Goron2Kinstone4.inc} | 20 +- .../script_Goron2Kinstone5.inc} | 20 +- .../script_Goron2Kinstone6.inc} | 20 +- .../script_Goron3Kinstone3.inc} | 3 +- .../script_Goron4Kinstone4.inc} | 3 +- .../script_Goron5Kinstone5.inc} | 3 +- .../script_Goron6Kindstone6.inc} | 3 +- .../script_GoronKinstone.inc} | 3 +- .../script_GoronMerchantArriving.inc} | 3 +- .../script_MutohKinstone.inc} | 3 +- .../script_ObjectB3KinstoneSpark.inc} | 3 +- ...cript_ObjectB3KinstoneSparkFromBottom.inc} | 3 +- .../script_ObjectB3KinstoneSparkGoron.inc} | 4 +- ...pt_ObjectB3KinstoneSparkGoronMerchang.inc} | 4 +- .../script_StampKinstone.inc} | 3 +- .../script_SyrupKinstone.inc} | 3 +- .../script_EzloTalkOcarina.inc} | 3 +- .../lakeHylia/script_ForestMinish3.inc | 20 + .../script_KingGustafHologram.inc} | 26 +- .../script_Object69AfterToD.inc} | 3 +- .../script_PlayerAfterToD.inc} | 3 +- .../script_ShopwellsDog.inc} | 3 +- .../scripts/lonLonRanch/scriptMalonInside.inc | 21 + .../lonLonRanch/script_GoronPunching.inc | 42 + .../script_LonLonRanchDoor.inc} | 3 +- .../script_MalonLostKey.inc} | 3 +- .../script_PlayerGiveKey.inc} | 3 +- .../script_TalonGotKey.inc} | 5 +- .../lonLonRanch/script_TalonInside.inc | 37 + .../lonLonRanch/script_TalonInside2.inc | 18 + .../script_TalonLostKey.inc} | 3 +- .../script_08012C98.inc} | 20 +- .../{ => minishWoods}/script_08012D18.inc | 3 +- .../script_BombMinish.inc} | 5 +- .../script_EzloTalkDWS.inc} | 3 +- .../script_EzloTalkMinishPortal.inc} | 9 +- data/scripts/minishWoods/script_Festari.inc | 93 ++ .../minishWoods/script_ForestMinish10.inc | 148 +++ .../minishWoods/script_ForestMinish4.inc | 22 + data/scripts/minishWoods/script_Gentari.inc | 99 ++ .../minishWoods/script_Object69PotionBlue.inc | 30 + .../minishWoods/script_Object69PotionRed.inc | 36 + .../script_PlayerAtBombMinish.inc} | 3 +- .../script_PlayerAtFestari.inc} | 3 +- .../script_PlayerAtGentari.inc} | 3 +- .../script_PlayerAtMadderpillar.inc} | 4 +- data/scripts/minishWoods/script_Syrup.inc | 60 + data/scripts/mtCrenel/script_CrenelHermit.inc | 19 + .../script_EzloTalkCoF.inc} | 3 +- .../script_GreatFairyBombs.inc} | 32 +- data/scripts/mtCrenel/script_Melari.inc | 117 ++ data/scripts/mtCrenel/script_MelariInRoom.inc | 24 + .../mtCrenel/script_MountainMinish1.inc | 21 + .../mtCrenel/script_MountainMinish2.inc | 14 + .../mtCrenel/script_MountainMinish3.inc | 47 + .../mtCrenel/script_MountainMinish4.inc | 45 + .../script_MountainMinish5.inc} | 69 +- .../script_Object6ABrokenSword.inc} | 11 +- .../script_Object6ARepairedSword.inc} | 3 +- .../script_PlayerAtMelari.inc} | 3 +- .../script_PlayerAtMountainMinishExit.inc} | 3 +- .../script_PlayerGetWhiteSword.inc} | 3 +- .../script_PlayerPlaceBrokenSword.inc} | 3 +- .../script_CarpenterOutsideTown.inc | 26 + .../script_GuardNorthHyruleField.inc | 20 + .../script_MutohOutsideTown.inc | 21 + .../script_Object69FixBridge.inc} | 3 +- data/scripts/{ => npc}/script_08012C48.inc | 1 + data/scripts/npc/script_BladeBrothers.inc | 102 ++ .../script_Farmer.inc} | 22 +- data/scripts/npc/script_ForestMinish12.inc | 10 + data/scripts/npc/script_ForestMinish13.inc | 14 + data/scripts/npc/script_ForestMinish14.inc | 14 + data/scripts/npc/script_ForestMinish15.inc | 13 + data/scripts/npc/script_ForestMinish16.inc | 15 + data/scripts/npc/script_ForestMinish17.inc | 17 + data/scripts/npc/script_ForestMinish18.inc | 39 + data/scripts/npc/script_ForestMinish19.inc | 41 + data/scripts/npc/script_ForestMinish20.inc | 39 + data/scripts/npc/script_ForestMinish21.inc | 11 + data/scripts/npc/script_MysteriousWall.inc | 25 + .../script_PlayerAtBladeBrothers.inc} | 3 +- .../scripts/npc/script_PlayerAtGreatFairy.inc | 25 + data/scripts/npc/script_TingleSiblings.inc | 53 + .../script_Windcrest.inc} | 3 +- .../{ => sanctuary}/script_08013F94.inc | 1 + .../script_NPC4EPreventPlayerLeave.inc} | 5 +- .../script_Npc4EFinalSwordRumble.inc} | 3 +- .../script_Npc4ELookAtPictureAgain.inc} | 16 +- .../script_Npc4EPedestal.inc} | 25 +- .../script_Npc4EPreventPlayerLeaving.inc} | 5 +- .../script_Npc4ESanctuaryIntro.inc} | 3 +- .../script_Npc4ESecondSanctuary.inc} | 27 +- .../script_Npc4ESpawnTextBoard.inc} | 5 +- .../script_Npc4EThirdSanctuary.inc} | 31 +- .../script_Object6AEarthElement.inc} | 3 +- .../script_Object6AEarthElementFloating.inc} | 3 +- .../script_Object6AFireElement.inc} | 3 +- .../script_Object6AFireElementFloating.inc} | 3 +- .../script_Object6ASword2.inc} | 3 +- .../script_Object6ASword3.inc} | 3 +- .../script_Object6ASwordChange1.inc} | 3 +- .../script_Object6ASwordCharge10.inc} | 3 +- .../script_Object6ASwordCharge11.inc | 11 + .../script_Object6ASwordCharge2.inc} | 3 +- .../script_Object6ASwordCharge3.inc} | 3 +- .../script_Object6ASwordCharge4.inc} | 3 +- .../script_Object6ASwordCharge5.inc} | 3 +- .../script_Object6ASwordCharge6.inc} | 3 +- .../script_Object6ASwordCharge8.inc} | 3 +- .../script_Object6ASwordCharge9.inc} | 3 +- .../script_Object6ASwordInPedestal.inc} | 3 +- .../script_Object6ATextBoard.inc} | 3 +- .../script_Object6AWaterElement.inc} | 3 +- .../script_Object6AWaterElementFloating.inc} | 3 +- .../script_Object6AWindElement.inc} | 3 +- .../script_Object6AWindElementFloating.inc} | 3 +- .../script_Objet6ASwordCharge7.inc} | 3 +- .../script_PlayerAtPedestal.inc} | 3 +- .../script_PlayerAtSanctuaryEntrance.inc} | 3 +- .../script_PlayerGetElement.inc} | 3 +- .../script_PlayerPickUpFinalSword.inc} | 5 +- .../script_PlayerPickUpSword.inc} | 3 +- .../script_PlayerSanctuary.inc} | 3 +- .../script_PlayerSanctuaryIntro.inc} | 3 +- .../script_PlayerTextBoardAppears.inc} | 3 +- data/scripts/script_08008B5C.inc | 137 -- data/scripts/script_0800903C.inc | 206 --- data/scripts/script_08009340.inc | 5 - data/scripts/script_080094FC.inc | 76 -- data/scripts/script_080095F2.inc | 83 -- data/scripts/script_08009E4E.inc | 5 - data/scripts/script_0800A7E4.inc | 104 -- data/scripts/script_0800B254.inc | 62 - data/scripts/script_0800B7C4.inc | 13 - data/scripts/script_0800B7FC.inc | 11 - data/scripts/script_0800B828.inc | 133 -- data/scripts/script_0800B9B4.inc | 84 -- data/scripts/script_0800C550.inc | 274 ---- data/scripts/script_0800CD7C.inc | 296 ----- data/scripts/script_0800D242.inc | 4 - data/scripts/script_0800D24C.inc | 4 - data/scripts/script_0800D278.inc | 113 -- data/scripts/script_0800D76C.inc | 51 - data/scripts/script_0800E0BC.inc | 355 ------ data/scripts/script_0800E5C4.inc | 7 - data/scripts/script_0800E6B0.inc | 161 --- data/scripts/script_0800EA54.inc | 360 ------ data/scripts/script_0800EFC0.inc | 92 -- data/scripts/script_0800F33C.inc | 7 - data/scripts/script_0800F354.inc | 7 - data/scripts/script_0800F36C.inc | 7 - data/scripts/script_0800F384.inc | 7 - data/scripts/script_0800F554.inc | 183 --- data/scripts/script_0800FDA0.inc | 119 -- data/scripts/script_08010264.inc | 562 --------- data/scripts/script_08011930.inc | 5 - data/scripts/script_08011940.inc | 4 - data/scripts/script_0801194C.inc | 158 --- data/scripts/script_08011C7C.inc | 622 --------- data/scripts/script_08012B18.inc | 4 - data/scripts/script_08012E88.inc | 38 - data/scripts/script_0801450C.inc | 36 - data/scripts/script_08014958.inc | 40 - data/scripts/script_080149CC.inc | 61 - data/scripts/script_08014A80.inc | 48 - data/scripts/script_08014E14.inc | 292 ----- data/scripts/script_08015384.inc | 4 - data/scripts/script_08016062.inc | 4 - data/scripts/script_0801609E.inc | 4 - data/scripts/script_080160A8.inc | 224 ---- data/scripts/script_0801637C.inc | 5 - data/scripts/script_080165D8.inc | 263 ---- .../script_BedInLinksRoom.inc} | 4 +- .../southHyruleField/script_ForestMinish2.inc | 26 + .../script_Object69LinksHouseBed.inc} | 25 +- .../script_PlayerWakeAfterRest.inc} | 3 +- .../script_SmithAtLinksHouse.inc | 18 + data/scripts/{ => unused}/script_08009E80.inc | 1 + data/scripts/unused/script_0800B828.inc | 52 + data/scripts/{ => unused}/script_0800D84C.inc | 1 + data/scripts/{ => unused}/script_0800FB2C.inc | 1 + data/scripts/{ => unused}/script_08012B24.inc | 1 + data/scripts/{ => unused}/script_08012B50.inc | 1 + data/scripts/{ => unused}/script_08012B7C.inc | 1 + data/scripts/unused/script_08012C68.inc | 19 + data/scripts/{ => unused}/script_08013D04.inc | 1 + data/scripts/{ => unused}/script_08013D44.inc | 1 + data/scripts/{ => unused}/script_08013D84.inc | 1 + data/scripts/{ => unused}/script_08013DC4.inc | 1 + data/scripts/{ => unused}/script_080155F4.inc | 1 + data/scripts/{ => unused}/script_08015A7C.inc | 1 + data/scripts/{ => unused}/script_08015AA0.inc | 1 + data/scripts/{ => unused}/script_08015F80.inc | 1 + data/scripts/{ => unused}/script_08016384.inc | 1 + data/scripts/{ => unused}/script_08016482.inc | 1 + data/scripts/{ => unused}/script_080165A4.inc | 3 +- data/scripts/unused/script_080165D8.inc | 9 + data/scripts/veilFalls/script_BigGoron1.inc | 6 + data/scripts/veilFalls/script_BigGoron2.inc | 6 + .../script_BigGoron3.inc} | 5 +- .../script_BigGoronHiding.inc} | 3 +- .../script_BigGoronMirrorShield.inc} | 16 +- .../script_BigGoronTalk.inc} | 3 +- .../script_NPC4ESourceOfTheFlow.inc} | 3 +- .../script_NPC4ESouurceOfTheFlowOpening.inc} | 3 +- .../veilFalls/script_Object3ELeftStone.inc | 5 + .../script_Object3ELeftStoneOpening.inc} | 5 +- .../veilFalls/script_Object3ERightStone.inc | 5 + .../script_Object3ERightStoneOpening.inc} | 5 +- .../script_Object6AMirrorShield.inc} | 3 +- .../veilFalls/script_Object6AVeilFallsTop.inc | 14 + .../westernWood/script_ForestMinish1.inc | 20 + .../scripts/westernWood/script_MoblinLady.inc | 22 + .../script_MoblinLadyDisguised.inc | 63 + .../westernWood/script_PercyInside.inc | 20 + .../westernWood/script_PercyOutside.inc | 20 + .../script_EzloTalkFoW.inc} | 3 +- .../windRuins/script_Npc4EReceiveOcarina.inc | 24 + .../script_Npc4EWindRuinsTextBoard.inc} | 28 +- .../script_PlayerAtTextboard.inc} | 3 +- src/enemy/mazaalMacro.c | 4 +- src/manager/managerF.c | 16 +- src/npc/npc4E.c | 8 +- src/npc/rem.c | 4 +- src/npc/stockwell.c | 4 +- src/npc/talon.c | 4 +- src/npc/windTribespeople.c | 4 +- src/object/object6A.c | 12 +- src/roomInit.c | 24 +- 643 files changed, 8481 insertions(+), 7693 deletions(-) create mode 100644 data/scripts/CreateDustFromScript.inc create mode 100644 data/scripts/castorWilds/script_CastorWildsStatueLeft.inc create mode 100644 data/scripts/castorWilds/script_CastorWildsStatueMiddle.inc create mode 100644 data/scripts/castorWilds/script_CastorWildsStatueRight.inc rename data/scripts/{script_0800B308.inc => castorWilds/script_CastorWildsStatueRock.inc} (94%) create mode 100644 data/scripts/castorWilds/script_GreatFairyRupees.inc create mode 100644 data/scripts/castorWilds/script_MalonAtRanch.inc rename data/scripts/{script_0800B200.inc => castorWilds/script_Object69.inc} (93%) create mode 100644 data/scripts/castorWilds/script_Object69DarknutFight.inc rename data/scripts/{script_0800B1C0.inc => castorWilds/script_PlayerAtDarknutFight.inc} (80%) rename data/scripts/{script_0800AFE8.inc => cloudTops/script_EzloTalkPoW.inc} (72%) create mode 100644 data/scripts/cloudTops/script_GregalHealthy.inc rename data/scripts/{script_08014B34.inc => cloudTops/script_GregalSick.inc} (52%) rename data/scripts/{script_0800D6D0.inc => cloudTops/script_HiddenWhirlwind1.inc} (87%) rename data/scripts/{script_0800D6F0.inc => cloudTops/script_HiddenWhirlwind2.inc} (87%) create mode 100644 data/scripts/cloudTops/script_Npc4EFirstCloud.inc rename data/scripts/{script_0800D698.inc => cloudTops/script_Npc4EKinstoneFused.inc} (63%) rename data/scripts/{script_0800D710.inc => cloudTops/script_Object69GreatWhirlwindRevealed.inc} (81%) rename data/scripts/{script_0800D6B4.inc => cloudTops/script_Object6AMysteriousCloud.inc} (62%) rename data/scripts/{script_08014B10.inc => cloudTops/script_PlayerAtSiroc.inc} (68%) create mode 100644 data/scripts/cloudTops/script_Siroc.inc create mode 100644 data/scripts/cloudTops/script_WindTribespeople1.inc create mode 100644 data/scripts/cloudTops/script_WindTribespeople2.inc create mode 100644 data/scripts/cloudTops/script_WindTribespeople3.inc create mode 100644 data/scripts/cloudTops/script_WindTribespeople4.inc create mode 100644 data/scripts/cloudTops/script_WindTribespeople5.inc create mode 100644 data/scripts/cloudTops/script_WindTribespeople6.inc create mode 100644 data/scripts/cloudTops/script_WindTribespeople7.inc create mode 100644 data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc create mode 100644 data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc rename data/scripts/{script_080126FC.inc => cutscene/ezlo/script_EzloCap.inc} (98%) rename data/scripts/{script_08012430.inc => cutscene/ezlo/script_Npc4EEzloCutscene.inc} (79%) rename data/scripts/{script_08012BA8.inc => cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc} (80%) rename data/scripts/{script_08012BF8.inc => cutscene/ezlo/script_Object6ARightBullyingOctorok.inc} (79%) rename data/scripts/{script_08012AB0.inc => cutscene/ezlo/script_PlayerAtFirstLookAtEzlo.inc} (63%) rename data/scripts/{script_08012AF0.inc => cutscene/ezlo/script_PlayerDefeatedOctoroks.inc} (72%) rename data/scripts/{script_08012AC8.inc => cutscene/ezlo/script_PlayerEzloBeingBullied.inc} (73%) create mode 100644 data/scripts/cutscene/ezlo/script_PlayerGetEzloCap.inc rename data/scripts/{script_08009AF8.inc => cutscene/intro/script_HouseDoorIntro.inc} (64%) rename data/scripts/{script_08009A34.inc => cutscene/intro/script_IntroCameraTarget.inc} (56%) rename data/scripts/{script_08014DCC.inc => cutscene/intro/script_Npc4EOutsideLinksHouse.inc} (79%) rename data/scripts/{script_08009918.inc => cutscene/intro/script_Object69Intro.inc} (79%) create mode 100644 data/scripts/cutscene/intro/script_Object69Intro2.inc rename data/scripts/{script_08009B30.inc => cutscene/intro/script_PlayerIntro.inc} (72%) rename data/scripts/{script_08009CFC.inc => cutscene/intro/script_PlayerMoveToSmith.inc} (88%) rename data/scripts/{script_08009950.inc => cutscene/intro/script_SmithIntro.inc} (93%) rename data/scripts/{script_08009B78.inc => cutscene/intro/script_SmithIntro2.inc} (90%) rename data/scripts/{script_080099DC.inc => cutscene/intro/script_ZeldaIntro.inc} (90%) rename data/scripts/{script_08009D6C.inc => cutscene/intro/script_ZeldaLeaveLinksHouse.inc} (83%) rename data/scripts/{script_08009A84.inc => cutscene/intro/script_ZeldaMoveToLinksHouse.inc} (76%) rename data/scripts/{script_08014CDC.inc => cutscene/intro/script_ZeldaOutsideLinksHouse.inc} (90%) rename data/scripts/{script_08009C68.inc => cutscene/intro/script_ZeldaTalkToSmith.inc} (90%) rename data/scripts/{script_08008FFC.inc => cutscene/introAssembly/script_GuardAtAssembly.inc} (84%) create mode 100644 data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc create mode 100644 data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc rename data/scripts/{script_08008D8C.inc => cutscene/introAssembly/script_Npc4EIntroAssembly.inc} (66%) rename data/scripts/{script_08008F74.inc => cutscene/introAssembly/script_PlayerEnters.inc} (86%) rename data/scripts/{script_08008FC0.inc => cutscene/introAssembly/script_PlayerGetSword.inc} (79%) rename data/scripts/{script_08009E88.inc => cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc} (84%) create mode 100644 data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc rename data/scripts/{ => cutscene/introBusinessScrub}/script_080157AC.inc (90%) rename data/scripts/{ => cutscene/introBusinessScrub}/script_08015B14.inc (78%) rename data/scripts/{ => cutscene/introBusinessScrub}/script_08015B34.inc (81%) rename data/scripts/{script_08015AC4.inc => cutscene/introBusinessScrub/script_BusinessScrubIntro.inc} (84%) rename data/scripts/{script_08015B84.inc => cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc} (68%) rename data/scripts/{script_080158F8.inc => cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc} (64%) rename data/scripts/{script_08015918.inc => cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc} (64%) rename data/scripts/{script_08015938.inc => cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc} (65%) rename data/scripts/{script_08015958.inc => cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc} (95%) rename data/scripts/{ => cutscene/introCeremony}/script_08011890.inc (81%) rename data/scripts/{script_080113AA.inc => cutscene/introCeremony/script_GuardBottomRight.inc} (90%) rename data/scripts/{script_080112C4.inc => cutscene/introCeremony/script_GuardCarryingChest.inc} (82%) rename data/scripts/{script_080115D0.inc => cutscene/introCeremony/script_GuardEntryLeft.inc} (79%) rename data/scripts/{script_08011608.inc => cutscene/introCeremony/script_GuardEntryRight.inc} (78%) rename data/scripts/{script_08011442.inc => cutscene/introCeremony/script_GuardTopLeft.inc} (93%) rename data/scripts/{script_08011508.inc => cutscene/introCeremony/script_GuardTopRight.inc} (93%) rename data/scripts/{script_08011640.inc => cutscene/introCeremony/script_KingDaltusIntroCeremony.inc} (87%) rename data/scripts/{script_08011128.inc => cutscene/introCeremony/script_MinisterPothoIntroCastle.inc} (93%) rename data/scripts/{script_08010E5A.inc => cutscene/introCeremony/script_Npc4EMonsters.inc} (95%) rename data/scripts/{script_08010F84.inc => cutscene/introCeremony/script_Npc4EVaatiAttacking.inc} (89%) create mode 100644 data/scripts/cutscene/introCeremony/script_Object6AMonsterFromChest.inc rename data/scripts/{script_0801183C.inc => cutscene/introCeremony/script_Object6ASwordInChest.inc} (81%) rename data/scripts/{script_08011098.inc => cutscene/introCeremony/script_PlayerAtIntroCeremony.inc} (72%) rename data/scripts/{script_080110E8.inc => cutscene/introCeremony/script_PlayerFainting.inc} (81%) rename data/scripts/{script_08011074.inc => cutscene/introCeremony/script_PlayerIntroCastle.inc} (71%) rename data/scripts/{script_080110BC.inc => cutscene/introCeremony/script_PlayerProtectingZelda.inc} (72%) rename data/scripts/{script_080118D4.inc => cutscene/introCeremony/script_VaatiDarkMagic.inc} (77%) rename data/scripts/{script_080116A8.inc => cutscene/introCeremony/script_VaatiIntroCeremony.inc} (94%) rename data/scripts/{script_080111CC.inc => cutscene/introCeremony/script_ZeldaIntroCastle.inc} (95%) create mode 100644 data/scripts/cutscene/introCeremony/script_ZeldaMagic.inc create mode 100644 data/scripts/cutscene/introTown/script_BeedleIntro.inc create mode 100644 data/scripts/cutscene/introTown/script_GuardIntro.inc create mode 100644 data/scripts/cutscene/introTown/script_KidIntro1.inc create mode 100644 data/scripts/cutscene/introTown/script_KidIntro2.inc create mode 100644 data/scripts/cutscene/introTown/script_KidIntro3.inc rename data/scripts/{script_08010BB4.inc => cutscene/introTown/script_Npc4EIntroCastle.inc} (86%) rename data/scripts/{script_0800F724.inc => cutscene/introTown/script_Npc4EIntroTown.inc} (87%) rename data/scripts/{script_0800FD0C.inc => cutscene/introTown/script_Object69IntroTown.inc} (84%) create mode 100644 data/scripts/cutscene/introTown/script_PercyIntro.inc create mode 100644 data/scripts/cutscene/introTown/script_PinaIntro.inc rename data/scripts/{script_0800FA54.inc => cutscene/introTown/script_PlayerIntro1.inc} (75%) rename data/scripts/{script_0800FA78.inc => cutscene/introTown/script_PlayerIntro2.inc} (73%) rename data/scripts/{script_0800FA9C.inc => cutscene/introTown/script_PlayerIntro3.inc} (73%) rename data/scripts/{script_0800FAC0.inc => cutscene/introTown/script_PlayerIntro4.inc} (73%) rename data/scripts/{script_0800FAE4.inc => cutscene/introTown/script_PlayerIntro5.inc} (85%) rename data/scripts/{script_0800FD80.inc => cutscene/introTown/script_PlayerIntroTown.inc} (70%) create mode 100644 data/scripts/cutscene/introTown/script_TownsperonIntro.inc create mode 100644 data/scripts/cutscene/introTown/script_WindtribespeopleIntro.inc rename data/scripts/{script_0800FB44.inc => cutscene/introTown/script_ZeldaIntroTown.inc} (96%) rename data/scripts/{script_0800F184.inc => cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc} (86%) rename data/scripts/{script_0800F39C.inc => cutscene/kinstones/script_KidKinstone1.inc} (92%) rename data/scripts/{script_0800F430.inc => cutscene/kinstones/script_KidKinstone2.inc} (92%) rename data/scripts/{script_0800F4C4.inc => cutscene/kinstones/script_KidKinstone3.inc} (92%) create mode 100644 data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc rename data/scripts/{script_0800F14C.inc => cutscene/kinstones/script_PlayerAtFirstKinstone.inc} (77%) create mode 100644 data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc create mode 100644 data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc create mode 100644 data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc create mode 100644 data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc rename data/scripts/{script_0800CABC.inc => cutscene/minishVillage/script_ForestMinish5.inc} (91%) rename data/scripts/{script_0800CB54.inc => cutscene/minishVillage/script_ForestMinish6.inc} (90%) rename data/scripts/{script_0800CBD4.inc => cutscene/minishVillage/script_ForestMinish7.inc} (91%) rename data/scripts/{script_0800CC6C.inc => cutscene/minishVillage/script_ForestMinish8.inc} (91%) rename data/scripts/{script_0800CD04.inc => cutscene/minishVillage/script_ForestMinish9.inc} (89%) rename data/scripts/{script_0800C91C.inc => cutscene/minishVillage/script_Object69VillageIntro.inc} (92%) rename data/scripts/{script_0800CA8C.inc => cutscene/minishVillage/script_PlayerAtVillageIntro.inc} (77%) rename data/scripts/{script_08015390.inc => cutscene/originStory/script_EzloCapExplainingOriginStory.inc} (75%) rename data/scripts/{script_0801550C.inc => cutscene/originStory/script_MinishEzlo.inc} (94%) rename data/scripts/{script_0801548E.inc => cutscene/originStory/script_Object69CameraTarget.inc} (88%) rename data/scripts/{script_080153EC.inc => cutscene/originStory/script_Object69MinishVaati.inc} (91%) create mode 100644 data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc rename data/scripts/{script_08015754.inc => cutscene/originStory/script_Object6ADarkMagic.inc} (83%) rename data/scripts/{script_08015618.inc => cutscene/originStory/script_Object6AMinishCap.inc} (86%) rename data/scripts/{script_080152B4.inc => cutscene/originStory/script_PlayerAtVaatisAppearance.inc} (68%) rename data/scripts/{script_08015338.inc => cutscene/originStory/script_PlayerDefeatedMoblins.inc} (68%) create mode 100644 data/scripts/cutscene/originStory/script_PlayerReceivedExposition.inc rename data/scripts/{script_08015360.inc => cutscene/originStory/script_PlayerSeenOriginStory.inc} (72%) create mode 100644 data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc rename data/scripts/{script_080152DC.inc => cutscene/originStory/script_PlayerTryToFollowVaati.inc} (68%) rename data/scripts/{script_08015684.inc => cutscene/originStory/script_Vaati.inc} (90%) rename data/scripts/{script_08015234.inc => cutscene/originStory/script_VaatiAppearsAgain.inc} (91%) rename data/scripts/{script_0800A590.inc => cutscene/outro/script_EzloCapOutro.inc} (87%) rename data/scripts/{script_0800A680.inc => cutscene/outro/script_EzloZeldaMagic.inc} (72%) create mode 100644 data/scripts/cutscene/outro/script_GuardStoneOutro1.inc create mode 100644 data/scripts/cutscene/outro/script_GuardStoneOutro2.inc create mode 100644 data/scripts/cutscene/outro/script_GuardStoneOutro3.inc create mode 100644 data/scripts/cutscene/outro/script_MaidStoneOutro1.inc create mode 100644 data/scripts/cutscene/outro/script_MaidStoneOutro2.inc rename data/scripts/{script_0800AD54.inc => cutscene/outro/script_MinishEzloGoodbye.inc} (83%) rename data/scripts/{script_0800A310.inc => cutscene/outro/script_MinishEzloOutro.inc} (68%) rename data/scripts/{script_0800A704.inc => cutscene/outro/script_Npc4EDHCEntrance.inc} (76%) rename data/scripts/{script_0800A6A4.inc => cutscene/outro/script_Npc4EDHCThrone.inc} (78%) rename data/scripts/{script_0800AB08.inc => cutscene/outro/script_Npc4EFixedEverything.inc} (87%) rename data/scripts/{script_0800A734.inc => cutscene/outro/script_Npc4EHyruleCastleEntrance.inc} (72%) rename data/scripts/{script_0800A6D4.inc => cutscene/outro/script_Npc4EHyruleCastleThrone.inc} (73%) rename data/scripts/{script_0800AB6E.inc => cutscene/outro/script_Npc4EMinishPortalClosing.inc} (86%) create mode 100644 data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc rename data/scripts/{script_0800A9F4.inc => cutscene/outro/script_Npc4EMtCrenel.inc} (85%) rename data/scripts/{script_0800A1D8.inc => cutscene/outro/script_Npc4EOutro.inc} (94%) rename data/scripts/{script_0800AAD8.inc => cutscene/outro/script_Npc4ESanctuaryEntrance.inc} (72%) rename data/scripts/{script_0800A764.inc => cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc} (86%) rename data/scripts/{script_0800A65C.inc => cutscene/outro/script_Object6AEzloDismounting.inc} (68%) rename data/scripts/{script_0800AF18.inc => cutscene/outro/script_Object6AEzloFinalMagic.inc} (73%) rename data/scripts/{script_0800A500.inc => cutscene/outro/script_Object6AMinishCapOutro.inc} (81%) rename data/scripts/{script_0800A964.inc => cutscene/outro/script_Object6AOctorok1.inc} (74%) rename data/scripts/{script_0800A988.inc => cutscene/outro/script_Object6AOctorok2.inc} (74%) rename data/scripts/{script_0800A9AC.inc => cutscene/outro/script_Object6AOctorok3.inc} (74%) rename data/scripts/{script_0800A9D0.inc => cutscene/outro/script_Object6AOctorok4.inc} (74%) rename data/scripts/{script_0800AA48.inc => cutscene/outro/script_Object6ATektite1.inc} (74%) rename data/scripts/{script_0800AA6C.inc => cutscene/outro/script_Object6ATektite2.inc} (74%) rename data/scripts/{script_0800AA90.inc => cutscene/outro/script_Object6ATektite3.inc} (74%) rename data/scripts/{script_0800AAB4.inc => cutscene/outro/script_Object6ATektite4.inc} (74%) rename data/scripts/{script_0800AEDC.inc => cutscene/outro/script_Object6ATheLittleHat.inc} (79%) rename data/scripts/{script_0800A638.inc => cutscene/outro/script_Object6AZeldaMagic.inc} (73%) rename data/scripts/{script_0800ACBC.inc => cutscene/outro/script_PlayerAtEzlo.inc} (73%) rename data/scripts/{script_08015304.inc => cutscene/outro/script_PlayerAtOutro.inc} (74%) rename data/scripts/{script_0800ACE0.inc => cutscene/outro/script_PlayerGetGreenCap.inc} (87%) create mode 100644 data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc rename data/scripts/{script_0800AEA4.inc => cutscene/outro/script_ZeldaGoodbye.inc} (81%) rename data/scripts/{script_0800A3D8.inc => cutscene/outro/script_ZeldaOutro.inc} (89%) rename data/scripts/{ => cutscene/reveal}/script_08013494.inc (80%) rename data/scripts/{script_080133C4.inc => cutscene/reveal/script_FakeKingDaltus.inc} (80%) rename data/scripts/{script_0801319A.inc => cutscene/reveal/script_Object3EPictureBackRoom.inc} (78%) rename data/scripts/{script_080132E4.inc => cutscene/reveal/script_PlayerAtPicture.inc} (73%) rename data/scripts/{script_0801334C.inc => cutscene/reveal/script_PlayerDistanceFromVaati.inc} (73%) rename data/scripts/{script_08013378.inc => cutscene/reveal/script_PlayerFaintAgain.inc} (79%) rename data/scripts/{script_0801330C.inc => cutscene/reveal/script_PlayerMoveToPicture.inc} (68%) rename data/scripts/{script_080133F8.inc => cutscene/reveal/script_VaatiSanctuary.inc} (93%) rename data/scripts/{script_08015F3C.inc => cutscene/takeover/script_GuardTakeover.inc} (84%) rename data/scripts/{script_08015DF0.inc => cutscene/takeover/script_KingDaltusTakeover.inc} (88%) rename data/scripts/{script_08015F08.inc => cutscene/takeover/script_MinisterPothoTakeover.inc} (78%) rename data/scripts/{script_08015BE8.inc => cutscene/takeover/script_Object69Takeover.inc} (87%) rename data/scripts/{script_08015CD4.inc => cutscene/takeover/script_Object69TakeoverCutscene.inc} (93%) rename data/scripts/{script_08015C7C.inc => cutscene/takeover/script_PlayerAtTakeover.inc} (85%) rename data/scripts/{script_08015E58.inc => cutscene/takeover/script_VaatiTakeover.inc} (93%) rename data/scripts/{script_08015FA4.inc => cutscene/takeover/script_ZeldaStoneTakeover.inc} (68%) create mode 100644 data/scripts/dhc/script_GuardCellLeft.inc create mode 100644 data/scripts/dhc/script_GuardCellRight.inc create mode 100644 data/scripts/dhc/script_GuardStone1.inc create mode 100644 data/scripts/dhc/script_GuardStone2.inc create mode 100644 data/scripts/dhc/script_KingDaltusStone.inc create mode 100644 data/scripts/dhc/script_MinishterPothoStone.inc create mode 100644 data/scripts/dhc/script_MinisterPothoCell.inc rename data/scripts/{script_0800DB78.inc => dhc/script_Npc4EAfterDefeatingV2.inc} (84%) rename data/scripts/{script_0800DC4C.inc => dhc/script_Npc4ECastleCollapsing.inc} (70%) rename data/scripts/{script_0800A0FC.inc => dhc/script_Npc4EV3Defeated.inc} (80%) create mode 100644 data/scripts/dhc/script_Object69BallAndChainSoldierRoom.inc rename data/scripts/{script_0800DE78.inc => dhc/script_Object69CastleEscape.inc} (62%) create mode 100644 data/scripts/dhc/script_Object69DHC.inc rename data/scripts/{script_0800E544.inc => dhc/script_Object69DarkNutsRoom.inc} (80%) rename data/scripts/{script_0800E504.inc => dhc/script_Object69KeatonsRoom.inc} (79%) rename data/scripts/{script_0800E5D6.inc => dhc/script_Object69KillDarkNut.inc} (74%) rename data/scripts/{script_0800DFB4.inc => dhc/script_Object69V1Defeated.inc} (78%) rename data/scripts/{script_0800E050.inc => dhc/script_Object69V2Defeated.inc} (71%) rename data/scripts/{script_0800DFE4.inc => dhc/script_Object69V2Intro.inc} (89%) rename data/scripts/{script_0800DA60.inc => dhc/script_Object69VaatiWithZelda.inc} (92%) rename data/scripts/{script_0800A160.inc => dhc/script_Object6AV3DefeatedMinishCap.inc} (70%) rename data/scripts/{script_0800A1B4.inc => dhc/script_Object6AV3DefeatedMinishCap2.inc} (68%) rename data/scripts/{script_0800DE00.inc => dhc/script_PlayerAfterDefeatingV2.inc} (74%) rename data/scripts/{script_0800E600.inc => dhc/script_PlayerAtDarkNut1.inc} (72%) rename data/scripts/{script_0800E62C.inc => dhc/script_PlayerAtDarkNut2.inc} (76%) rename data/scripts/{script_0800E658.inc => dhc/script_PlayerAtDarkNut3.inc} (73%) rename data/scripts/{script_0800DE2C.inc => dhc/script_PlayerCastleCollapsing.inc} (69%) rename data/scripts/{script_0800DEB0.inc => dhc/script_PlayerCastleEscape.inc} (64%) rename data/scripts/{script_0800DDD0.inc => dhc/script_PlayerRescuedZelda.inc} (72%) rename data/scripts/{script_0800DE50.inc => dhc/script_PlayerStonesFall.inc} (66%) rename data/scripts/{script_0800E094.inc => dhc/script_PlayerV2Defeated.inc} (75%) rename data/scripts/{script_0800DF24.inc => dhc/script_Vaati1Intro.inc} (92%) rename data/scripts/{script_0800DB28.inc => dhc/script_VaatiWithZelda.inc} (86%) rename data/scripts/{script_0800DCAC.inc => dhc/script_ZeldaAfterDefeatingV2.inc} (94%) rename data/scripts/{script_0800DED4.inc => dhc/script_ZeldaCastleEscape.inc} (82%) rename data/scripts/{script_0800E58C.inc => dhc/script_ZeldaStoneDHC.inc} (77%) rename data/scripts/{script_0800DB18.inc => dhc/script_ZeldaStoneInDHC.inc} (59%) rename data/scripts/{script_08012E20.inc => fow/script_MazaalMacroDefeated.inc} (53%) rename data/scripts/{script_08012DD8.inc => fow/script_Object89Mazaal.inc} (57%) rename data/scripts/{script_08012DF8.inc => fow/script_PlayerAtMazaal.inc} (76%) rename data/scripts/{script_08012E44.inc => fow/script_PlayerDefeatedMazaal.inc} (79%) create mode 100644 data/scripts/graveyard/script_DampeInside.inc create mode 100644 data/scripts/graveyard/script_DampeInside2.inc create mode 100644 data/scripts/graveyard/script_DampeOuside.inc create mode 100644 data/scripts/graveyard/script_GhostBrothers.inc create mode 100644 data/scripts/graveyard/script_Gina.inc create mode 100644 data/scripts/graveyard/script_GraveyardHouseDoor.inc rename data/scripts/{script_0800B5EC.inc => graveyard/script_GreatFairyArrows.inc} (72%) rename data/scripts/{script_0800D954.inc => graveyard/script_KingGustav.inc} (89%) rename data/scripts/{script_08009740.inc => graveyard/script_Object69CrowStealingKey.inc} (53%) rename data/scripts/{script_080098D4.inc => graveyard/script_Object69GetKeyBack.inc} (89%) rename data/scripts/{script_0800DA28.inc => graveyard/script_Object6AKingsGravestone.inc} (71%) rename data/scripts/{script_080097F0.inc => graveyard/script_Object97FirstCrow.inc} (74%) rename data/scripts/{script_08009838.inc => graveyard/script_Object97SecondCrow.inc} (72%) rename data/scripts/{script_08009704.inc => graveyard/script_PlayerAtGraveyardHouseDoor.inc} (78%) rename data/scripts/{script_0800DA00.inc => graveyard/script_PlayerAtKingGustav.inc} (72%) rename data/scripts/{script_0800987C.inc => graveyard/script_PlayerGetKeyStolen.inc} (84%) create mode 100644 data/scripts/hyruleCastle/script_CastleMaid.inc create mode 100644 data/scripts/hyruleCastle/script_GuardAtEntry.inc create mode 100644 data/scripts/hyruleCastle/script_KingDaltus.inc create mode 100644 data/scripts/hyruleCastle/script_MinisterPotho.inc rename data/scripts/{script_08012D70.inc => hyruleCastle/script_Object69SanctuaryEntrance.inc} (69%) create mode 100644 data/scripts/hyruleCastle/script_SmithAtCastle.inc create mode 100644 data/scripts/hyruleCastle/script_StoneZelda.inc create mode 100644 data/scripts/hyruleCastleGarden/script_GardGarden5.inc create mode 100644 data/scripts/hyruleCastleGarden/script_GuardEntry1.inc create mode 100644 data/scripts/hyruleCastleGarden/script_GuardEntry2.inc create mode 100644 data/scripts/hyruleCastleGarden/script_GuardEntry3.inc create mode 100644 data/scripts/hyruleCastleGarden/script_GuardGarden1.inc create mode 100644 data/scripts/hyruleCastleGarden/script_GuardGarden2.inc create mode 100644 data/scripts/hyruleCastleGarden/script_GuardGarden3.inc create mode 100644 data/scripts/hyruleCastleGarden/script_GuardGarden4.inc create mode 100644 data/scripts/hyruleCastleGarden/script_GuardGarden6.inc create mode 100644 data/scripts/hyruleCastleGarden/script_GuardGarden7.inc rename data/scripts/{script_08011B20.inc => hyruleCastleGarden/script_GuardGarden8.inc} (68%) rename data/scripts/{script_080100C8.inc => hyruleTown/script_Anju.inc} (63%) create mode 100644 data/scripts/hyruleTown/script_AnjuInside.inc rename data/scripts/{script_08009EF0.inc => hyruleTown/script_BedAtSimons.inc} (65%) create mode 100644 data/scripts/hyruleTown/script_Beedle.inc create mode 100644 data/scripts/hyruleTown/script_Brocco.inc create mode 100644 data/scripts/hyruleTown/script_CafeGuy.inc rename data/scripts/{script_08014450.inc => hyruleTown/script_Carlov.inc} (96%) rename data/scripts/{script_080145E8.inc => hyruleTown/script_Carlov2.inc} (76%) create mode 100644 data/scripts/hyruleTown/script_CarlovChest.inc rename data/scripts/{script_08014804.inc => hyruleTown/script_CarlovGame.inc} (66%) create mode 100644 data/scripts/hyruleTown/script_CarlovWon.inc create mode 100644 data/scripts/hyruleTown/script_Carpenter.inc create mode 100644 data/scripts/hyruleTown/script_CatPerson.inc create mode 100644 data/scripts/hyruleTown/script_CatPersonTalkingToDogPerson.inc create mode 100644 data/scripts/hyruleTown/script_Din.inc create mode 100644 data/scripts/hyruleTown/script_Din2.inc create mode 100644 data/scripts/hyruleTown/script_DinAlone.inc create mode 100644 data/scripts/hyruleTown/script_DinMovedIn.inc create mode 100644 data/scripts/hyruleTown/script_DogPersonInCatHouse.inc create mode 100644 data/scripts/hyruleTown/script_DrLeft.inc rename data/scripts/{script_0800EF40.inc => hyruleTown/script_DrLeftDoor.inc} (83%) create mode 100644 data/scripts/hyruleTown/script_Emma.inc create mode 100644 data/scripts/hyruleTown/script_EmmaNotEnoughRupees.inc create mode 100644 data/scripts/hyruleTown/script_Farore.inc create mode 100644 data/scripts/hyruleTown/script_Farore2.inc create mode 100644 data/scripts/hyruleTown/script_FaroreAlone.inc create mode 100644 data/scripts/hyruleTown/script_FaroreMovedIn.inc create mode 100644 data/scripts/hyruleTown/script_FirstHouseDoor.inc create mode 100644 data/scripts/hyruleTown/script_ForestMinish11.inc create mode 100644 data/scripts/hyruleTown/script_Ghost.inc create mode 100644 data/scripts/hyruleTown/script_GormanCats.inc create mode 100644 data/scripts/hyruleTown/script_GormanFirstHouse.inc create mode 100644 data/scripts/hyruleTown/script_GormanSecondHouse.inc create mode 100644 data/scripts/hyruleTown/script_GoronMerchant.inc rename data/scripts/{script_0800FF18.inc => hyruleTown/script_GuardEast.inc} (90%) create mode 100644 data/scripts/hyruleTown/script_GuardLibrary.inc create mode 100644 data/scripts/hyruleTown/script_GuardNorth.inc create mode 100644 data/scripts/hyruleTown/script_GuardPatrolling.inc rename data/scripts/{script_0800FF74.inc => hyruleTown/script_GuardWest.inc} (98%) create mode 100644 data/scripts/hyruleTown/script_HurdyGurdyMan.inc create mode 100644 data/scripts/hyruleTown/script_InnDoor.inc create mode 100644 data/scripts/hyruleTown/script_Kid1.inc create mode 100644 data/scripts/hyruleTown/script_Kid2.inc create mode 100644 data/scripts/hyruleTown/script_Kid3.inc create mode 100644 data/scripts/hyruleTown/script_Kid4.inc create mode 100644 data/scripts/hyruleTown/script_Kid5.inc create mode 100644 data/scripts/hyruleTown/script_Kid6.inc create mode 100644 data/scripts/hyruleTown/script_Kid7.inc create mode 100644 data/scripts/hyruleTown/script_KidInn.inc rename data/scripts/{script_0800E908.inc => hyruleTown/script_Librari.inc} (51%) create mode 100644 data/scripts/hyruleTown/script_LibrariLater.inc create mode 100644 data/scripts/hyruleTown/script_LibrarianLeft.inc create mode 100644 data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc create mode 100644 data/scripts/hyruleTown/script_LibrarianRight.inc create mode 100644 data/scripts/hyruleTown/script_LibraryVisitor.inc create mode 100644 data/scripts/hyruleTown/script_MaidTown.inc create mode 100644 data/scripts/hyruleTown/script_MalonHyruleTown.inc create mode 100644 data/scripts/hyruleTown/script_Mama.inc create mode 100644 data/scripts/hyruleTown/script_Marcy.inc create mode 100644 data/scripts/hyruleTown/script_Mayor.inc create mode 100644 data/scripts/hyruleTown/script_MutohInMill.inc create mode 100644 data/scripts/hyruleTown/script_Nayru.inc create mode 100644 data/scripts/hyruleTown/script_Nayru2.inc create mode 100644 data/scripts/hyruleTown/script_NayruAlone.inc create mode 100644 data/scripts/hyruleTown/script_NayruMovedIn.inc rename data/scripts/{script_08008D50.inc => hyruleTown/script_Object69AllBooksCollected.inc} (78%) create mode 100644 data/scripts/hyruleTown/script_Object69Rem.inc create mode 100644 data/scripts/hyruleTown/script_Object69SimonsSimulation.inc rename data/scripts/{script_080145B0.inc => hyruleTown/script_Object6ACarlov.inc} (86%) create mode 100644 data/scripts/hyruleTown/script_Object6ACarlov2.inc create mode 100644 data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc create mode 100644 data/scripts/hyruleTown/script_OldLadyCatHouse1.inc create mode 100644 data/scripts/hyruleTown/script_OldLadyCatHouse2.inc create mode 100644 data/scripts/hyruleTown/script_Phonograph.inc rename data/scripts/{script_08010964.inc => hyruleTown/script_PhonographDoor.inc} (53%) create mode 100644 data/scripts/hyruleTown/script_Pina.inc create mode 100644 data/scripts/hyruleTown/script_Pita.inc rename data/scripts/{script_0800EA1C.inc => hyruleTown/script_PlayerActivatedTrapCard.inc} (76%) rename data/scripts/{script_080147DC.inc => hyruleTown/script_PlayerAtCarlov.inc} (77%) rename data/scripts/{script_0800EF9C.inc => hyruleTown/script_PlayerAtDrLeftDoor.inc} (71%) rename data/scripts/{script_080109F0.inc => hyruleTown/script_PlayerAtInnDoor.inc} (69%) rename data/scripts/{script_080130E4.inc => hyruleTown/script_PlayerAtRem.inc} (82%) rename data/scripts/{script_08010A38.inc => hyruleTown/script_PlayerCannotEnter.inc} (68%) rename data/scripts/{script_08010A5C.inc => hyruleTown/script_PlayerSleepingInn.inc} (81%) rename data/scripts/{script_0800E9F4.inc => hyruleTown/script_PlayerStepOnTrap.inc} (73%) rename data/scripts/{script_08011C50.inc => hyruleTown/script_PlayerWakingUpAtSimons.inc} (69%) rename data/scripts/{script_08014588.inc => hyruleTown/script_PlayerWhenLeavingCarlovAlreadyPaid.inc} (61%) rename data/scripts/{script_08010A98.inc => hyruleTown/script_Postman.inc} (64%) rename data/scripts/{script_08012F0C.inc => hyruleTown/script_Rem.inc} (90%) rename data/scripts/{script_08012F86.inc => hyruleTown/script_RemFallingAsleep.inc} (93%) rename data/scripts/{script_08013114.inc => hyruleTown/script_RemTownMinish.inc} (79%) rename data/scripts/{script_0800E8A4.inc => hyruleTown/script_RentRegularRoom.inc} (66%) rename data/scripts/{script_0800E8D6.inc => hyruleTown/script_RentSmallRoom.inc} (67%) rename data/scripts/{script_08011B40.inc => hyruleTown/script_Simon.inc} (61%) create mode 100644 data/scripts/hyruleTown/script_SimonsDoor.inc create mode 100644 data/scripts/hyruleTown/script_SittingPerson.inc rename data/scripts/{script_08010B68.inc => hyruleTown/script_SmallTownMinish.inc} (88%) create mode 100644 data/scripts/hyruleTown/script_Stamp.inc rename data/scripts/{script_080142B0.inc => hyruleTown/script_Stockwell.inc} (95%) rename data/scripts/{script_08014384.inc => hyruleTown/script_StockwellBuy.inc} (82%) rename data/scripts/{script_080143C0.inc => hyruleTown/script_StockwellDogFood.inc} (91%) create mode 100644 data/scripts/hyruleTown/script_Sturgeon.inc create mode 100644 data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc create mode 100644 data/scripts/hyruleTown/script_Teachers.inc create mode 100644 data/scripts/hyruleTown/script_TownMinish1.inc create mode 100644 data/scripts/hyruleTown/script_TownMinish2.inc create mode 100644 data/scripts/hyruleTown/script_TownMinish3.inc create mode 100644 data/scripts/hyruleTown/script_TownMinish4.inc create mode 100644 data/scripts/hyruleTown/script_TownMinish5.inc create mode 100644 data/scripts/hyruleTown/script_TownMinish6.inc create mode 100644 data/scripts/hyruleTown/script_Townsperson1.inc create mode 100644 data/scripts/hyruleTown/script_Townsperson2.inc create mode 100644 data/scripts/hyruleTown/script_TownspersonInDogHouse.inc create mode 100644 data/scripts/hyruleTown/script_Wheaton.inc create mode 100644 data/scripts/hyruleTown/script_WindTribespeopleVisitor.inc rename data/scripts/{script_0800C350.inc => kinstoneFusion/script_BigGoronKinstone1.inc} (71%) rename data/scripts/{script_0800C3CC.inc => kinstoneFusion/script_BigGoronKinstone2.inc} (80%) rename data/scripts/{script_0800C410.inc => kinstoneFusion/script_BigGoronKinstone3.inc} (81%) rename data/scripts/{script_0800C370.inc => kinstoneFusion/script_BigGoronKinstone4.inc} (81%) rename data/scripts/{script_0800C3B0.inc => kinstoneFusion/script_BigGoronKinstone5.inc} (63%) rename data/scripts/{script_0800BB30.inc => kinstoneFusion/script_BombMinishKinstone.inc} (76%) rename data/scripts/{script_0800BBDC.inc => kinstoneFusion/script_CarlovKinstone.inc} (79%) rename data/scripts/{script_0800BC08.inc => kinstoneFusion/script_GhostBrotherKinstone.inc} (83%) create mode 100644 data/scripts/kinstoneFusion/script_GormanFirstAppearance.inc rename data/scripts/{script_0800BCE8.inc => kinstoneFusion/script_Goron1Kinstone2.inc} (89%) create mode 100644 data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc create mode 100644 data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc create mode 100644 data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc create mode 100644 data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc rename data/scripts/{script_0800BD78.inc => kinstoneFusion/script_Goron2Kinstone2.inc} (89%) rename data/scripts/{script_0800BE1C.inc => kinstoneFusion/script_Goron2Kinstone3.inc} (64%) rename data/scripts/{script_0800BF38.inc => kinstoneFusion/script_Goron2Kinstone4.inc} (68%) rename data/scripts/{script_0800C0B0.inc => kinstoneFusion/script_Goron2Kinstone5.inc} (64%) rename data/scripts/{script_0800C1D8.inc => kinstoneFusion/script_Goron2Kinstone6.inc} (68%) rename data/scripts/{script_0800BECC.inc => kinstoneFusion/script_Goron3Kinstone3.inc} (87%) rename data/scripts/{script_0800C004.inc => kinstoneFusion/script_Goron4Kinstone4.inc} (91%) rename data/scripts/{script_0800C160.inc => kinstoneFusion/script_Goron5Kinstone5.inc} (88%) rename data/scripts/{script_0800C2A4.inc => kinstoneFusion/script_Goron6Kindstone6.inc} (91%) rename data/scripts/{script_0800BC50.inc => kinstoneFusion/script_GoronKinstone.inc} (91%) rename data/scripts/{script_0800BB64.inc => kinstoneFusion/script_GoronMerchantArriving.inc} (78%) rename data/scripts/{script_0800BACC.inc => kinstoneFusion/script_MutohKinstone.inc} (79%) rename data/scripts/{script_0800C45C.inc => kinstoneFusion/script_ObjectB3KinstoneSpark.inc} (75%) rename data/scripts/{script_0800C494.inc => kinstoneFusion/script_ObjectB3KinstoneSparkFromBottom.inc} (72%) rename data/scripts/{script_0800C50C.inc => kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc} (76%) rename data/scripts/{script_0800C4D0.inc => kinstoneFusion/script_ObjectB3KinstoneSparkGoronMerchang.inc} (66%) rename data/scripts/{script_0800BBA4.inc => kinstoneFusion/script_StampKinstone.inc} (80%) rename data/scripts/{script_0800BB00.inc => kinstoneFusion/script_SyrupKinstone.inc} (80%) rename data/scripts/{script_0800B0AC.inc => lakeHylia/script_EzloTalkOcarina.inc} (69%) create mode 100644 data/scripts/lakeHylia/script_ForestMinish3.inc rename data/scripts/{script_0801232C.inc => lakeHylia/script_KingGustafHologram.inc} (65%) rename data/scripts/{script_0800AFB0.inc => lakeHylia/script_Object69AfterToD.inc} (82%) rename data/scripts/{script_08012410.inc => lakeHylia/script_PlayerAfterToD.inc} (73%) rename data/scripts/{script_0800B5C4.inc => lakeHylia/script_ShopwellsDog.inc} (78%) create mode 100644 data/scripts/lonLonRanch/scriptMalonInside.inc create mode 100644 data/scripts/lonLonRanch/script_GoronPunching.inc rename data/scripts/{script_0800B574.inc => lonLonRanch/script_LonLonRanchDoor.inc} (88%) rename data/scripts/{script_0800B4AC.inc => lonLonRanch/script_MalonLostKey.inc} (93%) rename data/scripts/{script_0800B54C.inc => lonLonRanch/script_PlayerGiveKey.inc} (73%) rename data/scripts/{script_0800B41C.inc => lonLonRanch/script_TalonGotKey.inc} (85%) create mode 100644 data/scripts/lonLonRanch/script_TalonInside.inc create mode 100644 data/scripts/lonLonRanch/script_TalonInside2.inc rename data/scripts/{script_0800B3A4.inc => lonLonRanch/script_TalonLostKey.inc} (88%) rename data/scripts/{script_08012C68.inc => minishWoods/script_08012C98.inc} (62%) rename data/scripts/{ => minishWoods}/script_08012D18.inc (87%) rename data/scripts/{script_08009F14.inc => minishWoods/script_BombMinish.inc} (95%) rename data/scripts/{script_0800AF44.inc => minishWoods/script_EzloTalkDWS.inc} (68%) rename data/scripts/{script_08012CD8.inc => minishWoods/script_EzloTalkMinishPortal.inc} (66%) create mode 100644 data/scripts/minishWoods/script_Festari.inc create mode 100644 data/scripts/minishWoods/script_ForestMinish10.inc create mode 100644 data/scripts/minishWoods/script_ForestMinish4.inc create mode 100644 data/scripts/minishWoods/script_Gentari.inc create mode 100644 data/scripts/minishWoods/script_Object69PotionBlue.inc create mode 100644 data/scripts/minishWoods/script_Object69PotionRed.inc rename data/scripts/{script_0800A088.inc => minishWoods/script_PlayerAtBombMinish.inc} (72%) rename data/scripts/{script_0800C8C8.inc => minishWoods/script_PlayerAtFestari.inc} (76%) rename data/scripts/{script_0800C8F0.inc => minishWoods/script_PlayerAtGentari.inc} (78%) rename data/scripts/{script_0800E684.inc => minishWoods/script_PlayerAtMadderpillar.inc} (64%) create mode 100644 data/scripts/minishWoods/script_Syrup.inc create mode 100644 data/scripts/mtCrenel/script_CrenelHermit.inc rename data/scripts/{script_0800AF68.inc => mtCrenel/script_EzloTalkCoF.inc} (72%) rename data/scripts/{script_0800B6C8.inc => mtCrenel/script_GreatFairyBombs.inc} (53%) create mode 100644 data/scripts/mtCrenel/script_Melari.inc create mode 100644 data/scripts/mtCrenel/script_MelariInRoom.inc create mode 100644 data/scripts/mtCrenel/script_MountainMinish1.inc create mode 100644 data/scripts/mtCrenel/script_MountainMinish2.inc create mode 100644 data/scripts/mtCrenel/script_MountainMinish3.inc create mode 100644 data/scripts/mtCrenel/script_MountainMinish4.inc rename data/scripts/{script_0800D414.inc => mtCrenel/script_MountainMinish5.inc} (59%) rename data/scripts/{script_0800D218.inc => mtCrenel/script_Object6ABrokenSword.inc} (51%) rename data/scripts/{script_0800D254.inc => mtCrenel/script_Object6ARepairedSword.inc} (71%) rename data/scripts/{script_0800D190.inc => mtCrenel/script_PlayerAtMelari.inc} (75%) rename data/scripts/{script_0800D3EC.inc => mtCrenel/script_PlayerAtMountainMinishExit.inc} (70%) rename data/scripts/{script_0800D1E0.inc => mtCrenel/script_PlayerGetWhiteSword.inc} (77%) rename data/scripts/{script_0800D1B4.inc => mtCrenel/script_PlayerPlaceBrokenSword.inc} (72%) create mode 100644 data/scripts/northHyruleField/script_CarpenterOutsideTown.inc create mode 100644 data/scripts/northHyruleField/script_GuardNorthHyruleField.inc create mode 100644 data/scripts/northHyruleField/script_MutohOutsideTown.inc rename data/scripts/{script_08015BA8.inc => northHyruleField/script_Object69FixBridge.inc} (86%) rename data/scripts/{ => npc}/script_08012C48.inc (87%) create mode 100644 data/scripts/npc/script_BladeBrothers.inc rename data/scripts/{script_0800B0D0.inc => npc/script_Farmer.inc} (67%) create mode 100644 data/scripts/npc/script_ForestMinish12.inc create mode 100644 data/scripts/npc/script_ForestMinish13.inc create mode 100644 data/scripts/npc/script_ForestMinish14.inc create mode 100644 data/scripts/npc/script_ForestMinish15.inc create mode 100644 data/scripts/npc/script_ForestMinish16.inc create mode 100644 data/scripts/npc/script_ForestMinish17.inc create mode 100644 data/scripts/npc/script_ForestMinish18.inc create mode 100644 data/scripts/npc/script_ForestMinish19.inc create mode 100644 data/scripts/npc/script_ForestMinish20.inc create mode 100644 data/scripts/npc/script_ForestMinish21.inc create mode 100644 data/scripts/npc/script_MysteriousWall.inc rename data/scripts/{script_0801635C.inc => npc/script_PlayerAtBladeBrothers.inc} (67%) create mode 100644 data/scripts/npc/script_PlayerAtGreatFairy.inc create mode 100644 data/scripts/npc/script_TingleSiblings.inc rename data/scripts/{script_0800B00C.inc => npc/script_Windcrest.inc} (95%) rename data/scripts/{ => sanctuary}/script_08013F94.inc (96%) rename data/scripts/{script_08013FE8.inc => sanctuary/script_NPC4EPreventPlayerLeave.inc} (79%) rename data/scripts/{script_08013AA6.inc => sanctuary/script_Npc4EFinalSwordRumble.inc} (87%) rename data/scripts/{script_08014248.inc => sanctuary/script_Npc4ELookAtPictureAgain.inc} (57%) rename data/scripts/{script_080134DC.inc => sanctuary/script_Npc4EPedestal.inc} (64%) rename data/scripts/{script_08013B18.inc => sanctuary/script_Npc4EPreventPlayerLeaving.inc} (73%) rename data/scripts/{script_08013CA4.inc => sanctuary/script_Npc4ESanctuaryIntro.inc} (86%) rename data/scripts/{script_08013720.inc => sanctuary/script_Npc4ESecondSanctuary.inc} (64%) rename data/scripts/{script_08013650.inc => sanctuary/script_Npc4ESpawnTextBoard.inc} (78%) rename data/scripts/{script_080138B4.inc => sanctuary/script_Npc4EThirdSanctuary.inc} (67%) rename data/scripts/{script_08013E94.inc => sanctuary/script_Object6AEarthElement.inc} (63%) rename data/scripts/{script_08013E04.inc => sanctuary/script_Object6AEarthElementFloating.inc} (65%) rename data/scripts/{script_08013EB0.inc => sanctuary/script_Object6AFireElement.inc} (63%) rename data/scripts/{script_08013E28.inc => sanctuary/script_Object6AFireElementFloating.inc} (66%) rename data/scripts/{script_08013F34.inc => sanctuary/script_Object6ASword2.inc} (75%) rename data/scripts/{script_08013F64.inc => sanctuary/script_Object6ASword3.inc} (77%) rename data/scripts/{script_08014054.inc => sanctuary/script_Object6ASwordChange1.inc} (68%) rename data/scripts/{script_08014210.inc => sanctuary/script_Object6ASwordCharge10.inc} (74%) create mode 100644 data/scripts/sanctuary/script_Object6ASwordCharge11.inc rename data/scripts/{script_08014074.inc => sanctuary/script_Object6ASwordCharge2.inc} (67%) rename data/scripts/{script_08014094.inc => sanctuary/script_Object6ASwordCharge3.inc} (67%) rename data/scripts/{script_080140B8.inc => sanctuary/script_Object6ASwordCharge4.inc} (71%) rename data/scripts/{script_080140DC.inc => sanctuary/script_Object6ASwordCharge5.inc} (77%) rename data/scripts/{script_08014118.inc => sanctuary/script_Object6ASwordCharge6.inc} (77%) rename data/scripts/{script_08014198.inc => sanctuary/script_Object6ASwordCharge8.inc} (81%) rename data/scripts/{script_080141DC.inc => sanctuary/script_Object6ASwordCharge9.inc} (74%) rename data/scripts/{script_08013F04.inc => sanctuary/script_Object6ASwordInPedestal.inc} (73%) rename data/scripts/{script_08013BE8.inc => sanctuary/script_Object6ATextBoard.inc} (94%) rename data/scripts/{script_08013ECC.inc => sanctuary/script_Object6AWaterElement.inc} (66%) rename data/scripts/{script_08013E4C.inc => sanctuary/script_Object6AWaterElementFloating.inc} (65%) rename data/scripts/{script_08013EE8.inc => sanctuary/script_Object6AWindElement.inc} (67%) rename data/scripts/{script_08013E70.inc => sanctuary/script_Object6AWindElementFloating.inc} (68%) rename data/scripts/{script_08014154.inc => sanctuary/script_Objet6ASwordCharge7.inc} (78%) rename data/scripts/{script_080136D8.inc => sanctuary/script_PlayerAtPedestal.inc} (85%) rename data/scripts/{script_08012DB0.inc => sanctuary/script_PlayerAtSanctuaryEntrance.inc} (70%) rename data/scripts/{script_0800A0B4.inc => sanctuary/script_PlayerGetElement.inc} (86%) rename data/scripts/{script_08013BA8.inc => sanctuary/script_PlayerPickUpFinalSword.inc} (59%) rename data/scripts/{script_08013B70.inc => sanctuary/script_PlayerPickUpSword.inc} (74%) rename data/scripts/{script_08010A14.inc => sanctuary/script_PlayerSanctuary.inc} (62%) rename data/scripts/{script_08013330.inc => sanctuary/script_PlayerSanctuaryIntro.inc} (61%) rename data/scripts/{script_080136B4.inc => sanctuary/script_PlayerTextBoardAppears.inc} (65%) delete mode 100644 data/scripts/script_08008B5C.inc delete mode 100644 data/scripts/script_0800903C.inc delete mode 100644 data/scripts/script_08009340.inc delete mode 100644 data/scripts/script_080094FC.inc delete mode 100644 data/scripts/script_080095F2.inc delete mode 100644 data/scripts/script_08009E4E.inc delete mode 100644 data/scripts/script_0800A7E4.inc delete mode 100644 data/scripts/script_0800B254.inc delete mode 100644 data/scripts/script_0800B7C4.inc delete mode 100644 data/scripts/script_0800B7FC.inc delete mode 100644 data/scripts/script_0800B828.inc delete mode 100644 data/scripts/script_0800B9B4.inc delete mode 100644 data/scripts/script_0800C550.inc delete mode 100644 data/scripts/script_0800CD7C.inc delete mode 100644 data/scripts/script_0800D242.inc delete mode 100644 data/scripts/script_0800D24C.inc delete mode 100644 data/scripts/script_0800D278.inc delete mode 100644 data/scripts/script_0800D76C.inc delete mode 100644 data/scripts/script_0800E0BC.inc delete mode 100644 data/scripts/script_0800E5C4.inc delete mode 100644 data/scripts/script_0800E6B0.inc delete mode 100644 data/scripts/script_0800EA54.inc delete mode 100644 data/scripts/script_0800EFC0.inc delete mode 100644 data/scripts/script_0800F33C.inc delete mode 100644 data/scripts/script_0800F354.inc delete mode 100644 data/scripts/script_0800F36C.inc delete mode 100644 data/scripts/script_0800F384.inc delete mode 100644 data/scripts/script_0800F554.inc delete mode 100644 data/scripts/script_0800FDA0.inc delete mode 100644 data/scripts/script_08010264.inc delete mode 100644 data/scripts/script_08011930.inc delete mode 100644 data/scripts/script_08011940.inc delete mode 100644 data/scripts/script_0801194C.inc delete mode 100644 data/scripts/script_08011C7C.inc delete mode 100644 data/scripts/script_08012B18.inc delete mode 100644 data/scripts/script_08012E88.inc delete mode 100644 data/scripts/script_0801450C.inc delete mode 100644 data/scripts/script_08014958.inc delete mode 100644 data/scripts/script_080149CC.inc delete mode 100644 data/scripts/script_08014A80.inc delete mode 100644 data/scripts/script_08014E14.inc delete mode 100644 data/scripts/script_08015384.inc delete mode 100644 data/scripts/script_08016062.inc delete mode 100644 data/scripts/script_0801609E.inc delete mode 100644 data/scripts/script_080160A8.inc delete mode 100644 data/scripts/script_0801637C.inc delete mode 100644 data/scripts/script_080165D8.inc rename data/scripts/{script_08009ECC.inc => southHyruleField/script_BedInLinksRoom.inc} (69%) create mode 100644 data/scripts/southHyruleField/script_ForestMinish2.inc rename data/scripts/{script_08009DB0.inc => southHyruleField/script_Object69LinksHouseBed.inc} (57%) rename data/scripts/{script_08009E58.inc => southHyruleField/script_PlayerWakeAfterRest.inc} (72%) create mode 100644 data/scripts/southHyruleField/script_SmithAtLinksHouse.inc rename data/scripts/{ => unused}/script_08009E80.inc (83%) create mode 100644 data/scripts/unused/script_0800B828.inc rename data/scripts/{ => unused}/script_0800D84C.inc (94%) rename data/scripts/{ => unused}/script_0800FB2C.inc (90%) rename data/scripts/{ => unused}/script_08012B24.inc (93%) rename data/scripts/{ => unused}/script_08012B50.inc (93%) rename data/scripts/{ => unused}/script_08012B7C.inc (93%) create mode 100644 data/scripts/unused/script_08012C68.inc rename data/scripts/{ => unused}/script_08013D04.inc (96%) rename data/scripts/{ => unused}/script_08013D44.inc (96%) rename data/scripts/{ => unused}/script_08013D84.inc (96%) rename data/scripts/{ => unused}/script_08013DC4.inc (96%) rename data/scripts/{ => unused}/script_080155F4.inc (93%) rename data/scripts/{ => unused}/script_08015A7C.inc (93%) rename data/scripts/{ => unused}/script_08015AA0.inc (93%) rename data/scripts/{ => unused}/script_08015F80.inc (93%) rename data/scripts/{ => unused}/script_08016384.inc (99%) rename data/scripts/{ => unused}/script_08016482.inc (99%) rename data/scripts/{ => unused}/script_080165A4.inc (88%) create mode 100644 data/scripts/unused/script_080165D8.inc create mode 100644 data/scripts/veilFalls/script_BigGoron1.inc create mode 100644 data/scripts/veilFalls/script_BigGoron2.inc rename data/scripts/{script_08009348.inc => veilFalls/script_BigGoron3.inc} (84%) rename data/scripts/{script_08009320.inc => veilFalls/script_BigGoronHiding.inc} (70%) rename data/scripts/{script_08009464.inc => veilFalls/script_BigGoronMirrorShield.inc} (63%) rename data/scripts/{script_0800939A.inc => veilFalls/script_BigGoronTalk.inc} (96%) rename data/scripts/{script_08015FC0.inc => veilFalls/script_NPC4ESourceOfTheFlow.inc} (82%) rename data/scripts/{script_08016004.inc => veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc} (66%) create mode 100644 data/scripts/veilFalls/script_Object3ELeftStone.inc rename data/scripts/{script_08016030.inc => veilFalls/script_Object3ELeftStoneOpening.inc} (64%) create mode 100644 data/scripts/veilFalls/script_Object3ERightStone.inc rename data/scripts/{script_0801606C.inc => veilFalls/script_Object3ERightStoneOpening.inc} (64%) rename data/scripts/{script_080094CC.inc => veilFalls/script_Object6AMirrorShield.inc} (72%) create mode 100644 data/scripts/veilFalls/script_Object6AVeilFallsTop.inc create mode 100644 data/scripts/westernWood/script_ForestMinish1.inc create mode 100644 data/scripts/westernWood/script_MoblinLady.inc create mode 100644 data/scripts/westernWood/script_MoblinLadyDisguised.inc create mode 100644 data/scripts/westernWood/script_PercyInside.inc create mode 100644 data/scripts/westernWood/script_PercyOutside.inc rename data/scripts/{script_0800AF8C.inc => windRuins/script_EzloTalkFoW.inc} (75%) create mode 100644 data/scripts/windRuins/script_Npc4EReceiveOcarina.inc rename data/scripts/{script_0800D874.inc => windRuins/script_Npc4EWindRuinsTextBoard.inc} (55%) rename data/scripts/{script_0800D92C.inc => windRuins/script_PlayerAtTextboard.inc} (72%) diff --git a/asm/bird.s b/asm/bird.s index 765e06da..6e0523bf 100644 --- a/asm/bird.s +++ b/asm/bird.s @@ -515,7 +515,7 @@ _0809D5E6: adds r4, r0, #0 cmp r4, #0 beq _0809D62E - ldr r1, _0809D668 @ =script_0800B0AC + ldr r1, _0809D668 @ =script_EzloTalkOcarina bl StartCutscene adds r1, r4, #0 adds r1, #0x84 @@ -545,7 +545,7 @@ _0809D658: .4byte gPlayerEntity _0809D65C: .4byte 0xFFF80000 _0809D660: .4byte gRoomControls _0809D664: .4byte gUnk_02034490 -_0809D668: .4byte script_0800B0AC +_0809D668: .4byte script_EzloTalkOcarina thumb_func_start sub_0809D66C sub_0809D66C: @ 0x0809D66C diff --git a/asm/businessScrubPrologue.s b/asm/businessScrubPrologue.s index f8bf3fe4..87fa6ddc 100644 --- a/asm/businessScrubPrologue.s +++ b/asm/businessScrubPrologue.s @@ -142,14 +142,14 @@ sub_08045C3C: @ 0x08045C3C bl sub_08046030 adds r0, r4, #0 bl sub_08095C48 - ldr r1, _08045CA0 @ =script_08015AC4 + ldr r1, _08045CA0 @ =script_BusinessScrubIntro adds r0, r4, #0 bl StartCutscene adds r0, r4, #0 bl sub_0807DD50 pop {r4, pc} .align 2, 0 -_08045CA0: .4byte script_08015AC4 +_08045CA0: .4byte script_BusinessScrubIntro thumb_func_start sub_08045CA4 sub_08045CA4: @ 0x08045CA4 diff --git a/asm/code_080732D0.s b/asm/code_080732D0.s index 36957a76..d2fe1f14 100644 --- a/asm/code_080732D0.s +++ b/asm/code_080732D0.s @@ -4223,16 +4223,16 @@ sub_080751E8: @ 0x080751E8 cmp r7, #0 bne _08075240 strb r7, [r3] - ldr r6, _0807523C @ =script_08009ECC + ldr r6, _0807523C @ =script_BedInLinksRoom b _08075244 .align 2, 0 _08075230: .4byte gPlayerScriptExecutionContext _08075234: .4byte gPlayerEntity _08075238: .4byte gPlayerState -_0807523C: .4byte script_08009ECC +_0807523C: .4byte script_BedInLinksRoom _08075240: strb r4, [r3] - ldr r6, _08075290 @ =script_08009EF0 + ldr r6, _08075290 @ =script_BedAtSimons _08075244: ldr r0, _08075294 @ =gPlayerState adds r0, #0x39 @@ -4270,7 +4270,7 @@ _08075270: _0807528C: pop {r4, r5, r6, r7, pc} .align 2, 0 -_08075290: .4byte script_08009EF0 +_08075290: .4byte script_BedAtSimons _08075294: .4byte gPlayerState _08075298: .4byte gPlayerEntity diff --git a/asm/fourElements.s b/asm/fourElements.s index 781da69f..f59c48cc 100644 --- a/asm/fourElements.s +++ b/asm/fourElements.s @@ -78,7 +78,7 @@ sub_080A01E0: @ 0x080A01E0 adds r0, #0x38 strb r3, [r0] _080A0246: - ldr r0, _080A028C @ =script_0800A0B4 + ldr r0, _080A028C @ =script_PlayerGetElement bl StartPlayerScript ldr r1, _080A0284 @ =gScreen adds r2, r1, #0 @@ -108,7 +108,7 @@ _080A027C: .4byte gHitbox_6 _080A0280: .4byte 0x0000FF40 _080A0284: .4byte gScreen _080A0288: .4byte 0x0000FDFF -_080A028C: .4byte script_0800A0B4 +_080A028C: .4byte script_PlayerGetElement thumb_func_start sub_080A0290 sub_080A0290: @ 0x080A0290 diff --git a/asm/mazaalBossObject.s b/asm/mazaalBossObject.s index 22ea10b6..1a02086b 100644 --- a/asm/mazaalBossObject.s +++ b/asm/mazaalBossObject.s @@ -85,7 +85,7 @@ _0809AB70: adds r1, #0x63 movs r0, #0x20 strb r0, [r1] - ldr r1, _0809ABA0 @ =script_08012DD8 + ldr r1, _0809ABA0 @ =script_Object89Mazaal adds r0, r5, #0 bl StartCutscene adds r1, r5, #0 @@ -94,7 +94,7 @@ _0809AB70: _0809AB9C: pop {r4, r5, pc} .align 2, 0 -_0809ABA0: .4byte script_08012DD8 +_0809ABA0: .4byte script_Object89Mazaal thumb_func_start sub_0809ABA4 sub_0809ABA4: @ 0x0809ABA4 diff --git a/asm/non_matching/stockwell/sub_080650CC.inc b/asm/non_matching/stockwell/sub_080650CC.inc index 961a8ac3..21f19267 100644 --- a/asm/non_matching/stockwell/sub_080650CC.inc +++ b/asm/non_matching/stockwell/sub_080650CC.inc @@ -16,12 +16,12 @@ adds r0, r5, #0 adds r0, #0x84 ldr r0, [r0] - ldr r1, _080650FC @ =script_080143C0 + ldr r1, _080650FC @ =script_StockwellDogFood bl InitScriptExecutionContext b _080651A6 .align 2, 0 _080650F8: .4byte gRoomVars -_080650FC: .4byte script_080143C0 +_080650FC: .4byte script_StockwellDogFood _08065100: adds r2, r5, #0 adds r2, #0x5a @@ -65,7 +65,7 @@ _0806513C: adds r0, r5, #0 adds r0, #0x84 ldr r0, [r0] - ldr r1, _08065174 @ =script_08014384 + ldr r1, _08065174 @ =script_StockwellBuy bl InitScriptExecutionContext _0806515E: adds r0, r7, #0 @@ -78,7 +78,7 @@ _0806515E: str r0, [r1, #0x10] b _080651A6 .align 2, 0 -_08065174: .4byte script_08014384 +_08065174: .4byte script_StockwellBuy _08065178: .4byte gMessage _0806517C: ldrb r1, [r2] diff --git a/data/const/npc/forestMinish.s b/data/const/npc/forestMinish.s index cd2fa1aa..97cf8805 100644 --- a/data/const/npc/forestMinish.s +++ b/data/const/npc/forestMinish.s @@ -8,50 +8,50 @@ gUnk_08109C98:: @ 08109C98 .incbin "forestMinish/gUnk_08109C98.bin" gUnk_08109D18:: @ 08109D18 - .4byte script_08009F14 - .4byte script_0800BB30 - .4byte script_080165F8 - .4byte script_0801660C - .4byte script_08016628 - .4byte script_08016644 - .4byte script_0801666C - .4byte script_080166B8 - .4byte script_080166FC - .4byte script_08016798 - .4byte script_08016844 - .4byte script_080168E0 - .4byte script_0800C550 - .4byte script_0800C550 - .4byte script_0800C550 - .4byte script_0800C584 - .4byte script_0800C5C8 - .4byte script_0800C550 - .4byte script_0800C550 - .4byte script_0800C550 - .4byte script_0800C550 - .4byte script_0800C550 - .4byte script_0800CD7C - .4byte script_0800C5FC - .4byte script_0800C5FC - .4byte script_0800C5FC - .4byte script_0800C5FC - .4byte script_0800C5FC - .4byte script_0800C5FC - .4byte script_0800C5FC - .4byte script_0800C5FC - .4byte script_0800C5FC - .4byte script_0800C5FC - .4byte script_0800C5FC - .4byte script_0800C5FC - .4byte script_0800C5FC - .4byte script_0800E6B0 - .4byte script_0800E6B0 - .4byte script_0800E6B0 - .4byte script_0800CABC - .4byte script_0800CB54 - .4byte script_0800CBD4 - .4byte script_0800CC6C - .4byte script_0800CD04 + .4byte script_BombMinish + .4byte script_BombMinishKinstone + .4byte script_ForestMinish12 + .4byte script_ForestMinish13 + .4byte script_ForestMinish14 + .4byte script_ForestMinish15 + .4byte script_ForestMinish16 + .4byte script_ForestMinish17 + .4byte script_ForestMinish18 + .4byte script_ForestMinish19 + .4byte script_ForestMinish20 + .4byte script_ForestMinish21 + .4byte script_ForestMinish1 + .4byte script_ForestMinish1 + .4byte script_ForestMinish1 + .4byte script_ForestMinish2 + .4byte script_ForestMinish3 + .4byte script_ForestMinish1 + .4byte script_ForestMinish1 + .4byte script_ForestMinish1 + .4byte script_ForestMinish1 + .4byte script_ForestMinish1 + .4byte script_ForestMinish10 + .4byte script_ForestMinish4 + .4byte script_ForestMinish4 + .4byte script_ForestMinish4 + .4byte script_ForestMinish4 + .4byte script_ForestMinish4 + .4byte script_ForestMinish4 + .4byte script_ForestMinish4 + .4byte script_ForestMinish4 + .4byte script_ForestMinish4 + .4byte script_ForestMinish4 + .4byte script_ForestMinish4 + .4byte script_ForestMinish4 + .4byte script_ForestMinish4 + .4byte script_ForestMinish11 + .4byte script_ForestMinish11 + .4byte script_ForestMinish11 + .4byte script_ForestMinish5 + .4byte script_ForestMinish6 + .4byte script_ForestMinish7 + .4byte script_ForestMinish8 + .4byte script_ForestMinish9 gUnk_08109DC8:: @ 08109DC8 .incbin "forestMinish/gUnk_08109DC8.bin" diff --git a/data/data_080FCAC8.s b/data/data_080FCAC8.s index 888bf0ca..bbed9369 100644 --- a/data/data_080FCAC8.s +++ b/data/data_080FCAC8.s @@ -15,27 +15,27 @@ gUnk_080FCBB4:: @ 080FCBB4 gUnk_080FCBC4:: @ 080FCBC4 .incbin "data_080FC8A4/gUnk_080FCBC4.bin" - .4byte script_08009A50 + .4byte script_IntroCameraTarget .incbin "data_080FC8A4/gUnk_080FCBC4_1.bin" - .4byte script_08009A84 + .4byte script_ZeldaMoveToLinksHouse .incbin "data_080FC8A4/gUnk_080FCBC4_2.bin" - .4byte script_08009AF8 + .4byte script_HouseDoorIntro .incbin "data_080FC8A4/gUnk_080FCBC4_3.bin" - .4byte script_08009A34 + .4byte script_Object69Intro2 .incbin "data_080FC8A4/gUnk_080FCBC4_4.bin" gUnk_080FCC14:: @ 080FCC14 .incbin "data_080FC8A4/gUnk_080FCC14.bin" - .4byte script_08009918 + .4byte script_Object69Intro .incbin "data_080FC8A4/gUnk_080FCC14_1.bin" - .4byte script_08009950 + .4byte script_SmithIntro .incbin "data_080FC8A4/gUnk_080FCC14_2.bin" - .4byte script_080099DC + .4byte script_ZeldaIntro .incbin "data_080FC8A4/gUnk_080FCC14_3.bin" gUnk_080FCC54:: @ 080FCC54 .incbin "data_080FC8A4/gUnk_080FCC54.bin" - .4byte script_08009D6C + .4byte script_ZeldaLeaveLinksHouse .incbin "data_080FC8A4/gUnk_080FCC54_1.bin" gUnk_080FCC84:: @ 080FCC84 @@ -100,13 +100,13 @@ gUnk_080FCD40:: @ 080FCD40 gUnk_080FCD84:: @ 080FCD84 .incbin "data_080FC8A4/gUnk_080FCD84.bin" - .4byte script_080153EC + .4byte script_Object69MinishVaati .incbin "data_080FC8A4/gUnk_080FCD84_1.bin" - .4byte script_0801550C + .4byte script_MinishEzlo .incbin "data_080FC8A4/gUnk_080FCD84_2.bin" - .4byte script_08015618 + .4byte script_Object6AMinishCap .incbin "data_080FC8A4/gUnk_080FCD84_3.bin" - .4byte script_08015684 + .4byte script_Vaati .incbin "data_080FC8A4/gUnk_080FCD84_4.bin" gUnk_080FCDD4:: @ 080FCDD4 @@ -116,30 +116,30 @@ gUnk_080FCDD4:: @ 080FCDD4 gUnk_080FCDE0:: @ 080FCDE0 .incbin "data_080FC8A4/gUnk_080FCDE0.bin" - .4byte script_08015CD4 + .4byte script_Object69TakeoverCutscene .incbin "data_080FC8A4/gUnk_080FCDE0_1.bin" - .4byte script_08015DF0 + .4byte script_KingDaltusTakeover .incbin "data_080FC8A4/gUnk_080FCDE0_2.bin" - .4byte script_08015E58 + .4byte script_VaatiTakeover .incbin "data_080FC8A4/gUnk_080FCDE0_3.bin" - .4byte script_08015FA4 + .4byte script_ZeldaStoneTakeover .incbin "data_080FC8A4/gUnk_080FCDE0_4.bin" gUnk_080FCE30:: @ 080FCE30 .incbin "data_080FC8A4/gUnk_080FCE30.bin" - .4byte script_08015F08 + .4byte script_MinisterPothoTakeover .incbin "data_080FC8A4/gUnk_080FCE30_1.bin" - .4byte script_08015F3C + .4byte script_GuardTakeover .incbin "data_080FC8A4/gUnk_080FCE30_2.bin" - .4byte script_08015F3C + .4byte script_GuardTakeover .incbin "data_080FC8A4/gUnk_080FCE30_3.bin" - .4byte script_08015F3C + .4byte script_GuardTakeover .incbin "data_080FC8A4/gUnk_080FCE30_4.bin" - .4byte script_08015F3C + .4byte script_GuardTakeover .incbin "data_080FC8A4/gUnk_080FCE30_5.bin" - .4byte script_08015F3C + .4byte script_GuardTakeover .incbin "data_080FC8A4/gUnk_080FCE30_6.bin" - .4byte script_08015F3C + .4byte script_GuardTakeover .incbin "data_080FC8A4/gUnk_080FCE30_7.bin" gUnk_080FCEB0:: @ 080FCEB0 @@ -149,9 +149,9 @@ gUnk_080FCEB0:: @ 080FCEB0 gUnk_080FCEBC:: @ 080FCEBC .incbin "data_080FC8A4/gUnk_080FCEBC.bin" - .4byte script_0800DB18 + .4byte script_ZeldaStoneInDHC .incbin "data_080FC8A4/gUnk_080FCEBC_1.bin" - .4byte script_0800E58C + .4byte script_ZeldaStoneDHC .incbin "data_080FC8A4/gUnk_080FCEBC_2.bin" gUnk_080FCEEC:: @ 080FCEEC diff --git a/data/data_080FEEB8.s b/data/data_080FEEB8.s index 7ed1d927..87e60885 100644 --- a/data/data_080FEEB8.s +++ b/data/data_080FEEB8.s @@ -17,11 +17,11 @@ gUnk_080FEEC8:: @ 080FEEC8 gUnk_080FEED4:: @ 080FEED4 .incbin "data_080FEEB8/gUnk_080FEED4.bin" - .4byte script_0800C350 + .4byte script_BigGoronKinstone1 .incbin "data_080FEEB8/gUnk_080FEED4_1.bin" - .4byte script_0800C3CC + .4byte script_BigGoronKinstone2 .incbin "data_080FEEB8/gUnk_080FEED4_2.bin" - .4byte script_0800C410 + .4byte script_BigGoronKinstone3 .incbin "data_080FEEB8/gUnk_080FEED4_3.bin" gUnk_080FEF34:: @ 080FEF34 @@ -35,7 +35,7 @@ gUnk_080FEF3C:: @ 080FEF3C gUnk_080FEF48:: @ 080FEF48 .incbin "data_080FEEB8/gUnk_080FEF48.bin" - .4byte script_0800BC50 + .4byte script_GoronKinstone .ifdef JP .incbin "data_080FEEB8/gUnk_080FEF48_1_JP.bin" .else @@ -52,57 +52,57 @@ gUnk_080FEF48:: @ 080FEF48 gUnk_080FEF78:: @ 080FEF78 .incbin "data_080FEEB8/gUnk_080FEF78.bin" - .4byte script_0800BCE8 + .4byte script_Goron1Kinstone2 .incbin "data_080FEEB8/gUnk_080FEF78_1.bin" - .4byte script_0800BD78 + .4byte script_Goron2Kinstone2 .incbin "data_080FEEB8/gUnk_080FEF78_2.bin" gUnk_080FEFA8:: @ 080FEFA8 .incbin "data_080FEEB8/gUnk_080FEFA8.bin" - .4byte script_0800BE1C + .4byte script_Goron1Kinstone3 .incbin "data_080FEEB8/gUnk_080FEFA8_1.bin" - .4byte script_0800BE54 + .4byte script_Goron2Kinstone3 .incbin "data_080FEEB8/gUnk_080FEFA8_2.bin" - .4byte script_0800BECC + .4byte script_Goron3Kinstone3 .incbin "data_080FEEB8/gUnk_080FEFA8_3.bin" gUnk_080FEFE8:: @ 080FEFE8 .incbin "data_080FEEB8/gUnk_080FEFE8.bin" - .4byte script_0800BF38 + .4byte script_Goron1Kinstone4 .incbin "data_080FEEB8/gUnk_080FEFE8_1.bin" - .4byte script_0800BF70 + .4byte script_Goron2Kinstone4 .incbin "data_080FEEB8/gUnk_080FEFE8_2.bin" - .4byte script_0800BF70 + .4byte script_Goron2Kinstone4 .incbin "data_080FEEB8/gUnk_080FEFE8_3.bin" - .4byte script_0800C004 + .4byte script_Goron4Kinstone4 .incbin "data_080FEEB8/gUnk_080FEFE8_4.bin" gUnk_080FF038:: @ 080FF038 .incbin "data_080FEEB8/gUnk_080FF038.bin" - .4byte script_0800C0B0 + .4byte script_Goron1Kinstone5 .incbin "data_080FEEB8/gUnk_080FF038_1.bin" - .4byte script_0800C0E8 + .4byte script_Goron2Kinstone5 .incbin "data_080FEEB8/gUnk_080FF038_2.bin" - .4byte script_0800C0E8 + .4byte script_Goron2Kinstone5 .incbin "data_080FEEB8/gUnk_080FF038_3.bin" - .4byte script_0800C0E8 + .4byte script_Goron2Kinstone5 .incbin "data_080FEEB8/gUnk_080FF038_4.bin" - .4byte script_0800C160 + .4byte script_Goron5Kinstone5 .incbin "data_080FEEB8/gUnk_080FF038_5.bin" gUnk_080FF098:: @ 080FF098 .incbin "data_080FEEB8/gUnk_080FF098.bin" - .4byte script_0800C1D8 + .4byte script_Goron1Kinstone6 .incbin "data_080FEEB8/gUnk_080FF098_1.bin" - .4byte script_0800C210 + .4byte script_Goron2Kinstone6 .incbin "data_080FEEB8/gUnk_080FF098_2.bin" - .4byte script_0800C210 + .4byte script_Goron2Kinstone6 .incbin "data_080FEEB8/gUnk_080FF098_3.bin" - .4byte script_0800C210 + .4byte script_Goron2Kinstone6 .incbin "data_080FEEB8/gUnk_080FF098_4.bin" - .4byte script_0800C210 + .4byte script_Goron2Kinstone6 .incbin "data_080FEEB8/gUnk_080FF098_5.bin" - .4byte script_0800C2A4 + .4byte script_Goron6Kindstone6 .incbin "data_080FEEB8/gUnk_080FF098_6.bin" gUnk_080FF108:: @ 080FF108 @@ -119,7 +119,7 @@ gUnk_080FF120:: @ 080FF120 gUnk_080FF128:: @ 080FF128 .incbin "data_080FEEB8/gUnk_080FF128.bin" - .4byte script_0800BB64 + .4byte script_GoronMerchantArriving .incbin "data_080FEEB8/gUnk_080FF128_1.bin" gUnk_080FF148:: @ 080FF148 @@ -129,7 +129,7 @@ gUnk_080FF148:: @ 080FF148 gUnk_080FF154:: @ 080FF154 .incbin "data_080FEEB8/gUnk_080FF154.bin" - .4byte script_0800BACC + .4byte script_MutohKinstone .incbin "data_080FEEB8/gUnk_080FF154_1.bin" gUnk_080FF174:: @ 080FF174 @@ -138,7 +138,7 @@ gUnk_080FF174:: @ 080FF174 gUnk_080FF17C:: @ 080FF17C .incbin "data_080FEEB8/gUnk_080FF17C.bin" - .4byte script_0800BC08 + .4byte script_GhostBrotherKinstone .incbin "data_080FEEB8/gUnk_080FF17C_1.bin" gUnk_080FF1CC:: @ 080FF1CC @@ -182,7 +182,7 @@ gUnk_080FF254:: @ 080FF254 gUnk_080FF264:: @ 080FF264 .incbin "data_080FEEB8/gUnk_080FF264.bin" - .4byte script_0800BBDC + .4byte script_CarlovKinstone .incbin "data_080FEEB8/gUnk_080FF264_1.bin" gUnk_080FF284:: @ 080FF284 @@ -203,7 +203,7 @@ gUnk_080FF2B8:: @ 080FF2B8 gUnk_080FF2C0:: @ 080FF2C0 .incbin "data_080FEEB8/gUnk_080FF2C0.bin" - .4byte script_0800BA78 + .4byte script_GormanFirstAppearance .incbin "data_080FEEB8/gUnk_080FF2C0_1.bin" gUnk_080FF300:: @ 080FF300 @@ -212,7 +212,7 @@ gUnk_080FF300:: @ 080FF300 gUnk_080FF308:: @ 080FF308 .incbin "data_080FEEB8/gUnk_080FF308.bin" - .4byte script_0800BB00 + .4byte script_SyrupKinstone .incbin "data_080FEEB8/gUnk_080FF308_1.bin" gUnk_080FF328:: @ 080FF328 @@ -240,13 +240,13 @@ gUnk_080FF36C:: @ 080FF36C gUnk_080FF378:: @ 080FF378 .incbin "data_080FEEB8/gUnk_080FF378.bin" - .4byte script_0800C45C + .4byte script_ObjectB3KinstoneSpark .incbin "data_080FEEB8/gUnk_080FF378_1.bin" - .4byte script_0800C494 + .4byte script_ObjectB3KinstoneSparkFromBottom .incbin "data_080FEEB8/gUnk_080FF378_2.bin" - .4byte script_0800C4D0 + .4byte script_ObjectB3KinstoneSparkGoronMerchang .incbin "data_080FEEB8/gUnk_080FF378_3.bin" - .4byte script_0800C50C + .4byte script_ObjectB3KinstoneSparkGoron .incbin "data_080FEEB8/gUnk_080FF378_4.bin" gUnk_080FF3C8:: @ 080FF3C8 @@ -271,7 +271,7 @@ gUnk_080FF3F4:: @ 080FF3F4 gUnk_080FF400:: @ 080FF400 .incbin "data_080FEEB8/gUnk_080FF400.bin" - .4byte script_0800BBA4 + .4byte script_StampKinstone .incbin "data_080FEEB8/gUnk_080FF400_1.bin" gUnk_080FF420:: @ 080FF420 diff --git a/data/map/entity_headers.s b/data/map/entity_headers.s index ed4e3308..450c0c9b 100644 --- a/data/map/entity_headers.s +++ b/data/map/entity_headers.s @@ -1911,7 +1911,7 @@ Room_MinishPaths1_MayorsCabin:: @ 080D61A0 .4byte sub_StateChange_MinishPaths1_MayorsCabin Entities_HouseInteriors1_Mayor_0:: @ 080D61C0 - npc_raw subtype=0x4b, x=0x88, y=0x60, script=script_0800EA54 + npc_raw subtype=0x4b, x=0x88, y=0x60, script=script_Mayor object_raw subtype=0x4c, x=0x7c, y=0x48, collision=1 object_raw subtype=0x4c, x=0x94, y=0x48, collision=1 ezlo_hint x=0xa, y=0x12, rx=0x3, ry=0x1, msg=0xb55, flag=0xc4 @@ -1954,11 +1954,11 @@ Room_HouseInteriors1_Mayor:: @ 080D62FC .4byte gUnk_additional_8_HouseInteriors1_Mayor Entities_HouseInteriors1_PostOffice_0:: @ 080D6320 - npc_raw subtype=0xa, x=0x48, y=0x38, script=script_08010794 + npc_raw subtype=0xa, x=0x48, y=0x38, script=script_Stamp entity_list_end gUnk_080D6340:: @ 080D6340 - npc_raw subtype=0xc, x=0x68, y=0x38, script=script_08010734 + npc_raw subtype=0xc, x=0x68, y=0x38, script=script_Marcy entity_list_end gUnk_080D6360:: @ 080D6360 @@ -2034,7 +2034,7 @@ gUnk_080D6558:: @ 080D6558 entity_list_end gUnk_080D6578:: @ 080D6578 - npc_raw subtype=0x1a, x=0x38, y=0x40, paramA=0x2, script=script_0800ED5C + npc_raw subtype=0x1a, x=0x38, y=0x40, paramA=0x2, script=script_Sturgeon entity_list_end Entities_HouseInteriors1_Library2F_1:: @ 080D6598 @@ -2085,27 +2085,27 @@ Room_HouseInteriors1_Library2F:: @ 080D66A8 .4byte gUnk_additional_a_HouseInteriors1_Library2F Entities_HouseInteriors1_Library1F_0:: @ 080D66D4 - npc_raw subtype=0x3d, x=0x128, y=0xa8, script=script_08008B5C + npc_raw subtype=0x3d, x=0x128, y=0xa8, script=script_LibrarianRight entity_list_end gUnk_additional_8_HouseInteriors1_Library1F:: @ 080D66F4 - npc_raw subtype=0x3d, x=0xa8, y=0xa8, paramA=0x1, script=script_08008B90 + npc_raw subtype=0x3d, x=0xa8, y=0xa8, paramA=0x1, script=script_LibrarianLeft entity_list_end gUnk_080D6714:: @ 080D6714 - npc_raw subtype=0x6, x=0x38, y=0x40, paramB=0x400, script=script_08008D8C + npc_raw subtype=0x6, x=0x38, y=0x40, paramB=0x400, script=script_LibraryVisitor entity_list_end gUnk_additional_9_HouseInteriors1_Library1F:: @ 080D6734 - npc_raw subtype=0x3d, x=0xa8, y=0xa8, paramA=0x1, script=script_08008BC0 + npc_raw subtype=0x3d, x=0xa8, y=0xa8, paramA=0x1, script=script_LibrarianLeftWithQuest object_raw subtype=0x8c, x=0x98, y=0x90, collision=1, paramB=0x3 object_raw subtype=0x8c, x=0xac, y=0x90, collision=1, paramA=0x1, paramB=0x3 object_raw subtype=0x8c, x=0xc0, y=0x90, collision=1, paramA=0x2, paramB=0x3 entity_list_end gUnk_080D6784:: @ 080D6784 - object_raw subtype=0x69, unknown=0x4f, paramC=script_08008D50 - npc_raw subtype=0x1a, x=0x68, y=0x18, paramA=0x1, script=script_08008C64 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69AllBooksCollected + npc_raw subtype=0x1a, x=0x68, y=0x18, paramA=0x1, script=script_SturgeonAllBooksCollected entity_list_end Entities_HouseInteriors1_Library1F_1:: @ 080D67B4 @@ -2146,13 +2146,13 @@ Room_HouseInteriors1_Library1F:: @ 080D68CC .4byte gUnk_additional_9_HouseInteriors1_Library1F Entities_HouseInteriors1_Inn1F_0:: @ 080D68F4 - npc_raw subtype=0x47, x=0x40, y=0x38, script=script_0800E824 - npc_raw subtype=0x6, x=0xb8, y=0x48, paramA=0x9, paramB=0x400, script=script_080100FC + npc_raw subtype=0x47, x=0x40, y=0x38, script=script_Emma + npc_raw subtype=0x6, x=0xb8, y=0x48, paramA=0x9, paramB=0x400, script=script_Townsperson2 entity_list_end gUnk_080D6924:: @ 080D6924 - npc_raw subtype=0x7, x=0xe8, y=0x38, paramA=0x7, paramB=0x400, script=script_080103B0 - npc_raw subtype=0x7, x=0xe8, y=0x68, paramA=0x8, paramB=0x400, script=script_080103B0 + npc_raw subtype=0x7, x=0xe8, y=0x38, paramA=0x7, paramB=0x400, script=script_Kid4 + npc_raw subtype=0x7, x=0xe8, y=0x68, paramA=0x8, paramB=0x400, script=script_Kid4 entity_list_end Entities_HouseInteriors1_Inn1F_1:: @ 080D6954 @@ -2292,36 +2292,36 @@ Entities_HouseInteriors1_InnWest2F_0:: @ 080D6BE4 entity_list_end UpperInn_Oracles:: @ 080D6BF4 - npc_raw subtype=0x17, x=0x70, y=0x48, script=script_08011C7C - npc_raw subtype=0x18, x=0x88, y=0x48, script=script_08011D28 - npc_raw subtype=0x19, x=0xa0, y=0x48, script=script_08011DD4 + npc_raw subtype=0x17, x=0x70, y=0x48, script=script_Din + npc_raw subtype=0x18, x=0x88, y=0x48, script=script_Nayru + npc_raw subtype=0x19, x=0xa0, y=0x48, script=script_Farore entity_list_end UpperInn_NoFarore:: @ 080D6C34 - npc_raw subtype=0x17, x=0x7c, y=0x48, script=script_08011E80 - npc_raw subtype=0x18, x=0x94, y=0x48, script=script_08011F0C + npc_raw subtype=0x17, x=0x7c, y=0x48, script=script_Din2 + npc_raw subtype=0x18, x=0x94, y=0x48, script=script_Nayru2 entity_list_end UpperInn_NoDin:: @ 080D6C64 - npc_raw subtype=0x18, x=0x7c, y=0x48, script=script_08011F0C - npc_raw subtype=0x19, x=0x94, y=0x48, script=script_08011F98 + npc_raw subtype=0x18, x=0x7c, y=0x48, script=script_Nayru2 + npc_raw subtype=0x19, x=0x94, y=0x48, script=script_Farore2 entity_list_end UpperInn_NoNayru:: @ 080D6C94 - npc_raw subtype=0x17, x=0x7c, y=0x48, script=script_08011E80 - npc_raw subtype=0x19, x=0x94, y=0x48, script=script_08011F98 + npc_raw subtype=0x17, x=0x7c, y=0x48, script=script_Din2 + npc_raw subtype=0x19, x=0x94, y=0x48, script=script_Farore2 entity_list_end UpperInn_Din:: @ 080D6CC4 - npc_raw subtype=0x17, x=0x88, y=0x48, script=script_080121C8 + npc_raw subtype=0x17, x=0x88, y=0x48, script=script_DinAlone entity_list_end UpperInn_Nayru:: @ 080D6CE4 - npc_raw subtype=0x18, x=0x88, y=0x48, script=script_08012200 + npc_raw subtype=0x18, x=0x88, y=0x48, script=script_NayruAlone entity_list_end UpperInn_Farore:: @ 080D6D04 - npc_raw subtype=0x19, x=0x88, y=0x48, script=script_08012238 + npc_raw subtype=0x19, x=0x88, y=0x48, script=script_FaroreAlone entity_list_end Entities_HouseInteriors1_InnWest2F_1:: @ 080D6D24 @@ -2353,14 +2353,14 @@ Entities_HouseInteriors1_InnEast2F_0:: @ 080D6DBC entity_list_end gUnk_additional_8_HouseInteriors1_InnEast2F:: @ 080D6DDC - delayed_entity_raw subtype=0x13, x=0x76, y=0xc0, layer=1, paramA=0x1, paramB=0x2, paramC=script_0800ED04, conditions=0x3f8 - delayed_entity_raw subtype=0x7, x=0x68, y=0x98, layer=1, paramC=script_080103B0, paramD=0x4, conditions=0x300 - delayed_entity_raw subtype=0x7, x=0x48, y=0x98, layer=1, paramA=0x6, paramC=script_080103B0, paramD=0x4, conditions=0x300 - delayed_entity_raw subtype=0x7, x=0x48, y=0x98, layer=1, paramA=0x6, paramC=script_0800D59C, paramD=0x4, conditions=0x10 - delayed_entity_raw subtype=0x7, x=0x38, y=0xc8, layer=1, paramA=0x7, paramC=script_0800D59C, paramD=0x4, conditions=0x10 - delayed_entity_raw subtype=0x7, x=0x58, y=0xd8, layer=1, paramA=0x8, paramC=script_0800D59C, paramD=0x4, conditions=0x10 - delayed_entity_raw subtype=0x6, x=0x58, y=0xa8, layer=1, paramA=0x14, paramC=script_080100FC, paramD=0x4, conditions=0x3c0 - delayed_entity_raw subtype=0x6, x=0x48, y=0x168, layer=1, paramA=0x10, paramC=script_080100FC, paramD=0x4, conditions=0x300 + delayed_entity_raw subtype=0x13, x=0x76, y=0xc0, layer=1, paramA=0x1, paramB=0x2, paramC=script_SittingPerson, conditions=0x3f8 + delayed_entity_raw subtype=0x7, x=0x68, y=0x98, layer=1, paramC=script_Kid4, paramD=0x4, conditions=0x300 + delayed_entity_raw subtype=0x7, x=0x48, y=0x98, layer=1, paramA=0x6, paramC=script_Kid4, paramD=0x4, conditions=0x300 + delayed_entity_raw subtype=0x7, x=0x48, y=0x98, layer=1, paramA=0x6, paramC=script_KidInn, paramD=0x4, conditions=0x10 + delayed_entity_raw subtype=0x7, x=0x38, y=0xc8, layer=1, paramA=0x7, paramC=script_KidInn, paramD=0x4, conditions=0x10 + delayed_entity_raw subtype=0x7, x=0x58, y=0xd8, layer=1, paramA=0x8, paramC=script_KidInn, paramD=0x4, conditions=0x10 + delayed_entity_raw subtype=0x6, x=0x58, y=0xa8, layer=1, paramA=0x14, paramC=script_Townsperson2, paramD=0x4, conditions=0x3c0 + delayed_entity_raw subtype=0x6, x=0x48, y=0x168, layer=1, paramA=0x10, paramC=script_Townsperson2, paramD=0x4, conditions=0x300 entity_list_end Entities_HouseInteriors1_InnEast2F_1:: @ 080D6E6C @@ -2429,7 +2429,7 @@ Entities_HouseInteriors1_SchoolWest_0:: @ 080D7018 entity_list_end gUnk_080D7038:: @ 080D7038 - npc_raw subtype=0x48, x=0x78, y=0x78, paramA=0x1, script=script_0800E7F4 + npc_raw subtype=0x48, x=0x78, y=0x78, paramA=0x1, script=script_Teachers entity_list_end Entities_HouseInteriors1_SchoolWest_1:: @ 080D7058 @@ -2464,27 +2464,27 @@ Entities_HouseInteriors1_SchoolEast_0:: @ 080D7120 entity_list_end gUnk_080D7140:: @ 080D7140 - npc_raw subtype=0x7, x=0x48, y=0x40, paramA=0x1, paramB=0x200, script=script_08010644 - npc_raw subtype=0x7, x=0x48, y=0x70, paramA=0x2, paramB=0x200, script=script_08010644 + npc_raw subtype=0x7, x=0x48, y=0x40, paramA=0x1, paramB=0x200, script=script_Kid6 + npc_raw subtype=0x7, x=0x48, y=0x70, paramA=0x2, paramB=0x200, script=script_Kid6 entity_list_end gUnk_080D7170:: @ 080D7170 - npc_raw subtype=0x7, x=0xa8, y=0x40, paramB=0x200, script=script_0801061C - npc_raw subtype=0x7, x=0x78, y=0x40, paramA=0x3, paramB=0x200, script=script_08010650 + npc_raw subtype=0x7, x=0xa8, y=0x40, paramB=0x200, script=script_Kid5 + npc_raw subtype=0x7, x=0x78, y=0x40, paramA=0x3, paramB=0x200, script=script_Kid7 entity_list_end gUnk_080D71A0:: @ 080D71A0 - npc_raw subtype=0x7, x=0x68, y=0x68, paramA=0x1, paramB=0x400, script=script_080103B0 - npc_raw subtype=0x7, x=0x98, y=0x48, paramA=0x2, paramB=0x400, script=script_080103B0 + npc_raw subtype=0x7, x=0x68, y=0x68, paramA=0x1, paramB=0x400, script=script_Kid4 + npc_raw subtype=0x7, x=0x98, y=0x48, paramA=0x2, paramB=0x400, script=script_Kid4 entity_list_end gUnk_080D71D0:: @ 080D71D0 - npc_raw subtype=0x48, x=0x110, y=0x48, script=script_0800E7F4 + npc_raw subtype=0x48, x=0x110, y=0x48, script=script_Teachers entity_list_end gUnk_080D71F0:: @ 080D71F0 - npc_raw subtype=0x48, x=0xe8, y=0x58, script=script_0800E7F4 - npc_raw subtype=0x48, x=0x28, y=0x48, paramA=0x1, script=script_0800E7F4 + npc_raw subtype=0x48, x=0xe8, y=0x58, script=script_Teachers + npc_raw subtype=0x48, x=0x28, y=0x48, paramA=0x1, script=script_Teachers entity_list_end Entities_HouseInteriors1_SchoolEast_1:: @ 080D7220 @@ -2519,8 +2519,8 @@ Room_HouseInteriors1_SchoolEast:: @ 080D72B0 .4byte gUnk_additional_9_HouseInteriors1_SchoolEast Entities_HyruleCastle_0_0:: @ 080D72D8 - npc_raw subtype=0x15, x=0xb8, y=0x38, script=script_08008DC0 - npc_raw subtype=0x15, x=0xf8, y=0x38, paramB=0x1, script=script_08008DC0 + npc_raw subtype=0x15, x=0xb8, y=0x38, script=script_GuardAtEntry + npc_raw subtype=0x15, x=0xf8, y=0x38, paramB=0x1, script=script_GuardAtEntry entity_list_end Entities_HyruleCastle_0_1:: @ 080D7308 @@ -2532,7 +2532,7 @@ gUnk_080D7328:: @ 080D7328 entity_list_end gUnk_080D7348:: @ 080D7348 - npc_raw subtype=0x4e, script=script_0800A734 + npc_raw subtype=0x4e, script=script_Npc4EHyruleCastleEntrance entity_list_end Enemies_HyruleCastle_0:: @ 080D7368 @@ -2565,12 +2565,12 @@ gUnk_080D73E0:: @ 080D73E0 entity_list_end gUnk_080D7410:: @ 080D7410 - npc_raw subtype=0x4e, script=script_0800A764 - npc_raw subtype=0x15, x=0xb8, y=0x1a8, paramB=0x28, script=script_0800A7E4 - npc_raw subtype=0x15, x=0xf8, y=0x1b8, paramB=0x29, script=script_0800A820 - npc_raw subtype=0x15, x=0x138, y=0x1d8, paramB=0x2a, script=script_0800A85C - npc_raw subtype=0x16, x=0xd8, y=0x1c8, script=script_0800A898 - npc_raw subtype=0x16, x=0x118, y=0x1b8, script=script_0800A8D4 + npc_raw subtype=0x4e, script=script_Npc4EUnfreezeCastleStaff + npc_raw subtype=0x15, x=0xb8, y=0x1a8, paramB=0x28, script=script_GuardStoneOutro1 + npc_raw subtype=0x15, x=0xf8, y=0x1b8, paramB=0x29, script=script_GuardStoneOutro2 + npc_raw subtype=0x15, x=0x138, y=0x1d8, paramB=0x2a, script=script_GuardStoneOutro3 + npc_raw subtype=0x16, x=0xd8, y=0x1c8, script=script_MaidStoneOutro1 + npc_raw subtype=0x16, x=0x118, y=0x1b8, script=script_MaidStoneOutro2 entity_list_end Enemies_HyruleCastle_1:: @ 080D7480 @@ -2593,34 +2593,34 @@ Entities_HyruleCastle_2_0:: @ 080D74B8 entity_list_end gUnk_080D74C8:: @ 080D74C8 - npc_raw subtype=0x4e, script=script_08008E08 - npc_raw subtype=0x15, x=0x78, y=0x98, paramB=0x2, script=script_08008FFC - npc_raw subtype=0x15, x=0x78, y=0xb8, paramB=0x3, script=script_08008FFC - npc_raw subtype=0x15, x=0x78, y=0xd8, paramB=0x4, script=script_08008FFC - npc_raw subtype=0x15, x=0x98, y=0x98, paramB=0x5, script=script_08008FFC - npc_raw subtype=0x15, x=0x98, y=0xb8, paramB=0x6, script=script_08008FFC - npc_raw subtype=0x15, x=0x98, y=0xd8, paramB=0x7, script=script_08008FFC - npc_raw subtype=0x24, x=0x88, y=0x58, script=script_08009080 - npc_raw subtype=0x25, x=0x68, y=0x58, script=script_0800903C - npc_raw subtype=0x22, x=0xb8, y=0x78, script=script_08009198 - npc_raw subtype=0x28, x=0xb8, y=0x58, script=script_080092F0 + npc_raw subtype=0x4e, script=script_Npc4EIntroAssembly + npc_raw subtype=0x15, x=0x78, y=0x98, paramB=0x2, script=script_GuardAtAssembly + npc_raw subtype=0x15, x=0x78, y=0xb8, paramB=0x3, script=script_GuardAtAssembly + npc_raw subtype=0x15, x=0x78, y=0xd8, paramB=0x4, script=script_GuardAtAssembly + npc_raw subtype=0x15, x=0x98, y=0x98, paramB=0x5, script=script_GuardAtAssembly + npc_raw subtype=0x15, x=0x98, y=0xb8, paramB=0x6, script=script_GuardAtAssembly + npc_raw subtype=0x15, x=0x98, y=0xd8, paramB=0x7, script=script_GuardAtAssembly + npc_raw subtype=0x24, x=0x88, y=0x58, script=script_KingDaltusAtAssembly + npc_raw subtype=0x25, x=0x68, y=0x58, script=script_MinisterPothoAtAssembly + npc_raw subtype=0x22, x=0xb8, y=0x78, script=script_SmithAtAssembly + npc_raw subtype=0x28, x=0xb8, y=0x58, script=script_StoneZelda entity_list_end gUnk_080D7588:: @ 080D7588 - npc_raw subtype=0x25, x=0x68, y=0x58, script=script_08009274 - npc_raw subtype=0x24, x=0x88, y=0x58, script=script_080092D4 - npc_raw subtype=0x22, x=0xa8, y=0x78, script=script_080092A8 - npc_raw subtype=0x28, x=0xb8, y=0x58, script=script_080092F0 + npc_raw subtype=0x25, x=0x68, y=0x58, script=script_MinisterPotho + npc_raw subtype=0x24, x=0x88, y=0x58, script=script_KingDaltus + npc_raw subtype=0x22, x=0xa8, y=0x78, script=script_SmithAtCastle + npc_raw subtype=0x28, x=0xb8, y=0x58, script=script_StoneZelda entity_list_end gUnk_080D75D8:: @ 080D75D8 - npc_raw subtype=0x25, x=0x68, y=0x58, script=script_08009274 - npc_raw subtype=0x24, x=0x88, y=0x58, script=script_080092D4 - npc_raw subtype=0x28, x=0xb8, y=0x58, script=script_080092F0 + npc_raw subtype=0x25, x=0x68, y=0x58, script=script_MinisterPotho + npc_raw subtype=0x24, x=0x88, y=0x58, script=script_KingDaltus + npc_raw subtype=0x28, x=0xb8, y=0x58, script=script_StoneZelda entity_list_end gUnk_080D7618:: @ 080D7618 - npc_raw subtype=0x4e, script=script_0800A6D4 + npc_raw subtype=0x4e, script=script_Npc4EHyruleCastleThrone entity_list_end Enemies_HyruleCastle_2:: @ 080D7638 @@ -2667,7 +2667,7 @@ Room_HyruleCastle_3:: @ 080D76E8 .4byte gUnk_additional_8_HyruleCastle_3 Entities_HyruleCastle_4_0:: @ 080D770C - npc_raw subtype=0x16, x=0x58, y=0x50, script=script_0800B8B8 + npc_raw subtype=0x16, x=0x58, y=0x50, script=script_CastleMaid entity_list_end Enemies_HyruleCastle_4:: @ 080D772C @@ -2979,7 +2979,7 @@ Room_GreatFairies_Exit:: @ 080D7D9C .4byte sub_StateChange_GreatFairies_Exit Entities_Dojos_Grayblade_0:: @ 080D7DBC - npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x2, script=script_080161E8 + npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x2, script=script_BladeBrothers object_raw subtype=0x0, x=0x28, y=0x84, collision=1, paramA=0x63, paramB=0x400, paramC=0x800000 entity_list_end @@ -3013,7 +3013,7 @@ Room_Dojos_Grayblade:: @ 080D7E9C .4byte sub_StateChange_Dojos_Grayblade Entities_Dojos_Splitblade_0:: @ 080D7EBC - npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x6, script=script_080161E8 + npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x6, script=script_BladeBrothers entity_list_end Entities_Dojos_Splitblade_1:: @ 080D7EDC @@ -3044,7 +3044,7 @@ Room_Dojos_Splitblade:: @ 080D7F7C .4byte sub_StateChange_Dojos_Splitblade Entities_Dojos_Greatblade_0:: @ 080D7F9C - npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x7, script=script_080161E8 + npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x7, script=script_BladeBrothers entity_list_end Entities_Dojos_Greatblade_1:: @ 080D7FBC @@ -3075,7 +3075,7 @@ Room_Dojos_Greatblade:: @ 080D805C .4byte sub_StateChange_Dojos_Greatblade Entities_Dojos_Scarblade_0:: @ 080D807C - npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x5, script=script_080161E8 + npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x5, script=script_BladeBrothers entity_list_end Entities_Dojos_Scarblade_1:: @ 080D809C @@ -3106,7 +3106,7 @@ Room_Dojos_Scarblade:: @ 080D813C .4byte sub_StateChange_Dojos_Scarblade Entities_Dojos_Swiftblade_0:: @ 080D815C - npc_raw subtype=0x30, x=0x78, y=0x28, script=script_080161E8 + npc_raw subtype=0x30, x=0x78, y=0x28, script=script_BladeBrothers object_raw subtype=0x0, x=0x28, y=0x84, collision=1, paramA=0x63, paramB=0x400, paramC=0x7f0000 entity_list_end @@ -3138,7 +3138,7 @@ Room_Dojos_Swiftblade:: @ 080D822C .4byte sub_StateChange_Dojos_Swiftblade Entities_Dojos_Grimblade_0:: @ 080D824C - npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x4, script=script_080161E8 + npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x4, script=script_BladeBrothers object_raw subtype=0x0, x=0x28, y=0x84, collision=1, paramA=0x63, paramB=0x400, paramC=0x830000 entity_list_end @@ -3178,7 +3178,7 @@ Room_Dojos_Grimblade:: @ 080D8374 .4byte sub_StateChange_Dojos_Grimblade Entities_Dojos_Waveblade_0:: @ 080D8394 - npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x3, script=script_080161E8 + npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x3, script=script_BladeBrothers object_raw subtype=0x0, x=0x28, y=0x84, collision=1, paramA=0x63, paramB=0x400, paramC=0x820000 entity_list_end @@ -3428,42 +3428,42 @@ Entities_GoronCave_Main_0:: @ 080D89C4 entity_list_end gUnk_080D89E4:: @ 080D89E4 - npc_raw subtype=0x32, x=0x68, y=0x228, script=script_0800B9B4 + npc_raw subtype=0x32, x=0x68, y=0x228, script=script_GoronPunching entity_list_end gUnk_080D8A04:: @ 080D8A04 - npc_raw subtype=0x32, x=0x48, y=0x178, script=script_0800B9B4 - npc_raw subtype=0x32, x=0x68, y=0x178, paramA=0x1, script=script_0800B9B4 + npc_raw subtype=0x32, x=0x48, y=0x178, script=script_GoronPunching + npc_raw subtype=0x32, x=0x68, y=0x178, paramA=0x1, script=script_GoronPunching entity_list_end gUnk_080D8A34:: @ 080D8A34 - npc_raw subtype=0x32, x=0x48, y=0x178, script=script_0800B9B4 - npc_raw subtype=0x32, x=0x68, y=0x178, paramA=0x1, script=script_0800B9B4 - npc_raw subtype=0x32, x=0x88, y=0x178, paramA=0x2, script=script_0800B9B4 + npc_raw subtype=0x32, x=0x48, y=0x178, script=script_GoronPunching + npc_raw subtype=0x32, x=0x68, y=0x178, paramA=0x1, script=script_GoronPunching + npc_raw subtype=0x32, x=0x88, y=0x178, paramA=0x2, script=script_GoronPunching entity_list_end gUnk_080D8A74:: @ 080D8A74 - npc_raw subtype=0x32, x=0x28, y=0xd8, script=script_0800B9B4 - npc_raw subtype=0x32, x=0x48, y=0xd8, paramA=0x1, script=script_0800B9B4 - npc_raw subtype=0x32, x=0x68, y=0xd8, paramA=0x2, script=script_0800B9B4 - npc_raw subtype=0x32, x=0x88, y=0xd8, paramA=0x3, script=script_0800B9B4 + npc_raw subtype=0x32, x=0x28, y=0xd8, script=script_GoronPunching + npc_raw subtype=0x32, x=0x48, y=0xd8, paramA=0x1, script=script_GoronPunching + npc_raw subtype=0x32, x=0x68, y=0xd8, paramA=0x2, script=script_GoronPunching + npc_raw subtype=0x32, x=0x88, y=0xd8, paramA=0x3, script=script_GoronPunching entity_list_end gUnk_080D8AC4:: @ 080D8AC4 - npc_raw subtype=0x32, x=0x28, y=0xd8, script=script_0800B9B4 - npc_raw subtype=0x32, x=0x48, y=0xd8, paramA=0x1, script=script_0800B9B4 - npc_raw subtype=0x32, x=0x68, y=0xd8, paramA=0x2, script=script_0800B9B4 - npc_raw subtype=0x32, x=0x88, y=0xd8, paramA=0x3, script=script_0800B9B4 - npc_raw subtype=0x32, x=0xa8, y=0xd8, paramA=0x4, script=script_0800B9B4 + npc_raw subtype=0x32, x=0x28, y=0xd8, script=script_GoronPunching + npc_raw subtype=0x32, x=0x48, y=0xd8, paramA=0x1, script=script_GoronPunching + npc_raw subtype=0x32, x=0x68, y=0xd8, paramA=0x2, script=script_GoronPunching + npc_raw subtype=0x32, x=0x88, y=0xd8, paramA=0x3, script=script_GoronPunching + npc_raw subtype=0x32, x=0xa8, y=0xd8, paramA=0x4, script=script_GoronPunching entity_list_end gUnk_080D8B24:: @ 080D8B24 - npc_raw subtype=0x32, x=0x28, y=0x98, script=script_0800B9B4 - npc_raw subtype=0x32, x=0x48, y=0x98, paramA=0x1, script=script_0800B9B4 - npc_raw subtype=0x32, x=0x68, y=0x98, paramA=0x2, script=script_0800B9B4 - npc_raw subtype=0x32, x=0x88, y=0x98, paramA=0x3, script=script_0800B9B4 - npc_raw subtype=0x32, x=0xa8, y=0x98, paramA=0x4, script=script_0800B9B4 - npc_raw subtype=0x32, x=0xc8, y=0x98, paramA=0x5, script=script_0800B9B4 + npc_raw subtype=0x32, x=0x28, y=0x98, script=script_GoronPunching + npc_raw subtype=0x32, x=0x48, y=0x98, paramA=0x1, script=script_GoronPunching + npc_raw subtype=0x32, x=0x68, y=0x98, paramA=0x2, script=script_GoronPunching + npc_raw subtype=0x32, x=0x88, y=0x98, paramA=0x3, script=script_GoronPunching + npc_raw subtype=0x32, x=0xa8, y=0x98, paramA=0x4, script=script_GoronPunching + npc_raw subtype=0x32, x=0xc8, y=0x98, paramA=0x5, script=script_GoronPunching entity_list_end Enemies_GoronCave_Main:: @ 080D8B94 @@ -3557,8 +3557,8 @@ Entities_RoyalValley_Main_0:: @ 080D8FB8 .else manager subtype=0x11, paramC=0x88000056 .endif - object_raw subtype=0x19, x=0x1a0, y=0x1a2, unknown=0x4f, collision=1, paramA=0x1, paramB=0x3, paramC=script_08009698 - npc_raw subtype=0x21, x=0x88, y=0x118, script=script_08009740 + object_raw subtype=0x19, x=0x1a0, y=0x1a2, unknown=0x4f, collision=1, paramA=0x1, paramB=0x3, paramC=script_GraveyardHouseDoor + npc_raw subtype=0x21, x=0x88, y=0x118, script=script_GhostBrothers .ifdef EU_JP ezlo_hint x=0x38, y=0x4a, rx=0x1, ry=0x4, msg=0xb1d, flag=0x58 .else @@ -3571,14 +3571,14 @@ gUnk_080D9048:: @ 080D9048 .incbin "data_080D5360/gUnk_080D9048.bin" gUnk_080D9098:: @ 080D9098 - npc_raw subtype=0x40, x=0xd8, y=0x188, paramA=0x1, script=script_0800962C - object_raw subtype=0x69, unknown=0x4f, paramC=script_080098D4 + npc_raw subtype=0x40, x=0xd8, y=0x188, paramA=0x1, script=script_DampeOuside + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69GetKeyBack entity_list_end gUnk_080D90C8:: @ 080D90C8 - object_raw subtype=0x69, unknown=0x4f, paramC=script_08009778 - object_raw subtype=0x97, x=0x1f0, y=0x1a0, unknown=0x4f, paramA=0x4, paramC=script_080097F0 - object_raw subtype=0x97, x=0x1f0, y=0x1b0, unknown=0x4f, paramA=0x4, paramC=script_08009838 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69CrowStealingKey + object_raw subtype=0x97, x=0x1f0, y=0x1a0, unknown=0x4f, paramA=0x4, paramC=script_Object97FirstCrow + object_raw subtype=0x97, x=0x1f0, y=0x1b0, unknown=0x4f, paramA=0x4, paramC=script_Object97SecondCrow entity_list_end gUnk_080D9108:: @ 080D9108 @@ -3706,7 +3706,7 @@ Room_RoyalValleyGraves_HeartPiece:: @ 080D93C0 .4byte sub_StateChange_RoyalValleyGraves_HeartPiece Entities_RoyalValleyGraves_Gina_0:: @ 080D93E0 - npc_raw subtype=0x43, x=0x78, y=0x58, script=script_0800B91C + npc_raw subtype=0x43, x=0x78, y=0x58, script=script_Gina entity_list_end Enemies_RoyalValleyGraves_Gina:: @ 080D9400 @@ -3727,9 +3727,9 @@ Room_RoyalValleyGraves_Gina:: @ 080D9420 .4byte sub_StateChange_RoyalValleyGraves_Gina Entities_MinishRafters_Cafe_0:: @ 080D9440 - npc_raw subtype=0x38, x=0xd8, y=0x30, paramA=0x1, paramB=0x202, script=script_0800E734 - npc_raw subtype=0x38, x=0x38, y=0xa8, paramB=0x103, script=script_0800E6E8 - npc_raw subtype=0x38, x=0x5c, y=0xdc, paramB=0x104, script=script_0800E6E8 + npc_raw subtype=0x38, x=0xd8, y=0x30, paramA=0x1, paramB=0x202, script=script_TownMinish2 + npc_raw subtype=0x38, x=0x38, y=0xa8, paramB=0x103, script=script_TownMinish1 + npc_raw subtype=0x38, x=0x5c, y=0xdc, paramB=0x104, script=script_TownMinish1 npc_raw subtype=0x3, x=0x78, y=0xd6, unknown=0xf, paramB=0x324, script=0x0 npc_raw subtype=0x3, x=0x128, y=0xa8, unknown=0xf, paramB=0x125, script=0x0 npc_raw subtype=0x3, x=0x158, y=0xb4, unknown=0xf, paramB=0x226, script=0x0 @@ -3818,9 +3818,9 @@ Room_MinishRafters_Stockwell:: @ 080D97A0 .4byte sub_StateChange_MinishRafters_Stockwell Entities_MinishRafters_DrLeft_0:: @ 080D97C0 - npc_raw subtype=0x38, x=0x98, y=0x90, paramB=0x7, script=script_0800E6E8 - npc_raw subtype=0x38, x=0x158, y=0x68, paramB=0x208, script=script_0800E760 - npc_raw subtype=0x38, x=0x38, y=0x58, paramA=0x5, paramB=0x109, script=script_0800E6E8 + npc_raw subtype=0x38, x=0x98, y=0x90, paramB=0x7, script=script_TownMinish1 + npc_raw subtype=0x38, x=0x158, y=0x68, paramB=0x208, script=script_TownMinish3 + npc_raw subtype=0x38, x=0x38, y=0x58, paramA=0x5, paramB=0x109, script=script_TownMinish1 entity_list_end gUnk_080D9800:: @ 080D9800 @@ -3863,10 +3863,10 @@ Room_MinishRafters_DrLeft:: @ 080D9948 .4byte sub_StateChange_MinishRafters_DrLeft Entities_MinishRafters_Bakery_0:: @ 080D9968 - npc_raw subtype=0x38, x=0x48, y=0x78, paramA=0x5, paramB=0x20e, script=script_0800E6E8 - npc_raw subtype=0x38, x=0x78, y=0xc8, paramA=0x4, paramB=0x20f, script=script_0800E6E8 - npc_raw subtype=0x38, x=0xe8, y=0xc8, paramA=0x3, paramB=0x210, script=script_0800E6E8 - npc_raw subtype=0x38, x=0x158, y=0x98, paramB=0x211, script=script_0800E6E8 + npc_raw subtype=0x38, x=0x48, y=0x78, paramA=0x5, paramB=0x20e, script=script_TownMinish1 + npc_raw subtype=0x38, x=0x78, y=0xc8, paramA=0x4, paramB=0x20f, script=script_TownMinish1 + npc_raw subtype=0x38, x=0xe8, y=0xc8, paramA=0x3, paramB=0x210, script=script_TownMinish1 + npc_raw subtype=0x38, x=0x158, y=0x98, paramB=0x211, script=script_TownMinish1 entity_list_end Entities_MinishRafters_Bakery_1:: @ 080D99B8 @@ -3908,11 +3908,11 @@ Entities_CastorWilds_Main_0:: @ 080D9AD8 .ifdef EU_JP manager subtype=0x20, x=0x218, y=0x328, paramB=0x12182e00, paramC=0x161318 manager subtype=0x20, x=0x2b8, y=0x398, paramB=0x12a82e00, paramC=0x171398 - object_raw subtype=0x69, x=0x68, y=0x380, unknown=0x4f, paramC=script_0800B200 - npc_raw subtype=0x2b, x=0x28, y=0x3a8, paramA=0x1, script=script_0800B308 - npc_raw subtype=0x2b, x=0x40, y=0x354, script=script_0800B254 - npc_raw subtype=0x2b, x=0x70, y=0x354, script=script_0800B284 - npc_raw subtype=0x2b, x=0xa0, y=0x354, script=script_0800B2B4 + object_raw subtype=0x69, x=0x68, y=0x380, unknown=0x4f, paramC=script_Object69 + npc_raw subtype=0x2b, x=0x28, y=0x3a8, paramA=0x1, script=script_CastorWildsStatueRock + npc_raw subtype=0x2b, x=0x40, y=0x354, script=script_CastorWildsStatueLeft + npc_raw subtype=0x2b, x=0x70, y=0x354, script=script_CastorWildsStatueMiddle + npc_raw subtype=0x2b, x=0xa0, y=0x354, script=script_CastorWildsStatueRight object_raw subtype=0x71, x=0x38, y=0x2d8, paramA=0x1, paramB=0x1, paramC=0x200000 manager subtype=0x4 manager subtype=0x20, x=0x2b8, y=0x148, paramB=0x12b82e00, paramC=0x1f1158 @@ -3930,11 +3930,11 @@ Entities_CastorWilds_Main_0:: @ 080D9AD8 .else manager subtype=0x20, x=0x218, y=0x328, paramB=0x12182e00, paramC=0x151318 manager subtype=0x20, x=0x2b8, y=0x398, paramB=0x12a82e00, paramC=0x161398 - object_raw subtype=0x69, x=0x68, y=0x380, unknown=0x4f, paramC=script_0800B200 - npc_raw subtype=0x2b, x=0x28, y=0x3a8, paramA=0x1, script=script_0800B308 - npc_raw subtype=0x2b, x=0x40, y=0x354, script=script_0800B254 - npc_raw subtype=0x2b, x=0x70, y=0x354, script=script_0800B284 - npc_raw subtype=0x2b, x=0xa0, y=0x354, script=script_0800B2B4 + object_raw subtype=0x69, x=0x68, y=0x380, unknown=0x4f, paramC=script_Object69 + npc_raw subtype=0x2b, x=0x28, y=0x3a8, paramA=0x1, script=script_CastorWildsStatueRock + npc_raw subtype=0x2b, x=0x40, y=0x354, script=script_CastorWildsStatueLeft + npc_raw subtype=0x2b, x=0x70, y=0x354, script=script_CastorWildsStatueMiddle + npc_raw subtype=0x2b, x=0xa0, y=0x354, script=script_CastorWildsStatueRight object_raw subtype=0x71, x=0x38, y=0x2d8, paramA=0x1, paramB=0x1, paramC=0x1f0000 manager subtype=0x4 manager subtype=0x20, x=0x2b8, y=0x148, paramB=0x12b82e00, paramC=0x1e1158 @@ -3972,7 +3972,7 @@ gUnk_080D9CC8:: @ 080D9CC8 entity_list_end gUnk_080D9CE8:: @ 080D9CE8 - object_raw subtype=0xbb, x=0x228, y=0x398, unknown=0x4f, paramB=0x5, paramC=script_0800B00C + object_raw subtype=0xbb, x=0x228, y=0x398, unknown=0x4f, paramB=0x5, paramC=script_Windcrest entity_list_end Entities_CastorWilds_Main_1:: @ 080D9D08 @@ -4196,7 +4196,7 @@ Entities_CastorDarknut_Main_0:: @ 080DA210 entity_list_end gUnk_080DA230:: @ 080DA230 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800B17C + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69DarknutFight object_raw subtype=0xc, x=0x88, y=0x68, paramA=0x1, paramC=0x390000 entity_list_end @@ -4258,7 +4258,7 @@ Room_CastorDarknut_Hall:: @ 080DA384 .4byte sub_StateChange_CastorDarknut_Hall Entities_GreatFairies_Graveyard_0:: @ 080DA3A4 - object_raw subtype=0x69, x=0x78, y=0x48, unknown=0x4f, paramC=script_0800B614 + object_raw subtype=0x69, x=0x78, y=0x48, unknown=0x4f, paramC=script_GreatFairyArrows object_raw subtype=0x1b, x=0x78, y=0x48, collision=2, paramA=0x16 entity_list_end @@ -4279,7 +4279,7 @@ Room_GreatFairies_Graveyard:: @ 080DA3EC .4byte sub_StateChange_GreatFairies_Graveyard Entities_GreatFairies_MinishWoods_0:: @ 080DA40C - object_raw subtype=0x69, x=0x78, y=0x48, unknown=0x4f, paramC=script_0800B6C8 + object_raw subtype=0x69, x=0x78, y=0x48, unknown=0x4f, paramC=script_GreatFairyRupees object_raw subtype=0x1b, x=0x78, y=0x48, collision=2, paramA=0xb entity_list_end @@ -4300,7 +4300,7 @@ Room_GreatFairies_MinishWoods:: @ 080DA454 .4byte sub_StateChange_GreatFairies_MinishWoods Entities_GreatFairies_MtCrenel_0:: @ 080DA474 - object_raw subtype=0x69, x=0x78, y=0x48, unknown=0x4f, paramC=script_0800B730 + object_raw subtype=0x69, x=0x78, y=0x48, unknown=0x4f, paramC=script_GreatFairyBombs object_raw subtype=0x1b, x=0x78, y=0x48, collision=2 entity_list_end @@ -4367,7 +4367,7 @@ Room_GardenFountains_West:: @ 080DA5A4 .4byte sub_StateChange_GardenFountains_West Entities_MinishHouseInteriors_GentariMain_0:: @ 080DA5C4 - npc_raw subtype=0x1, x=0x78, y=0x30, script=script_0800C774 + npc_raw subtype=0x1, x=0x78, y=0x30, script=script_Gentari object_raw subtype=0x58, x=0x18, y=0x50, paramC=0x830000 entity_list_end @@ -4427,7 +4427,7 @@ Room_MinishHouseInteriors_GentariExit:: @ 080DA6E8 .4byte gUnk_additional_9_MinishHouseInteriors_GentariExit Entities_MinishHouseInteriors_Festari_0:: @ 080DA710 - npc_raw subtype=0x2, x=0xe8, y=0x48, script=script_0800C634 + npc_raw subtype=0x2, x=0xe8, y=0x48, script=script_Festari entity_list_end Entities_MinishHouseInteriors_Festari_1:: @ 080DA730 @@ -4719,7 +4719,7 @@ Entities_MinishHouseInteriors_MelariMinesSouthwest_0:: @ 080DAED8 entity_list_end gUnk_080DAEE8:: @ 080DAEE8 - npc_raw subtype=0x2f, x=0x58, y=0x58, paramB=0x100, script=script_0800D308 + npc_raw subtype=0x2f, x=0x58, y=0x58, paramB=0x100, script=script_MelariInRoom entity_list_end Entities_MinishHouseInteriors_MelariMinesSouthwest_1:: @ 080DAF08 @@ -4747,7 +4747,7 @@ Entities_MinishHouseInteriors_MelariMinesSoutheast_0:: @ 080DAF70 entity_list_end gUnk_080DAF80:: @ 080DAF80 - npc_raw subtype=0x2d, x=0xa8, y=0x48, paramA=0x4, paramB=0x7, script=script_0800CF50 + npc_raw subtype=0x2d, x=0xa8, y=0x48, paramA=0x4, paramB=0x7, script=script_MountainMinish1 entity_list_end Entities_MinishHouseInteriors_MelariMinesSoutheast_1:: @ 080DAFA0 @@ -4775,7 +4775,7 @@ Entities_MinishHouseInteriors_MelariMinesEast_0:: @ 080DB008 entity_list_end gUnk_080DB018:: @ 080DB018 - npc_raw subtype=0x2d, x=0x130, y=0x58, paramA=0x4, paramB=0x8, script=script_0800CF50 + npc_raw subtype=0x2d, x=0x130, y=0x58, paramA=0x4, paramB=0x8, script=script_MountainMinish1 entity_list_end Entities_MinishHouseInteriors_MelariMinesEast_1:: @ 080DB038 @@ -4877,7 +4877,7 @@ Entities_MinishHouseInteriors_Librari_0:: @ 080DB228 entity_list_end gUnk_080DB238:: @ 080DB238 - npc_raw subtype=0x39, x=0x78, y=0x48, script=script_08012430 + npc_raw subtype=0x39, x=0x78, y=0x48, script=script_LibrariLater entity_list_end Entities_MinishHouseInteriors_Librari_1:: @ 080DB258 @@ -4925,7 +4925,7 @@ Room_MinishHouseInteriors_HyruleFieldExit:: @ 080DB308 .4byte sub_StateChange_MinishHouseInteriors_HyruleFieldExit Entities_MinishHouseInteriors_HyruleTown_0:: @ 080DB328 - npc_raw subtype=0x38, x=0x78, y=0x48, paramA=0x2, paramB=0x212, script=script_0800E6E8 + npc_raw subtype=0x38, x=0x78, y=0x48, paramA=0x2, paramB=0x212, script=script_TownMinish1 entity_list_end Entities_MinishHouseInteriors_HyruleTown_1:: @ 080DB348 @@ -5000,13 +5000,13 @@ Entities_TownMinishHoles_MayorsHouse_0:: @ 080DB490 entity_list_end gUnk_080DB4A0:: @ 080DB4A0 - npc_raw subtype=0x38, x=0x68, y=0x48, paramB=0x205, script=script_0800E6E8 - npc_raw subtype=0x38, x=0x88, y=0x48, paramA=0x3, paramB=0x206, script=script_0800E6E8 + npc_raw subtype=0x38, x=0x68, y=0x48, paramB=0x205, script=script_TownMinish1 + npc_raw subtype=0x38, x=0x88, y=0x48, paramA=0x3, paramB=0x206, script=script_TownMinish1 entity_list_end gUnk_080DB4D0:: @ 080DB4D0 - npc_raw subtype=0x38, x=0x68, y=0x48, paramB=0x205, script=script_0800ED90 - npc_raw subtype=0x38, x=0x88, y=0x48, paramA=0x3, paramB=0x206, script=script_0800EE50 + npc_raw subtype=0x38, x=0x68, y=0x48, paramB=0x205, script=script_TownMinish4 + npc_raw subtype=0x38, x=0x88, y=0x48, paramA=0x3, paramB=0x206, script=script_TownMinish5 entity_list_end Entities_TownMinishHoles_MayorsHouse_1:: @ 080DB500 @@ -5031,7 +5031,7 @@ Room_TownMinishHoles_MayorsHouse:: @ 080DB548 .4byte sub_StateChange_TownMinishHoles_MayorsHouse Entities_TownMinishHoles_WestOracle_0:: @ 080DB568 - npc_raw subtype=0x38, x=0x78, y=0x48, paramA=0x2, paramB=0x213, script=script_0800E6E8 + npc_raw subtype=0x38, x=0x78, y=0x48, paramA=0x2, paramB=0x213, script=script_TownMinish1 entity_list_end Entities_TownMinishHoles_WestOracle_1:: @ 080DB588 @@ -5055,7 +5055,7 @@ Room_TownMinishHoles_WestOracle:: @ 080DB5C0 .4byte sub_StateChange_TownMinishHoles_WestOracle Entities_TownMinishHoles_DrLeft_0:: @ 080DB5E0 - npc_raw subtype=0x38, x=0x58, y=0x40, paramB=0x20a, script=script_0800EFC0 + npc_raw subtype=0x38, x=0x58, y=0x40, paramB=0x20a, script=script_TownMinish6 entity_list_end Entities_TownMinishHoles_DrLeft_1:: @ 080DB600 @@ -5080,7 +5080,7 @@ Room_TownMinishHoles_DrLeft:: @ 080DB648 .4byte sub_StateChange_TownMinishHoles_DrLeft Entities_TownMinishHoles_Carpenter_0:: @ 080DB668 - npc_raw subtype=0x38, x=0x78, y=0x58, paramB=0x10b, script=script_0800E6E8 + npc_raw subtype=0x38, x=0x78, y=0x58, paramB=0x10b, script=script_TownMinish1 entity_list_end Entities_TownMinishHoles_Carpenter_1:: @ 080DB688 @@ -5105,8 +5105,8 @@ Room_TownMinishHoles_Carpenter:: @ 080DB6D0 .4byte sub_StateChange_TownMinishHoles_Carpenter Entities_TownMinishHoles_Cafe_0:: @ 080DB6F0 - npc_raw subtype=0x38, x=0x88, y=0x68, paramA=0x5, paramB=0x20c, script=script_0800E6E8 - npc_raw subtype=0x38, x=0xa8, y=0x48, paramA=0x4, paramB=0x20d, script=script_0800E6E8 + npc_raw subtype=0x38, x=0x88, y=0x68, paramA=0x5, paramB=0x20c, script=script_TownMinish1 + npc_raw subtype=0x38, x=0xa8, y=0x48, paramA=0x4, paramB=0x20d, script=script_TownMinish1 entity_list_end Entities_TownMinishHoles_Cafe_1:: @ 080DB720 @@ -5155,11 +5155,11 @@ Room_TownMinishHoles_5:: @ 080DB7E0 .4byte sub_StateChange_TownMinishHoles_5 Entities_TownMinishHoles_LibraryBookshelf_0:: @ 080DB800 - npc_raw subtype=0x38, x=0xc0, y=0xd0, paramB=0x201, script=script_0800E6E8 + npc_raw subtype=0x38, x=0xc0, y=0xd0, paramB=0x201, script=script_TownMinish1 entity_list_end gUnk_additional_a_TownMinishHoles_LibraryBookshelf:: @ 080DB820 - npc_raw subtype=0x38, x=0x80, y=0x158, paramA=0x2, paramB=0x200, script=script_0800E6E8 + npc_raw subtype=0x38, x=0x80, y=0x158, paramA=0x2, paramB=0x200, script=script_TownMinish1 entity_list_end Entities_TownMinishHoles_LibraryBookshelf_1:: @ 080DB840 @@ -5209,11 +5209,11 @@ Room_TownMinishHoles_LibraryBookshelf:: @ 080DB9BC .4byte gUnk_additional_a_TownMinishHoles_LibraryBookshelf Entities_TownMinishHoles_LibrariBookHouse_0:: @ 080DB9E8 - npc_raw subtype=0x39, x=0x78, y=0x58, script=script_0800E964 + npc_raw subtype=0x39, x=0x78, y=0x58, script=script_Librari entity_list_end gUnk_080DBA08:: @ 080DBA08 - npc_raw subtype=0x38, x=0x90, y=0x80, paramA=0x2, paramB=0x200, script=script_0800E6E8 + npc_raw subtype=0x38, x=0x90, y=0x80, paramA=0x2, paramB=0x200, script=script_TownMinish1 entity_list_end Entities_TownMinishHoles_LibrariBookHouse_1:: @ 080DBA28 @@ -5244,15 +5244,15 @@ Entities_TownMinishHoles_RemShoeShop_0:: @ 080DBAA0 entity_list_end gUnk_080DBAD0:: @ 080DBAD0 - npc_raw subtype=0x38, x=0x68, y=0x88, paramB=0x200, script=script_08013114 - npc_raw subtype=0x38, x=0x98, y=0xa8, paramB=0x200, script=script_08013114 - npc_raw subtype=0x38, x=0xd8, y=0x78, paramB=0x200, script=script_08013114 + npc_raw subtype=0x38, x=0x68, y=0x88, paramB=0x200, script=script_RemTownMinish + npc_raw subtype=0x38, x=0x98, y=0xa8, paramB=0x200, script=script_RemTownMinish + npc_raw subtype=0x38, x=0xd8, y=0x78, paramB=0x200, script=script_RemTownMinish entity_list_end gUnk_080DBB10:: @ 080DBB10 - npc_raw subtype=0x38, x=0x92, y=0xe8, paramB=0x200, script=script_08013114 - npc_raw subtype=0x38, x=0xb8, y=0xb8, paramB=0x200, script=script_08013114 - npc_raw subtype=0x38, x=0xee, y=0xd0, paramB=0x200, script=script_08013114 + npc_raw subtype=0x38, x=0x92, y=0xe8, paramB=0x200, script=script_RemTownMinish + npc_raw subtype=0x38, x=0xb8, y=0xb8, paramB=0x200, script=script_RemTownMinish + npc_raw subtype=0x38, x=0xee, y=0xd0, paramB=0x200, script=script_RemTownMinish entity_list_end gUnk_080DBB50:: @ 080DBB50 @@ -5264,7 +5264,7 @@ gUnk_080DBB70:: @ 080DBB70 entity_list_end gUnk_080DBB90:: @ 080DBB90 - object_raw subtype=0x69, unknown=0x48, paramC=script_08013188 + object_raw subtype=0x69, unknown=0x48, paramC=script_Object69Rem entity_list_end Enemies_TownMinishHoles_RemShoeShop:: @ 080DBBB0 @@ -5587,7 +5587,7 @@ gUnk_080DC470:: @ 080DC470 entity_list_end gUnk_080DC4C0:: @ 080DC4C0 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800C91C + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69VillageIntro npc_raw subtype=0x3, x=0x208, y=0x2f0, unknown=0xf, collision=1, paramB=0x227, script=0x0 npc_raw subtype=0x3, x=0x198, y=0x330, unknown=0xf, collision=1, paramB=0x128, script=0x0 npc_raw subtype=0x3, x=0x278, y=0x330, unknown=0xf, collision=1, paramB=0x329, script=0x0 @@ -6186,10 +6186,10 @@ Room_MinishCracks_11:: @ 080DD124 .4byte sub_StateChange_MinishCracks_11 Entities_MelarisMine_Main_0:: @ 080DD144 - npc_raw subtype=0x2d, x=0x168, y=0x48, script=script_0800CF88 - npc_raw subtype=0x2d, x=0x238, y=0x48, paramB=0x1, script=script_0800CF88 - npc_raw subtype=0x2d, x=0x268, y=0x138, paramA=0x6, paramB=0x2, script=script_0800CF50 - npc_raw subtype=0x2d, x=0x128, y=0x1e8, paramA=0x2, paramB=0x3, script=script_0800D414 + npc_raw subtype=0x2d, x=0x168, y=0x48, script=script_MountainMinish2 + npc_raw subtype=0x2d, x=0x238, y=0x48, paramB=0x1, script=script_MountainMinish2 + npc_raw subtype=0x2d, x=0x268, y=0x138, paramA=0x6, paramB=0x2, script=script_MountainMinish1 + npc_raw subtype=0x2d, x=0x128, y=0x1e8, paramA=0x2, paramB=0x3, script=script_MountainMinish5 object_raw subtype=0x0, x=0xe8, y=0xe8, collision=1, paramA=0x5c, paramB=0x771, paramC=0xb90000 object_raw subtype=0x0, x=0x1f8, y=0x48, collision=1, paramA=0x56, paramB=0x700, paramC=0xba0000 object_raw subtype=0x0, x=0xd8, y=0x48, collision=1, paramA=0x5c, paramB=0x772, paramC=0xbb0000 @@ -6201,19 +6201,19 @@ Entities_MelarisMine_Main_0:: @ 080DD144 entity_list_end gUnk_additional_8_MelarisMine_Main:: @ 080DD214 - npc_raw subtype=0x2d, x=0x1ba, y=0x138, paramA=0x6, paramB=0x5, script=script_0800D278 - npc_raw subtype=0x2d, x=0x1ba, y=0x148, paramA=0x6, paramB=0x6, script=script_0800D278 - npc_raw subtype=0x2f, x=0x190, y=0x140, script=script_0800CFAC - object_raw subtype=0x6a, x=0x1a8, y=0x138, unknown=0x4f, paramA=0x8, paramC=script_0800D218 - object_raw subtype=0x6a, x=0x1a8, y=0x138, unknown=0x4f, paramA=0x9, paramC=script_0800D254 + npc_raw subtype=0x2d, x=0x1ba, y=0x138, paramA=0x6, paramB=0x5, script=script_MountainMinish3 + npc_raw subtype=0x2d, x=0x1ba, y=0x148, paramA=0x6, paramB=0x6, script=script_MountainMinish3 + npc_raw subtype=0x2f, x=0x190, y=0x140, script=script_Melari + object_raw subtype=0x6a, x=0x1a8, y=0x138, unknown=0x4f, paramA=0x8, paramC=script_Object6ABrokenSword + object_raw subtype=0x6a, x=0x1a8, y=0x138, unknown=0x4f, paramA=0x9, paramC=script_Object6ARepairedSword entity_list_end gUnk_additional_9_MelarisMine_Main:: @ 080DD274 - npc_raw subtype=0x2d, x=0x80, y=0x130, paramA=0x2, paramB=0x4, script=script_0800D350 + npc_raw subtype=0x2d, x=0x80, y=0x130, paramA=0x2, paramB=0x4, script=script_MountainMinish4 entity_list_end gUnk_080DD294:: @ 080DD294 - npc_raw subtype=0x2d, x=0xa0, y=0x130, paramA=0x4, paramB=0x4, script=script_0800CF50 + npc_raw subtype=0x2d, x=0xa0, y=0x130, paramA=0x4, paramB=0x4, script=script_MountainMinish1 entity_list_end Entities_MelarisMine_Main_1:: @ 080DD2B4 @@ -6250,7 +6250,7 @@ Entities_CloudTops_House_0:: @ 080DD344 entity_list_end gUnk_080DD364:: @ 080DD364 - object_raw subtype=0xbb, x=0x1e8, y=0x1a8, unknown=0x4f, paramB=0x2, paramC=script_0800B00C + object_raw subtype=0xbb, x=0x1e8, y=0x1a8, unknown=0x4f, paramB=0x2, paramC=script_Windcrest entity_list_end Entities_CloudTops_House_1:: @ 080DD384 @@ -6375,9 +6375,9 @@ gUnk_080DD730:: @ 080DD730 entity_list_end gUnk_080DD750:: @ 080DD750 - object_raw subtype=0x69, x=0x1e8, y=0x1b8, unknown=0x4f, paramC=script_0800D710 - npc_raw subtype=0x49, x=0x268, y=0x1d8, paramA=0x1, paramB=0x60b, script=script_0800D7DC - npc_raw subtype=0x49, x=0x1a8, y=0x1f8, paramA=0x3, paramB=0x40a, script=script_0800D76C + object_raw subtype=0x69, x=0x1e8, y=0x1b8, unknown=0x4f, paramC=script_Object69GreatWhirlwindRevealed + npc_raw subtype=0x49, x=0x268, y=0x1d8, paramA=0x1, paramB=0x60b, script=script_WindTribespeopleGreatWhirlwindRevealed2 + npc_raw subtype=0x49, x=0x1a8, y=0x1f8, paramA=0x3, paramB=0x40a, script=script_WindTribespeopleGreatWhirlwindRevealed1 entity_list_end Entities_CloudTops_Bottom_0:: @ 080DD790 @@ -6445,13 +6445,13 @@ gUnk_additional_8_CloudTops_Bottom:: @ 080DD8F0 delayed_entity_raw subtype=0x5e, x=0x338, y=0x2e8, layer=1, paramB=0x1, conditions=0xffff delayed_entity_raw subtype=0x5e, x=0x378, y=0x398, layer=1, paramB=0x1, conditions=0xffff delayed_entity_raw subtype=0x5e, x=0x398, y=0x1a8, layer=1, paramB=0x1, conditions=0xffff - delayed_entity_raw subtype=0x5e, x=0x248, y=0x48, layer=1, paramB=0x1, paramC=script_0800D6D0, conditions=0xffff - delayed_entity_raw subtype=0x5e, x=0x268, y=0x2d8, layer=1, paramB=0x1, paramC=script_0800D6F0, conditions=0xffff - delayed_entity_raw subtype=0x6a, x=0x3a8, y=0x40, layer=1, paramA=0x12, paramB=0x1, paramC=script_0800D6B4, paramD=0x1, conditions=0xffff - delayed_entity_raw subtype=0x6a, x=0x138, y=0x2c0, layer=1, paramA=0x12, paramB=0x2, paramC=script_0800D6B4, paramD=0x1, conditions=0xffff - delayed_entity_raw subtype=0x6a, x=0x48, y=0x30, layer=1, paramA=0x12, paramB=0x3, paramC=script_0800D6B4, paramD=0x1, conditions=0xffff - delayed_entity_raw subtype=0x6a, x=0x2f8, y=0x1d0, layer=1, paramA=0x12, paramB=0x4, paramC=script_0800D6B4, paramD=0x1, conditions=0xffff - delayed_entity_raw subtype=0x6a, x=0x3a8, y=0x2d0, layer=1, paramA=0x12, paramB=0x5, paramC=script_0800D6B4, paramD=0x1, conditions=0xffff + delayed_entity_raw subtype=0x5e, x=0x248, y=0x48, layer=1, paramB=0x1, paramC=script_HiddenWhirlwind1, conditions=0xffff + delayed_entity_raw subtype=0x5e, x=0x268, y=0x2d8, layer=1, paramB=0x1, paramC=script_HiddenWhirlwind2, conditions=0xffff + delayed_entity_raw subtype=0x6a, x=0x3a8, y=0x40, layer=1, paramA=0x12, paramB=0x1, paramC=script_Object6AMysteriousCloud, paramD=0x1, conditions=0xffff + delayed_entity_raw subtype=0x6a, x=0x138, y=0x2c0, layer=1, paramA=0x12, paramB=0x2, paramC=script_Object6AMysteriousCloud, paramD=0x1, conditions=0xffff + delayed_entity_raw subtype=0x6a, x=0x48, y=0x30, layer=1, paramA=0x12, paramB=0x3, paramC=script_Object6AMysteriousCloud, paramD=0x1, conditions=0xffff + delayed_entity_raw subtype=0x6a, x=0x2f8, y=0x1d0, layer=1, paramA=0x12, paramB=0x4, paramC=script_Object6AMysteriousCloud, paramD=0x1, conditions=0xffff + delayed_entity_raw subtype=0x6a, x=0x3a8, y=0x2d0, layer=1, paramA=0x12, paramB=0x5, paramC=script_Object6AMysteriousCloud, paramD=0x1, conditions=0xffff delayed_entity_raw subtype=0xbe, x=0x228, y=0x1a0, layer=2, conditions=0xffff delayed_entity_raw subtype=0xbe, x=0x1c8, y=0x1e0, layer=2, paramB=0x1, conditions=0xffff delayed_entity_raw subtype=0xbe, x=0x1b8, y=0x1a0, layer=2, paramB=0x2, conditions=0xffff @@ -6469,14 +6469,14 @@ gUnk_additional_8_CloudTops_Bottom:: @ 080DD8F0 delayed_entity_raw subtype=0x5e, x=0x338, y=0x2e8, layer=1, paramB=0x1, conditions=0xffff delayed_entity_raw subtype=0x5e, x=0x378, y=0x398, layer=1, paramB=0x1, conditions=0xffff delayed_entity_raw subtype=0x5e, x=0x398, y=0x1a8, layer=1, paramB=0x1, conditions=0xffff - delayed_entity_raw subtype=0x5e, x=0x248, y=0x48, layer=1, paramB=0x1, paramC=script_0800D6D0, conditions=0xffff - delayed_entity_raw subtype=0x5e, x=0x268, y=0x2d8, layer=1, paramB=0x1, paramC=script_0800D6F0, conditions=0xffff - delayed_entity_raw subtype=0x5e, x=0x1e8, y=0x398, layer=1, paramB=0x1, paramC=script_0800D6F0, conditions=0xffff - delayed_entity_raw subtype=0x6a, x=0x3a8, y=0x40, layer=1, paramA=0x12, paramB=0x1, paramC=script_0800D6B4, paramD=0x1, conditions=0xffff - delayed_entity_raw subtype=0x6a, x=0x138, y=0x2c0, layer=1, paramA=0x12, paramB=0x2, paramC=script_0800D6B4, paramD=0x1, conditions=0xffff - delayed_entity_raw subtype=0x6a, x=0x48, y=0x30, layer=1, paramA=0x12, paramB=0x3, paramC=script_0800D6B4, paramD=0x1, conditions=0xffff - delayed_entity_raw subtype=0x6a, x=0x2f8, y=0x1d0, layer=1, paramA=0x12, paramB=0x4, paramC=script_0800D6B4, paramD=0x1, conditions=0xffff - delayed_entity_raw subtype=0x6a, x=0x3a8, y=0x2d0, layer=1, paramA=0x12, paramB=0x5, paramC=script_0800D6B4, paramD=0x1, conditions=0xffff + delayed_entity_raw subtype=0x5e, x=0x248, y=0x48, layer=1, paramB=0x1, paramC=script_HiddenWhirlwind1, conditions=0xffff + delayed_entity_raw subtype=0x5e, x=0x268, y=0x2d8, layer=1, paramB=0x1, paramC=script_HiddenWhirlwind2, conditions=0xffff + delayed_entity_raw subtype=0x5e, x=0x1e8, y=0x398, layer=1, paramB=0x1, paramC=script_HiddenWhirlwind2, conditions=0xffff + delayed_entity_raw subtype=0x6a, x=0x3a8, y=0x40, layer=1, paramA=0x12, paramB=0x1, paramC=script_Object6AMysteriousCloud, paramD=0x1, conditions=0xffff + delayed_entity_raw subtype=0x6a, x=0x138, y=0x2c0, layer=1, paramA=0x12, paramB=0x2, paramC=script_Object6AMysteriousCloud, paramD=0x1, conditions=0xffff + delayed_entity_raw subtype=0x6a, x=0x48, y=0x30, layer=1, paramA=0x12, paramB=0x3, paramC=script_Object6AMysteriousCloud, paramD=0x1, conditions=0xffff + delayed_entity_raw subtype=0x6a, x=0x2f8, y=0x1d0, layer=1, paramA=0x12, paramB=0x4, paramC=script_Object6AMysteriousCloud, paramD=0x1, conditions=0xffff + delayed_entity_raw subtype=0x6a, x=0x3a8, y=0x2d0, layer=1, paramA=0x12, paramB=0x5, paramC=script_Object6AMysteriousCloud, paramD=0x1, conditions=0xffff delayed_entity_raw subtype=0xbe, x=0x228, y=0x1a0, layer=2, conditions=0xffff delayed_entity_raw subtype=0xbe, x=0x1c8, y=0x1e0, layer=2, paramB=0x1, conditions=0xffff delayed_entity_raw subtype=0xbe, x=0x1b8, y=0x1a0, layer=2, paramB=0x2, conditions=0xffff @@ -6486,13 +6486,13 @@ gUnk_additional_8_CloudTops_Bottom:: @ 080DD8F0 .endif gUnk_additional_9_CloudTops_Bottom:: @ 080DDA70 - delayed_entity_raw subtype=0x4e, x=0x3a8, y=0x48, layer=1, paramA=0x1, paramC=script_0800D60C, conditions=0xffff - delayed_entity_raw subtype=0x4e, x=0x138, y=0x2c8, layer=1, paramA=0x2, paramC=script_0800D60C, conditions=0xffff - delayed_entity_raw subtype=0x4e, x=0x48, y=0x38, layer=1, paramA=0x3, paramC=script_0800D60C, conditions=0xffff - delayed_entity_raw subtype=0x4e, x=0x2f8, y=0x1d8, layer=1, paramA=0x4, paramC=script_0800D60C, conditions=0xffff - delayed_entity_raw subtype=0x4e, x=0x3a8, y=0x2d8, layer=1, paramA=0x5, paramC=script_0800D60C, conditions=0xffff - delayed_entity_raw subtype=0x49, x=0x2d8, y=0x1d8, layer=1, paramA=0x1, paramB=0xb, paramC=script_08014C94, paramD=0x4, conditions=0xffff - delayed_entity_raw subtype=0x49, x=0x1a8, y=0x1f8, layer=1, paramA=0x3, paramB=0xa, paramC=script_08014C94, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x4e, x=0x3a8, y=0x48, layer=1, paramA=0x1, paramC=script_Npc4EFirstCloud, conditions=0xffff + delayed_entity_raw subtype=0x4e, x=0x138, y=0x2c8, layer=1, paramA=0x2, paramC=script_Npc4EFirstCloud, conditions=0xffff + delayed_entity_raw subtype=0x4e, x=0x48, y=0x38, layer=1, paramA=0x3, paramC=script_Npc4EFirstCloud, conditions=0xffff + delayed_entity_raw subtype=0x4e, x=0x2f8, y=0x1d8, layer=1, paramA=0x4, paramC=script_Npc4EFirstCloud, conditions=0xffff + delayed_entity_raw subtype=0x4e, x=0x3a8, y=0x2d8, layer=1, paramA=0x5, paramC=script_Npc4EFirstCloud, conditions=0xffff + delayed_entity_raw subtype=0x49, x=0x2d8, y=0x1d8, layer=1, paramA=0x1, paramB=0xb, paramC=script_WindTribespeople7, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x49, x=0x1a8, y=0x1f8, layer=1, paramA=0x3, paramB=0xa, paramC=script_WindTribespeople7, paramD=0x4, conditions=0xffff entity_list_end Enemies_CloudTops_Bottom:: @ 080DDAF0 @@ -6720,7 +6720,7 @@ Entities_Ruins_FortressEntrance_0:: @ 080DDFE8 entity_list_end gUnk_080DE008:: @ 080DE008 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800AF8C + object_raw subtype=0x69, unknown=0x4f, paramC=script_EzloTalkFoW entity_list_end Entities_Ruins_FortressEntrance_1:: @ 080DE028 @@ -7645,7 +7645,7 @@ Entities_DeepwoodShrineEntry_Main_0:: @ 080DFB68 entity_list_end gUnk_080DFB78:: @ 080DFB78 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800AF44 + object_raw subtype=0x69, unknown=0x4f, paramC=script_EzloTalkDWS entity_list_end Enemies_DeepwoodShrineEntry_Main:: @ 080DFB98 @@ -9457,8 +9457,8 @@ Room_InnerMazaal_Main:: @ 080E3790 .4byte sub_StateChange_Dojos_71 Entities_FortressOfWindsTop_Main_0:: @ 080E37B0 - npc_raw subtype=0x4e, x=0xa0, y=0x58, script=script_0800D874 - npc_raw subtype=0x4e, x=0xa0, y=0x58, script=script_0800D8E4 + npc_raw subtype=0x4e, x=0xa0, y=0x58, script=script_Npc4EWindRuinsTextBoard + npc_raw subtype=0x4e, x=0xa0, y=0x58, script=script_Npc4EReceiveOcarina object_raw subtype=0x95, x=0xe8, y=0x108, collision=2, paramA=0x3 object_raw subtype=0x95, x=0x38, y=0xd8, collision=2, paramA=0x4 object_raw subtype=0x95, x=0x108, y=0xd8, collision=2, paramA=0x5 @@ -11023,8 +11023,8 @@ Entities_RoyalCrypt_KingGustaf_0:: @ 080E67AC entity_list_end gUnk_080E693C:: @ 080E693C - npc_raw subtype=0x42, x=0x118, y=0x48, script=script_0800D954 - object_raw subtype=0x6a, x=0x118, y=0x28, unknown=0x4f, paramA=0x12, paramB=0x9, paramC=script_0800DA28 + npc_raw subtype=0x42, x=0x118, y=0x48, script=script_KingGustav + object_raw subtype=0x6a, x=0x118, y=0x28, unknown=0x4f, paramA=0x12, paramB=0x9, paramC=script_Object6AKingsGravestone entity_list_end Enemies_RoyalCrypt_KingGustaf:: @ 080E696C @@ -13079,7 +13079,7 @@ Room_PalaceOfWindsBoss_Main:: @ 080EAA58 .4byte sub_StateChange_PalaceOfWindsBoss_Main Entities_Vaati2_Main_0:: @ 080EAA78 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800DFE4 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69V2Intro npc_raw subtype=0x3b, x=0xb0, y=0x88, unknown=0xf, script=0x0 ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0c, flag=0x7b entity_list_end @@ -13108,7 +13108,7 @@ Room_Vaati2_Main:: @ 080EAB00 Entities_Vaati3_Main_0:: @ 080EAB20 manager subtype=0x2f, unknown=0x8 manager subtype=0x37, paramA=0x1 - npc_raw subtype=0x4e, script=script_0800A0FC + npc_raw subtype=0x4e, script=script_Npc4EV3Defeated object_raw subtype=0x74, x=0xb0, y=0x28, collision=1, paramC=0xffff0000 manager subtype=0x3, x=0xb0, y=0x28, unknown=0x0, paramA=0x3, paramB=0x102 ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0d, flag=0x4051 @@ -13131,7 +13131,7 @@ Room_Vaati3_Main:: @ 080EABA8 .4byte sub_StateChange_Vaati3_Main Entities_DarkHyruleCastleBridge_Main_0:: @ 080EABC8 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800E4A4 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69BallAndChainSoldierRoom object_raw subtype=0x39, x=0x88, y=0x118, paramA=0x6, paramC=0xffff entity_list_end @@ -13211,15 +13211,15 @@ Entities_DarkHyruleCastleOutside_ZeldaStatuePlatform_1:: @ 080EAD48 entity_list_end gUnk_080EAD68:: @ 080EAD68 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800DA60 - npc_raw subtype=0x28, x=0x78, y=0x68, script=script_0800DB18 - npc_raw subtype=0x27, x=0x78, y=0x96, paramA=0x1, script=script_0800DB28 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69VaatiWithZelda + npc_raw subtype=0x28, x=0x78, y=0x68, script=script_ZeldaStoneInDHC + npc_raw subtype=0x27, x=0x78, y=0x96, paramA=0x1, script=script_VaatiWithZelda object_raw subtype=0xab, x=0x78, y=0x138 entity_list_end gUnk_080EADB8:: @ 080EADB8 - npc_raw subtype=0x4e, script=script_0800DB78 - npc_raw subtype=0x28, x=0x78, y=0x68, script=script_0800DCAC + npc_raw subtype=0x4e, script=script_Npc4EAfterDefeatingV2 + npc_raw subtype=0x28, x=0x78, y=0x68, script=script_ZeldaAfterDefeatingV2 entity_list_end Enemies_DarkHyruleCastleOutside_ZeldaStatuePlatform:: @ 080EADE8 @@ -13246,9 +13246,9 @@ Entities_DarkHyruleCastleOutside_Garden_0:: @ 080EAE40 entity_list_end gUnk_080EAE60:: @ 080EAE60 - npc_raw subtype=0x25, x=0xb8, y=0x138, script=script_0800E0BC - npc_raw subtype=0x15, x=0x68, y=0x118, paramB=0x24, script=script_0800E154 - npc_raw subtype=0x15, x=0x88, y=0x180, paramB=0x25, script=script_0800E200 + npc_raw subtype=0x25, x=0xb8, y=0x138, script=script_MinishterPothoStone + npc_raw subtype=0x15, x=0x68, y=0x118, paramB=0x24, script=script_GuardStone1 + npc_raw subtype=0x15, x=0x88, y=0x180, paramB=0x25, script=script_GuardStone2 ezlo_hint x=0x4, y=0x1e, rx=0xd, ry=0x9, msg=0xb25, flag=0x85 .ifndef EU manager subtype=0xf, paramA=0xe @@ -13256,15 +13256,15 @@ gUnk_080EAE60:: @ 080EAE60 entity_list_end gUnk_080EAEC0:: @ 080EAEC0 - npc_raw subtype=0x4e, script=script_0800A1D8 - npc_raw subtype=0xf, x=0x88, y=0x68, script=script_0800A340 - npc_raw subtype=0x28, x=0x58, y=0x88, script=script_0800A3D8 - npc_raw subtype=0x4d, x=0x88, y=0x88, script=script_0800A590 - object_raw subtype=0x6a, x=0x88, y=0xa8, unknown=0x4f, paramA=0x1, paramC=script_0800A500 + npc_raw subtype=0x4e, script=script_Npc4EOutro + npc_raw subtype=0xf, x=0x88, y=0x68, script=script_MinishEzloOutro + npc_raw subtype=0x28, x=0x58, y=0x88, script=script_ZeldaOutro + npc_raw subtype=0x4d, x=0x88, y=0x88, script=script_EzloCapOutro + object_raw subtype=0x6a, x=0x88, y=0xa8, unknown=0x4f, paramA=0x1, paramC=script_Object6AMinishCapOutro entity_list_end gUnk_080EAF20:: @ 080EAF20 - npc_raw subtype=0x4e, script=script_0800AAD8 + npc_raw subtype=0x4e, script=script_Npc4ESanctuaryEntrance entity_list_end Entities_DarkHyruleCastleOutside_Garden_1:: @ 080EAF40 @@ -13503,12 +13503,12 @@ Entities_DarkHyruleCastle_0_0:: @ 080EB594 entity_list_end gUnk_080EB5D4:: @ 080EB5D4 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800DE78 - npc_raw subtype=0x28, x=0xd8, y=0x178, script=script_0800DED4 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69CastleEscape + npc_raw subtype=0x28, x=0xd8, y=0x178, script=script_ZeldaCastleEscape entity_list_end gUnk_080EB604:: @ 080EB604 - npc_raw subtype=0x4e, script=script_0800A704 + npc_raw subtype=0x4e, script=script_Npc4EDHCEntrance object_raw subtype=0x6a, x=0x1e8, y=0x1d8, collision=1, paramA=0x5, paramB=0x2 object_raw subtype=0x6a, x=0x198, y=0x198, collision=1, paramA=0x5, paramB=0x102 object_raw subtype=0x6a, x=0x150, y=0x1c0, collision=1, paramA=0x5, paramB=0x202 @@ -13627,7 +13627,7 @@ Room_DarkHyruleCastle_4:: @ 080EB864 .4byte sub_StateChange_Dojos_ToSplitblade0 Entities_DarkHyruleCastle_5_0:: @ 080EB884 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800E504 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69KeatonsRoom object_raw subtype=0x3, x=0x78, y=0x48, paramA=0x1, paramC=0x80000001 object_raw subtype=0x3, x=0x98, y=0x48, paramA=0x1, paramC=0x80010001 object_raw subtype=0x3, x=0xb8, y=0x48, paramA=0x1, paramC=0x80020001 @@ -13667,7 +13667,7 @@ Entities_DarkHyruleCastle_6_0:: @ 080EB9E4 entity_list_end gUnk_080EB9F4:: @ 080EB9F4 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800E544 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69DarkNutsRoom manager subtype=0x1e, x=0x30, y=0xa0, paramB=0x2000f0, paramC=0x80000000 manager subtype=0x35, x=0xa8, y=0x58, paramB=0x3c1e00, paramC=0x80008001 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x80028001 @@ -13682,14 +13682,14 @@ gUnk_080EB9F4:: @ 080EB9F4 entity_list_end gUnk_080EBAA4:: @ 080EBAA4 - npc_raw subtype=0x27, x=0xa8, y=0x58, paramA=0x1, script=script_0800DF24 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800DFB4 + npc_raw subtype=0x27, x=0xa8, y=0x58, paramA=0x1, script=script_Vaati1Intro + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69V1Defeated object_raw subtype=0x8, x=0xa8, y=0x28, paramC=0xffff object_raw subtype=0x39, x=0xa8, y=0xd8, paramA=0x6, paramC=0xffff entity_list_end gUnk_080EBAF4:: @ 080EBAF4 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800E050 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69V2Defeated object_raw subtype=0x8, x=0xa8, y=0x28, paramC=0x80000000 object_raw subtype=0x39, x=0xa8, y=0xd8, paramA=0x6, paramC=0x80000000 entity_list_end @@ -13845,7 +13845,7 @@ gUnk_additional_8_DarkHyruleCastle_10:: @ 080EBFD8 enemy_raw subtype=0x5, x=0x88, y=0x38, unknown=0x2f, paramA=0x3, paramB=0xe160000, paramC=0x300030 object_raw subtype=0x8, x=0x88, y=0xa8, paramA=0x12, paramC=0x86ffff object_raw subtype=0x39, x=0x88, y=0x28, paramA=0x4, paramC=0x86ffff - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800E5C4 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69DHC ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0a, flag=0x86 entity_list_end @@ -14497,7 +14497,7 @@ Entities_DarkHyruleCastle_31_0:: @ 080ED194 entity_list_end gUnk_080ED1E4:: @ 080ED1E4 - npc_raw subtype=0x4e, script=script_0800A6A4 + npc_raw subtype=0x4e, script=script_Npc4EDHCThrone object_raw subtype=0x6a, x=0xc0, y=0x40, collision=1, paramA=0x5, paramB=0x102 object_raw subtype=0x6a, x=0xa0, y=0x80, collision=1, paramA=0x5, paramB=0x202 object_raw subtype=0x6a, x=0x50, y=0x60, collision=1, paramA=0x5, paramB=0x302 @@ -15253,13 +15253,13 @@ Entities_DarkHyruleCastle_57_0:: @ 080EE68C manager subtype=0x35, x=0xe0, y=0x68, paramB=0x3c1e00, paramC=0x8f0081 object_raw subtype=0xb1, x=0x80, y=0x78, paramC=0x810000 object_raw subtype=0xb1, x=0x140, y=0x78, paramC=0x810000 - npc_raw subtype=0x24, x=0x120, y=0x58, script=script_0800E350 + npc_raw subtype=0x24, x=0x120, y=0x58, script=script_KingDaltusStone entity_list_end gUnk_080EE71C:: @ 080EE71C - npc_raw subtype=0x25, x=0x138, y=0x38, script=script_0800E408 - npc_raw subtype=0x15, x=0x128, y=0x88, paramB=0x24, script=script_0800E434 - npc_raw subtype=0x15, x=0x168, y=0x88, paramB=0x25, script=script_0800E46C + npc_raw subtype=0x25, x=0x138, y=0x38, script=script_MinisterPothoCell + npc_raw subtype=0x15, x=0x128, y=0x88, paramB=0x24, script=script_GuardCellLeft + npc_raw subtype=0x15, x=0x168, y=0x88, paramB=0x25, script=script_GuardCellRight entity_list_end Enemies_DarkHyruleCastle_57:: @ 080EE75C @@ -15328,18 +15328,18 @@ Entities_HyruleTown_0_0:: @ 080EE80C object_raw subtype=0xb7, x=0x2f8, y=0x278 manager subtype=0x1a, unknown=0x8, paramA=0x3c manager subtype=0x16, paramA=0xf - npc_raw subtype=0x4, x=0x1f8, y=0x1d8, script=script_08010AE4 + npc_raw subtype=0x4, x=0x1f8, y=0x1d8, script=script_Postman entity_list_end gUnk_080EE88C:: @ 080EE88C - npc_raw subtype=0x4e, script=script_0800F090 + npc_raw subtype=0x4e, script=script_Npc4EFirstKinstone entity_list_end gUnk_080EE8AC:: @ 080EE8AC - npc_raw subtype=0x53, x=0x158, y=0x328, script=script_0800F184 - npc_raw subtype=0x7, x=0x148, y=0x328, paramA=0x6, script=script_0800F39C - npc_raw subtype=0x7, x=0x134, y=0x328, paramA=0x7, script=script_0800F430 - npc_raw subtype=0x7, x=0x120, y=0x328, paramA=0x8, script=script_0800F4C4 + npc_raw subtype=0x53, x=0x158, y=0x328, script=script_HurdyGurdyManFirstKinstone + npc_raw subtype=0x7, x=0x148, y=0x328, paramA=0x6, script=script_KidKinstone1 + npc_raw subtype=0x7, x=0x134, y=0x328, paramA=0x7, script=script_KidKinstone2 + npc_raw subtype=0x7, x=0x120, y=0x328, paramA=0x8, script=script_KidKinstone3 entity_list_end gUnk_080EE8FC:: @ 080EE8FC @@ -15427,17 +15427,17 @@ gUnk_080EEB8C:: @ 080EEB8C entity_list_end gUnk_080EEBAC:: @ 080EEBAC - object_raw subtype=0xbb, x=0x278, y=0x58, unknown=0x4f, paramB=0x3, paramC=script_0800B00C + object_raw subtype=0xbb, x=0x278, y=0x58, unknown=0x4f, paramB=0x3, paramC=script_Windcrest entity_list_end Entities_HyruleTown_1_0:: @ 080EEBCC manager subtype=0x16, paramA=0x9 - npc_raw subtype=0x4e, script=script_0800F73C - npc_raw subtype=0x28, x=0xc8, y=0x3c8, script=script_0800FB44 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800FD0C + npc_raw subtype=0x4e, script=script_Npc4EIntroTown + npc_raw subtype=0x28, x=0xc8, y=0x3c8, script=script_ZeldaIntroTown + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69IntroTown object_raw subtype=0x95, x=0x144, y=0x4c, collision=2, paramA=0x4 object_raw subtype=0x95, x=0x178, y=0xa8, collision=2, paramA=0x7 - object_raw subtype=0xbb, x=0x148, y=0x58, unknown=0x4f, paramB=0x3, paramC=script_0800B00C + object_raw subtype=0xbb, x=0x148, y=0x58, unknown=0x4f, paramB=0x3, paramC=script_Windcrest entity_list_end Entities_HyruleTown_1_1:: @ 080EEC4C @@ -15605,83 +15605,83 @@ gUnk_additional_2c_HyruleTown_0:: @ 080EF09C .incbin "data_080D5360/gUnk_additional_2c_HyruleTown_0.bin" gUnk_additional_f_HyruleTown_0:: @ 080EF0B0 - delayed_entity_raw subtype=0x6, x=0x298, y=0x268, layer=1, paramA=0x8, paramC=script_080100C8, paramD=0x4, conditions=0x1c - delayed_entity_raw subtype=0x6, x=0x238, y=0x118, layer=1, paramA=0xa, paramC=script_080100FC, paramD=0x4, conditions=0x1fc - delayed_entity_raw subtype=0x6, x=0x1a8, y=0x308, layer=1, paramA=0xb, paramC=script_080100FC, paramD=0x4, conditions=0x1fc - delayed_entity_raw subtype=0x6, x=0x2ec, y=0x2a8, layer=1, paramA=0x6, paramC=script_080100C8, paramD=0x2, conditions=0x3c - delayed_entity_raw subtype=0x6, x=0x1d8, y=0x228, layer=1, paramA=0x6, paramC=script_080100FC, paramD=0x4, conditions=0xc0 - delayed_entity_raw subtype=0x6, x=0x328, y=0x168, layer=1, paramA=0x1, paramC=script_080100FC, paramD=0x4, conditions=0xfc - delayed_entity_raw subtype=0x6, x=0x1c8, y=0x278, layer=1, paramA=0x2, paramC=script_080100FC, paramD=0x4, conditions=0xfc - delayed_entity_raw subtype=0x6, x=0x58, y=0x328, layer=1, paramA=0x11, paramC=script_080100FC, paramD=0x4, conditions=0x1fc - delayed_entity_raw subtype=0x6, x=0x88, y=0x1a8, layer=1, paramA=0x12, paramC=script_080100C8, paramD=0x6, conditions=0xfc - delayed_entity_raw subtype=0x6, x=0x1e8, y=0x1a8, layer=1, paramA=0x13, paramC=script_080100FC, paramD=0x4, conditions=0x1e0 - delayed_entity_raw subtype=0x6, x=0x238, y=0x308, layer=1, paramA=0x10, paramC=script_080100FC, paramD=0x2, conditions=0xfc - delayed_entity_raw subtype=0x48, x=0x2c8, y=0xac, layer=1, paramA=0x1, paramC=script_0800E7F4, paramD=0x4, conditions=0x3c - delayed_entity_raw subtype=0x45, x=0x358, y=0x378, layer=1, paramC=script_08010148, paramD=0x6, conditions=0x3fc + delayed_entity_raw subtype=0x6, x=0x298, y=0x268, layer=1, paramA=0x8, paramC=script_Townsperson1, paramD=0x4, conditions=0x1c + delayed_entity_raw subtype=0x6, x=0x238, y=0x118, layer=1, paramA=0xa, paramC=script_Townsperson2, paramD=0x4, conditions=0x1fc + delayed_entity_raw subtype=0x6, x=0x1a8, y=0x308, layer=1, paramA=0xb, paramC=script_Townsperson2, paramD=0x4, conditions=0x1fc + delayed_entity_raw subtype=0x6, x=0x2ec, y=0x2a8, layer=1, paramA=0x6, paramC=script_Townsperson1, paramD=0x2, conditions=0x3c + delayed_entity_raw subtype=0x6, x=0x1d8, y=0x228, layer=1, paramA=0x6, paramC=script_Townsperson2, paramD=0x4, conditions=0xc0 + delayed_entity_raw subtype=0x6, x=0x328, y=0x168, layer=1, paramA=0x1, paramC=script_Townsperson2, paramD=0x4, conditions=0xfc + delayed_entity_raw subtype=0x6, x=0x1c8, y=0x278, layer=1, paramA=0x2, paramC=script_Townsperson2, paramD=0x4, conditions=0xfc + delayed_entity_raw subtype=0x6, x=0x58, y=0x328, layer=1, paramA=0x11, paramC=script_Townsperson2, paramD=0x4, conditions=0x1fc + delayed_entity_raw subtype=0x6, x=0x88, y=0x1a8, layer=1, paramA=0x12, paramC=script_Townsperson1, paramD=0x6, conditions=0xfc + delayed_entity_raw subtype=0x6, x=0x1e8, y=0x1a8, layer=1, paramA=0x13, paramC=script_Townsperson2, paramD=0x4, conditions=0x1e0 + delayed_entity_raw subtype=0x6, x=0x238, y=0x308, layer=1, paramA=0x10, paramC=script_Townsperson2, paramD=0x2, conditions=0xfc + delayed_entity_raw subtype=0x48, x=0x2c8, y=0xac, layer=1, paramA=0x1, paramC=script_Teachers, paramD=0x4, conditions=0x3c + delayed_entity_raw subtype=0x45, x=0x358, y=0x378, layer=1, paramC=script_Anju, paramD=0x6, conditions=0x3fc delayed_entity_raw subtype=0x2c, x=0x168, y=0x13c, layer=1, paramA=0x1, paramD=0x20, conditions=0x1fc delayed_entity_raw subtype=0x2c, x=0x13c, y=0x158, layer=1, paramA=0x2, paramD=0x20, conditions=0x1fc delayed_entity_raw subtype=0x2c, x=0x1c8, y=0x34e, layer=2, paramA=0x5, paramD=0x60, conditions=0x1fc - delayed_entity_raw subtype=0x7, x=0x368, y=0xd8, layer=1, paramA=0x6, paramC=script_08010294, conditions=0xc - delayed_entity_raw subtype=0x7, x=0x188, y=0x268, layer=1, paramA=0x6, paramC=script_080102E0, paramD=0x6, conditions=0x20 - delayed_entity_raw subtype=0x7, x=0x328, y=0x268, layer=1, paramA=0x6, paramC=script_080103B0, paramD=0x4, conditions=0x40 - delayed_entity_raw subtype=0x7, x=0x158, y=0x78, layer=2, paramA=0x6, paramC=script_080102E0, paramD=0x4, conditions=0x80 - delayed_entity_raw subtype=0x7, x=0x158, y=0x1b8, layer=1, paramA=0x7, paramC=script_080102E0, conditions=0xc - delayed_entity_raw subtype=0x7, x=0x280, y=0x268, layer=1, paramA=0x7, paramC=script_080102E0, conditions=0x20 - delayed_entity_raw subtype=0x7, x=0x308, y=0x238, layer=1, paramA=0x7, paramC=script_080103B0, paramD=0x4, conditions=0x40 - delayed_entity_raw subtype=0x7, x=0x168, y=0x78, layer=2, paramA=0x7, paramC=script_080102E0, paramD=0x4, conditions=0x80 - delayed_entity_raw subtype=0x7, x=0x168, y=0x1b8, layer=1, paramA=0x8, paramC=script_080102E0, conditions=0xc - delayed_entity_raw subtype=0x7, x=0x2b0, y=0x268, layer=1, paramA=0x8, paramC=script_080102E0, conditions=0x20 - delayed_entity_raw subtype=0x7, x=0x2d8, y=0x248, layer=1, paramA=0x8, paramC=script_080103B0, paramD=0x4, conditions=0x40 - delayed_entity_raw subtype=0x7, x=0x178, y=0x78, layer=2, paramA=0x8, paramC=script_080102E0, paramD=0x4, conditions=0x80 + delayed_entity_raw subtype=0x7, x=0x368, y=0xd8, layer=1, paramA=0x6, paramC=script_Kid1, conditions=0xc + delayed_entity_raw subtype=0x7, x=0x188, y=0x268, layer=1, paramA=0x6, paramC=script_Kid2, paramD=0x6, conditions=0x20 + delayed_entity_raw subtype=0x7, x=0x328, y=0x268, layer=1, paramA=0x6, paramC=script_Kid4, paramD=0x4, conditions=0x40 + delayed_entity_raw subtype=0x7, x=0x158, y=0x78, layer=2, paramA=0x6, paramC=script_Kid2, paramD=0x4, conditions=0x80 + delayed_entity_raw subtype=0x7, x=0x158, y=0x1b8, layer=1, paramA=0x7, paramC=script_Kid2, conditions=0xc + delayed_entity_raw subtype=0x7, x=0x280, y=0x268, layer=1, paramA=0x7, paramC=script_Kid2, conditions=0x20 + delayed_entity_raw subtype=0x7, x=0x308, y=0x238, layer=1, paramA=0x7, paramC=script_Kid4, paramD=0x4, conditions=0x40 + delayed_entity_raw subtype=0x7, x=0x168, y=0x78, layer=2, paramA=0x7, paramC=script_Kid2, paramD=0x4, conditions=0x80 + delayed_entity_raw subtype=0x7, x=0x168, y=0x1b8, layer=1, paramA=0x8, paramC=script_Kid2, conditions=0xc + delayed_entity_raw subtype=0x7, x=0x2b0, y=0x268, layer=1, paramA=0x8, paramC=script_Kid2, conditions=0x20 + delayed_entity_raw subtype=0x7, x=0x2d8, y=0x248, layer=1, paramA=0x8, paramC=script_Kid4, paramD=0x4, conditions=0x40 + delayed_entity_raw subtype=0x7, x=0x178, y=0x78, layer=2, paramA=0x8, paramC=script_Kid2, paramD=0x4, conditions=0x80 delayed_entity_raw subtype=0x35, x=0x398, y=0x2c8, layer=1, paramA=0x1, paramB=0x1, conditions=0x1fc delayed_entity_raw subtype=0x35, x=0x78, y=0x220, layer=1, paramA=0x2, paramB=0x2, conditions=0x1fc - delayed_entity_raw subtype=0xb, x=0x218, y=0x1c8, layer=1, paramC=script_08010428, conditions=0xfc - delayed_entity_raw subtype=0x6, x=0x304, y=0x2a8, layer=1, paramA=0x7, paramC=script_080100C8, paramD=0x6, conditions=0x3c - delayed_entity_raw subtype=0x12, x=0x1d0, y=0x1f8, layer=1, paramC=script_08010454, conditions=0x1fc - delayed_entity_raw subtype=0x14, x=0x1d0, y=0x248, layer=1, paramC=script_080104A0, conditions=0x1fc - delayed_entity_raw subtype=0x7, x=0x318, y=0xa8, layer=1, paramC=script_0801030C, paramD=0x4, conditions=0xc - delayed_entity_raw subtype=0x7, x=0x338, y=0x98, layer=1, paramA=0x1, paramC=script_0801030C, paramD=0x4, conditions=0xc - delayed_entity_raw subtype=0x7, x=0x358, y=0xa8, layer=1, paramA=0x2, paramC=script_0801030C, paramD=0x4, conditions=0xc - delayed_entity_raw subtype=0x7, x=0x378, y=0x88, layer=1, paramA=0x3, paramC=script_0801030C, paramD=0x4, conditions=0xc - delayed_entity_raw subtype=0x7, x=0x398, y=0x98, layer=1, paramA=0x4, paramC=script_0801030C, paramD=0x4, conditions=0xc - delayed_entity_raw subtype=0x7, x=0x3b8, y=0x88, layer=1, paramA=0x5, paramC=script_0801030C, paramD=0x4, conditions=0xc - delayed_entity_raw subtype=0x7, x=0x378, y=0x98, layer=1, paramC=script_080103B0, paramD=0x4, conditions=0x40 - delayed_entity_raw subtype=0x7, x=0x3a8, y=0x98, layer=1, paramA=0x3, paramC=script_080103B0, paramD=0x4, conditions=0x40 - delayed_entity_raw subtype=0x7, x=0x308, y=0x98, layer=1, paramA=0x4, paramC=script_080102E0, conditions=0x40 - delayed_entity_raw subtype=0x7, x=0x318, y=0x98, layer=1, paramA=0x5, paramC=script_080102E0, conditions=0x40 - delayed_entity_raw subtype=0x7, x=0x348, y=0x98, layer=1, paramA=0x1, paramC=script_080103B0, paramD=0x4, conditions=0x80 - delayed_entity_raw subtype=0x7, x=0x3a8, y=0x98, layer=1, paramA=0x2, paramC=script_080103B0, paramD=0x4, conditions=0x80 - delayed_entity_raw subtype=0x7, x=0x368, y=0x58, layer=1, paramA=0x4, paramC=script_080102E0, conditions=0x80 - delayed_entity_raw subtype=0x7, x=0x378, y=0x58, layer=1, paramA=0x5, paramC=script_080102E0, conditions=0x80 - delayed_entity_raw subtype=0x8, x=0x3e0, y=0xd8, layer=1, paramB=0x80, paramC=script_0800FF18, paramD=0x1, conditions=0xc - delayed_entity_raw subtype=0x8, x=0x18, y=0x108, layer=1, paramB=0x81, paramC=script_0800FF74, paramD=0x1, conditions=0xc - delayed_entity_raw subtype=0x8, x=0x68, y=0xf8, layer=1, paramB=0x82, paramC=script_080103D0, conditions=0x30 - delayed_entity_raw subtype=0x8, x=0x1f8, y=0x98, layer=1, paramB=0x83, paramC=script_080103D0, conditions=0x1f0 - delayed_entity_raw subtype=0x8, x=0x48, y=0x158, layer=1, paramB=0x84, paramC=script_080103D0, conditions=0x300 - delayed_entity_raw subtype=0x8, x=0x398, y=0xe8, layer=1, paramB=0x85, paramC=script_080103D0, conditions=0x30 - delayed_entity_raw subtype=0x8, x=0x398, y=0x128, layer=1, paramB=0x86, paramC=script_080103D0, conditions=0x300 - delayed_entity_raw subtype=0x8, x=0x48, y=0x2b8, layer=1, paramB=0x87, paramC=script_080103D0, conditions=0x210 - delayed_entity_raw subtype=0x8, x=0x118, y=0x248, layer=1, paramB=0x88, paramC=script_080103D0, conditions=0x1f0 - delayed_entity_raw subtype=0x8, x=0x208, y=0x318, layer=1, paramB=0x89, paramC=script_080103D0, conditions=0x3f0 - delayed_entity_raw subtype=0x8, x=0x388, y=0x2f8, layer=1, paramB=0x8a, paramC=script_080103D0, conditions=0x230 - delayed_entity_raw subtype=0x8, x=0x1c8, y=0x288, layer=1, paramB=0x8b, paramC=script_080103D0, conditions=0x300 - delayed_entity_raw subtype=0x8, x=0x1f8, y=0x1b8, layer=1, paramB=0x8c, paramC=script_080103D0, conditions=0x200 - delayed_entity_raw subtype=0x8, x=0x188, y=0x338, layer=1, paramB=0x8d, paramC=script_080103D0, conditions=0x200 - delayed_entity_raw subtype=0x8, x=0x238, y=0x118, layer=1, paramB=0x8e, paramC=script_080103D0, conditions=0x200 - delayed_entity_raw subtype=0x8, x=0x168, y=0xb8, layer=1, paramB=0x8f, paramC=script_080103F8, conditions=0x200 - delayed_entity_raw subtype=0x8, x=0x1f8, y=0x50, layer=1, paramB=0x90, paramC=script_0800FEBC, paramD=0x1, conditions=0xc - delayed_entity_raw subtype=0x8, x=0x48, y=0x2c8, layer=1, paramB=0x91, paramC=script_080103D0, conditions=0x20 - delayed_entity_raw subtype=0x13, x=0x13b, y=0x2c8, layer=1, paramB=0x3, paramC=script_0800ED04, paramD=0x1, conditions=0x3c0 - delayed_entity_raw subtype=0x13, x=0x167, y=0x2e2, layer=1, paramA=0x3, paramB=0x4, paramC=script_0800ED04, conditions=0x80 - delayed_entity_raw subtype=0x4e, x=0x368, y=0x1b6, layer=1, paramC=script_080108D0, conditions=0x6 - delayed_entity_raw subtype=0x4e, x=0x388, y=0x256, layer=1, paramC=script_080108D0, conditions=0x6 - delayed_entity_raw subtype=0x4e, x=0x178, y=0x252, layer=1, paramC=script_08010964, conditions=0x1e - delayed_entity_raw subtype=0x4e, x=0x178, y=0x292, layer=1, paramC=script_080109A0, conditions=0x3fe - delayed_entity_raw subtype=0x52, x=0x50, y=0x398, layer=1, paramC=script_08010B68, conditions=0x1f0 - delayed_entity_raw subtype=0x52, x=0x188, y=0x1aa, layer=1, paramA=0x1, paramB=0x1, paramC=script_08010B68, conditions=0x1f0 - delayed_entity_raw subtype=0x52, x=0x3c8, y=0x2f8, layer=1, paramA=0x2, paramB=0x2, paramC=script_08010B68, conditions=0x1f0 - delayed_entity_raw subtype=0x52, x=0x138, y=0x10a, layer=1, paramA=0x3, paramB=0x3, paramC=script_08010B68, conditions=0x1e0 - delayed_entity_raw subtype=0x52, x=0x338, y=0x3a, layer=2, paramA=0x4, paramB=0x4, paramC=script_08010B68, conditions=0x1c0 + delayed_entity_raw subtype=0xb, x=0x218, y=0x1c8, layer=1, paramC=script_MaidTown, conditions=0xfc + delayed_entity_raw subtype=0x6, x=0x304, y=0x2a8, layer=1, paramA=0x7, paramC=script_Townsperson1, paramD=0x6, conditions=0x3c + delayed_entity_raw subtype=0x12, x=0x1d0, y=0x1f8, layer=1, paramC=script_Brocco, conditions=0x1fc + delayed_entity_raw subtype=0x14, x=0x1d0, y=0x248, layer=1, paramC=script_Pina, conditions=0x1fc + delayed_entity_raw subtype=0x7, x=0x318, y=0xa8, layer=1, paramC=script_Kid3, paramD=0x4, conditions=0xc + delayed_entity_raw subtype=0x7, x=0x338, y=0x98, layer=1, paramA=0x1, paramC=script_Kid3, paramD=0x4, conditions=0xc + delayed_entity_raw subtype=0x7, x=0x358, y=0xa8, layer=1, paramA=0x2, paramC=script_Kid3, paramD=0x4, conditions=0xc + delayed_entity_raw subtype=0x7, x=0x378, y=0x88, layer=1, paramA=0x3, paramC=script_Kid3, paramD=0x4, conditions=0xc + delayed_entity_raw subtype=0x7, x=0x398, y=0x98, layer=1, paramA=0x4, paramC=script_Kid3, paramD=0x4, conditions=0xc + delayed_entity_raw subtype=0x7, x=0x3b8, y=0x88, layer=1, paramA=0x5, paramC=script_Kid3, paramD=0x4, conditions=0xc + delayed_entity_raw subtype=0x7, x=0x378, y=0x98, layer=1, paramC=script_Kid4, paramD=0x4, conditions=0x40 + delayed_entity_raw subtype=0x7, x=0x3a8, y=0x98, layer=1, paramA=0x3, paramC=script_Kid4, paramD=0x4, conditions=0x40 + delayed_entity_raw subtype=0x7, x=0x308, y=0x98, layer=1, paramA=0x4, paramC=script_Kid2, conditions=0x40 + delayed_entity_raw subtype=0x7, x=0x318, y=0x98, layer=1, paramA=0x5, paramC=script_Kid2, conditions=0x40 + delayed_entity_raw subtype=0x7, x=0x348, y=0x98, layer=1, paramA=0x1, paramC=script_Kid4, paramD=0x4, conditions=0x80 + delayed_entity_raw subtype=0x7, x=0x3a8, y=0x98, layer=1, paramA=0x2, paramC=script_Kid4, paramD=0x4, conditions=0x80 + delayed_entity_raw subtype=0x7, x=0x368, y=0x58, layer=1, paramA=0x4, paramC=script_Kid2, conditions=0x80 + delayed_entity_raw subtype=0x7, x=0x378, y=0x58, layer=1, paramA=0x5, paramC=script_Kid2, conditions=0x80 + delayed_entity_raw subtype=0x8, x=0x3e0, y=0xd8, layer=1, paramB=0x80, paramC=script_GuardEast, paramD=0x1, conditions=0xc + delayed_entity_raw subtype=0x8, x=0x18, y=0x108, layer=1, paramB=0x81, paramC=script_GuardWest, paramD=0x1, conditions=0xc + delayed_entity_raw subtype=0x8, x=0x68, y=0xf8, layer=1, paramB=0x82, paramC=script_GuardPatrolling, conditions=0x30 + delayed_entity_raw subtype=0x8, x=0x1f8, y=0x98, layer=1, paramB=0x83, paramC=script_GuardPatrolling, conditions=0x1f0 + delayed_entity_raw subtype=0x8, x=0x48, y=0x158, layer=1, paramB=0x84, paramC=script_GuardPatrolling, conditions=0x300 + delayed_entity_raw subtype=0x8, x=0x398, y=0xe8, layer=1, paramB=0x85, paramC=script_GuardPatrolling, conditions=0x30 + delayed_entity_raw subtype=0x8, x=0x398, y=0x128, layer=1, paramB=0x86, paramC=script_GuardPatrolling, conditions=0x300 + delayed_entity_raw subtype=0x8, x=0x48, y=0x2b8, layer=1, paramB=0x87, paramC=script_GuardPatrolling, conditions=0x210 + delayed_entity_raw subtype=0x8, x=0x118, y=0x248, layer=1, paramB=0x88, paramC=script_GuardPatrolling, conditions=0x1f0 + delayed_entity_raw subtype=0x8, x=0x208, y=0x318, layer=1, paramB=0x89, paramC=script_GuardPatrolling, conditions=0x3f0 + delayed_entity_raw subtype=0x8, x=0x388, y=0x2f8, layer=1, paramB=0x8a, paramC=script_GuardPatrolling, conditions=0x230 + delayed_entity_raw subtype=0x8, x=0x1c8, y=0x288, layer=1, paramB=0x8b, paramC=script_GuardPatrolling, conditions=0x300 + delayed_entity_raw subtype=0x8, x=0x1f8, y=0x1b8, layer=1, paramB=0x8c, paramC=script_GuardPatrolling, conditions=0x200 + delayed_entity_raw subtype=0x8, x=0x188, y=0x338, layer=1, paramB=0x8d, paramC=script_GuardPatrolling, conditions=0x200 + delayed_entity_raw subtype=0x8, x=0x238, y=0x118, layer=1, paramB=0x8e, paramC=script_GuardPatrolling, conditions=0x200 + delayed_entity_raw subtype=0x8, x=0x168, y=0xb8, layer=1, paramB=0x8f, paramC=script_GuardLibrary, conditions=0x200 + delayed_entity_raw subtype=0x8, x=0x1f8, y=0x50, layer=1, paramB=0x90, paramC=script_GuardNorth, paramD=0x1, conditions=0xc + delayed_entity_raw subtype=0x8, x=0x48, y=0x2c8, layer=1, paramB=0x91, paramC=script_GuardPatrolling, conditions=0x20 + delayed_entity_raw subtype=0x13, x=0x13b, y=0x2c8, layer=1, paramB=0x3, paramC=script_SittingPerson, paramD=0x1, conditions=0x3c0 + delayed_entity_raw subtype=0x13, x=0x167, y=0x2e2, layer=1, paramA=0x3, paramB=0x4, paramC=script_SittingPerson, conditions=0x80 + delayed_entity_raw subtype=0x4e, x=0x368, y=0x1b6, layer=1, paramC=script_InnDoor, conditions=0x6 + delayed_entity_raw subtype=0x4e, x=0x388, y=0x256, layer=1, paramC=script_InnDoor, conditions=0x6 + delayed_entity_raw subtype=0x4e, x=0x178, y=0x252, layer=1, paramC=script_SimonsDoor, conditions=0x1e + delayed_entity_raw subtype=0x4e, x=0x178, y=0x292, layer=1, paramC=script_PhonographDoor, conditions=0x3fe + delayed_entity_raw subtype=0x52, x=0x50, y=0x398, layer=1, paramC=script_SmallTownMinish, conditions=0x1f0 + delayed_entity_raw subtype=0x52, x=0x188, y=0x1aa, layer=1, paramA=0x1, paramB=0x1, paramC=script_SmallTownMinish, conditions=0x1f0 + delayed_entity_raw subtype=0x52, x=0x3c8, y=0x2f8, layer=1, paramA=0x2, paramB=0x2, paramC=script_SmallTownMinish, conditions=0x1f0 + delayed_entity_raw subtype=0x52, x=0x138, y=0x10a, layer=1, paramA=0x3, paramB=0x3, paramC=script_SmallTownMinish, conditions=0x1e0 + delayed_entity_raw subtype=0x52, x=0x338, y=0x3a, layer=2, paramA=0x4, paramB=0x4, paramC=script_SmallTownMinish, conditions=0x1c0 delayed_entity_raw subtype=0x54, x=0x3c0, y=0x31c, layer=2, conditions=0x1fc delayed_entity_raw subtype=0x55, x=0x11c, y=0x364, layer=1, conditions=0x1fc delayed_entity_raw subtype=0x10, x=0x48, y=0x80, layer=2, conditions=0x3fe @@ -15689,32 +15689,32 @@ gUnk_additional_f_HyruleTown_0:: @ 080EF0B0 delayed_entity_raw subtype=0x0 gUnk_additional_8_HyruleTown_0:: @ 080EF5D0 - delayed_entity_raw subtype=0x21, x=0x388, y=0x338, layer=1, paramA=0x1, paramC=script_08010264, conditions=0x3fc + delayed_entity_raw subtype=0x21, x=0x388, y=0x338, layer=1, paramA=0x1, paramC=script_Ghost, conditions=0x3fc entity_list_end gUnk_additional_2d_HyruleTown_0:: @ 080EF5F0 - delayed_entity_raw subtype=0x33, x=0x220, y=0x1f8, layer=1, paramC=script_080107D0, conditions=0x3f0 + delayed_entity_raw subtype=0x33, x=0x220, y=0x1f8, layer=1, paramC=script_GoronMerchant, conditions=0x3f0 entity_list_end gUnk_additional_2e_HyruleTown_0:: @ 080EF610 - delayed_entity_raw subtype=0x11, x=0x220, y=0x248, layer=1, paramA=0x1, paramC=script_080104EC, conditions=0x3f0 + delayed_entity_raw subtype=0x11, x=0x220, y=0x248, layer=1, paramA=0x1, paramC=script_Beedle, conditions=0x3f0 delayed_entity_raw subtype=0x50, x=0x220, y=0x250, layer=1, conditions=0x3f0 entity_list_end gUnk_additional_2f_HyruleTown_0:: @ 080EF640 - delayed_entity_raw subtype=0x34, x=0x2b8, y=0x378, layer=1, paramC=script_0800FDA0, conditions=0x3f0 + delayed_entity_raw subtype=0x34, x=0x2b8, y=0x378, layer=1, paramC=script_GormanFirstHouse, conditions=0x3f0 entity_list_end gUnk_additional_30_HyruleTown_0:: @ 080EF660 - delayed_entity_raw subtype=0x34, x=0x68, y=0x1c8, layer=1, paramC=script_0800FDCC, conditions=0x3f0 + delayed_entity_raw subtype=0x34, x=0x68, y=0x1c8, layer=1, paramC=script_GormanSecondHouse, conditions=0x3f0 entity_list_end gUnk_additional_31_HyruleTown_0:: @ 080EF680 - delayed_entity_raw subtype=0x34, x=0x138, y=0x108, layer=1, paramC=script_0800FE44, conditions=0x1f0 + delayed_entity_raw subtype=0x34, x=0x138, y=0x108, layer=1, paramC=script_GormanCats, conditions=0x1f0 entity_list_end gUnk_additional_32_HyruleTown_0:: @ 080EF6A0 - delayed_entity_raw subtype=0x34, x=0x40, y=0x1d0, layer=1, paramC=script_0800FDA0, conditions=0x3f0 + delayed_entity_raw subtype=0x34, x=0x40, y=0x1d0, layer=1, paramC=script_GormanFirstHouse, conditions=0x3f0 entity_list_end gUnk_additional_34_HyruleTown_0:: @ 080EF6C0 @@ -15734,46 +15734,46 @@ gUnk_additional_37_HyruleTown_0:: @ 080EF720 entity_list_end gUnk_additional_38_HyruleTown_0:: @ 080EF740 - delayed_entity_raw subtype=0x2a, x=0x80, y=0x88, layer=1, paramA=0x2, paramC=script_08010A98, conditions=0x3e0 + delayed_entity_raw subtype=0x2a, x=0x80, y=0x88, layer=1, paramA=0x2, paramC=script_Carpenter, conditions=0x3e0 entity_list_end gUnk_additional_39_HyruleTown_0:: @ 080EF760 - delayed_entity_raw subtype=0x1e, x=0x1a8, y=0xf8, layer=1, paramA=0x1, paramC=script_08014F30, conditions=0x3f0 + delayed_entity_raw subtype=0x1e, x=0x1a8, y=0xf8, layer=1, paramA=0x1, paramC=script_MalonHyruleTown, conditions=0x3f0 delayed_entity_raw subtype=0x1f, x=0x1c0, y=0xf8, layer=1, conditions=0x3f0 delayed_entity_raw subtype=0x20, x=0x1d0, y=0xf8, layer=1, conditions=0x3f0 entity_list_end gUnk_additional_3a_HyruleTown_0:: @ 080EF7A0 - delayed_entity_raw subtype=0x6, x=0x168, y=0xb8, layer=1, paramC=script_080100C8, paramD=0x4, conditions=0x3c + delayed_entity_raw subtype=0x6, x=0x168, y=0xb8, layer=1, paramC=script_Townsperson1, paramD=0x4, conditions=0x3c entity_list_end gUnk_additional_9_HyruleTown_1:: @ 080EF7C0 - delayed_entity_raw subtype=0x6, x=0xe8, y=0x2f8, layer=1, paramA=0x8, paramC=script_0800F554, paramD=0x4, conditions=0xffff - delayed_entity_raw subtype=0x6, x=0xa0, y=0x248, layer=1, paramA=0x1, paramC=script_0800F554, paramD=0x4, conditions=0xffff - delayed_entity_raw subtype=0x7, x=0x90, y=0x258, layer=1, paramA=0x4, paramC=script_0800F584, conditions=0xffff - delayed_entity_raw subtype=0x7, x=0xb0, y=0x258, layer=1, paramC=script_0800F584, conditions=0xffff - delayed_entity_raw subtype=0x12, x=0xa0, y=0x1f8, layer=1, paramC=script_08010454, conditions=0xffff - delayed_entity_raw subtype=0x11, x=0xf0, y=0x1f8, layer=1, paramC=script_0800F5EC, conditions=0xffff - delayed_entity_raw subtype=0x14, x=0xf0, y=0x248, layer=1, paramC=script_0800F688, conditions=0xffff - delayed_entity_raw subtype=0x7, x=0xbe, y=0x198, layer=1, paramA=0x7, paramC=script_0800F6E0, paramD=0x4, conditions=0xffff - delayed_entity_raw subtype=0x7, x=0xd2, y=0x198, layer=1, paramA=0x8, paramC=script_0800F6E0, paramD=0x4, conditions=0xffff - delayed_entity_raw subtype=0x6, x=0x78, y=0x198, layer=1, paramC=script_0800F554, paramD=0x4, conditions=0xffff - delayed_entity_raw subtype=0x6, x=0x60, y=0x210, layer=1, paramA=0x2, paramC=script_0800F554, paramD=0x2, conditions=0xffff - delayed_entity_raw subtype=0x6, x=0x60, y=0x250, layer=1, paramA=0xa, paramC=script_0800F554, paramD=0x2, conditions=0xffff - delayed_entity_raw subtype=0x6, x=0x60, y=0x290, layer=1, paramA=0xb, paramC=script_0800F554, paramD=0x2, conditions=0xffff - delayed_entity_raw subtype=0x3a, x=0x118, y=0x19a, layer=1, paramB=0x3, paramC=script_0800F650, conditions=0xffff - delayed_entity_raw subtype=0x6, x=0x128, y=0x1f0, layer=1, paramA=0x6, paramC=script_0800F554, paramD=0x6, conditions=0xffff - delayed_entity_raw subtype=0x49, x=0x104, y=0xd0, layer=1, paramA=0x3, paramB=0x8, paramC=script_0800F628, paramD=0x4, conditions=0xffff - delayed_entity_raw subtype=0x49, x=0xf0, y=0xd0, layer=1, paramA=0x1, paramB=0x9, paramC=script_0800F628, paramD=0x4, conditions=0xffff - delayed_entity_raw subtype=0x6, x=0x128, y=0x1c8, layer=1, paramA=0x4, paramC=script_0800F554, paramD=0x6, conditions=0xffff - delayed_entity_raw subtype=0x8, x=0xe8, y=0xa8, layer=1, paramB=0x23, paramC=script_0800F5B0, paramD=0x1, conditions=0xffff - delayed_entity_raw subtype=0x7, x=0x98, y=0xc8, layer=1, paramA=0x6, paramC=script_0800F584, paramD=0x4, conditions=0xffff - delayed_entity_raw subtype=0x6, x=0xb0, y=0x220, layer=1, paramA=0x5, paramC=script_0800F554, conditions=0xffff - delayed_entity_raw subtype=0x6, x=0xf0, y=0x298, layer=1, paramA=0x7, paramC=script_0800F554, paramD=0x4, conditions=0xffff - delayed_entity_raw subtype=0x6, x=0x88, y=0x1e0, layer=1, paramA=0xd, paramC=script_0800F554, paramD=0x4, conditions=0xffff - delayed_entity_raw subtype=0x6, x=0x98, y=0x1e0, layer=1, paramA=0xe, paramC=script_0800F554, paramD=0x4, conditions=0xffff - delayed_entity_raw subtype=0x7, x=0x98, y=0xe8, layer=1, paramA=0x7, paramC=script_0800F724, conditions=0xffff - delayed_entity_raw subtype=0x7, x=0xa8, y=0xe8, layer=1, paramA=0x8, paramC=script_0800F724, conditions=0xffff + delayed_entity_raw subtype=0x6, x=0xe8, y=0x2f8, layer=1, paramA=0x8, paramC=script_TownsperonIntro, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x6, x=0xa0, y=0x248, layer=1, paramA=0x1, paramC=script_TownsperonIntro, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x7, x=0x90, y=0x258, layer=1, paramA=0x4, paramC=script_KidIntro1, conditions=0xffff + delayed_entity_raw subtype=0x7, x=0xb0, y=0x258, layer=1, paramC=script_KidIntro1, conditions=0xffff + delayed_entity_raw subtype=0x12, x=0xa0, y=0x1f8, layer=1, paramC=script_Brocco, conditions=0xffff + delayed_entity_raw subtype=0x11, x=0xf0, y=0x1f8, layer=1, paramC=script_BeedleIntro, conditions=0xffff + delayed_entity_raw subtype=0x14, x=0xf0, y=0x248, layer=1, paramC=script_PinaIntro, conditions=0xffff + delayed_entity_raw subtype=0x7, x=0xbe, y=0x198, layer=1, paramA=0x7, paramC=script_KidIntro2, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x7, x=0xd2, y=0x198, layer=1, paramA=0x8, paramC=script_KidIntro2, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x6, x=0x78, y=0x198, layer=1, paramC=script_TownsperonIntro, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x6, x=0x60, y=0x210, layer=1, paramA=0x2, paramC=script_TownsperonIntro, paramD=0x2, conditions=0xffff + delayed_entity_raw subtype=0x6, x=0x60, y=0x250, layer=1, paramA=0xa, paramC=script_TownsperonIntro, paramD=0x2, conditions=0xffff + delayed_entity_raw subtype=0x6, x=0x60, y=0x290, layer=1, paramA=0xb, paramC=script_TownsperonIntro, paramD=0x2, conditions=0xffff + delayed_entity_raw subtype=0x3a, x=0x118, y=0x19a, layer=1, paramB=0x3, paramC=script_PercyIntro, conditions=0xffff + delayed_entity_raw subtype=0x6, x=0x128, y=0x1f0, layer=1, paramA=0x6, paramC=script_TownsperonIntro, paramD=0x6, conditions=0xffff + delayed_entity_raw subtype=0x49, x=0x104, y=0xd0, layer=1, paramA=0x3, paramB=0x8, paramC=script_WindtribespeopleIntro, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x49, x=0xf0, y=0xd0, layer=1, paramA=0x1, paramB=0x9, paramC=script_WindtribespeopleIntro, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x6, x=0x128, y=0x1c8, layer=1, paramA=0x4, paramC=script_TownsperonIntro, paramD=0x6, conditions=0xffff + delayed_entity_raw subtype=0x8, x=0xe8, y=0xa8, layer=1, paramB=0x23, paramC=script_GuardIntro, paramD=0x1, conditions=0xffff + delayed_entity_raw subtype=0x7, x=0x98, y=0xc8, layer=1, paramA=0x6, paramC=script_KidIntro1, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x6, x=0xb0, y=0x220, layer=1, paramA=0x5, paramC=script_TownsperonIntro, conditions=0xffff + delayed_entity_raw subtype=0x6, x=0xf0, y=0x298, layer=1, paramA=0x7, paramC=script_TownsperonIntro, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x6, x=0x88, y=0x1e0, layer=1, paramA=0xd, paramC=script_TownsperonIntro, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x6, x=0x98, y=0x1e0, layer=1, paramA=0xe, paramC=script_TownsperonIntro, paramD=0x4, conditions=0xffff + delayed_entity_raw subtype=0x7, x=0x98, y=0xe8, layer=1, paramA=0x7, paramC=script_KidIntro3, conditions=0xffff + delayed_entity_raw subtype=0x7, x=0xa8, y=0xe8, layer=1, paramA=0x8, paramC=script_KidIntro3, conditions=0xffff entity_list_end gUnk_additional_9_HyruleTown_0:: @ 080EF970 @@ -15787,9 +15787,9 @@ gUnk_additional_b_HyruleTown_0:: @ 080EF9C0 gUnk_additional_c_HyruleTown_0:: @ 080EF9E4 .incbin "data_080D5360/gUnk_additional_c_HyruleTown_0.bin" - .4byte script_0800EF40 + .4byte script_DrLeftDoor .incbin "data_080D5360/gUnk_additional_c_HyruleTown_0_1.bin" - .4byte script_0801090C + .4byte script_FirstHouseDoor .incbin "data_080D5360/gUnk_additional_c_HyruleTown_0_2.bin" gUnk_additional_8_HyruleTown_1:: @ 080EFAA4 @@ -16307,53 +16307,53 @@ Entities_CastleGarden_Main_0:: @ 080F0630 entity_list_end gUnk_080F0650:: @ 080F0650 - npc_raw subtype=0x25, x=0x1e8, y=0x40, script=script_08011128 - npc_raw subtype=0x15, x=0x228, y=0x88, paramB=0x10c, script=script_080119B0 - npc_raw subtype=0x15, x=0x1c8, y=0xc8, paramB=0x10d, script=script_080119B0 - npc_raw subtype=0x15, x=0x1d8, y=0x1e8, paramB=0xe, script=script_080119D8 - npc_raw subtype=0x15, x=0x218, y=0x1e8, paramB=0xf, script=script_080119F0 + npc_raw subtype=0x25, x=0x1e8, y=0x40, script=script_MinisterPothoIntroCastle + npc_raw subtype=0x15, x=0x228, y=0x88, paramB=0x10c, script=script_GuardGarden4 + npc_raw subtype=0x15, x=0x1c8, y=0xc8, paramB=0x10d, script=script_GuardGarden4 + npc_raw subtype=0x15, x=0x1d8, y=0x1e8, paramB=0xe, script=script_GardGarden5 + npc_raw subtype=0x15, x=0x218, y=0x1e8, paramB=0xf, script=script_GuardEntry1 entity_list_end gUnk_080F06B0:: @ 080F06B0 - npc_raw subtype=0x4e, script=script_08010BEC - npc_raw subtype=0x28, x=0x1c8, y=0x88, script=script_080111CC + npc_raw subtype=0x4e, script=script_Npc4EIntroCastle + npc_raw subtype=0x28, x=0x1c8, y=0x88, script=script_ZeldaIntroCastle entity_list_end gUnk_080F06E0:: @ 080F06E0 - npc_raw subtype=0x24, x=0x1f8, y=0x28, script=script_08011640 - npc_raw subtype=0x15, x=0x1e8, y=0x68, paramB=0x10, script=script_080112C4 - npc_raw subtype=0x15, x=0x208, y=0x68, paramA=0x1, paramB=0x11, script=script_080112C4 - npc_raw subtype=0x15, x=0x1e8, y=0x48, paramA=0x2, paramB=0x12, script=script_080112C4 - npc_raw subtype=0x15, x=0x208, y=0x48, paramA=0x3, paramB=0x13, script=script_080112C4 - npc_raw subtype=0x15, x=0x1e8, y=0x1e8, paramA=0x4, paramB=0x14, script=script_080115D0 - npc_raw subtype=0x15, x=0x208, y=0x1e8, paramA=0x5, paramB=0x15, script=script_08011608 - npc_raw subtype=0x27, x=0x1f8, y=0x230, paramA=0x1, script=script_080116A8 + npc_raw subtype=0x24, x=0x1f8, y=0x28, script=script_KingDaltusIntroCeremony + npc_raw subtype=0x15, x=0x1e8, y=0x68, paramB=0x10, script=script_GuardCarryingChest + npc_raw subtype=0x15, x=0x208, y=0x68, paramA=0x1, paramB=0x11, script=script_GuardCarryingChest + npc_raw subtype=0x15, x=0x1e8, y=0x48, paramA=0x2, paramB=0x12, script=script_GuardCarryingChest + npc_raw subtype=0x15, x=0x208, y=0x48, paramA=0x3, paramB=0x13, script=script_GuardCarryingChest + npc_raw subtype=0x15, x=0x1e8, y=0x1e8, paramA=0x4, paramB=0x14, script=script_GuardEntryLeft + npc_raw subtype=0x15, x=0x208, y=0x1e8, paramA=0x5, paramB=0x15, script=script_GuardEntryRight + npc_raw subtype=0x27, x=0x1f8, y=0x230, paramA=0x1, script=script_VaatiIntroCeremony entity_list_end gUnk_080F0770:: @ 080F0770 - object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramC=script_08011930 - object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x1001, paramC=script_08011930 - object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x2002, paramC=script_08011930 - object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x3003, paramC=script_08011930 - object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x4004, paramC=script_08011930 - object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x5005, paramC=script_08011930 - object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x6006, paramC=script_08011930 - object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x7007, paramC=script_08011930 + object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramC=script_Object6AMonsterFromChest + object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x1001, paramC=script_Object6AMonsterFromChest + object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x2002, paramC=script_Object6AMonsterFromChest + object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x3003, paramC=script_Object6AMonsterFromChest + object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x4004, paramC=script_Object6AMonsterFromChest + object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x5005, paramC=script_Object6AMonsterFromChest + object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x6006, paramC=script_Object6AMonsterFromChest + object_raw subtype=0x6a, x=0x1f8, y=0x78, unknown=0x4f, paramA=0xe, paramB=0x7007, paramC=script_Object6AMonsterFromChest entity_list_end gUnk_080F0800:: @ 080F0800 - npc_raw subtype=0x15, x=0x188, y=0xa0, paramB=0x16, script=script_0801194C - npc_raw subtype=0x15, x=0x128, y=0x19b, paramB=0x17, script=script_08011964 - npc_raw subtype=0x15, x=0x268, y=0xa0, paramB=0x18, script=script_08011958 - npc_raw subtype=0x15, x=0x2c8, y=0x19b, paramB=0x19, script=script_08011964 + npc_raw subtype=0x15, x=0x188, y=0xa0, paramB=0x16, script=script_GuardGarden1 + npc_raw subtype=0x15, x=0x128, y=0x19b, paramB=0x17, script=script_GuardGarden3 + npc_raw subtype=0x15, x=0x268, y=0xa0, paramB=0x18, script=script_GuardGarden2 + npc_raw subtype=0x15, x=0x2c8, y=0x19b, paramB=0x19, script=script_GuardGarden3 entity_list_end gUnk_080F0850:: @ 080F0850 - npc_raw subtype=0x15, x=0x188, y=0xa0, paramB=0x1c, script=script_08011A64 + npc_raw subtype=0x15, x=0x188, y=0xa0, paramB=0x1c, script=script_GuardEntry3 entity_list_end gUnk_080F0870:: @ 080F0870 - npc_raw subtype=0x15, x=0x128, y=0x19b, paramB=0x22, script=script_080119E4 + npc_raw subtype=0x15, x=0x128, y=0x19b, paramB=0x22, script=script_GuardGarden6 entity_list_end gUnk_080F0890:: @ 080F0890 @@ -16361,16 +16361,16 @@ gUnk_080F0890:: @ 080F0890 npc_raw subtype=0x15, x=0x98, y=0xc8, unknown=0xf, collision=1, paramA=0x1, paramB=0x1f, script=0x0 npc_raw subtype=0x15, x=0x68, y=0x168, unknown=0xf, collision=1, paramA=0x2, paramB=0x20, script=0x0 npc_raw subtype=0x15, x=0x48, y=0x168, unknown=0xf, collision=1, paramA=0x3, paramB=0x21, script=0x0 - npc_raw subtype=0x4e, script=script_08011AE4 + npc_raw subtype=0x4e, script=script_GuardGarden7 entity_list_end gUnk_080F08F0:: @ 080F08F0 - npc_raw subtype=0x15, x=0x1ec, y=0x38, paramB=0x1a, script=script_08011A2C - npc_raw subtype=0x15, x=0x204, y=0x38, paramB=0x1b, script=script_08011A2C + npc_raw subtype=0x15, x=0x1ec, y=0x38, paramB=0x1a, script=script_GuardEntry2 + npc_raw subtype=0x15, x=0x204, y=0x38, paramB=0x1b, script=script_GuardEntry2 entity_list_end gUnk_080F0920:: @ 080F0920 - npc_raw subtype=0x4e, script=script_08011B20 + npc_raw subtype=0x4e, script=script_GuardGarden8 entity_list_end Entities_CastleGarden_Main_1:: @ 080F0940 @@ -16465,7 +16465,7 @@ Room_CastleGarden_Main:: @ 080F0AE8 .4byte gUnk_additional_f_CastleGarden_Main Entities_SimonsSimulation_Main_0:: @ 080F0B28 - object_raw subtype=0x69, x=0x98, y=0x88, unknown=0x4f, paramC=script_08011BE4 + object_raw subtype=0x69, x=0x98, y=0x88, unknown=0x4f, paramC=script_Object69SimonsSimulation entity_list_end gUnk_080F0B48:: @ 080F0B48 @@ -16616,15 +16616,15 @@ Area_SimonsSimulation_Main:: @ 080F1BEC .4byte gUnk_additional_16_SimonsSimulation_Main Entities_HouseInteriors2_Stranger_0:: @ 080F1C48 - npc_raw subtype=0x49, x=0x88, y=0x48, script=script_0800EAF8 + npc_raw subtype=0x49, x=0x88, y=0x48, script=script_WindTribespeopleVisitor entity_list_end gUnk_080F1C68:: @ 080F1C68 - npc_raw subtype=0x52, x=0x7a, y=0x22, paramB=0x5, script=script_08010B68 + npc_raw subtype=0x52, x=0x7a, y=0x22, paramB=0x5, script=script_SmallTownMinish entity_list_end gUnk_080F1C88:: @ 080F1C88 - npc_raw subtype=0x52, x=0x72, y=0x22, paramB=0x6, script=script_08010B68 + npc_raw subtype=0x52, x=0x72, y=0x22, paramB=0x6, script=script_SmallTownMinish entity_list_end Entities_HouseInteriors2_Stranger_1:: @ 080F1CA8 @@ -16664,15 +16664,15 @@ Entities_HouseInteriors2_WestOracle_0:: @ 080F1D70 entity_list_end gUnk_080F1D90:: @ 080F1D90 - npc_raw subtype=0x17, x=0x78, y=0x68, script=script_08012024 + npc_raw subtype=0x17, x=0x78, y=0x68, script=script_DinMovedIn entity_list_end gUnk_080F1DB0:: @ 080F1DB0 - npc_raw subtype=0x18, x=0x78, y=0x68, script=script_080120B0 + npc_raw subtype=0x18, x=0x78, y=0x68, script=script_NayruMovedIn entity_list_end gUnk_080F1DD0:: @ 080F1DD0 - npc_raw subtype=0x19, x=0x78, y=0x68, script=script_0801213C + npc_raw subtype=0x19, x=0x78, y=0x68, script=script_FaroreMovedIn entity_list_end Entities_HouseInteriors2_WestOracle_1:: @ 080F1DF0 @@ -16798,7 +16798,7 @@ Room_HouseInteriors2_3:: @ 080F2108 .4byte gUnk_additional_a_HouseInteriors2_3 Entities_HouseInteriors2_DrLeft_0:: @ 080F2134 - npc_raw subtype=0x41, x=0x78, y=0x68, script=script_0800EAA4 + npc_raw subtype=0x41, x=0x78, y=0x68, script=script_DrLeft manager subtype=0x26, paramA=0xd, paramB=0x28ff object_raw subtype=0x8d, x=0x48, y=0x48, paramC=0x840000 entity_list_end @@ -16874,16 +16874,16 @@ Entities_HouseInteriors2_Romio_0:: @ 080F232C entity_list_end gUnk_additional_c_HouseInteriors2_Romio:: @ 080F236C - npc_raw subtype=0x6, x=0x78, y=0x48, paramA=0xd, paramB=0x400, script=script_0800EB2C + npc_raw subtype=0x6, x=0x78, y=0x48, paramA=0xd, paramB=0x400, script=script_TownspersonInDogHouse entity_list_end gUnk_080F238C:: @ 080F238C - npc_raw subtype=0x6, x=0xb8, y=0x74, paramA=0xd, paramB=0x400, script=script_0800EB64 - npc_raw subtype=0x6, x=0xa4, y=0x74, paramA=0xe, paramB=0x400, script=script_0800EC14 + npc_raw subtype=0x6, x=0xb8, y=0x74, paramA=0xd, paramB=0x400, script=script_DogPersonInCatHouse + npc_raw subtype=0x6, x=0xa4, y=0x74, paramA=0xe, paramB=0x400, script=script_CatPersonTalkingToDogPerson entity_list_end gUnk_080F23BC:: @ 080F23BC - npc_raw subtype=0x7, x=0x88, y=0x48, paramA=0x4, paramB=0x400, script=script_080103B0 + npc_raw subtype=0x7, x=0x88, y=0x48, paramA=0x4, paramB=0x400, script=script_Kid4 entity_list_end Entities_HouseInteriors2_Romio_1:: @ 080F23DC @@ -16944,12 +16944,12 @@ Entities_HouseInteriors2_Julietta_0:: @ 080F2510 entity_list_end gUnk_080F2570:: @ 080F2570 - npc_raw subtype=0x6, x=0xb0, y=0x6d, paramA=0xe, paramB=0x400, script=script_0800EC54 + npc_raw subtype=0x6, x=0xb0, y=0x6d, paramA=0xe, paramB=0x400, script=script_CatPerson entity_list_end gUnk_080F2590:: @ 080F2590 - npc_raw subtype=0x6, x=0x78, y=0x68, paramA=0x7, paramB=0x400, script=script_0800EBC0 - npc_raw subtype=0x6, x=0x48, y=0x78, paramA=0xe, paramB=0x400, script=script_0800EC54 + npc_raw subtype=0x6, x=0x78, y=0x68, paramA=0x7, paramB=0x400, script=script_OldLadyCatHouse1 + npc_raw subtype=0x6, x=0x48, y=0x78, paramA=0xe, paramB=0x400, script=script_CatPerson entity_list_end gUnk_080F25C0:: @ 080F25C0 @@ -16959,7 +16959,7 @@ gUnk_080F25C0:: @ 080F25C0 entity_list_end gUnk_080F2600:: @ 080F2600 - npc_raw subtype=0x7, x=0x28, y=0x98, paramA=0x3, paramB=0x400, script=script_080103B0 + npc_raw subtype=0x7, x=0x28, y=0x98, paramA=0x3, paramB=0x400, script=script_Kid4 entity_list_end Entities_HouseInteriors2_Julietta_1:: @ 080F2620 @@ -17005,25 +17005,25 @@ Entities_HouseInteriors2_Percy_0:: @ 080F26F8 entity_list_end gUnk_additional_9_HouseInteriors2_Percy:: @ 080F2718 - npc_raw subtype=0x6, x=0x78, y=0x58, paramA=0xc, paramB=0x400, script=script_08012270 + npc_raw subtype=0x6, x=0x78, y=0x58, paramA=0xc, paramB=0x400, script=script_MoblinLadyDisguised manager subtype=0x23, x=0x68, y=0x48, paramA=0x2, paramB=0x4002, paramC=0x80000000 manager subtype=0x23, x=0x88, y=0x48, paramA=0x2, paramB=0x4002, paramC=0x80010000 entity_list_end gUnk_additional_a_HouseInteriors2_Percy:: @ 080F2758 - npc_raw subtype=0x3c, x=0x78, y=0x58, script=script_0801232C + npc_raw subtype=0x3c, x=0x78, y=0x58, script=script_MoblinLady manager subtype=0x23, x=0x68, y=0x48, paramB=0x2, paramC=0x430000 manager subtype=0x23, x=0x88, y=0x48, paramB=0x2, paramC=0x430000 entity_list_end gUnk_080F2798:: @ 080F2798 - npc_raw subtype=0x3a, x=0x78, y=0x58, paramB=0x1, script=script_08012E88 + npc_raw subtype=0x3a, x=0x78, y=0x58, paramB=0x1, script=script_PercyInside manager subtype=0x23, x=0x68, y=0x48, paramB=0x2, paramC=0x430000 manager subtype=0x23, x=0x88, y=0x48, paramB=0x2, paramC=0x430000 entity_list_end gUnk_080F27D8:: @ 080F27D8 - npc_raw subtype=0x3a, x=0x78, y=0x58, paramB=0x4, script=script_08012E88 + npc_raw subtype=0x3a, x=0x78, y=0x58, paramB=0x4, script=script_PercyInside manager subtype=0x23, x=0x68, y=0x48, paramB=0x2, paramC=0x430000 manager subtype=0x23, x=0x88, y=0x48, paramB=0x2, paramC=0x430000 entity_list_end @@ -17064,15 +17064,15 @@ Entities_HouseInteriors2_EastOracle_0:: @ 080F28B4 entity_list_end gUnk_080F28D4:: @ 080F28D4 - npc_raw subtype=0x17, x=0x78, y=0x48, script=script_08012024 + npc_raw subtype=0x17, x=0x78, y=0x48, script=script_DinMovedIn entity_list_end gUnk_080F28F4:: @ 080F28F4 - npc_raw subtype=0x18, x=0x78, y=0x48, script=script_080120B0 + npc_raw subtype=0x18, x=0x78, y=0x48, script=script_NayruMovedIn entity_list_end gUnk_080F2914:: @ 080F2914 - npc_raw subtype=0x19, x=0x78, y=0x48, script=script_0801213C + npc_raw subtype=0x19, x=0x78, y=0x48, script=script_FaroreMovedIn entity_list_end Entities_HouseInteriors2_EastOracle_1:: @ 080F2934 @@ -17181,7 +17181,7 @@ Entities_HouseInteriors2_Cucco_0:: @ 080F2B9C .endif entity_list_end - npc_raw subtype=0x45, x=0x98, y=0x38, script=script_08010120 + npc_raw subtype=0x45, x=0x98, y=0x38, script=script_AnjuInside entity_list_end Entities_HouseInteriors2_Cucco_1:: @ 080F2C7C @@ -17265,12 +17265,12 @@ Entities_HouseInteriors2_LinksHouseSmith_0:: @ 080F2E84 entity_list_end gUnk_080F2E94:: @ 080F2E94 - npc_raw subtype=0x22, x=0x80, y=0x50, script=script_08009B78 - npc_raw subtype=0x28, x=0x60, y=0x50, script=script_08009C68 + npc_raw subtype=0x22, x=0x80, y=0x50, script=script_SmithIntro2 + npc_raw subtype=0x28, x=0x60, y=0x50, script=script_ZeldaTalkToSmith entity_list_end gUnk_080F2EC4:: @ 080F2EC4 - npc_raw subtype=0x22, x=0xb8, y=0x60, script=script_08009DB0 + npc_raw subtype=0x22, x=0xb8, y=0x60, script=script_SmithAtLinksHouse entity_list_end Entities_HouseInteriors2_LinksHouseSmith_1:: @ 080F2EE4 @@ -17306,7 +17306,7 @@ Entities_HouseInteriors2_Dampe_0:: @ 080F2FB4 entity_list_end gUnk_080F2FD4:: @ 080F2FD4 - npc_raw subtype=0x40, x=0x78, y=0x58, script=script_080095CC + npc_raw subtype=0x40, x=0x78, y=0x58, script=script_DampeInside2 entity_list_end Entities_HouseInteriors2_Dampe_1:: @ 080F2FF4 @@ -17336,7 +17336,7 @@ Room_HouseInteriors2_Dampe:: @ 080F307C Entities_HouseInteriors2_Stockwell_0:: @ 080F309C manager subtype=0x26, paramA=0x8, paramB=0xff - npc_raw subtype=0x35, x=0x68, y=0x48, script=script_0800B5C4 + npc_raw subtype=0x35, x=0x68, y=0x48, script=script_ShopwellsDog entity_list_end gUnk_080F30CC:: @ 080F30CC @@ -17378,7 +17378,7 @@ Entities_HouseInteriors2_LinksHouseBedroom_0:: @ 080F3198 entity_list_end gUnk_080F31D8:: @ 080F31D8 - object_raw subtype=0x69, unknown=0x4f, paramC=script_08009DEC + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69LinksHouseBed entity_list_end Entities_HouseInteriors2_LinksHouseBedroom_1:: @ 080F31F8 @@ -17405,12 +17405,12 @@ Entities_HouseInteriors4_Carpenter_0:: @ 080F3250 entity_list_end gUnk_080F3260:: @ 080F3260 - npc_raw subtype=0x29, x=0x78, y=0x70, script=script_08009538 - npc_raw subtype=0x2a, x=0x38, y=0x88, script=script_08009574 - npc_raw subtype=0x2a, x=0x58, y=0x88, paramA=0x1, script=script_08009574 - npc_raw subtype=0x2a, x=0x98, y=0x88, paramA=0x3, script=script_08009574 + npc_raw subtype=0x29, x=0x78, y=0x70, script=script_MutohInMill + npc_raw subtype=0x2a, x=0x38, y=0x88, script=script_CarpenterOutsideTown + npc_raw subtype=0x2a, x=0x58, y=0x88, paramA=0x1, script=script_CarpenterOutsideTown + npc_raw subtype=0x2a, x=0x98, y=0x88, paramA=0x3, script=script_CarpenterOutsideTown entity_list_end - npc_raw subtype=0x2a, x=0x60, y=0x58, paramA=0x2, script=script_08009574 + npc_raw subtype=0x2a, x=0x60, y=0x58, paramA=0x2, script=script_CarpenterOutsideTown entity_list_end Entities_HouseInteriors4_Carpenter_1:: @ 080F32D0 @@ -17453,7 +17453,7 @@ Room_HouseInteriors4_Carpenter:: @ 080F33C8 .4byte gUnk_additional_a_HouseInteriors4_Carpenter Entities_HouseInteriors4_Swiftblade_0:: @ 080F33F4 - npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x1, script=script_080161E8 + npc_raw subtype=0x30, x=0x78, y=0x28, paramA=0x1, script=script_BladeBrothers entity_list_end Entities_HouseInteriors4_Swiftblade_1:: @ 080F3414 @@ -17491,7 +17491,7 @@ Entities_HouseInteriors4_RanchHouseWest_0:: @ 080F35E4 entity_list_end gUnk_080F3604:: @ 080F3604 - npc_raw subtype=0x1e, x=0x68, y=0x58, script=script_08014EF8 + npc_raw subtype=0x1e, x=0x68, y=0x58, script=scriptMalonInside entity_list_end Entities_HouseInteriors4_RanchHouseWest_1:: @ 080F3624 @@ -17541,11 +17541,11 @@ Entities_HouseInteriors4_RanchHouseEast_0:: @ 080F3780 npc_raw subtype=0x31, x=0xb0, y=0x48, unknown=0xf, paramB=0x101, script=0x0 manager subtype=0x26, paramA=0x9, paramB=0xff entity_list_end - npc_raw subtype=0x1d, x=0x48, y=0x38, script=script_08014E50 + npc_raw subtype=0x1d, x=0x48, y=0x38, script=script_TalonInside entity_list_end gUnk_080F37D0:: @ 080F37D0 - npc_raw subtype=0x1d, x=0x48, y=0x38, script=script_08014ECC + npc_raw subtype=0x1d, x=0x48, y=0x38, script=script_TalonInside2 entity_list_end Entities_HouseInteriors4_RanchHouseEast_1:: @ 080F37F0 @@ -17687,12 +17687,12 @@ Entities_LakeHylia_Main_0:: @ 080F3BF4 entity_list_end gUnk_080F3C44:: @ 080F3C44 - npc_raw subtype=0x1b, x=0x148, y=0x108, paramA=0x3, script=script_080168F4 + npc_raw subtype=0x1b, x=0x148, y=0x108, paramA=0x3, script=script_TingleSiblings entity_list_end gUnk_080F3C64:: @ 080F3C64 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800AFB0 - npc_raw subtype=0x42, x=0x128, y=0x180, script=script_08012360 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69AfterToD + npc_raw subtype=0x42, x=0x128, y=0x180, script=script_KingGustafHologram entity_list_end gUnk_080F3C94:: @ 080F3C94 @@ -17826,7 +17826,7 @@ Room_LakeHylia_Beanstalk:: @ 080F41B8 .4byte gUnk_additional_9_LakeHylia_Beanstalk Entities_LakeWoodsCave_Main_0:: @ 080F41E0 - npc_raw subtype=0x4e, x=0x308, y=0x178, paramA=0x9, script=script_0800B964 + npc_raw subtype=0x4e, x=0x308, y=0x178, paramA=0x9, script=script_MysteriousWall manager subtype=0x4 object_raw subtype=0x41, x=0x248, y=0x198, paramA=0x1 entity_list_end @@ -17877,7 +17877,7 @@ Room_HyliaDigCaves_Middle:: @ 080F4300 .4byte sub_StateChange_Ruins_LadderToTektites3 Entities_HyliaDigCaves_North_0:: @ 080F4320 - npc_raw subtype=0x4e, x=0x1c8, y=0xc8, paramA=0xa, script=script_0800B964 + npc_raw subtype=0x4e, x=0x1c8, y=0xc8, paramA=0xa, script=script_MysteriousWall manager subtype=0x4 object_raw subtype=0x41, x=0x248, y=0x78, paramA=0x1 object_raw subtype=0x41, x=0x308, y=0x78, paramA=0x1 @@ -17963,7 +17963,7 @@ Room_HyruleDigCaves_Main:: @ 080F4540 .4byte sub_StateChange_Ruins_LadderToTektites6 Entities_CrenelDigCave_Main_0:: @ 080F4560 - npc_raw subtype=0x4e, x=0x148, y=0x28, paramA=0x8, script=script_0800B964 + npc_raw subtype=0x4e, x=0x148, y=0x28, paramA=0x8, script=script_MysteriousWall manager subtype=0x4 object_raw subtype=0x0, x=0x78, y=0xa4, collision=1, paramA=0x63, paramB=0x400, paramC=0x450000 entity_list_end @@ -17993,7 +17993,7 @@ Room_CrenelDigCave_Main:: @ 080F4638 .4byte sub_StateChange_Ruins_LadderToTektites7 Entities_DigCaves1_HyruleFieldFarm_0:: @ 080F4658 - npc_raw subtype=0x4e, x=0xf8, y=0x38, paramA=0x7, script=script_0800B964 + npc_raw subtype=0x4e, x=0xf8, y=0x38, paramA=0x7, script=script_MysteriousWall manager subtype=0x4 object_raw subtype=0x0, x=0xd8, y=0x78, collision=1, paramA=0x56, paramB=0x400, paramC=0x460000 entity_list_end @@ -18017,7 +18017,7 @@ Room_DigCaves1_HyruleFieldFarm:: @ 080F46D0 .4byte sub_StateChange_Ruins_LadderToTektites8 Entities_DigCaves1_TrilbyHighlands_0:: @ 080F46F0 - npc_raw subtype=0x4e, x=0xe8, y=0x28, paramA=0x6, script=script_0800B964 + npc_raw subtype=0x4e, x=0xe8, y=0x28, paramA=0x6, script=script_MysteriousWall manager subtype=0x4 object_raw subtype=0x41, x=0x88, y=0x58, paramA=0x1 entity_list_end @@ -18251,13 +18251,13 @@ Entities_MinishWoods_Main_0:: @ 080F4D00 entity_list_end gUnk_080F4D50:: @ 080F4D50 - npc_raw subtype=0x4e, script=script_08012480 + npc_raw subtype=0x4e, script=script_Npc4EEzloCutscene entity_list_end gUnk_080F4D70:: @080F4D70 - npc_raw subtype=0x4d, x=0x388, y=0x168, script=script_080126FC - object_raw subtype=0x6a, x=0x358, y=0x168, unknown=0x4f, paramA=0x13, paramC=script_08012BA8 - object_raw subtype=0x6a, x=0x3b8, y=0x168, unknown=0x4f, paramA=0x13, paramC=script_08012BF8 + npc_raw subtype=0x4d, x=0x388, y=0x168, script=script_EzloCap + object_raw subtype=0x6a, x=0x358, y=0x168, unknown=0x4f, paramA=0x13, paramC=script_Object6ALeftBullyingOctorok + object_raw subtype=0x6a, x=0x3b8, y=0x168, unknown=0x4f, paramA=0x13, paramC=script_Object6ARightBullyingOctorok entity_list_end gUnk_080F4DB0:: @ 080F4DB0 @@ -18265,7 +18265,7 @@ gUnk_080F4DB0:: @ 080F4DB0 entity_list_end gUnk_080F4DD0:: @ 080F4DD0 - object_raw subtype=0x69, unknown=0x4f, paramC=script_08012CD8 + object_raw subtype=0x69, unknown=0x4f, paramC=script_EzloTalkMinishPortal entity_list_end gUnk_080F4DF0:: @ 080F4DF0 @@ -18273,7 +18273,7 @@ gUnk_080F4DF0:: @ 080F4DF0 entity_list_end gUnk_080F4E10:: @ 080F4E10 - object_raw subtype=0xbb, x=0x128, y=0x2a8, unknown=0x4f, paramB=0x7, paramC=script_0800B00C + object_raw subtype=0xbb, x=0x128, y=0x2a8, unknown=0x4f, paramB=0x7, paramC=script_Windcrest entity_list_end Entities_MinishWoods_Main_1:: @ 080F4E30 @@ -18287,11 +18287,11 @@ Entities_MinishWoods_Main_1:: @ 080F4E30 entity_list_end gUnk_080F4EB0:: @ 080F4EB0 - npc_raw subtype=0x4e, script=script_0800A910 - object_raw subtype=0x6a, x=0x398, y=0x148, unknown=0x4f, paramA=0x13, paramC=script_0800A964 - object_raw subtype=0x6a, x=0x378, y=0x158, unknown=0x4f, paramA=0x13, paramC=script_0800A988 - object_raw subtype=0x6a, x=0x3a8, y=0x168, unknown=0x4f, paramA=0x13, paramC=script_0800A9AC - object_raw subtype=0x6a, x=0x388, y=0x188, unknown=0x4f, paramA=0x13, paramC=script_0800A9D0 + npc_raw subtype=0x4e, script=script_Npc4EMinishWoods + object_raw subtype=0x6a, x=0x398, y=0x148, unknown=0x4f, paramA=0x13, paramC=script_Object6AOctorok1 + object_raw subtype=0x6a, x=0x378, y=0x158, unknown=0x4f, paramA=0x13, paramC=script_Object6AOctorok2 + object_raw subtype=0x6a, x=0x3a8, y=0x168, unknown=0x4f, paramA=0x13, paramC=script_Object6AOctorok3 + object_raw subtype=0x6a, x=0x388, y=0x188, unknown=0x4f, paramA=0x13, paramC=script_Object6AOctorok4 entity_list_end gUnk_080F4F10:: @ 080F4F10 @@ -18434,7 +18434,7 @@ Entities_SanctuaryEntrance_Main_0:: @ 080F52F8 entity_list_end gUnk_080F5308:: @ 080F5308 - object_raw subtype=0x69, unknown=0x4f, paramC=script_08012D70 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69SanctuaryEntrance entity_list_end gUnk_080F5328:: @ 080F5328 @@ -18442,9 +18442,9 @@ gUnk_080F5328:: @ 080F5328 entity_list_end gUnk_080F5348:: @ 080F5348 - npc_raw subtype=0x4e, script=script_0800AB08 - npc_raw subtype=0xf, x=0x88, y=0x68, script=script_0800AD74 - npc_raw subtype=0x28, x=0x68, y=0x88, script=script_0800AEA4 + npc_raw subtype=0x4e, script=script_Npc4EFixedEverything + npc_raw subtype=0xf, x=0x88, y=0x68, script=script_MinishEzloGoodbye + npc_raw subtype=0x28, x=0x68, y=0x88, script=script_ZeldaGoodbye object_raw subtype=0x3e, x=0x88, y=0x40, collision=1, paramA=0x1 entity_list_end @@ -18491,10 +18491,10 @@ Room_Sanctuary_Hall:: @ 080F5428 .4byte sub_StateChange_Sanctuary_Hall Entities_Sanctuary_Main_0:: @ 080F5448 - object_raw subtype=0x6a, x=0xe8, y=0x90, unknown=0x4f, paramA=0x17, paramC=script_08013BE8 + object_raw subtype=0x6a, x=0xe8, y=0x90, unknown=0x4f, paramA=0x17, paramC=script_Object6ATextBoard npc_raw subtype=0x4e, script=script_08013F94 - npc_raw subtype=0x4e, script=script_08013FE8 - npc_raw subtype=0x4e, script=script_08013B18 + npc_raw subtype=0x4e, script=script_NPC4EPreventPlayerLeave + npc_raw subtype=0x4e, script=script_Npc4EPreventPlayerLeaving object_raw subtype=0xb0, x=0xe8, y=0x248, paramC=0x80008000 object_raw subtype=0x3, x=0xc8, y=0x228, paramA=0x1, paramC=0x80010000 object_raw subtype=0x3, x=0x108, y=0x228, paramA=0x1, paramC=0x80020000 @@ -18505,32 +18505,32 @@ Entities_Sanctuary_Main_0:: @ 080F5448 entity_list_end gUnk_080F54E8:: @ 080F54E8 - npc_raw subtype=0x4e, x=0xe8, y=0x138, script=script_08013CA4 + npc_raw subtype=0x4e, x=0xe8, y=0x138, script=script_Npc4ESanctuaryIntro entity_list_end gUnk_080F5508:: @ 080F5508 - npc_raw subtype=0x4e, x=0xe8, y=0x138, script=script_080134DC + npc_raw subtype=0x4e, x=0xe8, y=0x138, script=script_Npc4EPedestal entity_list_end gUnk_080F5528:: @ 080F5528 - object_raw subtype=0x6a, x=0xb0, y=0xf8, unknown=0x4f, paramA=0x1c, paramC=script_08013E94 - object_raw subtype=0x6a, x=0x120, y=0xf8, unknown=0x4f, paramA=0x1c, paramC=script_08013EB0 + object_raw subtype=0x6a, x=0xb0, y=0xf8, unknown=0x4f, paramA=0x1c, paramC=script_Object6AEarthElement + object_raw subtype=0x6a, x=0x120, y=0xf8, unknown=0x4f, paramA=0x1c, paramC=script_Object6AFireElement entity_list_end gUnk_080F5558:: @ 080F5558 - npc_raw subtype=0x4e, x=0xe8, y=0x138, script=script_08013720 + npc_raw subtype=0x4e, x=0xe8, y=0x138, script=script_Npc4ESecondSanctuary entity_list_end gUnk_080F5578:: @ 080F5578 - object_raw subtype=0x6a, x=0x120, y=0x168, unknown=0x4f, paramA=0x1c, paramC=script_08013ECC + object_raw subtype=0x6a, x=0x120, y=0x168, unknown=0x4f, paramA=0x1c, paramC=script_Object6AWaterElement entity_list_end gUnk_080F5598:: @ 080F5598 - npc_raw subtype=0x4e, x=0xe8, y=0x138, script=script_080138B4 + npc_raw subtype=0x4e, x=0xe8, y=0x138, script=script_Npc4EThirdSanctuary entity_list_end gUnk_080F55B8:: @ 080F55B8 - object_raw subtype=0x6a, x=0xb0, y=0x168, unknown=0x4f, paramA=0x1c, paramC=script_08013EE8 + object_raw subtype=0x6a, x=0xb0, y=0x168, unknown=0x4f, paramA=0x1c, paramC=script_Object6AWindElement entity_list_end gUnk_080F55D8:: @ 080F55D8 @@ -18555,18 +18555,18 @@ Room_Sanctuary_Main:: @ 080F5610 Entities_Sanctuary_StainedGlass_0:: @ 080F5630 .ifndef EU - npc_raw subtype=0x4e, x=0x98, y=0x38, script=script_08014274 + npc_raw subtype=0x4e, x=0x98, y=0x38, script=script_Npc4ELookAtPictureAgain manager subtype=0xf, paramA=0xe .endif entity_list_end gUnk_080F5660:: @ 080F5660 - object_raw subtype=0x69, unknown=0x4f, paramC=script_080131AC + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object3EPictureBackRoom entity_list_end gUnk_080F5680:: @ 080F5680 - npc_raw subtype=0x24, x=0x98, y=0x48, script=script_080133C4 - npc_raw subtype=0x27, x=0x98, y=0xc8, paramA=0x1, script=script_080133F8 + npc_raw subtype=0x24, x=0x98, y=0x48, script=script_FakeKingDaltus + npc_raw subtype=0x27, x=0x98, y=0xc8, paramA=0x1, script=script_VaatiSanctuary entity_list_end Entities_Sanctuary_StainedGlass_1:: @ 080F56B0 @@ -18668,12 +18668,12 @@ Room_HouseInteriors3_StockwellShop:: @ 080F5934 .4byte gUnk_additional_8_HouseInteriors3_StockwellShop Entities_HouseInteriors3_Cafe_0:: @ 080F5958 - npc_raw subtype=0x46, x=0x64, y=0x78, script=script_0800E920 - npc_raw subtype=0x13, x=0x55, y=0xa8, paramA=0x2, script=script_0800ED04 - npc_raw subtype=0x13, x=0xc6, y=0x6a, paramA=0x4, paramB=0x1, script=script_0800ED04 - npc_raw subtype=0x6, x=0x98, y=0x98, paramA=0x3, paramB=0x400, script=script_080100FC - npc_raw subtype=0x6, x=0x40, y=0x50, paramA=0x5, paramB=0x400, script=script_0800EC8C - npc_raw subtype=0x53, x=0x28, y=0x78, script=script_08010BB4 + npc_raw subtype=0x46, x=0x64, y=0x78, script=script_Mama + npc_raw subtype=0x13, x=0x55, y=0xa8, paramA=0x2, script=script_SittingPerson + npc_raw subtype=0x13, x=0xc6, y=0x6a, paramA=0x4, paramB=0x1, script=script_SittingPerson + npc_raw subtype=0x6, x=0x98, y=0x98, paramA=0x3, paramB=0x400, script=script_Townsperson2 + npc_raw subtype=0x6, x=0x40, y=0x50, paramA=0x5, paramB=0x400, script=script_CafeGuy + npc_raw subtype=0x53, x=0x28, y=0x78, script=script_HurdyGurdyMan manager subtype=0x26, paramA=0xb, paramB=0x28ff ezlo_hint type=0x2, x=0x16, y=0x14, rx=0x2, ry=0x2, msg=0xb24, flag=0xc3 entity_list_end @@ -18773,11 +18773,11 @@ Room_HouseInteriors3_RemShoeShop:: @ 080F5BE8 .endif Entities_HouseInteriors3_Bakery_0:: @ 080F5C10 - npc_raw subtype=0xd, x=0xa8, y=0x5c, script=script_08010674 - npc_raw subtype=0xe, x=0x30, y=0x56, script=script_080106AC + npc_raw subtype=0xd, x=0xa8, y=0x5c, script=script_Wheaton + npc_raw subtype=0xe, x=0x30, y=0x56, script=script_Pita ezlo_hint x=0x4, y=0xe, rx=0x7, ry=0x1, msg=0xb56, flag=0xcb entity_list_end - npc_raw subtype=0x6, x=0x68, y=0x90, paramA=0x7, paramB=0x400, script=script_0800EBDC + npc_raw subtype=0x6, x=0x68, y=0x90, paramA=0x7, paramB=0x400, script=script_OldLadyCatHouse2 entity_list_end Entities_HouseInteriors3_Bakery_1:: @ 080F5C70 @@ -18823,11 +18823,11 @@ Room_HouseInteriors3_Bakery:: @ 080F5D84 .4byte gUnk_additional_a_HouseInteriors3_Bakery Entities_HouseInteriors3_Simon_0:: @ 080F5DB0 - npc_raw subtype=0x44, x=0xb0, y=0x40, script=script_08011B40 + npc_raw subtype=0x44, x=0xb0, y=0x40, script=script_Simon entity_list_end gUnk_080F5DD0:: @ 080F5DD0 - npc_raw subtype=0x7, x=0x88, y=0x48, paramA=0x5, paramB=0x400, script=script_080103B0 + npc_raw subtype=0x7, x=0x88, y=0x48, paramA=0x5, paramB=0x400, script=script_Kid4 entity_list_end Entities_HouseInteriors3_Simon_1:: @ 080F5DF0 @@ -18861,7 +18861,7 @@ gUnk_080F5E68:: @ 080F5E68 Entities_HouseInteriors3_FigurineHouse_1:: @ 080F5E88 object_raw subtype=0x4f, x=0x8, y=0x58, paramA=0x2, paramB=0x3 object_raw subtype=0x4f, x=0xe8, y=0x58, paramA=0x2, paramB=0x1 - npc_raw subtype=0x57, x=0x78, y=0x20, script=script_0800BA3C + npc_raw subtype=0x57, x=0x78, y=0x20, script=script_Phonograph entity_list_end Enemies_HouseInteriors3_FigurineHouse:: @ 080F5EC8 @@ -18884,19 +18884,19 @@ Room_HouseInteriors3_FigurineHouse:: @ 080F5EF8 .4byte sub_StateChange_HouseInteriors3_FigurineHouse Entities_HouseInteriors3_BorlovEntrance_0:: @ 080F5F18 - object_raw subtype=0x69, unknown=0x4f, paramC=script_08014548 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object6APreventPlayerLeaveCarlov entity_list_end gUnk_additional_8_HouseInteriors3_BorlovEntrance:: @ 080F5F38 - npc_raw subtype=0x6, x=0x38, y=0x78, paramA=0x8, paramB=0x400, script=script_080100C8 + npc_raw subtype=0x6, x=0x38, y=0x78, paramA=0x8, paramB=0x400, script=script_Townsperson1 entity_list_end gUnk_additional_9_HouseInteriors3_BorlovEntrance:: @ 080F5F58 - npc_raw subtype=0x3f, x=0x78, y=0x48, paramA=0x1, script=script_08014450 + npc_raw subtype=0x3f, x=0x78, y=0x48, paramA=0x1, script=script_Carlov entity_list_end gUnk_additional_a_HouseInteriors3_BorlovEntrance:: @ 080F5F78 - npc_raw subtype=0x3f, x=0x78, y=0x48, paramA=0x1, script=script_0801450C + npc_raw subtype=0x3f, x=0x78, y=0x48, paramA=0x1, script=script_CarlovWon entity_list_end Entities_HouseInteriors3_BorlovEntrance_1:: @ 080F5F98 @@ -18925,9 +18925,9 @@ Room_HouseInteriors3_BorlovEntrance:: @ 080F5FF0 .4byte gUnk_additional_a_HouseInteriors3_BorlovEntrance Entities_HouseInteriors3_Carlov_0:: @ 080F601C - npc_raw subtype=0x3f, x=0x78, y=0x39, script=script_08014628 - object_raw subtype=0x69, unknown=0x4f, paramC=script_080145B0 - object_raw subtype=0x69, unknown=0x4f, paramC=script_080145E8 + npc_raw subtype=0x3f, x=0x78, y=0x39, script=script_Carlov2 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object6ACarlov + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object6ACarlov2 object_raw subtype=0x54, x=0xa8, y=0x3e, paramA=0x1, paramB=0x80000, paramC=0x80000000 entity_list_end @@ -18954,8 +18954,8 @@ Room_HouseInteriors3_Carlov:: @ 080F60C4 .4byte sub_StateChange_HouseInteriors3_Carlov Entities_HouseInteriors3_Borlov_0:: @ 080F60E4 - npc_raw subtype=0x3f, x=0xb8, y=0x38, paramA=0x1, script=script_08014804 - npc_raw subtype=0x51, script=script_080148F0 + npc_raw subtype=0x3f, x=0xb8, y=0x38, paramA=0x1, script=script_CarlovGame + npc_raw subtype=0x51, script=script_CarlovChest entity_list_end Entities_HouseInteriors3_Borlov_1:: @ 080F6114 @@ -18980,8 +18980,8 @@ Room_HouseInteriors3_Borlov:: @ 080F615C .4byte sub_StateChange_HouseInteriors3_Borlov Entities_WindTribeTower_Entrance_0:: @ 080F617C - npc_raw subtype=0x49, x=0xa8, y=0x58, paramB=0x401, script=script_08014958 - npc_raw subtype=0x49, x=0x48, y=0x48, paramA=0x1, paramB=0x402, script=script_08014994 + npc_raw subtype=0x49, x=0xa8, y=0x58, paramB=0x401, script=script_WindTribespeople1 + npc_raw subtype=0x49, x=0x48, y=0x48, paramA=0x1, paramB=0x402, script=script_WindTribespeople2 object_raw subtype=0x8d, x=0xb8, y=0x28, paramC=0xad0000 entity_list_end @@ -19018,19 +19018,19 @@ Room_WindTribeTower_Entrance:: @ 080F6284 .4byte sub_StateChange_WindTribeTower_Entrance Entities_WindTribeTower_Floor2_0:: @ 080F62A4 - npc_raw subtype=0x49, x=0x68, y=0x58, paramA=0x2, paramB=0x403, script=script_08014A54 + npc_raw subtype=0x49, x=0x68, y=0x58, paramA=0x2, paramB=0x403, script=script_WindTribespeople5 object_raw subtype=0x5, x=0x98, y=0x128 object_raw subtype=0x5, x=0x88, y=0x128 entity_list_end gUnk_080F62E4:: @ 080F62E4 object_raw subtype=0x18, x=0xa0, y=0x28 - npc_raw subtype=0x4a, x=0xa0, y=0x38, script=script_08014B34 - npc_raw subtype=0x49, x=0x88, y=0xfc, paramA=0x5, paramB=0x406, script=script_08014A28 + npc_raw subtype=0x4a, x=0xa0, y=0x38, script=script_GregalSick + npc_raw subtype=0x49, x=0x88, y=0xfc, paramA=0x5, paramB=0x406, script=script_WindTribespeople4 entity_list_end gUnk_080F6324:: @ 080F6324 - npc_raw subtype=0x4a, x=0xa0, y=0x58, paramA=0x3, script=script_08014C2C + npc_raw subtype=0x4a, x=0xa0, y=0x58, paramA=0x3, script=script_GregalHealthy entity_list_end Entities_WindTribeTower_Floor2_1:: @ 080F6344 @@ -19059,7 +19059,7 @@ Room_WindTribeTower_Floor2:: @ 080F63C4 .4byte sub_StateChange_WindTribeTower_Floor2 Entities_WindTribeTower_Floor3_0:: @ 080F63E4 - npc_raw subtype=0x49, x=0x68, y=0xf8, paramA=0x5, paramB=0x406, script=script_08014A28 + npc_raw subtype=0x49, x=0x68, y=0xf8, paramA=0x5, paramB=0x406, script=script_WindTribespeople4 object_raw subtype=0x5, x=0x68, y=0x128 object_raw subtype=0x5, x=0x78, y=0x128 object_raw subtype=0x5, x=0x88, y=0x128 @@ -19095,7 +19095,7 @@ Room_WindTribeTower_Floor3:: @ 080F64E4 .4byte sub_StateChange_WindTribeTower_Floor3 Entities_WindTribeTower_Floor4_0:: @ 080F6504 - npc_raw subtype=0x49, x=0x78, y=0x28, paramA=0x4, paramB=0x405, script=script_08014AC4 + npc_raw subtype=0x49, x=0x78, y=0x28, paramA=0x4, paramB=0x405, script=script_Siroc object_raw subtype=0x5, x=0x28, y=0x118 object_raw subtype=0x5, x=0x28, y=0x128 object_raw subtype=0x5, x=0xc8, y=0x118 @@ -19103,11 +19103,11 @@ Entities_WindTribeTower_Floor4_0:: @ 080F6504 entity_list_end gUnk_080F6564:: @ 080F6564 - npc_raw subtype=0x49, x=0x88, y=0xf8, paramA=0x3, paramB=0x404, script=script_080149CC + npc_raw subtype=0x49, x=0x88, y=0xf8, paramA=0x3, paramB=0x404, script=script_WindTribespeople3 entity_list_end gUnk_080F6584:: @ 080F6584 - npc_raw subtype=0x49, x=0x68, y=0xf8, paramA=0x3, paramB=0x404, script=script_080149CC + npc_raw subtype=0x49, x=0x68, y=0xf8, paramA=0x3, paramB=0x404, script=script_WindTribespeople3 entity_list_end Entities_WindTribeTower_Floor4_1:: @ 080F65A4 @@ -19145,7 +19145,7 @@ Entities_WindTribeTowerRoof_Main_0:: @ 080F664C entity_list_end gUnk_080F66AC:: @ 080F66AC - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800AFE8 + object_raw subtype=0x69, unknown=0x4f, paramC=script_EzloTalkPoW entity_list_end Entities_WindTribeTowerRoof_Main_1:: @ 080F66CC @@ -19536,16 +19536,16 @@ Entities_HyruleField_LinksHouseExterior_0:: @ 080F7018 entity_list_end gUnk_080F7088:: @ 080F7088 - npc_raw subtype=0x1b, x=0x3b8, y=0x118, script=script_080168F4 + npc_raw subtype=0x1b, x=0x3b8, y=0x118, script=script_TingleSiblings entity_list_end gUnk_080F70A8:: @ 080F70A8 - npc_raw subtype=0x28, x=0x1e8, y=0x180, script=script_08014CDC - npc_raw subtype=0x4e, x=0x238, y=0x1a8, script=script_08014DCC + npc_raw subtype=0x28, x=0x1e8, y=0x180, script=script_ZeldaOutsideLinksHouse + npc_raw subtype=0x4e, x=0x238, y=0x1a8, script=script_Npc4EOutsideLinksHouse entity_list_end gUnk_080F70D8:: @ 080F70D8 - object_raw subtype=0xbb, x=0x2c8, y=0x128, unknown=0x4f, paramB=0x6, paramC=script_0800B00C + object_raw subtype=0xbb, x=0x2c8, y=0x128, unknown=0x4f, paramB=0x6, paramC=script_Windcrest entity_list_end Entities_HyruleField_LinksHouseExterior_1:: @ 080F70F8 @@ -19723,8 +19723,8 @@ gUnk_080F7500:: @ 080F7500 entity_list_end gUnk_additional_8_HyruleField_Farmers:: @ 080F7520 - delayed_entity_raw subtype=0x3e, x=0xb8, y=0xe8, layer=1, paramC=script_0800B0D0, conditions=0xffff - delayed_entity_raw subtype=0x3e, x=0x68, y=0x128, layer=1, paramA=0x1, paramC=script_0800B0D0, paramD=0x1, conditions=0xffff + delayed_entity_raw subtype=0x3e, x=0xb8, y=0xe8, layer=1, paramC=script_Farmer, conditions=0xffff + delayed_entity_raw subtype=0x3e, x=0x68, y=0x128, layer=1, paramA=0x1, paramC=script_Farmer, paramD=0x1, conditions=0xffff entity_list_end gUnk_080F7550:: @ 080F7550 @@ -19732,11 +19732,11 @@ gUnk_080F7550:: @ 080F7550 entity_list_end gUnk_additional_9_HyruleField_Farmers:: @ 080F7570 - delayed_entity_raw subtype=0x29, x=0x148, y=0xf0, layer=1, paramC=script_080094FC, conditions=0xffff - delayed_entity_raw subtype=0x2a, x=0x128, y=0xd0, layer=1, paramC=script_08009574, conditions=0xffff - delayed_entity_raw subtype=0x2a, x=0x1a8, y=0x100, layer=1, paramA=0x1, paramC=script_08009574, conditions=0xffff - delayed_entity_raw subtype=0x2a, x=0x138, y=0x98, layer=1, paramA=0x2, paramC=script_08009574, conditions=0xffff - delayed_entity_raw subtype=0x2a, x=0x148, y=0x88, layer=1, paramA=0x3, paramC=script_08009574, conditions=0xffff + delayed_entity_raw subtype=0x29, x=0x148, y=0xf0, layer=1, paramC=script_MutohOutsideTown, conditions=0xffff + delayed_entity_raw subtype=0x2a, x=0x128, y=0xd0, layer=1, paramC=script_CarpenterOutsideTown, conditions=0xffff + delayed_entity_raw subtype=0x2a, x=0x1a8, y=0x100, layer=1, paramA=0x1, paramC=script_CarpenterOutsideTown, conditions=0xffff + delayed_entity_raw subtype=0x2a, x=0x138, y=0x98, layer=1, paramA=0x2, paramC=script_CarpenterOutsideTown, conditions=0xffff + delayed_entity_raw subtype=0x2a, x=0x148, y=0x88, layer=1, paramA=0x3, paramC=script_CarpenterOutsideTown, conditions=0xffff entity_list_end Entities_HyruleField_Farmers_1:: @ 080F75D0 @@ -19806,12 +19806,12 @@ gUnk_additional_b_HyruleField_LonLonRanch:: @ 080F7770 entity_list_end gUnk_080F77C0:: @ 080F77C0 - npc_raw subtype=0x1d, x=0x130, y=0x290, script=script_0800B3A4 - npc_raw subtype=0x1e, x=0x120, y=0x270, script=script_0800B4AC + npc_raw subtype=0x1d, x=0x130, y=0x290, script=script_TalonLostKey + npc_raw subtype=0x1e, x=0x120, y=0x270, script=script_MalonLostKey entity_list_end gUnk_080F77F0:: @ 080F77F0 - npc_raw subtype=0x1e, x=0x13e, y=0x280, script=script_0800B5EC + npc_raw subtype=0x1e, x=0x13e, y=0x280, script=script_MalonAtRanch entity_list_end gUnk_080F7810:: @ 080F7810 @@ -19819,8 +19819,8 @@ gUnk_080F7810:: @ 080F7810 entity_list_end gUnk_additional_c_HyruleField_LonLonRanch:: @ 080F7830 - delayed_entity_raw subtype=0x8, x=0xc8, y=0x228, layer=1, paramB=0x8, paramC=script_08014E14, conditions=0xffff - delayed_entity_raw subtype=0x8, x=0x38, y=0x218, layer=1, paramB=0x9, paramC=script_08014E14, conditions=0xffff + delayed_entity_raw subtype=0x8, x=0xc8, y=0x228, layer=1, paramB=0x8, paramC=script_GuardNorthHyruleField, conditions=0xffff + delayed_entity_raw subtype=0x8, x=0x38, y=0x218, layer=1, paramB=0x9, paramC=script_GuardNorthHyruleField, conditions=0xffff entity_list_end gUnk_080F7860:: @ 080F7860 @@ -19828,7 +19828,7 @@ gUnk_080F7860:: @ 080F7860 entity_list_end gUnk_additional_d_HyruleField_LonLonRanch:: @ 080F7880 - delayed_entity_raw subtype=0x32, x=0x88, y=0x368, layer=1, paramC=script_0800B9B4, conditions=0xffff + delayed_entity_raw subtype=0x32, x=0x88, y=0x368, layer=1, paramC=script_GoronPunching, conditions=0xffff entity_list_end gUnk_080F78A0:: @ 080F78A0 @@ -19840,7 +19840,7 @@ gUnk_080F78A0:: @ 080F78A0 entity_list_end gUnk_additional_12_HyruleField_LonLonRanch:: @ 080F78C0 - delayed_entity_raw subtype=0x1b, x=0xb8, y=0x108, layer=1, paramA=0x1, paramC=script_080168F4, conditions=0xfff0 + delayed_entity_raw subtype=0x1b, x=0xb8, y=0x108, layer=1, paramA=0x1, paramC=script_TingleSiblings, conditions=0xfff0 entity_list_end Entities_HyruleField_LonLonRanch_1:: @ 080F78E0 @@ -19883,7 +19883,7 @@ gUnk_additional_e_HyruleField_LonLonRanch:: @ 080F79D0 gUnk_additional_11_HyruleField_LonLonRanch:: @ 080F7A20 .incbin "data_080D5360/gUnk_additional_11_HyruleField_LonLonRanch.bin" - .4byte script_0800B574 + .4byte script_LonLonRanchDoor .incbin "data_080D5360/gUnk_additional_11_HyruleField_LonLonRanch_1.bin" Enemies_HyruleField_LonLonRanch:: @ 080F7A44 @@ -19978,12 +19978,12 @@ Entities_HyruleField_OutsideCastle_1:: @ 080F7C00 entity_list_end gUnk_080F7C80:: @ 080F7C80 - object_raw subtype=0x69, unknown=0x4f, paramC=script_08014FBC - npc_raw subtype=0x27, x=0x1f8, y=0x108, paramA=0x1, script=script_08015234 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69VaatiAppears + npc_raw subtype=0x27, x=0x1f8, y=0x108, paramA=0x1, script=script_VaatiAppearsAgain entity_list_end gUnk_080F7CB0:: @ 080F7CB0 - npc_raw subtype=0x4d, x=0x1e8, y=0x148, script=script_08015390 + npc_raw subtype=0x4d, x=0x1e8, y=0x148, script=script_EzloCapExplainingOriginStory entity_list_end gUnk_080F7CD0:: @ 080F7CD0 @@ -19991,19 +19991,19 @@ gUnk_080F7CD0:: @ 080F7CD0 entity_list_end gUnk_additional_e_HyruleField_OutsideCastle:: @ 080F7CF0 - delayed_entity_raw subtype=0x29, x=0x208, y=0x2c8, layer=1, paramC=script_080094FC, conditions=0xffff - delayed_entity_raw subtype=0x2a, x=0x1c8, y=0x2f0, layer=1, paramC=script_08009574, conditions=0xffff - delayed_entity_raw subtype=0x2a, x=0x258, y=0x2b0, layer=1, paramA=0x1, paramC=script_08009574, conditions=0xffff - delayed_entity_raw subtype=0x2a, x=0x228, y=0x2b8, layer=1, paramA=0x2, paramC=script_08009574, conditions=0xffff - delayed_entity_raw subtype=0x2a, x=0x208, y=0x2f8, layer=1, paramA=0x3, paramC=script_08009574, conditions=0xffff - delayed_entity_raw subtype=0x8, x=0x278, y=0x2c8, layer=1, paramB=0xa, paramC=script_08014E14, conditions=0xffff - delayed_entity_raw subtype=0x8, x=0x198, y=0x2b8, layer=1, paramB=0xb, paramC=script_08014E14, conditions=0xffff + delayed_entity_raw subtype=0x29, x=0x208, y=0x2c8, layer=1, paramC=script_MutohOutsideTown, conditions=0xffff + delayed_entity_raw subtype=0x2a, x=0x1c8, y=0x2f0, layer=1, paramC=script_CarpenterOutsideTown, conditions=0xffff + delayed_entity_raw subtype=0x2a, x=0x258, y=0x2b0, layer=1, paramA=0x1, paramC=script_CarpenterOutsideTown, conditions=0xffff + delayed_entity_raw subtype=0x2a, x=0x228, y=0x2b8, layer=1, paramA=0x2, paramC=script_CarpenterOutsideTown, conditions=0xffff + delayed_entity_raw subtype=0x2a, x=0x208, y=0x2f8, layer=1, paramA=0x3, paramC=script_CarpenterOutsideTown, conditions=0xffff + delayed_entity_raw subtype=0x8, x=0x278, y=0x2c8, layer=1, paramB=0xa, paramC=script_GuardNorthHyruleField, conditions=0xffff + delayed_entity_raw subtype=0x8, x=0x198, y=0x2b8, layer=1, paramB=0xb, paramC=script_GuardNorthHyruleField, conditions=0xffff entity_list_end gUnk_080F7D70:: @ 080F7D70 object_raw subtype=0x69, unknown=0x4f, paramC=script_080157AC object_raw subtype=0x69, unknown=0x4f, paramC=script_08015B34 - npc_raw subtype=0x28, x=0x1e8, y=0x168, script=script_08015958 + npc_raw subtype=0x28, x=0x1e8, y=0x168, script=script_ZeldaIntroBusinessScrub enemy_raw subtype=0x5b, x=0x248, y=0x1eb entity_list_end @@ -20012,7 +20012,7 @@ gUnk_080F7DC0:: @ 080F7DC0 entity_list_end gUnk_additional_d_HyruleField_OutsideCastle:: @ 080F7DE0 - object_raw subtype=0x69, unknown=0x4f, paramC=script_08015BA8 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69FixBridge manager subtype=0x5, x=0x9, y=0x25, paramB=0x89, paramC=0x80650001 manager subtype=0x5, x=0x9, y=0x26, paramB=0x89, paramC=0x80650001 entity_list_end @@ -20105,7 +20105,7 @@ Entities_HyruleField_OutsideCastle_0West:: @ 080F805C entity_list_end gUnk_080F806C:: @ 080F806C - npc_raw subtype=0x1b, x=0xb8, y=0x78, paramA=0x2, script=script_080168F4 + npc_raw subtype=0x1b, x=0xb8, y=0x78, paramA=0x2, script=script_TingleSiblings entity_list_end Entities_HyruleField_OutsideCastle_1West:: @ 080F808C @@ -20202,7 +20202,7 @@ Entities_HyruleField_TrilbyHighlands_0:: @ 080F8210 .endif gUnk_080F82E0:: @ 080F82E0 - object_raw subtype=0x69, unknown=0x4f, paramC=script_08015BE8 + object_raw subtype=0x69, unknown=0x4f, paramC=script_Object69Takeover entity_list_end Entities_HyruleField_TrilbyHighlands_1:: @ 080F8300 @@ -20250,7 +20250,7 @@ Entities_HyruleField_PercysHouse_0:: @ 080F8420 entity_list_end gUnk_080F8430:: @ 080F8430 - npc_raw subtype=0x3a, x=0x68, y=0x58, paramB=0x2, script=script_08012EC0 + npc_raw subtype=0x3a, x=0x68, y=0x58, paramB=0x2, script=script_PercyOutside entity_list_end Entities_HyruleField_PercysHouse_1:: @ 080F8450 @@ -20943,11 +20943,11 @@ Entities_VeilFalls_Main_0:: @ 080F9264 .endif gUnk_080F9304:: @ 080F9304 - object_raw subtype=0xbb, x=0xf8, y=0xf8, unknown=0x4f, paramB=0x1, paramC=script_0800B00C + object_raw subtype=0xbb, x=0xf8, y=0xf8, unknown=0x4f, paramB=0x1, paramC=script_Windcrest entity_list_end Entities_VeilFalls_Main_1:: @ 080F9324 - npc_raw subtype=0x4e, x=0x38, y=0x1fd, paramA=0xb, script=script_08015FC0 + npc_raw subtype=0x4e, x=0x38, y=0x1fd, paramA=0xb, script=script_NPC4ESourceOfTheFlow manager subtype=0x6, paramA=0x8 entity_list_end @@ -21256,10 +21256,10 @@ Room_VeilFallsCaves_HeartPiece:: @ 080F9B58 Entities_VeilFallsTop_Main_0:: @ 080F9B78 object_raw subtype=0x82, x=0x58, y=0x38, paramB=0x1 - npc_raw subtype=0x4c, x=0x140, y=0x68, script=script_08009318 - npc_raw subtype=0x4c, x=0xd0, y=0x68, paramA=0x5, script=script_08009340 - npc_raw subtype=0x4c, x=0x1b0, y=0x68, paramA=0xa, script=script_08009340 - npc_raw subtype=0x4c, y=0x78, paramA=0x4, script=script_08009348 + npc_raw subtype=0x4c, x=0x140, y=0x68, script=script_BigGoron1 + npc_raw subtype=0x4c, x=0xd0, y=0x68, paramA=0x5, script=script_BigGoron2 + npc_raw subtype=0x4c, x=0x1b0, y=0x68, paramA=0xa, script=script_BigGoron2 + npc_raw subtype=0x4c, y=0x78, paramA=0x4, script=script_BigGoron3 npc_raw subtype=0x4c, x=0x108, y=0x88, unknown=0xf, paramA=0x1, script=0x0 npc_raw subtype=0x4c, x=0x108, y=0x88, unknown=0xf, paramA=0x2, script=0x0 entity_list_end @@ -21268,21 +21268,21 @@ gUnk_080F9BF8:: @ 080F9BF8 .ifdef EU_JP ezlo_hint x=0xe, y=0x6, rx=0x2, ry=0x2, msg=0xb20, flag=0xaa object_raw subtype=0x82, x=0x58, y=0x38, paramB=0x1 - npc_raw subtype=0x4c, x=0x140, y=0xf8, script=script_08009320 + npc_raw subtype=0x4c, x=0x140, y=0xf8, script=script_BigGoronHiding entity_list_end .else ezlo_hint x=0xe, y=0x6, rx=0x2, ry=0x2, msg=0xb20, flag=0xac object_raw subtype=0x82, x=0x58, y=0x38, paramB=0x1 - npc_raw subtype=0x4c, x=0x140, y=0xf8, script=script_08009320 + npc_raw subtype=0x4c, x=0x140, y=0xf8, script=script_BigGoronHiding entity_list_end .endif gUnk_080F9C38:: @ 080F9C38 - object_raw subtype=0x6a, x=0x108, y=0x88, unknown=0x4f, paramA=0x29, paramC=script_080094A4 + object_raw subtype=0x6a, x=0x108, y=0x88, unknown=0x4f, paramA=0x29, paramC=script_Object6AVeilFallsTop entity_list_end gUnk_080F9C58:: @ 080F9C58 - object_raw subtype=0x6a, x=0x118, y=0x88, unknown=0x4f, paramA=0x2a, paramC=script_080094CC + object_raw subtype=0x6a, x=0x118, y=0x88, unknown=0x4f, paramA=0x2a, paramC=script_Object6AMirrorShield entity_list_end Entities_VeilFallsTop_Main_1:: @ 080F9C78 @@ -21416,8 +21416,8 @@ Room_47_4:: @ 080F9F08 .4byte sub_StateChange_47_4 Entities_TreeInteriors_WitchHut_0:: @ 080F9F28 - npc_raw subtype=0x36, x=0x78, y=0x30, script=script_080160A8 - object_raw subtype=0x69, x=0x58, y=0x48, unknown=0x4f, paramC=script_0801613C + npc_raw subtype=0x36, x=0x78, y=0x30, script=script_Syrup + object_raw subtype=0x69, x=0x58, y=0x48, unknown=0x4f, paramC=script_Object69PotionBlue entity_list_end Entities_TreeInteriors_WitchHut_1:: @ 080F9F58 @@ -21431,7 +21431,7 @@ gUnk_080F9F88:: @ 080F9F88 gUnk_080F9FA8:: @ 080F9FA8 object_raw subtype=0x4d, x=0x98, y=0x48, collision=1, paramA=0x8 - object_raw subtype=0x69, x=0x98, y=0x48, unknown=0x4f, paramC=script_08016190 + object_raw subtype=0x69, x=0x98, y=0x48, unknown=0x4f, paramC=script_Object69PotionRed entity_list_end Enemies_TreeInteriors_WitchHut:: @ 080F9FD8 @@ -21767,7 +21767,7 @@ Entities_TreeInteriors_PercysTreehouse_0:: @ 080FA5B0 entity_list_end gUnk_080FA5D0:: @ 080FA5D0 - npc_raw subtype=0x3a, x=0x78, y=0x58, script=script_08012E88 + npc_raw subtype=0x3a, x=0x78, y=0x58, script=script_PercyInside entity_list_end Entities_TreeInteriors_PercysTreehouse_1:: @ 080FA5F0 @@ -22133,11 +22133,11 @@ gUnk_080FACB8:: @ 080FACB8 entity_list_end gUnk_080FAD48:: @ 080FAD48 - npc_raw subtype=0x4e, script=script_0800A9F4 - object_raw subtype=0x6a, x=0xf8, y=0x38, unknown=0x4f, paramA=0x20, paramC=script_0800AA48 - object_raw subtype=0x6a, x=0x168, y=0x48, unknown=0x4f, paramA=0x20, paramC=script_0800AA6C - object_raw subtype=0x6a, x=0x138, y=0x68, unknown=0x4f, paramA=0x21, paramC=script_0800AA90 - object_raw subtype=0x6a, x=0xe8, y=0x88, unknown=0x4f, paramA=0x21, paramC=script_0800AAB4 + npc_raw subtype=0x4e, script=script_Npc4EMtCrenel + object_raw subtype=0x6a, x=0xf8, y=0x38, unknown=0x4f, paramA=0x20, paramC=script_Object6ATektite1 + object_raw subtype=0x6a, x=0x168, y=0x48, unknown=0x4f, paramA=0x20, paramC=script_Object6ATektite2 + object_raw subtype=0x6a, x=0x138, y=0x68, unknown=0x4f, paramA=0x21, paramC=script_Object6ATektite3 + object_raw subtype=0x6a, x=0xe8, y=0x88, unknown=0x4f, paramA=0x21, paramC=script_Object6ATektite4 entity_list_end Enemies_MtCrenel_MountainTop:: @ 080FADA8 @@ -22225,11 +22225,11 @@ Entities_MtCrenel_CaveOfFlamesEntrance_0:: @ 080FAFD4 entity_list_end gUnk_080FAFE4:: @ 080FAFE4 - object_raw subtype=0x69, unknown=0x4f, paramC=script_0800AF68 + object_raw subtype=0x69, unknown=0x4f, paramC=script_EzloTalkCoF entity_list_end gUnk_080FB004:: @ 080FB004 - object_raw subtype=0xbb, x=0x98, y=0xf8, unknown=0x4f, paramC=script_0800B00C + object_raw subtype=0xbb, x=0x98, y=0xf8, unknown=0x4f, paramC=script_Windcrest entity_list_end Entities_MtCrenel_CaveOfFlamesEntrance_1:: @ 080FB024 @@ -22897,7 +22897,7 @@ Room_CrenelCaves_BombBusinessScrub:: @ 080FC234 .4byte sub_StateChange_CrenelCaves_BombBusinessScrub Entities_CrenelCaves_Hermit_0:: @ 080FC254 - npc_raw subtype=0x6, x=0x78, y=0x38, paramA=0xf, paramB=0x400, script=script_0800B8E4 + npc_raw subtype=0x6, x=0x78, y=0x38, paramA=0xf, paramB=0x400, script=script_CrenelHermit entity_list_end Entities_CrenelCaves_Hermit_1:: @ 080FC274 diff --git a/data/scripts.s b/data/scripts.s index 5e02e94b..699276a6 100644 --- a/data/scripts.s +++ b/data/scripts.s @@ -4,408 +4,581 @@ .include "asm/macros/scripts.inc" .syntax unified - .text - .include "data/scripts/script_08008B5C.inc" - .include "data/scripts/script_08008D50.inc" - .include "data/scripts/script_08008D8C.inc" - .include "data/scripts/script_08008F74.inc" - .include "data/scripts/script_08008FC0.inc" - .include "data/scripts/script_08008FFC.inc" - .include "data/scripts/script_0800903C.inc" - .include "data/scripts/script_08009320.inc" - .include "data/scripts/script_08009340.inc" - .include "data/scripts/script_08009348.inc" - .include "data/scripts/script_0800939A.inc" - .include "data/scripts/script_08009464.inc" - .include "data/scripts/script_080094CC.inc" - .include "data/scripts/script_080094FC.inc" - .include "data/scripts/script_080095F2.inc" - .include "data/scripts/script_08009704.inc" - .include "data/scripts/script_08009740.inc" - .include "data/scripts/script_080097F0.inc" - .include "data/scripts/script_08009838.inc" - .include "data/scripts/script_0800987C.inc" - .include "data/scripts/script_080098D4.inc" - .include "data/scripts/script_08009918.inc" - .include "data/scripts/script_08009950.inc" - .include "data/scripts/script_080099DC.inc" - .include "data/scripts/script_08009A34.inc" - .include "data/scripts/script_08009A84.inc" - .include "data/scripts/script_08009AF8.inc" - .include "data/scripts/script_08009B30.inc" - .include "data/scripts/script_08009B78.inc" - .include "data/scripts/script_08009C68.inc" - .include "data/scripts/script_08009CFC.inc" - .include "data/scripts/script_08009D6C.inc" - .include "data/scripts/script_08009DB0.inc" - .include "data/scripts/script_08009E4E.inc" - .include "data/scripts/script_08009E58.inc" - .include "data/scripts/script_08009E80.inc" - .include "data/scripts/script_08009E88.inc" - .include "data/scripts/script_08009ECC.inc" - .include "data/scripts/script_08009EF0.inc" - .include "data/scripts/script_08009F14.inc" - .include "data/scripts/script_0800A088.inc" - .include "data/scripts/script_0800A0B4.inc" - .include "data/scripts/script_0800A0FC.inc" - .include "data/scripts/script_0800A160.inc" - .include "data/scripts/script_0800A1B4.inc" - .include "data/scripts/script_0800A1D8.inc" - .include "data/scripts/script_0800A310.inc" - .include "data/scripts/script_0800A3D8.inc" - .include "data/scripts/script_0800A500.inc" - .include "data/scripts/script_0800A590.inc" - .include "data/scripts/script_0800A638.inc" - .include "data/scripts/script_0800A65C.inc" - .include "data/scripts/script_0800A680.inc" - .include "data/scripts/script_0800A6A4.inc" - .include "data/scripts/script_0800A6D4.inc" - .include "data/scripts/script_0800A704.inc" - .include "data/scripts/script_0800A734.inc" - .include "data/scripts/script_0800A764.inc" - .include "data/scripts/script_0800A7E4.inc" - .include "data/scripts/script_0800A964.inc" - .include "data/scripts/script_0800A988.inc" - .include "data/scripts/script_0800A9AC.inc" - .include "data/scripts/script_0800A9D0.inc" - .include "data/scripts/script_0800A9F4.inc" - .include "data/scripts/script_0800AA48.inc" - .include "data/scripts/script_0800AA6C.inc" - .include "data/scripts/script_0800AA90.inc" - .include "data/scripts/script_0800AAB4.inc" - .include "data/scripts/script_0800AAD8.inc" - .include "data/scripts/script_0800AB08.inc" - .include "data/scripts/script_0800AB6E.inc" - .include "data/scripts/script_0800ACBC.inc" - .include "data/scripts/script_0800ACE0.inc" - .include "data/scripts/script_0800AD54.inc" - .include "data/scripts/script_0800AEA4.inc" - .include "data/scripts/script_0800AEDC.inc" - .include "data/scripts/script_0800AF18.inc" - .include "data/scripts/script_0800AF44.inc" - .include "data/scripts/script_0800AF68.inc" - .include "data/scripts/script_0800AF8C.inc" - .include "data/scripts/script_0800AFB0.inc" - .include "data/scripts/script_0800AFE8.inc" - .include "data/scripts/script_0800B00C.inc" - .include "data/scripts/script_0800B0AC.inc" - .include "data/scripts/script_0800B0D0.inc" - .include "data/scripts/script_0800B1C0.inc" - .include "data/scripts/script_0800B200.inc" - .include "data/scripts/script_0800B254.inc" - .include "data/scripts/script_0800B308.inc" - .include "data/scripts/script_0800B3A4.inc" - .include "data/scripts/script_0800B41C.inc" - .include "data/scripts/script_0800B4AC.inc" - .include "data/scripts/script_0800B54C.inc" - .include "data/scripts/script_0800B574.inc" - .include "data/scripts/script_0800B5C4.inc" - .include "data/scripts/script_0800B5EC.inc" - .include "data/scripts/script_0800B6C8.inc" - .include "data/scripts/script_0800B7C4.inc" - .include "data/scripts/script_0800B7FC.inc" - .include "data/scripts/script_0800B828.inc" - .include "data/scripts/script_0800B9B4.inc" - .include "data/scripts/script_0800BACC.inc" - .include "data/scripts/script_0800BB00.inc" - .include "data/scripts/script_0800BB30.inc" - .include "data/scripts/script_0800BB64.inc" - .include "data/scripts/script_0800BBA4.inc" - .include "data/scripts/script_0800BBDC.inc" - .include "data/scripts/script_0800BC08.inc" - .include "data/scripts/script_0800BC50.inc" - .include "data/scripts/script_0800BCE8.inc" - .include "data/scripts/script_0800BD78.inc" - .include "data/scripts/script_0800BE1C.inc" - .include "data/scripts/script_0800BECC.inc" - .include "data/scripts/script_0800BF38.inc" - .include "data/scripts/script_0800C004.inc" - .include "data/scripts/script_0800C0B0.inc" - .include "data/scripts/script_0800C160.inc" - .include "data/scripts/script_0800C1D8.inc" - .include "data/scripts/script_0800C2A4.inc" - .include "data/scripts/script_0800C350.inc" - .include "data/scripts/script_0800C370.inc" - .include "data/scripts/script_0800C3B0.inc" - .include "data/scripts/script_0800C3CC.inc" - .include "data/scripts/script_0800C410.inc" - .include "data/scripts/script_0800C45C.inc" - .include "data/scripts/script_0800C494.inc" - .include "data/scripts/script_0800C4D0.inc" - .include "data/scripts/script_0800C50C.inc" - .include "data/scripts/script_0800C550.inc" - .include "data/scripts/script_0800C8C8.inc" - .include "data/scripts/script_0800C8F0.inc" - .include "data/scripts/script_0800C91C.inc" - .include "data/scripts/script_0800CA8C.inc" - .include "data/scripts/script_0800CABC.inc" - .include "data/scripts/script_0800CB54.inc" - .include "data/scripts/script_0800CBD4.inc" - .include "data/scripts/script_0800CC6C.inc" - .include "data/scripts/script_0800CD04.inc" - .include "data/scripts/script_0800CD7C.inc" - .include "data/scripts/script_0800D190.inc" - .include "data/scripts/script_0800D1B4.inc" - .include "data/scripts/script_0800D1E0.inc" - .include "data/scripts/script_0800D218.inc" - .include "data/scripts/script_0800D242.inc" - .include "data/scripts/script_0800D24C.inc" - .include "data/scripts/script_0800D254.inc" - .include "data/scripts/script_0800D278.inc" - .include "data/scripts/script_0800D3EC.inc" - .include "data/scripts/script_0800D414.inc" - .include "data/scripts/script_0800D698.inc" - .include "data/scripts/script_0800D6B4.inc" - .include "data/scripts/script_0800D6D0.inc" - .include "data/scripts/script_0800D6F0.inc" - .include "data/scripts/script_0800D710.inc" - .include "data/scripts/script_0800D76C.inc" - .include "data/scripts/script_0800D84C.inc" - .include "data/scripts/script_0800D874.inc" - .include "data/scripts/script_0800D92C.inc" - .include "data/scripts/script_0800D954.inc" - .include "data/scripts/script_0800DA00.inc" - .include "data/scripts/script_0800DA28.inc" - .include "data/scripts/script_0800DA60.inc" - .include "data/scripts/script_0800DB18.inc" - .include "data/scripts/script_0800DB28.inc" - .include "data/scripts/script_0800DB78.inc" - .include "data/scripts/script_0800DC4C.inc" - .include "data/scripts/script_0800DCAC.inc" - .include "data/scripts/script_0800DDD0.inc" - .include "data/scripts/script_0800DE00.inc" - .include "data/scripts/script_0800DE2C.inc" - .include "data/scripts/script_0800DE50.inc" - .include "data/scripts/script_0800DE78.inc" - .include "data/scripts/script_0800DEB0.inc" - .include "data/scripts/script_0800DED4.inc" - .include "data/scripts/script_0800DF24.inc" - .include "data/scripts/script_0800DFB4.inc" - .include "data/scripts/script_0800DFE4.inc" - .include "data/scripts/script_0800E050.inc" - .include "data/scripts/script_0800E094.inc" - .include "data/scripts/script_0800E0BC.inc" - .include "data/scripts/script_0800E504.inc" - .include "data/scripts/script_0800E544.inc" - .include "data/scripts/script_0800E58C.inc" - .include "data/scripts/script_0800E5C4.inc" - .include "data/scripts/script_0800E5D6.inc" - .include "data/scripts/script_0800E600.inc" - .include "data/scripts/script_0800E62C.inc" - .include "data/scripts/script_0800E658.inc" - .include "data/scripts/script_0800E684.inc" - .include "data/scripts/script_0800E6B0.inc" - .include "data/scripts/script_0800E8A4.inc" - .include "data/scripts/script_0800E8D6.inc" - .include "data/scripts/script_0800E908.inc" - .include "data/scripts/script_0800E9F4.inc" - .include "data/scripts/script_0800EA1C.inc" - .include "data/scripts/script_0800EA54.inc" - .include "data/scripts/script_0800EF40.inc" - .include "data/scripts/script_0800EF9C.inc" - .include "data/scripts/script_0800EFC0.inc" - .include "data/scripts/script_0800F14C.inc" - .include "data/scripts/script_0800F184.inc" - .include "data/scripts/script_0800F33C.inc" - .include "data/scripts/script_0800F354.inc" - .include "data/scripts/script_0800F36C.inc" - .include "data/scripts/script_0800F384.inc" - .include "data/scripts/script_0800F39C.inc" - .include "data/scripts/script_0800F430.inc" - .include "data/scripts/script_0800F4C4.inc" - .include "data/scripts/script_0800F554.inc" - .include "data/scripts/script_0800F724.inc" - .include "data/scripts/script_0800FA54.inc" - .include "data/scripts/script_0800FA78.inc" - .include "data/scripts/script_0800FA9C.inc" - .include "data/scripts/script_0800FAC0.inc" - .include "data/scripts/script_0800FAE4.inc" - .include "data/scripts/script_0800FB2C.inc" - .include "data/scripts/script_0800FB44.inc" - .include "data/scripts/script_0800FD0C.inc" - .include "data/scripts/script_0800FD80.inc" - .include "data/scripts/script_0800FDA0.inc" - .include "data/scripts/script_0800FF18.inc" - .include "data/scripts/script_0800FF74.inc" - .include "data/scripts/script_080100C8.inc" - .include "data/scripts/script_08010264.inc" - .include "data/scripts/script_08010964.inc" - .include "data/scripts/script_080109F0.inc" - .include "data/scripts/script_08010A14.inc" - .include "data/scripts/script_08010A38.inc" - .include "data/scripts/script_08010A5C.inc" - .include "data/scripts/script_08010A98.inc" - .include "data/scripts/script_08010B68.inc" - .include "data/scripts/script_08010BB4.inc" - .include "data/scripts/script_08010E5A.inc" - .include "data/scripts/script_08010F84.inc" - .include "data/scripts/script_08011074.inc" - .include "data/scripts/script_08011098.inc" - .include "data/scripts/script_080110BC.inc" - .include "data/scripts/script_080110E8.inc" - .include "data/scripts/script_08011128.inc" - .include "data/scripts/script_080111CC.inc" - .include "data/scripts/script_080112C4.inc" - .include "data/scripts/script_080113AA.inc" - .include "data/scripts/script_08011442.inc" - .include "data/scripts/script_08011508.inc" - .include "data/scripts/script_080115D0.inc" - .include "data/scripts/script_08011608.inc" - .include "data/scripts/script_08011640.inc" - .include "data/scripts/script_080116A8.inc" - .include "data/scripts/script_0801183C.inc" - .include "data/scripts/script_08011890.inc" - .include "data/scripts/script_080118D4.inc" - .include "data/scripts/script_08011930.inc" - .include "data/scripts/script_08011940.inc" - .include "data/scripts/script_0801194C.inc" - .include "data/scripts/script_08011B20.inc" - .include "data/scripts/script_08011B40.inc" - .include "data/scripts/script_08011C50.inc" - .include "data/scripts/script_08011C7C.inc" - .include "data/scripts/script_0801232C.inc" - .include "data/scripts/script_08012410.inc" - .include "data/scripts/script_08012430.inc" - .include "data/scripts/script_080126FC.inc" - .include "data/scripts/script_08012AB0.inc" - .include "data/scripts/script_08012AC8.inc" - .include "data/scripts/script_08012AF0.inc" - .include "data/scripts/script_08012B18.inc" - .include "data/scripts/script_08012B24.inc" - .include "data/scripts/script_08012B50.inc" - .include "data/scripts/script_08012B7C.inc" - .include "data/scripts/script_08012BA8.inc" - .include "data/scripts/script_08012BF8.inc" - .include "data/scripts/script_08012C48.inc" - .include "data/scripts/script_08012C68.inc" - .include "data/scripts/script_08012CD8.inc" - .include "data/scripts/script_08012D18.inc" - .include "data/scripts/script_08012D70.inc" - .include "data/scripts/script_08012DB0.inc" - .include "data/scripts/script_08012DD8.inc" - .include "data/scripts/script_08012DF8.inc" - .include "data/scripts/script_08012E20.inc" - .include "data/scripts/script_08012E44.inc" - .include "data/scripts/script_08012E88.inc" - .include "data/scripts/script_08012F0C.inc" - .include "data/scripts/script_08012F86.inc" - .include "data/scripts/script_080130E4.inc" - .include "data/scripts/script_08013114.inc" - .include "data/scripts/script_0801319A.inc" - .include "data/scripts/script_080132E4.inc" - .include "data/scripts/script_0801330C.inc" - .include "data/scripts/script_08013330.inc" - .include "data/scripts/script_0801334C.inc" - .include "data/scripts/script_08013378.inc" - .include "data/scripts/script_080133C4.inc" - .include "data/scripts/script_080133F8.inc" - .include "data/scripts/script_08013494.inc" - .include "data/scripts/script_080134DC.inc" - .include "data/scripts/script_08013650.inc" - .include "data/scripts/script_080136B4.inc" - .include "data/scripts/script_080136D8.inc" - .include "data/scripts/script_08013720.inc" - .include "data/scripts/script_080138B4.inc" - .include "data/scripts/script_08013AA6.inc" - .include "data/scripts/script_08013B18.inc" - .include "data/scripts/script_08013B70.inc" - .include "data/scripts/script_08013BA8.inc" - .include "data/scripts/script_08013BE8.inc" - .include "data/scripts/script_08013CA4.inc" - .include "data/scripts/script_08013D04.inc" - .include "data/scripts/script_08013D44.inc" - .include "data/scripts/script_08013D84.inc" - .include "data/scripts/script_08013DC4.inc" - .include "data/scripts/script_08013E04.inc" - .include "data/scripts/script_08013E28.inc" - .include "data/scripts/script_08013E4C.inc" - .include "data/scripts/script_08013E70.inc" - .include "data/scripts/script_08013E94.inc" - .include "data/scripts/script_08013EB0.inc" - .include "data/scripts/script_08013ECC.inc" - .include "data/scripts/script_08013EE8.inc" - .include "data/scripts/script_08013F04.inc" - .include "data/scripts/script_08013F34.inc" - .include "data/scripts/script_08013F64.inc" - .include "data/scripts/script_08013F94.inc" - .include "data/scripts/script_08013FE8.inc" - .include "data/scripts/script_08014054.inc" - .include "data/scripts/script_08014074.inc" - .include "data/scripts/script_08014094.inc" - .include "data/scripts/script_080140B8.inc" - .include "data/scripts/script_080140DC.inc" - .include "data/scripts/script_08014118.inc" - .include "data/scripts/script_08014154.inc" - .include "data/scripts/script_08014198.inc" - .include "data/scripts/script_080141DC.inc" - .include "data/scripts/script_08014210.inc" - .include "data/scripts/script_08014248.inc" - .include "data/scripts/script_080142B0.inc" - .include "data/scripts/script_08014384.inc" - .include "data/scripts/script_080143C0.inc" - .include "data/scripts/script_08014450.inc" - .include "data/scripts/script_0801450C.inc" - .include "data/scripts/script_08014588.inc" - .include "data/scripts/script_080145B0.inc" - .include "data/scripts/script_080145E8.inc" - .include "data/scripts/script_080147DC.inc" - .include "data/scripts/script_08014804.inc" - .include "data/scripts/script_08014958.inc" - .include "data/scripts/script_080149CC.inc" - .include "data/scripts/script_08014A80.inc" - .include "data/scripts/script_08014B10.inc" - .include "data/scripts/script_08014B34.inc" - .include "data/scripts/script_08014CDC.inc" - .include "data/scripts/script_08014DCC.inc" - .include "data/scripts/script_08014E14.inc" - .include "data/scripts/script_08015234.inc" - .include "data/scripts/script_080152B4.inc" - .include "data/scripts/script_080152DC.inc" - .include "data/scripts/script_08015304.inc" - .include "data/scripts/script_08015338.inc" - .include "data/scripts/script_08015360.inc" - .include "data/scripts/script_08015384.inc" - .include "data/scripts/script_08015390.inc" - .include "data/scripts/script_080153EC.inc" - .include "data/scripts/script_0801548E.inc" - .include "data/scripts/script_0801550C.inc" - .include "data/scripts/script_080155F4.inc" - .include "data/scripts/script_08015618.inc" - .include "data/scripts/script_08015684.inc" - .include "data/scripts/script_08015754.inc" - .include "data/scripts/script_080157AC.inc" - .include "data/scripts/script_080158F8.inc" - .include "data/scripts/script_08015918.inc" - .include "data/scripts/script_08015938.inc" - .include "data/scripts/script_08015958.inc" - .include "data/scripts/script_08015A7C.inc" - .include "data/scripts/script_08015AA0.inc" - .include "data/scripts/script_08015AC4.inc" - .include "data/scripts/script_08015B14.inc" - .include "data/scripts/script_08015B34.inc" - .include "data/scripts/script_08015B84.inc" - .include "data/scripts/script_08015BA8.inc" - .include "data/scripts/script_08015BE8.inc" - .include "data/scripts/script_08015C7C.inc" - .include "data/scripts/script_08015CD4.inc" - .include "data/scripts/script_08015DF0.inc" - .include "data/scripts/script_08015E58.inc" - .include "data/scripts/script_08015F08.inc" - .include "data/scripts/script_08015F3C.inc" - .include "data/scripts/script_08015F80.inc" - .include "data/scripts/script_08015FA4.inc" - .include "data/scripts/script_08015FC0.inc" - .include "data/scripts/script_08016004.inc" - .include "data/scripts/script_08016030.inc" - .include "data/scripts/script_08016062.inc" - .include "data/scripts/script_0801606C.inc" - .include "data/scripts/script_0801609E.inc" - .include "data/scripts/script_080160A8.inc" - .include "data/scripts/script_0801635C.inc" - .include "data/scripts/script_0801637C.inc" - .include "data/scripts/script_08016384.inc" - .include "data/scripts/script_08016482.inc" - .include "data/scripts/script_080165A4.inc" - .include "data/scripts/script_080165D8.inc" + .include "data/scripts/hyruleTown/script_LibrarianRight.inc" + .include "data/scripts/hyruleTown/script_LibrarianLeft.inc" + .include "data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc" + .include "data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc" + .include "data/scripts/hyruleTown/script_Object69AllBooksCollected.inc" + .include "data/scripts/hyruleTown/script_LibraryVisitor.inc" + .include "data/scripts/hyruleCastle/script_GuardAtEntry.inc" + .include "data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc" + .include "data/scripts/cutscene/introAssembly/script_PlayerEnters.inc" + .include "data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc" + .include "data/scripts/cutscene/introAssembly/script_GuardAtAssembly.inc" + .include "data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc" + .include "data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc" + .include "data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc" + .include "data/scripts/hyruleCastle/script_MinisterPotho.inc" + .include "data/scripts/hyruleCastle/script_SmithAtCastle.inc" + .include "data/scripts/hyruleCastle/script_KingDaltus.inc" + .include "data/scripts/hyruleCastle/script_StoneZelda.inc" + .include "data/scripts/veilFalls/script_BigGoron1.inc" + .include "data/scripts/veilFalls/script_BigGoronHiding.inc" + .include "data/scripts/veilFalls/script_BigGoron2.inc" + .include "data/scripts/veilFalls/script_BigGoron3.inc" + .include "data/scripts/veilFalls/script_BigGoronTalk.inc" + .include "data/scripts/veilFalls/script_BigGoronMirrorShield.inc" + .include "data/scripts/veilFalls/script_Object6AVeilFallsTop.inc" + .include "data/scripts/veilFalls/script_Object6AMirrorShield.inc" + .include "data/scripts/northHyruleField/script_MutohOutsideTown.inc" + .include "data/scripts/hyruleTown/script_MutohInMill.inc" + .include "data/scripts/northHyruleField/script_CarpenterOutsideTown.inc" + .include "data/scripts/graveyard/script_DampeInside2.inc" + .include "data/scripts/graveyard/script_DampeInside.inc" + .include "data/scripts/graveyard/script_DampeOuside.inc" + .include "data/scripts/graveyard/script_GraveyardHouseDoor.inc" + .include "data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc" + .include "data/scripts/graveyard/script_GhostBrothers.inc" + .include "data/scripts/graveyard/script_Object69CrowStealingKey.inc" + .include "data/scripts/graveyard/script_Object97FirstCrow.inc" + .include "data/scripts/graveyard/script_Object97SecondCrow.inc" + .include "data/scripts/graveyard/script_PlayerGetKeyStolen.inc" + .include "data/scripts/graveyard/script_Object69GetKeyBack.inc" + .include "data/scripts/cutscene/intro/script_Object69Intro.inc" + .include "data/scripts/cutscene/intro/script_SmithIntro.inc" + .include "data/scripts/cutscene/intro/script_ZeldaIntro.inc" + .include "data/scripts/cutscene/intro/script_Object69Intro2.inc" + .include "data/scripts/cutscene/intro/script_IntroCameraTarget.inc" + .include "data/scripts/cutscene/intro/script_ZeldaMoveToLinksHouse.inc" + .include "data/scripts/cutscene/intro/script_HouseDoorIntro.inc" + .include "data/scripts/cutscene/intro/script_PlayerIntro.inc" + .include "data/scripts/cutscene/intro/script_SmithIntro2.inc" + .include "data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc" + .include "data/scripts/cutscene/intro/script_PlayerMoveToSmith.inc" + .include "data/scripts/cutscene/intro/script_ZeldaLeaveLinksHouse.inc" + .include "data/scripts/southHyruleField/script_SmithAtLinksHouse.inc" + .include "data/scripts/southHyruleField/script_Object69LinksHouseBed.inc" + .include "data/scripts/southHyruleField/script_PlayerWakeAfterRest.inc" + .include "data/scripts/unused/script_08009E80.inc" + .include "data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc" + .include "data/scripts/southHyruleField/script_BedInLinksRoom.inc" + .include "data/scripts/hyruleTown/script_BedAtSimons.inc" + .include "data/scripts/minishWoods/script_BombMinish.inc" + .include "data/scripts/minishWoods/script_PlayerAtBombMinish.inc" + .include "data/scripts/sanctuary/script_PlayerGetElement.inc" + .include "data/scripts/dhc/script_Npc4EV3Defeated.inc" + .include "data/scripts/dhc/script_Object6AV3DefeatedMinishCap.inc" + .include "data/scripts/dhc/script_Object6AV3DefeatedMinishCap2.inc" + .include "data/scripts/cutscene/outro/script_Npc4EOutro.inc" + .include "data/scripts/cutscene/outro/script_PlayerAtOutro.inc" + .include "data/scripts/cutscene/outro/script_MinishEzloOutro.inc" + .include "data/scripts/cutscene/outro/script_ZeldaOutro.inc" + .include "data/scripts/cutscene/outro/script_Object6AMinishCapOutro.inc" + .include "data/scripts/cutscene/outro/script_EzloCapOutro.inc" + .include "data/scripts/cutscene/outro/script_Object6AZeldaMagic.inc" + .include "data/scripts/cutscene/outro/script_Object6AEzloDismounting.inc" + .include "data/scripts/cutscene/outro/script_EzloZeldaMagic.inc" + .include "data/scripts/cutscene/outro/script_Npc4EDHCThrone.inc" + .include "data/scripts/cutscene/outro/script_Npc4EHyruleCastleThrone.inc" + .include "data/scripts/cutscene/outro/script_Npc4EDHCEntrance.inc" + .include "data/scripts/cutscene/outro/script_Npc4EHyruleCastleEntrance.inc" + .include "data/scripts/cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc" + .include "data/scripts/cutscene/outro/script_GuardStoneOutro1.inc" + .include "data/scripts/cutscene/outro/script_GuardStoneOutro2.inc" + .include "data/scripts/cutscene/outro/script_GuardStoneOutro3.inc" + .include "data/scripts/cutscene/outro/script_MaidStoneOutro1.inc" + .include "data/scripts/cutscene/outro/script_MaidStoneOutro2.inc" + .include "data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc" + .include "data/scripts/cutscene/outro/script_Object6AOctorok1.inc" + .include "data/scripts/cutscene/outro/script_Object6AOctorok2.inc" + .include "data/scripts/cutscene/outro/script_Object6AOctorok3.inc" + .include "data/scripts/cutscene/outro/script_Object6AOctorok4.inc" + .include "data/scripts/cutscene/outro/script_Npc4EMtCrenel.inc" + .include "data/scripts/cutscene/outro/script_Object6ATektite1.inc" + .include "data/scripts/cutscene/outro/script_Object6ATektite2.inc" + .include "data/scripts/cutscene/outro/script_Object6ATektite3.inc" + .include "data/scripts/cutscene/outro/script_Object6ATektite4.inc" + .include "data/scripts/cutscene/outro/script_Npc4ESanctuaryEntrance.inc" + .include "data/scripts/cutscene/outro/script_Npc4EFixedEverything.inc" + .include "data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc" + .include "data/scripts/cutscene/outro/script_PlayerAtEzlo.inc" + .include "data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc" + .include "data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc" + .include "data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc" + .include "data/scripts/cutscene/outro/script_ZeldaGoodbye.inc" + .include "data/scripts/cutscene/outro/script_Object6ATheLittleHat.inc" + .include "data/scripts/cutscene/outro/script_Object6AEzloFinalMagic.inc" + .include "data/scripts/minishWoods/script_EzloTalkDWS.inc" + .include "data/scripts/mtCrenel/script_EzloTalkCoF.inc" + .include "data/scripts/windRuins/script_EzloTalkFoW.inc" + .include "data/scripts/lakeHylia/script_Object69AfterToD.inc" + .include "data/scripts/cloudTops/script_EzloTalkPoW.inc" + .include "data/scripts/npc/script_Windcrest.inc" + .include "data/scripts/lakeHylia/script_EzloTalkOcarina.inc" + .include "data/scripts/npc/script_Farmer.inc" + .include "data/scripts/castorWilds/script_Object69DarknutFight.inc" + .include "data/scripts/castorWilds/script_PlayerAtDarknutFight.inc" + .include "data/scripts/castorWilds/script_Object69.inc" + .include "data/scripts/castorWilds/script_CastorWildsStatueLeft.inc" + .include "data/scripts/castorWilds/script_CastorWildsStatueMiddle.inc" + .include "data/scripts/castorWilds/script_CastorWildsStatueRight.inc" + .include "data/scripts/castorWilds/script_CastorWildsStatueRock.inc" + .include "data/scripts/lonLonRanch/script_TalonLostKey.inc" + .include "data/scripts/lonLonRanch/script_TalonGotKey.inc" + .include "data/scripts/lonLonRanch/script_MalonLostKey.inc" + .include "data/scripts/lonLonRanch/script_PlayerGiveKey.inc" + .include "data/scripts/lonLonRanch/script_LonLonRanchDoor.inc" + .include "data/scripts/lakeHylia/script_ShopwellsDog.inc" + .include "data/scripts/castorWilds/script_MalonAtRanch.inc" + .include "data/scripts/graveyard/script_GreatFairyArrows.inc" + .include "data/scripts/castorWilds/script_GreatFairyRupees.inc" + .include "data/scripts/mtCrenel/script_GreatFairyBombs.inc" + .include "data/scripts/npc/script_PlayerAtGreatFairy.inc" + .include "data/scripts/unused/script_0800B828.inc" + .include "data/scripts/hyruleCastle/script_CastleMaid.inc" + .include "data/scripts/mtCrenel/script_CrenelHermit.inc" + .include "data/scripts/graveyard/script_Gina.inc" + .include "data/scripts/npc/script_MysteriousWall.inc" + .include "data/scripts/lonLonRanch/script_GoronPunching.inc" + .include "data/scripts/hyruleTown/script_Phonograph.inc" + .include "data/scripts/kinstoneFusion/script_GormanFirstAppearance.inc" + .include "data/scripts/kinstoneFusion/script_MutohKinstone.inc" + .include "data/scripts/kinstoneFusion/script_SyrupKinstone.inc" + .include "data/scripts/kinstoneFusion/script_BombMinishKinstone.inc" + .include "data/scripts/kinstoneFusion/script_GoronMerchantArriving.inc" + .include "data/scripts/kinstoneFusion/script_StampKinstone.inc" + .include "data/scripts/kinstoneFusion/script_CarlovKinstone.inc" + .include "data/scripts/kinstoneFusion/script_GhostBrotherKinstone.inc" + .include "data/scripts/kinstoneFusion/script_GoronKinstone.inc" + .include "data/scripts/kinstoneFusion/script_Goron1Kinstone2.inc" + .include "data/scripts/kinstoneFusion/script_Goron2Kinstone2.inc" + .include "data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc" + .include "data/scripts/kinstoneFusion/script_Goron2Kinstone3.inc" + .include "data/scripts/kinstoneFusion/script_Goron3Kinstone3.inc" + .include "data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc" + .include "data/scripts/kinstoneFusion/script_Goron2Kinstone4.inc" + .include "data/scripts/kinstoneFusion/script_Goron4Kinstone4.inc" + .include "data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc" + .include "data/scripts/kinstoneFusion/script_Goron2Kinstone5.inc" + .include "data/scripts/kinstoneFusion/script_Goron5Kinstone5.inc" + .include "data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc" + .include "data/scripts/kinstoneFusion/script_Goron2Kinstone6.inc" + .include "data/scripts/kinstoneFusion/script_Goron6Kindstone6.inc" + .include "data/scripts/kinstoneFusion/script_BigGoronKinstone1.inc" + .include "data/scripts/kinstoneFusion/script_BigGoronKinstone4.inc" + .include "data/scripts/kinstoneFusion/script_BigGoronKinstone5.inc" + .include "data/scripts/kinstoneFusion/script_BigGoronKinstone2.inc" + .include "data/scripts/kinstoneFusion/script_BigGoronKinstone3.inc" + .include "data/scripts/kinstoneFusion/script_ObjectB3KinstoneSpark.inc" + .include "data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkFromBottom.inc" + .include "data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoronMerchang.inc" + .include "data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc" + .include "data/scripts/westernWood/script_ForestMinish1.inc" + .include "data/scripts/southHyruleField/script_ForestMinish2.inc" + .include "data/scripts/lakeHylia/script_ForestMinish3.inc" + .include "data/scripts/minishWoods/script_ForestMinish4.inc" + .include "data/scripts/minishWoods/script_Festari.inc" + .include "data/scripts/minishWoods/script_Gentari.inc" + .include "data/scripts/minishWoods/script_PlayerAtFestari.inc" + .include "data/scripts/minishWoods/script_PlayerAtGentari.inc" + .include "data/scripts/cutscene/minishVillage/script_Object69VillageIntro.inc" + .include "data/scripts/cutscene/minishVillage/script_PlayerAtVillageIntro.inc" + .include "data/scripts/cutscene/minishVillage/script_ForestMinish5.inc" + .include "data/scripts/cutscene/minishVillage/script_ForestMinish6.inc" + .include "data/scripts/cutscene/minishVillage/script_ForestMinish7.inc" + .include "data/scripts/cutscene/minishVillage/script_ForestMinish8.inc" + .include "data/scripts/cutscene/minishVillage/script_ForestMinish9.inc" + .include "data/scripts/minishWoods/script_ForestMinish10.inc" + .include "data/scripts/mtCrenel/script_MountainMinish1.inc" + .include "data/scripts/mtCrenel/script_MountainMinish2.inc" + .include "data/scripts/mtCrenel/script_Melari.inc" + .include "data/scripts/mtCrenel/script_PlayerAtMelari.inc" + .include "data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc" + .include "data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc" + .include "data/scripts/mtCrenel/script_Object6ABrokenSword.inc" + .include "data/scripts/mtCrenel/script_Object6ARepairedSword.inc" + .include "data/scripts/mtCrenel/script_MountainMinish3.inc" + .include "data/scripts/mtCrenel/script_MelariInRoom.inc" + .include "data/scripts/mtCrenel/script_MountainMinish4.inc" + .include "data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc" + .include "data/scripts/mtCrenel/script_MountainMinish5.inc" + .include "data/scripts/hyruleTown/script_KidInn.inc" + .include "data/scripts/cloudTops/script_Npc4EFirstCloud.inc" + .include "data/scripts/cloudTops/script_Npc4EKinstoneFused.inc" + .include "data/scripts/cloudTops/script_Object6AMysteriousCloud.inc" + .include "data/scripts/cloudTops/script_HiddenWhirlwind1.inc" + .include "data/scripts/cloudTops/script_HiddenWhirlwind2.inc" + .include "data/scripts/cloudTops/script_Object69GreatWhirlwindRevealed.inc" + .include "data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc" + .include "data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc" + .include "data/scripts/unused/script_0800D84C.inc" + .include "data/scripts/windRuins/script_Npc4EWindRuinsTextBoard.inc" + .include "data/scripts/windRuins/script_Npc4EReceiveOcarina.inc" + .include "data/scripts/windRuins/script_PlayerAtTextboard.inc" + .include "data/scripts/graveyard/script_KingGustav.inc" + .include "data/scripts/graveyard/script_PlayerAtKingGustav.inc" + .include "data/scripts/graveyard/script_Object6AKingsGravestone.inc" + .include "data/scripts/dhc/script_Object69VaatiWithZelda.inc" + .include "data/scripts/dhc/script_ZeldaStoneInDHC.inc" + .include "data/scripts/dhc/script_VaatiWithZelda.inc" + .include "data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc" + .include "data/scripts/dhc/script_Npc4ECastleCollapsing.inc" + .include "data/scripts/dhc/script_ZeldaAfterDefeatingV2.inc" + .include "data/scripts/dhc/script_PlayerRescuedZelda.inc" + .include "data/scripts/dhc/script_PlayerAfterDefeatingV2.inc" + .include "data/scripts/dhc/script_PlayerCastleCollapsing.inc" + .include "data/scripts/dhc/script_PlayerStonesFall.inc" + .include "data/scripts/dhc/script_Object69CastleEscape.inc" + .include "data/scripts/dhc/script_PlayerCastleEscape.inc" + .include "data/scripts/dhc/script_ZeldaCastleEscape.inc" + .include "data/scripts/dhc/script_Vaati1Intro.inc" + .include "data/scripts/dhc/script_Object69V1Defeated.inc" + .include "data/scripts/dhc/script_Object69V2Intro.inc" + .include "data/scripts/dhc/script_Object69V2Defeated.inc" + .include "data/scripts/dhc/script_PlayerV2Defeated.inc" + .include "data/scripts/dhc/script_MinishterPothoStone.inc" + .include "data/scripts/dhc/script_GuardStone1.inc" + .include "data/scripts/dhc/script_GuardStone2.inc" + .include "data/scripts/dhc/script_KingDaltusStone.inc" + .include "data/scripts/dhc/script_MinisterPothoCell.inc" + .include "data/scripts/dhc/script_GuardCellLeft.inc" + .include "data/scripts/dhc/script_GuardCellRight.inc" + .include "data/scripts/dhc/script_Object69BallAndChainSoldierRoom.inc" + .include "data/scripts/dhc/script_Object69KeatonsRoom.inc" + .include "data/scripts/dhc/script_Object69DarkNutsRoom.inc" + .include "data/scripts/dhc/script_ZeldaStoneDHC.inc" + .include "data/scripts/dhc/script_Object69DHC.inc" + .include "data/scripts/dhc/script_Object69KillDarkNut.inc" + .include "data/scripts/dhc/script_PlayerAtDarkNut1.inc" + .include "data/scripts/dhc/script_PlayerAtDarkNut2.inc" + .include "data/scripts/dhc/script_PlayerAtDarkNut3.inc" + .include "data/scripts/minishWoods/script_PlayerAtMadderpillar.inc" + .include "data/scripts/hyruleTown/script_ForestMinish11.inc" + .include "data/scripts/hyruleTown/script_TownMinish1.inc" + .include "data/scripts/hyruleTown/script_TownMinish2.inc" + .include "data/scripts/hyruleTown/script_TownMinish3.inc" + .include "data/scripts/hyruleTown/script_Teachers.inc" + .include "data/scripts/hyruleTown/script_Emma.inc" + .include "data/scripts/hyruleTown/script_RentRegularRoom.inc" + .include "data/scripts/hyruleTown/script_RentSmallRoom.inc" + .include "data/scripts/hyruleTown/script_EmmaNotEnoughRupees.inc" + .include "data/scripts/hyruleTown/script_Mama.inc" + .include "data/scripts/hyruleTown/script_Librari.inc" + .include "data/scripts/hyruleTown/script_PlayerStepOnTrap.inc" + .include "data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc" + .include "data/scripts/hyruleTown/script_Mayor.inc" + .include "data/scripts/hyruleTown/script_DrLeft.inc" + .include "data/scripts/hyruleTown/script_WindTribespeopleVisitor.inc" + .include "data/scripts/hyruleTown/script_TownspersonInDogHouse.inc" + .include "data/scripts/hyruleTown/script_DogPersonInCatHouse.inc" + .include "data/scripts/hyruleTown/script_OldLadyCatHouse1.inc" + .include "data/scripts/hyruleTown/script_OldLadyCatHouse2.inc" + .include "data/scripts/hyruleTown/script_CatPersonTalkingToDogPerson.inc" + .include "data/scripts/hyruleTown/script_CatPerson.inc" + .include "data/scripts/hyruleTown/script_CafeGuy.inc" + .include "data/scripts/hyruleTown/script_SittingPerson.inc" + .include "data/scripts/hyruleTown/script_Sturgeon.inc" + .include "data/scripts/hyruleTown/script_TownMinish4.inc" + .include "data/scripts/hyruleTown/script_TownMinish5.inc" + .include "data/scripts/hyruleTown/script_DrLeftDoor.inc" + .include "data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc" + .include "data/scripts/hyruleTown/script_TownMinish6.inc" + .include "data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc" + .include "data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc" + .include "data/scripts/cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc" + .include "data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc" + .include "data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc" + .include "data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc" + .include "data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc" + .include "data/scripts/cutscene/kinstones/script_KidKinstone1.inc" + .include "data/scripts/cutscene/kinstones/script_KidKinstone2.inc" + .include "data/scripts/cutscene/kinstones/script_KidKinstone3.inc" + .include "data/scripts/cutscene/introTown/script_TownsperonIntro.inc" + .include "data/scripts/cutscene/introTown/script_KidIntro1.inc" + .include "data/scripts/cutscene/introTown/script_GuardIntro.inc" + .include "data/scripts/cutscene/introTown/script_BeedleIntro.inc" + .include "data/scripts/cutscene/introTown/script_WindtribespeopleIntro.inc" + .include "data/scripts/cutscene/introTown/script_PercyIntro.inc" + .include "data/scripts/cutscene/introTown/script_PinaIntro.inc" + .include "data/scripts/cutscene/introTown/script_KidIntro2.inc" + .include "data/scripts/cutscene/introTown/script_KidIntro3.inc" + .include "data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc" + .include "data/scripts/cutscene/introTown/script_PlayerIntro1.inc" + .include "data/scripts/cutscene/introTown/script_PlayerIntro2.inc" + .include "data/scripts/cutscene/introTown/script_PlayerIntro3.inc" + .include "data/scripts/cutscene/introTown/script_PlayerIntro4.inc" + .include "data/scripts/cutscene/introTown/script_PlayerIntro5.inc" + .include "data/scripts/unused/script_0800FB2C.inc" + .include "data/scripts/cutscene/introTown/script_ZeldaIntroTown.inc" + .include "data/scripts/cutscene/introTown/script_Object69IntroTown.inc" + .include "data/scripts/cutscene/introTown/script_PlayerIntroTown.inc" + .include "data/scripts/hyruleTown/script_GormanFirstHouse.inc" + .include "data/scripts/hyruleTown/script_GormanSecondHouse.inc" + .include "data/scripts/hyruleTown/script_GormanCats.inc" + .include "data/scripts/hyruleTown/script_GuardNorth.inc" + .include "data/scripts/hyruleTown/script_GuardEast.inc" + .include "data/scripts/hyruleTown/script_GuardWest.inc" + .include "data/scripts/hyruleTown/script_Townsperson1.inc" + .include "data/scripts/hyruleTown/script_Townsperson2.inc" + .include "data/scripts/hyruleTown/script_AnjuInside.inc" + .include "data/scripts/hyruleTown/script_Anju.inc" + .include "data/scripts/hyruleTown/script_Ghost.inc" + .include "data/scripts/hyruleTown/script_Kid1.inc" + .include "data/scripts/hyruleTown/script_Kid2.inc" + .include "data/scripts/hyruleTown/script_Kid3.inc" + .include "data/scripts/hyruleTown/script_Kid4.inc" + .include "data/scripts/hyruleTown/script_GuardPatrolling.inc" + .include "data/scripts/hyruleTown/script_GuardLibrary.inc" + .include "data/scripts/hyruleTown/script_MaidTown.inc" + .include "data/scripts/hyruleTown/script_Brocco.inc" + .include "data/scripts/hyruleTown/script_Pina.inc" + .include "data/scripts/hyruleTown/script_Beedle.inc" + .include "data/scripts/hyruleTown/script_Kid5.inc" + .include "data/scripts/hyruleTown/script_Kid6.inc" + .include "data/scripts/hyruleTown/script_Kid7.inc" + .include "data/scripts/hyruleTown/script_Wheaton.inc" + .include "data/scripts/hyruleTown/script_Pita.inc" + .include "data/scripts/hyruleTown/script_Marcy.inc" + .include "data/scripts/hyruleTown/script_Stamp.inc" + .include "data/scripts/hyruleTown/script_GoronMerchant.inc" + .include "data/scripts/hyruleTown/script_InnDoor.inc" + .include "data/scripts/hyruleTown/script_FirstHouseDoor.inc" + .include "data/scripts/hyruleTown/script_SimonsDoor.inc" + .include "data/scripts/hyruleTown/script_PhonographDoor.inc" + .include "data/scripts/hyruleTown/script_PlayerAtInnDoor.inc" + .include "data/scripts/sanctuary/script_PlayerSanctuary.inc" + .include "data/scripts/hyruleTown/script_PlayerCannotEnter.inc" + .include "data/scripts/hyruleTown/script_PlayerSleepingInn.inc" + .include "data/scripts/hyruleTown/script_Carpenter.inc" + .include "data/scripts/hyruleTown/script_Postman.inc" + .include "data/scripts/hyruleTown/script_SmallTownMinish.inc" + .include "data/scripts/hyruleTown/script_HurdyGurdyMan.inc" + .include "data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc" + .include "data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc" + .include "data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc" + .include "data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc" + .include "data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc" + .include "data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc" + .include "data/scripts/cutscene/introCeremony/script_PlayerFainting.inc" + .include "data/scripts/cutscene/introCeremony/script_MinisterPothoIntroCastle.inc" + .include "data/scripts/cutscene/introCeremony/script_ZeldaIntroCastle.inc" + .include "data/scripts/cutscene/introCeremony/script_GuardCarryingChest.inc" + .include "data/scripts/cutscene/introCeremony/script_GuardBottomRight.inc" + .include "data/scripts/cutscene/introCeremony/script_GuardTopLeft.inc" + .include "data/scripts/cutscene/introCeremony/script_GuardTopRight.inc" + .include "data/scripts/cutscene/introCeremony/script_GuardEntryLeft.inc" + .include "data/scripts/cutscene/introCeremony/script_GuardEntryRight.inc" + .include "data/scripts/cutscene/introCeremony/script_KingDaltusIntroCeremony.inc" + .include "data/scripts/cutscene/introCeremony/script_VaatiIntroCeremony.inc" + .include "data/scripts/cutscene/introCeremony/script_Object6ASwordInChest.inc" + .include "data/scripts/cutscene/introCeremony/script_08011890.inc" + .include "data/scripts/cutscene/introCeremony/script_VaatiDarkMagic.inc" + .include "data/scripts/cutscene/introCeremony/script_Object6AMonsterFromChest.inc" + .include "data/scripts/cutscene/introCeremony/script_ZeldaMagic.inc" + .include "data/scripts/hyruleCastleGarden/script_GuardGarden1.inc" + .include "data/scripts/hyruleCastleGarden/script_GuardGarden2.inc" + .include "data/scripts/hyruleCastleGarden/script_GuardGarden3.inc" + .include "data/scripts/hyruleCastleGarden/script_GuardGarden4.inc" + .include "data/scripts/hyruleCastleGarden/script_GardGarden5.inc" + .include "data/scripts/hyruleCastleGarden/script_GuardGarden6.inc" + .include "data/scripts/hyruleCastleGarden/script_GuardEntry1.inc" + .include "data/scripts/hyruleCastleGarden/script_GuardEntry2.inc" + .include "data/scripts/hyruleCastleGarden/script_GuardEntry3.inc" + .include "data/scripts/hyruleCastleGarden/script_GuardGarden7.inc" + .include "data/scripts/hyruleCastleGarden/script_GuardGarden8.inc" + .include "data/scripts/hyruleTown/script_Simon.inc" + .include "data/scripts/hyruleTown/script_Object69SimonsSimulation.inc" + .include "data/scripts/hyruleTown/script_PlayerWakingUpAtSimons.inc" + .include "data/scripts/hyruleTown/script_Din.inc" + .include "data/scripts/hyruleTown/script_Nayru.inc" + .include "data/scripts/hyruleTown/script_Farore.inc" + .include "data/scripts/hyruleTown/script_Din2.inc" + .include "data/scripts/hyruleTown/script_Nayru2.inc" + .include "data/scripts/hyruleTown/script_Farore2.inc" + .include "data/scripts/hyruleTown/script_DinMovedIn.inc" + .include "data/scripts/hyruleTown/script_NayruMovedIn.inc" + .include "data/scripts/hyruleTown/script_FaroreMovedIn.inc" + .include "data/scripts/hyruleTown/script_DinAlone.inc" + .include "data/scripts/hyruleTown/script_NayruAlone.inc" + .include "data/scripts/hyruleTown/script_FaroreAlone.inc" + .include "data/scripts/westernWood/script_MoblinLadyDisguised.inc" + .include "data/scripts/westernWood/script_MoblinLady.inc" + .include "data/scripts/lakeHylia/script_KingGustafHologram.inc" + .include "data/scripts/lakeHylia/script_PlayerAfterToD.inc" + .include "data/scripts/hyruleTown/script_LibrariLater.inc" + .include "data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc" + .include "data/scripts/cutscene/ezlo/script_EzloCap.inc" + .include "data/scripts/cutscene/ezlo/script_PlayerAtFirstLookAtEzlo.inc" + .include "data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc" + .include "data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc" + .include "data/scripts/cutscene/ezlo/script_PlayerGetEzloCap.inc" + .include "data/scripts/unused/script_08012B24.inc" + .include "data/scripts/unused/script_08012B50.inc" + .include "data/scripts/unused/script_08012B7C.inc" + .include "data/scripts/cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc" + .include "data/scripts/cutscene/ezlo/script_Object6ARightBullyingOctorok.inc" + .include "data/scripts/npc/script_08012C48.inc" + .include "data/scripts/unused/script_08012C68.inc" + .include "data/scripts/minishWoods/script_08012C98.inc" + .include "data/scripts/minishWoods/script_EzloTalkMinishPortal.inc" + .include "data/scripts/minishWoods/script_08012D18.inc" + .include "data/scripts/hyruleCastle/script_Object69SanctuaryEntrance.inc" + .include "data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc" + .include "data/scripts/fow/script_Object89Mazaal.inc" + .include "data/scripts/fow/script_PlayerAtMazaal.inc" + .include "data/scripts/fow/script_MazaalMacroDefeated.inc" + .include "data/scripts/fow/script_PlayerDefeatedMazaal.inc" + .include "data/scripts/westernWood/script_PercyInside.inc" + .include "data/scripts/westernWood/script_PercyOutside.inc" + .include "data/scripts/hyruleTown/script_Rem.inc" + .include "data/scripts/hyruleTown/script_RemFallingAsleep.inc" + .include "data/scripts/hyruleTown/script_PlayerAtRem.inc" + .include "data/scripts/hyruleTown/script_RemTownMinish.inc" + .include "data/scripts/hyruleTown/script_Object69Rem.inc" + .include "data/scripts/cutscene/reveal/script_Object3EPictureBackRoom.inc" + .include "data/scripts/cutscene/reveal/script_PlayerAtPicture.inc" + .include "data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc" + .include "data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc" + .include "data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc" + .include "data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc" + .include "data/scripts/cutscene/reveal/script_FakeKingDaltus.inc" + .include "data/scripts/cutscene/reveal/script_VaatiSanctuary.inc" + .include "data/scripts/cutscene/reveal/script_08013494.inc" + .include "data/scripts/sanctuary/script_Npc4EPedestal.inc" + .include "data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc" + .include "data/scripts/sanctuary/script_PlayerTextBoardAppears.inc" + .include "data/scripts/sanctuary/script_PlayerAtPedestal.inc" + .include "data/scripts/sanctuary/script_Npc4ESecondSanctuary.inc" + .include "data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc" + .include "data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc" + .include "data/scripts/sanctuary/script_Npc4EPreventPlayerLeaving.inc" + .include "data/scripts/sanctuary/script_PlayerPickUpSword.inc" + .include "data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc" + .include "data/scripts/sanctuary/script_Object6ATextBoard.inc" + .include "data/scripts/sanctuary/script_Npc4ESanctuaryIntro.inc" + .include "data/scripts/unused/script_08013D04.inc" + .include "data/scripts/unused/script_08013D44.inc" + .include "data/scripts/unused/script_08013D84.inc" + .include "data/scripts/unused/script_08013DC4.inc" + .include "data/scripts/sanctuary/script_Object6AEarthElementFloating.inc" + .include "data/scripts/sanctuary/script_Object6AFireElementFloating.inc" + .include "data/scripts/sanctuary/script_Object6AWaterElementFloating.inc" + .include "data/scripts/sanctuary/script_Object6AWindElementFloating.inc" + .include "data/scripts/sanctuary/script_Object6AEarthElement.inc" + .include "data/scripts/sanctuary/script_Object6AFireElement.inc" + .include "data/scripts/sanctuary/script_Object6AWaterElement.inc" + .include "data/scripts/sanctuary/script_Object6AWindElement.inc" + .include "data/scripts/sanctuary/script_Object6ASwordInPedestal.inc" + .include "data/scripts/sanctuary/script_Object6ASword2.inc" + .include "data/scripts/sanctuary/script_Object6ASword3.inc" + .include "data/scripts/sanctuary/script_08013F94.inc" + .include "data/scripts/sanctuary/script_NPC4EPreventPlayerLeave.inc" + .include "data/scripts/sanctuary/script_Object6ASwordChange1.inc" + .include "data/scripts/sanctuary/script_Object6ASwordCharge2.inc" + .include "data/scripts/sanctuary/script_Object6ASwordCharge3.inc" + .include "data/scripts/sanctuary/script_Object6ASwordCharge4.inc" + .include "data/scripts/sanctuary/script_Object6ASwordCharge5.inc" + .include "data/scripts/sanctuary/script_Object6ASwordCharge6.inc" + .include "data/scripts/sanctuary/script_Objet6ASwordCharge7.inc" + .include "data/scripts/sanctuary/script_Object6ASwordCharge8.inc" + .include "data/scripts/sanctuary/script_Object6ASwordCharge9.inc" + .include "data/scripts/sanctuary/script_Object6ASwordCharge10.inc" + .include "data/scripts/sanctuary/script_Object6ASwordCharge11.inc" + .include "data/scripts/sanctuary/script_Npc4ELookAtPictureAgain.inc" + .include "data/scripts/hyruleTown/script_Stockwell.inc" + .include "data/scripts/hyruleTown/script_StockwellBuy.inc" + .include "data/scripts/hyruleTown/script_StockwellDogFood.inc" + .include "data/scripts/hyruleTown/script_Carlov.inc" + .include "data/scripts/hyruleTown/script_CarlovWon.inc" + .include "data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc" + .include "data/scripts/hyruleTown/script_PlayerWhenLeavingCarlovAlreadyPaid.inc" + .include "data/scripts/hyruleTown/script_Object6ACarlov.inc" + .include "data/scripts/hyruleTown/script_Object6ACarlov2.inc" + .include "data/scripts/hyruleTown/script_Carlov2.inc" + .include "data/scripts/hyruleTown/script_PlayerAtCarlov.inc" + .include "data/scripts/hyruleTown/script_CarlovGame.inc" + .include "data/scripts/hyruleTown/script_CarlovChest.inc" + .include "data/scripts/cloudTops/script_WindTribespeople1.inc" + .include "data/scripts/cloudTops/script_WindTribespeople2.inc" + .include "data/scripts/cloudTops/script_WindTribespeople3.inc" + .include "data/scripts/cloudTops/script_WindTribespeople4.inc" + .include "data/scripts/cloudTops/script_WindTribespeople5.inc" + .include "data/scripts/cloudTops/script_WindTribespeople6.inc" + .include "data/scripts/cloudTops/script_Siroc.inc" + .include "data/scripts/cloudTops/script_PlayerAtSiroc.inc" + .include "data/scripts/cloudTops/script_GregalSick.inc" + .include "data/scripts/cloudTops/script_GregalHealthy.inc" + .include "data/scripts/cloudTops/script_WindTribespeople7.inc" + .include "data/scripts/cutscene/intro/script_ZeldaOutsideLinksHouse.inc" + .include "data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc" + .include "data/scripts/northHyruleField/script_GuardNorthHyruleField.inc" + .include "data/scripts/lonLonRanch/script_TalonInside.inc" + .include "data/scripts/lonLonRanch/script_TalonInside2.inc" + .include "data/scripts/lonLonRanch/scriptMalonInside.inc" + .include "data/scripts/hyruleTown/script_MalonHyruleTown.inc" + .include "data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc" + .include "data/scripts/cutscene/originStory/script_VaatiAppearsAgain.inc" + .include "data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc" + .include "data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc" + .include "data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc" + .include "data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc" + .include "data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc" + .include "data/scripts/cutscene/originStory/script_PlayerReceivedExposition.inc" + .include "data/scripts/cutscene/originStory/script_EzloCapExplainingOriginStory.inc" + .include "data/scripts/cutscene/originStory/script_Object69MinishVaati.inc" + .include "data/scripts/cutscene/originStory/script_Object69CameraTarget.inc" + .include "data/scripts/cutscene/originStory/script_MinishEzlo.inc" + .include "data/scripts/unused/script_080155F4.inc" + .include "data/scripts/cutscene/originStory/script_Object6AMinishCap.inc" + .include "data/scripts/cutscene/originStory/script_Vaati.inc" + .include "data/scripts/cutscene/originStory/script_Object6ADarkMagic.inc" + .include "data/scripts/cutscene/introBusinessScrub/script_080157AC.inc" + .include "data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc" + .include "data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc" + .include "data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc" + .include "data/scripts/cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc" + .include "data/scripts/unused/script_08015A7C.inc" + .include "data/scripts/unused/script_08015AA0.inc" + .include "data/scripts/cutscene/introBusinessScrub/script_BusinessScrubIntro.inc" + .include "data/scripts/cutscene/introBusinessScrub/script_08015B14.inc" + .include "data/scripts/cutscene/introBusinessScrub/script_08015B34.inc" + .include "data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc" + .include "data/scripts/northHyruleField/script_Object69FixBridge.inc" + .include "data/scripts/cutscene/takeover/script_Object69Takeover.inc" + .include "data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc" + .include "data/scripts/cutscene/takeover/script_Object69TakeoverCutscene.inc" + .include "data/scripts/cutscene/takeover/script_KingDaltusTakeover.inc" + .include "data/scripts/cutscene/takeover/script_VaatiTakeover.inc" + .include "data/scripts/cutscene/takeover/script_MinisterPothoTakeover.inc" + .include "data/scripts/cutscene/takeover/script_GuardTakeover.inc" + .include "data/scripts/unused/script_08015F80.inc" + .include "data/scripts/cutscene/takeover/script_ZeldaStoneTakeover.inc" + .include "data/scripts/veilFalls/script_NPC4ESourceOfTheFlow.inc" + .include "data/scripts/veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc" + .include "data/scripts/veilFalls/script_Object3ELeftStoneOpening.inc" + .include "data/scripts/veilFalls/script_Object3ELeftStone.inc" + .include "data/scripts/veilFalls/script_Object3ERightStoneOpening.inc" + .include "data/scripts/veilFalls/script_Object3ERightStone.inc" + .include "data/scripts/minishWoods/script_Syrup.inc" + .include "data/scripts/minishWoods/script_Object69PotionBlue.inc" + .include "data/scripts/minishWoods/script_Object69PotionRed.inc" + .include "data/scripts/npc/script_BladeBrothers.inc" + .include "data/scripts/npc/script_PlayerAtBladeBrothers.inc" + .include "data/scripts/CreateDustFromScript.inc" + .include "data/scripts/unused/script_08016384.inc" + .include "data/scripts/unused/script_08016482.inc" + .include "data/scripts/unused/script_080165A4.inc" + .include "data/scripts/unused/script_080165D8.inc" + .include "data/scripts/npc/script_ForestMinish12.inc" + .include "data/scripts/npc/script_ForestMinish13.inc" + .include "data/scripts/npc/script_ForestMinish14.inc" + .include "data/scripts/npc/script_ForestMinish15.inc" + .include "data/scripts/npc/script_ForestMinish16.inc" + .include "data/scripts/npc/script_ForestMinish17.inc" + .include "data/scripts/npc/script_ForestMinish18.inc" + .include "data/scripts/npc/script_ForestMinish19.inc" + .include "data/scripts/npc/script_ForestMinish20.inc" + .include "data/scripts/npc/script_ForestMinish21.inc" + .include "data/scripts/npc/script_TingleSiblings.inc" diff --git a/data/scripts/CreateDustFromScript.inc b/data/scripts/CreateDustFromScript.inc new file mode 100644 index 00000000..859b127f --- /dev/null +++ b/data/scripts/CreateDustFromScript.inc @@ -0,0 +1,5 @@ +thumb_func_start CreateDustFromScript +CreateDustFromScript: + push {lr} + bl CreateDust + pop {pc} diff --git a/data/scripts/castorWilds/script_CastorWildsStatueLeft.inc b/data/scripts/castorWilds/script_CastorWildsStatueLeft.inc new file mode 100644 index 00000000..b8055c03 --- /dev/null +++ b/data/scripts/castorWilds/script_CastorWildsStatueLeft.inc @@ -0,0 +1,18 @@ +@ Castor Wilds Statue left +SCRIPT_START script_CastorWildsStatueLeft + BeginBlock + CheckKinstoneFused 0x0006 + JumpIf script_0800B302 + _0807EA88 0x0006 + _0807EB44 0x0002 + EndBlock +script_0800B268: + _0807EA4C + _0807E9F0 + _0807E864 + CheckKinstoneFused 0x0006 + JumpIf script_0800B2E2 + Call sub_0807DF50 + _0807E878 + Jump script_0800B268 + .2byte 0x0000 diff --git a/data/scripts/castorWilds/script_CastorWildsStatueMiddle.inc b/data/scripts/castorWilds/script_CastorWildsStatueMiddle.inc new file mode 100644 index 00000000..19b2defb --- /dev/null +++ b/data/scripts/castorWilds/script_CastorWildsStatueMiddle.inc @@ -0,0 +1,18 @@ +@ Castor Wilds Statue middle +SCRIPT_START script_CastorWildsStatueMiddle + BeginBlock + CheckKinstoneFused 0x0007 + JumpIf script_0800B302 + _0807EA88 0x0007 + _0807EB44 0x0002 + EndBlock +script_0800B298: + _0807EA4C + _0807E9F0 + _0807E864 + CheckKinstoneFused 0x0007 + JumpIf script_0800B2E2 + Call sub_0807DF50 + _0807E878 + Jump script_0800B298 + .2byte 0x0000 diff --git a/data/scripts/castorWilds/script_CastorWildsStatueRight.inc b/data/scripts/castorWilds/script_CastorWildsStatueRight.inc new file mode 100644 index 00000000..d6d70d72 --- /dev/null +++ b/data/scripts/castorWilds/script_CastorWildsStatueRight.inc @@ -0,0 +1,29 @@ +@ Castor Wilds Statue right +SCRIPT_START script_CastorWildsStatueRight + BeginBlock + CheckKinstoneFused 0x0008 + JumpIf script_0800B302 + _0807EA88 0x0008 + _0807EB44 0x0002 + EndBlock +script_0800B2C8: + _0807EA4C + _0807E9F0 + _0807E864 + CheckKinstoneFused 0x0008 + JumpIf script_0800B2E2 + Call sub_0807DF50 + _0807E878 + Jump script_0800B2C8 +script_0800B2E2: + DoPostScriptAction 0x0013 + _0807EB44 0x0004 + _0807E9DC + Call sub_080676E0 + Call sub_08067534 + DoPostScriptAction 0x0012 + _0807E5F8 0x00000001 +script_0800B302: + EndBlock +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_0800B308.inc b/data/scripts/castorWilds/script_CastorWildsStatueRock.inc similarity index 94% rename from data/scripts/script_0800B308.inc rename to data/scripts/castorWilds/script_CastorWildsStatueRock.inc index 51dd64ea..4c062cae 100644 --- a/data/scripts/script_0800B308.inc +++ b/data/scripts/castorWilds/script_CastorWildsStatueRock.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800B308 +@ Castor Wilds Statue rock +SCRIPT_START script_CastorWildsStatueRock BeginBlock .ifdef JP CheckLocalFlag 0x001e diff --git a/data/scripts/castorWilds/script_GreatFairyRupees.inc b/data/scripts/castorWilds/script_GreatFairyRupees.inc new file mode 100644 index 00000000..ee7fcd05 --- /dev/null +++ b/data/scripts/castorWilds/script_GreatFairyRupees.inc @@ -0,0 +1,28 @@ +@ Lake Hylia Great Fairy OBJECT_69 +SCRIPT_START script_GreatFairyRupees + BeginBlock + EndBlock +script_0800B6CC: + HasRupees 0x0001 + JumpIfNot script_0800B6CC +script_0800B6D4: + CheckPlayerInRegion 0x0078, 0x00b8, 0x1060 + JumpIfNot script_0800B6D4 + Call sub_08079184 + _0807E864 + Call sub_0807F9A4 + StartPlayerScript script_PlayerAtGreatFairy + WaitForSomething2 0x00000004 + SetRoomFlag 0x0000 + WaitForSomething2 0x00000004 + CheckLocalFlag 0x009f + JumpIf script_0800B7A2 + MessageNoOverlap 0x057b + WaitUntilTextboxCloses + CallWithArg sub_0807F970, 0x0000057d + JumpIf script_0800B6A6 + WaitUntilTextboxCloses + SetLocalFlag 0x009f + _0807F034 0x0064 + Jump script_0800B698 + .2byte 0x0000 diff --git a/data/scripts/castorWilds/script_MalonAtRanch.inc b/data/scripts/castorWilds/script_MalonAtRanch.inc new file mode 100644 index 00000000..640be984 --- /dev/null +++ b/data/scripts/castorWilds/script_MalonAtRanch.inc @@ -0,0 +1,17 @@ +@ Lon Lon Ranch Malon +SCRIPT_START script_MalonAtRanch + BeginBlock + DoPostScriptAction 0x000a + DoPostScriptAction 0x0001 + _0807E9D4 + EndBlock +script_0800B5FA: + CheckEntityInteractType + JumpIfNot script_0800B5FA + _0807E864 + _0807EB74 + MessageNoOverlap 0x2009 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + Jump script_0800B5FA diff --git a/data/scripts/script_0800B200.inc b/data/scripts/castorWilds/script_Object69.inc similarity index 93% rename from data/scripts/script_0800B200.inc rename to data/scripts/castorWilds/script_Object69.inc index 5bc8481a..17eed592 100644 --- a/data/scripts/script_0800B200.inc +++ b/data/scripts/castorWilds/script_Object69.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800B200 +@ Castor Wilds OBJECT_69? +SCRIPT_START script_Object69 BeginBlock _0807E5F8 0x00000000 .ifdef JP diff --git a/data/scripts/castorWilds/script_Object69DarknutFight.inc b/data/scripts/castorWilds/script_Object69DarknutFight.inc new file mode 100644 index 00000000..fd531758 --- /dev/null +++ b/data/scripts/castorWilds/script_Object69DarknutFight.inc @@ -0,0 +1,20 @@ +@ Castor Wilds OBJECT_69 darknut fight for kinstone piece +SCRIPT_START script_Object69DarknutFight + BeginBlock + Call sub_0807DF28 + SetLocalFlag 0x0039 + _0807E864 + EndBlock + WaitForPlayerAction0x17 + StartPlayerScript script_PlayerAtDarknutFight + Wait 0x0018 + _0807E5F8 0x00000002 + WaitForSomething2 0x00000001 + SetRoomFlag 0x0000 + Wait 0x0010 + PlayBgm BGM_FIGHT_THEME + _0807EB28 0x2701 + _0807E878 + Call sub_0807DF50 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_0800B1C0.inc b/data/scripts/castorWilds/script_PlayerAtDarknutFight.inc similarity index 80% rename from data/scripts/script_0800B1C0.inc rename to data/scripts/castorWilds/script_PlayerAtDarknutFight.inc index 64277512..b122fc5b 100644 --- a/data/scripts/script_0800B1C0.inc +++ b/data/scripts/castorWilds/script_PlayerAtDarknutFight.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800B1C0 +@ Player at darknut in Castor Wilds +SCRIPT_START script_PlayerAtDarknutFight BeginBlock DoPostScriptAction 0x0000 EndBlock diff --git a/data/scripts/script_0800AFE8.inc b/data/scripts/cloudTops/script_EzloTalkPoW.inc similarity index 72% rename from data/scripts/script_0800AFE8.inc rename to data/scripts/cloudTops/script_EzloTalkPoW.inc index 9dc089b6..bba202e7 100644 --- a/data/scripts/script_0800AFE8.inc +++ b/data/scripts/cloudTops/script_EzloTalkPoW.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AFE8 +@ Ezlo talk after getting wind element +SCRIPT_START script_EzloTalkPoW _0807E864 Call sub_0807DF28 _0807EB28 0x1c05 diff --git a/data/scripts/cloudTops/script_GregalHealthy.inc b/data/scripts/cloudTops/script_GregalHealthy.inc new file mode 100644 index 00000000..1da04bec --- /dev/null +++ b/data/scripts/cloudTops/script_GregalHealthy.inc @@ -0,0 +1,36 @@ +@ Cloud Tops Gregal healthy +SCRIPT_START script_GregalHealthy + BeginBlock + Call sub_0806CD58 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + _0807E930 0x0006 + EndBlock +script_08014C42: + CheckEntityInteractType + JumpIfNot script_08014C42 + _0807E864 + _0807EB74 +script_08014C4C: + Call sub_0806CCD0 + JumpIfNot script_08014C4C +script_08014C56: + Call sub_0806CCB4 + JumpIfNot script_08014C56 + CheckLocalFlag 0x0066 + JumpIf script_08014C7C + SetLocalFlag 0x0066 + MessageNoOverlap 0x2f0d + WaitUntilTextboxCloses + _0807F034 0x000a + WaitPlayerGetItem + Jump script_08014C82 +script_08014C7C: + MessageNoOverlap 0x2f09 + WaitUntilTextboxCloses +script_08014C82: + Wait 0x000f + _0807E878 + _0807EB44 0x0004 + _0807E930 0x0006 + Jump script_08014C42 diff --git a/data/scripts/script_08014B34.inc b/data/scripts/cloudTops/script_GregalSick.inc similarity index 52% rename from data/scripts/script_08014B34.inc rename to data/scripts/cloudTops/script_GregalSick.inc index fd880ee7..10661252 100644 --- a/data/scripts/script_08014B34.inc +++ b/data/scripts/cloudTops/script_GregalSick.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014B34 +@ Cloud Tops Gregal sick +SCRIPT_START script_GregalSick BeginBlock DoPostScriptAction 0x000a _0807E930 0x0000 @@ -69,64 +70,3 @@ script_08014C22: Wait 0x000f _0807E878 Jump script_08014BF2 -SCRIPT_START script_08014C2C - BeginBlock - Call sub_0806CD58 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0006 - EndBlock -script_08014C42: - CheckEntityInteractType - JumpIfNot script_08014C42 - _0807E864 - _0807EB74 -script_08014C4C: - Call sub_0806CCD0 - JumpIfNot script_08014C4C -script_08014C56: - Call sub_0806CCB4 - JumpIfNot script_08014C56 - CheckLocalFlag 0x0066 - JumpIf script_08014C7C - SetLocalFlag 0x0066 - MessageNoOverlap 0x2f0d - WaitUntilTextboxCloses - _0807F034 0x000a - WaitPlayerGetItem - Jump script_08014C82 -script_08014C7C: - MessageNoOverlap 0x2f09 - WaitUntilTextboxCloses -script_08014C82: - Wait 0x000f - _0807E878 - _0807EB44 0x0004 - _0807E930 0x0006 - Jump script_08014C42 -SCRIPT_START script_08014C94 - BeginBlock - CheckGlobalFlag 0x0024 - JumpIf script_08014CD4 - Call sub_0806C870 - DoPostScriptAction 0x000a - DoPostScriptAction 0x0000 - EndBlock -script_08014CAE: - EndBlock - BeginBlock - CheckGlobalFlag 0x0024 - JumpIf script_08014CD4 - _0807E30C - JumpIfNot script_08014CAE - EndBlock - _0807E864 - _0807EB74 - Call sub_0806C90C - WaitUntilTextboxCloses - _0807E878 - Jump script_08014CAE -script_08014CD4: - DoPostScriptAction 0x0006 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800D6D0.inc b/data/scripts/cloudTops/script_HiddenWhirlwind1.inc similarity index 87% rename from data/scripts/script_0800D6D0.inc rename to data/scripts/cloudTops/script_HiddenWhirlwind1.inc index ab61e061..5cfb88b9 100644 --- a/data/scripts/script_0800D6D0.inc +++ b/data/scripts/cloudTops/script_HiddenWhirlwind1.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D6D0 +@ Cloud Tops Whirlwind hidden in clouds +SCRIPT_START script_HiddenWhirlwind1 BeginBlock .ifdef JP CheckLocalFlag 0x00f0 diff --git a/data/scripts/script_0800D6F0.inc b/data/scripts/cloudTops/script_HiddenWhirlwind2.inc similarity index 87% rename from data/scripts/script_0800D6F0.inc rename to data/scripts/cloudTops/script_HiddenWhirlwind2.inc index 4cbdf8b2..efbd3eb3 100644 --- a/data/scripts/script_0800D6F0.inc +++ b/data/scripts/cloudTops/script_HiddenWhirlwind2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D6F0 +@ Cloud Tops Whirlwind hidden in clouds +SCRIPT_START script_HiddenWhirlwind2 BeginBlock .ifdef JP CheckLocalFlag 0x00f2 diff --git a/data/scripts/cloudTops/script_Npc4EFirstCloud.inc b/data/scripts/cloudTops/script_Npc4EFirstCloud.inc new file mode 100644 index 00000000..14cce552 --- /dev/null +++ b/data/scripts/cloudTops/script_Npc4EFirstCloud.inc @@ -0,0 +1,37 @@ +@ Cloud Tops NPC4E at first Mysterious Cloud +@ Reponsible for Kinstone cutscenes +SCRIPT_START script_Npc4EFirstCloud + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x000b + DoPostScriptAction 0x0008 + Call sub_0806DAAC + JumpIf script_0800D6AE + Call sub_0806DAD0 + CallWithArg sub_0806DA04, 0x00000002 + EndBlock +script_0800D636: + _0807EA4C + _0807E9F0 + Call sub_0806DAAC + JumpIf script_0800D650 + Call sub_0807DF50 + _0807E878 + Jump script_0800D636 +script_0800D650: + _0807E864 + Call sub_0807DF28 + Call sub_0807FBC4 + Call sub_0807FBA0 + SetEntitySpeed 0x0700 + _0807F0B4 0x0007 + CameraTargetEntity + _0807EDD4 0x01e8, 0x01b8 + Wait 0x003c + Call sub_0806DAE8 + Wait 0x0078 + Call sub_0806DB44 + JumpIfNot script_Npc4EKinstoneFused + LoadRoomEntityList gUnk_080DD730 + DoPostScriptAction 0x0006 +SCRIPT_END diff --git a/data/scripts/script_0800D698.inc b/data/scripts/cloudTops/script_Npc4EKinstoneFused.inc similarity index 63% rename from data/scripts/script_0800D698.inc rename to data/scripts/cloudTops/script_Npc4EKinstoneFused.inc index a9418e17..91d9eae4 100644 --- a/data/scripts/script_0800D698.inc +++ b/data/scripts/cloudTops/script_Npc4EKinstoneFused.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D698 +@ Cloud Tops NPC4E after Kinstone has been fused +SCRIPT_START script_Npc4EKinstoneFused _0807EEB4 _0807F0B4 0x0004 CameraTargetPlayer diff --git a/data/scripts/script_0800D710.inc b/data/scripts/cloudTops/script_Object69GreatWhirlwindRevealed.inc similarity index 81% rename from data/scripts/script_0800D710.inc rename to data/scripts/cloudTops/script_Object69GreatWhirlwindRevealed.inc index 84de7598..2e3297b3 100644 --- a/data/scripts/script_0800D710.inc +++ b/data/scripts/cloudTops/script_Object69GreatWhirlwindRevealed.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D710 +@ Cloud Tops OBJECT_69 great whirlwind revealed +SCRIPT_START script_Object69GreatWhirlwindRevealed BeginBlock Call sub_0807F360 SetEntitySpeed 0x0700 diff --git a/data/scripts/script_0800D6B4.inc b/data/scripts/cloudTops/script_Object6AMysteriousCloud.inc similarity index 62% rename from data/scripts/script_0800D6B4.inc rename to data/scripts/cloudTops/script_Object6AMysteriousCloud.inc index ea0deeed..f2c812eb 100644 --- a/data/scripts/script_0800D6B4.inc +++ b/data/scripts/cloudTops/script_Object6AMysteriousCloud.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D6B4 +@ Cloud Tops OBJECT_6A Mysterious Cloud +SCRIPT_START script_Object6AMysteriousCloud BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x0011 diff --git a/data/scripts/script_08014B10.inc b/data/scripts/cloudTops/script_PlayerAtSiroc.inc similarity index 68% rename from data/scripts/script_08014B10.inc rename to data/scripts/cloudTops/script_PlayerAtSiroc.inc index 42a6c2b1..a2a5ef87 100644 --- a/data/scripts/script_08014B10.inc +++ b/data/scripts/cloudTops/script_PlayerAtSiroc.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014B10 +@ Player at Windtribespeople leader Siroc +SCRIPT_START script_PlayerAtSiroc BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/cloudTops/script_Siroc.inc b/data/scripts/cloudTops/script_Siroc.inc new file mode 100644 index 00000000..c45610b2 --- /dev/null +++ b/data/scripts/cloudTops/script_Siroc.inc @@ -0,0 +1,27 @@ +@ Cloud Tops Windtribespeople Leader Siroc +SCRIPT_START script_Siroc + BeginBlock + Call sub_0806C870 + DoPostScriptAction 0x000a + EndBlock +script_08014AD2: + _0807E30C + JumpIfNot script_08014AD2 + _0807E864 + _0807EB74 + StartPlayerScript script_PlayerAtSiroc + WaitForSomething2 0x00000001 + _0807EB74 + CheckLocalFlag 0x0064 + JumpIf script_08014AFE + SetLocalFlag 0x0064 + MessageNoOverlap 0x2f0b + Jump script_08014B02 +script_08014AFE: + MessageNoOverlap 0x2f0c +script_08014B02: + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_08014AD2 + .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_WindTribespeople1.inc b/data/scripts/cloudTops/script_WindTribespeople1.inc new file mode 100644 index 00000000..987d6b13 --- /dev/null +++ b/data/scripts/cloudTops/script_WindTribespeople1.inc @@ -0,0 +1,21 @@ +@ Cloud Tops WindTribespeople blocking exit +SCRIPT_START script_WindTribespeople1 + BeginBlock + Call sub_0806C870 + DoPostScriptAction 0x000a + CheckGlobalFlag 0x0058 + JumpIf script_08014976 + _0807EB44 0x0004 + SetEntityPositionRelative 0x0078, 0x0128 +script_08014976: + EndBlock +script_08014978: + _0807E30C + JumpIfNot script_08014978 + _0807E864 + _0807EB74 + Call sub_0806C90C + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_08014978 diff --git a/data/scripts/cloudTops/script_WindTribespeople2.inc b/data/scripts/cloudTops/script_WindTribespeople2.inc new file mode 100644 index 00000000..6cf49d01 --- /dev/null +++ b/data/scripts/cloudTops/script_WindTribespeople2.inc @@ -0,0 +1,21 @@ +@ Cloud Top Windtribespeople woman on first floor +SCRIPT_START script_WindTribespeople2 + BeginBlock + Call sub_0806C870 + DoPostScriptAction 0x000a + CheckGlobalFlag 0x0058 + JumpIfNot script_080149C6 + EndBlock +script_080149AA: + _0807E30C + JumpIfNot script_080149AA + _0807E864 + _0807EB74 + Call sub_0806C90C + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_080149AA +script_080149C6: + DoPostScriptAction 0x0006 +SCRIPT_END diff --git a/data/scripts/cloudTops/script_WindTribespeople3.inc b/data/scripts/cloudTops/script_WindTribespeople3.inc new file mode 100644 index 00000000..01977684 --- /dev/null +++ b/data/scripts/cloudTops/script_WindTribespeople3.inc @@ -0,0 +1,30 @@ +@ Cloud Tops Windtribespeople blocking the way up to the palace +SCRIPT_START script_WindTribespeople3 + BeginBlock + SetEntitySpeed 0x0080 + Call sub_0806C870 + DoPostScriptAction 0x000a + EndBlock +script_080149DE: + _0807E30C + JumpIfNot script_080149DE + _0807E864 + _0807EB74 + Call sub_0806C90C + WaitUntilTextboxCloses + CheckLocalFlag 0x0064 + JumpIfNot script_08014A20 + CheckLocalFlag 0x00b1 + JumpIf script_08014A20 + SetLocalFlag 0x00b1 + DoPostScriptAction 0x000b + DoPostScriptAction 0x0001 + _0807EDD4 0x0068, 0x00f8 + PlaySound SFX_SECRET + _0807EB74 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a +script_08014A20: + _0807E878 + Jump script_080149DE + .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_WindTribespeople4.inc b/data/scripts/cloudTops/script_WindTribespeople4.inc new file mode 100644 index 00000000..31e036e3 --- /dev/null +++ b/data/scripts/cloudTops/script_WindTribespeople4.inc @@ -0,0 +1,17 @@ +@ Cloud Tops Windtribespeople blocking way up +SCRIPT_START script_WindTribespeople4 + BeginBlock + Call sub_0806C870 + DoPostScriptAction 0x000a + EndBlock +script_08014A36: + _0807E30C + JumpIfNot script_08014A36 + _0807E864 + _0807EB74 + Call sub_0806C90C + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_08014A36 + .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_WindTribespeople5.inc b/data/scripts/cloudTops/script_WindTribespeople5.inc new file mode 100644 index 00000000..cf3a995e --- /dev/null +++ b/data/scripts/cloudTops/script_WindTribespeople5.inc @@ -0,0 +1,17 @@ +@ Cloud Tops Windtribespeople at the bed +SCRIPT_START script_WindTribespeople5 + BeginBlock + Call sub_0806C870 + DoPostScriptAction 0x000a + EndBlock +script_08014A62: + _0807E30C + JumpIfNot script_08014A62 + _0807E864 + _0807EB74 + Call sub_0806C90C + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_08014A62 + .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_WindTribespeople6.inc b/data/scripts/cloudTops/script_WindTribespeople6.inc new file mode 100644 index 00000000..dd9332bf --- /dev/null +++ b/data/scripts/cloudTops/script_WindTribespeople6.inc @@ -0,0 +1,23 @@ +@ Cloud Tops Windtribespeople sucked up ghost +SCRIPT_START script_WindTribespeople6 + BeginBlock + DoPostScriptAction 0x000a + EndBlock + WaitForSomething2 0x00000001 + _0807EB74 + DoPostScriptAction 0x0004 + _0807E5F8 0x00000002 + WaitForSomething2 0x00000001 + MessageNoOverlap 0x2f0a + WaitUntilTextboxCloses + _0807E5F8 0x00000002 +script_08014AAC: + _0807E30C + JumpIfNot script_08014AAC + _0807E864 + _0807EB74 + MessageNoOverlap 0x2f0a + WaitUntilTextboxCloses + _0807E878 + Jump script_08014AAC + .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_WindTribespeople7.inc b/data/scripts/cloudTops/script_WindTribespeople7.inc new file mode 100644 index 00000000..a4c71788 --- /dev/null +++ b/data/scripts/cloudTops/script_WindTribespeople7.inc @@ -0,0 +1,27 @@ +@ Cloud Tops Windtribespeople +SCRIPT_START script_WindTribespeople7 + BeginBlock + CheckGlobalFlag 0x0024 + JumpIf script_08014CD4 + Call sub_0806C870 + DoPostScriptAction 0x000a + DoPostScriptAction 0x0000 + EndBlock +script_08014CAE: + EndBlock + BeginBlock + CheckGlobalFlag 0x0024 + JumpIf script_08014CD4 + _0807E30C + JumpIfNot script_08014CAE + EndBlock + _0807E864 + _0807EB74 + Call sub_0806C90C + WaitUntilTextboxCloses + _0807E878 + Jump script_08014CAE +script_08014CD4: + DoPostScriptAction 0x0006 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc b/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc new file mode 100644 index 00000000..19d94f87 --- /dev/null +++ b/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc @@ -0,0 +1,26 @@ +@ Cloud Tops WindTribespeople great whirlwind revealed 2 +SCRIPT_START script_WindTribespeopleGreatWhirlwindRevealed1 + BeginBlock + Call sub_0807F360 + DoPostScriptAction 0x000b + SetEntitySpeed 0x0200 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + EndBlock + WaitForSomething2 0x00000008 + DoPostScriptAction 0x0004 + Wait 0x003c + PlaySound SFX_123 + CallWithArg sub_0807F464, 0x000001e0 + _0807EDD4 0x01e0, 0x01d8 + _0807EB44 0x0002 + DoPostScriptAction 0x0000 + _0807E5F8 0x00000010 + PlaySound SFX_PLY_JUMP + _0807EF3C 0x0180, 0x0030 + PlaySound SFX_PLY_JUMP + _0807EF3C 0x0180, 0x0030 + _0807EB44 0x0002 + DoPostScriptAction 0x0001 + WaitForSomething2 0x00000008 + Jump script_0800D80C diff --git a/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc b/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc new file mode 100644 index 00000000..076d46f1 --- /dev/null +++ b/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc @@ -0,0 +1,27 @@ +@ Cloud Tops WindTribespeople great whirlwind revealed +SCRIPT_START script_WindTribespeopleGreatWhirlwindRevealed2 + BeginBlock + Call sub_0807F360 + DoPostScriptAction 0x000b + SetEntityPositionRelative 0x0268, 0x01d8 + SetEntitySpeed 0x0100 + EndBlock + WaitForSomething2 0x00000002 + _0807EDD4 0x01f0, 0x01d8 + _0807E5F8 0x00000004 + WaitForSomething2 0x00000002 +script_0800D80C: + SetEntitySpeed 0x0100 + _0807EEF4 0x0000, 0xffe0 + DoPostScriptAction 0x000e + Call sub_0806CA5C + SetEntity0x20 0x00040000 + PlaySound SFX_F5 +script_0800D82A: + CallWithArg sub_0807F8D0, 0xffffe000 + Call sub_0807F8BC + JumpIf script_0800D82A + _0807E5F8 0x00000004 + DoPostScriptAction 0x0006 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_080126FC.inc b/data/scripts/cutscene/ezlo/script_EzloCap.inc similarity index 98% rename from data/scripts/script_080126FC.inc rename to data/scripts/cutscene/ezlo/script_EzloCap.inc index 4470cf0e..bd5017e4 100644 --- a/data/scripts/script_080126FC.inc +++ b/data/scripts/cutscene/ezlo/script_EzloCap.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080126FC +@ First look at Ezlo EzloCap +SCRIPT_START script_EzloCap BeginBlock SetEntitySpeed 0x0040 DoPostScriptAction 0x0007 @@ -228,7 +229,7 @@ script_08012A74: JumpIfNot script_08012A74 _0807E930 0x001f WaitUntilTextboxCloses - StartPlayerScript script_08012B18 + StartPlayerScript script_PlayerGetEzloCap Call sub_0806D9A4 DoPostScriptAction 0x0008 Wait 0x0078 diff --git a/data/scripts/script_08012430.inc b/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc similarity index 79% rename from data/scripts/script_08012430.inc rename to data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc index 5390ddeb..a238743e 100644 --- a/data/scripts/script_08012430.inc +++ b/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc @@ -1,38 +1,5 @@ -SCRIPT_START script_08012430 - BeginBlock - DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0000 - EndBlock -script_08012440: - CheckEntityInteractType - JumpIfNot script_08012440 - _0807E864 - _0807E930 0x0008 - Call sub_0807F2D4 - _0807E930 0x0009 - Call sub_0806B2B4 - WaitUntilTextboxCloses - CheckLocalFlag 0x00b3 - JumpIf script_08012474 - SetLocalFlag 0x00b3 - _0807F034 0x0062 - WaitPlayerGetItem -.ifdef USA - SetLocalFlag 0x00d0 -.else -.ifdef DEMO_USA - SetLocalFlag 0x00d0 -.endif -.endif -script_08012474: - _0807E878 - _0807E930 0x0000 - Jump script_08012440 - .align 2, 0 - - -SCRIPT_START script_08012480 +@ Minish Woods Ezlo Cutscene NPC4E +SCRIPT_START script_Npc4EEzloCutscene BeginBlock Call sub_08054564 EndBlock @@ -43,7 +10,7 @@ script_0801248A: _0807E864 Call sub_0807F9A4 Call sub_0807DF28 - StartPlayerScript script_08012AB0 + StartPlayerScript script_PlayerAtFirstLookAtEzlo MessageFromTargetPos 0x1101, 0x0007 WaitUntilTextboxCloses CameraTargetPlayer @@ -92,7 +59,7 @@ script_08012566: Call sub_0807DF28 Call sub_0806DC7C StopBgm - StartPlayerScript script_08012AC8 + StartPlayerScript script_PlayerEzloBeingBullied WaitForSomething2 0x00000001 SetEntityPositionRelative 0x0388, 0x0168 _0807F0B4 0x0001 @@ -127,7 +94,7 @@ script_08012566: StopBgm _0807E5F8 0x00000004 WaitForSomething2 0x00000008 - StartPlayerScript script_08012AF0 + StartPlayerScript script_PlayerDefeatedOctoroks WaitForSomething2 0x00000001 _0807E8E4_0 PlayBgm BGM_EZLO_THEME diff --git a/data/scripts/script_08012BA8.inc b/data/scripts/cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc similarity index 80% rename from data/scripts/script_08012BA8.inc rename to data/scripts/cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc index b23bee96..3aa979f2 100644 --- a/data/scripts/script_08012BA8.inc +++ b/data/scripts/cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08012BA8 +@ First look at Ezlo OBJECT_6A left octorok +SCRIPT_START script_Object6ALeftBullyingOctorok BeginBlock _0807EB44 0x0002 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_08012BF8.inc b/data/scripts/cutscene/ezlo/script_Object6ARightBullyingOctorok.inc similarity index 79% rename from data/scripts/script_08012BF8.inc rename to data/scripts/cutscene/ezlo/script_Object6ARightBullyingOctorok.inc index 2d3bc84f..f715c8ca 100644 --- a/data/scripts/script_08012BF8.inc +++ b/data/scripts/cutscene/ezlo/script_Object6ARightBullyingOctorok.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08012BF8 +@ First look at Ezlo OBJECT_6A right octorok +SCRIPT_START script_Object6ARightBullyingOctorok BeginBlock _0807EB44 0x0006 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_08012AB0.inc b/data/scripts/cutscene/ezlo/script_PlayerAtFirstLookAtEzlo.inc similarity index 63% rename from data/scripts/script_08012AB0.inc rename to data/scripts/cutscene/ezlo/script_PlayerAtFirstLookAtEzlo.inc index 8c0a07dd..1330fd87 100644 --- a/data/scripts/script_08012AB0.inc +++ b/data/scripts/cutscene/ezlo/script_PlayerAtFirstLookAtEzlo.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08012AB0 +@ First look at Ezlo Player +SCRIPT_START script_PlayerAtFirstLookAtEzlo EndBlock script_08012AB2: _0807EB44 0x0002 diff --git a/data/scripts/script_08012AF0.inc b/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc similarity index 72% rename from data/scripts/script_08012AF0.inc rename to data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc index 3250384f..19d3b88a 100644 --- a/data/scripts/script_08012AF0.inc +++ b/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08012AF0 +@ Ezlo octoroks defeated Player +SCRIPT_START script_PlayerDefeatedOctoroks BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_08012AC8.inc b/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc similarity index 73% rename from data/scripts/script_08012AC8.inc rename to data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc index 549da3a5..3d67f251 100644 --- a/data/scripts/script_08012AC8.inc +++ b/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08012AC8 +@ Ezlo being bullied Player +SCRIPT_START script_PlayerEzloBeingBullied BeginBlock SetEntitySpeed 0x0080 EndBlock diff --git a/data/scripts/cutscene/ezlo/script_PlayerGetEzloCap.inc b/data/scripts/cutscene/ezlo/script_PlayerGetEzloCap.inc new file mode 100644 index 00000000..545b7a6c --- /dev/null +++ b/data/scripts/cutscene/ezlo/script_PlayerGetEzloCap.inc @@ -0,0 +1,5 @@ +@ Get Ezlo cap Player +SCRIPT_START script_PlayerGetEzloCap + DoPostScriptAction 0x0015 + Call sub_080791BC +SCRIPT_END diff --git a/data/scripts/script_08009AF8.inc b/data/scripts/cutscene/intro/script_HouseDoorIntro.inc similarity index 64% rename from data/scripts/script_08009AF8.inc rename to data/scripts/cutscene/intro/script_HouseDoorIntro.inc index 48ef802b..41718dc5 100644 --- a/data/scripts/script_08009AF8.inc +++ b/data/scripts/cutscene/intro/script_HouseDoorIntro.inc @@ -1,16 +1,20 @@ -SCRIPT_START script_08009AF8 +@ Intro house door +SCRIPT_START script_HouseDoorIntro BeginBlock EndBlock WaitForSomething2 0x00000010 + @ Open door PlaySound SFX_F0 DoPostScriptAction 0x0008 Wait 0x001e + @ Close door PlaySound SFX_F1 DoPostScriptAction 0x0007 Wait 0x005a _0807E778 0x0004 + @ Circle transition _0807E80C 0x00000000 - WaitFor_2 + WaitFor_2 @ Wait for end of transition Call sub_0805367C SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/script_08009A34.inc b/data/scripts/cutscene/intro/script_IntroCameraTarget.inc similarity index 56% rename from data/scripts/script_08009A34.inc rename to data/scripts/cutscene/intro/script_IntroCameraTarget.inc index 03504b53..d208ad40 100644 --- a/data/scripts/script_08009A34.inc +++ b/data/scripts/cutscene/intro/script_IntroCameraTarget.inc @@ -1,22 +1,17 @@ -SCRIPT_START script_08009A34 - Wait 0x003c -script_08009A38: - Call sub_08066258 - Wait 0x001e - Call sub_08066258 - Wait 0x005a - Jump script_08009A38 -SCRIPT_START script_08009A50 +@ Intro camera target +SCRIPT_START script_IntroCameraTarget SetEntityPositionRelative 0x0240, 0x0178 CameraTargetEntity SetEntitySpeed 0x0080 Wait 0x0078 PlayBgm BGM_MINISH_CAP _0807E778 0x0002 + @ Fade in DoFade4 - WaitFor_2 + WaitFor_2 @ TODO wait for fade to be finished Wait 0x0078 _0807E5F8 0x00000004 Call sub_08053648 + @ Move camera target down _0807EDD4 0x0240, 0x0228 SCRIPT_END diff --git a/data/scripts/script_08014DCC.inc b/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc similarity index 79% rename from data/scripts/script_08014DCC.inc rename to data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc index f8d36d7f..24a29289 100644 --- a/data/scripts/script_08014DCC.inc +++ b/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014DCC +@ NPC4E in front of links house during intro +SCRIPT_START script_Npc4EOutsideLinksHouse BeginBlock SetEntityPositionRelative 0x0238, 0x01a8 Call sub_0807F844 diff --git a/data/scripts/script_08009918.inc b/data/scripts/cutscene/intro/script_Object69Intro.inc similarity index 79% rename from data/scripts/script_08009918.inc rename to data/scripts/cutscene/intro/script_Object69Intro.inc index 77f4fe2a..3165207b 100644 --- a/data/scripts/script_08009918.inc +++ b/data/scripts/cutscene/intro/script_Object69Intro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009918 +@ Intro smith OBJECT_69 ? +SCRIPT_START script_Object69Intro BeginBlock Call sub_0807DF28 _0807E864 diff --git a/data/scripts/cutscene/intro/script_Object69Intro2.inc b/data/scripts/cutscene/intro/script_Object69Intro2.inc new file mode 100644 index 00000000..2da80def --- /dev/null +++ b/data/scripts/cutscene/intro/script_Object69Intro2.inc @@ -0,0 +1,9 @@ +@ Intro unknown second OBJECT_69 +SCRIPT_START script_Object69Intro2 + Wait 0x003c +script_08009A38: + Call sub_08066258 + Wait 0x001e + Call sub_08066258 + Wait 0x005a + Jump script_08009A38 diff --git a/data/scripts/script_08009B30.inc b/data/scripts/cutscene/intro/script_PlayerIntro.inc similarity index 72% rename from data/scripts/script_08009B30.inc rename to data/scripts/cutscene/intro/script_PlayerIntro.inc index 93160763..862bf6e6 100644 --- a/data/scripts/script_08009B30.inc +++ b/data/scripts/cutscene/intro/script_PlayerIntro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009B30 +@ Intro Player +SCRIPT_START script_PlayerIntro BeginBlock Call sub_0807DF28 _0807E864 @@ -6,13 +7,16 @@ SCRIPT_START script_08009B30 EndBlock WaitFor_2 Wait 0x001e + @ Wake up message MessageFromTarget 0x1005 WaitUntilTextboxCloses Wait 0x003c Call sub_0807529C Wait 0x003c + @ Exclamation mark DoPostScriptAction 0x0014 Wait 0x001e + @ Give control to the player? Call sub_08053250 _0807E878 Call sub_0807DF50 diff --git a/data/scripts/script_08009CFC.inc b/data/scripts/cutscene/intro/script_PlayerMoveToSmith.inc similarity index 88% rename from data/scripts/script_08009CFC.inc rename to data/scripts/cutscene/intro/script_PlayerMoveToSmith.inc index 613aaba8..3f349401 100644 --- a/data/scripts/script_08009CFC.inc +++ b/data/scripts/cutscene/intro/script_PlayerMoveToSmith.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009CFC +@ Player at Smith during intro +SCRIPT_START script_PlayerMoveToSmith BeginBlock _0807E8E4_1 SetEntitySpeed 0x00c0 diff --git a/data/scripts/script_08009950.inc b/data/scripts/cutscene/intro/script_SmithIntro.inc similarity index 93% rename from data/scripts/script_08009950.inc rename to data/scripts/cutscene/intro/script_SmithIntro.inc index 18c18086..e1e63bf5 100644 --- a/data/scripts/script_08009950.inc +++ b/data/scripts/cutscene/intro/script_SmithIntro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009950 +@ Intro Smith 1 +SCRIPT_START script_SmithIntro BeginBlock Call sub_0807F348 SetEntitySpeed 0x0040 diff --git a/data/scripts/script_08009B78.inc b/data/scripts/cutscene/intro/script_SmithIntro2.inc similarity index 90% rename from data/scripts/script_08009B78.inc rename to data/scripts/cutscene/intro/script_SmithIntro2.inc index 10bffa01..6ad10242 100644 --- a/data/scripts/script_08009B78.inc +++ b/data/scripts/cutscene/intro/script_SmithIntro2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009B78 +@ Intro Smith 2 +SCRIPT_START script_SmithIntro2 BeginBlock _0807EB44 0x0006 SetEntitySpeed 0x0080 @@ -10,7 +11,7 @@ SCRIPT_START script_08009B78 _0807E888 Wait 0x000a _0807E864 - StartPlayerScript script_08009CFC + StartPlayerScript script_PlayerMoveToSmith Call sub_0807DF28 WaitForSomething2 0x00000008 _0807EDD4 0x0080, 0x005c @@ -41,6 +42,7 @@ SCRIPT_START script_08009B78 _0807E5F8 0x00000002 WaitForSomething2 0x00000008 Call sub_08053250 + @ Give player rusty sword _0807F034 0x0034 WaitPlayerGetItem _0807E8E4_1 @@ -50,6 +52,7 @@ SCRIPT_START script_08009B78 DoPostScriptAction 0x0000 _0807E5F8 0x00000004 script_08009C4C: + @ Talk to Smith DoPostScriptAction 0x000a script_08009C50: CheckEntityInteractType diff --git a/data/scripts/script_080099DC.inc b/data/scripts/cutscene/intro/script_ZeldaIntro.inc similarity index 90% rename from data/scripts/script_080099DC.inc rename to data/scripts/cutscene/intro/script_ZeldaIntro.inc index 9fec298d..8c6cbb80 100644 --- a/data/scripts/script_080099DC.inc +++ b/data/scripts/cutscene/intro/script_ZeldaIntro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080099DC +@ Intro Zelda at Smith +SCRIPT_START script_ZeldaIntro BeginBlock Call sub_0807F348 SetEntitySpeed 0x00c0 diff --git a/data/scripts/script_08009D6C.inc b/data/scripts/cutscene/intro/script_ZeldaLeaveLinksHouse.inc similarity index 83% rename from data/scripts/script_08009D6C.inc rename to data/scripts/cutscene/intro/script_ZeldaLeaveLinksHouse.inc index ea71cbc3..8c776a85 100644 --- a/data/scripts/script_08009D6C.inc +++ b/data/scripts/cutscene/intro/script_ZeldaLeaveLinksHouse.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009D6C +@ Intro Zelda leaving +SCRIPT_START script_ZeldaLeaveLinksHouse BeginBlock SetEntitySpeed 0x0100 _0807EB44 0x0006 diff --git a/data/scripts/script_08009A84.inc b/data/scripts/cutscene/intro/script_ZeldaMoveToLinksHouse.inc similarity index 76% rename from data/scripts/script_08009A84.inc rename to data/scripts/cutscene/intro/script_ZeldaMoveToLinksHouse.inc index 6b3e05a7..c53e3594 100644 --- a/data/scripts/script_08009A84.inc +++ b/data/scripts/cutscene/intro/script_ZeldaMoveToLinksHouse.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009A84 +@ Intro Zelda moves to links house +SCRIPT_START script_ZeldaMoveToLinksHouse BeginBlock SetEntityPositionRelative 0x01e8, 0x0110 SetEntitySpeed 0x00c0 @@ -10,6 +11,7 @@ SCRIPT_START script_08009A84 _0807EDD4 0x01f8, 0x0218 _0807EDD4 0x0220, 0x0228 _0807EDD4 0x0240, 0x0228 + @ Now the camera follows Zelda CameraTargetEntity _0807EDD4 0x0290, 0x0228 _0807EDD4 0x0290, 0x01f8 @@ -18,7 +20,8 @@ SCRIPT_START script_08009A84 SetEntitySpeed 0x00c0 _0807EDD4 0x0290, 0x0198 Wait 0x001e - _0807E5F8 0x00000010 + @ Door is opening + _0807E5F8 0x00000010 @ Send signal to door _0807EDD4 0x0290, 0x0190 DoPostScriptAction 0x0008 _0807EDD4 0x0290, 0x0188 diff --git a/data/scripts/script_08014CDC.inc b/data/scripts/cutscene/intro/script_ZeldaOutsideLinksHouse.inc similarity index 90% rename from data/scripts/script_08014CDC.inc rename to data/scripts/cutscene/intro/script_ZeldaOutsideLinksHouse.inc index c7c09148..acd3f102 100644 --- a/data/scripts/script_08014CDC.inc +++ b/data/scripts/cutscene/intro/script_ZeldaOutsideLinksHouse.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014CDC +@ Zelda intro in front of links house +SCRIPT_START script_ZeldaOutsideLinksHouse BeginBlock SetEntitySpeed 0x0180 DoPostScriptAction 0x000a @@ -17,6 +18,7 @@ SCRIPT_START script_08014CDC script_08014D1E: EndBlock BeginBlock + @ Left of links house CheckPlayerInRegion 0x01d8, 0x0160, 0x3050 JumpIfNot script_08014D1E EndBlock @@ -32,6 +34,7 @@ script_08014D1E: Call sub_0807DF50 _0807E878 script_08014D60: + @ Between trees CallWithArg sub_0807F6B4, 0x000000e8 JumpIf script_08014D60 _0807E864 @@ -45,6 +48,7 @@ script_08014D60: Call sub_0807DF50 _0807E878 script_08014D96: + @ Before hyrule town entry CheckPlayerInRegion 0x01f8, 0x0028, 0x2040 JumpIfNot script_08014D96 _0807E864 diff --git a/data/scripts/script_08009C68.inc b/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc similarity index 90% rename from data/scripts/script_08009C68.inc rename to data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc index d4f1e156..4e986e81 100644 --- a/data/scripts/script_08009C68.inc +++ b/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009C68 +@ Intro Zelda at Smith 2 +SCRIPT_START script_ZeldaTalkToSmith BeginBlock _0807EB44 0x0002 SetEntitySpeed 0x0100 @@ -25,6 +26,7 @@ SCRIPT_START script_08009C68 MessageFromTargetPos 0x100d, 0x0000 WaitUntilTextboxCloses DoPostScriptAction 0x0000 + @ Leave room _0807EDD4 0x0028, 0x0060 _0807EDD4 0x0000, 0x0060 Call sub_080536A8 diff --git a/data/scripts/script_08008FFC.inc b/data/scripts/cutscene/introAssembly/script_GuardAtAssembly.inc similarity index 84% rename from data/scripts/script_08008FFC.inc rename to data/scripts/cutscene/introAssembly/script_GuardAtAssembly.inc index 0a8bb0c9..4b6b7c79 100644 --- a/data/scripts/script_08008FFC.inc +++ b/data/scripts/cutscene/introAssembly/script_GuardAtAssembly.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08008FFC +@ Intro Assembly Guard +SCRIPT_START script_GuardAtAssembly BeginBlock _0807EB44 0x0000 _0807E930 0x0000 diff --git a/data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc b/data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc new file mode 100644 index 00000000..9b88ae6c --- /dev/null +++ b/data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc @@ -0,0 +1,68 @@ +@ Intro Assembly King Daltus +SCRIPT_START script_KingDaltusAtAssembly + BeginBlock + Call sub_0807F348 + SetEntitySpeed 0x0100 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + _0807E9D4 + DoPostScriptAction 0x000a + EndBlock + WaitForSomething2 0x00000080 + _0807EB44 0x0004 + _0807ECC4 0x0008 + _0807E930 0x0004 + MessageFromTargetPos 0x1050, 0x000e + WaitUntilTextboxCloses + DoPostScriptAction 0x0000 + _0807E5F8 0x00000100 + WaitForSomething2 0x00000080 + _0807E930 0x0004 + MessageFromTargetPos 0x1052, 0x000e + WaitUntilTextboxCloses + DoPostScriptAction 0x0000 + _0807E5F8 0x00000100 + WaitForSomething2 0x00000080 + _0807EB44 0x0006 + _0807E930 0x0005 + MessageFromTargetPos 0x1054, 0x000e + WaitUntilTextboxCloses + DoPostScriptAction 0x0000 + _0807E5F8 0x00000100 + WaitForSomething2 0x00000080 + _0807EB44 0x0004 + _0807E5F8 0x00000100 + WaitForSomething2 0x00000080 + _0807E930 0x0004 + MessageFromTargetPos 0x1056, 0x000e + WaitUntilTextboxCloses + DoPostScriptAction 0x0000 + _0807E5F8 0x00000100 + WaitForSomething2 0x00000080 + _0807E930 0x0004 + MessageFromTargetPos 0x1057, 0x000e + WaitUntilTextboxCloses + DoPostScriptAction 0x0000 + _0807E5F8 0x00000100 + WaitForSomething2 0x00000080 + _0807E930 0x0004 + MessageFromTargetPos 0x1058, 0x000e + WaitUntilTextboxCloses + DoPostScriptAction 0x0000 + _0807E5F8 0x00000100 + WaitForSomething2 0x00000080 + _0807E930 0x0004 + MessageFromTargetPos 0x105c, 0x000e + WaitUntilTextboxCloses + DoPostScriptAction 0x0000 + _0807E5F8 0x00000100 +script_0800917C: + CheckEntityInteractType + JumpIfNot script_0800917C + _0807E864 + _0807EB74 + Call sub_0806673C + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800917C diff --git a/data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc b/data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc new file mode 100644 index 00000000..4142d592 --- /dev/null +++ b/data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc @@ -0,0 +1,19 @@ +@ Intro Assembly Minister Potho +SCRIPT_START script_MinisterPothoAtAssembly + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + EndBlock + WaitForSomething2 0x00000004 + PlaySound SFX_PLY_JUMP + _0807EF3C 0x0180, 0x0030 + _0807EB44 0x0002 + _0807E5F8 0x00000008 + WaitForSomething2 0x00000004 + _0807EB44 0x0004 + _0807E5F8 0x00000008 + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a + Jump script_0800927E + .2byte 0x0000 diff --git a/data/scripts/script_08008D8C.inc b/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc similarity index 66% rename from data/scripts/script_08008D8C.inc rename to data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc index 1b34fcb9..3b00fdf8 100644 --- a/data/scripts/script_08008D8C.inc +++ b/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc @@ -1,40 +1,5 @@ -SCRIPT_START script_08008D8C - BeginBlock - Call sub_08061FD8 - Call sub_08061E70 - DoPostScriptAction 0x000a - EndBlock -script_08008DA0: - CheckEntityInteractType - JumpIfNot script_08008DA0 - _0807E864 - _0807EB74 - Call sub_08061FD8 - Call sub_08062048 - WaitUntilTextboxCloses - _0807E878 - Jump script_08008DA0 - .2byte 0x0000 -SCRIPT_START script_08008DC0 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - CallWithArg sub_0807F3D8, 0x00000000 - EndBlock -script_08008DD8: - CheckEntityInteractType - JumpIfNot script_08008DD8 - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - Call sub_080643D8 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - CallWithArg sub_0807F3D8, 0x00000000 - Jump script_08008DD8 -SCRIPT_START script_08008E08 +@ Intro Assembly NPC4E +SCRIPT_START script_Npc4EIntroAssembly BeginBlock SetEntityPositionRelative 0x0088, 0x0078 EndBlock @@ -48,7 +13,7 @@ script_08008E12: CameraTargetEntity WaitForPlayerAction0x17 Wait 0x003c - StartPlayerScript script_08008F74 + StartPlayerScript script_PlayerEnters WaitForSomething2 0x00000020 _0807E5F8 0x00000001 WaitForSomething2 0x00000002 @@ -82,7 +47,7 @@ script_08008E12: WaitForSomething2 0x00000002 _0807F034 0x0035 WaitPlayerGetItem - StartPlayerScript script_08008FC0 + StartPlayerScript script_PlayerGetSword WaitForSomething2 0x00000020 _0807E8E4_0 _0807E5F8 0x00000080 diff --git a/data/scripts/script_08008F74.inc b/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc similarity index 86% rename from data/scripts/script_08008F74.inc rename to data/scripts/cutscene/introAssembly/script_PlayerEnters.inc index 8db32075..47cdcef5 100644 --- a/data/scripts/script_08008F74.inc +++ b/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08008F74 +@ Intro Assembly Player +SCRIPT_START script_PlayerEnters BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_08008FC0.inc b/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc similarity index 79% rename from data/scripts/script_08008FC0.inc rename to data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc index 04ab3012..fb1ff121 100644 --- a/data/scripts/script_08008FC0.inc +++ b/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08008FC0 +@ Intro Assembly Player gets Sword +SCRIPT_START script_PlayerGetSword _0807F078 0x0001, 0x0001 CallWithArg sub_0807F918, 0x00000001 PlaySound SFX_109 diff --git a/data/scripts/script_08009E88.inc b/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc similarity index 84% rename from data/scripts/script_08009E88.inc rename to data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc index 4fc207f9..5943b93a 100644 --- a/data/scripts/script_08009E88.inc +++ b/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009E88 +@ Intro Hyrule Castle Player Sleeping +SCRIPT_START script_PlayerWakingUpInHyruleCastle BeginBlock Call sub_0807DF28 _0807E864 diff --git a/data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc b/data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc new file mode 100644 index 00000000..d5f52ed6 --- /dev/null +++ b/data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc @@ -0,0 +1,55 @@ +@ Intro Assembly Smith +SCRIPT_START script_SmithAtAssembly + BeginBlock + Call sub_0807F348 + _0807EB44 0x0006 + DoPostScriptAction 0x0000 + EndBlock + WaitForSomething2 0x00000001 + _0807EB74 + DoPostScriptAction 0x0001 + MessageFromTargetPos 0x105b, 0x0000 + WaitUntilTextboxCloses + DoPostScriptAction 0x0000 + _0807E5F8 0x00000002 + WaitForSomething2 0x00000001 + _0807EB44 0x0006 + DoPostScriptAction 0x0000 + _0807E5F8 0x00000002 + WaitForSomething2 0x00000001 + DoPostScriptAction 0x0005 + Wait 0x003c + DoPostScriptAction 0x0001 + MessageFromTargetPos 0x1051, 0x0000 + WaitUntilTextboxCloses + DoPostScriptAction 0x0000 + _0807E5F8 0x00000002 + WaitForSomething2 0x00000001 + DoPostScriptAction 0x0004 + Wait 0x003c + _0807EB74 + _0807EB8C + DoPostScriptAction 0x0001 + MessageFromTargetPos 0x1055, 0x0000 + WaitUntilTextboxCloses + DoPostScriptAction 0x0000 + _0807E5F8 0x00000002 + WaitForSomething2 0x00000001 + _0807EB74 + _0807E5F8 0x00000002 + WaitForSomething2 0x00000001 + SetEntitySpeed 0x0080 + DoPostScriptAction 0x0001 + _0807EDD4 0x0098, 0x0078 + _0807EB74 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x0001 + MessageFromTargetPos 0x1059, 0x0000 + WaitUntilTextboxCloses + DoPostScriptAction 0x0000 + _0807E5F8 0x00000002 + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a + Jump script_080092B2 + .2byte 0x0000 diff --git a/data/scripts/script_080157AC.inc b/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc similarity index 90% rename from data/scripts/script_080157AC.inc rename to data/scripts/cutscene/introBusinessScrub/script_080157AC.inc index 2cb7bc3c..c9cd9e1d 100644 --- a/data/scripts/script_080157AC.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc @@ -1,3 +1,4 @@ +@ Intro Outside Castle OBJECT_69 1? SCRIPT_START script_080157AC CheckPlayerInRegion 0x01f8, 0x0310, 0x2020 JumpIfNot script_080157AC @@ -18,7 +19,7 @@ script_080157DA: Wait 0x003c _0807E5F8 0x00000001 WaitForSomething2 0x00000002 - StartPlayerScript script_080158F8 + StartPlayerScript script_PlayerIntroBusinessScrub1 _0807F0B4 0x0001 SetEntityPositionRelative 0x0248, 0x0218 CameraTargetEntity @@ -28,7 +29,7 @@ script_080157DA: WaitForSomething2 0x00000020 _0807E5F8 0x00000001 WaitForSomething2 0x00000002 - StartPlayerScript script_08015918 + StartPlayerScript script_PlayerIntroBusinessScrub2 WaitForSomething2 0x00000010 _0807E5F8 0x00000001 WaitForSomething2 0x00000002 @@ -52,7 +53,7 @@ script_08015888: _0807F0B4 0x0002 SetEntityPositionRelative 0x0248, 0x0208 CameraTargetEntity - StartPlayerScript script_08015938 + StartPlayerScript script_PlayerIntroBusinessScrub3 WaitForSomething2 0x00000010 MessageFromTargetPos 0x106a, 0x000c WaitUntilTextboxCloses diff --git a/data/scripts/script_08015B14.inc b/data/scripts/cutscene/introBusinessScrub/script_08015B14.inc similarity index 78% rename from data/scripts/script_08015B14.inc rename to data/scripts/cutscene/introBusinessScrub/script_08015B14.inc index f0f3c82a..b53d5a0a 100644 --- a/data/scripts/script_08015B14.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_08015B14.inc @@ -1,3 +1,4 @@ +@ OBJECT_6A in sub_080954AC ? businessScrubPrologue? SCRIPT_START script_08015B14 BeginBlock _0807E930 0x0018 diff --git a/data/scripts/script_08015B34.inc b/data/scripts/cutscene/introBusinessScrub/script_08015B34.inc similarity index 81% rename from data/scripts/script_08015B34.inc rename to data/scripts/cutscene/introBusinessScrub/script_08015B34.inc index 6c5d3065..c4d17a30 100644 --- a/data/scripts/script_08015B34.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_08015B34.inc @@ -1,3 +1,4 @@ +@ Intro Outside Castle OBJECT_69 2? SCRIPT_START script_08015B34 EndBlock BeginBlock @@ -15,6 +16,7 @@ SCRIPT_START script_08015B34 .endif .endif JumpIf script_08015B7E + @ Prevent player from leaving to Hyrule Town CallWithArg sub_0807F6B4, 0x00000318 JumpIfNot script_08015B34 EndBlock @@ -23,7 +25,7 @@ SCRIPT_START script_08015B34 Call sub_0807DF28 MessageFromTargetPos 0x2506, 0x0002 WaitUntilTextboxCloses - StartPlayerScript script_08015B84 + StartPlayerScript script_PlayerAtIntroBusinessScrub4 WaitForSomething2 0x00000004 Call sub_0807DF50 _0807E878 diff --git a/data/scripts/script_08015AC4.inc b/data/scripts/cutscene/introBusinessScrub/script_BusinessScrubIntro.inc similarity index 84% rename from data/scripts/script_08015AC4.inc rename to data/scripts/cutscene/introBusinessScrub/script_BusinessScrubIntro.inc index b0b245f7..f549c630 100644 --- a/data/scripts/script_08015AC4.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_BusinessScrubIntro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015AC4 +@ Intro Outside Castle Business Scrub +SCRIPT_START script_BusinessScrubIntro BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000a diff --git a/data/scripts/script_08015B84.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc similarity index 68% rename from data/scripts/script_08015B84.inc rename to data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc index afe2682a..1b3b8636 100644 --- a/data/scripts/script_08015B84.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015B84 +@ Player at intro outside castle +SCRIPT_START script_PlayerAtIntroBusinessScrub4 SetEntitySpeed 0x0100 DoPostScriptAction 0x0001 _0807EC64 0x0010 diff --git a/data/scripts/script_080158F8.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc similarity index 64% rename from data/scripts/script_080158F8.inc rename to data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc index 0c4d7f69..729f3715 100644 --- a/data/scripts/script_080158F8.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080158F8 +@ Player at intro outside castle 1? +SCRIPT_START script_PlayerIntroBusinessScrub1 SetEntitySpeed 0x0100 _0807EDD4 0x0218, 0x0238 _0807EB44 0x0002 diff --git a/data/scripts/script_08015918.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc similarity index 64% rename from data/scripts/script_08015918.inc rename to data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc index 2c49a5c5..76ba35a0 100644 --- a/data/scripts/script_08015918.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015918 +@ Player at intro outside castle +SCRIPT_START script_PlayerIntroBusinessScrub2 SetEntitySpeed 0x0100 _0807EDD4 0x0238, 0x0228 _0807EB44 0x0002 diff --git a/data/scripts/script_08015938.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc similarity index 65% rename from data/scripts/script_08015938.inc rename to data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc index df0c766b..e30904f6 100644 --- a/data/scripts/script_08015938.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015938 +@ Intro Outside Castle Player +SCRIPT_START script_PlayerIntroBusinessScrub3 SetEntitySpeed 0x0100 _0807EDD4 0x0248, 0x0208 _0807EB44 0x0000 diff --git a/data/scripts/script_08015958.inc b/data/scripts/cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc similarity index 95% rename from data/scripts/script_08015958.inc rename to data/scripts/cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc index a8d05e76..3a1d1d3d 100644 --- a/data/scripts/script_08015958.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015958 +@ Intro Outside Castle Zelda +SCRIPT_START script_ZeldaIntroBusinessScrub BeginBlock SetEntitySpeed 0x0180 DoPostScriptAction 0x0008 diff --git a/data/scripts/script_08011890.inc b/data/scripts/cutscene/introCeremony/script_08011890.inc similarity index 81% rename from data/scripts/script_08011890.inc rename to data/scripts/cutscene/introCeremony/script_08011890.inc index f820b99f..cbad968b 100644 --- a/data/scripts/script_08011890.inc +++ b/data/scripts/cutscene/introCeremony/script_08011890.inc @@ -1,3 +1,4 @@ +@ Something during Intro Ceremony? Called via script_VaatiIntroCeremony SCRIPT_START script_08011890 BeginBlock _0807E930 0x0000 diff --git a/data/scripts/script_080113AA.inc b/data/scripts/cutscene/introCeremony/script_GuardBottomRight.inc similarity index 90% rename from data/scripts/script_080113AA.inc rename to data/scripts/cutscene/introCeremony/script_GuardBottomRight.inc index c2dd7844..84046e60 100644 --- a/data/scripts/script_080113AA.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardBottomRight.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080113AA +@ Intro Ceremony Guard bottom right +SCRIPT_START script_GuardBottomRight _0807E610 0x00002000 _0807E5F8 0x00004000 WaitForSomething2 0x00002000 diff --git a/data/scripts/script_080112C4.inc b/data/scripts/cutscene/introCeremony/script_GuardCarryingChest.inc similarity index 82% rename from data/scripts/script_080112C4.inc rename to data/scripts/cutscene/introCeremony/script_GuardCarryingChest.inc index ef5f171c..b558aaa0 100644 --- a/data/scripts/script_080112C4.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardCarryingChest.inc @@ -1,4 +1,6 @@ -SCRIPT_START script_080112C4 +@ Intro Ceremony Chest carrying Guard +@ and guard bottom left? +SCRIPT_START script_GuardCarryingChest BeginBlock DoPostScriptAction 0x0008 SetEntitySpeed 0x0100 @@ -15,7 +17,8 @@ SCRIPT_START script_080112C4 _0807ECC4 0x0010 _0807E930 0x0002 Call sub_08064050 - JumpTable script_08011312, script_080113AA, script_08011442, script_08011508 + JumpTable script_08011312, script_GuardBottomRight, script_GuardTopLeft, script_GuardTopRight +@ Guard bottom left: script_08011312: _0807E610 0x00000800 _0807E5F8 0x00001000 diff --git a/data/scripts/script_080115D0.inc b/data/scripts/cutscene/introCeremony/script_GuardEntryLeft.inc similarity index 79% rename from data/scripts/script_080115D0.inc rename to data/scripts/cutscene/introCeremony/script_GuardEntryLeft.inc index bc84211f..4efe80a7 100644 --- a/data/scripts/script_080115D0.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardEntryLeft.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080115D0 +@ Intro Ceremony Entrance Guard left +SCRIPT_START script_GuardEntryLeft BeginBlock SetEntitySpeed 0x0100 _0807EB44 0x0002 diff --git a/data/scripts/script_08011608.inc b/data/scripts/cutscene/introCeremony/script_GuardEntryRight.inc similarity index 78% rename from data/scripts/script_08011608.inc rename to data/scripts/cutscene/introCeremony/script_GuardEntryRight.inc index f540d792..487b0bec 100644 --- a/data/scripts/script_08011608.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardEntryRight.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08011608 +@ Intro Ceremony Entrace Guard right +SCRIPT_START script_GuardEntryRight BeginBlock SetEntitySpeed 0x0100 _0807EB44 0x0006 diff --git a/data/scripts/script_08011442.inc b/data/scripts/cutscene/introCeremony/script_GuardTopLeft.inc similarity index 93% rename from data/scripts/script_08011442.inc rename to data/scripts/cutscene/introCeremony/script_GuardTopLeft.inc index 60fb8b68..fd1af748 100644 --- a/data/scripts/script_08011442.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardTopLeft.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08011442 +@ Intro Ceremony Guard top left +SCRIPT_START script_GuardTopLeft _0807E610 0x00008000 _0807E5F8 0x00010000 WaitForSomething2 0x00008000 diff --git a/data/scripts/script_08011508.inc b/data/scripts/cutscene/introCeremony/script_GuardTopRight.inc similarity index 93% rename from data/scripts/script_08011508.inc rename to data/scripts/cutscene/introCeremony/script_GuardTopRight.inc index 4b312019..9b8b000e 100644 --- a/data/scripts/script_08011508.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardTopRight.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08011508 +@ Intro Ceremony Guard top right +SCRIPT_START script_GuardTopRight _0807E610 0x00020000 _0807E5F8 0x00040000 WaitForSomething2 0x00020000 diff --git a/data/scripts/script_08011640.inc b/data/scripts/cutscene/introCeremony/script_KingDaltusIntroCeremony.inc similarity index 87% rename from data/scripts/script_08011640.inc rename to data/scripts/cutscene/introCeremony/script_KingDaltusIntroCeremony.inc index aecf84a6..2e28b685 100644 --- a/data/scripts/script_08011640.inc +++ b/data/scripts/cutscene/introCeremony/script_KingDaltusIntroCeremony.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08011640 +@ Intro Ceremony King Daltus +SCRIPT_START script_KingDaltusIntroCeremony BeginBlock DoPostScriptAction 0x0008 _0807EB44 0x0004 diff --git a/data/scripts/script_08011128.inc b/data/scripts/cutscene/introCeremony/script_MinisterPothoIntroCastle.inc similarity index 93% rename from data/scripts/script_08011128.inc rename to data/scripts/cutscene/introCeremony/script_MinisterPothoIntroCastle.inc index a2789561..ecae12e4 100644 --- a/data/scripts/script_08011128.inc +++ b/data/scripts/cutscene/introCeremony/script_MinisterPothoIntroCastle.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08011128 +@ Intro Hyrule Castle Minister Potho +SCRIPT_START script_MinisterPothoIntroCastle BeginBlock _0807EB44 0x0004 DoPostScriptAction 0x0000 diff --git a/data/scripts/script_08010E5A.inc b/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc similarity index 95% rename from data/scripts/script_08010E5A.inc rename to data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc index 62f2874d..f17ba3ea 100644 --- a/data/scripts/script_08010E5A.inc +++ b/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08010E5A +@ Intro Ceremony NPC4E monsters +SCRIPT_START script_Npc4EMonsters Wait 0x001e PlaySound SFX_125 CallWithArg sub_0807FB28, 0x00000003 diff --git a/data/scripts/script_08010F84.inc b/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc similarity index 89% rename from data/scripts/script_08010F84.inc rename to data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc index 64f3c058..62ab6228 100644 --- a/data/scripts/script_08010F84.inc +++ b/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc @@ -1,8 +1,9 @@ -SCRIPT_START script_08010F84 +@ Intro Ceremony NPC4E Vaati attacking +SCRIPT_START script_Npc4EVaatiAttacking Wait 0x003c _0807E5F8 0x00000100 WaitForSomething2 0x00000200 - StartPlayerScript script_080110BC + StartPlayerScript script_PlayerProtectingZelda WaitForSomething2 0x00000400 MessageFromTargetPos 0x1047, 0x0000 WaitUntilTextboxCloses diff --git a/data/scripts/cutscene/introCeremony/script_Object6AMonsterFromChest.inc b/data/scripts/cutscene/introCeremony/script_Object6AMonsterFromChest.inc new file mode 100644 index 00000000..994c88a1 --- /dev/null +++ b/data/scripts/cutscene/introCeremony/script_Object6AMonsterFromChest.inc @@ -0,0 +1,6 @@ +@ Intro Ceremony OBJECT_6A Monster from Chest +SCRIPT_START script_Object6AMonsterFromChest + WaitForSomething 0x20000000 + Call sub_0809567C +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_0801183C.inc b/data/scripts/cutscene/introCeremony/script_Object6ASwordInChest.inc similarity index 81% rename from data/scripts/script_0801183C.inc rename to data/scripts/cutscene/introCeremony/script_Object6ASwordInChest.inc index f1c733d5..5ce1fc5e 100644 --- a/data/scripts/script_0801183C.inc +++ b/data/scripts/cutscene/introCeremony/script_Object6ASwordInChest.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0801183C +@ Intro Ceremony OBJECT_6A Sword in Chest +SCRIPT_START script_Object6ASwordInChest BeginBlock Call sub_08095330 EndBlock diff --git a/data/scripts/script_08011098.inc b/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc similarity index 72% rename from data/scripts/script_08011098.inc rename to data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc index 5a5b24bb..95d01756 100644 --- a/data/scripts/script_08011098.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08011098 +@ Intro Ceremony Player +SCRIPT_START script_PlayerAtIntroCeremony SetEntityPositionRelative 0x01a8, 0x0058 _0807EB44 0x0004 DoPostScriptAction 0x0000 diff --git a/data/scripts/script_080110E8.inc b/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc similarity index 81% rename from data/scripts/script_080110E8.inc rename to data/scripts/cutscene/introCeremony/script_PlayerFainting.inc index 95ed5ca6..85909eb4 100644 --- a/data/scripts/script_080110E8.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080110E8 +@ Intro Ceremony Player fainting +SCRIPT_START script_PlayerFainting PlaySound SFX_PLY_VO6 _0807EB44 0x0004 DoPostScriptAction 0x000d diff --git a/data/scripts/script_08011074.inc b/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc similarity index 71% rename from data/scripts/script_08011074.inc rename to data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc index 4f3ea168..e9fa7bae 100644 --- a/data/scripts/script_08011074.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08011074 +@ Intro Hyrule Castle Player +SCRIPT_START script_PlayerIntroCastle BeginBlock SetEntitySpeed 0x0080 EndBlock diff --git a/data/scripts/script_080110BC.inc b/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc similarity index 72% rename from data/scripts/script_080110BC.inc rename to data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc index 9827dbfb..b83227b8 100644 --- a/data/scripts/script_080110BC.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080110BC +@ Intro ceremony Player protecting Zelda +SCRIPT_START script_PlayerProtectingZelda BeginBlock SetEntitySpeed 0x0040 EndBlock diff --git a/data/scripts/script_080118D4.inc b/data/scripts/cutscene/introCeremony/script_VaatiDarkMagic.inc similarity index 77% rename from data/scripts/script_080118D4.inc rename to data/scripts/cutscene/introCeremony/script_VaatiDarkMagic.inc index f27d95f1..7224f273 100644 --- a/data/scripts/script_080118D4.inc +++ b/data/scripts/cutscene/introCeremony/script_VaatiDarkMagic.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080118D4 +@ Intro Ceremony Vaati Dark magic? +SCRIPT_START script_VaatiDarkMagic BeginBlock _0807E930 0x0000 SetEntitySpeed 0x0200 @@ -8,7 +9,7 @@ SCRIPT_START script_080118D4 WaitForSomething2 0x08000000 Call sub_08094B6C _0807EDD4 0x01d8, 0x0078 - StartPlayerScript script_080110E8 + StartPlayerScript script_PlayerFainting _0807EDD4 0x01d8, 0x0058 Call sub_08094B80 PlaySound SFX_VO_ZELDA7 diff --git a/data/scripts/script_080116A8.inc b/data/scripts/cutscene/introCeremony/script_VaatiIntroCeremony.inc similarity index 94% rename from data/scripts/script_080116A8.inc rename to data/scripts/cutscene/introCeremony/script_VaatiIntroCeremony.inc index 57538123..0758dc29 100644 --- a/data/scripts/script_080116A8.inc +++ b/data/scripts/cutscene/introCeremony/script_VaatiIntroCeremony.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080116A8 +@ Intro Ceremony Vaati +SCRIPT_START script_VaatiIntroCeremony BeginBlock _0807EB44 0x0000 SetEntitySpeed 0x0100 @@ -50,7 +51,7 @@ SCRIPT_START script_080116A8 WaitForSomething2 0x00000100 DoPostScriptAction 0x0014 PlaySound SFX_1C4 - CallWithArg sub_0809545C, script_080118D4 + CallWithArg sub_0809545C, script_VaatiDarkMagic _0807E5F8 0x00000200 WaitForSomething2 0x00000100 Wait 0x003c diff --git a/data/scripts/script_080111CC.inc b/data/scripts/cutscene/introCeremony/script_ZeldaIntroCastle.inc similarity index 95% rename from data/scripts/script_080111CC.inc rename to data/scripts/cutscene/introCeremony/script_ZeldaIntroCastle.inc index 6c63ae50..9c4bc258 100644 --- a/data/scripts/script_080111CC.inc +++ b/data/scripts/cutscene/introCeremony/script_ZeldaIntroCastle.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080111CC +@ Intro Hyrule Castle Zelda +SCRIPT_START script_ZeldaIntroCastle BeginBlock DoPostScriptAction 0x0008 SetEntitySpeed 0x0100 diff --git a/data/scripts/cutscene/introCeremony/script_ZeldaMagic.inc b/data/scripts/cutscene/introCeremony/script_ZeldaMagic.inc new file mode 100644 index 00000000..b9e3dc17 --- /dev/null +++ b/data/scripts/cutscene/introCeremony/script_ZeldaMagic.inc @@ -0,0 +1,5 @@ +@ Intro Ceremony OBJECT_6A Zelda shine or something? +SCRIPT_START script_ZeldaMagic + WaitForSomething 0x40000000 + DoPostScriptAction 0x0006 +SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_BeedleIntro.inc b/data/scripts/cutscene/introTown/script_BeedleIntro.inc new file mode 100644 index 00000000..e0e1359b --- /dev/null +++ b/data/scripts/cutscene/introTown/script_BeedleIntro.inc @@ -0,0 +1,20 @@ +@ Intro Hyrule Town Beedle +SCRIPT_START script_BeedleIntro + BeginBlock + _0807EB44 0x0004 + _0807E930 0x0000 + _0807E9D4 + DoPostScriptAction 0x000a + Call sub_0807F348 + EndBlock +script_0800F604: + CheckEntityInteractType + JumpIfNot script_0800F604 + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000008 + MessageNoOverlap 0x2511 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800F604 diff --git a/data/scripts/cutscene/introTown/script_GuardIntro.inc b/data/scripts/cutscene/introTown/script_GuardIntro.inc new file mode 100644 index 00000000..9424bff8 --- /dev/null +++ b/data/scripts/cutscene/introTown/script_GuardIntro.inc @@ -0,0 +1,19 @@ +@ Intro Hyrule Town Guard +SCRIPT_START script_GuardIntro + BeginBlock + _0807EB44 0x0006 + _0807E9D4 + DoPostScriptAction 0x000a + CallWithArg sub_0807F3D8, 0x00000008 + EndBlock +script_0800F5C8: + CheckEntityInteractType + JumpIfNot script_0800F5C8 + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000008 + Call sub_08064428 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800F5C8 + .2byte 0x0000 diff --git a/data/scripts/cutscene/introTown/script_KidIntro1.inc b/data/scripts/cutscene/introTown/script_KidIntro1.inc new file mode 100644 index 00000000..c705c186 --- /dev/null +++ b/data/scripts/cutscene/introTown/script_KidIntro1.inc @@ -0,0 +1,18 @@ +@ Intro Hyrule Town Kid listening to Townsperson +SCRIPT_START script_KidIntro1 + BeginBlock + DoPostScriptAction 0x0001 + _0807E9D4 + DoPostScriptAction 0x000a + EndBlock +script_0800F592: + CheckEntityInteractType + JumpIfNot script_0800F592 + _0807E864 + _0807EB74 + Call sub_0806265C + WaitUntilTextboxCloses + _0807E878 + DoPostScriptAction 0x0001 + Jump script_0800F592 + .2byte 0x0000 diff --git a/data/scripts/cutscene/introTown/script_KidIntro2.inc b/data/scripts/cutscene/introTown/script_KidIntro2.inc new file mode 100644 index 00000000..008ef2e8 --- /dev/null +++ b/data/scripts/cutscene/introTown/script_KidIntro2.inc @@ -0,0 +1,36 @@ +@ Hyrule Town Intro Kid blocking the way +SCRIPT_START script_KidIntro2 + BeginBlock + DoPostScriptAction 0x0001 + _0807E9D4 + DoPostScriptAction 0x000a + Call sub_08062788 + EndBlock +script_0800F6F4: +.ifdef JP + CheckLocalFlag 0x00ca +.else +.ifdef EU + CheckLocalFlag 0x00ca +.else +.ifdef DEMO_JP + CheckLocalFlag 0x00ca @ TODO deduplicate +.else + CheckLocalFlag 0x00cd +.endif +.endif +.endif + JumpIf script_0800F718 + CheckEntityInteractType + JumpIfNot script_0800F6F4 + _0807E864 + _0807EB74 + Call sub_0806265C + WaitUntilTextboxCloses + _0807E878 + DoPostScriptAction 0x0001 + Jump script_0800F6F4 +script_0800F718: + Call sub_080627E8 + DoPostScriptAction 0x0006 +SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_KidIntro3.inc b/data/scripts/cutscene/introTown/script_KidIntro3.inc new file mode 100644 index 00000000..d9813de7 --- /dev/null +++ b/data/scripts/cutscene/introTown/script_KidIntro3.inc @@ -0,0 +1,24 @@ +@ Intro Hyrule Town Kid +SCRIPT_START script_KidIntro3 + BeginBlock + DoPostScriptAction 0x0008 + EndBlock +script_0800F72C: +.ifdef JP + CheckLocalFlag 0x00ca +.else +.ifdef EU + CheckLocalFlag 0x00ca +.else +.ifdef DEMO_JP + CheckLocalFlag 0x00ca @ TODO deduplicate +.else + CheckLocalFlag 0x00cd +.endif +.endif +.endif + JumpIfNot script_0800F72C + DoPostScriptAction 0x0007 + Jump script_KidIntro1 + + diff --git a/data/scripts/script_08010BB4.inc b/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc similarity index 86% rename from data/scripts/script_08010BB4.inc rename to data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc index 79bd4c24..85512814 100644 --- a/data/scripts/script_08010BB4.inc +++ b/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc @@ -1,27 +1,9 @@ -SCRIPT_START script_08010BB4 - BeginBlock - DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0806E440 - EndBlock -script_08010BCA: - CheckEntityInteractType - JumpIfNot script_08010BCA - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - Call sub_0806E418 - WaitUntilTextboxCloses - _0807E878 - _0807E930 0x0008 - Jump script_08010BCA - .2byte 0x0000 -SCRIPT_START script_08010BEC +@ Intro Hyrule Castle NPC4E +SCRIPT_START script_Npc4EIntroCastle _0807E864 Call sub_0807F9A4 Call sub_0807DF28 - StartPlayerScript script_08011074 + StartPlayerScript script_PlayerIntroCastle WaitForSomething2 0x00000400 _0807F078 0x0034, 0x0002 MessageFromTargetPos 0x1036, 0x000c @@ -49,7 +31,7 @@ SCRIPT_START script_08010BEC LoadRoomEntityList gUnk_080F06E0 _0807E5F8 0x00000004 WaitForSomething2 0x00000008 - StartPlayerScript script_08011098 + StartPlayerScript script_PlayerAtIntroCeremony WaitForSomething2 0x00000400 SetEntityPositionRelative 0x01f8, 0x0050 _0807F0B4 0x0007 diff --git a/data/scripts/script_0800F724.inc b/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc similarity index 87% rename from data/scripts/script_0800F724.inc rename to data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc index acc3e12f..db8de660 100644 --- a/data/scripts/script_0800F724.inc +++ b/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc @@ -1,27 +1,5 @@ -SCRIPT_START script_0800F724 - BeginBlock - DoPostScriptAction 0x0008 - EndBlock -script_0800F72C: -.ifdef JP - CheckLocalFlag 0x00ca -.else -.ifdef EU - CheckLocalFlag 0x00ca -.else -.ifdef DEMO_JP - CheckLocalFlag 0x00ca @ TODO deduplicate -.else - CheckLocalFlag 0x00cd -.endif -.endif -.endif - JumpIfNot script_0800F72C - DoPostScriptAction 0x0007 - Jump script_0800F584 - - -SCRIPT_START script_0800F73C +@ Intro Hyrule Town NPC4E +SCRIPT_START script_Npc4EIntroTown .ifdef JP CheckLocalFlag 0x00ca .else @@ -43,21 +21,24 @@ SCRIPT_START script_0800F73C _0807E778 0x0002 DoFade6 WaitFor_2 - StartPlayerScript script_0800FA54 + StartPlayerScript script_PlayerIntro1 _0807E5F8 0x00000002 _0807F0B4 0x0001 SetEntityPositionRelative 0x00c8, 0x0218 Call sub_0807F5C0 Wait 0x0064 + @ Camera reaches center of town square _0807F0B4 0x0002 SetEntityPositionRelative 0x00c8, 0x0368 Call sub_0807F5C0 WaitForSomething2 0x00000001 WaitForSomething2 0x00000004 + @ First message from Zelda MessageFromTargetPos 0x2501, 0x0000 WaitUntilTextboxCloses _0807E5F8 0x00000002 WaitForSomething2 0x00000004 + @ Zelda ran off. Give control to the player _0807F0B4 0x0004 CameraTargetPlayer Call sub_0807DF50 @@ -66,7 +47,7 @@ SCRIPT_START script_0800F73C WaitForSomething2 0x00000004 _0807E864 Call sub_0807DF28 - StartPlayerScript script_0800FA78 + StartPlayerScript script_PlayerIntro2 WaitForSomething2 0x00000001 _0807E5F8 0x00000002 WaitForSomething2 0x00000004 @@ -79,7 +60,7 @@ SCRIPT_START script_0800F73C WaitForSomething2 0x00000004 _0807E864 Call sub_0807DF28 - StartPlayerScript script_0800FA9C + StartPlayerScript script_PlayerIntro3 WaitForSomething2 0x00000001 _0807E5F8 0x00000002 WaitForSomething2 0x00000004 @@ -92,7 +73,7 @@ SCRIPT_START script_0800F73C WaitForSomething2 0x00000004 _0807E864 Call sub_0807DF28 - StartPlayerScript script_0800FAC0 + StartPlayerScript script_PlayerIntro4 WaitForSomething2 0x00000001 _0807E5F8 0x00000002 WaitForSomething2 0x00000004 @@ -102,6 +83,7 @@ SCRIPT_START script_0800F73C WaitForSomething2 0x00000004 Call sub_0807DF50 _0807E878 + @ Wait for Link at Pina WaitForSomething2 0x00000004 _0807E864 Call sub_0807DF28 @@ -113,7 +95,7 @@ SCRIPT_START script_0800F73C Wait 0x003c MessageFromTargetPos 0x1021, 0x000e WaitUntilTextboxCloses - StartPlayerScript script_0800FAE4 + StartPlayerScript script_PlayerIntro5 SetEntityPositionRelative 0x00f0, 0x0258 _0807F0B4 0x0001 CameraTargetEntity @@ -174,6 +156,7 @@ SCRIPT_START script_0800F73C Wait 0x003c MessageFromTargetPos 0x102b, 0x0000 WaitUntilTextboxCloses + @ Give the shield to the player _0807F034 0x000d WaitPlayerGetItem Call sub_0806DC3C @@ -187,6 +170,7 @@ SCRIPT_START script_0800F73C Call sub_0807F5B0 MessageFromTargetPos 0x102c, 0x0000 WaitUntilTextboxCloses + @ Give control back to the player CallWithArg sub_0807F29C, 0x00000000 Call sub_0806DC58 _0807F0B4 0x0004 diff --git a/data/scripts/script_0800FD0C.inc b/data/scripts/cutscene/introTown/script_Object69IntroTown.inc similarity index 84% rename from data/scripts/script_0800FD0C.inc rename to data/scripts/cutscene/introTown/script_Object69IntroTown.inc index c922a2fb..7ef81598 100644 --- a/data/scripts/script_0800FD0C.inc +++ b/data/scripts/cutscene/introTown/script_Object69IntroTown.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800FD0C +@ Intro Hyrule Town OBJECT_69 ? +SCRIPT_START script_Object69IntroTown .ifdef JP CheckLocalFlag 0x00ca .else @@ -15,6 +16,7 @@ SCRIPT_START script_0800FD0C JumpIf script_0800FD50 WaitForSomething2 0x00000010 script_0800FD1A: + @ Prevent Link from leaving CheckPlayerInRegion 0x00c8, 0x03c0, 0x1040 JumpIfNot script_0800FD1A .ifdef JP @@ -35,7 +37,7 @@ script_0800FD1A: Call sub_0807F9A4 MessageFromTargetPos 0x2506, 0x0000 WaitUntilTextboxCloses - StartPlayerScript script_0800FD80 + StartPlayerScript script_PlayerIntroTown WaitForSomething2 0x00000008 _0807E878 Jump script_0800FD1A @@ -47,7 +49,7 @@ script_0800FD5C: Call sub_0807F9A4 MessageFromTargetPos 0x106c, 0x0000 WaitUntilTextboxCloses - StartPlayerScript script_0800FD80 + StartPlayerScript script_PlayerIntroTown WaitForSomething2 0x00000008 _0807E878 Jump script_0800FD50 diff --git a/data/scripts/cutscene/introTown/script_PercyIntro.inc b/data/scripts/cutscene/introTown/script_PercyIntro.inc new file mode 100644 index 00000000..a8fda42a --- /dev/null +++ b/data/scripts/cutscene/introTown/script_PercyIntro.inc @@ -0,0 +1,23 @@ +@ Intro Hyrule Town Percy +SCRIPT_START script_PercyIntro + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + _0807E9D4 + EndBlock +script_0800F662: + CheckEntityInteractType + JumpIfNot script_0800F662 + _0807E864 + _0807EB74 + DoPostScriptAction 0x0001 + Call sub_0806B4F0 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + DoPostScriptAction 0x0000 + Jump script_0800F662 + .2byte 0x0000 + + diff --git a/data/scripts/cutscene/introTown/script_PinaIntro.inc b/data/scripts/cutscene/introTown/script_PinaIntro.inc new file mode 100644 index 00000000..bfe9dcf9 --- /dev/null +++ b/data/scripts/cutscene/introTown/script_PinaIntro.inc @@ -0,0 +1,40 @@ +@ Intro Hyrule Town Pina +SCRIPT_START script_PinaIntro + BeginBlock + _0807EB44 0x0004 + _0807E930 0x0000 + _0807E9D4 + DoPostScriptAction 0x000a + Call sub_0807F348 + EndBlock +script_0800F6A0: + CheckEntityInteractType + JumpIfNot script_0800F6A0 + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000004 +.ifdef JP + CheckLocalFlag 0x00ca +.else +.ifdef EU + CheckLocalFlag 0x00ca +.else +.ifdef DEMO_JP + CheckLocalFlag 0x00ca @ TODO deduplicate +.else + CheckLocalFlag 0x00cd +.endif +.endif +.endif + JumpIf script_0800F6C4 + MessageNoOverlap 0x2512 + Jump script_0800F6C8 +script_0800F6C4: + MessageNoOverlap 0x251f +script_0800F6C8: + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + CallWithArg sub_0807F3D8, 0x00000000 + Jump script_0800F6A0 + .2byte 0x0000 diff --git a/data/scripts/script_0800FA54.inc b/data/scripts/cutscene/introTown/script_PlayerIntro1.inc similarity index 75% rename from data/scripts/script_0800FA54.inc rename to data/scripts/cutscene/introTown/script_PlayerIntro1.inc index f860b75f..ba36e8ab 100644 --- a/data/scripts/script_0800FA54.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro1.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800FA54 +@ Intro Hyrule Town Player +SCRIPT_START script_PlayerIntro1 BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800FA78.inc b/data/scripts/cutscene/introTown/script_PlayerIntro2.inc similarity index 73% rename from data/scripts/script_0800FA78.inc rename to data/scripts/cutscene/introTown/script_PlayerIntro2.inc index 1586c6f1..6ce812b6 100644 --- a/data/scripts/script_0800FA78.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800FA78 +@ Intro Hyrule Town Player 2 +SCRIPT_START script_PlayerIntro2 BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800FA9C.inc b/data/scripts/cutscene/introTown/script_PlayerIntro3.inc similarity index 73% rename from data/scripts/script_0800FA9C.inc rename to data/scripts/cutscene/introTown/script_PlayerIntro3.inc index cf738fff..cccb6450 100644 --- a/data/scripts/script_0800FA9C.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro3.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800FA9C +@ Intro Hyrule Town Player 3 +SCRIPT_START script_PlayerIntro3 BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800FAC0.inc b/data/scripts/cutscene/introTown/script_PlayerIntro4.inc similarity index 73% rename from data/scripts/script_0800FAC0.inc rename to data/scripts/cutscene/introTown/script_PlayerIntro4.inc index c9240cf5..76ca7bd4 100644 --- a/data/scripts/script_0800FAC0.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro4.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800FAC0 +@ Intro Hyrule Town Player 4 +SCRIPT_START script_PlayerIntro4 BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800FAE4.inc b/data/scripts/cutscene/introTown/script_PlayerIntro5.inc similarity index 85% rename from data/scripts/script_0800FAE4.inc rename to data/scripts/cutscene/introTown/script_PlayerIntro5.inc index 957eb40f..721060d3 100644 --- a/data/scripts/script_0800FAE4.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro5.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800FAE4 +@ Intro Hyrule Town Player at Pina +SCRIPT_START script_PlayerIntro5 BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800FD80.inc b/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc similarity index 70% rename from data/scripts/script_0800FD80.inc rename to data/scripts/cutscene/introTown/script_PlayerIntroTown.inc index 2d707a67..e4ba634a 100644 --- a/data/scripts/script_0800FD80.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800FD80 +@ Hyrule Town Intro Player +SCRIPT_START script_PlayerIntroTown SetEntitySpeed 0x0080 _0807EC64 0x0020 _0807EB44 0x0000 diff --git a/data/scripts/cutscene/introTown/script_TownsperonIntro.inc b/data/scripts/cutscene/introTown/script_TownsperonIntro.inc new file mode 100644 index 00000000..27ae1e54 --- /dev/null +++ b/data/scripts/cutscene/introTown/script_TownsperonIntro.inc @@ -0,0 +1,18 @@ +@ Intro Hyrule Town Townsperson +SCRIPT_START script_TownsperonIntro + BeginBlock + Call sub_08061FE4 + _0807E9D4 + DoPostScriptAction 0x000a + EndBlock +script_0800F564: + CheckEntityInteractType + JumpIfNot script_0800F564 + _0807E864 + _0807EB74 + Call sub_08061FE4 + Call sub_08061FF4 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800F564 + .2byte 0x0000 diff --git a/data/scripts/cutscene/introTown/script_WindtribespeopleIntro.inc b/data/scripts/cutscene/introTown/script_WindtribespeopleIntro.inc new file mode 100644 index 00000000..14a141fe --- /dev/null +++ b/data/scripts/cutscene/introTown/script_WindtribespeopleIntro.inc @@ -0,0 +1,17 @@ +@ Intro Hyrule Town WindTribespeople +SCRIPT_START script_WindtribespeopleIntro + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a + DoPostScriptAction 0x0001 + EndBlock +script_0800F636: + _0807E30C + JumpIfNot script_0800F636 + _0807E864 + _0807EB74 + Call sub_0806C90C + WaitUntilTextboxCloses + _0807E878 + Jump script_0800F636 + .2byte 0x0000 diff --git a/data/scripts/script_0800FB44.inc b/data/scripts/cutscene/introTown/script_ZeldaIntroTown.inc similarity index 96% rename from data/scripts/script_0800FB44.inc rename to data/scripts/cutscene/introTown/script_ZeldaIntroTown.inc index 687e719e..1b3fbac7 100644 --- a/data/scripts/script_0800FB44.inc +++ b/data/scripts/cutscene/introTown/script_ZeldaIntroTown.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800FB44 +@ Intro Hyrule Town Zelda +SCRIPT_START script_ZeldaIntroTown BeginBlock DoPostScriptAction 0x0008 DoPostScriptAction 0x000b @@ -78,6 +79,7 @@ script_0800FC52: _0807E5F8 0x00000004 DoPostScriptAction 0x000a script_0800FC9E: + @ Wait at Pina for Link CheckEntityInteractType JumpIfNot script_0800FC9E DoPostScriptAction 0x000b diff --git a/data/scripts/script_0800F184.inc b/data/scripts/cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc similarity index 86% rename from data/scripts/script_0800F184.inc rename to data/scripts/cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc index ee317b85..59b5403d 100644 --- a/data/scripts/script_0800F184.inc +++ b/data/scripts/cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800F184 +@ Hyrule Town Kinstone cutscene HurdyGurdyMan +SCRIPT_START script_HurdyGurdyManFirstKinstone BeginBlock SetEntitySpeed 0x0080 DoPostScriptAction 0x0008 @@ -34,7 +35,7 @@ script_0800F1E6: Wait 0x003c MessageFromTargetPos 0x1206, 0x000c WaitUntilTextboxCloses - StartPlayerScript script_0800F33C + StartPlayerScript script_PlayerAtHurdyGurdyManFirstKinstone1 WaitForSomething2 0x00000400 _0807E878 Jump script_0800F1E6 @@ -50,7 +51,7 @@ script_0800F22A: Wait 0x003c MessageFromTargetPos 0x1206, 0x000c WaitUntilTextboxCloses - StartPlayerScript script_0800F354 + StartPlayerScript script_PlayerAtHurdyGurdyManFirstKinstone2 WaitForSomething2 0x00000400 _0807E878 Jump script_0800F1E6 @@ -66,7 +67,7 @@ script_0800F26A: Wait 0x003c MessageFromTargetPos 0x1206, 0x000c WaitUntilTextboxCloses - StartPlayerScript script_0800F36C + StartPlayerScript script_PlayerAtHurdyGurdyManFirstKinstone3 WaitForSomething2 0x00000400 _0807E878 Jump script_0800F1E6 @@ -82,7 +83,7 @@ script_0800F2AA: Wait 0x003c MessageFromTargetPos 0x1206, 0x000c WaitUntilTextboxCloses - StartPlayerScript script_0800F384 + StartPlayerScript script_PlayerAtHurdyGurdyManFirstKinstone4 WaitForSomething2 0x00000400 _0807E878 Jump script_0800F1E6 diff --git a/data/scripts/script_0800F39C.inc b/data/scripts/cutscene/kinstones/script_KidKinstone1.inc similarity index 92% rename from data/scripts/script_0800F39C.inc rename to data/scripts/cutscene/kinstones/script_KidKinstone1.inc index a03aa9fa..45b1ce72 100644 --- a/data/scripts/script_0800F39C.inc +++ b/data/scripts/cutscene/kinstones/script_KidKinstone1.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800F39C +@ Hyrule Town Kinstone cutscene Kid 1 +SCRIPT_START script_KidKinstone1 BeginBlock _0807E9D4 _0807EB44 0x0002 diff --git a/data/scripts/script_0800F430.inc b/data/scripts/cutscene/kinstones/script_KidKinstone2.inc similarity index 92% rename from data/scripts/script_0800F430.inc rename to data/scripts/cutscene/kinstones/script_KidKinstone2.inc index b601ce10..c197dfec 100644 --- a/data/scripts/script_0800F430.inc +++ b/data/scripts/cutscene/kinstones/script_KidKinstone2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800F430 +@ Hyrule Town Kinstone cutscene Kid 2 +SCRIPT_START script_KidKinstone2 BeginBlock _0807E9D4 _0807EB44 0x0002 diff --git a/data/scripts/script_0800F4C4.inc b/data/scripts/cutscene/kinstones/script_KidKinstone3.inc similarity index 92% rename from data/scripts/script_0800F4C4.inc rename to data/scripts/cutscene/kinstones/script_KidKinstone3.inc index 41815127..1b55066e 100644 --- a/data/scripts/script_0800F4C4.inc +++ b/data/scripts/cutscene/kinstones/script_KidKinstone3.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800F4C4 +@ Hyrule Town Kinstone cutscene Kid 3 +SCRIPT_START script_KidKinstone3 BeginBlock _0807E9D4 _0807EB44 0x0002 diff --git a/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc b/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc new file mode 100644 index 00000000..33bd8b48 --- /dev/null +++ b/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc @@ -0,0 +1,48 @@ +@ Hyrule Town NPC4E Kinstone Cutscene +SCRIPT_START script_Npc4EFirstKinstone + BeginBlock + _0807F0B4 0x0001 + CameraTargetPlayer + EndBlock +script_0800F09A: + CheckPlayerInRegion 0x01f8, 0x0338, 0x1030 + JumpIfNot script_0800F09A + _0807E864 + Call sub_0807F9A4 + Call sub_0807DF28 + LoadRoomEntityList gUnk_080EE8AC + StartPlayerScript script_PlayerAtFirstKinstone + WaitForSomething2 0x00000001 + _0807E5F8 0x0000001e + WaitForSomething2 0x00000040 + MessageFromTargetPos 0x1201, 0x000c + WaitUntilTextboxCloses + WaitForSomething2 0x000003c0 + _0807E8E4_0 + MessageFromTargetPos 0x1202, 0x000c + WaitUntilTextboxCloses + _0807F034 0x0067 + WaitPlayerGetItem + _0807E8E4_0 + _0807E5F8 0x00000002 + WaitForSomething2 0x00000040 + MessageFromTargetPos 0x1203, 0x000c + WaitUntilTextboxCloses + _0807E5F8 0x00000002 + Call sub_0807DF50 + _0807E878 + WaitForSomething2 0x00000040 +script_0800F11A: + CheckKinstoneFused 0x0032 + JumpIfNot script_0800F11A + _0807E864 + Call sub_0807DF28 + _0807E5F8 0x0000001e + Wait 0x003c + _0807E8E4_1 + WaitForSomething2 0x000003c0 + Call sub_0807DF50 + _0807E878 + DoPostScriptAction 0x0006 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_0800F14C.inc b/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc similarity index 77% rename from data/scripts/script_0800F14C.inc rename to data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc index debc95ba..40305c72 100644 --- a/data/scripts/script_0800F14C.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800F14C +@ Hyrule Town Kinstone cutscene Player +SCRIPT_START script_PlayerAtFirstKinstone BeginBlock SetEntitySpeed 0x0080 EndBlock diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc new file mode 100644 index 00000000..cc32b8ed --- /dev/null +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc @@ -0,0 +1,8 @@ +@ Player at Hyrule Town Kinstone cutscene HurdyGurdyMan +SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone1 + SetEntitySpeed 0x0100 + _0807EC94 0x0008 + _0807E5F8 0x00000400 + Call sub_080791BC +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc new file mode 100644 index 00000000..a8d17ccd --- /dev/null +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc @@ -0,0 +1,8 @@ +@ Player at Hyrule Town Kinstone cutscene HurdyGurdyMan 2 +SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone2 + SetEntitySpeed 0x0100 + _0807ECF4 0x0008 + _0807E5F8 0x00000400 + Call sub_080791BC +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc new file mode 100644 index 00000000..e951333f --- /dev/null +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc @@ -0,0 +1,8 @@ +@ Player at Hyrule Town Kinstone cutscene HurdyGurdyMan 3 +SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone3 + SetEntitySpeed 0x0100 + _0807ECC4 0x0008 + _0807E5F8 0x00000400 + Call sub_080791BC +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc new file mode 100644 index 00000000..db5813b5 --- /dev/null +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc @@ -0,0 +1,8 @@ +@ Player at Hyrule Town Kinstone cutscene HurdyGurdyMan 4 +SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone4 + SetEntitySpeed 0x0100 + _0807EC64 0x0008 + _0807E5F8 0x00000400 + Call sub_080791BC +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_0800CABC.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish5.inc similarity index 91% rename from data/scripts/script_0800CABC.inc rename to data/scripts/cutscene/minishVillage/script_ForestMinish5.inc index 33cb62c3..15ae2605 100644 --- a/data/scripts/script_0800CABC.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish5.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800CABC +@ Minish Village Intro Forest Minish +SCRIPT_START script_ForestMinish5 BeginBlock DoPostScriptAction 0x0000 DoPostScriptAction 0x0008 diff --git a/data/scripts/script_0800CB54.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish6.inc similarity index 90% rename from data/scripts/script_0800CB54.inc rename to data/scripts/cutscene/minishVillage/script_ForestMinish6.inc index 33d6ea64..6fe0af32 100644 --- a/data/scripts/script_0800CB54.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish6.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800CB54 +@ Minish Village Intro Forest Minish 2 +SCRIPT_START script_ForestMinish6 BeginBlock DoPostScriptAction 0x0000 DoPostScriptAction 0x0008 diff --git a/data/scripts/script_0800CBD4.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish7.inc similarity index 91% rename from data/scripts/script_0800CBD4.inc rename to data/scripts/cutscene/minishVillage/script_ForestMinish7.inc index 20423e5c..63c90ea4 100644 --- a/data/scripts/script_0800CBD4.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish7.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800CBD4 +@ Minish Village Intro Forest Minish 3 +SCRIPT_START script_ForestMinish7 BeginBlock DoPostScriptAction 0x0000 DoPostScriptAction 0x0008 diff --git a/data/scripts/script_0800CC6C.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish8.inc similarity index 91% rename from data/scripts/script_0800CC6C.inc rename to data/scripts/cutscene/minishVillage/script_ForestMinish8.inc index ea083bc7..738c4983 100644 --- a/data/scripts/script_0800CC6C.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish8.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800CC6C +@ Minish Village Intro Forest Minish 4 +SCRIPT_START script_ForestMinish8 BeginBlock DoPostScriptAction 0x0008 DoPostScriptAction 0x0000 diff --git a/data/scripts/script_0800CD04.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish9.inc similarity index 89% rename from data/scripts/script_0800CD04.inc rename to data/scripts/cutscene/minishVillage/script_ForestMinish9.inc index 9519af22..2c974e25 100644 --- a/data/scripts/script_0800CD04.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish9.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800CD04 +@ Minish Village Intro Forest Minish 5 +SCRIPT_START script_ForestMinish9 BeginBlock DoPostScriptAction 0x0000 DoPostScriptAction 0x0008 diff --git a/data/scripts/script_0800C91C.inc b/data/scripts/cutscene/minishVillage/script_Object69VillageIntro.inc similarity index 92% rename from data/scripts/script_0800C91C.inc rename to data/scripts/cutscene/minishVillage/script_Object69VillageIntro.inc index 05613e87..81567508 100644 --- a/data/scripts/script_0800C91C.inc +++ b/data/scripts/cutscene/minishVillage/script_Object69VillageIntro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C91C +@ Minish Village OBJECT_69 Intro Cutscene? +SCRIPT_START script_Object69VillageIntro BeginBlock _0807EB44 0x0004 SetEntitySpeed 0x0300 @@ -9,7 +10,7 @@ script_0800C928: _0807E864 Call sub_0807F9A4 Call sub_0807DF28 - StartPlayerScript script_0800CA8C + StartPlayerScript script_PlayerAtVillageIntro WaitForSomething2 0x00000002 Wait 0x003c _0807EB28 0x1125 diff --git a/data/scripts/script_0800CA8C.inc b/data/scripts/cutscene/minishVillage/script_PlayerAtVillageIntro.inc similarity index 77% rename from data/scripts/script_0800CA8C.inc rename to data/scripts/cutscene/minishVillage/script_PlayerAtVillageIntro.inc index b77826a4..9ad9b910 100644 --- a/data/scripts/script_0800CA8C.inc +++ b/data/scripts/cutscene/minishVillage/script_PlayerAtVillageIntro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800CA8C +@ Minish Village Intro Player +SCRIPT_START script_PlayerAtVillageIntro BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_08015390.inc b/data/scripts/cutscene/originStory/script_EzloCapExplainingOriginStory.inc similarity index 75% rename from data/scripts/script_08015390.inc rename to data/scripts/cutscene/originStory/script_EzloCapExplainingOriginStory.inc index d7337b44..ba131031 100644 --- a/data/scripts/script_08015390.inc +++ b/data/scripts/cutscene/originStory/script_EzloCapExplainingOriginStory.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015390 +@ Outside Castle after ezlo cutscene EzloCap +SCRIPT_START script_EzloCapExplainingOriginStory BeginBlock SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 @@ -15,7 +16,7 @@ script_080153C2: _0807EE30 JumpIfNot script_080153C2 _0807E930 0x001f - StartPlayerScript script_08015384 + StartPlayerScript script_PlayerReceivedExposition Call sub_0806D9A4 DoPostScriptAction 0x0008 Wait 0x0078 diff --git a/data/scripts/script_0801550C.inc b/data/scripts/cutscene/originStory/script_MinishEzlo.inc similarity index 94% rename from data/scripts/script_0801550C.inc rename to data/scripts/cutscene/originStory/script_MinishEzlo.inc index 267b9dd6..cf2b0806 100644 --- a/data/scripts/script_0801550C.inc +++ b/data/scripts/cutscene/originStory/script_MinishEzlo.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0801550C +@ Ezlo Cutscene MinishEzlo +SCRIPT_START script_MinishEzlo BeginBlock SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0801548E.inc b/data/scripts/cutscene/originStory/script_Object69CameraTarget.inc similarity index 88% rename from data/scripts/script_0801548E.inc rename to data/scripts/cutscene/originStory/script_Object69CameraTarget.inc index d30b9978..aa254ab2 100644 --- a/data/scripts/script_0801548E.inc +++ b/data/scripts/cutscene/originStory/script_Object69CameraTarget.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0801548E +@ Ezlo Cutscene OBJECT_69 Camera Target? +SCRIPT_START script_Object69CameraTarget _0807E5F8 0x00000800 WaitForSomething2 0x00001000 PlaySound SFX_125 diff --git a/data/scripts/script_080153EC.inc b/data/scripts/cutscene/originStory/script_Object69MinishVaati.inc similarity index 91% rename from data/scripts/script_080153EC.inc rename to data/scripts/cutscene/originStory/script_Object69MinishVaati.inc index 019ff352..667db5fc 100644 --- a/data/scripts/script_080153EC.inc +++ b/data/scripts/cutscene/originStory/script_Object69MinishVaati.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080153EC +@ Ezlo Cutscene OBJECT_69 MinishVaati +SCRIPT_START script_Object69MinishVaati BeginBlock _0807F0B4 0x0007 SetEntityPositionRelative 0x0078, 0x0068 diff --git a/data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc b/data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc new file mode 100644 index 00000000..6ed25d62 --- /dev/null +++ b/data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc @@ -0,0 +1,161 @@ +@ Outside Castle OBJECT_69 Vaati appearance +SCRIPT_START script_Object69VaatiAppears + BeginBlock + SetEntityPositionRelative 0x01f8, 0x00e0 + Call sub_08054564 + EndBlock +script_08014FCC: + CheckPlayerInRegion 0x01f8, 0x00a0, 0x2040 + JumpIfNot script_08014FCC + _0807E864 + Call sub_0807F9A4 + Call sub_0807DF28 + StopBgm + _0807F0B4 0x0001 + CameraTargetEntity + StartPlayerScript script_PlayerAtVaatisAppearance + WaitForSomething2 0x00000001 + MessageFromTargetPos 0x1301, 0x0002 + WaitUntilTextboxCloses + Call sub_0807F3F8 + Wait 0x003c + _0807E5F8 0x00000002 + WaitForSomething2 0x00000004 + _0807E5F8 0x00000002 + WaitForSomething2 0x00000004 + PlayBgm BGM_VAATI_THEME + _0807EB28 0x1302 + WaitUntilTextboxCloses + MessageFromTargetPos 0x1303, 0x0002 + WaitUntilTextboxCloses + _0807EB28 0x1304 + WaitUntilTextboxCloses + MessageFromTargetPos 0x1305, 0x0002 + WaitUntilTextboxCloses + _0807E5F8 0x00000002 + WaitForSomething2 0x00000004 + _0807EB28 0x1306 + WaitUntilTextboxCloses + StopBgm + StartPlayerScript script_PlayerTryToFollowVaati + CameraTargetEntity + _0807F0B4 0x0003 + SetEntityPositionRelative 0x01f8, 0x0148 + WaitForSomething2 0x00000001 + Call sub_0804F6A8 + Wait 0x0004 + Call sub_0804F808 + PlaySound SFX_10B + StartPlayerScript script_PlayerStoneWallsAppear + Call sub_0804F6C8 + Wait 0x0004 + Call sub_0804F830 + PlaySound SFX_10B + Call sub_0804F6E8 + Wait 0x0004 + Call sub_0804F854 + PlaySound SFX_10B + Call sub_0804F724 + Wait 0x0004 + Call sub_0804F89C + PlaySound SFX_10B + Call sub_0804F760 + Wait 0x0004 + Call sub_0804F8E0 + PlaySound SFX_10B + Wait 0x003c + WaitForSomething2 0x00000001 + PlaySound SFX_1B0 + Call sub_0804F79C + Wait 0x000a + LoadRoomEntityList gUnk_080F7FC0 + PlayBgm BGM_FIGHT_THEME + Call sub_0807DF50 + _0807E878 +script_08015104: + CheckRoomFlag 0x0000 + JumpIfNot script_08015104 + @ Defeated Moblins + _0807E864 + Call sub_0807F9A4 + Call sub_0807DF28 + StopBgm + StartPlayerScript script_PlayerDefeatedMoblins + WaitForSomething2 0x00000001 + Wait 0x003c + Call sub_0804F6A8 + Wait 0x0004 + Call sub_0804F928 + PlaySound SFX_10B + Call sub_0804F6C8 + Wait 0x0004 + Call sub_0804F944 + PlaySound SFX_10B + Call sub_0804F6E8 + Wait 0x0004 + Call sub_0804F960 + PlaySound SFX_10B + Call sub_0804F724 + Wait 0x0004 + Call sub_0804F994 + PlaySound SFX_10B + Call sub_0804F760 + Wait 0x0004 + Call sub_0804F9C8 + PlaySound SFX_10B + Wait 0x003c + PlaySound SFX_SECRET + _0807F0B4 0x0004 + CameraTargetPlayer +.ifdef JP + SetLocalFlag 0x008a +.else +.ifdef EU + SetLocalFlag 0x008a +.else +.ifdef DEMO_JP + SetLocalFlag 0x008a @ TODO deduplicate +.else + SetLocalFlag 0x008c +.endif +.endif +.endif + _0807EB28 0x130c + WaitUntilTextboxCloses + @ Ezlo cutscene starts + CameraTargetPlayer + _0807E778 0x0004 + _0807E80C 0x00000000 + WaitFor_2 + Call sub_08053B3C + BeginBlock + _0807E864 + CallWithArg sub_0807F6E8, 0x00000008 + MoveEntityToPlayer + _0807F0B4 0x0004 + CameraTargetEntity + _0807E778 0x0100 + DoFade4 + _0807E80C 0x00000000 + EndBlock + StartPlayerScript script_PlayerSeenOriginStory + WaitForSomething2 0x00000001 + LoadRoomEntityList gUnk_080F7CB0 + _0807E778 0x0004 + _0807E800 0x00000000 + WaitFor_2 + _0807E5F8 0x00000008 + WaitForSomething2 0x00000010 + BeginBlock + _0807E8E4_2 + _0807EB28 0x1315 + EndBlock + WaitUntilTextboxCloses + _0807F0B4 0x0004 + CameraTargetPlayer + Call sub_08054570 + PlayBGM + Call sub_0807DF50 + _0807E878 + DoPostScriptAction 0x0006 +SCRIPT_END diff --git a/data/scripts/script_08015754.inc b/data/scripts/cutscene/originStory/script_Object6ADarkMagic.inc similarity index 83% rename from data/scripts/script_08015754.inc rename to data/scripts/cutscene/originStory/script_Object6ADarkMagic.inc index 8495df7f..655d8258 100644 --- a/data/scripts/script_08015754.inc +++ b/data/scripts/cutscene/originStory/script_Object6ADarkMagic.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015754 +@ Ezlo Cutscene OBJECT_6A dark magic +SCRIPT_START script_Object6ADarkMagic BeginBlock _0807E930 0x0000 SetEntitySpeed 0x0200 diff --git a/data/scripts/script_08015618.inc b/data/scripts/cutscene/originStory/script_Object6AMinishCap.inc similarity index 86% rename from data/scripts/script_08015618.inc rename to data/scripts/cutscene/originStory/script_Object6AMinishCap.inc index cc21ef92..56f0f57a 100644 --- a/data/scripts/script_08015618.inc +++ b/data/scripts/cutscene/originStory/script_Object6AMinishCap.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015618 +@ Ezlo Cutscene OBJECT_6A Minish Cap +SCRIPT_START script_Object6AMinishCap BeginBlock DoPostScriptAction 0x0007 SetEntitySpeed 0x0040 diff --git a/data/scripts/script_080152B4.inc b/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc similarity index 68% rename from data/scripts/script_080152B4.inc rename to data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc index 61ae2f32..668b0930 100644 --- a/data/scripts/script_080152B4.inc +++ b/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080152B4 +@ Player outside castle for Vaati appearance +SCRIPT_START script_PlayerAtVaatisAppearance BeginBlock SetEntitySpeed 0x0080 EndBlock diff --git a/data/scripts/script_08015338.inc b/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc similarity index 68% rename from data/scripts/script_08015338.inc rename to data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc index 5dd2c48f..21b9fb9d 100644 --- a/data/scripts/script_08015338.inc +++ b/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015338 +@ Player Outside Castle after defeating Moblins +SCRIPT_START script_PlayerDefeatedMoblins BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/cutscene/originStory/script_PlayerReceivedExposition.inc b/data/scripts/cutscene/originStory/script_PlayerReceivedExposition.inc new file mode 100644 index 00000000..77508e79 --- /dev/null +++ b/data/scripts/cutscene/originStory/script_PlayerReceivedExposition.inc @@ -0,0 +1,5 @@ +@ Player Outside Castle after Ezlo explanation after ezlo cutscene +SCRIPT_START script_PlayerReceivedExposition + DoPostScriptAction 0x0015 + Call sub_080791BC +SCRIPT_END diff --git a/data/scripts/script_08015360.inc b/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc similarity index 72% rename from data/scripts/script_08015360.inc rename to data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc index 98b78e13..15faade4 100644 --- a/data/scripts/script_08015360.inc +++ b/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015360 +@ Player after Ezlo Cutscene +SCRIPT_START script_PlayerSeenOriginStory BeginBlock SetEntitySpeed 0x0100 SetEntityPositionRelative 0x0208, 0x0148 diff --git a/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc b/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc new file mode 100644 index 00000000..a3c96b65 --- /dev/null +++ b/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc @@ -0,0 +1,15 @@ +@ Player Outside Castle when stones appear before Moblin Fight +SCRIPT_START script_PlayerStoneWallsAppear + _0807EB44 0x0002 + Wait 0x000a + _0807EB44 0x0006 + Wait 0x000a + _0807EB44 0x0002 + Wait 0x000a + _0807EB44 0x0006 + Wait 0x000a + _0807EB44 0x0004 + _0807E5F8 0x00000001 + Call sub_080791BC +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_080152DC.inc b/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc similarity index 68% rename from data/scripts/script_080152DC.inc rename to data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc index 5e55ee16..b9759827 100644 --- a/data/scripts/script_080152DC.inc +++ b/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080152DC +@ Player trying to follow Vaati outside castle +SCRIPT_START script_PlayerTryToFollowVaati BeginBlock SetEntitySpeed 0x0200 EndBlock diff --git a/data/scripts/script_08015684.inc b/data/scripts/cutscene/originStory/script_Vaati.inc similarity index 90% rename from data/scripts/script_08015684.inc rename to data/scripts/cutscene/originStory/script_Vaati.inc index 4bcb6dc9..8cdeb503 100644 --- a/data/scripts/script_08015684.inc +++ b/data/scripts/cutscene/originStory/script_Vaati.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015684 +@ Ezlo Cutscene Vaati +SCRIPT_START script_Vaati BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000b @@ -29,7 +30,7 @@ SCRIPT_START script_08015684 WaitForSomething2 0x00000800 _0807EB44 0x0004 DoPostScriptAction 0x0014 - CallWithArg sub_0809545C, script_08015754 + CallWithArg sub_0809545C, script_Object6ADarkMagic PlaySound SFX_1C4 Wait 0x0078 DoPostScriptAction 0x0016 diff --git a/data/scripts/script_08015234.inc b/data/scripts/cutscene/originStory/script_VaatiAppearsAgain.inc similarity index 91% rename from data/scripts/script_08015234.inc rename to data/scripts/cutscene/originStory/script_VaatiAppearsAgain.inc index c7060e78..0f6a9aef 100644 --- a/data/scripts/script_08015234.inc +++ b/data/scripts/cutscene/originStory/script_VaatiAppearsAgain.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015234 +@ Outside Castle Vaati +SCRIPT_START script_VaatiAppearsAgain BeginBlock DoPostScriptAction 0x0008 _0807EB44 0x0004 diff --git a/data/scripts/script_0800A590.inc b/data/scripts/cutscene/outro/script_EzloCapOutro.inc similarity index 87% rename from data/scripts/script_0800A590.inc rename to data/scripts/cutscene/outro/script_EzloCapOutro.inc index 6bec907c..63226166 100644 --- a/data/scripts/script_0800A590.inc +++ b/data/scripts/cutscene/outro/script_EzloCapOutro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A590 +@ Outro EzloCap +SCRIPT_START script_EzloCapOutro BeginBlock SetEntitySpeed 0x0080 SetEntity0x20 0x00000000 @@ -14,7 +15,7 @@ SCRIPT_START script_0800A590 DoPostScriptAction 0x0007 PlaySound SFX_SPARKLES _0807E610 0x00000800 - CallWithArg sub_080960C4, script_0800A65C + CallWithArg sub_080960C4, script_Object6AEzloDismounting Wait 0x003c _0807EDD4 0x0088, 0x0068 Wait 0x0078 diff --git a/data/scripts/script_0800A680.inc b/data/scripts/cutscene/outro/script_EzloZeldaMagic.inc similarity index 72% rename from data/scripts/script_0800A680.inc rename to data/scripts/cutscene/outro/script_EzloZeldaMagic.inc index 5ed4c24a..8d029aff 100644 --- a/data/scripts/script_0800A680.inc +++ b/data/scripts/cutscene/outro/script_EzloZeldaMagic.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A680 +@ Outro OBJECT_6A Ezlo and Zelda magic +SCRIPT_START script_EzloZeldaMagic BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000b diff --git a/data/scripts/cutscene/outro/script_GuardStoneOutro1.inc b/data/scripts/cutscene/outro/script_GuardStoneOutro1.inc new file mode 100644 index 00000000..73c218ed --- /dev/null +++ b/data/scripts/cutscene/outro/script_GuardStoneOutro1.inc @@ -0,0 +1,18 @@ +@ Outro Guard stone +SCRIPT_START script_GuardStoneOutro1 + BeginBlock + DoPostScriptAction 0x0007 + _0807EB44 0x0004 + _0807E930 0x0010 + EndBlock + WaitForSomething 0x00000001 + _0807E930 0x0002 + WaitForSomething2 0x00000002 + DoPostScriptAction 0x0004 + Wait 0x003c +script_0800A80C: + _0807E930 0x0001 + Wait 0x001e + _0807E930 0x0003 + Wait 0x001e + Jump script_0800A80C diff --git a/data/scripts/cutscene/outro/script_GuardStoneOutro2.inc b/data/scripts/cutscene/outro/script_GuardStoneOutro2.inc new file mode 100644 index 00000000..f33f9425 --- /dev/null +++ b/data/scripts/cutscene/outro/script_GuardStoneOutro2.inc @@ -0,0 +1,18 @@ +@ Outro Guard stone 2 +SCRIPT_START script_GuardStoneOutro2 + BeginBlock + DoPostScriptAction 0x0007 + _0807EB44 0x0004 + _0807E930 0x0010 + EndBlock + WaitForSomething 0x00000001 + _0807E930 0x0002 + WaitForSomething2 0x00000004 + DoPostScriptAction 0x0004 + Wait 0x003c +script_0800A848: + _0807E930 0x0001 + Wait 0x0014 + _0807E930 0x0003 + Wait 0x0014 + Jump script_0800A848 diff --git a/data/scripts/cutscene/outro/script_GuardStoneOutro3.inc b/data/scripts/cutscene/outro/script_GuardStoneOutro3.inc new file mode 100644 index 00000000..66af4c81 --- /dev/null +++ b/data/scripts/cutscene/outro/script_GuardStoneOutro3.inc @@ -0,0 +1,18 @@ +@ Outro Guard stone 3 +SCRIPT_START script_GuardStoneOutro3 + BeginBlock + DoPostScriptAction 0x0007 + _0807EB44 0x0004 + _0807E930 0x0010 + EndBlock + WaitForSomething 0x00000001 + _0807E930 0x0002 + WaitForSomething2 0x00000008 + DoPostScriptAction 0x0004 + Wait 0x003c +script_0800A884: + _0807E930 0x0001 + Wait 0x000a + _0807E930 0x0003 + Wait 0x000a + Jump script_0800A884 diff --git a/data/scripts/cutscene/outro/script_MaidStoneOutro1.inc b/data/scripts/cutscene/outro/script_MaidStoneOutro1.inc new file mode 100644 index 00000000..e355a772 --- /dev/null +++ b/data/scripts/cutscene/outro/script_MaidStoneOutro1.inc @@ -0,0 +1,18 @@ +@ Outro Maid stone +SCRIPT_START script_MaidStoneOutro1 + BeginBlock + DoPostScriptAction 0x0007 + _0807EB44 0x0004 + _0807E930 0x0008 + EndBlock + WaitForSomething 0x00000001 + DoPostScriptAction 0x0000 + WaitForSomething2 0x00000010 + DoPostScriptAction 0x0004 + Wait 0x003c +script_0800A8C0: + _0807EB44 0x0002 + Wait 0x0019 + _0807EB44 0x0006 + Wait 0x0019 + Jump script_0800A8C0 diff --git a/data/scripts/cutscene/outro/script_MaidStoneOutro2.inc b/data/scripts/cutscene/outro/script_MaidStoneOutro2.inc new file mode 100644 index 00000000..f3884c80 --- /dev/null +++ b/data/scripts/cutscene/outro/script_MaidStoneOutro2.inc @@ -0,0 +1,18 @@ +@ Outro Maid stone 2 +SCRIPT_START script_MaidStoneOutro2 + BeginBlock + DoPostScriptAction 0x0007 + _0807EB44 0x0004 + _0807E930 0x0008 + EndBlock + WaitForSomething 0x00000001 + DoPostScriptAction 0x0000 + WaitForSomething2 0x00000020 + DoPostScriptAction 0x0004 + Wait 0x003c +script_0800A8FC: + _0807EB44 0x0002 + Wait 0x000f + _0807EB44 0x0006 + Wait 0x000f + Jump script_0800A8FC diff --git a/data/scripts/script_0800AD54.inc b/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc similarity index 83% rename from data/scripts/script_0800AD54.inc rename to data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc index 0b2c4414..4a526a99 100644 --- a/data/scripts/script_0800AD54.inc +++ b/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc @@ -1,13 +1,5 @@ -SCRIPT_START script_0800AD54 - BeginBlock - SetEntitySpeed 0x0080 - EndBlock - _0807EC64 0x0020 - _0807EB44 0x0000 - DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 - Call sub_080791BC -SCRIPT_START script_0800AD74 +@ Outro MinishEzlo after fixing everything +SCRIPT_START script_MinishEzloGoodbye BeginBlock SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 @@ -41,7 +33,7 @@ SCRIPT_START script_0800AD74 Call sub_0807F2D4 _0807E5F8 0x00000004 WaitForSomething2 0x00000002 - CallWithArg sub_080960C4, script_0800AF18 + CallWithArg sub_080960C4, script_Object6AEzloFinalMagic _0807E930 0x0012 Call sub_0807F2D4 Wait 0x001e diff --git a/data/scripts/script_0800A310.inc b/data/scripts/cutscene/outro/script_MinishEzloOutro.inc similarity index 68% rename from data/scripts/script_0800A310.inc rename to data/scripts/cutscene/outro/script_MinishEzloOutro.inc index b8d89502..77e67238 100644 --- a/data/scripts/script_0800A310.inc +++ b/data/scripts/cutscene/outro/script_MinishEzloOutro.inc @@ -1,17 +1,5 @@ -SCRIPT_START script_0800A310 - EndBlock - _0807EB44 0x0002 - Wait 0x000a - _0807EB44 0x0006 - Wait 0x000a - _0807EB44 0x0002 - Wait 0x000a - _0807EB44 0x0006 - Wait 0x000a - _0807E5F8 0x00000001 - Call sub_080791BC - .2byte 0x0000 -SCRIPT_START script_0800A340 +@ Outro Minish Ezlo +SCRIPT_START script_MinishEzloOutro BeginBlock DoPostScriptAction 0x0008 SetEntitySpeed 0x0080 @@ -38,7 +26,7 @@ SCRIPT_START script_0800A340 Call sub_0807F2D4 _0807E5F8 0x00000040 WaitForSomething2 0x00000002 - CallWithArg sub_080960C4, script_0800A680 + CallWithArg sub_080960C4, script_EzloZeldaMagic _0807E5F8 0x00000040 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/script_0800A704.inc b/data/scripts/cutscene/outro/script_Npc4EDHCEntrance.inc similarity index 76% rename from data/scripts/script_0800A704.inc rename to data/scripts/cutscene/outro/script_Npc4EDHCEntrance.inc index 64262eab..3f04796f 100644 --- a/data/scripts/script_0800A704.inc +++ b/data/scripts/cutscene/outro/script_Npc4EDHCEntrance.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A704 +@ Outro NPC4E Fix DHC Entrance +SCRIPT_START script_Npc4EDHCEntrance BeginBlock _0807E864 Call sub_0807DF28 diff --git a/data/scripts/script_0800A6A4.inc b/data/scripts/cutscene/outro/script_Npc4EDHCThrone.inc similarity index 78% rename from data/scripts/script_0800A6A4.inc rename to data/scripts/cutscene/outro/script_Npc4EDHCThrone.inc index 89faff49..4349136f 100644 --- a/data/scripts/script_0800A6A4.inc +++ b/data/scripts/cutscene/outro/script_Npc4EDHCThrone.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A6A4 +@ Outro NPC4E Fix DHC Throne +SCRIPT_START script_Npc4EDHCThrone BeginBlock _0807E864 Call sub_0807DF28 diff --git a/data/scripts/script_0800AB08.inc b/data/scripts/cutscene/outro/script_Npc4EFixedEverything.inc similarity index 87% rename from data/scripts/script_0800AB08.inc rename to data/scripts/cutscene/outro/script_Npc4EFixedEverything.inc index 32c0454d..f92b36db 100644 --- a/data/scripts/script_0800AB08.inc +++ b/data/scripts/cutscene/outro/script_Npc4EFixedEverything.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AB08 +@ Outro NPC4E Fixed everything +SCRIPT_START script_Npc4EFixedEverything BeginBlock _0807E864 Call sub_0807DF28 diff --git a/data/scripts/script_0800A734.inc b/data/scripts/cutscene/outro/script_Npc4EHyruleCastleEntrance.inc similarity index 72% rename from data/scripts/script_0800A734.inc rename to data/scripts/cutscene/outro/script_Npc4EHyruleCastleEntrance.inc index 3a60f672..97e8bc47 100644 --- a/data/scripts/script_0800A734.inc +++ b/data/scripts/cutscene/outro/script_Npc4EHyruleCastleEntrance.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A734 +@ Outro NPC4E Fix Hyrule Castle Entrance +SCRIPT_START script_Npc4EHyruleCastleEntrance BeginBlock _0807E864 Call sub_0807DF28 diff --git a/data/scripts/script_0800A6D4.inc b/data/scripts/cutscene/outro/script_Npc4EHyruleCastleThrone.inc similarity index 73% rename from data/scripts/script_0800A6D4.inc rename to data/scripts/cutscene/outro/script_Npc4EHyruleCastleThrone.inc index 80e01e1d..890d3814 100644 --- a/data/scripts/script_0800A6D4.inc +++ b/data/scripts/cutscene/outro/script_Npc4EHyruleCastleThrone.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A6D4 +@ Outro NPC4E Fix Hyrule Castle Throne +SCRIPT_START script_Npc4EHyruleCastleThrone BeginBlock _0807E864 Call sub_0807DF28 diff --git a/data/scripts/script_0800AB6E.inc b/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc similarity index 86% rename from data/scripts/script_0800AB6E.inc rename to data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc index 6b859b90..6abb3708 100644 --- a/data/scripts/script_0800AB6E.inc +++ b/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AB6E +@ Outro NPC4E Minish Portal is closing +SCRIPT_START script_Npc4EMinishPortalClosing Call sub_0808D2CC _0807E5F8 0x00000002 WaitForSomething2 0x00000004 @@ -15,7 +16,7 @@ SCRIPT_START script_0800AB6E WaitForSomething2 0x00000004 MessageFromTargetPos 0x165f, 0x000e WaitUntilTextboxCloses - StartPlayerScript script_0800ACBC + StartPlayerScript script_PlayerAtEzlo WaitForSomething2 0x00000001 MessageFromTargetPos 0x1660, 0x000e WaitUntilTextboxCloses @@ -29,7 +30,7 @@ SCRIPT_START script_0800AB6E OffsetEntityPosition 0x0000, 0x0020 Call sub_0807F5C0 WaitForSomething2 0x00000010 - StartPlayerScript script_0800ACE0 + StartPlayerScript script_PlayerGetGreenCap WaitForSomething2 0x00000001 Wait 0x003c MessageFromTargetPos 0x1662, 0x000e @@ -42,7 +43,7 @@ SCRIPT_START script_0800AB6E WaitForSomething2 0x00000004 _0807E5F8 0x00000002 WaitForSomething2 0x00000004 - StartPlayerScript script_0800AD54 + StartPlayerScript script_PlayerSayGoodbye WaitForSomething2 0x00000001 Wait 0x003c MessageFromTargetPos 0x1665, 0x000e @@ -55,7 +56,7 @@ SCRIPT_START script_0800AB6E _0807E778 0x0004 DoFade5 WaitFor_2 - Call sub_0807FB94 + Call sub_0807FB94 @ Roll Credits MoveEntityToPlayer Call sub_0807F844 _0807F0B4 0x0004 diff --git a/data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc b/data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc new file mode 100644 index 00000000..f63a9c53 --- /dev/null +++ b/data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc @@ -0,0 +1,20 @@ +@ Outro NPC4E Minish Woods +SCRIPT_START script_Npc4EMinishWoods + BeginBlock + _0807E864 + Call sub_0807DF28 + SetEntityPositionRelative 0x0378, 0x0178 + Call sub_0807F844 + EndBlock + Wait 0x003c + _0807E5F8 0x00000001 + Wait 0x001e + _0807E5F8 0x00000002 + Wait 0x0014 + _0807E5F8 0x00000004 + Wait 0x000a + _0807E5F8 0x00000008 + Wait 0x003c + CallWithArg sub_0806DA1C, 0x0000000d + DoPostScriptAction 0x0006 +SCRIPT_END diff --git a/data/scripts/script_0800A9F4.inc b/data/scripts/cutscene/outro/script_Npc4EMtCrenel.inc similarity index 85% rename from data/scripts/script_0800A9F4.inc rename to data/scripts/cutscene/outro/script_Npc4EMtCrenel.inc index 7c33419b..1ae3df45 100644 --- a/data/scripts/script_0800A9F4.inc +++ b/data/scripts/cutscene/outro/script_Npc4EMtCrenel.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A9F4 +@ Outro NPC4E Mt. Crenel +SCRIPT_START script_Npc4EMtCrenel BeginBlock _0807E864 Call sub_0807DF28 diff --git a/data/scripts/script_0800A1D8.inc b/data/scripts/cutscene/outro/script_Npc4EOutro.inc similarity index 94% rename from data/scripts/script_0800A1D8.inc rename to data/scripts/cutscene/outro/script_Npc4EOutro.inc index 90b926db..d05b8ba4 100644 --- a/data/scripts/script_0800A1D8.inc +++ b/data/scripts/cutscene/outro/script_Npc4EOutro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A1D8 +@ Outro NPC4E +SCRIPT_START script_Npc4EOutro BeginBlock _0807E864 Call sub_0807DF28 @@ -8,7 +9,7 @@ SCRIPT_START script_0800A1D8 CallWithArg sub_0807F75C, 0x00a80088 EndBlock Wait 0x003c - StartPlayerScript script_0800A310 + StartPlayerScript script_PlayerAtOutro WaitForSomething2 0x00000001 _0807E5F8 0x00000004 WaitForSomething2 0x00000080 diff --git a/data/scripts/script_0800AAD8.inc b/data/scripts/cutscene/outro/script_Npc4ESanctuaryEntrance.inc similarity index 72% rename from data/scripts/script_0800AAD8.inc rename to data/scripts/cutscene/outro/script_Npc4ESanctuaryEntrance.inc index 50cb8c6d..a9f2a329 100644 --- a/data/scripts/script_0800AAD8.inc +++ b/data/scripts/cutscene/outro/script_Npc4ESanctuaryEntrance.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AAD8 +@ Outro NPC4E DHC Fix Sanctuary entrance +SCRIPT_START script_Npc4ESanctuaryEntrance BeginBlock _0807E864 Call sub_0807DF28 diff --git a/data/scripts/script_0800A764.inc b/data/scripts/cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc similarity index 86% rename from data/scripts/script_0800A764.inc rename to data/scripts/cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc index ce2dd0f7..e85a727a 100644 --- a/data/scripts/script_0800A764.inc +++ b/data/scripts/cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A764 +@ Outro NPC4E Unfreeze castle staff +SCRIPT_START script_Npc4EUnfreezeCastleStaff BeginBlock _0807E864 Call sub_0807DF28 diff --git a/data/scripts/script_0800A65C.inc b/data/scripts/cutscene/outro/script_Object6AEzloDismounting.inc similarity index 68% rename from data/scripts/script_0800A65C.inc rename to data/scripts/cutscene/outro/script_Object6AEzloDismounting.inc index 759fef06..200d28b9 100644 --- a/data/scripts/script_0800A65C.inc +++ b/data/scripts/cutscene/outro/script_Object6AEzloDismounting.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A65C +@ Outro OBJECT_6A Ezlo moving from Links head +SCRIPT_START script_Object6AEzloDismounting BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000b diff --git a/data/scripts/script_0800AF18.inc b/data/scripts/cutscene/outro/script_Object6AEzloFinalMagic.inc similarity index 73% rename from data/scripts/script_0800AF18.inc rename to data/scripts/cutscene/outro/script_Object6AEzloFinalMagic.inc index 6c6c70ed..8deeaa16 100644 --- a/data/scripts/script_0800AF18.inc +++ b/data/scripts/cutscene/outro/script_Object6AEzloFinalMagic.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AF18 +@ Outro OBJECT_6A Ezlo final magic shrinking +SCRIPT_START script_Object6AEzloFinalMagic BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000b diff --git a/data/scripts/script_0800A500.inc b/data/scripts/cutscene/outro/script_Object6AMinishCapOutro.inc similarity index 81% rename from data/scripts/script_0800A500.inc rename to data/scripts/cutscene/outro/script_Object6AMinishCapOutro.inc index 55f56c7e..c53774ad 100644 --- a/data/scripts/script_0800A500.inc +++ b/data/scripts/cutscene/outro/script_Object6AMinishCapOutro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A500 +@ Outro OBJECT_6A Minish Cap +SCRIPT_START script_Object6AMinishCapOutro BeginBlock SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 @@ -9,7 +10,7 @@ SCRIPT_START script_0800A500 WaitForSomething2 0x00000008 PlaySound SFX_SPARKLES _0807E610 0x00000800 - CallWithArg sub_080960C4, script_0800A65C + CallWithArg sub_080960C4, script_Object6AEzloDismounting _0807E930 0x0002 Call sub_08094B0C _0807EDD4 0x0068, 0x0088 diff --git a/data/scripts/script_0800A964.inc b/data/scripts/cutscene/outro/script_Object6AOctorok1.inc similarity index 74% rename from data/scripts/script_0800A964.inc rename to data/scripts/cutscene/outro/script_Object6AOctorok1.inc index 258b3451..357948d8 100644 --- a/data/scripts/script_0800A964.inc +++ b/data/scripts/cutscene/outro/script_Object6AOctorok1.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A964 +@ Outro OBJECT_6A Octorok 1 +SCRIPT_START script_Object6AOctorok1 BeginBlock _0807EB44 0x0002 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0800A988.inc b/data/scripts/cutscene/outro/script_Object6AOctorok2.inc similarity index 74% rename from data/scripts/script_0800A988.inc rename to data/scripts/cutscene/outro/script_Object6AOctorok2.inc index 0323f7b4..1d821ef4 100644 --- a/data/scripts/script_0800A988.inc +++ b/data/scripts/cutscene/outro/script_Object6AOctorok2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A988 +@ Outro OBJECT_6A Octorok 2 +SCRIPT_START script_Object6AOctorok2 BeginBlock _0807EB44 0x0004 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0800A9AC.inc b/data/scripts/cutscene/outro/script_Object6AOctorok3.inc similarity index 74% rename from data/scripts/script_0800A9AC.inc rename to data/scripts/cutscene/outro/script_Object6AOctorok3.inc index 3bafd5c1..4a40f72b 100644 --- a/data/scripts/script_0800A9AC.inc +++ b/data/scripts/cutscene/outro/script_Object6AOctorok3.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A9AC +@ Outro OBJECT_6A Octorok 3 +SCRIPT_START script_Object6AOctorok3 BeginBlock _0807EB44 0x0000 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0800A9D0.inc b/data/scripts/cutscene/outro/script_Object6AOctorok4.inc similarity index 74% rename from data/scripts/script_0800A9D0.inc rename to data/scripts/cutscene/outro/script_Object6AOctorok4.inc index 7f7495c8..1c305c02 100644 --- a/data/scripts/script_0800A9D0.inc +++ b/data/scripts/cutscene/outro/script_Object6AOctorok4.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A9D0 +@ Outro OBJECT_6A Octorok 4 +SCRIPT_START script_Object6AOctorok4 BeginBlock _0807EB44 0x0006 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0800AA48.inc b/data/scripts/cutscene/outro/script_Object6ATektite1.inc similarity index 74% rename from data/scripts/script_0800AA48.inc rename to data/scripts/cutscene/outro/script_Object6ATektite1.inc index a96c6c4f..347784db 100644 --- a/data/scripts/script_0800AA48.inc +++ b/data/scripts/cutscene/outro/script_Object6ATektite1.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AA48 +@ Outro OBJECT_6A Tektite 1 +SCRIPT_START script_Object6ATektite1 BeginBlock _0807EB44 0x0002 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0800AA6C.inc b/data/scripts/cutscene/outro/script_Object6ATektite2.inc similarity index 74% rename from data/scripts/script_0800AA6C.inc rename to data/scripts/cutscene/outro/script_Object6ATektite2.inc index 448bf96b..e9ef6154 100644 --- a/data/scripts/script_0800AA6C.inc +++ b/data/scripts/cutscene/outro/script_Object6ATektite2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AA6C +@ Outro OBJECT_6A Tektite 2 +SCRIPT_START script_Object6ATektite2 BeginBlock _0807EB44 0x0004 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0800AA90.inc b/data/scripts/cutscene/outro/script_Object6ATektite3.inc similarity index 74% rename from data/scripts/script_0800AA90.inc rename to data/scripts/cutscene/outro/script_Object6ATektite3.inc index 96901853..eb0f4191 100644 --- a/data/scripts/script_0800AA90.inc +++ b/data/scripts/cutscene/outro/script_Object6ATektite3.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AA90 +@ Outro OBJECT_6A Tektite 3 +SCRIPT_START script_Object6ATektite3 BeginBlock _0807EB44 0x0000 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0800AAB4.inc b/data/scripts/cutscene/outro/script_Object6ATektite4.inc similarity index 74% rename from data/scripts/script_0800AAB4.inc rename to data/scripts/cutscene/outro/script_Object6ATektite4.inc index 8c494dd7..a26b1514 100644 --- a/data/scripts/script_0800AAB4.inc +++ b/data/scripts/cutscene/outro/script_Object6ATektite4.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AAB4 +@ Outro OBJECT_6A Tektite 4 +SCRIPT_START script_Object6ATektite4 BeginBlock _0807EB44 0x0006 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0800AEDC.inc b/data/scripts/cutscene/outro/script_Object6ATheLittleHat.inc similarity index 79% rename from data/scripts/script_0800AEDC.inc rename to data/scripts/cutscene/outro/script_Object6ATheLittleHat.inc index 6c4e6b61..06d0d8c7 100644 --- a/data/scripts/script_0800AEDC.inc +++ b/data/scripts/cutscene/outro/script_Object6ATheLittleHat.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AEDC +@ Outro OBJECT_6A The Little Hat (Green) +SCRIPT_START script_Object6ATheLittleHat BeginBlock SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0800A638.inc b/data/scripts/cutscene/outro/script_Object6AZeldaMagic.inc similarity index 73% rename from data/scripts/script_0800A638.inc rename to data/scripts/cutscene/outro/script_Object6AZeldaMagic.inc index cce609e8..f7a0d74e 100644 --- a/data/scripts/script_0800A638.inc +++ b/data/scripts/cutscene/outro/script_Object6AZeldaMagic.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A638 +@ Outro OBJECT_6A Zelda glowing? +SCRIPT_START script_Object6AZeldaMagic BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000b diff --git a/data/scripts/script_0800ACBC.inc b/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc similarity index 73% rename from data/scripts/script_0800ACBC.inc rename to data/scripts/cutscene/outro/script_PlayerAtEzlo.inc index a8e89bb6..9e72802e 100644 --- a/data/scripts/script_0800ACBC.inc +++ b/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800ACBC +@ Outro Player move to Ezlo +SCRIPT_START script_PlayerAtEzlo BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_08015304.inc b/data/scripts/cutscene/outro/script_PlayerAtOutro.inc similarity index 74% rename from data/scripts/script_08015304.inc rename to data/scripts/cutscene/outro/script_PlayerAtOutro.inc index 85133e67..c96f4435 100644 --- a/data/scripts/script_08015304.inc +++ b/data/scripts/cutscene/outro/script_PlayerAtOutro.inc @@ -1,4 +1,6 @@ -SCRIPT_START script_08015304 +@ Player at Outro +SCRIPT_START script_PlayerAtOutro + EndBlock _0807EB44 0x0002 Wait 0x000a _0807EB44 0x0006 @@ -7,8 +9,6 @@ SCRIPT_START script_08015304 Wait 0x000a _0807EB44 0x0006 Wait 0x000a - _0807EB44 0x0004 _0807E5F8 0x00000001 Call sub_080791BC -SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/script_0800ACE0.inc b/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc similarity index 87% rename from data/scripts/script_0800ACE0.inc rename to data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc index ad53174a..1d626969 100644 --- a/data/scripts/script_0800ACE0.inc +++ b/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800ACE0 +@ Outro Player got the green cap +SCRIPT_START script_PlayerGetGreenCap BeginBlock Call sub_08094BE0 CallWithArg sub_0807F238, 0x0000045b diff --git a/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc b/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc new file mode 100644 index 00000000..9e6c305d --- /dev/null +++ b/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc @@ -0,0 +1,10 @@ +@ Outro Player goes to say goodbye to Minish Ezlo +SCRIPT_START script_PlayerSayGoodbye + BeginBlock + SetEntitySpeed 0x0080 + EndBlock + _0807EC64 0x0020 + _0807EB44 0x0000 + DoPostScriptAction 0x0000 + _0807E5F8 0x00000001 + Call sub_080791BC diff --git a/data/scripts/script_0800AEA4.inc b/data/scripts/cutscene/outro/script_ZeldaGoodbye.inc similarity index 81% rename from data/scripts/script_0800AEA4.inc rename to data/scripts/cutscene/outro/script_ZeldaGoodbye.inc index b206732e..244494f8 100644 --- a/data/scripts/script_0800AEA4.inc +++ b/data/scripts/cutscene/outro/script_ZeldaGoodbye.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AEA4 +@ Outro Zelda after fixing everything +SCRIPT_START script_ZeldaGoodbye BeginBlock SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0800A3D8.inc b/data/scripts/cutscene/outro/script_ZeldaOutro.inc similarity index 89% rename from data/scripts/script_0800A3D8.inc rename to data/scripts/cutscene/outro/script_ZeldaOutro.inc index fbb04752..77e64220 100644 --- a/data/scripts/script_0800A3D8.inc +++ b/data/scripts/cutscene/outro/script_ZeldaOutro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A3D8 +@ Outro Zelda +SCRIPT_START script_ZeldaOutro BeginBlock SetEntitySpeed 0x0100 DoPostScriptAction 0x0007 @@ -28,7 +29,7 @@ SCRIPT_START script_0800A3D8 _0807EB44 0x0004 DoPostScriptAction 0x0000 PlaySound SFX_SPARKLES - CallWithArg sub_080960C4, script_0800A638 + CallWithArg sub_080960C4, script_Object6AZeldaMagic _0807E5F8 0x00000080 WaitForSomething2 0x00000004 PlaySound SFX_143 @@ -39,7 +40,7 @@ SCRIPT_START script_0800A3D8 _0807E5F8 0x00000080 WaitForSomething2 0x00000004 PlaySound SFX_SPARKLES - CallWithArg sub_080960C4, script_0800A680 + CallWithArg sub_080960C4, script_EzloZeldaMagic Wait 0x0078 PlaySound SFX_153 CallWithArg sub_0807FADC, 0x00000003 diff --git a/data/scripts/script_08013494.inc b/data/scripts/cutscene/reveal/script_08013494.inc similarity index 80% rename from data/scripts/script_08013494.inc rename to data/scripts/cutscene/reveal/script_08013494.inc index 077f4297..a383f68b 100644 --- a/data/scripts/script_08013494.inc +++ b/data/scripts/cutscene/reveal/script_08013494.inc @@ -1,3 +1,4 @@ +@ Something during Sanctuary Vaati cutscene? Called from script_VaatiSanctuary SCRIPT_START script_08013494 BeginBlock _0807E930 0x0000 diff --git a/data/scripts/script_080133C4.inc b/data/scripts/cutscene/reveal/script_FakeKingDaltus.inc similarity index 80% rename from data/scripts/script_080133C4.inc rename to data/scripts/cutscene/reveal/script_FakeKingDaltus.inc index 7b1a62fd..5c5a8d48 100644 --- a/data/scripts/script_080133C4.inc +++ b/data/scripts/cutscene/reveal/script_FakeKingDaltus.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080133C4 +@ Sanctuary King Daltus +SCRIPT_START script_FakeKingDaltus BeginBlock _0807EB44 0x0004 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0801319A.inc b/data/scripts/cutscene/reveal/script_Object3EPictureBackRoom.inc similarity index 78% rename from data/scripts/script_0801319A.inc rename to data/scripts/cutscene/reveal/script_Object3EPictureBackRoom.inc index 0f1b052e..15048906 100644 --- a/data/scripts/script_0801319A.inc +++ b/data/scripts/cutscene/reveal/script_Object3EPictureBackRoom.inc @@ -1,27 +1,21 @@ -SCRIPT_START script_0801319A - EndBlock - BeginBlock - CameraTargetEntity - MoveEntityToPlayer - Call sub_0806AB74 - Jump script_0801319A -SCRIPT_START script_080131AC +@ Sanctuary OBJECT_3E Look at picture in back room +SCRIPT_START script_Object3EPictureBackRoom CheckPlayerInRegion 0x0098, 0x0038, 0x2060 - JumpIfNot script_080131AC + JumpIfNot script_Object3EPictureBackRoom _0807E864 Call sub_0807F9A4 Call sub_0807DF28 - StartPlayerScript script_080132E4 + StartPlayerScript script_PlayerAtPicture WaitForSomething2 0x00000002 _0807EB28 0x1601 WaitUntilTextboxCloses - StartPlayerScript script_0801330C + StartPlayerScript script_PlayerMoveToPicture WaitForSomething2 0x00000002 _0807E778 0x0004 DoFade5 WaitFor_2 LoadRoomEntityList gUnk_080F5680 - StartPlayerScript script_08013330 + StartPlayerScript script_PlayerSanctuaryIntro WaitForSomething2 0x00000002 MoveEntityToPlayer OffsetEntityPosition 0x0000, 0xfff0 @@ -30,7 +24,7 @@ SCRIPT_START script_080131AC Call sub_080536B8 _0807E864 Call sub_0807DF28 - WaitFor_2 + WaitFor_2 MessageFromTargetPos 0x1602, 0x000c WaitUntilTextboxCloses _0807E5F8 0x00000008 @@ -38,11 +32,11 @@ SCRIPT_START script_080131AC _0807E5F8 0x00000020 WaitForSomething2 0x00000040 PlayBgm BGM_VAATI_THEME - StartPlayerScript script_0801334C + StartPlayerScript script_PlayerDistanceFromVaati WaitForSomething2 0x00000002 _0807E5F8 0x00000020 WaitForSomething2 0x00000040 - StartPlayerScript script_08013378 + StartPlayerScript script_PlayerFaintAgain _0807E5F8 0x00000020 WaitForSomething2 0x00000042 MessageFromTargetPos 0x1603, 0x000c diff --git a/data/scripts/script_080132E4.inc b/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc similarity index 73% rename from data/scripts/script_080132E4.inc rename to data/scripts/cutscene/reveal/script_PlayerAtPicture.inc index 78146e83..9651271d 100644 --- a/data/scripts/script_080132E4.inc +++ b/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080132E4 +@ Player in Sanctuary at picture +SCRIPT_START script_PlayerAtPicture BeginBlock SetEntitySpeed 0x0080 EndBlock diff --git a/data/scripts/script_0801334C.inc b/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc similarity index 73% rename from data/scripts/script_0801334C.inc rename to data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc index f353b8f8..fa626ffc 100644 --- a/data/scripts/script_0801334C.inc +++ b/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0801334C +@ Sanctuary Player move back from Vaati +SCRIPT_START script_PlayerDistanceFromVaati BeginBlock SetEntitySpeed 0x0080 DoPostScriptAction 0x000d diff --git a/data/scripts/script_08013378.inc b/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc similarity index 79% rename from data/scripts/script_08013378.inc rename to data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc index 3c2a52bf..2a7d728c 100644 --- a/data/scripts/script_08013378.inc +++ b/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013378 +@ Sanctuary Player faint from Vaati attack +SCRIPT_START script_PlayerFaintAgain Call sub_0807F1C4 Call sub_0807F2D4 Call sub_0807F1E8 diff --git a/data/scripts/script_0801330C.inc b/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc similarity index 68% rename from data/scripts/script_0801330C.inc rename to data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc index fd756c78..7a621543 100644 --- a/data/scripts/script_0801330C.inc +++ b/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0801330C +@ Player in Sanctuary move towards picture +SCRIPT_START script_PlayerMoveToPicture BeginBlock SetEntitySpeed 0x0080 EndBlock diff --git a/data/scripts/script_080133F8.inc b/data/scripts/cutscene/reveal/script_VaatiSanctuary.inc similarity index 93% rename from data/scripts/script_080133F8.inc rename to data/scripts/cutscene/reveal/script_VaatiSanctuary.inc index d489dda4..a45f9d55 100644 --- a/data/scripts/script_080133F8.inc +++ b/data/scripts/cutscene/reveal/script_VaatiSanctuary.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080133F8 +@ Sanctuary Vaati +SCRIPT_START script_VaatiSanctuary BeginBlock _0807EB44 0x0004 DoPostScriptAction 0x0008 diff --git a/data/scripts/script_08015F3C.inc b/data/scripts/cutscene/takeover/script_GuardTakeover.inc similarity index 84% rename from data/scripts/script_08015F3C.inc rename to data/scripts/cutscene/takeover/script_GuardTakeover.inc index b90cb216..fb77a159 100644 --- a/data/scripts/script_08015F3C.inc +++ b/data/scripts/cutscene/takeover/script_GuardTakeover.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015F3C +@ Western Wood Cutscene Guard +SCRIPT_START script_GuardTakeover BeginBlock SetEntitySpeed 0x0080 _0807EB44 0x0000 diff --git a/data/scripts/script_08015DF0.inc b/data/scripts/cutscene/takeover/script_KingDaltusTakeover.inc similarity index 88% rename from data/scripts/script_08015DF0.inc rename to data/scripts/cutscene/takeover/script_KingDaltusTakeover.inc index 9cc8db37..b9b72d11 100644 --- a/data/scripts/script_08015DF0.inc +++ b/data/scripts/cutscene/takeover/script_KingDaltusTakeover.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015DF0 +@ Western Wood Cutscene King Daltus +SCRIPT_START script_KingDaltusTakeover BeginBlock _0807EB44 0x0004 DoPostScriptAction 0x0000 diff --git a/data/scripts/script_08015F08.inc b/data/scripts/cutscene/takeover/script_MinisterPothoTakeover.inc similarity index 78% rename from data/scripts/script_08015F08.inc rename to data/scripts/cutscene/takeover/script_MinisterPothoTakeover.inc index 2bedafbe..850184e6 100644 --- a/data/scripts/script_08015F08.inc +++ b/data/scripts/cutscene/takeover/script_MinisterPothoTakeover.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015F08 +@ Western Wood Cutscene Minister Potho +SCRIPT_START script_MinisterPothoTakeover BeginBlock _0807EB44 0x0004 DoPostScriptAction 0x0000 diff --git a/data/scripts/script_08015BE8.inc b/data/scripts/cutscene/takeover/script_Object69Takeover.inc similarity index 87% rename from data/scripts/script_08015BE8.inc rename to data/scripts/cutscene/takeover/script_Object69Takeover.inc index e6a52ab6..8dc1eaf9 100644 --- a/data/scripts/script_08015BE8.inc +++ b/data/scripts/cutscene/takeover/script_Object69Takeover.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015BE8 +@ Western Wood OBJECT_69 Cutscene +SCRIPT_START script_Object69Takeover BeginBlock SetEntitySpeed 0x0080 EndBlock @@ -9,7 +10,7 @@ script_08015BF0: Call sub_0807F9A4 Call sub_0807DF28 Call sub_0807FBC4 - StartPlayerScript script_08015C7C + StartPlayerScript script_PlayerAtTakeover WaitForSomething2 0x00000100 CameraTargetPlayer _0807E778 0x0004 diff --git a/data/scripts/script_08015CD4.inc b/data/scripts/cutscene/takeover/script_Object69TakeoverCutscene.inc similarity index 93% rename from data/scripts/script_08015CD4.inc rename to data/scripts/cutscene/takeover/script_Object69TakeoverCutscene.inc index 71dd90ee..61543da9 100644 --- a/data/scripts/script_08015CD4.inc +++ b/data/scripts/cutscene/takeover/script_Object69TakeoverCutscene.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015CD4 +@ Western Wood Cutscene OBJECT_69 in Castle +SCRIPT_START script_Object69TakeoverCutscene BeginBlock _0807F0B4 0x0007 SetEntityPositionRelative 0x0088, 0x0068 diff --git a/data/scripts/script_08015C7C.inc b/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc similarity index 85% rename from data/scripts/script_08015C7C.inc rename to data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc index 48ae9e24..7e98b2b7 100644 --- a/data/scripts/script_08015C7C.inc +++ b/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015C7C +@ Player at Western Wood Cutscene +SCRIPT_START script_PlayerAtTakeover BeginBlock SetEntitySpeed 0x0080 EndBlock diff --git a/data/scripts/script_08015E58.inc b/data/scripts/cutscene/takeover/script_VaatiTakeover.inc similarity index 93% rename from data/scripts/script_08015E58.inc rename to data/scripts/cutscene/takeover/script_VaatiTakeover.inc index 457d8fb6..6762ddeb 100644 --- a/data/scripts/script_08015E58.inc +++ b/data/scripts/cutscene/takeover/script_VaatiTakeover.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015E58 +@ Western Wood Cutscene Vaati +SCRIPT_START script_VaatiTakeover BeginBlock DoPostScriptAction 0x0008 _0807EB44 0x0004 diff --git a/data/scripts/script_08015FA4.inc b/data/scripts/cutscene/takeover/script_ZeldaStoneTakeover.inc similarity index 68% rename from data/scripts/script_08015FA4.inc rename to data/scripts/cutscene/takeover/script_ZeldaStoneTakeover.inc index 3f743ae6..beea2b4a 100644 --- a/data/scripts/script_08015FA4.inc +++ b/data/scripts/cutscene/takeover/script_ZeldaStoneTakeover.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015FA4 +@ Western Wood Cutscene Zelda +SCRIPT_START script_ZeldaStoneTakeover BeginBlock DoPostScriptAction 0x000a Call sub_08066E38 diff --git a/data/scripts/dhc/script_GuardCellLeft.inc b/data/scripts/dhc/script_GuardCellLeft.inc new file mode 100644 index 00000000..a44c7ed5 --- /dev/null +++ b/data/scripts/dhc/script_GuardCellLeft.inc @@ -0,0 +1,18 @@ +@ DHC left Guard at King cell +SCRIPT_START script_GuardCellLeft + BeginBlock + _0807EB44 0x0002 + CallWithArg sub_0807F3D8, 0x00000000 + DoPostScriptAction 0x000a + _0807E9D4 + EndBlock +script_0800E44C: + CheckEntityInteractType + JumpIfNot script_0800E44C + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + MessageNoOverlap 0x2405 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800E44C diff --git a/data/scripts/dhc/script_GuardCellRight.inc b/data/scripts/dhc/script_GuardCellRight.inc new file mode 100644 index 00000000..9f85273b --- /dev/null +++ b/data/scripts/dhc/script_GuardCellRight.inc @@ -0,0 +1,20 @@ +@ DHC right Guard at King cell +SCRIPT_START script_GuardCellRight + BeginBlock + _0807EB44 0x0004 + CallWithArg sub_0807F3D8, 0x00000000 + DoPostScriptAction 0x000a + _0807E9D4 + EndBlock +script_0800E484: + CheckEntityInteractType + JumpIfNot script_0800E484 + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + MessageNoOverlap 0x2407 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800E484 + + diff --git a/data/scripts/dhc/script_GuardStone1.inc b/data/scripts/dhc/script_GuardStone1.inc new file mode 100644 index 00000000..506abd38 --- /dev/null +++ b/data/scripts/dhc/script_GuardStone1.inc @@ -0,0 +1,49 @@ +@ DHC Guard stone +SCRIPT_START script_GuardStone1 + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x000a + CheckLocalFlag 0x0094 + JumpIf script_0800E1D0 + _0807E930 0x0010 + CallWithArg sub_0807F8E8, 0x00000001 + EndBlock +script_0800E176: + CheckRoomFlag 0x0001 + JumpIfNot script_0800E176 + _0807E864 + Wait 0x001e + DoPostScriptAction 0x0010 + PlaySound SFX_1C9 + _0807E930 0x0015 + Wait 0x003c + PlaySound SFX_1CA + DoPostScriptAction 0x0010 + Wait 0x001e + PlaySound SFX_SECRET + Wait 0x0078 + DoPostScriptAction 0x0004 + Wait 0x001e + DoPostScriptAction 0x0000 + _0807EB8C + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + Wait 0x000a + MessageNoOverlap 0x2401 + WaitUntilTextboxCloses + SetLocalFlag 0x0094 +script_0800E1D0: + CallWithArg sub_0807F3D8, 0x00000000 + _0807E9D4 + _0807E878 + EndBlock +script_0800E1E0: + CheckEntityInteractType + JumpIfNot script_0800E1E0 + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + MessageNoOverlap 0x2401 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800E1E0 diff --git a/data/scripts/dhc/script_GuardStone2.inc b/data/scripts/dhc/script_GuardStone2.inc new file mode 100644 index 00000000..d7e613af --- /dev/null +++ b/data/scripts/dhc/script_GuardStone2.inc @@ -0,0 +1,91 @@ +@ DHC guard stone 2 +SCRIPT_START script_GuardStone2 + BeginBlock + SetEntitySpeed 0x0100 + _0807EB44 0x0004 + DoPostScriptAction 0x000a + CheckLocalFlag 0x0073 + JumpIfNot script_0800E232 + _0807E9D4 + SetEntityPositionRelative 0x0070, 0x0168 + _0807EB44 0x0002 + CallWithArg sub_0807F3D8, 0x00000000 + EndBlock + Jump script_0800E32E +script_0800E232: + CheckLocalFlag 0x0095 + JumpIf script_0800E29A + _0807E930 0x0010 + CallWithArg sub_0807F8E8, 0x00000002 + EndBlock +script_0800E24A: + CheckRoomFlag 0x0002 + JumpIfNot script_0800E24A + _0807E864 + Wait 0x001e + DoPostScriptAction 0x0010 + PlaySound SFX_1C9 + _0807E930 0x0015 + Wait 0x003c + PlaySound SFX_1CA + DoPostScriptAction 0x0010 + Wait 0x001e + PlaySound SFX_SECRET + Wait 0x0078 + DoPostScriptAction 0x0004 + Wait 0x001e + DoPostScriptAction 0x0000 + _0807EB8C + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + SetLocalFlag 0x0095 +script_0800E29A: + DoPostScriptAction 0x0000 + CallWithArg sub_0807F3D8, 0x00000000 + _0807E9D4 + _0807E878 + EndBlock +script_0800E2AE: + EndBlock + BeginBlock + CheckEntityInteractType + JumpIf script_0800E312 + CheckLocalFlag 0x0093 + JumpIfNot script_0800E2AE + CheckLocalFlag 0x0094 + JumpIfNot script_0800E2AE + CheckLocalFlag 0x0095 + JumpIfNot script_0800E2AE + _0807E9DC + SetLocalFlag 0x0073 + EndBlock + _0807EB44 0x0000 + CallWithArg sub_0807F3D8, 0x00000004 + _0807EDD4 0x0088, 0x0168 + _0807EB44 0x0006 + CallWithArg sub_0807F3D8, 0x00000004 + _0807EDD4 0x0070, 0x0168 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + _0807E9D4 + Jump script_0800E32E +script_0800E312: + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + EndBlock + MessageNoOverlap 0x2404 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800E2AE +script_0800E32E: + CheckEntityInteractType + JumpIfNot script_0800E32E + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + MessageNoOverlap 0x2403 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800E32E + .2byte 0x0000 diff --git a/data/scripts/dhc/script_KingDaltusStone.inc b/data/scripts/dhc/script_KingDaltusStone.inc new file mode 100644 index 00000000..21346968 --- /dev/null +++ b/data/scripts/dhc/script_KingDaltusStone.inc @@ -0,0 +1,62 @@ +@ DHC King Daltus stone +SCRIPT_START script_KingDaltusStone + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x000a + CheckLocalFlag 0x0071 + JumpIf script_0800E3E8 + CheckLocalFlag 0x0096 + JumpIf script_0800E3BE + _0807E930 0x000c + CallWithArg sub_0807F8E8, 0x00000000 + EndBlock +script_0800E37A: + CheckRoomFlag 0x0000 + JumpIfNot script_0800E37A + _0807E864 + Wait 0x001e + DoPostScriptAction 0x0010 + PlaySound SFX_1C9 + _0807E930 0x000d + Wait 0x003c + PlaySound SFX_1CA + DoPostScriptAction 0x0010 + Wait 0x001e + PlaySound SFX_SECRET + Wait 0x0078 + DoPostScriptAction 0x0004 + Wait 0x001e + DoPostScriptAction 0x0000 + _0807EB74 + SetLocalFlag 0x0096 +script_0800E3BE: + DoPostScriptAction 0x0000 + _0807E9D4 + _0807E878 + EndBlock +script_0800E3C8: + CheckEntityInteractType + JumpIfNot script_0800E3C8 + _0807E864 + _0807EB74 + MessageNoOverlap 0x240c + WaitUntilTextboxCloses + Wait 0x000f + _0807F034 0x0053 + WaitPlayerGetItem + SetLocalFlag 0x0071 + _0807E878 +script_0800E3E8: + _0807E9D4 + _0807E878 + EndBlock +script_0800E3EE: + CheckEntityInteractType + JumpIfNot script_0800E3EE + _0807E864 + _0807EB74 + MessageNoOverlap 0x240d + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800E3EE diff --git a/data/scripts/dhc/script_MinishterPothoStone.inc b/data/scripts/dhc/script_MinishterPothoStone.inc new file mode 100644 index 00000000..b01fa4fa --- /dev/null +++ b/data/scripts/dhc/script_MinishterPothoStone.inc @@ -0,0 +1,48 @@ +@ DHC Minister Potho stone +SCRIPT_START script_MinishterPothoStone + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x000a + CheckLocalFlag 0x0093 + JumpIf script_0800E12E + _0807E930 0x0008 + CallWithArg sub_0807F8E8, 0x00000000 + EndBlock +script_0800E0DE: + CheckRoomFlag 0x0000 + JumpIfNot script_0800E0DE + _0807E864 + Wait 0x001e + DoPostScriptAction 0x0010 + PlaySound SFX_1C9 + _0807E930 0x0009 + Wait 0x003c + PlaySound SFX_1CA + DoPostScriptAction 0x0010 + Wait 0x001e + PlaySound SFX_SECRET + Wait 0x0078 + DoPostScriptAction 0x0004 + Wait 0x001e + DoPostScriptAction 0x0000 + _0807EB8C + _0807EB74 + Wait 0x000a + MessageNoOverlap 0x2402 + WaitUntilTextboxCloses + SetLocalFlag 0x0093 +script_0800E12E: + Call sub_080668F0 + _0807E878 + EndBlock +script_0800E138: + CheckEntityInteractType + JumpIfNot script_0800E138 + _0807E864 + _0807EB74 + MessageNoOverlap 0x2402 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800E138 + .2byte 0x0000 diff --git a/data/scripts/dhc/script_MinisterPothoCell.inc b/data/scripts/dhc/script_MinisterPothoCell.inc new file mode 100644 index 00000000..92639487 --- /dev/null +++ b/data/scripts/dhc/script_MinisterPothoCell.inc @@ -0,0 +1,17 @@ +@ DHC Minister Potho in King cell +SCRIPT_START script_MinisterPothoCell + BeginBlock + _0807EB44 0x0002 + DoPostScriptAction 0x000a + Call sub_080668F0 + EndBlock +script_0800E41A: + CheckEntityInteractType + JumpIfNot script_0800E41A + _0807E864 + _0807EB74 + MessageNoOverlap 0x2406 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800E41A diff --git a/data/scripts/script_0800DB78.inc b/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc similarity index 84% rename from data/scripts/script_0800DB78.inc rename to data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc index 95192f9d..a604a7b8 100644 --- a/data/scripts/script_0800DB78.inc +++ b/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DB78 +@ DHC NPC4E At Zelda after defeating V2 +SCRIPT_START script_Npc4EAfterDefeatingV2 BeginBlock EndBlock script_0800DB7C: @@ -27,12 +28,12 @@ script_0800DBCA: Call sub_0804D810 Call sub_0807F3F8 Wait 0x003c - StartPlayerScript script_0800DDD0 + StartPlayerScript script_PlayerRescuedZelda WaitForSomething2 0x00000004 _0807E5F8 0x00000001 WaitForSomething2 0x00000002 _0807E5F8 0x00000001 - StartPlayerScript script_0800DE00 + StartPlayerScript script_PlayerAfterDefeatingV2 WaitForSomething2 0x00000006 MessageFromTargetPos 0x1643, 0x0002 WaitUntilTextboxCloses diff --git a/data/scripts/script_0800DC4C.inc b/data/scripts/dhc/script_Npc4ECastleCollapsing.inc similarity index 70% rename from data/scripts/script_0800DC4C.inc rename to data/scripts/dhc/script_Npc4ECastleCollapsing.inc index 6e987b02..b1cc0f18 100644 --- a/data/scripts/script_0800DC4C.inc +++ b/data/scripts/dhc/script_Npc4ECastleCollapsing.inc @@ -1,12 +1,13 @@ -SCRIPT_START script_0800DC4C +@ DHC NPC4E Castle collapsing +SCRIPT_START script_Npc4ECastleCollapsing Wait 0x003c PlayBgm BGM_CASTLE_COLLAPSE - StartPlayerScript script_0800DE50 + StartPlayerScript script_PlayerStonesFall WaitForSomething2 0x00000006 _0807EB28 0x1646 WaitUntilTextboxCloses _0807E5F8 0x00000001 - StartPlayerScript script_0800DE2C + StartPlayerScript script_PlayerCastleCollapsing CameraTargetPlayer _0807E778 0x0004 _0807E80C 0x00000000 diff --git a/data/scripts/script_0800A0FC.inc b/data/scripts/dhc/script_Npc4EV3Defeated.inc similarity index 80% rename from data/scripts/script_0800A0FC.inc rename to data/scripts/dhc/script_Npc4EV3Defeated.inc index eadf25ba..d1c4dc6f 100644 --- a/data/scripts/script_0800A0FC.inc +++ b/data/scripts/dhc/script_Npc4EV3Defeated.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A0FC +@ DHC NPC4E V3 defeated +SCRIPT_START script_Npc4EV3Defeated EndBlock script_0800A0FE: CheckGlobalFlag 0x0051 @@ -14,7 +15,7 @@ script_0800A0FE: Call sub_0807F844 _0807E8E4_3 CallWithArg sub_0807F75C, 0x00d00060 - CallWithArg sub_08094AE8, script_0800A160 + CallWithArg sub_08094AE8, script_Object6AV3DefeatedMinishCap PlaySound SFX_APPARATE _0807E778 0x0002 DoFade6 diff --git a/data/scripts/dhc/script_Object69BallAndChainSoldierRoom.inc b/data/scripts/dhc/script_Object69BallAndChainSoldierRoom.inc new file mode 100644 index 00000000..b583efe7 --- /dev/null +++ b/data/scripts/dhc/script_Object69BallAndChainSoldierRoom.inc @@ -0,0 +1,58 @@ +@ DHC OBJECT_69 Towards Vaati in room with Ball&Chain soldier +SCRIPT_START script_Object69BallAndChainSoldierRoom + BeginBlock + Call sub_0807F354 + EndBlock + CheckLocalFlag 0x007c + JumpIf script_0800E4FA +script_0800E4B6: +.ifdef JP + CheckPlayerInRegion 0x0088, 0x0100, 0x0820 +.else +.ifdef EU + CheckPlayerInRegion 0x0088, 0x0100, 0x0820 +.else + CheckPlayerInRegion 0x0088, 0x00f8, 0x0820 +.endif +.endif + JumpIfNot script_0800E4B6 + BeginBlock + _0807E864 +.ifdef JP +.ifndef DEMO_JP + Call SetPlayerEventPriority +.endif +.else +.ifdef EU + Call SetPlayerEventPriority +.endif +.endif + EndBlock + Call sub_0807F3F8 + Wait 0x003c + MessageFromTarget 0x160c + WaitUntilTextboxCloses + Wait 0x001e + MessageFromTarget 0x160d + WaitUntilTextboxCloses + Wait 0x001e + _0807EB28 0x160e + Wait 0x003c + WaitUntilTextboxCloses + BeginBlock + PlayBgm BGM_FIGHT_THEME2 + SetLocalFlag 0x007c +.ifdef JP +.ifndef DEMO_JP + Call ResetPlayerEventPriority +.endif +.else +.ifdef EU + Call ResetPlayerEventPriority +.endif +.endif +script_0800E4FA: + _0807E878 + DoPostScriptAction 0x0006 + EndBlock +SCRIPT_END diff --git a/data/scripts/script_0800DE78.inc b/data/scripts/dhc/script_Object69CastleEscape.inc similarity index 62% rename from data/scripts/script_0800DE78.inc rename to data/scripts/dhc/script_Object69CastleEscape.inc index 3d28d73b..677a4280 100644 --- a/data/scripts/script_0800DE78.inc +++ b/data/scripts/dhc/script_Object69CastleEscape.inc @@ -1,8 +1,9 @@ -SCRIPT_START script_0800DE78 +@ DHC OBJECT_69 trying to escape the collapsing castle +SCRIPT_START script_Object69CastleEscape _0807E864 Call sub_0807F9A4 Call sub_0807DF28 - StartPlayerScript script_0800DEB0 + StartPlayerScript script_PlayerCastleEscape WaitForSomething2 0x00000001 WaitForSomething2 0x00000002 _0807EB28 0x1647 diff --git a/data/scripts/dhc/script_Object69DHC.inc b/data/scripts/dhc/script_Object69DHC.inc new file mode 100644 index 00000000..c83d9c0b --- /dev/null +++ b/data/scripts/dhc/script_Object69DHC.inc @@ -0,0 +1,8 @@ +@ OBJECT_69 somewhere in DHC? +SCRIPT_START script_Object69DHC + BeginBlock + CheckLocalFlag 0x0086 + JumpIfNot script_Object69KillDarkNut + DoPostScriptAction 0x0006 + EndBlock +SCRIPT_END diff --git a/data/scripts/script_0800E544.inc b/data/scripts/dhc/script_Object69DarkNutsRoom.inc similarity index 80% rename from data/scripts/script_0800E544.inc rename to data/scripts/dhc/script_Object69DarkNutsRoom.inc index 1b7a7f95..44712e30 100644 --- a/data/scripts/script_0800E544.inc +++ b/data/scripts/dhc/script_Object69DarkNutsRoom.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800E544 +@ DHC OBJECT_69 Towards Vaati room with Dark Nuts +SCRIPT_START script_Object69DarkNutsRoom BeginBlock EndBlock CheckLocalFlag 0x007e diff --git a/data/scripts/script_0800E504.inc b/data/scripts/dhc/script_Object69KeatonsRoom.inc similarity index 79% rename from data/scripts/script_0800E504.inc rename to data/scripts/dhc/script_Object69KeatonsRoom.inc index 52e85d09..ef855c7e 100644 --- a/data/scripts/script_0800E504.inc +++ b/data/scripts/dhc/script_Object69KeatonsRoom.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800E504 +@ DHC OBJECT_69 Towards Vaati in room with Keatons +SCRIPT_START script_Object69KeatonsRoom BeginBlock EndBlock CheckLocalFlag 0x007d diff --git a/data/scripts/script_0800E5D6.inc b/data/scripts/dhc/script_Object69KillDarkNut.inc similarity index 74% rename from data/scripts/script_0800E5D6.inc rename to data/scripts/dhc/script_Object69KillDarkNut.inc index b2e3dd76..24b83cb0 100644 --- a/data/scripts/script_0800E5D6.inc +++ b/data/scripts/dhc/script_Object69KillDarkNut.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800E5D6 +@ DHC OBJECT_69 Kill first Dark Nut +SCRIPT_START script_Object69KillDarkNut EndBlock script_0800E5D8: CheckLocalFlag 0x0086 diff --git a/data/scripts/script_0800DFB4.inc b/data/scripts/dhc/script_Object69V1Defeated.inc similarity index 78% rename from data/scripts/script_0800DFB4.inc rename to data/scripts/dhc/script_Object69V1Defeated.inc index 99f9742c..5acee128 100644 --- a/data/scripts/script_0800DFB4.inc +++ b/data/scripts/dhc/script_Object69V1Defeated.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DFB4 +@ DHC OBJECT_69 V1 defeated +SCRIPT_START script_Object69V1Defeated EndBlock script_0800DFB6: CheckRoomFlag 0x0001 diff --git a/data/scripts/script_0800E050.inc b/data/scripts/dhc/script_Object69V2Defeated.inc similarity index 71% rename from data/scripts/script_0800E050.inc rename to data/scripts/dhc/script_Object69V2Defeated.inc index 188e9ae2..74a59508 100644 --- a/data/scripts/script_0800E050.inc +++ b/data/scripts/dhc/script_Object69V2Defeated.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800E050 +@ DHC OBJECT_69 After defeating V2 +SCRIPT_START script_Object69V2Defeated BeginBlock Call sub_0807DF28 _0807E864 @@ -11,7 +12,7 @@ SCRIPT_START script_0800E050 SetRoomFlag 0x0000 Wait 0x001e _0807E5F8 0x00000001 - StartPlayerScript script_0800E094 + StartPlayerScript script_PlayerV2Defeated WaitForSomething2 0x00000002 Call sub_0807DF50 _0807E878 diff --git a/data/scripts/script_0800DFE4.inc b/data/scripts/dhc/script_Object69V2Intro.inc similarity index 89% rename from data/scripts/script_0800DFE4.inc rename to data/scripts/dhc/script_Object69V2Intro.inc index e9ffcfb9..a485ffb9 100644 --- a/data/scripts/script_0800DFE4.inc +++ b/data/scripts/dhc/script_Object69V2Intro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DFE4 +@ DHC OBJECT_69 V2 intro +SCRIPT_START script_Object69V2Intro BeginBlock Call sub_0807DF28 _0807E864 @@ -14,6 +15,7 @@ script_0800DFFE: Call sub_0807DF50 _0807E878 script_0800E012: + @ Defeated CheckRoomFlag 0x0002 JumpIfNot script_0800E012 _0807E864 diff --git a/data/scripts/script_0800DA60.inc b/data/scripts/dhc/script_Object69VaatiWithZelda.inc similarity index 92% rename from data/scripts/script_0800DA60.inc rename to data/scripts/dhc/script_Object69VaatiWithZelda.inc index 071becb7..4f71ba77 100644 --- a/data/scripts/script_0800DA60.inc +++ b/data/scripts/dhc/script_Object69VaatiWithZelda.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DA60 +@ DHC OBJECT_69 Vaati with Zelda +SCRIPT_START script_Object69VaatiWithZelda BeginBlock EndBlock script_0800DA64: diff --git a/data/scripts/script_0800A160.inc b/data/scripts/dhc/script_Object6AV3DefeatedMinishCap.inc similarity index 70% rename from data/scripts/script_0800A160.inc rename to data/scripts/dhc/script_Object6AV3DefeatedMinishCap.inc index ecc539d6..6431badd 100644 --- a/data/scripts/script_0800A160.inc +++ b/data/scripts/dhc/script_Object6AV3DefeatedMinishCap.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A160 +@ DHC Vaati defeated OBJECT_6A Minish Cap? +SCRIPT_START script_Object6AV3DefeatedMinishCap BeginBlock SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 @@ -6,7 +7,7 @@ SCRIPT_START script_0800A160 _0807E930 0x0002 SetEntityPositionRelative 0x00b0, 0x0080 CallWithArg sub_0807F98C, 0xff800000 - CallWithArg sub_080960C4, script_0800A1B4 + CallWithArg sub_080960C4, script_Object6AV3DefeatedMinishCap2 EndBlock PlaySound SFX_SPARKLES _0807EF3C 0xff80, 0x0000 diff --git a/data/scripts/script_0800A1B4.inc b/data/scripts/dhc/script_Object6AV3DefeatedMinishCap2.inc similarity index 68% rename from data/scripts/script_0800A1B4.inc rename to data/scripts/dhc/script_Object6AV3DefeatedMinishCap2.inc index 51ac4526..1854ede1 100644 --- a/data/scripts/script_0800A1B4.inc +++ b/data/scripts/dhc/script_Object6AV3DefeatedMinishCap2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A1B4 +@ DHC Vaati defeated OBJECT_6A Minish Cap? +SCRIPT_START script_Object6AV3DefeatedMinishCap2 BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000b diff --git a/data/scripts/script_0800DE00.inc b/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc similarity index 74% rename from data/scripts/script_0800DE00.inc rename to data/scripts/dhc/script_PlayerAfterDefeatingV2.inc index 00579691..56ce6d79 100644 --- a/data/scripts/script_0800DE00.inc +++ b/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DE00 +@ Player at Zelda after defeating V2 +SCRIPT_START script_PlayerAfterDefeatingV2 BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800E600.inc b/data/scripts/dhc/script_PlayerAtDarkNut1.inc similarity index 72% rename from data/scripts/script_0800E600.inc rename to data/scripts/dhc/script_PlayerAtDarkNut1.inc index f5bf0e9e..fd697e62 100644 --- a/data/scripts/script_0800E600.inc +++ b/data/scripts/dhc/script_PlayerAtDarkNut1.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800E600 +@ DHC Player entering yet another Dark Nut fight +SCRIPT_START script_PlayerAtDarkNut1 BeginBlock SetEntitySpeed 0x0140 SetEntityDirection 0x0000 diff --git a/data/scripts/script_0800E62C.inc b/data/scripts/dhc/script_PlayerAtDarkNut2.inc similarity index 76% rename from data/scripts/script_0800E62C.inc rename to data/scripts/dhc/script_PlayerAtDarkNut2.inc index d19fe97c..274f6746 100644 --- a/data/scripts/script_0800E62C.inc +++ b/data/scripts/dhc/script_PlayerAtDarkNut2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800E62C +@ DHC player at a dark nut fight +SCRIPT_START script_PlayerAtDarkNut2 BeginBlock SetEntitySpeed 0x0140 SetEntityDirection 0x0008 diff --git a/data/scripts/script_0800E658.inc b/data/scripts/dhc/script_PlayerAtDarkNut3.inc similarity index 73% rename from data/scripts/script_0800E658.inc rename to data/scripts/dhc/script_PlayerAtDarkNut3.inc index ca0d71bf..8cd1c2c9 100644 --- a/data/scripts/script_0800E658.inc +++ b/data/scripts/dhc/script_PlayerAtDarkNut3.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800E658 +@ DHC Player entering another Dark Nut fight +SCRIPT_START script_PlayerAtDarkNut3 BeginBlock SetEntitySpeed 0x0140 SetEntityDirection 0x0010 diff --git a/data/scripts/script_0800DE2C.inc b/data/scripts/dhc/script_PlayerCastleCollapsing.inc similarity index 69% rename from data/scripts/script_0800DE2C.inc rename to data/scripts/dhc/script_PlayerCastleCollapsing.inc index 12867776..565fce6f 100644 --- a/data/scripts/script_0800DE2C.inc +++ b/data/scripts/dhc/script_PlayerCastleCollapsing.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DE2C +@ Player at Castle Collapsing +SCRIPT_START script_PlayerCastleCollapsing BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800DEB0.inc b/data/scripts/dhc/script_PlayerCastleEscape.inc similarity index 64% rename from data/scripts/script_0800DEB0.inc rename to data/scripts/dhc/script_PlayerCastleEscape.inc index 2c43999a..ea20bf30 100644 --- a/data/scripts/script_0800DEB0.inc +++ b/data/scripts/dhc/script_PlayerCastleEscape.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DEB0 +@ DHC Player trying to escape the collapsing castle +SCRIPT_START script_PlayerCastleEscape BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800DDD0.inc b/data/scripts/dhc/script_PlayerRescuedZelda.inc similarity index 72% rename from data/scripts/script_0800DDD0.inc rename to data/scripts/dhc/script_PlayerRescuedZelda.inc index b2c5c367..d4412b4b 100644 --- a/data/scripts/script_0800DDD0.inc +++ b/data/scripts/dhc/script_PlayerRescuedZelda.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DDD0 +@ Player after turning Zelda back from stone +SCRIPT_START script_PlayerRescuedZelda BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800DE50.inc b/data/scripts/dhc/script_PlayerStonesFall.inc similarity index 66% rename from data/scripts/script_0800DE50.inc rename to data/scripts/dhc/script_PlayerStonesFall.inc index 012e71d1..e1ba8278 100644 --- a/data/scripts/script_0800DE50.inc +++ b/data/scripts/dhc/script_PlayerStonesFall.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DE50 +@ Player after turning Zelda when stones fall +SCRIPT_START script_PlayerStonesFall EndBlock _0807EB44 0x0004 DoPostScriptAction 0x0000 diff --git a/data/scripts/script_0800E094.inc b/data/scripts/dhc/script_PlayerV2Defeated.inc similarity index 75% rename from data/scripts/script_0800E094.inc rename to data/scripts/dhc/script_PlayerV2Defeated.inc index 269c0dcd..62cbbc18 100644 --- a/data/scripts/script_0800E094.inc +++ b/data/scripts/dhc/script_PlayerV2Defeated.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800E094 +@ Player after defeating V2 +SCRIPT_START script_PlayerV2Defeated BeginBlock SetEntitySpeed 0x00c0 EndBlock diff --git a/data/scripts/script_0800DF24.inc b/data/scripts/dhc/script_Vaati1Intro.inc similarity index 92% rename from data/scripts/script_0800DF24.inc rename to data/scripts/dhc/script_Vaati1Intro.inc index 13de03c2..cbf2d189 100644 --- a/data/scripts/script_0800DF24.inc +++ b/data/scripts/dhc/script_Vaati1Intro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DF24 +@ DHC Vaati V1 intro +SCRIPT_START script_Vaati1Intro BeginBlock DoPostScriptAction 0x0008 _0807EB44 0x0004 diff --git a/data/scripts/script_0800DB28.inc b/data/scripts/dhc/script_VaatiWithZelda.inc similarity index 86% rename from data/scripts/script_0800DB28.inc rename to data/scripts/dhc/script_VaatiWithZelda.inc index dc596557..84ff00d4 100644 --- a/data/scripts/script_0800DB28.inc +++ b/data/scripts/dhc/script_VaatiWithZelda.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DB28 +@ DHC Vaati when with Zelda +SCRIPT_START script_VaatiWithZelda BeginBlock DoPostScriptAction 0x0007 _0807EB44 0x0000 diff --git a/data/scripts/script_0800DCAC.inc b/data/scripts/dhc/script_ZeldaAfterDefeatingV2.inc similarity index 94% rename from data/scripts/script_0800DCAC.inc rename to data/scripts/dhc/script_ZeldaAfterDefeatingV2.inc index f0d48c29..0f35ea99 100644 --- a/data/scripts/script_0800DCAC.inc +++ b/data/scripts/dhc/script_ZeldaAfterDefeatingV2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DCAC +@ DHC Zelda after defeating V2 +SCRIPT_START script_ZeldaAfterDefeatingV2 BeginBlock DoPostScriptAction 0x000a Call sub_08066E38 diff --git a/data/scripts/script_0800DED4.inc b/data/scripts/dhc/script_ZeldaCastleEscape.inc similarity index 82% rename from data/scripts/script_0800DED4.inc rename to data/scripts/dhc/script_ZeldaCastleEscape.inc index 3c5f2e5e..c6553c8e 100644 --- a/data/scripts/script_0800DED4.inc +++ b/data/scripts/dhc/script_ZeldaCastleEscape.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DED4 +@ DHC Zelda trying to escape the collapsing castle +SCRIPT_START script_ZeldaCastleEscape BeginBlock _0807EB44 0x0004 DoPostScriptAction 0x0000 diff --git a/data/scripts/script_0800E58C.inc b/data/scripts/dhc/script_ZeldaStoneDHC.inc similarity index 77% rename from data/scripts/script_0800E58C.inc rename to data/scripts/dhc/script_ZeldaStoneDHC.inc index e2f26ffa..04ab862d 100644 --- a/data/scripts/script_0800E58C.inc +++ b/data/scripts/dhc/script_ZeldaStoneDHC.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800E58C +@ Maybe also DHC Zelda stone? -> gUnk_080FCEBC +SCRIPT_START script_ZeldaStoneDHC BeginBlock DoPostScriptAction 0x0007 _0807EB44 0x0000 diff --git a/data/scripts/script_0800DB18.inc b/data/scripts/dhc/script_ZeldaStoneInDHC.inc similarity index 59% rename from data/scripts/script_0800DB18.inc rename to data/scripts/dhc/script_ZeldaStoneInDHC.inc index 6af5c26a..b930c322 100644 --- a/data/scripts/script_0800DB18.inc +++ b/data/scripts/dhc/script_ZeldaStoneInDHC.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DB18 +@ DHC Zelda stone +SCRIPT_START script_ZeldaStoneInDHC BeginBlock DoPostScriptAction 0x000a Call sub_08066E38 diff --git a/data/scripts/script_08012E20.inc b/data/scripts/fow/script_MazaalMacroDefeated.inc similarity index 53% rename from data/scripts/script_08012E20.inc rename to data/scripts/fow/script_MazaalMacroDefeated.inc index 2a6bee16..02a44d56 100644 --- a/data/scripts/script_08012E20.inc +++ b/data/scripts/fow/script_MazaalMacroDefeated.inc @@ -1,10 +1,11 @@ -SCRIPT_START script_08012E20 +@ Mazaal Macro when defeated +SCRIPT_START script_MazaalMacroDefeated BeginBlock _0807E864 EndBlock Wait 0x0078 _0807E908 0x0004 - StartPlayerScript script_08012E44 + StartPlayerScript script_PlayerDefeatedMazaal WaitForSomething2 0x00000002 Wait 0x000c _0807E908 0x0005 diff --git a/data/scripts/script_08012DD8.inc b/data/scripts/fow/script_Object89Mazaal.inc similarity index 57% rename from data/scripts/script_08012DD8.inc rename to data/scripts/fow/script_Object89Mazaal.inc index 21a77241..28c36a5c 100644 --- a/data/scripts/script_08012DD8.inc +++ b/data/scripts/fow/script_Object89Mazaal.inc @@ -1,10 +1,11 @@ -SCRIPT_START script_08012DD8 +@ Mazaal OBJECT_89 +SCRIPT_START script_Object89Mazaal BeginBlock EndBlock _0807E888 Wait 0x0018 _0807E864 - StartPlayerScript script_08012DF8 + StartPlayerScript script_PlayerAtMazaal WaitForSomething2 0x00000001 _0807E908 0x0002 SCRIPT_END diff --git a/data/scripts/script_08012DF8.inc b/data/scripts/fow/script_PlayerAtMazaal.inc similarity index 76% rename from data/scripts/script_08012DF8.inc rename to data/scripts/fow/script_PlayerAtMazaal.inc index 3e47a89b..80b81ae5 100644 --- a/data/scripts/script_08012DF8.inc +++ b/data/scripts/fow/script_PlayerAtMazaal.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08012DF8 +@ Player entering Mazaal +SCRIPT_START script_PlayerAtMazaal BeginBlock _0807EB44 0x0000 SetEntitySpeed 0x0140 diff --git a/data/scripts/script_08012E44.inc b/data/scripts/fow/script_PlayerDefeatedMazaal.inc similarity index 79% rename from data/scripts/script_08012E44.inc rename to data/scripts/fow/script_PlayerDefeatedMazaal.inc index bc828aa9..19afd13a 100644 --- a/data/scripts/script_08012E44.inc +++ b/data/scripts/fow/script_PlayerDefeatedMazaal.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08012E44 +@ Player when defeating Mazaal +SCRIPT_START script_PlayerDefeatedMazaal BeginBlock SetEntitySpeed 0x0140 EndBlock diff --git a/data/scripts/graveyard/script_DampeInside.inc b/data/scripts/graveyard/script_DampeInside.inc new file mode 100644 index 00000000..4f7b7f6f --- /dev/null +++ b/data/scripts/graveyard/script_DampeInside.inc @@ -0,0 +1,20 @@ +@ Graveyard Dampe in house +SCRIPT_START script_DampeInside + CheckEntityInteractType + JumpIfNot script_080095DE + _0807E864 + _0807EB74 + DoPostScriptAction 0x0001 + Call sub_0806BE84 + WaitUntilTextboxCloses + JumpIfNot script_08009622 + PlaySound SFX_109 + _0807F088 0x003c + MessageFromTarget 0x053c + WaitPlayerGetItem + WaitUntilTextboxCloses + _0807F078 0x003c, 0x0001 +script_08009622: + _0807E878 + DoPostScriptAction 0x0000 + Jump script_080095DE diff --git a/data/scripts/graveyard/script_DampeInside2.inc b/data/scripts/graveyard/script_DampeInside2.inc new file mode 100644 index 00000000..fba10fd3 --- /dev/null +++ b/data/scripts/graveyard/script_DampeInside2.inc @@ -0,0 +1,13 @@ +@ Graveyard Dampe in house 2? +SCRIPT_START script_DampeInside2 + BeginBlock + Call sub_0806BE3C + DoPostScriptAction 0x000a + DoPostScriptAction 0x0007 + EndBlock +script_080095DE: + Call sub_0806BF44 + JumpIf script_DampeInside + DoPostScriptAction 0x000b + DoPostScriptAction 0x0006 +SCRIPT_END diff --git a/data/scripts/graveyard/script_DampeOuside.inc b/data/scripts/graveyard/script_DampeOuside.inc new file mode 100644 index 00000000..fd0d90a2 --- /dev/null +++ b/data/scripts/graveyard/script_DampeOuside.inc @@ -0,0 +1,36 @@ +@ Graveyard Dampe outside +SCRIPT_START script_DampeOuside + BeginBlock + DoPostScriptAction 0x000b + DoPostScriptAction 0x0008 + EndBlock +script_08009638: + EndBlock + BeginBlock + CheckGlobalFlag 0x0020 + JumpIfNot script_08009638 + EndBlock +script_08009646: + Call sub_0806BF44 + JumpIf script_08009646 + EndBlock + Call sub_0806BE3C + DoPostScriptAction 0x000a + DoPostScriptAction 0x0007 +script_08009660: + CheckEntityInteractType + JumpIfNot script_08009660 + _0807E864 + _0807EB74 + DoPostScriptAction 0x0001 + Call sub_0806BEC8 + WaitUntilTextboxCloses + JumpIfNot script_0800968E + PlaySound SFX_111 + PlaySound SFX_SECRET + _0807F078 0x003c, 0x0002 + Call sub_0806BEFC +script_0800968E: + _0807E878 + DoPostScriptAction 0x0000 + Jump script_08009660 diff --git a/data/scripts/graveyard/script_GhostBrothers.inc b/data/scripts/graveyard/script_GhostBrothers.inc new file mode 100644 index 00000000..4f734e51 --- /dev/null +++ b/data/scripts/graveyard/script_GhostBrothers.inc @@ -0,0 +1,20 @@ +@ Graveyard GhostBrothers +SCRIPT_START script_GhostBrothers + BeginBlock + Call sub_08065D00 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + DoPostScriptAction 0x0007 + EndBlock +script_0800975A: + CheckEntityInteractType + JumpIfNot script_0800975A + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + Call sub_08065F64 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800975A + .2byte 0x0000 diff --git a/data/scripts/graveyard/script_Gina.inc b/data/scripts/graveyard/script_Gina.inc new file mode 100644 index 00000000..2f0422c7 --- /dev/null +++ b/data/scripts/graveyard/script_Gina.inc @@ -0,0 +1,28 @@ +@ Graveyard Gina +SCRIPT_START script_Gina + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + EndBlock + CheckLocalFlag 0x005f + JumpIf script_0800B94E +script_0800B934: + CheckEntityInteractType + JumpIfNot script_0800B934 + _0807E864 + _0807EB74 + MessageFromTarget 0x3f19 + WaitUntilTextboxCloses + SetLocalFlag 0x005f + _0807E878 + Jump script_0800B934 +script_0800B94E: + CheckEntityInteractType + JumpIfNot script_0800B94E + _0807E864 + _0807EB74 + MessageFromTarget 0x3f1a + WaitUntilTextboxCloses + _0807E878 + Jump script_0800B94E diff --git a/data/scripts/graveyard/script_GraveyardHouseDoor.inc b/data/scripts/graveyard/script_GraveyardHouseDoor.inc new file mode 100644 index 00000000..04e54f7d --- /dev/null +++ b/data/scripts/graveyard/script_GraveyardHouseDoor.inc @@ -0,0 +1,30 @@ +@ Graveyard house door +SCRIPT_START script_GraveyardHouseDoor + BeginBlock + DoPostScriptAction 0x0007 + Jump script_080096FC + CheckGlobalFlag 0x0020 + JumpIf script_080096FC + EndBlock +script_080096AC: + CheckPlayerInRegion 0x0188, 0x01c0, 0x1020 + JumpIfNot script_080096AC + _0807E864 + Call sub_0807F9A4 + Call sub_0807DF28 + StartPlayerScript script_PlayerAtGraveyardHouseDoor + WaitForSomething2 0x00000001 + PlaySound SFX_111 + DoPostScriptAction 0x0008 + LoadRoomEntityList gUnk_080D9048 + Wait 0x000f + PlaySound SFX_111 + DoPostScriptAction 0x0007 +script_080096EC: + CheckGlobalFlag 0x0020 + JumpIfNot script_080096EC + Call sub_0807DF50 + _0807E878 +script_080096FC: + Call sub_0808692C +SCRIPT_END diff --git a/data/scripts/script_0800B5EC.inc b/data/scripts/graveyard/script_GreatFairyArrows.inc similarity index 72% rename from data/scripts/script_0800B5EC.inc rename to data/scripts/graveyard/script_GreatFairyArrows.inc index 2ec4bf11..d78252c3 100644 --- a/data/scripts/script_0800B5EC.inc +++ b/data/scripts/graveyard/script_GreatFairyArrows.inc @@ -1,20 +1,5 @@ -SCRIPT_START script_0800B5EC - BeginBlock - DoPostScriptAction 0x000a - DoPostScriptAction 0x0001 - _0807E9D4 - EndBlock -script_0800B5FA: - CheckEntityInteractType - JumpIfNot script_0800B5FA - _0807E864 - _0807EB74 - MessageNoOverlap 0x2009 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - Jump script_0800B5FA -SCRIPT_START script_0800B614 +@ Graveyard Great Fairy OBJECT_69 +SCRIPT_START script_GreatFairyArrows BeginBlock EndBlock script_0800B618: @@ -23,7 +8,7 @@ script_0800B618: Call sub_08079184 _0807E864 Call sub_0807F9A4 - StartPlayerScript script_0800B7C4 + StartPlayerScript script_PlayerAtGreatFairy WaitForSomething2 0x00000004 SetRoomFlag 0x0000 WaitForSomething2 0x00000004 diff --git a/data/scripts/script_0800D954.inc b/data/scripts/graveyard/script_KingGustav.inc similarity index 89% rename from data/scripts/script_0800D954.inc rename to data/scripts/graveyard/script_KingGustav.inc index 3ddd4c9d..14fceb9f 100644 --- a/data/scripts/script_0800D954.inc +++ b/data/scripts/graveyard/script_KingGustav.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D954 +@ Graveyard King Gustav +SCRIPT_START script_KingGustav BeginBlock DoPostScriptAction 0x0008 Call sub_0807F180 @@ -9,7 +10,7 @@ script_0800D962: _0807E864 Call sub_0807F9A4 Call sub_0807DF28 - StartPlayerScript script_0800DA00 + StartPlayerScript script_PlayerAtKingGustav WaitForSomething2 0x00000001 Wait 0x003c _0807EB44 0x0004 diff --git a/data/scripts/script_08009740.inc b/data/scripts/graveyard/script_Object69CrowStealingKey.inc similarity index 53% rename from data/scripts/script_08009740.inc rename to data/scripts/graveyard/script_Object69CrowStealingKey.inc index ecf4ee25..d4eeac98 100644 --- a/data/scripts/script_08009740.inc +++ b/data/scripts/graveyard/script_Object69CrowStealingKey.inc @@ -1,23 +1,5 @@ -SCRIPT_START script_08009740 - BeginBlock - Call sub_08065D00 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - DoPostScriptAction 0x0007 - EndBlock -script_0800975A: - CheckEntityInteractType - JumpIfNot script_0800975A - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - Call sub_08065F64 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800975A - .2byte 0x0000 -SCRIPT_START script_08009778 +@ Graveyard OBJECT_69 Crow stealing key cutscene +SCRIPT_START script_Object69CrowStealingKey _0807E864 Call sub_0807F9A4 Call sub_0807DF28 @@ -29,7 +11,7 @@ SCRIPT_START script_08009778 Wait 0x0032 _0807E5F8 0x00000002 WaitForSomething2 0x00000004 - StartPlayerScript script_0800987C + StartPlayerScript script_PlayerGetKeyStolen WaitForSomething2 0x00000040 _0807E5F8 0x00000008 WaitForSomething2 0x00000010 diff --git a/data/scripts/script_080098D4.inc b/data/scripts/graveyard/script_Object69GetKeyBack.inc similarity index 89% rename from data/scripts/script_080098D4.inc rename to data/scripts/graveyard/script_Object69GetKeyBack.inc index f35937cc..7c9b1a25 100644 --- a/data/scripts/script_080098D4.inc +++ b/data/scripts/graveyard/script_Object69GetKeyBack.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080098D4 +@ Graveyard OBJECT_69 When getting the key back +SCRIPT_START script_Object69GetKeyBack BeginBlock EndBlock script_080098D8: diff --git a/data/scripts/script_0800DA28.inc b/data/scripts/graveyard/script_Object6AKingsGravestone.inc similarity index 71% rename from data/scripts/script_0800DA28.inc rename to data/scripts/graveyard/script_Object6AKingsGravestone.inc index bfed0909..57b0a88c 100644 --- a/data/scripts/script_0800DA28.inc +++ b/data/scripts/graveyard/script_Object6AKingsGravestone.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DA28 +@ Graveyard OBJECT_6A Kings gravestone? or King ghost representation? +SCRIPT_START script_Object6AKingsGravestone BeginBlock DoPostScriptAction 0x0008 SetEntitySpeed 0x0080 diff --git a/data/scripts/script_080097F0.inc b/data/scripts/graveyard/script_Object97FirstCrow.inc similarity index 74% rename from data/scripts/script_080097F0.inc rename to data/scripts/graveyard/script_Object97FirstCrow.inc index dd31d91e..40e0dd9a 100644 --- a/data/scripts/script_080097F0.inc +++ b/data/scripts/graveyard/script_Object97FirstCrow.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080097F0 +@ Graveyard OBJECT_97 Crow stealing the key? first crow that makes link loose the key +SCRIPT_START script_Object97FirstCrow BeginBlock _0807E930 0x0003 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_08009838.inc b/data/scripts/graveyard/script_Object97SecondCrow.inc similarity index 72% rename from data/scripts/script_08009838.inc rename to data/scripts/graveyard/script_Object97SecondCrow.inc index dab8ef69..c3b86b00 100644 --- a/data/scripts/script_08009838.inc +++ b/data/scripts/graveyard/script_Object97SecondCrow.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009838 +@ Graveyard OBJECT_97 Crow stealing the key? Second crow that picks up the key +SCRIPT_START script_Object97SecondCrow BeginBlock _0807E930 0x0003 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_08009704.inc b/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc similarity index 78% rename from data/scripts/script_08009704.inc rename to data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc index a37836bb..4fbb447d 100644 --- a/data/scripts/script_08009704.inc +++ b/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009704 +@ Player at Graveyard house door +SCRIPT_START script_PlayerAtGraveyardHouseDoor SetEntitySpeed 0x0080 DoPostScriptAction 0x0001 _0807EDD4 0x01a0, 0x01b0 diff --git a/data/scripts/script_0800DA00.inc b/data/scripts/graveyard/script_PlayerAtKingGustav.inc similarity index 72% rename from data/scripts/script_0800DA00.inc rename to data/scripts/graveyard/script_PlayerAtKingGustav.inc index 3c9463ec..92ced678 100644 --- a/data/scripts/script_0800DA00.inc +++ b/data/scripts/graveyard/script_PlayerAtKingGustav.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800DA00 +@ Player at Graveyard King Gustaf +SCRIPT_START script_PlayerAtKingGustav BeginBlock SetEntitySpeed 0x0080 EndBlock diff --git a/data/scripts/script_0800987C.inc b/data/scripts/graveyard/script_PlayerGetKeyStolen.inc similarity index 84% rename from data/scripts/script_0800987C.inc rename to data/scripts/graveyard/script_PlayerGetKeyStolen.inc index b6cf02a9..4848e38c 100644 --- a/data/scripts/script_0800987C.inc +++ b/data/scripts/graveyard/script_PlayerGetKeyStolen.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800987C +@ Player when crow steals key +SCRIPT_START script_PlayerGetKeyStolen PlaySound SFX_PLY_VO6 _0807EB44 0x0004 PlaySound SFX_86 diff --git a/data/scripts/hyruleCastle/script_CastleMaid.inc b/data/scripts/hyruleCastle/script_CastleMaid.inc new file mode 100644 index 00000000..8e3726ba --- /dev/null +++ b/data/scripts/hyruleCastle/script_CastleMaid.inc @@ -0,0 +1,14 @@ +@ Intro Hyrule Castle Maid +SCRIPT_START script_CastleMaid + BeginBlock + _0807E9D4 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + CallWithArg sub_08064644, sub_0806464C + EndBlock +script_0800B8D4: + Wait 0x003c + Call sub_080646A4 + Jump script_0800B8D4 + .2byte 0x0000 diff --git a/data/scripts/hyruleCastle/script_GuardAtEntry.inc b/data/scripts/hyruleCastle/script_GuardAtEntry.inc new file mode 100644 index 00000000..9fa561fc --- /dev/null +++ b/data/scripts/hyruleCastle/script_GuardAtEntry.inc @@ -0,0 +1,20 @@ +@ Hyrule Castle inside Guard at entry +SCRIPT_START script_GuardAtEntry + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + CallWithArg sub_0807F3D8, 0x00000000 + EndBlock +script_08008DD8: + CheckEntityInteractType + JumpIfNot script_08008DD8 + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + Call sub_080643D8 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + CallWithArg sub_0807F3D8, 0x00000000 + Jump script_08008DD8 diff --git a/data/scripts/hyruleCastle/script_KingDaltus.inc b/data/scripts/hyruleCastle/script_KingDaltus.inc new file mode 100644 index 00000000..9c47505b --- /dev/null +++ b/data/scripts/hyruleCastle/script_KingDaltus.inc @@ -0,0 +1,10 @@ +@ Hyrule Castle King Daltus +SCRIPT_START script_KingDaltus + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + Call sub_0806672C + DoPostScriptAction 0x000a + EndBlock + Jump script_0800917C + .2byte 0x0000 diff --git a/data/scripts/hyruleCastle/script_MinisterPotho.inc b/data/scripts/hyruleCastle/script_MinisterPotho.inc new file mode 100644 index 00000000..7cea778c --- /dev/null +++ b/data/scripts/hyruleCastle/script_MinisterPotho.inc @@ -0,0 +1,20 @@ +@ Hyrule Castle Minister Potho +SCRIPT_START script_MinisterPotho + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x0000 +script_0800927E: + Call sub_080668F0 + DoPostScriptAction 0x000a + EndBlock +script_0800928A: + CheckEntityInteractType + JumpIfNot script_0800928A + _0807E864 + _0807EB74 + Call sub_08066904 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800928A + .2byte 0x0000 diff --git a/data/scripts/script_08012D70.inc b/data/scripts/hyruleCastle/script_Object69SanctuaryEntrance.inc similarity index 69% rename from data/scripts/script_08012D70.inc rename to data/scripts/hyruleCastle/script_Object69SanctuaryEntrance.inc index f74d2b21..6837ac18 100644 --- a/data/scripts/script_08012D70.inc +++ b/data/scripts/hyruleCastle/script_Object69SanctuaryEntrance.inc @@ -1,10 +1,11 @@ -SCRIPT_START script_08012D70 +@ Hyrule Castle OBJECT_69 Sanctuary Entrance +SCRIPT_START script_Object69SanctuaryEntrance CheckPlayerInRegion 0x0088, 0x0048, 0x3030 - JumpIfNot script_08012D70 + JumpIfNot script_Object69SanctuaryEntrance _0807E864 Call sub_0807F9A4 Call sub_0807DF28 - StartPlayerScript script_08012DB0 + StartPlayerScript script_PlayerAtSanctuaryEntrance WaitForSomething2 0x00000001 _0807EB28 0x132d WaitUntilTextboxCloses diff --git a/data/scripts/hyruleCastle/script_SmithAtCastle.inc b/data/scripts/hyruleCastle/script_SmithAtCastle.inc new file mode 100644 index 00000000..5aa10b08 --- /dev/null +++ b/data/scripts/hyruleCastle/script_SmithAtCastle.inc @@ -0,0 +1,19 @@ +@ Hyrule Castle Smith +SCRIPT_START script_SmithAtCastle + BeginBlock + _0807EB44 0x0006 + DoPostScriptAction 0x0000 +script_080092B2: + _0807E9D4 + DoPostScriptAction 0x000a + EndBlock +script_080092BA: + CheckEntityInteractType + JumpIfNot script_080092BA + _0807E864 + _0807EB74 + MessageNoOverlap 0x105e + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_080092BA diff --git a/data/scripts/hyruleCastle/script_StoneZelda.inc b/data/scripts/hyruleCastle/script_StoneZelda.inc new file mode 100644 index 00000000..7c9cacd8 --- /dev/null +++ b/data/scripts/hyruleCastle/script_StoneZelda.inc @@ -0,0 +1,17 @@ +@ Hyrule Castle Stone Zelda +SCRIPT_START script_StoneZelda + BeginBlock + DoPostScriptAction 0x000a + Call sub_08066E38 + _0807E9D4 + EndBlock +script_08009300: + CheckEntityInteractType + JumpIfNot script_08009300 + _0807E864 + _0807EB74 + MessageNoOverlap 0x1071 + WaitUntilTextboxCloses + _0807E878 + Jump script_08009300 + .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GardGarden5.inc b/data/scripts/hyruleCastleGarden/script_GardGarden5.inc new file mode 100644 index 00000000..4d280b98 --- /dev/null +++ b/data/scripts/hyruleCastleGarden/script_GardGarden5.inc @@ -0,0 +1,6 @@ +@ Guard in Castle garden? +SCRIPT_START script_GardGarden5 + BeginBlock + _0807EB44 0x0002 + Jump script_080119F6 + .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GuardEntry1.inc b/data/scripts/hyruleCastleGarden/script_GuardEntry1.inc new file mode 100644 index 00000000..36724e50 --- /dev/null +++ b/data/scripts/hyruleCastleGarden/script_GuardEntry1.inc @@ -0,0 +1,20 @@ +@ Intro Hyrule Castle Entrance Guard +SCRIPT_START script_GuardEntry1 + BeginBlock + _0807EB44 0x0006 +script_080119F6: + _0807E9D4 + DoPostScriptAction 0x000a + CallWithArg sub_0807F3D8, 0x00000000 + EndBlock +script_08011A08: + CheckEntityInteractType + JumpIfNot script_08011A08 + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + Call sub_08064428 + WaitUntilTextboxCloses + _0807E878 + Jump script_08011A08 + .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GuardEntry2.inc b/data/scripts/hyruleCastleGarden/script_GuardEntry2.inc new file mode 100644 index 00000000..061b8cb7 --- /dev/null +++ b/data/scripts/hyruleCastleGarden/script_GuardEntry2.inc @@ -0,0 +1,18 @@ +@ Hyrule Castle Guard guarding entry to castle +SCRIPT_START script_GuardEntry2 + BeginBlock + _0807EB44 0x0004 + _0807E9D4 + DoPostScriptAction 0x000a + CallWithArg sub_0807F3D8, 0x00000000 + EndBlock +script_08011A44: + CheckEntityInteractType + JumpIfNot script_08011A44 + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + MessageFromTarget 0x1320 + WaitUntilTextboxCloses + _0807E878 + Jump script_08011A44 diff --git a/data/scripts/hyruleCastleGarden/script_GuardEntry3.inc b/data/scripts/hyruleCastleGarden/script_GuardEntry3.inc new file mode 100644 index 00000000..c1b2985d --- /dev/null +++ b/data/scripts/hyruleCastleGarden/script_GuardEntry3.inc @@ -0,0 +1,38 @@ +@ Hyrule Castle Guard guarding entry to garden +SCRIPT_START script_GuardEntry3 + BeginBlock + _0807EB44 0x0002 + _0807E9D4 + DoPostScriptAction 0x000a + CallWithArg sub_0807F3D8, 0x00000000 + EndBlock +script_08011A7C: + CheckEntityInteractType + JumpIfNot script_08011A7C + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + CallWithArg sub_080644B4, 0x00000006 + JumpIf script_08011AFA + MessageFromTarget 0x1320 + WaitUntilTextboxCloses + _0807E878 + Jump script_08011A7C + .2byte 0x0000 + BeginBlock + _0807EB44 0x0004 + _0807E9D4 + DoPostScriptAction 0x000a + CallWithArg sub_0807F3D8, 0x00000000 + EndBlock +script_08011AC4: + CheckEntityInteractType + JumpIfNot script_08011AC4 + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + MessageFromTarget 0x1322 + WaitUntilTextboxCloses + _0807E878 + Jump script_08011AC4 + diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden1.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden1.inc new file mode 100644 index 00000000..ac2385f2 --- /dev/null +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden1.inc @@ -0,0 +1,6 @@ +@ Guard in Castle garden? +SCRIPT_START script_GuardGarden1 + BeginBlock + _0807EB44 0x0002 + Jump script_0801196A + .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden2.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden2.inc new file mode 100644 index 00000000..72a8627b --- /dev/null +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden2.inc @@ -0,0 +1,6 @@ +@ Guard in Castle garden? +SCRIPT_START script_GuardGarden2 + BeginBlock + _0807EB44 0x0006 + Jump script_0801196A + .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden3.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden3.inc new file mode 100644 index 00000000..c59e34cc --- /dev/null +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden3.inc @@ -0,0 +1,26 @@ +@ Intro Hyrule Castle Garden Guard +SCRIPT_START script_GuardGarden3 + BeginBlock + _0807EB44 0x0004 +script_0801196A: + _0807E9D4 + DoPostScriptAction 0x000a + CallWithArg sub_0807F3D8, 0x00000000 + EndBlock +script_0801197C: + CheckEntityInteractType + JumpIfNot script_0801197C + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + CheckGlobalFlag 0x0015 + JumpIf script_080119A0 + MessageFromTarget 0x103d + Jump script_080119A4 +script_080119A0: + MessageFromTarget 0x103f +script_080119A4: + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0801197C diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden4.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden4.inc new file mode 100644 index 00000000..ce7e7680 --- /dev/null +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden4.inc @@ -0,0 +1,13 @@ +@ Intro Hyrule Castle roaming Guard +SCRIPT_START script_GuardGarden4 + BeginBlock + _0807E9D4 + _0807EB44 0x0004 + DoPostScriptAction 0x000a + CallWithArg sub_0807F3D8, 0x0000000c + EndBlock +script_080119C8: + Wait 0x003c + Call sub_0806407C + Jump script_080119C8 + .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden6.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden6.inc new file mode 100644 index 00000000..244345f9 --- /dev/null +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden6.inc @@ -0,0 +1,6 @@ +@ Guard in Castle garden? +SCRIPT_START script_GuardGarden6 + BeginBlock + _0807EB44 0x0004 + Jump script_080119F6 + .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden7.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden7.inc new file mode 100644 index 00000000..0dd6ee73 --- /dev/null +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden7.inc @@ -0,0 +1,29 @@ +@ Hyrule Castle Guard kicking Link out +SCRIPT_START script_GuardGarden7 + CheckRoomFlag 0x000f + JumpIfNot script_GuardGarden7 + _0807E864 + Call sub_0807F9A4 + Call sub_0807DF28 +script_08011AFA: + MessageFromTargetPos 0x1321, 0x0007 + WaitUntilTextboxCloses +.ifdef JP + SetLocalFlag 0x0011 +.else +.ifdef EU + SetLocalFlag 0x0011 +.else +.ifdef DEMO_JP + SetLocalFlag 0x0011 @ TODO deduplicate +.else + SetLocalFlag 0x0010 +.endif +.endif +.endif + CallWithArg sub_0806DA1C, 0x00000003 + _0807E878 + Call sub_0807DF50 + DoPostScriptAction 0x0006 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_08011B20.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden8.inc similarity index 68% rename from data/scripts/script_08011B20.inc rename to data/scripts/hyruleCastleGarden/script_GuardGarden8.inc index c679db6d..beff4e16 100644 --- a/data/scripts/script_08011B20.inc +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden8.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08011B20 +@ Hyrule Castle Guard kicking Link out of garden +SCRIPT_START script_GuardGarden8 _0807E864 Call sub_0807DF28 MessageFromTargetPos 0x1320, 0x000c diff --git a/data/scripts/script_080100C8.inc b/data/scripts/hyruleTown/script_Anju.inc similarity index 63% rename from data/scripts/script_080100C8.inc rename to data/scripts/hyruleTown/script_Anju.inc index 360411e1..6603d7fb 100644 --- a/data/scripts/script_080100C8.inc +++ b/data/scripts/hyruleTown/script_Anju.inc @@ -1,48 +1,5 @@ -SCRIPT_START script_080100C8 - BeginBlock - Call sub_08061FE4 - Call sub_08061E70 - DoPostScriptAction 0x000a - EndBlock -script_080100DC: - CheckEntityInteractType - JumpIfNot script_080100DC - _0807E864 - _0807EB74 - Call sub_08061FE4 - Call sub_08062048 - WaitUntilTextboxCloses - _0807E878 - Jump script_080100DC - .2byte 0x0000 -SCRIPT_START script_080100FC - BeginBlock - Call sub_08061FE4 - Call sub_08061E70 - DoPostScriptAction 0x000a - EndBlock -script_08010110: - Wait 0x003c - Call sub_08061E90 - Jump script_08010110 - .2byte 0x0000 -SCRIPT_START script_08010120 - BeginBlock - _0807E9D4 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - EndBlock -script_08010132: - CheckEntityInteractType - JumpIfNot script_08010132 - _0807E864 - _0807EB74 - MessageFromTarget 0x4f22 - WaitUntilTextboxCloses - _0807E878 - Jump script_08010132 -SCRIPT_START script_08010148 +@ Hyrule Town Anju +SCRIPT_START script_Anju BeginBlock DoPostScriptAction 0x0001 Call sub_0806C354 diff --git a/data/scripts/hyruleTown/script_AnjuInside.inc b/data/scripts/hyruleTown/script_AnjuInside.inc new file mode 100644 index 00000000..7494a7a3 --- /dev/null +++ b/data/scripts/hyruleTown/script_AnjuInside.inc @@ -0,0 +1,17 @@ +@ Hyrule Town Anju inside +SCRIPT_START script_AnjuInside + BeginBlock + _0807E9D4 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + EndBlock +script_08010132: + CheckEntityInteractType + JumpIfNot script_08010132 + _0807E864 + _0807EB74 + MessageFromTarget 0x4f22 + WaitUntilTextboxCloses + _0807E878 + Jump script_08010132 diff --git a/data/scripts/script_08009EF0.inc b/data/scripts/hyruleTown/script_BedAtSimons.inc similarity index 65% rename from data/scripts/script_08009EF0.inc rename to data/scripts/hyruleTown/script_BedAtSimons.inc index d07f072c..8a2c4116 100644 --- a/data/scripts/script_08009EF0.inc +++ b/data/scripts/hyruleTown/script_BedAtSimons.inc @@ -1,4 +1,7 @@ -SCRIPT_START script_08009EF0 +@ OBJECT_5B Bed at Simons +@ also at Inn +@ also at Links house later +SCRIPT_START script_BedAtSimons BeginBlock SetIntVariable 0x00000000 DoPostScriptAction 0x0001 diff --git a/data/scripts/hyruleTown/script_Beedle.inc b/data/scripts/hyruleTown/script_Beedle.inc new file mode 100644 index 00000000..acbd42c2 --- /dev/null +++ b/data/scripts/hyruleTown/script_Beedle.inc @@ -0,0 +1,90 @@ +@ Hyrule Town Beedle +SCRIPT_START script_Beedle + BeginBlock + _0807EB44 0x0004 + _0807E930 0x0000 + DoPostScriptAction 0x000a + Call sub_0807F348 + EndBlock +script_08010502: + CheckEntityInteractType + JumpIfNot script_08010502 + _0807E864 + Call sub_0807DF28 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000008 + CheckRoomFlag 0x000e + JumpIf script_0801052E + SetRoomFlag 0x000e + MessageNoOverlap 0x2b10 + WaitUntilTextboxCloses +script_0801052E: + Call sub_080634E4 + JumpTable script_08010544, script_08010558, script_08010570, script_08010570, script_0801054C, script_08010564, script_08010570 +script_08010544: + MessageNoOverlap 0x2b0d + Jump script_080105E0 +script_0801054C: + CheckGlobalFlag 0x003d + JumpIfNot script_080105DC + Jump script_08010570 +script_08010558: + CheckGlobalFlag 0x003c + JumpIfNot script_080105DC + Jump script_08010570 +script_08010564: + CheckGlobalFlag 0x003b + JumpIfNot script_080105DC + Jump script_08010570 +script_08010570: + Call sub_080634EC + CallWithArg sub_0807F78C, 0x00000000 + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_080105E0 + CallWithArg sub_0807F7C4, 0x00000000 + JumpIfNot script_080105C4 + _0807E48C 0x0020 + JumpIfNot script_080105CC + Call sub_08063504 + JumpIf script_080105D4 + MessageNoOverlap 0x2b07 + WaitUntilTextboxCloses + CallWithArg sub_0807F800, 0x00000000 + WaitPlayerGetItem + WaitUntilTextboxCloses + MessageNoOverlap 0x2b0c + Jump script_080105E0 +script_080105C4: + MessageNoOverlap 0x2b09 + Jump script_080105E0 +script_080105CC: + MessageNoOverlap 0x2b0a + Jump script_080105E0 +script_080105D4: + MessageNoOverlap 0x2b0b + Jump script_080105E0 +script_080105DC: + MessageNoOverlap 0x2b0e +script_080105E0: + WaitUntilTextboxCloses + Call sub_0807DF50 + _0807E878 + Jump script_08010502 + .2byte 0x0000 + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + EndBlock +script_08010602: + CheckEntityInteractType + JumpIfNot script_08010602 + _0807E864 + _0807EB74 + MessageFromTarget 0x0a01 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + Jump script_08010602 diff --git a/data/scripts/hyruleTown/script_Brocco.inc b/data/scripts/hyruleTown/script_Brocco.inc new file mode 100644 index 00000000..58b41e24 --- /dev/null +++ b/data/scripts/hyruleTown/script_Brocco.inc @@ -0,0 +1,21 @@ +@ (Intro) Hyrule Town Brocco +SCRIPT_START script_Brocco + BeginBlock + _0807EB44 0x0004 + _0807E930 0x0000 + Call sub_080636F4 + DoPostScriptAction 0x000a + Call sub_0807F348 + EndBlock +script_08010470: + CheckEntityInteractType + JumpIfNot script_08010470 + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000004 + Call sub_080636D8 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + CallWithArg sub_0807F3D8, 0x00000000 + Jump script_08010470 diff --git a/data/scripts/hyruleTown/script_CafeGuy.inc b/data/scripts/hyruleTown/script_CafeGuy.inc new file mode 100644 index 00000000..32473eb5 --- /dev/null +++ b/data/scripts/hyruleTown/script_CafeGuy.inc @@ -0,0 +1,32 @@ +@ Hyrule Town Cafe guy +SCRIPT_START script_CafeGuy + BeginBlock + _0807E9D4 + CallWithArg sub_08061FB8, 0x00000001 + SetEntitySpeed 0x0040 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + _0807E930 0x0002 + EndBlock +script_0800ECAC: + _0807EB44 0x0006 + _0807E930 0x0007 + _0807EDD4 0x0028, 0x0050 + Wait 0x001e + _0807EB44 0x0004 + _0807E930 0x0002 + Wait 0x001e + _0807EB44 0x0002 + _0807E930 0x0001 + Wait 0x001e + _0807EB44 0x0002 + _0807E930 0x0005 + _0807EDD4 0x0048, 0x0050 + Wait 0x001e + _0807EB44 0x0004 + _0807E930 0x0002 + Wait 0x001e + _0807EB44 0x0006 + _0807E930 0x0003 + Wait 0x001e + Jump script_0800ECAC diff --git a/data/scripts/script_08014450.inc b/data/scripts/hyruleTown/script_Carlov.inc similarity index 96% rename from data/scripts/script_08014450.inc rename to data/scripts/hyruleTown/script_Carlov.inc index 6888e5d0..7192157a 100644 --- a/data/scripts/script_08014450.inc +++ b/data/scripts/hyruleTown/script_Carlov.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014450 +@ Hyrule Town Carlov +SCRIPT_START script_Carlov BeginBlock _0807E9D4 _0807EB44 0x0000 diff --git a/data/scripts/script_080145E8.inc b/data/scripts/hyruleTown/script_Carlov2.inc similarity index 76% rename from data/scripts/script_080145E8.inc rename to data/scripts/hyruleTown/script_Carlov2.inc index 43290291..f97b9799 100644 --- a/data/scripts/script_080145E8.inc +++ b/data/scripts/hyruleTown/script_Carlov2.inc @@ -1,56 +1,5 @@ -SCRIPT_START script_080145E8 - BeginBlock - DoPostScriptAction 0x0008 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - EndBlock -script_080145F8: -.ifdef EU - CheckPlayerInRegion 0x00a8, 0x0054, 0x080c - JumpIfNot script_080145F8 - ComparePlayerAnimationState 0x0000 - JumpIfNot script_080145F8 - CheckRoomFlag 0x0009 - JumpIf script_08014632 - _0807E864 - Wait 0x0018 - _0807E8E4_3 - _0807EB44 0x0002 - MessageFromTargetPos 0x432b, 0x000c - WaitUntilTextboxCloses - Wait 0x0018 - _0807E878 - Jump script_080145F8 -script_08014632: - CheckRoomFlag 0x0000 - JumpIfNot script_08014632 - _0807E864 - Call sub_0807DF28 -script_08014642: - CheckRoomFlag 0x0009 - JumpIf script_08014642 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - Call sub_0807DF50 - _0807E878 - Jump script_080145F8 -.else - CheckRoomFlag 0x0000 - JumpIfNot script_080145F8 - _0807E864 - Call sub_0807DF28 -script_08014608: - CheckRoomFlag 0x0004 - JumpIf script_08014608 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - Call sub_0807DF50 - _0807E878 - Jump script_080145F8 -.endif - .align 2, 0 - -SCRIPT_START script_08014628 +@ Hyrule Town Carlov +SCRIPT_START script_Carlov2 BeginBlock _0807E9D4 _0807EB44 0x0004 @@ -75,7 +24,7 @@ script_0801463A: _0807EB28 0x431f WaitUntilTextboxCloses script_0801469A: - StartPlayerScript script_080147DC + StartPlayerScript script_PlayerAtCarlov Wait 0x0010 _0807E5F8 0x00000002 WaitForSomething2 0x00000001 @@ -103,7 +52,7 @@ script_080146E2: Jump script_0801473C script_0801472E_2: MessageFromTargetPos 0x432f, 0x000c - Jump script_080147CE @ TODO script_08014816 + Jump script_080147CE .else CheckRoomFlag 0x0004 JumpIf script_08014672 @@ -129,7 +78,7 @@ script_08014672: _0807E864 _0807EB28 0x431f WaitUntilTextboxCloses - StartPlayerScript script_080147DC + StartPlayerScript script_PlayerAtCarlov Wait 0x0010 _0807E5F8 0x00000002 WaitForSomething2 0x00000001 diff --git a/data/scripts/hyruleTown/script_CarlovChest.inc b/data/scripts/hyruleTown/script_CarlovChest.inc new file mode 100644 index 00000000..bb1fe576 --- /dev/null +++ b/data/scripts/hyruleTown/script_CarlovChest.inc @@ -0,0 +1,32 @@ +@ Hyrule Town Picolyte Bottle object in Carlov Chest room +SCRIPT_START script_CarlovChest + BeginBlock + EndBlock +script_080148F4: + CheckRoomFlag 0x0000 + JumpIfNot script_080148F4 + ClearRoomFlag 0x0000 + Call sub_0806E140 + JumpIfNot script_08014932 + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_08014938 + _0807E864 + _0807E5F8 0x00000001 + WaitForSomething2 0x00000002 + Call sub_0806E1E0 + WaitUntilTextboxCloses + Wait 0x0018 + _0807E878 + Jump script_080148F4 +script_08014932: + WaitUntilTextboxCloses + Jump script_08014938 +script_08014938: + _0807E5F8 0x00000004 + WaitForSomething2 0x00000008 + Call sub_0806E1FC + Wait 0x001e + Call sub_0807DF50 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_08014804.inc b/data/scripts/hyruleTown/script_CarlovGame.inc similarity index 66% rename from data/scripts/script_08014804.inc rename to data/scripts/hyruleTown/script_CarlovGame.inc index 98d12714..d13a2afa 100644 --- a/data/scripts/script_08014804.inc +++ b/data/scripts/hyruleTown/script_CarlovGame.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014804 +@ Carlov in Chest room +SCRIPT_START script_CarlovGame BeginBlock _0807E9D4 _0807EB44 0x0000 @@ -65,34 +66,3 @@ script_080148D8: _0807E5F8 0x00000008 Jump script_0801488E .2byte 0x0000 -SCRIPT_START script_080148F0 - BeginBlock - EndBlock -script_080148F4: - CheckRoomFlag 0x0000 - JumpIfNot script_080148F4 - ClearRoomFlag 0x0000 - Call sub_0806E140 - JumpIfNot script_08014932 - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_08014938 - _0807E864 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 - Call sub_0806E1E0 - WaitUntilTextboxCloses - Wait 0x0018 - _0807E878 - Jump script_080148F4 -script_08014932: - WaitUntilTextboxCloses - Jump script_08014938 -script_08014938: - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - Call sub_0806E1FC - Wait 0x001e - Call sub_0807DF50 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_CarlovWon.inc b/data/scripts/hyruleTown/script_CarlovWon.inc new file mode 100644 index 00000000..b8c535ca --- /dev/null +++ b/data/scripts/hyruleTown/script_CarlovWon.inc @@ -0,0 +1,18 @@ +@ Carlov when won +SCRIPT_START script_CarlovWon + BeginBlock + _0807E9D4 + _0807EB44 0x0000 + SetEntitySpeed 0x01c0 + DoPostScriptAction 0x000a + EndBlock + _0807E864 + Call sub_0807DF28 + Call sub_0806E20C + WaitUntilTextboxCloses + Call sub_0806E23C + ClearLocalFlag 0x0093 + ClearLocalFlag 0x0092 + Call sub_0807DF50 + Jump script_080144FC + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Carpenter.inc b/data/scripts/hyruleTown/script_Carpenter.inc new file mode 100644 index 00000000..2ea50d73 --- /dev/null +++ b/data/scripts/hyruleTown/script_Carpenter.inc @@ -0,0 +1,20 @@ +@ Hyrule Town carpeter next to post +SCRIPT_START script_Carpenter + BeginBlock + _0807EB44 0x0004 + CallWithArg sub_080672B0, 0x00000000 + DoPostScriptAction 0x000a + Call sub_08067314 + EndBlock +script_08010AB4: + CheckEntityInteractType + JumpIfNot script_08010AB4 + _0807E864 + _0807EB74 + CallWithArg sub_080672B0, 0x00000004 + Call sub_08067304 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + CallWithArg sub_080672B0, 0x00000000 + Jump script_08010AB4 diff --git a/data/scripts/hyruleTown/script_CatPerson.inc b/data/scripts/hyruleTown/script_CatPerson.inc new file mode 100644 index 00000000..18c982e8 --- /dev/null +++ b/data/scripts/hyruleTown/script_CatPerson.inc @@ -0,0 +1,19 @@ +@ Hyrule Townsperson house with cat +SCRIPT_START script_CatPerson + BeginBlock + Call sub_08061E70 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + Call sub_08061FD8 + EndBlock +script_0800EC6C: + CheckEntityInteractType + JumpIfNot script_0800EC6C + _0807E864 + _0807EB74 + Call sub_08061FD8 + Call sub_08062048 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800EC6C + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_CatPersonTalkingToDogPerson.inc b/data/scripts/hyruleTown/script_CatPersonTalkingToDogPerson.inc new file mode 100644 index 00000000..4b8a69e0 --- /dev/null +++ b/data/scripts/hyruleTown/script_CatPersonTalkingToDogPerson.inc @@ -0,0 +1,20 @@ +@ Hyrule Town Cat person talking to Dog person +SCRIPT_START script_CatPersonTalkingToDogPerson + BeginBlock + Call sub_08061E70 + DoPostScriptAction 0x000a + _0807EB44 0x0002 + Call sub_08061FD8 + EndBlock +script_0800EC2C: + CheckEntityInteractType + JumpIfNot script_0800EC2C + _0807E864 + _0807EB74 + Call sub_08061FD8 + Call sub_08062048 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0002 + Call sub_08061FD8 + Jump script_0800EC2C diff --git a/data/scripts/hyruleTown/script_Din.inc b/data/scripts/hyruleTown/script_Din.inc new file mode 100644 index 00000000..5e4efe0e --- /dev/null +++ b/data/scripts/hyruleTown/script_Din.inc @@ -0,0 +1,61 @@ +@ Hyrule Town Din +SCRIPT_START script_Din + BeginBlock + Call sub_08064828 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + DoPostScriptAction 0x000a + CheckGlobalFlag 0x0047 + JumpIf script_08011CC2 + EndBlock +script_08011C9A: + EndBlock + BeginBlock + CheckEntityInteractType + JumpIfNot script_08011C9A + EndBlock + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + MessageNoOverlap 0x4515 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011C9A +script_08011CC2: + EndBlock + BeginBlock + CheckGlobalFlag 0x002c + JumpIf script_08011C9A + CheckGlobalFlag 0x002d + JumpIf script_08011C9A + CheckEntityInteractType + JumpIfNot script_08011CC2 + EndBlock + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + MessageNoOverlap 0x3105 + WaitUntilTextboxCloses + _0807E3E8 + JumpIf script_08011D0E + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011CC2 +script_08011D00: + CheckEntityInteractType + JumpIfNot script_08011D00 + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 +script_08011D0E: + MessageNoOverlap 0x3108 + WaitUntilTextboxCloses + SetGlobalFlag 0x002b + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011D00 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Din2.inc b/data/scripts/hyruleTown/script_Din2.inc new file mode 100644 index 00000000..b7740421 --- /dev/null +++ b/data/scripts/hyruleTown/script_Din2.inc @@ -0,0 +1,50 @@ +@ Hyrule Town Din when one of them has moved in +SCRIPT_START script_Din2 + BeginBlock + Call sub_08064828 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + DoPostScriptAction 0x000a + EndBlock +script_08011E96: + EndBlock + BeginBlock + CheckGlobalFlag 0x002f + JumpIf script_08011C9A + CheckGlobalFlag 0x0030 + JumpIf script_08011C9A + CheckEntityInteractType + JumpIfNot script_08011E96 + EndBlock + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + CheckGlobalFlag 0x0048 + JumpIf script_08011ECC + MessageNoOverlap 0x4524 + WaitUntilTextboxCloses + Jump script_08011ED8 +script_08011ECC: + MessageNoOverlap 0x3111 + WaitUntilTextboxCloses + _0807E3E8 + JumpIf script_08011EF4 +script_08011ED8: + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011E96 +script_08011EE6: + CheckEntityInteractType + JumpIfNot script_08011EE6 + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 +script_08011EF4: + MessageNoOverlap 0x3114 + WaitUntilTextboxCloses + SetGlobalFlag 0x002e + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011EE6 diff --git a/data/scripts/hyruleTown/script_DinAlone.inc b/data/scripts/hyruleTown/script_DinAlone.inc new file mode 100644 index 00000000..0a722830 --- /dev/null +++ b/data/scripts/hyruleTown/script_DinAlone.inc @@ -0,0 +1,20 @@ +@ Din completely alone +SCRIPT_START script_DinAlone + BeginBlock + Call sub_08064828 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + DoPostScriptAction 0x000a + EndBlock +script_080121DE: + CheckEntityInteractType + JumpIfNot script_080121DE + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + MessageNoOverlap 0x4527 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_080121DE diff --git a/data/scripts/hyruleTown/script_DinMovedIn.inc b/data/scripts/hyruleTown/script_DinMovedIn.inc new file mode 100644 index 00000000..e51fe95b --- /dev/null +++ b/data/scripts/hyruleTown/script_DinMovedIn.inc @@ -0,0 +1,59 @@ +@ Hyrule Town Din moved in +SCRIPT_START script_DinMovedIn + BeginBlock + Call sub_08064828 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + DoPostScriptAction 0x000a + EndBlock +script_0801203A: + CheckEntityInteractType + JumpIfNot script_0801203A + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + CheckLocalFlag 0x0094 + JumpIf script_0801205E + MessageNoOverlap 0x3122 + WaitUntilTextboxCloses + SetLocalFlag 0x0094 + Jump script_0801209E +script_0801205E: + _0807E48C 0x0031 + JumpIfNot script_08012070 + MessageNoOverlap 0x3123 + WaitUntilTextboxCloses + Jump script_0801209E +script_08012070: + MessageNoOverlap 0x3124 + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_0801209E + _0807E48C 0x0020 + JumpIfNot script_0801209A + MessageNoOverlap 0x3125 + WaitUntilTextboxCloses + _0807F034 0x0031 + WaitPlayerGetItem +.ifdef USA + Call sub_0807FC24 +.else +.ifdef DEMO_USA + Call sub_0807FC24 +.else +.ifdef DEMO_JP + Call sub_0807FC24 +.endif +.endif +.endif + Jump script_0801209E +script_0801209A: + MessageNoOverlap 0x3127 +script_0801209E: + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_0801203A + .align 2, 0 + diff --git a/data/scripts/hyruleTown/script_DogPersonInCatHouse.inc b/data/scripts/hyruleTown/script_DogPersonInCatHouse.inc new file mode 100644 index 00000000..a26f16c7 --- /dev/null +++ b/data/scripts/hyruleTown/script_DogPersonInCatHouse.inc @@ -0,0 +1,27 @@ +@ Hyrule Town Dog person talking to Cat person +SCRIPT_START script_DogPersonInCatHouse + BeginBlock + Call sub_08061E70 + DoPostScriptAction 0x000a + _0807EB44 0x0006 + Call sub_08061FD8 + EndBlock +script_0800EB7C: + CheckEntityInteractType + JumpIfNot script_0800EB7C + _0807E864 + _0807EB74 + Call sub_08061FD8 + Call sub_08062048 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0006 + Call sub_08061FD8 + Jump script_0800EB7C + BeginBlock + Call sub_08061E70 + DoPostScriptAction 0x000a + _0807EB44 0x0002 + Call sub_08061FD8 + EndBlock + Jump script_0800EBF4 diff --git a/data/scripts/hyruleTown/script_DrLeft.inc b/data/scripts/hyruleTown/script_DrLeft.inc new file mode 100644 index 00000000..ae71d84b --- /dev/null +++ b/data/scripts/hyruleTown/script_DrLeft.inc @@ -0,0 +1,27 @@ +@ Dr Left +SCRIPT_START script_DrLeft + BeginBlock + _0807E9D4 + Call sub_0806C09C + DoPostScriptAction 0x000a + _0807E930 0x0000 + _0807EB44 0x0004 + EndBlock +script_0800EABC: + CheckEntityInteractType + JumpIfNot script_0800EABC + BeginBlock + _0807E864 + _0807EB74 + CallWithArg sub_0806C028, 0x00000004 + EndBlock +script_0800EAD4: + Call sub_0806C00C + JumpIfNot script_0800EAD4 + _0807E930 0x0008 + Call sub_0806C038 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + _0807E930 0x0000 + Jump script_0800EABC diff --git a/data/scripts/script_0800EF40.inc b/data/scripts/hyruleTown/script_DrLeftDoor.inc similarity index 83% rename from data/scripts/script_0800EF40.inc rename to data/scripts/hyruleTown/script_DrLeftDoor.inc index f10aba5e..138575a6 100644 --- a/data/scripts/script_0800EF40.inc +++ b/data/scripts/hyruleTown/script_DrLeftDoor.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800EF40 +@ Hyrule Town door closed DrLeft +SCRIPT_START script_DrLeftDoor BeginBlock DoPostScriptAction 0x0007 CheckGlobalFlag 0x001f @@ -12,7 +13,7 @@ script_0800EF50: JumpIf script_0800EF82 MessageFromTarget 0x4d01 WaitUntilTextboxCloses - StartPlayerScript script_0800EF9C + StartPlayerScript script_PlayerAtDrLeftDoor WaitForSomething2 0x00000001 Wait 0x000f _0807E878 diff --git a/data/scripts/hyruleTown/script_Emma.inc b/data/scripts/hyruleTown/script_Emma.inc new file mode 100644 index 00000000..8e842540 --- /dev/null +++ b/data/scripts/hyruleTown/script_Emma.inc @@ -0,0 +1,35 @@ +@ Hyrule Town Emma +SCRIPT_START script_Emma + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a + _0807EB44 0x0000 + EndBlock +script_0800E832: + CheckEntityInteractType + JumpIfNot script_0800E832 + _0807E864 + _0807EB44 0x0004 + BeginBlock + MessageFromTarget 0x4501 + CallWithArg sub_0807F854, 0x00010032 + CallWithArg sub_0807F854, 0x000200c8 + CallWithArg sub_0807F854, 0x00030190 + EndBlock + WaitUntilTextboxCloses + _0807EB38 + JumpTable script_0800E910, script_RentSmallRoom, script_RentRegularRoom, script_0800E872 +script_0800E872: @ Rent large room + BeginBlock + MessageFromTarget 0x4505 + CallWithArg sub_0807F854, 0x00010190 + EndBlock + WaitUntilTextboxCloses + HasRupees 0x0190 + JumpIfNot script_EmmaNotEnoughRupees + ModRupees 0xfe70 + SetLocalFlag 0x0091 + MessageFromTarget 0x4508 + WaitUntilTextboxCloses + Call sub_0806C578 +SCRIPT_END diff --git a/data/scripts/hyruleTown/script_EmmaNotEnoughRupees.inc b/data/scripts/hyruleTown/script_EmmaNotEnoughRupees.inc new file mode 100644 index 00000000..c3a59c92 --- /dev/null +++ b/data/scripts/hyruleTown/script_EmmaNotEnoughRupees.inc @@ -0,0 +1,11 @@ +@ Hyrule Town Inn Emma not enough rupees +SCRIPT_START script_EmmaNotEnoughRupees + MessageFromTarget 0x4507 + Jump script_0800E914 +script_0800E910: @ Rent no room + MessageFromTarget 0x4509 +script_0800E914: + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0000 + Jump script_0800E832 diff --git a/data/scripts/hyruleTown/script_Farore.inc b/data/scripts/hyruleTown/script_Farore.inc new file mode 100644 index 00000000..6ab0b9c9 --- /dev/null +++ b/data/scripts/hyruleTown/script_Farore.inc @@ -0,0 +1,61 @@ +@ Hyrule Town Farore +SCRIPT_START script_Farore + BeginBlock + Call sub_08064A28 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + DoPostScriptAction 0x000a + CheckGlobalFlag 0x0047 + JumpIf script_08011E1A + EndBlock +script_08011DF2: + EndBlock + BeginBlock + CheckEntityInteractType + JumpIfNot script_08011DF2 + EndBlock + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + MessageNoOverlap 0x4514 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011DF2 +script_08011E1A: + EndBlock + BeginBlock + CheckGlobalFlag 0x002b + JumpIf script_08011DF2 + CheckGlobalFlag 0x002c + JumpIf script_08011DF2 + CheckEntityInteractType + JumpIfNot script_08011E1A + EndBlock + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + MessageNoOverlap 0x3104 + WaitUntilTextboxCloses + _0807E3E8 + JumpIf script_08011E66 + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011E1A +script_08011E58: + CheckEntityInteractType + JumpIfNot script_08011E58 + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 +script_08011E66: + MessageNoOverlap 0x3107 + WaitUntilTextboxCloses + SetGlobalFlag 0x002d + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011E58 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Farore2.inc b/data/scripts/hyruleTown/script_Farore2.inc new file mode 100644 index 00000000..fcb12dfe --- /dev/null +++ b/data/scripts/hyruleTown/script_Farore2.inc @@ -0,0 +1,52 @@ +@ Hyrule Town Farore when one of them has moved in +SCRIPT_START script_Farore2 + BeginBlock + Call sub_08064A28 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + DoPostScriptAction 0x000a + EndBlock +script_08011FAE: + EndBlock + BeginBlock + CheckGlobalFlag 0x002e + JumpIf script_08011DF2 + CheckGlobalFlag 0x002f + JumpIf script_08011DF2 + CheckEntityInteractType + JumpIfNot script_08011FAE + EndBlock + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + CheckGlobalFlag 0x0048 + JumpIf script_08011FE4 + MessageNoOverlap 0x4523 + WaitUntilTextboxCloses + Jump script_08011FF0 +script_08011FE4: + MessageNoOverlap 0x3110 + WaitUntilTextboxCloses + _0807E3E8 + JumpIf script_0801200C +script_08011FF0: + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011FAE +script_08011FFE: + CheckEntityInteractType + JumpIfNot script_08011FFE + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 +script_0801200C: + MessageNoOverlap 0x3113 + WaitUntilTextboxCloses + SetGlobalFlag 0x0030 + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011FFE + + diff --git a/data/scripts/hyruleTown/script_FaroreAlone.inc b/data/scripts/hyruleTown/script_FaroreAlone.inc new file mode 100644 index 00000000..294915d9 --- /dev/null +++ b/data/scripts/hyruleTown/script_FaroreAlone.inc @@ -0,0 +1,20 @@ +@ Farore completely alone +SCRIPT_START script_FaroreAlone + BeginBlock + Call sub_08064A28 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + DoPostScriptAction 0x000a + EndBlock +script_0801224E: + CheckEntityInteractType + JumpIfNot script_0801224E + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + MessageNoOverlap 0x4526 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_0801224E diff --git a/data/scripts/hyruleTown/script_FaroreMovedIn.inc b/data/scripts/hyruleTown/script_FaroreMovedIn.inc new file mode 100644 index 00000000..1d3e38a0 --- /dev/null +++ b/data/scripts/hyruleTown/script_FaroreMovedIn.inc @@ -0,0 +1,59 @@ +@ Farore moved in +SCRIPT_START script_FaroreMovedIn + BeginBlock + Call sub_08064A28 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + DoPostScriptAction 0x000a + EndBlock +script_08012152: + CheckEntityInteractType + JumpIfNot script_08012152 + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + CheckLocalFlag 0x0096 + JumpIf script_08012176 + MessageNoOverlap 0x311c + WaitUntilTextboxCloses + SetLocalFlag 0x0096 + Jump script_080121B6 +script_08012176: + _0807E48C 0x0030 + JumpIfNot script_08012188 + MessageNoOverlap 0x311d + WaitUntilTextboxCloses + Jump script_080121B6 +script_08012188: + MessageNoOverlap 0x311e + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_080121B6 + _0807E48C 0x0020 + JumpIfNot script_080121B2 + MessageNoOverlap 0x311f + WaitUntilTextboxCloses + _0807F034 0x0030 + WaitPlayerGetItem +.ifdef USA + Call sub_0807FC24 +.else +.ifdef DEMO_USA + Call sub_0807FC24 +.else +.ifdef DEMO_JP + Call sub_0807FC24 +.endif +.endif +.endif + Jump script_080121B6 +script_080121B2: + MessageNoOverlap 0x3121 +script_080121B6: + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08012152 + .align 2, 0 + diff --git a/data/scripts/hyruleTown/script_FirstHouseDoor.inc b/data/scripts/hyruleTown/script_FirstHouseDoor.inc new file mode 100644 index 00000000..b30659fa --- /dev/null +++ b/data/scripts/hyruleTown/script_FirstHouseDoor.inc @@ -0,0 +1,26 @@ +@ Hyrule Town closed door for first empty house +SCRIPT_START script_FirstHouseDoor + BeginBlock + DoPostScriptAction 0x0007 + CheckKinstoneFused 0x001b + JumpIf script_0800EF92 + EndBlock +script_0801091C: + Call sub_080869A4 + JumpIfNot script_0801091C + _0807E864 + Call sub_0807F9A4 + Call sub_0807DF28 + CheckRoomFlag 0x0001 + JumpIf script_08010942 + _0807EB28 0x0b62 + WaitUntilTextboxCloses +script_08010942: + StartPlayerScript script_PlayerAtInnDoor + WaitForSomething2 0x00000001 + Call sub_0807DF50 + _0807E878 + Jump script_0801091C + Call sub_0808692C +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_ForestMinish11.inc b/data/scripts/hyruleTown/script_ForestMinish11.inc new file mode 100644 index 00000000..7cbb90db --- /dev/null +++ b/data/scripts/hyruleTown/script_ForestMinish11.inc @@ -0,0 +1,21 @@ +@ Forest Minish above cafe +SCRIPT_START script_ForestMinish11 + BeginBlock + Call sub_08060090 + DoPostScriptAction 0x000a + EndBlock +script_0800E6BE: + BeginBlock + CheckEntityInteractType + JumpIf script_0800E6D2 + Call sub_08060158 + EndBlock + Jump script_0800E6BE +script_0800E6D2: + EndBlock + _0807E864 + Call sub_0806025C + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800E6BE diff --git a/data/scripts/hyruleTown/script_Ghost.inc b/data/scripts/hyruleTown/script_Ghost.inc new file mode 100644 index 00000000..d8e0119a --- /dev/null +++ b/data/scripts/hyruleTown/script_Ghost.inc @@ -0,0 +1,19 @@ +@ Hyrule Town Ghost +SCRIPT_START script_Ghost + BeginBlock + DoPostScriptAction 0x0007 + _0807E9D4 + DoPostScriptAction 0x000a + _0807EB44 0x0006 + DoPostScriptAction 0x0000 + EndBlock +script_0801027A: + CheckEntityInteractType + JumpIfNot script_0801027A + _0807E864 + _0807EB74 + Call sub_08065F64 + WaitUntilTextboxCloses + _0807E878 + Jump script_0801027A + .align 2 diff --git a/data/scripts/hyruleTown/script_GormanCats.inc b/data/scripts/hyruleTown/script_GormanCats.inc new file mode 100644 index 00000000..c8d96d9e --- /dev/null +++ b/data/scripts/hyruleTown/script_GormanCats.inc @@ -0,0 +1,38 @@ +@ Gorman at third house +SCRIPT_START script_GormanCats + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + _0807E9D4 + SetEntitySpeed 0x0040 + EndBlock +script_0800FE5A: + Call sub_08069AA8 +script_0800FE60: + Call sub_080699AC +script_0800FE66: + EndBlock + BeginBlock + Call sub_08069ACC + JumpIf script_0800FE7E + _0807EE30 + JumpIfNot script_0800FE66 + Jump script_0800FE5A +script_0800FE7E: + EndBlock + _0807EB44 0x0002 + DoPostScriptAction 0x0000 + Wait 0x001e + _0807EB44 0x0006 + DoPostScriptAction 0x0000 + Wait 0x001e + _0807EB44 0x0002 + DoPostScriptAction 0x0000 + Wait 0x001e + _0807EB44 0x0006 + DoPostScriptAction 0x0000 + Wait 0x003c + Call sub_08069A84 + Jump script_0800FE60 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_GormanFirstHouse.inc b/data/scripts/hyruleTown/script_GormanFirstHouse.inc new file mode 100644 index 00000000..013e6afe --- /dev/null +++ b/data/scripts/hyruleTown/script_GormanFirstHouse.inc @@ -0,0 +1,19 @@ +@ Hyrule Town Gorman at first house +@ and at second house when ready to sell +SCRIPT_START script_GormanFirstHouse + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + _0807E9D4 + EndBlock +script_0800FDB2: + CheckEntityInteractType + JumpIfNot script_0800FDB2 + _0807E864 + _0807EB74 + Call sub_08069888 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800FDB2 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_GormanSecondHouse.inc b/data/scripts/hyruleTown/script_GormanSecondHouse.inc new file mode 100644 index 00000000..f75d0452 --- /dev/null +++ b/data/scripts/hyruleTown/script_GormanSecondHouse.inc @@ -0,0 +1,38 @@ +@ Hyrule Town Gorman at second house +SCRIPT_START script_GormanSecondHouse + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + _0807E9D4 + SetEntitySpeed 0x0040 + EndBlock +script_0800FDE2: + Call sub_08069A60 +script_0800FDE8: + Call sub_0806991C +script_0800FDEE: + EndBlock + BeginBlock + Call sub_08069ACC + JumpIf script_0800FE06 + _0807EE30 + JumpIfNot script_0800FDEE + Jump script_0800FDE2 +script_0800FE06: + EndBlock + _0807EB44 0x0002 + DoPostScriptAction 0x0000 + Wait 0x001e + _0807EB44 0x0006 + DoPostScriptAction 0x0000 + Wait 0x001e + _0807EB44 0x0002 + DoPostScriptAction 0x0000 + Wait 0x001e + _0807EB44 0x0006 + DoPostScriptAction 0x0000 + Wait 0x003c + Call sub_08069A3C + Jump script_0800FDE8 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_GoronMerchant.inc b/data/scripts/hyruleTown/script_GoronMerchant.inc new file mode 100644 index 00000000..014193bf --- /dev/null +++ b/data/scripts/hyruleTown/script_GoronMerchant.inc @@ -0,0 +1,87 @@ +@ Hyrule Town Goron Merchant +SCRIPT_START script_GoronMerchant + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + DoPostScriptAction 0x0007 + _0807E9D4 + Call sub_0807F348 + Call sub_08069684 + EndBlock +script_080107F2: + EndBlock + BeginBlock + CheckPlayerInRegion2 0x3030 + JumpIfNot script_080107F2 + Call sub_080696B0 +script_08010804: + EndBlock + BeginBlock + CheckPlayerInRegion2 0x3030 + JumpIfNot script_080107F2 + HasRoomItemForSale + JumpIf script_08010860 + CheckEntityInteractType + JumpIfNot script_08010804 + EndBlock + _0807E864 + Call sub_0807DF28 + _0807EB74 + CheckGlobalFlag 0x0042 + JumpIfNot script_08010858 + CheckGlobalFlag 0x0043 + JumpIfNot script_08010858 + CheckGlobalFlag 0x0044 + JumpIfNot script_08010858 + CheckGlobalFlag 0x0041 + JumpIfNot script_08010850 + MessageNoOverlap 0x3f39 + Jump script_080108BA +script_08010850: + MessageNoOverlap 0x2c1b + Jump script_080108BA +script_08010858: + MessageNoOverlap 0x2c1a + Jump script_080108BA +script_08010860: + EndBlock + _0807E864 + Call sub_0807DF38 + _0807EB74 + Call sub_08069660 + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_080108B2 + Call GoronMerchant_TryToBuyKinstone + JumpIfNot script_080108B2 + WaitPlayerGetItem + WaitUntilTextboxCloses + _0807EB8C + CheckGlobalFlag 0x0042 + JumpIfNot script_080108AA + CheckGlobalFlag 0x0043 + JumpIfNot script_080108AA + CheckGlobalFlag 0x0044 + JumpIfNot script_080108AA + MessageNoOverlap 0x2c21 + Jump script_080108B2 +script_080108AA: +.ifdef USA + SetLocalFlag 0x00fa +.else +.ifdef DEMO_USA + SetLocalFlag 0x00fa +.endif +.endif + MessageNoOverlap 0x2c20 +script_080108B2: + WaitUntilTextboxCloses + Call sub_0807F83C +script_080108BA: + WaitUntilTextboxCloses + Call sub_0807DF50 + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + Jump script_08010804 diff --git a/data/scripts/script_0800FF18.inc b/data/scripts/hyruleTown/script_GuardEast.inc similarity index 90% rename from data/scripts/script_0800FF18.inc rename to data/scripts/hyruleTown/script_GuardEast.inc index eee6feb4..9bf0316a 100644 --- a/data/scripts/script_0800FF18.inc +++ b/data/scripts/hyruleTown/script_GuardEast.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800FF18 +@ Hyrule Town Guard east +SCRIPT_START script_GuardEast BeginBlock CheckInventory1 0x0012 JumpIf script_0800FF6A diff --git a/data/scripts/hyruleTown/script_GuardLibrary.inc b/data/scripts/hyruleTown/script_GuardLibrary.inc new file mode 100644 index 00000000..7944844b --- /dev/null +++ b/data/scripts/hyruleTown/script_GuardLibrary.inc @@ -0,0 +1,17 @@ +@ Hyrule Town Guard closing Library +SCRIPT_START script_GuardLibrary + BeginBlock + _0807E9D4 + _0807EB44 0x0004 + DoPostScriptAction 0x000a + CallWithArg sub_0807F3D8, 0x00000000 + EndBlock +script_08010410: + CheckEntityInteractType + JumpIfNot script_08010410 + _0807E864 + _0807EB74 + Call sub_08064428 + WaitUntilTextboxCloses + _0807E878 + Jump script_08010410 diff --git a/data/scripts/hyruleTown/script_GuardNorth.inc b/data/scripts/hyruleTown/script_GuardNorth.inc new file mode 100644 index 00000000..81e2d9af --- /dev/null +++ b/data/scripts/hyruleTown/script_GuardNorth.inc @@ -0,0 +1,29 @@ +@ Hyrule Town Guard north +SCRIPT_START script_GuardNorth + BeginBlock + CheckInventory1 0x0012 + JumpIf script_0800FF0E + _0807EB44 0x0006 + _0807E9D4 + CallWithArg sub_0807F3D8, 0x00000008 + EndBlock +script_0800FED8: + EndBlock + BeginBlock + DoPostScriptAction 0x000b + Call sub_080642B8 + CheckEntityInteractType + JumpIfNot script_0800FED8 + EndBlock + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000008 + Call sub_08064428 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800FED8 +script_0800FF0E: + DoPostScriptAction 0x0008 + DoPostScriptAction 0x0006 +SCRIPT_END diff --git a/data/scripts/hyruleTown/script_GuardPatrolling.inc b/data/scripts/hyruleTown/script_GuardPatrolling.inc new file mode 100644 index 00000000..df0a7b81 --- /dev/null +++ b/data/scripts/hyruleTown/script_GuardPatrolling.inc @@ -0,0 +1,13 @@ +@ Hyrule Town Guard patrolling +SCRIPT_START script_GuardPatrolling + BeginBlock + _0807E9D4 + _0807EB44 0x0004 + DoPostScriptAction 0x000a + CallWithArg sub_0807F3D8, 0x00000004 + EndBlock +script_080103E8: + Wait 0x003c + Call sub_0806407C + Jump script_080103E8 + .2byte 0x0000 diff --git a/data/scripts/script_0800FF74.inc b/data/scripts/hyruleTown/script_GuardWest.inc similarity index 98% rename from data/scripts/script_0800FF74.inc rename to data/scripts/hyruleTown/script_GuardWest.inc index 4da89980..3792ad68 100644 --- a/data/scripts/script_0800FF74.inc +++ b/data/scripts/hyruleTown/script_GuardWest.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800FF74 +@ Hyrule Town Guard west +SCRIPT_START script_GuardWest BeginBlock _0807EB44 0x0002 _0807E9D4 diff --git a/data/scripts/hyruleTown/script_HurdyGurdyMan.inc b/data/scripts/hyruleTown/script_HurdyGurdyMan.inc new file mode 100644 index 00000000..0c01f429 --- /dev/null +++ b/data/scripts/hyruleTown/script_HurdyGurdyMan.inc @@ -0,0 +1,20 @@ +@ Hyrule Town Cafe HurdyGurdyMan +SCRIPT_START script_HurdyGurdyMan + BeginBlock + DoPostScriptAction 0x000a + _0807EB44 0x0004 + _0807E930 0x0008 + Call sub_0806E440 + EndBlock +script_08010BCA: + CheckEntityInteractType + JumpIfNot script_08010BCA + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + Call sub_0806E418 + WaitUntilTextboxCloses + _0807E878 + _0807E930 0x0008 + Jump script_08010BCA + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_InnDoor.inc b/data/scripts/hyruleTown/script_InnDoor.inc new file mode 100644 index 00000000..b88ef151 --- /dev/null +++ b/data/scripts/hyruleTown/script_InnDoor.inc @@ -0,0 +1,17 @@ +@ Hyrule Town closed door for Inn +SCRIPT_START script_InnDoor + CheckPlayerInRegion2 0x0808 + JumpIfNot script_InnDoor + _0807E864 + Call sub_0807F9A4 + Call sub_0807DF28 + StartPlayerScript script_PlayerAtInnDoor + WaitForSomething2 0x00000001 + CheckRoomFlag 0x0001 + JumpIf script_08010900 + _0807EB28 0x0b63 + WaitUntilTextboxCloses +script_08010900: + Call sub_0807DF50 + _0807E878 + Jump script_InnDoor diff --git a/data/scripts/hyruleTown/script_Kid1.inc b/data/scripts/hyruleTown/script_Kid1.inc new file mode 100644 index 00000000..dffebca2 --- /dev/null +++ b/data/scripts/hyruleTown/script_Kid1.inc @@ -0,0 +1,27 @@ +@ Hyrule Town Kid standing outside school garden +SCRIPT_START script_Kid1 + BeginBlock + DoPostScriptAction 0x0000 + Call sub_08062A48 + DoPostScriptAction 0x000a + EndBlock +script_080102A6: + CheckEntityInteractType + JumpIfNot script_080102A6 + CheckRoomFlag 0x0009 + JumpIfNot script_080102CC + _0807E864 + _0807EB74 + Call sub_0806265C + WaitUntilTextboxCloses + _0807E878 + Call sub_08062500 + Jump script_080102A6 +script_080102CC: + _0807E864 + _0807EB74 + Call sub_0806265C + WaitUntilTextboxCloses + _0807E878 + Jump script_080102A6 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Kid2.inc b/data/scripts/hyruleTown/script_Kid2.inc new file mode 100644 index 00000000..c5dc472e --- /dev/null +++ b/data/scripts/hyruleTown/script_Kid2.inc @@ -0,0 +1,17 @@ +@ Hyrule Town Kid +SCRIPT_START script_Kid2 + BeginBlock + DoPostScriptAction 0x0000 + Call sub_08062A48 + DoPostScriptAction 0x000a + EndBlock +script_080102F2: + CheckEntityInteractType + JumpIfNot script_080102F2 + _0807E864 + _0807EB74 + Call sub_0806265C + WaitUntilTextboxCloses + _0807E878 + Jump script_080102F2 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Kid3.inc b/data/scripts/hyruleTown/script_Kid3.inc new file mode 100644 index 00000000..5147a331 --- /dev/null +++ b/data/scripts/hyruleTown/script_Kid3.inc @@ -0,0 +1,46 @@ +@ Hyrule Town Kid running in school garden +SCRIPT_START script_Kid3 + BeginBlock + DoPostScriptAction 0x0000 + EndBlock +script_08010314: + EndBlock + Call sub_08062698 + Call sub_080626AC + CallWithArg sub_0807F0EC, 0x00000009 + JumpTable script_08010340, script_0801034A, script_08010354, script_0801035E, script_08010368, script_08010372, script_0801037C, script_08010386, script_08010390 +script_08010340: + _0807EE04 0x0358, 0x0078 + Jump script_08010396 +script_0801034A: + _0807EE04 0x0390, 0x0078 + Jump script_08010396 +script_08010354: + _0807EE04 0x03c8, 0x0078 + Jump script_08010396 +script_0801035E: + _0807EE04 0x0358, 0x0098 + Jump script_08010396 +script_08010368: + _0807EE04 0x0390, 0x0098 + Jump script_08010396 +script_08010372: + _0807EE04 0x03c8, 0x0098 + Jump script_08010396 +script_0801037C: + _0807EE04 0x0358, 0x00b8 + Jump script_08010396 +script_08010386: + _0807EE04 0x0390, 0x00b8 + Jump script_08010396 +script_08010390: + _0807EE04 0x03c8, 0x00b8 +script_08010396: + EndBlock + BeginBlock + Call sub_080626C0 + JumpIf script_08010314 + _0807EE30 + JumpIfNot script_08010396 + Jump script_08010314 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Kid4.inc b/data/scripts/hyruleTown/script_Kid4.inc new file mode 100644 index 00000000..da188edd --- /dev/null +++ b/data/scripts/hyruleTown/script_Kid4.inc @@ -0,0 +1,11 @@ +@ Hyrule Town Kid pacing around in school garden +SCRIPT_START script_Kid4 + BeginBlock + DoPostScriptAction 0x0000 + Call sub_08062A48 + DoPostScriptAction 0x000a + EndBlock +script_080103C2: + Wait 0x001e + Call sub_08062948 + Jump script_080103C2 diff --git a/data/scripts/hyruleTown/script_Kid5.inc b/data/scripts/hyruleTown/script_Kid5.inc new file mode 100644 index 00000000..84453c61 --- /dev/null +++ b/data/scripts/hyruleTown/script_Kid5.inc @@ -0,0 +1,16 @@ +@ Hyrule Town Kid in school +SCRIPT_START script_Kid5 + BeginBlock + _0807E930 0x0008 +script_08010622: + Call sub_08062A48 + DoPostScriptAction 0x000a + EndBlock +script_0801062E: + CheckEntityInteractType + JumpIfNot script_0801062E + _0807E864 + Call sub_0806265C + WaitUntilTextboxCloses + _0807E878 + Jump script_0801062E diff --git a/data/scripts/hyruleTown/script_Kid6.inc b/data/scripts/hyruleTown/script_Kid6.inc new file mode 100644 index 00000000..58553883 --- /dev/null +++ b/data/scripts/hyruleTown/script_Kid6.inc @@ -0,0 +1,6 @@ +@ Hyrule Town Kid in school 2? +SCRIPT_START script_Kid6 + BeginBlock + _0807E930 0x0009 + Jump script_08010622 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Kid7.inc b/data/scripts/hyruleTown/script_Kid7.inc new file mode 100644 index 00000000..599ee869 --- /dev/null +++ b/data/scripts/hyruleTown/script_Kid7.inc @@ -0,0 +1,14 @@ +@ Hyrule Town Kid in school 3? +SCRIPT_START script_Kid7 + BeginBlock + _0807E930 0x000b + Jump script_08010622 + .2byte 0x0000 + BeginBlock + _0807E930 0x000c + Jump script_08010622 + .2byte 0x0000 + BeginBlock + _0807E930 0x000d + Jump script_08010622 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_KidInn.inc b/data/scripts/hyruleTown/script_KidInn.inc new file mode 100644 index 00000000..f3de7eb9 --- /dev/null +++ b/data/scripts/hyruleTown/script_KidInn.inc @@ -0,0 +1,32 @@ +@ Hyrule Town Kid in the Inn on the 2nd floor +SCRIPT_START script_KidInn + BeginBlock + DoPostScriptAction 0x000a + Call sub_08062A48 + DoPostScriptAction 0x0000 +script_0800D5AC: + EndBlock + Call sub_08062698 + Call sub_080626AC + CallWithArg sub_0807F0EC, 0x00000004 + JumpTable script_0800D5CE, script_0800D5D8, script_0800D5E2, script_0800D5EC +script_0800D5CE: + _0807EE04 0x0038, 0x0098 + Jump script_0800D5F2 +script_0800D5D8: + _0807EE04 0x0058, 0x0098 + Jump script_0800D5F2 +script_0800D5E2: + _0807EE04 0x0038, 0x00c8 + Jump script_0800D5F2 +script_0800D5EC: + _0807EE04 0x0058, 0x00c8 +script_0800D5F2: + EndBlock + BeginBlock + Call sub_080626C0 + JumpIf script_0800D5AC + _0807EE30 + JumpIfNot script_0800D5F2 + Jump script_0800D5AC + .2byte 0x0000 diff --git a/data/scripts/script_0800E908.inc b/data/scripts/hyruleTown/script_Librari.inc similarity index 51% rename from data/scripts/script_0800E908.inc rename to data/scripts/hyruleTown/script_Librari.inc index be2a5614..06bae1ad 100644 --- a/data/scripts/script_0800E908.inc +++ b/data/scripts/hyruleTown/script_Librari.inc @@ -1,36 +1,5 @@ -SCRIPT_START script_0800E908 - MessageFromTarget 0x4507 - Jump script_0800E914 -script_0800E910: - MessageFromTarget 0x4509 -script_0800E914: - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0000 - Jump script_0800E832 -SCRIPT_START script_0800E920 - BeginBlock - Call sub_0806C4F8 - DoPostScriptAction 0x000a - _0807EB44 0x0000 - EndBlock -script_0800E932: - CheckEntityInteractType - JumpIfNot script_0800E932 - _0807E864 - _0807EB44 0x0004 - _0807E930 0x0004 -script_0800E942: - Call sub_0806C4A8 - JumpIfNot script_0800E942 - Call sub_0806C4DC - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0000 - _0807E930 0x0000 - Jump script_0800E932 - .2byte 0x0000 -SCRIPT_START script_0800E964 +@ Librari +SCRIPT_START script_Librari BeginBlock DoPostScriptAction 0x000a _0807EB44 0x0004 @@ -47,7 +16,7 @@ script_0800E974: JumpIfNot script_0800E9E4 WaitUntilTextboxCloses DoPostScriptAction 0x000b - StartPlayerScript script_0800E9F4 + StartPlayerScript script_PlayerStepOnTrap WaitForSomething2 0x00000001 DoPostScriptAction 0x000a MessageFromTarget 0x4a24 @@ -57,7 +26,7 @@ script_0800E974: MessageFromTarget 0x4a25 WaitUntilTextboxCloses _0807E930 0x0000 - StartPlayerScript script_0800EA1C + StartPlayerScript script_PlayerActivatedTrapCard WaitForSomething2 0x00000001 SetLocalFlag 0x0074 PlaySound SFX_SECRET diff --git a/data/scripts/hyruleTown/script_LibrariLater.inc b/data/scripts/hyruleTown/script_LibrariLater.inc new file mode 100644 index 00000000..f6d3c71c --- /dev/null +++ b/data/scripts/hyruleTown/script_LibrariLater.inc @@ -0,0 +1,35 @@ +@ Library if you talk to him later? +SCRIPT_START script_LibrariLater + BeginBlock + DoPostScriptAction 0x000a + _0807EB44 0x0004 + _0807E930 0x0000 + EndBlock +script_08012440: + CheckEntityInteractType + JumpIfNot script_08012440 + _0807E864 + _0807E930 0x0008 + Call sub_0807F2D4 + _0807E930 0x0009 + Call sub_0806B2B4 + WaitUntilTextboxCloses + CheckLocalFlag 0x00b3 + JumpIf script_08012474 + SetLocalFlag 0x00b3 + _0807F034 0x0062 + WaitPlayerGetItem +.ifdef USA + SetLocalFlag 0x00d0 +.else +.ifdef DEMO_USA + SetLocalFlag 0x00d0 +.endif +.endif +script_08012474: + _0807E878 + _0807E930 0x0000 + Jump script_08012440 + .align 2, 0 + + diff --git a/data/scripts/hyruleTown/script_LibrarianLeft.inc b/data/scripts/hyruleTown/script_LibrarianLeft.inc new file mode 100644 index 00000000..89861977 --- /dev/null +++ b/data/scripts/hyruleTown/script_LibrarianLeft.inc @@ -0,0 +1,18 @@ +@ Librarian left +SCRIPT_START script_LibrarianLeft + BeginBlock + _0807E9D4 + _0807EB44 0x0004 + DoPostScriptAction 0x000a + _0807E930 0x0000 + EndBlock +script_08008BA2: + _0807E944 + _0807E864 + _0807E930 0x0004 + Call sub_0807F2D4 + MessageFromTarget 0x4912 + WaitUntilTextboxCloses + _0807E930 0x0008 + _0807E878 + Jump script_08008BA2 diff --git a/data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc b/data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc new file mode 100644 index 00000000..f606616c --- /dev/null +++ b/data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc @@ -0,0 +1,49 @@ +@ Librarian left with book quest +SCRIPT_START script_LibrarianLeftWithQuest + BeginBlock + _0807E9D4 + _0807EB44 0x0004 + DoPostScriptAction 0x000a + _0807E930 0x0000 +.ifdef EU + SetGlobalFlag 0x0061 +.endif + EndBlock +script_08008BD2: + _0807E944 + _0807E864 +.ifndef EU + SetGlobalFlag 0x0061 +.endif + _0807E930 0x0004 + Call sub_0807F2D4 + WaitUntilTextboxCloses + Call sub_0806BA34 + JumpIfNot script_08008C54 + WaitUntilTextboxCloses + CallWithArg sub_0806BB1C, 0x00000000 + Call sub_0807F2D4 + CallWithArg sub_0806BB1C, 0x00000001 + Call sub_0806BB7C + JumpIfNot script_08008C5C + MessageNoOverlap 0x490c + WaitUntilTextboxCloses + LoadRoomEntityList gUnk_080D6784 + WaitForSomething 0x00000001 + WaitForSomething 0x00000004 + Wait 0x000f + PlaySound SFX_SECRET + _0807E930 0x0004 + Call sub_0807F2D4 + MessageNoOverlap 0x4913 + WaitUntilTextboxCloses + _0807E930 0x0008 + Call sub_0807F2D4 + Jump script_08008C5C +script_08008C54: + _0807E930 0x0008 + Wait 0x000f +script_08008C5C: + WaitUntilTextboxCloses + _0807E878 + Jump script_08008BD2 diff --git a/data/scripts/hyruleTown/script_LibrarianRight.inc b/data/scripts/hyruleTown/script_LibrarianRight.inc new file mode 100644 index 00000000..b5af0dfc --- /dev/null +++ b/data/scripts/hyruleTown/script_LibrarianRight.inc @@ -0,0 +1,19 @@ +@ Librarian right +SCRIPT_START script_LibrarianRight + BeginBlock + _0807E9D4 + _0807EB44 0x0004 + _0807E930 0x0000 + DoPostScriptAction 0x000a + EndBlock +script_08008B6E: + _0807E944 + _0807E864 + _0807E930 0x0004 + Call sub_0807F2D4 + Call sub_0806BBB0 + WaitUntilTextboxCloses + _0807E930 0x0008 + _0807E878 + Jump script_08008B6E + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_LibraryVisitor.inc b/data/scripts/hyruleTown/script_LibraryVisitor.inc new file mode 100644 index 00000000..1a5015fe --- /dev/null +++ b/data/scripts/hyruleTown/script_LibraryVisitor.inc @@ -0,0 +1,18 @@ +@ Library Townsperson +SCRIPT_START script_LibraryVisitor + BeginBlock + Call sub_08061FD8 + Call sub_08061E70 + DoPostScriptAction 0x000a + EndBlock +script_08008DA0: + CheckEntityInteractType + JumpIfNot script_08008DA0 + _0807E864 + _0807EB74 + Call sub_08061FD8 + Call sub_08062048 + WaitUntilTextboxCloses + _0807E878 + Jump script_08008DA0 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_MaidTown.inc b/data/scripts/hyruleTown/script_MaidTown.inc new file mode 100644 index 00000000..c75426d4 --- /dev/null +++ b/data/scripts/hyruleTown/script_MaidTown.inc @@ -0,0 +1,14 @@ +@ Hyrule Town Maid +SCRIPT_START script_MaidTown + BeginBlock + _0807E9D4 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + SetIntVariable sub_08064688 + Call sub_08064644 + EndBlock +script_08010446: + Wait 0x003c + Call sub_080646A4 + Jump script_08010446 diff --git a/data/scripts/hyruleTown/script_MalonHyruleTown.inc b/data/scripts/hyruleTown/script_MalonHyruleTown.inc new file mode 100644 index 00000000..3e73e037 --- /dev/null +++ b/data/scripts/hyruleTown/script_MalonHyruleTown.inc @@ -0,0 +1,44 @@ +@ Hyrule Town Malon +SCRIPT_START script_MalonHyruleTown + BeginBlock + DoPostScriptAction 0x000a + DoPostScriptAction 0x0007 + _0807EB44 0x0004 + _0807E930 0x000e + EndBlock + Call sub_08065914 +script_08014F4A: + CheckEntityInteractType + JumpIfNot script_08014F4A + _0807E864 + Call sub_0807DF28 + _0807EB74 + DoPostScriptAction 0x0000 + BeginBlock + MessageNoOverlap 0x3b0b + CallWithArg sub_0807F854, 0x00010064 + EndBlock + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_08014FA6 + HasRupees 0x0064 + JumpIfNot script_08014F9A + _0807E48C 0x0020 + JumpIfNot script_08014FA2 + ModRupees 0xff9c + _0807F034 0x0022 + WaitPlayerGetItem + MessageNoOverlap 0x3b11 + Jump script_08014FA6 +script_08014F9A: + MessageNoOverlap 0x3b0e + Jump script_08014FA6 +script_08014FA2: + MessageNoOverlap 0x3b0f +script_08014FA6: + WaitUntilTextboxCloses + Call sub_0807DF50 + _0807E878 + _0807EB44 0x0004 + _0807E930 0x000e + Jump script_08014F4A diff --git a/data/scripts/hyruleTown/script_Mama.inc b/data/scripts/hyruleTown/script_Mama.inc new file mode 100644 index 00000000..c7a31761 --- /dev/null +++ b/data/scripts/hyruleTown/script_Mama.inc @@ -0,0 +1,23 @@ +@ Hyrule Town Mama +SCRIPT_START script_Mama + BeginBlock + Call sub_0806C4F8 + DoPostScriptAction 0x000a + _0807EB44 0x0000 + EndBlock +script_0800E932: + CheckEntityInteractType + JumpIfNot script_0800E932 + _0807E864 + _0807EB44 0x0004 + _0807E930 0x0004 +script_0800E942: + Call sub_0806C4A8 + JumpIfNot script_0800E942 + Call sub_0806C4DC + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0000 + _0807E930 0x0000 + Jump script_0800E932 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Marcy.inc b/data/scripts/hyruleTown/script_Marcy.inc new file mode 100644 index 00000000..5cfcb3a4 --- /dev/null +++ b/data/scripts/hyruleTown/script_Marcy.inc @@ -0,0 +1,34 @@ +@ Hyrule Town Marcy selling the newsletter +SCRIPT_START script_Marcy + BeginBlock + DoPostScriptAction 0x0007 + _0807E9D4 + DoPostScriptAction 0x000a + _0807E930 0x0000 + EndBlock +script_08010746: + CheckEntityInteractType + JumpIfNot script_08010746 + _0807E864 + _0807E930 0x0004 + BeginBlock + Call sub_08062D18 + JumpIfNot script_08010786 + EndBlock + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_08010786 + HasRupees 0x00c8 + JumpIf script_08010778 + MessageNoOverlap 0x4008 + Jump script_08010786 +script_08010778: + ModRupees 0xff38 + Call sub_08062E14 + MessageNoOverlap 0x4007 +script_08010786: + EndBlock + WaitUntilTextboxCloses + _0807E878 + _0807E930 0x0008 + Jump script_08010746 diff --git a/data/scripts/hyruleTown/script_Mayor.inc b/data/scripts/hyruleTown/script_Mayor.inc new file mode 100644 index 00000000..53885de4 --- /dev/null +++ b/data/scripts/hyruleTown/script_Mayor.inc @@ -0,0 +1,23 @@ +@ Hyrule Town Mayor Hagen +SCRIPT_START script_Mayor + BeginBlock + Call sub_0806CE5C + DoPostScriptAction 0x000a + _0807EB44 0x0004 + _0807E930 0x0008 + EndBlock +script_0800EA6A: + CheckEntityInteractType + JumpIfNot script_0800EA6A + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000004 + Call sub_0807F2D4 + _0807E930 0x0009 + Call sub_0806CE80 + WaitUntilTextboxCloses + _0807E878 + _0807E930 0x000a + Call sub_0807F2D4 + _0807E930 0x0008 + Jump script_0800EA6A diff --git a/data/scripts/hyruleTown/script_MutohInMill.inc b/data/scripts/hyruleTown/script_MutohInMill.inc new file mode 100644 index 00000000..fdefdeb9 --- /dev/null +++ b/data/scripts/hyruleTown/script_MutohInMill.inc @@ -0,0 +1,21 @@ +@ Hyrule Town Mutoh +SCRIPT_START script_MutohInMill + BeginBlock + Call sub_08067100 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + EndBlock +script_0800954E: + CheckEntityInteractType + JumpIfNot script_0800954E + _0807E864 + DoPostScriptAction 0x0001 + _0807EB74 + Call sub_080670E4 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + Jump script_0800954E + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Nayru.inc b/data/scripts/hyruleTown/script_Nayru.inc new file mode 100644 index 00000000..383bb3e1 --- /dev/null +++ b/data/scripts/hyruleTown/script_Nayru.inc @@ -0,0 +1,61 @@ +@ Hyrule Town Nayru +SCRIPT_START script_Nayru + BeginBlock + Call sub_08064928 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + DoPostScriptAction 0x000a + CheckGlobalFlag 0x0047 + JumpIf script_08011D6E + EndBlock +script_08011D46: + EndBlock + BeginBlock + CheckEntityInteractType + JumpIfNot script_08011D46 + EndBlock + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + MessageNoOverlap 0x4513 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011D46 +script_08011D6E: + EndBlock + BeginBlock + CheckGlobalFlag 0x002b + JumpIf script_08011D46 + CheckGlobalFlag 0x002d + JumpIf script_08011D46 + CheckEntityInteractType + JumpIfNot script_08011D6E + EndBlock + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + MessageNoOverlap 0x3103 + WaitUntilTextboxCloses + _0807E3E8 + JumpIf script_08011DBA + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011D6E +script_08011DAC: + CheckEntityInteractType + JumpIfNot script_08011DAC + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 +script_08011DBA: + MessageNoOverlap 0x3106 + WaitUntilTextboxCloses + SetGlobalFlag 0x002c + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011DAC + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Nayru2.inc b/data/scripts/hyruleTown/script_Nayru2.inc new file mode 100644 index 00000000..a7ee5772 --- /dev/null +++ b/data/scripts/hyruleTown/script_Nayru2.inc @@ -0,0 +1,50 @@ +@ Hyrule Town Nayru when one of them has moved in +SCRIPT_START script_Nayru2 + BeginBlock + Call sub_08064928 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + DoPostScriptAction 0x000a + EndBlock +script_08011F22: + EndBlock + BeginBlock + CheckGlobalFlag 0x002e + JumpIf script_08011D46 + CheckGlobalFlag 0x0030 + JumpIf script_08011D46 + CheckEntityInteractType + JumpIfNot script_08011F22 + EndBlock + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + CheckGlobalFlag 0x0048 + JumpIf script_08011F58 + MessageNoOverlap 0x4522 + WaitUntilTextboxCloses + Jump script_08011F64 +script_08011F58: + MessageNoOverlap 0x310f + WaitUntilTextboxCloses + _0807E3E8 + JumpIf script_08011F80 +script_08011F64: + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011F22 +script_08011F72: + CheckEntityInteractType + JumpIfNot script_08011F72 + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 +script_08011F80: + MessageNoOverlap 0x3112 + WaitUntilTextboxCloses + SetGlobalFlag 0x002f + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08011F72 diff --git a/data/scripts/hyruleTown/script_NayruAlone.inc b/data/scripts/hyruleTown/script_NayruAlone.inc new file mode 100644 index 00000000..7436a2c2 --- /dev/null +++ b/data/scripts/hyruleTown/script_NayruAlone.inc @@ -0,0 +1,20 @@ +@ Nayru completely alone +SCRIPT_START script_NayruAlone + BeginBlock + Call sub_08064928 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + DoPostScriptAction 0x000a + EndBlock +script_08012216: + CheckEntityInteractType + JumpIfNot script_08012216 + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + MessageNoOverlap 0x4525 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_08012216 diff --git a/data/scripts/hyruleTown/script_NayruMovedIn.inc b/data/scripts/hyruleTown/script_NayruMovedIn.inc new file mode 100644 index 00000000..e754a9f5 --- /dev/null +++ b/data/scripts/hyruleTown/script_NayruMovedIn.inc @@ -0,0 +1,59 @@ +@ Nayru moved in +SCRIPT_START script_NayruMovedIn + BeginBlock + Call sub_08064928 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + DoPostScriptAction 0x000a + EndBlock +script_080120C6: + CheckEntityInteractType + JumpIfNot script_080120C6 + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + CheckLocalFlag 0x0095 + JumpIf script_080120EA + MessageNoOverlap 0x3116 + WaitUntilTextboxCloses + SetLocalFlag 0x0095 + Jump script_0801212A +script_080120EA: + _0807E48C 0x002f + JumpIfNot script_080120FC + MessageNoOverlap 0x3117 + WaitUntilTextboxCloses + Jump script_0801212A +script_080120FC: + MessageNoOverlap 0x3118 + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_0801212A + _0807E48C 0x0020 + JumpIfNot script_08012126 + MessageNoOverlap 0x3119 + WaitUntilTextboxCloses + _0807F034 0x002f + WaitPlayerGetItem +.ifdef USA + Call sub_0807FC24 +.else +.ifdef DEMO_USA + Call sub_0807FC24 +.else +.ifdef DEMO_JP + Call sub_0807FC24 +.endif +.endif +.endif + Jump script_0801212A +script_08012126: + MessageNoOverlap 0x311b +script_0801212A: + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0001 + Jump script_080120C6 + .align 2, 0 + diff --git a/data/scripts/script_08008D50.inc b/data/scripts/hyruleTown/script_Object69AllBooksCollected.inc similarity index 78% rename from data/scripts/script_08008D50.inc rename to data/scripts/hyruleTown/script_Object69AllBooksCollected.inc index 76375a89..d45cec4b 100644 --- a/data/scripts/script_08008D50.inc +++ b/data/scripts/hyruleTown/script_Object69AllBooksCollected.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08008D50 +@ Library OBJECT_69 all books collected +SCRIPT_START script_Object69AllBooksCollected BeginBlock SetEntityPositionRelative 0x0068, 0x0068 _0807F0B4 0x0004 diff --git a/data/scripts/hyruleTown/script_Object69Rem.inc b/data/scripts/hyruleTown/script_Object69Rem.inc new file mode 100644 index 00000000..727fe03a --- /dev/null +++ b/data/scripts/hyruleTown/script_Object69Rem.inc @@ -0,0 +1,15 @@ +@ OBJECT_69 in Rems shoe shop ? +SCRIPT_START script_Object69Rem + BeginBlock + CheckLocalFlag 0x0062 + JumpIfNot script_0801319A + DoPostScriptAction 0x0006 + EndBlock +SCRIPT_END +SCRIPT_START script_0801319A + EndBlock + BeginBlock + CameraTargetEntity + MoveEntityToPlayer + Call sub_0806AB74 + Jump script_0801319A diff --git a/data/scripts/hyruleTown/script_Object69SimonsSimulation.inc b/data/scripts/hyruleTown/script_Object69SimonsSimulation.inc new file mode 100644 index 00000000..8601a1a6 --- /dev/null +++ b/data/scripts/hyruleTown/script_Object69SimonsSimulation.inc @@ -0,0 +1,34 @@ +@ Simons Simulation OBJECT_69 +SCRIPT_START script_Object69SimonsSimulation + BeginBlock + _0807E888 + EndBlock + CallWithArg sub_0806C2A0, 0x00000001 + WaitFor_2 + Wait 0x003c + _0807E878 + SetRoomFlag 0x0000 + PlayBgm BGM_FIGHT_THEME2 +script_08011C04: + CheckRoomFlag 0x0064 + JumpIfNot script_08011C04 + StopBgm + _0807E864 + Wait 0x003c + CameraTargetEntity + Wait 0x003c + Call Simon_CreateChest + Wait 0x003c + CameraTargetPlayer + _0807E878 +script_08011C28: + CheckLocalFlag 0x0001 + JumpIfNot script_08011C28 + _0807E888 + WaitPlayerGetItem + Wait 0x001e + CallWithArg sub_0806C2A0, 0x00000000 + WaitFor_2 + Wait 0x003c + Call sub_0806C280 +SCRIPT_END diff --git a/data/scripts/script_080145B0.inc b/data/scripts/hyruleTown/script_Object6ACarlov.inc similarity index 86% rename from data/scripts/script_080145B0.inc rename to data/scripts/hyruleTown/script_Object6ACarlov.inc index 0b0264e5..b4987e83 100644 --- a/data/scripts/script_080145B0.inc +++ b/data/scripts/hyruleTown/script_Object6ACarlov.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080145B0 +@ Hyrule Town OBJECT_69 at Carlov 2 +SCRIPT_START script_Object6ACarlov BeginBlock SetEntityPositionRelative 0x01f8, 0x00e0 CheckLocalFlag 0x005e diff --git a/data/scripts/hyruleTown/script_Object6ACarlov2.inc b/data/scripts/hyruleTown/script_Object6ACarlov2.inc new file mode 100644 index 00000000..192e0708 --- /dev/null +++ b/data/scripts/hyruleTown/script_Object6ACarlov2.inc @@ -0,0 +1,53 @@ +@ Hyrule Town OBJECT_69 at Carlov +SCRIPT_START script_Object6ACarlov2 + BeginBlock + DoPostScriptAction 0x0008 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + EndBlock +script_080145F8: +.ifdef EU + CheckPlayerInRegion 0x00a8, 0x0054, 0x080c + JumpIfNot script_080145F8 + ComparePlayerAnimationState 0x0000 + JumpIfNot script_080145F8 + CheckRoomFlag 0x0009 + JumpIf script_08014632 + _0807E864 + Wait 0x0018 + _0807E8E4_3 + _0807EB44 0x0002 + MessageFromTargetPos 0x432b, 0x000c + WaitUntilTextboxCloses + Wait 0x0018 + _0807E878 + Jump script_080145F8 +script_08014632: + CheckRoomFlag 0x0000 + JumpIfNot script_08014632 + _0807E864 + Call sub_0807DF28 +script_08014642: + CheckRoomFlag 0x0009 + JumpIf script_08014642 + _0807E5F8 0x00000004 + WaitForSomething2 0x00000008 + Call sub_0807DF50 + _0807E878 + Jump script_080145F8 +.else + CheckRoomFlag 0x0000 + JumpIfNot script_080145F8 + _0807E864 + Call sub_0807DF28 +script_08014608: + CheckRoomFlag 0x0004 + JumpIf script_08014608 + _0807E5F8 0x00000004 + WaitForSomething2 0x00000008 + Call sub_0807DF50 + _0807E878 + Jump script_080145F8 +.endif + .align 2, 0 + diff --git a/data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc b/data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc new file mode 100644 index 00000000..f688efa6 --- /dev/null +++ b/data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc @@ -0,0 +1,20 @@ +@ Hyrule Town OBJECT_69 at Carlov. Prevent from leaving if already paid. +SCRIPT_START script_Object6APreventPlayerLeaveCarlov + BeginBlock + EndBlock +script_0801454C: + CheckPlayerInRegion 0x0078, 0x0088, 0x0810 + JumpIfNot script_0801454C + CheckRoomFlag 0x0000 + JumpIfNot script_0801454C + _0807E864 + _0807EB28 0x4217 + WaitUntilTextboxCloses + StartPlayerScript script_PlayerWhenLeavingCarlovAlreadyPaid + Wait 0x0010 + _0807E5F8 0x00000001 + WaitForSomething2 0x00000002 + _0807E878 + Jump script_0801454C +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_OldLadyCatHouse1.inc b/data/scripts/hyruleTown/script_OldLadyCatHouse1.inc new file mode 100644 index 00000000..cfd7bef0 --- /dev/null +++ b/data/scripts/hyruleTown/script_OldLadyCatHouse1.inc @@ -0,0 +1,9 @@ +@ Older lady in cat persons house +SCRIPT_START script_OldLadyCatHouse1 + BeginBlock + Call sub_08061E70 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + Call sub_08061FD8 + EndBlock + Jump script_0800EBF4 diff --git a/data/scripts/hyruleTown/script_OldLadyCatHouse2.inc b/data/scripts/hyruleTown/script_OldLadyCatHouse2.inc new file mode 100644 index 00000000..a2b33563 --- /dev/null +++ b/data/scripts/hyruleTown/script_OldLadyCatHouse2.inc @@ -0,0 +1,20 @@ +@ Older lady in cat persons house +SCRIPT_START script_OldLadyCatHouse2 + BeginBlock + Call sub_08061E70 + DoPostScriptAction 0x000a + _0807EB44 0x0006 + Call sub_08061FD8 + EndBlock +@ Common end code for Townspersons? +script_0800EBF4: + CheckEntityInteractType + JumpIfNot script_0800EBF4 + _0807E864 + _0807EB74 + Call sub_08061FD8 + Call sub_08062048 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800EBF4 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Phonograph.inc b/data/scripts/hyruleTown/script_Phonograph.inc new file mode 100644 index 00000000..6bdd817e --- /dev/null +++ b/data/scripts/hyruleTown/script_Phonograph.inc @@ -0,0 +1,21 @@ +@ Phonograph +SCRIPT_START script_Phonograph + BeginBlock + Call sub_0807F934 + EndBlock +script_0800BA46: + CheckEntityInteractType + JumpIfNot script_0800BA46 + _0807E864 + Call sub_0807DF28 + MessageFromTarget 0x3301 + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_0800BA6C + StopBgm + Call sub_0806E964 + PlayBGM +script_0800BA6C: + Call sub_0807DF50 + _0807E878 + Jump script_0800BA46 diff --git a/data/scripts/script_08010964.inc b/data/scripts/hyruleTown/script_PhonographDoor.inc similarity index 53% rename from data/scripts/script_08010964.inc rename to data/scripts/hyruleTown/script_PhonographDoor.inc index a1df913b..00f9c7b0 100644 --- a/data/scripts/script_08010964.inc +++ b/data/scripts/hyruleTown/script_PhonographDoor.inc @@ -1,22 +1,5 @@ -SCRIPT_START script_08010964 - CheckPlayerInRegion2 0x0808 - JumpIfNot script_08010964 - _0807E864 - Call sub_0807F9A4 - Call sub_0807DF28 - StartPlayerScript script_08010A38 - WaitForSomething2 0x00000001 - CheckRoomFlag 0x0001 - JumpIf script_08010994 - _0807EB28 0x0b63 - WaitUntilTextboxCloses -script_08010994: - Call sub_0807DF50 - _0807E878 - Jump script_08010964 - - -SCRIPT_START script_080109A0 +@ Hyrule Town locked door NPC4E for music room +SCRIPT_START script_PhonographDoor BeginBlock EndBlock .ifdef JP @@ -34,12 +17,12 @@ SCRIPT_START script_080109A0 .endif JumpIf script_080109EA CheckPlayerInRegion2 0x0808 - JumpIfNot script_080109A0 + JumpIfNot script_PhonographDoor EndBlock _0807E864 Call sub_0807F9A4 Call sub_0807DF28 - StartPlayerScript script_08010A38 + StartPlayerScript script_PlayerCannotEnter WaitForSomething2 0x00000001 CheckRoomFlag 0x0001 JumpIf script_080109DE @@ -48,7 +31,7 @@ SCRIPT_START script_080109A0 script_080109DE: Call sub_0807DF50 _0807E878 - Jump script_080109A0 + Jump script_PhonographDoor script_080109EA: DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/hyruleTown/script_Pina.inc b/data/scripts/hyruleTown/script_Pina.inc new file mode 100644 index 00000000..2218ed8d --- /dev/null +++ b/data/scripts/hyruleTown/script_Pina.inc @@ -0,0 +1,21 @@ +@ Hyrule Town Pina +SCRIPT_START script_Pina + BeginBlock + _0807EB44 0x0004 + _0807E930 0x0000 + Call sub_08063CAC + DoPostScriptAction 0x000a + Call sub_0807F348 + EndBlock +script_080104BC: + CheckEntityInteractType + JumpIfNot script_080104BC + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000004 + Call sub_08063C90 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + CallWithArg sub_0807F3D8, 0x00000000 + Jump script_080104BC diff --git a/data/scripts/hyruleTown/script_Pita.inc b/data/scripts/hyruleTown/script_Pita.inc new file mode 100644 index 00000000..d03c5f28 --- /dev/null +++ b/data/scripts/hyruleTown/script_Pita.inc @@ -0,0 +1,45 @@ +@ Hyrule Town Pita +SCRIPT_START script_Pita + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + EndBlock +script_080106BE: + CheckEntityInteractType + JumpIfNot script_080106BE + _0807E864 + _0807EB74 + Call sub_0807F2D4 + DoPostScriptAction 0x0000 + HasRoomItemForSale + JumpIf script_080106E0 + MessageNoOverlap 0x3c07 + Jump script_08010726 +script_080106E0: + Call sub_08062EB8 + CallWithArg sub_0807F78C, 0x00000000 + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_08010726 + WaitUntilTextboxCloses + BuyItem 0x0000, 0x0000 + JumpIf script_0801070C + MessageNoOverlap 0x3c04 + Jump script_08010726 +script_0801070C: + WaitPlayerGetItem + ModHealth 0x0008 + Call sub_08062EDC + JumpIf script_08010724 + MessageNoOverlap 0x3c06 + Jump script_08010726 +script_08010724: + WaitPlayerGetItem +script_08010726: + WaitUntilTextboxCloses + _0807E878 + DoPostScriptAction 0x0001 + Jump script_080106BE + .2byte 0x0000 diff --git a/data/scripts/script_0800EA1C.inc b/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc similarity index 76% rename from data/scripts/script_0800EA1C.inc rename to data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc index 57360433..1ade796e 100644 --- a/data/scripts/script_0800EA1C.inc +++ b/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800EA1C +@ Player at Library fall through trap +SCRIPT_START script_PlayerActivatedTrapCard _0807EB44 0x0006 DoPostScriptAction 0x0000 Wait 0x0014 diff --git a/data/scripts/script_080147DC.inc b/data/scripts/hyruleTown/script_PlayerAtCarlov.inc similarity index 77% rename from data/scripts/script_080147DC.inc rename to data/scripts/hyruleTown/script_PlayerAtCarlov.inc index d5b0ad59..dc9ef22d 100644 --- a/data/scripts/script_080147DC.inc +++ b/data/scripts/hyruleTown/script_PlayerAtCarlov.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080147DC +@ Player at Carlov +SCRIPT_START script_PlayerAtCarlov EndBlock WaitForSomething2 0x00000002 SetEntitySpeed 0x00e0 diff --git a/data/scripts/script_0800EF9C.inc b/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc similarity index 71% rename from data/scripts/script_0800EF9C.inc rename to data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc index d3e025d2..ea4304ac 100644 --- a/data/scripts/script_0800EF9C.inc +++ b/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800EF9C +@ Player tries to enter DrLeft +SCRIPT_START script_PlayerAtDrLeftDoor BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_080109F0.inc b/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc similarity index 69% rename from data/scripts/script_080109F0.inc rename to data/scripts/hyruleTown/script_PlayerAtInnDoor.inc index d8d9abbb..87908590 100644 --- a/data/scripts/script_080109F0.inc +++ b/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080109F0 +@ Hyrule Town player tries to enter Inn +SCRIPT_START script_PlayerAtInnDoor BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_080130E4.inc b/data/scripts/hyruleTown/script_PlayerAtRem.inc similarity index 82% rename from data/scripts/script_080130E4.inc rename to data/scripts/hyruleTown/script_PlayerAtRem.inc index 38df27bf..c39158d6 100644 --- a/data/scripts/script_080130E4.inc +++ b/data/scripts/hyruleTown/script_PlayerAtRem.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080130E4 +@ Player at Rem +SCRIPT_START script_PlayerAtRem BeginBlock _0807EB44 0x0006 SetEntitySpeed 0x0140 diff --git a/data/scripts/script_08010A38.inc b/data/scripts/hyruleTown/script_PlayerCannotEnter.inc similarity index 68% rename from data/scripts/script_08010A38.inc rename to data/scripts/hyruleTown/script_PlayerCannotEnter.inc index e3dae7ae..1c1a7c5f 100644 --- a/data/scripts/script_08010A38.inc +++ b/data/scripts/hyruleTown/script_PlayerCannotEnter.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08010A38 +@ Player cannot enter something to the left +SCRIPT_START script_PlayerCannotEnter BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_08010A5C.inc b/data/scripts/hyruleTown/script_PlayerSleepingInn.inc similarity index 81% rename from data/scripts/script_08010A5C.inc rename to data/scripts/hyruleTown/script_PlayerSleepingInn.inc index b08284b9..fc76be34 100644 --- a/data/scripts/script_08010A5C.inc +++ b/data/scripts/hyruleTown/script_PlayerSleepingInn.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08010A5C +@ Player sleeping at Inn +SCRIPT_START script_PlayerSleepingInn BeginBlock Call sub_0807DF28 _0807E864 diff --git a/data/scripts/script_0800E9F4.inc b/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc similarity index 73% rename from data/scripts/script_0800E9F4.inc rename to data/scripts/hyruleTown/script_PlayerStepOnTrap.inc index c801e9d9..3aa0da5a 100644 --- a/data/scripts/script_0800E9F4.inc +++ b/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800E9F4 +@ Player at Librari move on trap +SCRIPT_START script_PlayerStepOnTrap BeginBlock _0807EB44 0x0004 SetEntitySpeed 0x0100 diff --git a/data/scripts/script_08011C50.inc b/data/scripts/hyruleTown/script_PlayerWakingUpAtSimons.inc similarity index 69% rename from data/scripts/script_08011C50.inc rename to data/scripts/hyruleTown/script_PlayerWakingUpAtSimons.inc index 154bc0ab..45d0c2bd 100644 --- a/data/scripts/script_08011C50.inc +++ b/data/scripts/hyruleTown/script_PlayerWakingUpAtSimons.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08011C50 +@ Player waking up after Simons Simulation +SCRIPT_START script_PlayerWakingUpAtSimons BeginBlock _0807E864 EndBlock diff --git a/data/scripts/script_08014588.inc b/data/scripts/hyruleTown/script_PlayerWhenLeavingCarlovAlreadyPaid.inc similarity index 61% rename from data/scripts/script_08014588.inc rename to data/scripts/hyruleTown/script_PlayerWhenLeavingCarlovAlreadyPaid.inc index b9971cca..77d229c6 100644 --- a/data/scripts/script_08014588.inc +++ b/data/scripts/hyruleTown/script_PlayerWhenLeavingCarlovAlreadyPaid.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014588 +@ Player at Carlov when trying to leave when already paid +SCRIPT_START script_PlayerWhenLeavingCarlovAlreadyPaid EndBlock WaitForSomething2 0x00000001 SetEntitySpeed 0x00e0 diff --git a/data/scripts/script_08010A98.inc b/data/scripts/hyruleTown/script_Postman.inc similarity index 64% rename from data/scripts/script_08010A98.inc rename to data/scripts/hyruleTown/script_Postman.inc index c76ce7b0..01b75b3f 100644 --- a/data/scripts/script_08010A98.inc +++ b/data/scripts/hyruleTown/script_Postman.inc @@ -1,23 +1,5 @@ -SCRIPT_START script_08010A98 - BeginBlock - _0807EB44 0x0004 - CallWithArg sub_080672B0, 0x00000000 - DoPostScriptAction 0x000a - Call sub_08067314 - EndBlock -script_08010AB4: - CheckEntityInteractType - JumpIfNot script_08010AB4 - _0807E864 - _0807EB74 - CallWithArg sub_080672B0, 0x00000004 - Call sub_08067304 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - CallWithArg sub_080672B0, 0x00000000 - Jump script_08010AB4 -SCRIPT_START script_08010AE4 +@ Hyrule Town Postman +SCRIPT_START script_Postman BeginBlock CheckInventory1 0x0067 JumpIfNot script_08010B62 diff --git a/data/scripts/script_08012F0C.inc b/data/scripts/hyruleTown/script_Rem.inc similarity index 90% rename from data/scripts/script_08012F0C.inc rename to data/scripts/hyruleTown/script_Rem.inc index 17ccbb21..85487b0e 100644 --- a/data/scripts/script_08012F0C.inc +++ b/data/scripts/hyruleTown/script_Rem.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08012F0C +@ Hyrule Town Rem +SCRIPT_START script_Rem BeginBlock CallWithArg sub_0806A93C, 0x12345678 _0807EB44 0x0004 @@ -8,7 +9,7 @@ SCRIPT_START script_08012F0C CheckLocalFlag 0x0060 JumpIf script_08012FD2 CheckGlobalFlag 0x001e - JumpIf script_08012F86 + JumpIf script_RemFallingAsleep EndBlock CheckLocalFlag 0x0062 JumpIfNot script_08012F48 diff --git a/data/scripts/script_08012F86.inc b/data/scripts/hyruleTown/script_RemFallingAsleep.inc similarity index 93% rename from data/scripts/script_08012F86.inc rename to data/scripts/hyruleTown/script_RemFallingAsleep.inc index 13ddc6bf..a94b3e56 100644 --- a/data/scripts/script_08012F86.inc +++ b/data/scripts/hyruleTown/script_RemFallingAsleep.inc @@ -1,10 +1,11 @@ -SCRIPT_START script_08012F86 +@ Rem falling asleep +SCRIPT_START script_RemFallingAsleep BeginBlock CheckLocalFlag 0x0060 JumpIf script_08012FD2 _0807E864 Call sub_0807DF28 - StartPlayerScript script_080130E4 + StartPlayerScript script_PlayerAtRem SetLocalFlag 0x0060 ClearLocalFlag 0x0061 EndBlock @@ -27,7 +28,7 @@ script_08012FD2: CheckInventory1 0x0038 JumpIf script_08013006 script_08012FFA: - _0807E944 + _0807E944 MessageNoOverlap 0x4403 WaitUntilTextboxCloses Jump script_08012FFA @@ -62,8 +63,8 @@ script_08013006: WaitUntilTextboxCloses _0807E5F8 0x00000200 _0807F034 0x0015 - WaitPlayerGetItem - _0807EB8C + WaitPlayerGetItem + _0807EB8C MessageNoOverlap 0x4406 WaitUntilTextboxCloses _0807E908 0x0001 diff --git a/data/scripts/script_08013114.inc b/data/scripts/hyruleTown/script_RemTownMinish.inc similarity index 79% rename from data/scripts/script_08013114.inc rename to data/scripts/hyruleTown/script_RemTownMinish.inc index 1adcb058..d7f649b8 100644 --- a/data/scripts/script_08013114.inc +++ b/data/scripts/hyruleTown/script_RemTownMinish.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013114 +@ Rem Town Minish +SCRIPT_START script_RemTownMinish BeginBlock _0807E9D4 DoPostScriptAction 0x000a @@ -31,10 +32,3 @@ script_08013176: Call sub_0807F420 _0807E878 Jump script_08013128 -SCRIPT_START script_08013188 - BeginBlock - CheckLocalFlag 0x0062 - JumpIfNot script_0801319A - DoPostScriptAction 0x0006 - EndBlock -SCRIPT_END diff --git a/data/scripts/script_0800E8A4.inc b/data/scripts/hyruleTown/script_RentRegularRoom.inc similarity index 66% rename from data/scripts/script_0800E8A4.inc rename to data/scripts/hyruleTown/script_RentRegularRoom.inc index bb0dd75f..05284b24 100644 --- a/data/scripts/script_0800E8A4.inc +++ b/data/scripts/hyruleTown/script_RentRegularRoom.inc @@ -1,11 +1,12 @@ -SCRIPT_START script_0800E8A4 +@ Hyrule Town Inn Emma after renting regular room +SCRIPT_START script_RentRegularRoom BeginBlock MessageFromTarget 0x4504 CallWithArg sub_0807F854, 0x000100c8 EndBlock WaitUntilTextboxCloses HasRupees 0x00c8 - JumpIfNot script_0800E908 + JumpIfNot script_EmmaNotEnoughRupees ModRupees 0xff38 SetLocalFlag 0x0091 MessageFromTarget 0x4508 diff --git a/data/scripts/script_0800E8D6.inc b/data/scripts/hyruleTown/script_RentSmallRoom.inc similarity index 67% rename from data/scripts/script_0800E8D6.inc rename to data/scripts/hyruleTown/script_RentSmallRoom.inc index facf15c1..c6794b6d 100644 --- a/data/scripts/script_0800E8D6.inc +++ b/data/scripts/hyruleTown/script_RentSmallRoom.inc @@ -1,11 +1,12 @@ -SCRIPT_START script_0800E8D6 +@ Hyrule Town Inn Emma after renting small room +SCRIPT_START script_RentSmallRoom BeginBlock MessageFromTarget 0x4503 CallWithArg sub_0807F854, 0x00010032 EndBlock WaitUntilTextboxCloses HasRupees 0x0032 - JumpIfNot script_0800E908 + JumpIfNot script_EmmaNotEnoughRupees ModRupees 0xffce SetLocalFlag 0x0091 MessageFromTarget 0x4508 diff --git a/data/scripts/script_08011B40.inc b/data/scripts/hyruleTown/script_Simon.inc similarity index 61% rename from data/scripts/script_08011B40.inc rename to data/scripts/hyruleTown/script_Simon.inc index 461cbf23..4c5531d3 100644 --- a/data/scripts/script_08011B40.inc +++ b/data/scripts/hyruleTown/script_Simon.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08011B40 +@ Simon +SCRIPT_START script_Simon BeginBlock _0807E9D4 DoPostScriptAction 0x000a @@ -48,36 +49,3 @@ script_08011BBC: Wait 0x003c Call sub_0806C224 Jump script_08011B9A -SCRIPT_START script_08011BE4 - BeginBlock - _0807E888 - EndBlock - CallWithArg sub_0806C2A0, 0x00000001 - WaitFor_2 - Wait 0x003c - _0807E878 - SetRoomFlag 0x0000 - PlayBgm BGM_FIGHT_THEME2 -script_08011C04: - CheckRoomFlag 0x0064 - JumpIfNot script_08011C04 - StopBgm - _0807E864 - Wait 0x003c - CameraTargetEntity - Wait 0x003c - Call Simon_CreateChest - Wait 0x003c - CameraTargetPlayer - _0807E878 -script_08011C28: - CheckLocalFlag 0x0001 - JumpIfNot script_08011C28 - _0807E888 - WaitPlayerGetItem - Wait 0x001e - CallWithArg sub_0806C2A0, 0x00000000 - WaitFor_2 - Wait 0x003c - Call sub_0806C280 -SCRIPT_END diff --git a/data/scripts/hyruleTown/script_SimonsDoor.inc b/data/scripts/hyruleTown/script_SimonsDoor.inc new file mode 100644 index 00000000..96601212 --- /dev/null +++ b/data/scripts/hyruleTown/script_SimonsDoor.inc @@ -0,0 +1,19 @@ +@ Hyrule Town locked door NPC4E for Simons Simulations +SCRIPT_START script_SimonsDoor + CheckPlayerInRegion2 0x0808 + JumpIfNot script_SimonsDoor + _0807E864 + Call sub_0807F9A4 + Call sub_0807DF28 + StartPlayerScript script_PlayerCannotEnter + WaitForSomething2 0x00000001 + CheckRoomFlag 0x0001 + JumpIf script_08010994 + _0807EB28 0x0b63 + WaitUntilTextboxCloses +script_08010994: + Call sub_0807DF50 + _0807E878 + Jump script_SimonsDoor + + diff --git a/data/scripts/hyruleTown/script_SittingPerson.inc b/data/scripts/hyruleTown/script_SittingPerson.inc new file mode 100644 index 00000000..de9aafde --- /dev/null +++ b/data/scripts/hyruleTown/script_SittingPerson.inc @@ -0,0 +1,25 @@ +@ Hyrule Town SittingPerson +SCRIPT_START script_SittingPerson + BeginBlock + Call sub_080639D0 + DoPostScriptAction 0x000a + EndBlock + BeginBlock + CallWithArg sub_08063850, 0x00000000 + EndBlock +script_0800ED20: + CheckEntityInteractType + JumpIfNot script_0800ED20 + _0807E864 + _0807EB74 + CallWithArg sub_08063850, 0x00000000 + Call sub_08063944 + WaitUntilTextboxCloses + JumpIfNot script_0800ED46 + _0807F050 0x0070 + WaitPlayerGetItem +script_0800ED46: + _0807E878 + Call sub_08063874 + CallWithArg sub_08063850, 0x00000000 + Jump script_0800ED20 diff --git a/data/scripts/script_08010B68.inc b/data/scripts/hyruleTown/script_SmallTownMinish.inc similarity index 88% rename from data/scripts/script_08010B68.inc rename to data/scripts/hyruleTown/script_SmallTownMinish.inc index f5b0775f..7438f1cd 100644 --- a/data/scripts/script_08010B68.inc +++ b/data/scripts/hyruleTown/script_SmallTownMinish.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08010B68 +@ Hyrule Town SmallTownMinish +SCRIPT_START script_SmallTownMinish BeginBlock _0807E564 JumpIfNot script_08010BAC diff --git a/data/scripts/hyruleTown/script_Stamp.inc b/data/scripts/hyruleTown/script_Stamp.inc new file mode 100644 index 00000000..c26672bc --- /dev/null +++ b/data/scripts/hyruleTown/script_Stamp.inc @@ -0,0 +1,21 @@ +@ Hyrule Town Stamp +SCRIPT_START script_Stamp + BeginBlock + DoPostScriptAction 0x0007 + _0807E9D4 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + EndBlock +script_080107AA: + CheckEntityInteractType + JumpIfNot script_080107AA + _0807E864 + Call sub_0807F2D4 + DoPostScriptAction 0x0001 + Call sub_08062CBC + WaitUntilTextboxCloses + _0807E878 + DoPostScriptAction 0x0000 + Jump script_080107AA + .2byte 0x0000 diff --git a/data/scripts/script_080142B0.inc b/data/scripts/hyruleTown/script_Stockwell.inc similarity index 95% rename from data/scripts/script_080142B0.inc rename to data/scripts/hyruleTown/script_Stockwell.inc index 7a9188ad..c079da2b 100644 --- a/data/scripts/script_080142B0.inc +++ b/data/scripts/hyruleTown/script_Stockwell.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080142B0 +@ Hyrule Town Stockwell +SCRIPT_START script_Stockwell BeginBlock CheckLocalFlag 0x0054 JumpIf script_08014382 diff --git a/data/scripts/script_08014384.inc b/data/scripts/hyruleTown/script_StockwellBuy.inc similarity index 82% rename from data/scripts/script_08014384.inc rename to data/scripts/hyruleTown/script_StockwellBuy.inc index ac5a30fe..ade623f7 100644 --- a/data/scripts/script_08014384.inc +++ b/data/scripts/hyruleTown/script_StockwellBuy.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014384 +@ Hyrule Town Stockwell do you want to buy? +SCRIPT_START script_StockwellBuy EndBlock _0807E864 WaitUntilTextboxCloses diff --git a/data/scripts/script_080143C0.inc b/data/scripts/hyruleTown/script_StockwellDogFood.inc similarity index 91% rename from data/scripts/script_080143C0.inc rename to data/scripts/hyruleTown/script_StockwellDogFood.inc index a47c473e..bbcb3dd7 100644 --- a/data/scripts/script_080143C0.inc +++ b/data/scripts/hyruleTown/script_StockwellDogFood.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080143C0 +@ Stockwell pick up dog food +SCRIPT_START script_StockwellDogFood EndBlock _0807E864 Call sub_0807DF28 diff --git a/data/scripts/hyruleTown/script_Sturgeon.inc b/data/scripts/hyruleTown/script_Sturgeon.inc new file mode 100644 index 00000000..69be9796 --- /dev/null +++ b/data/scripts/hyruleTown/script_Sturgeon.inc @@ -0,0 +1,19 @@ +@ Library Sturgeon +SCRIPT_START script_Sturgeon + BeginBlock + Call sub_08064CC0 + DoPostScriptAction 0x000a + DoPostScriptAction 0x0007 + _0807EB44 0x0002 + _0807E930 0x0000 + EndBlock +script_0800ED76: + _0807E944 + _0807E864 + _0807EB74 + Call sub_08064CD8 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800ED76 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc b/data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc new file mode 100644 index 00000000..e88200b9 --- /dev/null +++ b/data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc @@ -0,0 +1,55 @@ +@ Library Sturgeon all books collected +SCRIPT_START script_SturgeonAllBooksCollected + BeginBlock + SetEntityPositionRelative 0x0068, 0x0018 + DoPostScriptAction 0x000f + _0807EB44 0x0004 + _0807E930 0x0004 + SetEntitySpeed 0x0300 + PlaySound SFX_STAIRS + EndBlock + WaitForSomething 0x00000002 + MessageNoOverlap 0x490d + WaitUntilTextboxCloses + DoPostScriptAction 0x0007 + Call sub_08064D08 + _0807EDD4 0x0068, 0x0078 + Call sub_08064D10 + Wait 0x000f + _0807EB44 0x0002 + Wait 0x000f + Call sub_08064D08 + _0807EDD4 0x0098, 0x0078 + Call sub_08064D10 + Wait 0x000f + _0807EB44 0x0004 + PlaySound SFX_PLY_LIFT + Wait 0x000f + _0807EB44 0x0002 + _0807EDD4 0x00ac, 0x0078 + Wait 0x000f + _0807EB44 0x0004 + PlaySound SFX_PLY_LIFT + Wait 0x000f + _0807EB44 0x0002 + _0807EDD4 0x00c0, 0x0078 + Wait 0x000f + _0807EB44 0x0004 + PlaySound SFX_PLY_LIFT + Wait 0x000f + _0807EB44 0x0006 + Wait 0x001e + Call sub_08064D08 + _0807EDD4 0x0068, 0x0078 + Call sub_08064D10 + Wait 0x000f + _0807EB44 0x0000 + Wait 0x000f + Call sub_08064D08 + _0807EDD4 0x0068, 0x0018 + Call sub_08064D10 + PlaySound SFX_STAIRS + _0807E5F8 0x00000001 + DoPostScriptAction 0x0006 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Teachers.inc b/data/scripts/hyruleTown/script_Teachers.inc new file mode 100644 index 00000000..5a9dfd9f --- /dev/null +++ b/data/scripts/hyruleTown/script_Teachers.inc @@ -0,0 +1,18 @@ +@ Hyrule Town Teachers +SCRIPT_START script_Teachers + BeginBlock + Call sub_0806C674 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + EndBlock +script_0800E806: + CheckEntityInteractType + JumpIfNot script_0800E806 + _0807E864 + _0807EB74 + Call sub_0806C70C + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + Jump script_0800E806 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_TownMinish1.inc b/data/scripts/hyruleTown/script_TownMinish1.inc new file mode 100644 index 00000000..d8004d43 --- /dev/null +++ b/data/scripts/hyruleTown/script_TownMinish1.inc @@ -0,0 +1,30 @@ +@ Hyrule Town TownMinish above carpenters +@ also in library, cafe +SCRIPT_START script_TownMinish1 + BeginBlock + Call sub_0806ADFC + DoPostScriptAction 0x000a +script_0800E6F4: + EndBlock + BeginBlock + CheckEntityInteractType + JumpIf script_0800E708 + Call sub_0806AEE4 + Jump script_0800E6F4 +script_0800E708: + EndBlock + _0807E864 + Call sub_0806AFE8 + JumpIf script_0800E722 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800E6F4 +script_0800E722: + WaitUntilTextboxCloses + _0807F034 0x0057 + WaitPlayerGetItem + WaitUntilTextboxCloses + _0807E878 + Jump script_0800E6F4 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_TownMinish2.inc b/data/scripts/hyruleTown/script_TownMinish2.inc new file mode 100644 index 00000000..14f1a7ea --- /dev/null +++ b/data/scripts/hyruleTown/script_TownMinish2.inc @@ -0,0 +1,16 @@ +@ Town Minish above cafe +SCRIPT_START script_TownMinish2 + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a + EndBlock +script_0800E73E: + CheckEntityInteractType + JumpIfNot script_0800E73E + _0807E864 + _0807EB74 + CallWithArg sub_0806AF60, 0x00000000 + Call sub_0806AFE8 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800E73E diff --git a/data/scripts/hyruleTown/script_TownMinish3.inc b/data/scripts/hyruleTown/script_TownMinish3.inc new file mode 100644 index 00000000..468a7163 --- /dev/null +++ b/data/scripts/hyruleTown/script_TownMinish3.inc @@ -0,0 +1,48 @@ +@ Town Minish on book above Dr Left +SCRIPT_START script_TownMinish3 + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a + SetEntitySpeed 0x0200 + CheckGlobalFlag 0x0029 + JumpIfNot script_0800E77C + CheckGlobalFlag 0x002a + JumpIfNot script_0800E786 +script_0800E77C: + SetEntityPositionRelative 0x0188, 0x0098 + Jump script_0800E6F4 +script_0800E786: + EndBlock +script_0800E788: + BeginBlock + CheckGlobalFlag 0x002a + JumpIf script_0800E7BA + CheckEntityInteractType + JumpIf script_0800E7A4 + Call sub_0806AEE4 + EndBlock + Jump script_0800E788 +script_0800E7A4: + EndBlock + _0807E864 + Call sub_0806AFE8 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800E788 +script_0800E7BA: + DoPostScriptAction 0x000f + _0807EB44 0x0002 + CallWithArg sub_0806AF60, 0x00000004 + Call sub_0806AF70 + _0807EE04 0x0188, 0x0058 +script_0800E7D8: + EndBlock + BeginBlock + Call sub_0806AF78 + _0807EE30 + JumpIfNot script_0800E7D8 + EntityHasHeight + JumpIf script_0800E7D8 + EndBlock + Jump script_0800E6F4 diff --git a/data/scripts/hyruleTown/script_TownMinish4.inc b/data/scripts/hyruleTown/script_TownMinish4.inc new file mode 100644 index 00000000..6925a769 --- /dev/null +++ b/data/scripts/hyruleTown/script_TownMinish4.inc @@ -0,0 +1,52 @@ +@ Town Minish above Mayor left +SCRIPT_START script_TownMinish4 + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a +script_0800ED98: + EndBlock + BeginBlock + CheckEntityInteractType + JumpIf script_0800EDB6 + TestBit 0x00000001 + JumpIf script_0800EE12 + Call sub_0806AEE4 + Jump script_0800ED98 +script_0800EDB6: + EndBlock + _0807E864 + Call sub_0807DF28 + CheckLocalFlag 0x00ae + JumpIf script_0800EE3E + Wait 0x000a + _0807E5F8 0x00000001 + MessageFromTarget 0x4c07 + WaitUntilTextboxCloses + _0807E5F8 0x00000010 + MessageFromTarget 0x4c08 + WaitUntilTextboxCloses + _0807E5F8 0x00000020 + MessageFromTarget 0x4c09 + WaitUntilTextboxCloses + SetIntVariable 0x00000503 + Call sub_0807F420 + _0807E5F8 0x00000040 + Call sub_0807DF50 + _0807E878 + SetLocalFlag 0x00ae + Jump script_0800ED98 +script_0800EE12: + EndBlock + WaitForSomething2 0x00000002 + _0807EB44 0x0002 + CallWithArg sub_0806AF60, 0x00000008 + WaitForSomething2 0x00000004 + Call sub_0806AED8 + WaitForSomething2 0x00000008 + Jump script_0800ED98 +script_0800EE3E: + MessageFromTarget 0x4c16 + WaitUntilTextboxCloses + Call sub_0807DF50 + _0807E878 + Jump script_0800ED98 diff --git a/data/scripts/hyruleTown/script_TownMinish5.inc b/data/scripts/hyruleTown/script_TownMinish5.inc new file mode 100644 index 00000000..5eaf7777 --- /dev/null +++ b/data/scripts/hyruleTown/script_TownMinish5.inc @@ -0,0 +1,64 @@ +@ Town Minish above Mayor right +SCRIPT_START script_TownMinish5 + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a +script_0800EE58: + EndBlock + BeginBlock + CheckEntityInteractType + JumpIf script_0800EE76 + TestBit 0x00000001 + JumpIf script_0800EED2 + Call sub_0806AEE4 + Jump script_0800EE58 +script_0800EE76: + EndBlock + _0807E864 + Call sub_0807DF28 + CheckLocalFlag 0x00ae + JumpIf script_0800EEFE + Wait 0x000a + _0807E5F8 0x00000001 + MessageFromTarget 0x4c07 + WaitUntilTextboxCloses + _0807E5F8 0x00000002 + MessageFromTarget 0x4c08 + WaitUntilTextboxCloses + _0807E5F8 0x00000004 + MessageFromTarget 0x4c09 + WaitUntilTextboxCloses + SetIntVariable 0x00000503 + Call sub_0807F420 + _0807E5F8 0x00000008 + Call sub_0807DF50 + _0807E878 + SetLocalFlag 0x00ae + Jump script_0800EE58 +script_0800EED2: + EndBlock + WaitForSomething2 0x00000010 + _0807EB44 0x0006 + CallWithArg sub_0806AF60, 0x00000008 + WaitForSomething2 0x00000020 + Call sub_0806AED8 + WaitForSomething2 0x00000040 + Jump script_0800EE58 +script_0800EEFE: + MessageFromTarget 0x4c15 + WaitUntilTextboxCloses + Call sub_0807DF50 + _0807E878 + Jump script_0800EE58 + MessageFromTarget 0x4c07 + WaitUntilTextboxCloses + _0807E5F8 0x00000012 + Wait 0x000a + MessageFromTarget 0x4c08 + WaitUntilTextboxCloses + _0807E5F8 0x00000024 + MessageFromTarget 0x4c09 + WaitUntilTextboxCloses + _0807E5F8 0x00000048 + Call sub_080791BC +SCRIPT_END diff --git a/data/scripts/hyruleTown/script_TownMinish6.inc b/data/scripts/hyruleTown/script_TownMinish6.inc new file mode 100644 index 00000000..40da66be --- /dev/null +++ b/data/scripts/hyruleTown/script_TownMinish6.inc @@ -0,0 +1,46 @@ +@ Hyrule Town TownMinish at Dr Left +SCRIPT_START script_TownMinish6 + BeginBlock + SetEntitySpeed 0x0080 + _0807E9D4 + DoPostScriptAction 0x000a + CheckLocalFlag 0x007b + JumpIf script_0800F082 + EndBlock + Jump script_0800EFFE +script_0800EFDA: + _0807EB44 0x0006 + CallWithArg sub_0806AF60, 0x00000008 + Wait 0x0004 + _0807EB44 0x0004 + CallWithArg sub_0806AF60, 0x00000008 + Wait 0x0004 +script_0800EFFE: + _0807EB44 0x0002 + CallWithArg sub_0806AF60, 0x00000008 + Wait 0x0004 + _0807EB44 0x0002 + CallWithArg sub_0806AF60, 0x00000004 + _0807EDD4 0x0088, 0x0040 + DoPostScriptAction 0x000a + _0807EB44 0x0002 + CallWithArg sub_0806AF60, 0x00000008 + Wait 0x0004 + _0807EB44 0x0004 + CallWithArg sub_0806AF60, 0x00000008 + Wait 0x0004 + _0807EB44 0x0006 + CallWithArg sub_0806AF60, 0x00000008 + Wait 0x0004 + _0807EB44 0x0006 + CallWithArg sub_0806AF60, 0x00000004 + _0807EDD4 0x0068, 0x0040 + DoPostScriptAction 0x000a + CheckLocalFlag 0x007b + JumpIf script_0800F082 + Jump script_0800EFDA +script_0800F082: + EndBlock + Call sub_0806AEE4 + Jump script_0800F082 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Townsperson1.inc b/data/scripts/hyruleTown/script_Townsperson1.inc new file mode 100644 index 00000000..a3e3fa02 --- /dev/null +++ b/data/scripts/hyruleTown/script_Townsperson1.inc @@ -0,0 +1,18 @@ +@ Hyrule Townsperson 2? +SCRIPT_START script_Townsperson1 + BeginBlock + Call sub_08061FE4 + Call sub_08061E70 + DoPostScriptAction 0x000a + EndBlock +script_080100DC: + CheckEntityInteractType + JumpIfNot script_080100DC + _0807E864 + _0807EB74 + Call sub_08061FE4 + Call sub_08062048 + WaitUntilTextboxCloses + _0807E878 + Jump script_080100DC + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Townsperson2.inc b/data/scripts/hyruleTown/script_Townsperson2.inc new file mode 100644 index 00000000..535ade2e --- /dev/null +++ b/data/scripts/hyruleTown/script_Townsperson2.inc @@ -0,0 +1,12 @@ +@ Hyrule Town Townsperson +SCRIPT_START script_Townsperson2 + BeginBlock + Call sub_08061FE4 + Call sub_08061E70 + DoPostScriptAction 0x000a + EndBlock +script_08010110: + Wait 0x003c + Call sub_08061E90 + Jump script_08010110 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_TownspersonInDogHouse.inc b/data/scripts/hyruleTown/script_TownspersonInDogHouse.inc new file mode 100644 index 00000000..b9db7e3c --- /dev/null +++ b/data/scripts/hyruleTown/script_TownspersonInDogHouse.inc @@ -0,0 +1,19 @@ +@ Hyrule Townsperson house with dog +SCRIPT_START script_TownspersonInDogHouse + BeginBlock + Call sub_08061E70 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + Call sub_08061FD8 + EndBlock +script_0800EB44: + CheckEntityInteractType + JumpIfNot script_0800EB44 + _0807E864 + _0807EB74 + Call sub_08061FD8 + Call sub_08062048 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800EB44 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Wheaton.inc b/data/scripts/hyruleTown/script_Wheaton.inc new file mode 100644 index 00000000..277fcf4d --- /dev/null +++ b/data/scripts/hyruleTown/script_Wheaton.inc @@ -0,0 +1,21 @@ +@ Hyrule Town Wheaton +SCRIPT_START script_Wheaton + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + EndBlock +script_08010686: + CheckEntityInteractType + JumpIfNot script_08010686 + _0807E864 + _0807EB74 + HasRoomItemForSale + Call sub_0807F77C + MessageFromTargetTable 0x3c08, 0x3c09 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + Jump script_08010686 + .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_WindTribespeopleVisitor.inc b/data/scripts/hyruleTown/script_WindTribespeopleVisitor.inc new file mode 100644 index 00000000..c9cc110b --- /dev/null +++ b/data/scripts/hyruleTown/script_WindTribespeopleVisitor.inc @@ -0,0 +1,19 @@ +@ Hyrule Town Windstribepeople in house +SCRIPT_START script_WindTribespeopleVisitor + BeginBlock + Call sub_0806C870 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + _0807E930 0x0000 + EndBlock +script_0800EB0E: + _0807E30C + JumpIfNot script_0800EB0E + _0807E864 + _0807EB74 + Call sub_0806C90C + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800EB0E + .2byte 0x0000 diff --git a/data/scripts/script_0800C350.inc b/data/scripts/kinstoneFusion/script_BigGoronKinstone1.inc similarity index 71% rename from data/scripts/script_0800C350.inc rename to data/scripts/kinstoneFusion/script_BigGoronKinstone1.inc index 06f641d6..a7bee66e 100644 --- a/data/scripts/script_0800C350.inc +++ b/data/scripts/kinstoneFusion/script_BigGoronKinstone1.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C350 +@ BigGoron Kinstone cutscene 1 +SCRIPT_START script_BigGoronKinstone1 BeginBlock CallWithArg sub_0806D658, 0x00000003 SetEntitySpeed 0x0200 diff --git a/data/scripts/script_0800C3CC.inc b/data/scripts/kinstoneFusion/script_BigGoronKinstone2.inc similarity index 80% rename from data/scripts/script_0800C3CC.inc rename to data/scripts/kinstoneFusion/script_BigGoronKinstone2.inc index 3e0cd6d7..bcc6ae9a 100644 --- a/data/scripts/script_0800C3CC.inc +++ b/data/scripts/kinstoneFusion/script_BigGoronKinstone2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C3CC +@ BigGoron Kinstone cutscene2 +SCRIPT_START script_BigGoronKinstone2 BeginBlock Call sub_0806D660 SetEntitySpeed 0x0080 diff --git a/data/scripts/script_0800C410.inc b/data/scripts/kinstoneFusion/script_BigGoronKinstone3.inc similarity index 81% rename from data/scripts/script_0800C410.inc rename to data/scripts/kinstoneFusion/script_BigGoronKinstone3.inc index a0cd7597..a7ed3fdc 100644 --- a/data/scripts/script_0800C410.inc +++ b/data/scripts/kinstoneFusion/script_BigGoronKinstone3.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C410 +@ BigGoron Kinstone cutscene 3 +SCRIPT_START script_BigGoronKinstone3 BeginBlock Call sub_0806D660 SetEntitySpeed 0x0080 diff --git a/data/scripts/script_0800C370.inc b/data/scripts/kinstoneFusion/script_BigGoronKinstone4.inc similarity index 81% rename from data/scripts/script_0800C370.inc rename to data/scripts/kinstoneFusion/script_BigGoronKinstone4.inc index 43489062..76f39ce4 100644 --- a/data/scripts/script_0800C370.inc +++ b/data/scripts/kinstoneFusion/script_BigGoronKinstone4.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C370 +@ BigGoron Kinstone cutscene 4 +SCRIPT_START script_BigGoronKinstone4 _0807EEF4 0xfff8, 0x0000 _0807EEF4 0x0010, 0x0000 _0807EEF4 0xfff0, 0x0000 diff --git a/data/scripts/script_0800C3B0.inc b/data/scripts/kinstoneFusion/script_BigGoronKinstone5.inc similarity index 63% rename from data/scripts/script_0800C3B0.inc rename to data/scripts/kinstoneFusion/script_BigGoronKinstone5.inc index 7c2582f8..73498142 100644 --- a/data/scripts/script_0800C3B0.inc +++ b/data/scripts/kinstoneFusion/script_BigGoronKinstone5.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C3B0 +@ BigGoron Kinstone Cutscene 5 +SCRIPT_START script_BigGoronKinstone5 SetEntitySpeed 0x0080 _0807EEF4 0x0000, 0xff30 _0807F0C8 0x0000, 0x0000 diff --git a/data/scripts/script_0800BB30.inc b/data/scripts/kinstoneFusion/script_BombMinishKinstone.inc similarity index 76% rename from data/scripts/script_0800BB30.inc rename to data/scripts/kinstoneFusion/script_BombMinishKinstone.inc index 5b5871ad..b72d6684 100644 --- a/data/scripts/script_0800BB30.inc +++ b/data/scripts/kinstoneFusion/script_BombMinishKinstone.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800BB30 +@ Bomb Forest Minish during Kinstone cutscene +SCRIPT_START script_BombMinishKinstone BeginBlock _0807EB44 0x0004 DoPostScriptAction 0x0000 diff --git a/data/scripts/script_0800BBDC.inc b/data/scripts/kinstoneFusion/script_CarlovKinstone.inc similarity index 79% rename from data/scripts/script_0800BBDC.inc rename to data/scripts/kinstoneFusion/script_CarlovKinstone.inc index bed21d4e..93101d5e 100644 --- a/data/scripts/script_0800BBDC.inc +++ b/data/scripts/kinstoneFusion/script_CarlovKinstone.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800BBDC +@ Kinstone Cutscene for Carlov +SCRIPT_START script_CarlovKinstone BeginBlock _0807E930 0x0000 EndBlock diff --git a/data/scripts/script_0800BC08.inc b/data/scripts/kinstoneFusion/script_GhostBrotherKinstone.inc similarity index 83% rename from data/scripts/script_0800BC08.inc rename to data/scripts/kinstoneFusion/script_GhostBrotherKinstone.inc index 237767b7..ffa2b0be 100644 --- a/data/scripts/script_0800BC08.inc +++ b/data/scripts/kinstoneFusion/script_GhostBrotherKinstone.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800BC08 +@ Ghost Brother in Kinstone cutscene +SCRIPT_START script_GhostBrotherKinstone BeginBlock DoPostScriptAction 0x0007 _0807EB44 0x0004 diff --git a/data/scripts/kinstoneFusion/script_GormanFirstAppearance.inc b/data/scripts/kinstoneFusion/script_GormanFirstAppearance.inc new file mode 100644 index 00000000..ea1e2150 --- /dev/null +++ b/data/scripts/kinstoneFusion/script_GormanFirstAppearance.inc @@ -0,0 +1,24 @@ +@ Hyrule Town Gorman during Kinstone cutscene for first empty house +SCRIPT_START script_GormanFirstAppearance + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + SetEntitySpeed 0x0040 + Call sub_0807F348 + EndBlock +script_0800BA8E: + CheckRoomFlag 0x00ff + JumpIfNot script_0800BA8E + _0807EDD4 0x02f8, 0x0350 + Wait 0x001e + DoPostScriptAction 0x0004 + Wait 0x003c + _0807EB44 0x0006 + Wait 0x001e + _0807EDD4 0x02f0, 0x0350 + Wait 0x001e + MessageNoOverlap 0x0e00 + WaitUntilTextboxCloses + Wait 0x0078 + Call sub_08054968 +SCRIPT_END diff --git a/data/scripts/script_0800BCE8.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone2.inc similarity index 89% rename from data/scripts/script_0800BCE8.inc rename to data/scripts/kinstoneFusion/script_Goron1Kinstone2.inc index f8c1841c..9d560766 100644 --- a/data/scripts/script_0800BCE8.inc +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800BCE8 +@ 1st Goron during Kinstone cutscene for 2nd Goron +SCRIPT_START script_Goron1Kinstone2 BeginBlock _0807EB44 0x0004 _0807E930 0x0008 diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc new file mode 100644 index 00000000..21008023 --- /dev/null +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc @@ -0,0 +1,18 @@ +@ 1st Goron during 3rd Goron Kinstone cutscene +SCRIPT_START script_Goron1Kinstone3 + BeginBlock + _0807EB44 0x0004 + _0807E930 0x0008 + Call sub_0807F348 + EndBlock + WaitFor_2 + Wait 0x00f0 + _0807E930 0x0000 + _0807EB44 0x0002 + Wait 0x003c + MessageNoOverlap 0x0e0d + WaitUntilTextboxCloses + _0807E930 0x0008 + Wait 0x003c + Jump script_0800BE88 + .2byte 0x0000 diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc new file mode 100644 index 00000000..66b724a4 --- /dev/null +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc @@ -0,0 +1,18 @@ +@ 1st Goron during 4th Goron cutscene +SCRIPT_START script_Goron1Kinstone4 + BeginBlock + _0807EB44 0x0004 + _0807E930 0x0008 + Call sub_0807F348 + EndBlock + WaitFor_2 + Wait 0x00f0 + _0807E930 0x0000 + _0807EB44 0x0002 + Wait 0x003c + MessageNoOverlap 0x0e10 + WaitUntilTextboxCloses + _0807E930 0x0008 + Wait 0x003c + Jump script_0800BFA4 + .2byte 0x0000 diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc new file mode 100644 index 00000000..fd835e10 --- /dev/null +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc @@ -0,0 +1,18 @@ +@ 1st Goron during 5th Goron cutscene +SCRIPT_START script_Goron1Kinstone5 + BeginBlock + _0807EB44 0x0004 + _0807E930 0x0008 + Call sub_0807F348 + EndBlock + WaitFor_2 + Wait 0x00f0 + _0807E930 0x0000 + _0807EB44 0x0002 + Wait 0x003c + MessageNoOverlap 0x0e13 + WaitUntilTextboxCloses + _0807E930 0x0008 + Wait 0x003c + Jump script_0800C11C + .2byte 0x0000 diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc new file mode 100644 index 00000000..7457449d --- /dev/null +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc @@ -0,0 +1,18 @@ +@ 1st Goron in 6th Goron cutscene +SCRIPT_START script_Goron1Kinstone6 + BeginBlock + _0807EB44 0x0004 + _0807E930 0x0008 + Call sub_0807F348 + EndBlock + WaitFor_2 + Wait 0x00f0 + _0807E930 0x0000 + _0807EB44 0x0002 + Wait 0x003c + MessageNoOverlap 0x0e16 + WaitUntilTextboxCloses + _0807E930 0x0008 + Wait 0x003c + Jump script_0800C244 + .2byte 0x0000 diff --git a/data/scripts/script_0800BD78.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone2.inc similarity index 89% rename from data/scripts/script_0800BD78.inc rename to data/scripts/kinstoneFusion/script_Goron2Kinstone2.inc index 814887f0..b438f5dd 100644 --- a/data/scripts/script_0800BD78.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800BD78 +@ 2nd Goron during Kinstone cutscene for 2nd Goron +SCRIPT_START script_Goron2Kinstone2 BeginBlock _0807EB44 0x0000 _0807E930 0x0000 diff --git a/data/scripts/script_0800BE1C.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone3.inc similarity index 64% rename from data/scripts/script_0800BE1C.inc rename to data/scripts/kinstoneFusion/script_Goron2Kinstone3.inc index d5217ce9..0906ab67 100644 --- a/data/scripts/script_0800BE1C.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone3.inc @@ -1,21 +1,5 @@ -SCRIPT_START script_0800BE1C - BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 - EndBlock - WaitFor_2 - Wait 0x00f0 - _0807E930 0x0000 - _0807EB44 0x0002 - Wait 0x003c - MessageNoOverlap 0x0e0d - WaitUntilTextboxCloses - _0807E930 0x0008 - Wait 0x003c - Jump script_0800BE88 - .2byte 0x0000 -SCRIPT_START script_0800BE54 +@ 2nd Goron during 3rd Goron cutscene +SCRIPT_START script_Goron2Kinstone3 BeginBlock _0807EB44 0x0004 _0807E930 0x0008 diff --git a/data/scripts/script_0800BF38.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone4.inc similarity index 68% rename from data/scripts/script_0800BF38.inc rename to data/scripts/kinstoneFusion/script_Goron2Kinstone4.inc index 5c982ab0..d0e7f176 100644 --- a/data/scripts/script_0800BF38.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone4.inc @@ -1,21 +1,5 @@ -SCRIPT_START script_0800BF38 - BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 - EndBlock - WaitFor_2 - Wait 0x00f0 - _0807E930 0x0000 - _0807EB44 0x0002 - Wait 0x003c - MessageNoOverlap 0x0e10 - WaitUntilTextboxCloses - _0807E930 0x0008 - Wait 0x003c - Jump script_0800BFA4 - .2byte 0x0000 -SCRIPT_START script_0800BF70 +@ 2nd and 3rd Goron during 4th Goron cutscene +SCRIPT_START script_Goron2Kinstone4 BeginBlock _0807EB44 0x0004 _0807E930 0x0008 diff --git a/data/scripts/script_0800C0B0.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone5.inc similarity index 64% rename from data/scripts/script_0800C0B0.inc rename to data/scripts/kinstoneFusion/script_Goron2Kinstone5.inc index e02b5368..9faaee2b 100644 --- a/data/scripts/script_0800C0B0.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone5.inc @@ -1,21 +1,5 @@ -SCRIPT_START script_0800C0B0 - BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 - EndBlock - WaitFor_2 - Wait 0x00f0 - _0807E930 0x0000 - _0807EB44 0x0002 - Wait 0x003c - MessageNoOverlap 0x0e13 - WaitUntilTextboxCloses - _0807E930 0x0008 - Wait 0x003c - Jump script_0800C11C - .2byte 0x0000 -SCRIPT_START script_0800C0E8 +@ 2nd, 3rd and 4th Goron during 5th Goron cutscene +SCRIPT_START script_Goron2Kinstone5 BeginBlock _0807EB44 0x0004 _0807E930 0x0008 diff --git a/data/scripts/script_0800C1D8.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone6.inc similarity index 68% rename from data/scripts/script_0800C1D8.inc rename to data/scripts/kinstoneFusion/script_Goron2Kinstone6.inc index 0d78bf42..bcd34839 100644 --- a/data/scripts/script_0800C1D8.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone6.inc @@ -1,21 +1,5 @@ -SCRIPT_START script_0800C1D8 - BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 - EndBlock - WaitFor_2 - Wait 0x00f0 - _0807E930 0x0000 - _0807EB44 0x0002 - Wait 0x003c - MessageNoOverlap 0x0e16 - WaitUntilTextboxCloses - _0807E930 0x0008 - Wait 0x003c - Jump script_0800C244 - .2byte 0x0000 -SCRIPT_START script_0800C210 +@ 2nd to 5th Goron in 6th Goron cutscene +SCRIPT_START script_Goron2Kinstone6 BeginBlock _0807EB44 0x0004 _0807E930 0x0008 diff --git a/data/scripts/script_0800BECC.inc b/data/scripts/kinstoneFusion/script_Goron3Kinstone3.inc similarity index 87% rename from data/scripts/script_0800BECC.inc rename to data/scripts/kinstoneFusion/script_Goron3Kinstone3.inc index e16b42dd..1616c8fc 100644 --- a/data/scripts/script_0800BECC.inc +++ b/data/scripts/kinstoneFusion/script_Goron3Kinstone3.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800BECC +@ 3rd Goron during 3rd Goron cutscene +SCRIPT_START script_Goron3Kinstone3 BeginBlock _0807EB44 0x0000 _0807E930 0x0000 diff --git a/data/scripts/script_0800C004.inc b/data/scripts/kinstoneFusion/script_Goron4Kinstone4.inc similarity index 91% rename from data/scripts/script_0800C004.inc rename to data/scripts/kinstoneFusion/script_Goron4Kinstone4.inc index 46d7e104..29de7389 100644 --- a/data/scripts/script_0800C004.inc +++ b/data/scripts/kinstoneFusion/script_Goron4Kinstone4.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C004 +@ 4th Goron during 4th Goron cutscene +SCRIPT_START script_Goron4Kinstone4 BeginBlock _0807EB44 0x0000 _0807E930 0x0000 diff --git a/data/scripts/script_0800C160.inc b/data/scripts/kinstoneFusion/script_Goron5Kinstone5.inc similarity index 88% rename from data/scripts/script_0800C160.inc rename to data/scripts/kinstoneFusion/script_Goron5Kinstone5.inc index 3fa4ab2c..0b75e7a9 100644 --- a/data/scripts/script_0800C160.inc +++ b/data/scripts/kinstoneFusion/script_Goron5Kinstone5.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C160 +@ 5th Goron during 5th Goron cutscene +SCRIPT_START script_Goron5Kinstone5 BeginBlock _0807EB44 0x0000 _0807E930 0x0000 diff --git a/data/scripts/script_0800C2A4.inc b/data/scripts/kinstoneFusion/script_Goron6Kindstone6.inc similarity index 91% rename from data/scripts/script_0800C2A4.inc rename to data/scripts/kinstoneFusion/script_Goron6Kindstone6.inc index 5c40fc25..1fb61b08 100644 --- a/data/scripts/script_0800C2A4.inc +++ b/data/scripts/kinstoneFusion/script_Goron6Kindstone6.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C2A4 +@ 6th Goron in 6th Goron cutscene +SCRIPT_START script_Goron6Kindstone6 BeginBlock _0807EB44 0x0000 _0807E930 0x0000 diff --git a/data/scripts/script_0800BC50.inc b/data/scripts/kinstoneFusion/script_GoronKinstone.inc similarity index 91% rename from data/scripts/script_0800BC50.inc rename to data/scripts/kinstoneFusion/script_GoronKinstone.inc index 377ff8ef..3c4e7716 100644 --- a/data/scripts/script_0800BC50.inc +++ b/data/scripts/kinstoneFusion/script_GoronKinstone.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800BC50 +@ Goron in fusing kinstone cutscene +SCRIPT_START script_GoronKinstone BeginBlock _0807EB44 0x0004 _0807E930 0x0008 diff --git a/data/scripts/script_0800BB64.inc b/data/scripts/kinstoneFusion/script_GoronMerchantArriving.inc similarity index 78% rename from data/scripts/script_0800BB64.inc rename to data/scripts/kinstoneFusion/script_GoronMerchantArriving.inc index 2e582383..7787515f 100644 --- a/data/scripts/script_0800BB64.inc +++ b/data/scripts/kinstoneFusion/script_GoronMerchantArriving.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800BB64 +@ Goron Merchant in arriving Kinstone cutscene +SCRIPT_START script_GoronMerchantArriving BeginBlock _0807EB44 0x0006 DoPostScriptAction 0x0000 diff --git a/data/scripts/script_0800BACC.inc b/data/scripts/kinstoneFusion/script_MutohKinstone.inc similarity index 79% rename from data/scripts/script_0800BACC.inc rename to data/scripts/kinstoneFusion/script_MutohKinstone.inc index 5195fe1e..ecc3f65b 100644 --- a/data/scripts/script_0800BACC.inc +++ b/data/scripts/kinstoneFusion/script_MutohKinstone.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800BACC +@ Hyrule Town Mutoh in Kinstone cutscene +SCRIPT_START script_MutohKinstone BeginBlock _0807EB44 0x0004 DoPostScriptAction 0x0000 diff --git a/data/scripts/script_0800C45C.inc b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSpark.inc similarity index 75% rename from data/scripts/script_0800C45C.inc rename to data/scripts/kinstoneFusion/script_ObjectB3KinstoneSpark.inc index c98b696d..bc194636 100644 --- a/data/scripts/script_0800C45C.inc +++ b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSpark.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C45C +@ OBJECT_B3 spark in all fusing kinstone cutscenes +SCRIPT_START script_ObjectB3KinstoneSpark BeginBlock SetEntitySpeed 0x0180 _0807E930 0x0004 diff --git a/data/scripts/script_0800C494.inc b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkFromBottom.inc similarity index 72% rename from data/scripts/script_0800C494.inc rename to data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkFromBottom.inc index 6e278038..6b6cfe46 100644 --- a/data/scripts/script_0800C494.inc +++ b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkFromBottom.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C494 +@ Hyrule Town OBJECT_B3 Kinstone spark red from bottom +SCRIPT_START script_ObjectB3KinstoneSparkFromBottom BeginBlock SetEntitySpeed 0x0120 _0807E930 0x0004 diff --git a/data/scripts/script_0800C50C.inc b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc similarity index 76% rename from data/scripts/script_0800C50C.inc rename to data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc index fbb7b440..24f5b296 100644 --- a/data/scripts/script_0800C50C.inc +++ b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc @@ -1,4 +1,6 @@ -SCRIPT_START script_0800C50C +@ OBJECT_B3 during Goron cutscene +@ blue from top +SCRIPT_START script_ObjectB3KinstoneSparkGoron BeginBlock SetEntitySpeed 0x0100 _0807E930 0x0004 diff --git a/data/scripts/script_0800C4D0.inc b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoronMerchang.inc similarity index 66% rename from data/scripts/script_0800C4D0.inc rename to data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoronMerchang.inc index bdd65634..24ef7101 100644 --- a/data/scripts/script_0800C4D0.inc +++ b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoronMerchang.inc @@ -1,4 +1,6 @@ -SCRIPT_START script_0800C4D0 +@ OBJECT_B3 in Goron Merchant arriving Kinstone cutscene +@ blue from left to right +SCRIPT_START script_ObjectB3KinstoneSparkGoronMerchang BeginBlock SetEntitySpeed 0x0180 _0807E930 0x0004 diff --git a/data/scripts/script_0800BBA4.inc b/data/scripts/kinstoneFusion/script_StampKinstone.inc similarity index 80% rename from data/scripts/script_0800BBA4.inc rename to data/scripts/kinstoneFusion/script_StampKinstone.inc index 76aa8ebe..2e026161 100644 --- a/data/scripts/script_0800BBA4.inc +++ b/data/scripts/kinstoneFusion/script_StampKinstone.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800BBA4 +@ Hyrule Town Stamp in Kinstone Cutscene +SCRIPT_START script_StampKinstone BeginBlock DoPostScriptAction 0x0007 _0807EB44 0x0004 diff --git a/data/scripts/script_0800BB00.inc b/data/scripts/kinstoneFusion/script_SyrupKinstone.inc similarity index 80% rename from data/scripts/script_0800BB00.inc rename to data/scripts/kinstoneFusion/script_SyrupKinstone.inc index 31c1ae72..c76dd55b 100644 --- a/data/scripts/script_0800BB00.inc +++ b/data/scripts/kinstoneFusion/script_SyrupKinstone.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800BB00 +@ Syrup during Kinstone cutscene +SCRIPT_START script_SyrupKinstone BeginBlock EndBlock script_0800BB04: diff --git a/data/scripts/script_0800B0AC.inc b/data/scripts/lakeHylia/script_EzloTalkOcarina.inc similarity index 69% rename from data/scripts/script_0800B0AC.inc rename to data/scripts/lakeHylia/script_EzloTalkOcarina.inc index 4fd99865..0846a9a4 100644 --- a/data/scripts/script_0800B0AC.inc +++ b/data/scripts/lakeHylia/script_EzloTalkOcarina.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800B0AC +@ Ezlo talk after first ocarina travel +SCRIPT_START script_EzloTalkOcarina EndBlock _0807E864 Call sub_0807FA40 diff --git a/data/scripts/lakeHylia/script_ForestMinish3.inc b/data/scripts/lakeHylia/script_ForestMinish3.inc new file mode 100644 index 00000000..583eeaa9 --- /dev/null +++ b/data/scripts/lakeHylia/script_ForestMinish3.inc @@ -0,0 +1,20 @@ +@ Lake Hylia Forest Minish telling us to go to the library +SCRIPT_START script_ForestMinish3 + BeginBlock + Call sub_08060090 + DoPostScriptAction 0x000a + EndBlock +script_0800C5D6: + BeginBlock + CheckEntityInteractType + JumpIf script_0800C5EA + Call sub_08060158 + EndBlock + Jump script_0800C5D6 +script_0800C5EA: + EndBlock + _0807E864 + Call sub_08060270 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800C5D6 diff --git a/data/scripts/script_0801232C.inc b/data/scripts/lakeHylia/script_KingGustafHologram.inc similarity index 65% rename from data/scripts/script_0801232C.inc rename to data/scripts/lakeHylia/script_KingGustafHologram.inc index 82ed1d1a..df7f4860 100644 --- a/data/scripts/script_0801232C.inc +++ b/data/scripts/lakeHylia/script_KingGustafHologram.inc @@ -1,25 +1,5 @@ -SCRIPT_START script_0801232C - BeginBlock - _0807EB74 - _0807E9D4 - DoPostScriptAction 0x000a - EndBlock -script_08012338: - CheckEntityInteractType - JumpIfNot script_08012338 - _0807EB74 - _0807E864 - MessageFromTarget 0x2304 - WaitUntilTextboxCloses - CheckLocalFlag 0x0042 - JumpIf script_0801235A - SetLocalFlag 0x0042 - _0807F034 0x0057 - WaitPlayerGetItem -script_0801235A: - _0807E878 - Jump script_08012338 -SCRIPT_START script_08012360 +@ After ToD King Gustaf +SCRIPT_START script_KingGustafHologram BeginBlock DoPostScriptAction 0x0008 EndBlock @@ -46,7 +26,7 @@ script_08012368: SetEntity0x20 0xffff8000 Wait 0x003c _0807E8E4_0 - StartPlayerScript script_08012410 + StartPlayerScript script_PlayerAfterToD WaitForSomething2 0x00000001 MessageNoOverlap 0x1402 WaitUntilTextboxCloses diff --git a/data/scripts/script_0800AFB0.inc b/data/scripts/lakeHylia/script_Object69AfterToD.inc similarity index 82% rename from data/scripts/script_0800AFB0.inc rename to data/scripts/lakeHylia/script_Object69AfterToD.inc index 88878bca..2ec33ffe 100644 --- a/data/scripts/script_0800AFB0.inc +++ b/data/scripts/lakeHylia/script_Object69AfterToD.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AFB0 +@ After ToD OBJECT_69 Cutscene +SCRIPT_START script_Object69AfterToD _0807E864 script_0800AFB2: EndBlock diff --git a/data/scripts/script_08012410.inc b/data/scripts/lakeHylia/script_PlayerAfterToD.inc similarity index 73% rename from data/scripts/script_08012410.inc rename to data/scripts/lakeHylia/script_PlayerAfterToD.inc index 82f5c189..c84c96c6 100644 --- a/data/scripts/script_08012410.inc +++ b/data/scripts/lakeHylia/script_PlayerAfterToD.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08012410 +@ Player after ToD +SCRIPT_START script_PlayerAfterToD BeginBlock SetEntitySpeed 0x0080 EndBlock diff --git a/data/scripts/script_0800B5C4.inc b/data/scripts/lakeHylia/script_ShopwellsDog.inc similarity index 78% rename from data/scripts/script_0800B5C4.inc rename to data/scripts/lakeHylia/script_ShopwellsDog.inc index 30532b5e..fbf22a4f 100644 --- a/data/scripts/script_0800B5C4.inc +++ b/data/scripts/lakeHylia/script_ShopwellsDog.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800B5C4 +@ Lake Hylia Dog +SCRIPT_START script_ShopwellsDog BeginBlock SetEntitySpeed 0x0100 _0807EB44 0x0004 diff --git a/data/scripts/lonLonRanch/scriptMalonInside.inc b/data/scripts/lonLonRanch/scriptMalonInside.inc new file mode 100644 index 00000000..6cbe0145 --- /dev/null +++ b/data/scripts/lonLonRanch/scriptMalonInside.inc @@ -0,0 +1,21 @@ +@ Lon Lon Farm Malon in ranch house? +SCRIPT_START scriptMalonInside + BeginBlock + DoPostScriptAction 0x000a + DoPostScriptAction 0x0007 + _0807EB44 0x0004 + _0807E930 0x000a + EndBlock +script_08014F0C: + CheckEntityInteractType + JumpIfNot script_08014F0C + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + MessageNoOverlap 0x200e + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + _0807E930 0x000a + Jump script_08014F0C + .2byte 0x0000 diff --git a/data/scripts/lonLonRanch/script_GoronPunching.inc b/data/scripts/lonLonRanch/script_GoronPunching.inc new file mode 100644 index 00000000..77b616b6 --- /dev/null +++ b/data/scripts/lonLonRanch/script_GoronPunching.inc @@ -0,0 +1,42 @@ +@ Lon Lon Ranch Goron punching at cave +SCRIPT_START script_GoronPunching + BeginBlock + _0807E9D4 + Call sub_080694EC + DoPostScriptAction 0x000a + Call sub_080694B0 + EndBlock +script_0800B9CA: + Call sub_0807F434 + JumpTable script_0800B9CA, script_0800B9D8, script_0800B9F4 +script_0800B9D8: + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + Call sub_080694D8 + WaitUntilTextboxCloses + Call sub_080694EC + _0807E878 + Jump script_0800B9CA +script_0800B9F4: + _0807E864 + _0807EB74 + DoPostScriptAction 0x0000 + Call sub_0807F650 + _0807E9F0 + _0807E864 + Call sub_0806948C + JumpIf script_0800BA24 + WaitUntilTextboxCloses + Call sub_080694EC + Call sub_0807DF50 + _0807E878 + Jump script_0800B9CA +script_0800BA24: + WaitUntilTextboxCloses + _0807E9DC + _0807E9D4 + Call sub_080694EC + Call sub_0807DF50 + _0807E878 + Jump script_0800B9CA diff --git a/data/scripts/script_0800B574.inc b/data/scripts/lonLonRanch/script_LonLonRanchDoor.inc similarity index 88% rename from data/scripts/script_0800B574.inc rename to data/scripts/lonLonRanch/script_LonLonRanchDoor.inc index 1170c517..06147589 100644 --- a/data/scripts/script_0800B574.inc +++ b/data/scripts/lonLonRanch/script_LonLonRanchDoor.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800B574 +@ Lon Lon Ranch Door +SCRIPT_START script_LonLonRanchDoor BeginBlock DoPostScriptAction 0x0007 CheckGlobalFlag 0x001d diff --git a/data/scripts/script_0800B4AC.inc b/data/scripts/lonLonRanch/script_MalonLostKey.inc similarity index 93% rename from data/scripts/script_0800B4AC.inc rename to data/scripts/lonLonRanch/script_MalonLostKey.inc index d8d094a2..c9ca75d0 100644 --- a/data/scripts/script_0800B4AC.inc +++ b/data/scripts/lonLonRanch/script_MalonLostKey.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800B4AC +@ Lon Lon Ranch Malon lost key +SCRIPT_START script_MalonLostKey BeginBlock DoPostScriptAction 0x000a DoPostScriptAction 0x0001 diff --git a/data/scripts/script_0800B54C.inc b/data/scripts/lonLonRanch/script_PlayerGiveKey.inc similarity index 73% rename from data/scripts/script_0800B54C.inc rename to data/scripts/lonLonRanch/script_PlayerGiveKey.inc index 2b50271b..b1559811 100644 --- a/data/scripts/script_0800B54C.inc +++ b/data/scripts/lonLonRanch/script_PlayerGiveKey.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800B54C +@ Player at Lon Lon Ranch give key +SCRIPT_START script_PlayerGiveKey BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800B41C.inc b/data/scripts/lonLonRanch/script_TalonGotKey.inc similarity index 85% rename from data/scripts/script_0800B41C.inc rename to data/scripts/lonLonRanch/script_TalonGotKey.inc index edc7331b..abdcc262 100644 --- a/data/scripts/script_0800B41C.inc +++ b/data/scripts/lonLonRanch/script_TalonGotKey.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800B41C +@ Lon Lon Ranch Talon you have the key +SCRIPT_START script_TalonGotKey BeginBlock SetEntitySpeed 0x00c0 _0807E908 0x0001 @@ -9,7 +10,7 @@ SCRIPT_START script_0800B41C Wait 0x000a DoPostScriptAction 0x0004 _0807E5F8 0x00000008 - StartPlayerScript script_0800B54C + StartPlayerScript script_PlayerGiveKey _0807EDD4 0x0140, 0x0298 _0807EB74 WaitForSomething2 0x00000004 diff --git a/data/scripts/lonLonRanch/script_TalonInside.inc b/data/scripts/lonLonRanch/script_TalonInside.inc new file mode 100644 index 00000000..81a53026 --- /dev/null +++ b/data/scripts/lonLonRanch/script_TalonInside.inc @@ -0,0 +1,37 @@ +@ Lon Lon Farm Talon in ranch house? +SCRIPT_START script_TalonInside + BeginBlock + DoPostScriptAction 0x000a + DoPostScriptAction 0x0007 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + EndBlock +script_08014E64: + CheckEntityInteractType + JumpIfNot script_08014E64 + _0807E864 + Call sub_0807DF28 + _0807EB74 + CallWithArg sub_0807F78C, 0x00000022 + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_08014EBC + CallWithArg sub_0807F7C4, 0x00000022 + JumpIfNot script_08014EB0 + _0807E48C 0x0020 + JumpIfNot script_08014EB8 + CallWithArg sub_0807F800, 0x00000022 + WaitPlayerGetItem + MessageNoOverlap 0x0a04 + Jump script_08014EBC +script_08014EB0: + MessageNoOverlap 0x0a03 + Jump script_08014EBC +script_08014EB8: + MessageNoOverlap 0x0a02 +script_08014EBC: + WaitUntilTextboxCloses + Call sub_0807DF50 + _0807E878 + Jump script_08014E64 + .2byte 0x0000 diff --git a/data/scripts/lonLonRanch/script_TalonInside2.inc b/data/scripts/lonLonRanch/script_TalonInside2.inc new file mode 100644 index 00000000..ff3fcf53 --- /dev/null +++ b/data/scripts/lonLonRanch/script_TalonInside2.inc @@ -0,0 +1,18 @@ +@ Lon Lon Ranch Talon inside +SCRIPT_START script_TalonInside2 + BeginBlock + DoPostScriptAction 0x000a + DoPostScriptAction 0x0007 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + EndBlock +script_08014EE0: + CheckEntityInteractType + JumpIfNot script_08014EE0 + _0807E864 + _0807EB74 + MessageNoOverlap 0x200d + WaitUntilTextboxCloses + _0807E878 + Jump script_08014EE0 + .2byte 0x0000 diff --git a/data/scripts/script_0800B3A4.inc b/data/scripts/lonLonRanch/script_TalonLostKey.inc similarity index 88% rename from data/scripts/script_0800B3A4.inc rename to data/scripts/lonLonRanch/script_TalonLostKey.inc index 4347fbfc..244d7435 100644 --- a/data/scripts/script_0800B3A4.inc +++ b/data/scripts/lonLonRanch/script_TalonLostKey.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800B3A4 +@ Lon Lon Ranch Talon lost key +SCRIPT_START script_TalonLostKey BeginBlock DoPostScriptAction 0x000a Call sub_0807F158 diff --git a/data/scripts/script_08012C68.inc b/data/scripts/minishWoods/script_08012C98.inc similarity index 62% rename from data/scripts/script_08012C68.inc rename to data/scripts/minishWoods/script_08012C98.inc index c63f591e..64ddd7ac 100644 --- a/data/scripts/script_08012C68.inc +++ b/data/scripts/minishWoods/script_08012C98.inc @@ -1,21 +1,5 @@ -SCRIPT_START script_08012C68 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x0008 - SetIntVariable 0x00000000 - Call sub_0806DA04 - EndBlock -script_08012C7E: - CheckEntityInteractType - JumpIfNot script_08012C7E - _0807E864 - _0807E8E4_0 - MessageFromTarget 0x111d - WaitUntilTextboxCloses - SetGlobalFlag 0x0022 - _0807E878 - Jump script_08012C7E - +@ Minish Woods OBJECT_69 ? +@ Ezlo Trigger to explain how portals work SCRIPT_START script_08012C98 CheckGlobalFlag 0x0014 JumpIfNot script_08012C98 diff --git a/data/scripts/script_08012D18.inc b/data/scripts/minishWoods/script_08012D18.inc similarity index 87% rename from data/scripts/script_08012D18.inc rename to data/scripts/minishWoods/script_08012D18.inc index 206fd304..8bffc355 100644 --- a/data/scripts/script_08012D18.inc +++ b/data/scripts/minishWoods/script_08012D18.inc @@ -1,3 +1,4 @@ +@ Minish Woods OBJECT_69 2? SCRIPT_START script_08012D18 EndBlock BeginBlock @@ -13,7 +14,7 @@ SCRIPT_START script_08012D18 Call sub_0807DF28 _0807EB28 0x111a WaitUntilTextboxCloses - StartPlayerScript script_08010A38 + StartPlayerScript script_PlayerCannotEnter WaitForSomething2 0x00000001 Call sub_0807DF50 _0807E878 diff --git a/data/scripts/script_08009F14.inc b/data/scripts/minishWoods/script_BombMinish.inc similarity index 95% rename from data/scripts/script_08009F14.inc rename to data/scripts/minishWoods/script_BombMinish.inc index 16130637..a9c6e55c 100644 --- a/data/scripts/script_08009F14.inc +++ b/data/scripts/minishWoods/script_BombMinish.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009F14 +@ Minish Woods Bomb Minish +SCRIPT_START script_BombMinish BeginBlock _0807EB44 0x0004 Call sub_08060090 @@ -18,7 +19,7 @@ script_08009F36: _0807E864 Call sub_0807DF28 DoPostScriptAction 0x000b - StartPlayerScript script_0800A088 + StartPlayerScript script_PlayerAtBombMinish WaitForSomething2 0x00000002 Call sub_0806014C MessageFromTargetPos 0x1f01, 0x0000 diff --git a/data/scripts/script_0800AF44.inc b/data/scripts/minishWoods/script_EzloTalkDWS.inc similarity index 68% rename from data/scripts/script_0800AF44.inc rename to data/scripts/minishWoods/script_EzloTalkDWS.inc index 8ff3f94a..942b81bf 100644 --- a/data/scripts/script_0800AF44.inc +++ b/data/scripts/minishWoods/script_EzloTalkDWS.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AF44 +@ Minish Woods Ezlo talks after finishing earth temple +SCRIPT_START script_EzloTalkDWS _0807E864 Call sub_0807DF28 _0807EB28 0x1c01 diff --git a/data/scripts/script_08012CD8.inc b/data/scripts/minishWoods/script_EzloTalkMinishPortal.inc similarity index 66% rename from data/scripts/script_08012CD8.inc rename to data/scripts/minishWoods/script_EzloTalkMinishPortal.inc index 1d6bda91..b97e943e 100644 --- a/data/scripts/script_08012CD8.inc +++ b/data/scripts/minishWoods/script_EzloTalkMinishPortal.inc @@ -1,12 +1,13 @@ -SCRIPT_START script_08012CD8 +@ Minish Woods Ezlo Talks after exiting portal for the first time +SCRIPT_START script_EzloTalkMinishPortal EndBlock BeginBlock _0807E564 - JumpIfNot script_08012CD8 + JumpIfNot script_EzloTalkMinishPortal CheckPlayerInRegion 0x0380, 0x03b0, 0x4040 - JumpIfNot script_08012CD8 + JumpIfNot script_EzloTalkMinishPortal ComparePlayerAction 0x0015 - JumpIf script_08012CD8 + JumpIf script_EzloTalkMinishPortal _0807E864 Call sub_0807DF28 EndBlock diff --git a/data/scripts/minishWoods/script_Festari.inc b/data/scripts/minishWoods/script_Festari.inc new file mode 100644 index 00000000..2ce99363 --- /dev/null +++ b/data/scripts/minishWoods/script_Festari.inc @@ -0,0 +1,93 @@ +@ Festari at beginning +SCRIPT_START script_Festari + BeginBlock + DoPostScriptAction 0x000a + SetEntitySpeed 0x0080 + _0807EB44 0x0004 + CheckLocalFlag 0x0082 + JumpIfNot script_0800C650 + OffsetEntityPosition 0x0010, 0x0000 +script_0800C650: + EndBlock +script_0800C652: + _0807E944 + _0807E864 + Call sub_0807DF28 + CheckLocalFlag 0x0082 + JumpIf script_0800C684 + CheckPlayerInRegion 0x00e8, 0x0028, 0x1810 + JumpIfNot script_0800C674 + DoPostScriptAction 0x000b +script_0800C674: + StartPlayerScript script_PlayerAtFestari + WaitForSomething2 0x00000001 + DoPostScriptAction 0x000a +script_0800C684: + CheckInventory1 0x0040 + JumpIf script_0800C730 + CheckInventory1 0x005b + JumpIf script_0800C6B6 + DoPostScriptAction 0x0002 + MessageFromTarget 0x1f16 + WaitUntilTextboxCloses + DoPostScriptAction 0x0015 + Wait 0x000a + SetLocalFlag 0x0080 + Call sub_0807DF50 + _0807E878 + Jump script_0800C652 +script_0800C6B6: + CheckLocalFlag 0x0081 + JumpIf script_0800C6DC + DoPostScriptAction 0x0002 + MessageFromTarget 0x1f1b + WaitUntilTextboxCloses + DoPostScriptAction 0x0015 + Wait 0x000a + Call sub_0807DF50 + _0807E878 + Jump script_0800C652 +script_0800C6DC: + CheckLocalFlag 0x0082 + JumpIf script_0800C712 + DoPostScriptAction 0x0002 + MessageFromTarget 0x1f17 + WaitUntilTextboxCloses + DoPostScriptAction 0x0015 + Wait 0x000a + _0807EB44 0x0002 + DoPostScriptAction 0x0001 + _0807EC94 0x0020 + _0807EB44 0x0004 + Wait 0x000f + PlaySound SFX_SECRET + SetLocalFlag 0x0082 +script_0800C712: + DoPostScriptAction 0x0002 + MessageFromTarget 0x1f18 + WaitUntilTextboxCloses + DoPostScriptAction 0x0015 + Wait 0x000a + Call sub_0807DF50 + _0807E878 + Jump script_0800C652 +script_0800C730: + CheckLocalFlag 0x0083 + JumpIf script_0800C756 + DoPostScriptAction 0x0002 + MessageFromTarget 0x1f19 + WaitUntilTextboxCloses + DoPostScriptAction 0x0015 + Wait 0x000a + Call sub_0807DF50 + _0807E878 + Jump script_0800C652 +script_0800C756: + DoPostScriptAction 0x0002 + MessageFromTarget 0x1f1a + WaitUntilTextboxCloses + DoPostScriptAction 0x0015 + Wait 0x000a + Call sub_0807DF50 + _0807E878 + Jump script_0800C652 diff --git a/data/scripts/minishWoods/script_ForestMinish10.inc b/data/scripts/minishWoods/script_ForestMinish10.inc new file mode 100644 index 00000000..d1c1c825 --- /dev/null +++ b/data/scripts/minishWoods/script_ForestMinish10.inc @@ -0,0 +1,148 @@ +@ Minish Village ForestMinish at the back of the pico flowers +SCRIPT_START script_ForestMinish10 + BeginBlock + CheckInventory1 0x005b + JumpIfNot script_0800C5FE + Call sub_08060090 + DoPostScriptAction 0x000a + EndBlock +script_0800CD92: + EndBlock + BeginBlock + CheckEntityInteractType + JumpIf script_0800CDA6 + Call sub_08060158 + Jump script_0800CD92 +script_0800CDA6: + EndBlock + _0807E864 + Call sub_0807DF28 + CheckLocalFlag 0x009d + JumpIf script_0800CDC4 + SetLocalFlag 0x009d + MessageNoOverlap 0x213d + Jump script_0800CF40 +script_0800CDC4: + CheckGlobalFlag 0x003b + JumpIf script_0800CE46 + CheckGlobalFlag 0x0054 + JumpIfNot script_0800CDEC + CheckRoomFlag 0x0000 + JumpIfNot script_0800CF2A + SetGlobalFlag 0x003b + ClearGlobalFlag 0x0054 + MessageNoOverlap 0x2141 + Jump script_0800CF40 +script_0800CDEC: + MessageNoOverlap 0x213e + WaitUntilTextboxCloses + _0807E48C 0x0023 + JumpIfNot script_0800CE14 + MessageNoOverlap 0x214b + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_0800CF40 + PlaySound SFX_TASK_COMPLETE + _0807F088 0x0023 + WaitPlayerGetItem + Jump script_0800CE32 +script_0800CE14: + _0807E48C 0x0022 + JumpIfNot script_0800CF40 + MessageNoOverlap 0x214b + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_0800CF40 + PlaySound SFX_TASK_COMPLETE + _0807F088 0x0022 + WaitPlayerGetItem +script_0800CE32: + _0807EB8C + SetGlobalFlag 0x0054 + Call sub_08060340 + MessageNoOverlap 0x213f + Jump script_0800CF02 +script_0800CE46: + CheckGlobalFlag 0x003c + JumpIf script_0800CEA6 + CheckGlobalFlag 0x0054 + JumpIfNot script_0800CE6E + CheckRoomFlag 0x0000 + JumpIfNot script_0800CF2A + SetGlobalFlag 0x003c + ClearGlobalFlag 0x0054 + MessageNoOverlap 0x2145 + Jump script_0800CF40 +script_0800CE6E: + MessageNoOverlap 0x2142 + WaitUntilTextboxCloses + _0807E48C 0x0027 + JumpIfNot script_0800CF40 + MessageNoOverlap 0x214c + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_0800CF40 + PlaySound SFX_TASK_COMPLETE + _0807F088 0x0027 + WaitPlayerGetItem + _0807EB8C + SetGlobalFlag 0x0054 + Call sub_08060340 + MessageNoOverlap 0x2143 + Jump script_0800CF02 +script_0800CEA6: + CheckGlobalFlag 0x003d + JumpIf script_0800CF3C + CheckGlobalFlag 0x0054 + JumpIfNot script_0800CECE + CheckRoomFlag 0x0000 + JumpIfNot script_0800CF2A + SetGlobalFlag 0x003d + ClearGlobalFlag 0x0054 + MessageNoOverlap 0x2149 + Jump script_0800CF40 +script_0800CECE: + MessageNoOverlap 0x2146 + WaitUntilTextboxCloses + _0807E48C 0x0024 + JumpIfNot script_0800CF40 + MessageNoOverlap 0x214d + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_0800CF40 + PlaySound SFX_TASK_COMPLETE + _0807F088 0x0024 + WaitPlayerGetItem + _0807EB8C + SetGlobalFlag 0x0054 + Call sub_08060340 + MessageNoOverlap 0x2147 +script_0800CF02: + WaitUntilTextboxCloses + Call sub_0807DF50 + _0807E878 +script_0800CF0C: + EndBlock + BeginBlock + CheckEntityInteractType + JumpIf script_0800CF20 + Call sub_08060158 + Jump script_0800CF0C +script_0800CF20: + EndBlock + _0807E864 + Call sub_0807DF28 +script_0800CF2A: + MessageNoOverlap 0x2140 + WaitUntilTextboxCloses + Call sub_0807DF50 + _0807E878 + Jump script_0800CF0C +script_0800CF3C: + MessageNoOverlap 0x214a +script_0800CF40: + WaitUntilTextboxCloses + Call sub_0807DF50 + _0807E878 + Jump script_0800CD92 + .2byte 0x0000 diff --git a/data/scripts/minishWoods/script_ForestMinish4.inc b/data/scripts/minishWoods/script_ForestMinish4.inc new file mode 100644 index 00000000..792f37d0 --- /dev/null +++ b/data/scripts/minishWoods/script_ForestMinish4.inc @@ -0,0 +1,22 @@ +@ Minish Village Forest Minish +SCRIPT_START script_ForestMinish4 + BeginBlock +script_0800C5FE: + Call sub_08060090 + DoPostScriptAction 0x000a + EndBlock +script_0800C60A: + BeginBlock + CheckEntityInteractType + JumpIf script_0800C61E + Call sub_08060158 + EndBlock + Jump script_0800C60A +script_0800C61E: + EndBlock + _0807E864 + Call sub_0806021C + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800C60A diff --git a/data/scripts/minishWoods/script_Gentari.inc b/data/scripts/minishWoods/script_Gentari.inc new file mode 100644 index 00000000..12570732 --- /dev/null +++ b/data/scripts/minishWoods/script_Gentari.inc @@ -0,0 +1,99 @@ +@ Gentari at beginning +SCRIPT_START script_Gentari + BeginBlock + DoPostScriptAction 0x000a + _0807EB44 0x0004 + EndBlock +script_0800C780: + _0807E944 + _0807E864 + Call sub_0807DF28 + StartPlayerScript script_PlayerAtGentari + WaitForSomething2 0x00000001 + CheckInventory1 0x0040 + JumpIf script_0800C824 + CheckInventory1 0x005b + JumpIf script_0800C7C0 + _0807E930 0x0008 + MessageFromTarget 0x2122 + WaitUntilTextboxCloses + DoPostScriptAction 0x0000 + Call sub_0807DF50 + _0807E878 + Jump script_0800C780 +script_0800C7C0: + _0807E930 0x0008 + CheckLocalFlag 0x0081 + JumpIf script_0800C80A + MessageFromTarget 0x1130 + WaitUntilTextboxCloses + _0807EB28 0x1131 + WaitUntilTextboxCloses + _0807EB8C + MessageFromTarget 0x1132 + WaitUntilTextboxCloses + SetIntVariable 0x00000103 + Call sub_0807F420 + MessageFromTarget 0x1133 + WaitUntilTextboxCloses + Wait 0x000a + DoPostScriptAction 0x0000 + SetLocalFlag 0x0081 + Call sub_0807DF50 + _0807E878 + Jump script_0800C780 +script_0800C80A: + MessageFromTarget 0x1133 + WaitUntilTextboxCloses + Wait 0x000a + _0807E930 0x0000 + Call sub_0807DF50 + _0807E878 + Jump script_0800C780 +script_0800C824: + _0807E930 0x0008 + CheckLocalFlag 0x0083 + JumpIf script_0800C8AE + MessageFromTarget 0x1135 + WaitUntilTextboxCloses + SetEntitySpeed 0x0040 + _0807EDD4 0x0038, 0x0044 + DoPostScriptAction 0x0000 + Wait 0x000f + SetLocalFlag 0x0083 + Wait 0x003c + PlaySound SFX_SECRET + Wait 0x003c + _0807EB74 + _0807EB8C + MessageFromTarget 0x1136 + WaitUntilTextboxCloses + _0807EB28 0x1137 + WaitUntilTextboxCloses + Wait 0x000a + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + Call sub_0807DF50 + _0807E878 +script_0800C87C: + _0807E944 + _0807E864 + Call sub_0807DF28 + _0807EB74 + SetIntVariable 0x00000008 + Call sub_0807F3D8 + MessageFromTarget 0x1136 + WaitUntilTextboxCloses + Wait 0x000a + DoPostScriptAction 0x0000 + Call sub_0807DF50 + _0807E878 + Jump script_0800C87C +script_0800C8AE: + MessageFromTarget 0x1136 + WaitUntilTextboxCloses + Wait 0x000a + DoPostScriptAction 0x0000 + Call sub_0807DF50 + _0807E878 + Jump script_0800C780 diff --git a/data/scripts/minishWoods/script_Object69PotionBlue.inc b/data/scripts/minishWoods/script_Object69PotionBlue.inc new file mode 100644 index 00000000..324555ce --- /dev/null +++ b/data/scripts/minishWoods/script_Object69PotionBlue.inc @@ -0,0 +1,30 @@ +@ Syrup OBJECT_69 Potion +SCRIPT_START script_Object69PotionBlue + BeginBlock + Call sub_080787B4 + EndBlock +script_08016146: + CheckEntityInteractType + JumpIfNot script_08016146 + _0807E864 + GetInventoryValue 0x0025 + MessageFromTargetTable 0x2d03, 0x2d02, 0x2d02, 0x2d02 + _0807E3E8 + JumpIfNot script_0801618A + _0807E48C 0x0020 + JumpIf script_08016172 + MessageFromTarget 0x2d0c + Jump script_0801618A +script_08016172: + BuyItem 0x0025, 0x0000 + JumpIf script_08016184 + MessageFromTarget 0x2d0b + Jump script_0801618A +script_08016184: + WaitPlayerGetItem + MessageFromTarget 0x2d06 +script_0801618A: + _0807E878 + Jump script_08016146 + .align 2, 0 + diff --git a/data/scripts/minishWoods/script_Object69PotionRed.inc b/data/scripts/minishWoods/script_Object69PotionRed.inc new file mode 100644 index 00000000..edb403c8 --- /dev/null +++ b/data/scripts/minishWoods/script_Object69PotionRed.inc @@ -0,0 +1,36 @@ +@ OBJECT_69 in witch hut? +SCRIPT_START script_Object69PotionRed + BeginBlock + Call sub_080787B4 + EndBlock +script_0801619A: + CheckEntityInteractType + JumpIfNot script_0801619A + _0807E864 + GetInventoryValue 0x0024 + MessageFromTargetTable 0x2d05, 0x2d04, 0x2d04, 0x2d04 + _0807E3E8 + JumpIfNot script_080161E2 + _0807E48C 0x0020 + JumpIf script_080161C6 + MessageFromTarget 0x2d0c + Jump script_080161E2 +script_080161C6: + BuyItem 0x0024, 0x0000 + JumpIf script_080161D8 + MessageFromTarget 0x2d0b + Jump script_080161E2 +script_080161D8: +.ifndef EU + WaitPlayerGetItem + WaitUntilTextboxCloses + _0807EB8C + MessageNoOverlap 0x2d06 +.else + MessageFromTarget 0x2d06 +.endif +script_080161E2: + _0807E878 + Jump script_0801619A + .align 2, 0 + diff --git a/data/scripts/script_0800A088.inc b/data/scripts/minishWoods/script_PlayerAtBombMinish.inc similarity index 72% rename from data/scripts/script_0800A088.inc rename to data/scripts/minishWoods/script_PlayerAtBombMinish.inc index 4103d535..c9508e71 100644 --- a/data/scripts/script_0800A088.inc +++ b/data/scripts/minishWoods/script_PlayerAtBombMinish.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A088 +@ Minish Woods Player at Bomb Minish +SCRIPT_START script_PlayerAtBombMinish BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800C8C8.inc b/data/scripts/minishWoods/script_PlayerAtFestari.inc similarity index 76% rename from data/scripts/script_0800C8C8.inc rename to data/scripts/minishWoods/script_PlayerAtFestari.inc index ed1e9998..503c9c9a 100644 --- a/data/scripts/script_0800C8C8.inc +++ b/data/scripts/minishWoods/script_PlayerAtFestari.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C8C8 +@ Player at Festari +SCRIPT_START script_PlayerAtFestari BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800C8F0.inc b/data/scripts/minishWoods/script_PlayerAtGentari.inc similarity index 78% rename from data/scripts/script_0800C8F0.inc rename to data/scripts/minishWoods/script_PlayerAtGentari.inc index c39b1353..343334bd 100644 --- a/data/scripts/script_0800C8F0.inc +++ b/data/scripts/minishWoods/script_PlayerAtGentari.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800C8F0 +@ Player at Gentari +SCRIPT_START script_PlayerAtGentari BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800E684.inc b/data/scripts/minishWoods/script_PlayerAtMadderpillar.inc similarity index 64% rename from data/scripts/script_0800E684.inc rename to data/scripts/minishWoods/script_PlayerAtMadderpillar.inc index 428f2ece..8a0c171a 100644 --- a/data/scripts/script_0800E684.inc +++ b/data/scripts/minishWoods/script_PlayerAtMadderpillar.inc @@ -1,4 +1,6 @@ -SCRIPT_START script_0800E684 +@ DWS Player entering Madderpiller fight +@ also DHC Player entering a Dark Nut fight +SCRIPT_START script_PlayerAtMadderpillar BeginBlock SetEntitySpeed 0x0140 SetEntityDirection 0x0018 diff --git a/data/scripts/minishWoods/script_Syrup.inc b/data/scripts/minishWoods/script_Syrup.inc new file mode 100644 index 00000000..903e18b6 --- /dev/null +++ b/data/scripts/minishWoods/script_Syrup.inc @@ -0,0 +1,60 @@ +@ Syrup +SCRIPT_START script_Syrup + BeginBlock + _0807E9D4 + _0807E930 0x0008 +script_080160B0: + EndBlock + BeginBlock + CheckEntityInteractType + JumpIf script_080160E0 + TestBit 0x00000008 + JumpIf script_080160D2 + TestBit 0x00000010 + JumpIf script_080160D2 + Jump script_080160B0 +script_080160D2: + EndBlock + _0807EB74 + WaitForSomething2 0x00000004 + Jump script_080160B0 +script_080160E0: + _0807E864 + _0807EB74 + EndBlock + HasRoomItemForSale + JumpIfNot script_0801611A + MessageFromTarget 0x2d07 + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_08016132 + BuyItem 0x0000, 0x0000 + JumpIf script_0801610C + MessageFromTarget 0x2d0b + WaitUntilTextboxCloses + Jump script_08016132 +script_0801610C: + WaitPlayerGetItem +.ifndef EU + _0807EB8C + MessageFromTarget 0x2d0d +.else + MessageFromTarget 0x2d08 +.endif + WaitUntilTextboxCloses + Jump script_08016132 +script_0801611A: + CheckKinstoneFused 0x0014 + JumpIfNot script_0801612C + MessageFromTarget 0x2d09 + WaitUntilTextboxCloses + Jump script_08016132 +script_0801612C: + MessageFromTarget 0x2d01 + WaitUntilTextboxCloses +script_08016132: + _0807E878 + _0807EB44 0x0004 + Jump script_080160B0 + .align 2, 0 + diff --git a/data/scripts/mtCrenel/script_CrenelHermit.inc b/data/scripts/mtCrenel/script_CrenelHermit.inc new file mode 100644 index 00000000..9a05a3cf --- /dev/null +++ b/data/scripts/mtCrenel/script_CrenelHermit.inc @@ -0,0 +1,19 @@ +@ Crenel Hermit +SCRIPT_START script_CrenelHermit + BeginBlock + Call sub_08061E70 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + Call sub_08061FD8 + EndBlock +script_0800B8FC: + CheckEntityInteractType + JumpIfNot script_0800B8FC + _0807E864 + _0807EB74 + Call sub_08061FD8 + Call sub_08062048 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800B8FC + .2byte 0x0000 diff --git a/data/scripts/script_0800AF68.inc b/data/scripts/mtCrenel/script_EzloTalkCoF.inc similarity index 72% rename from data/scripts/script_0800AF68.inc rename to data/scripts/mtCrenel/script_EzloTalkCoF.inc index e9ae8510..bfc736fb 100644 --- a/data/scripts/script_0800AF68.inc +++ b/data/scripts/mtCrenel/script_EzloTalkCoF.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AF68 +@ Mountain Ezlo text after beating CoF +SCRIPT_START script_EzloTalkCoF _0807E864 Call sub_0807DF28 _0807EB28 0x1c02 diff --git a/data/scripts/script_0800B6C8.inc b/data/scripts/mtCrenel/script_GreatFairyBombs.inc similarity index 53% rename from data/scripts/script_0800B6C8.inc rename to data/scripts/mtCrenel/script_GreatFairyBombs.inc index f0608d4b..1117dc70 100644 --- a/data/scripts/script_0800B6C8.inc +++ b/data/scripts/mtCrenel/script_GreatFairyBombs.inc @@ -1,31 +1,5 @@ -SCRIPT_START script_0800B6C8 - BeginBlock - EndBlock -script_0800B6CC: - HasRupees 0x0001 - JumpIfNot script_0800B6CC -script_0800B6D4: - CheckPlayerInRegion 0x0078, 0x00b8, 0x1060 - JumpIfNot script_0800B6D4 - Call sub_08079184 - _0807E864 - Call sub_0807F9A4 - StartPlayerScript script_0800B7C4 - WaitForSomething2 0x00000004 - SetRoomFlag 0x0000 - WaitForSomething2 0x00000004 - CheckLocalFlag 0x009f - JumpIf script_0800B7A2 - MessageNoOverlap 0x057b - WaitUntilTextboxCloses - CallWithArg sub_0807F970, 0x0000057d - JumpIf script_0800B6A6 - WaitUntilTextboxCloses - SetLocalFlag 0x009f - _0807F034 0x0064 - Jump script_0800B698 - .2byte 0x0000 -SCRIPT_START script_0800B730 +@ Mountain Great Fairy OBJECT_69 +SCRIPT_START script_GreatFairyBombs BeginBlock EndBlock script_0800B734: @@ -35,7 +9,7 @@ script_0800B734: _0807E864 Wait 0x000a Call sub_0807F9A4 - StartPlayerScript script_0800B7C4 + StartPlayerScript script_PlayerAtGreatFairy WaitForSomething2 0x00000004 SetRoomFlag 0x0000 WaitForSomething2 0x00000004 diff --git a/data/scripts/mtCrenel/script_Melari.inc b/data/scripts/mtCrenel/script_Melari.inc new file mode 100644 index 00000000..082a77c2 --- /dev/null +++ b/data/scripts/mtCrenel/script_Melari.inc @@ -0,0 +1,117 @@ +@ Mines Melari +SCRIPT_START script_Melari + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + _0807E930 0x0000 + EndBlock + CheckInventory1 0x0041 + JumpIf script_0800CFD2 + CheckLocalFlag 0x007e + JumpIfNot script_0800CFD2 + _0807E930 0x0008 +script_0800CFD2: + CheckInventory1 0x0002 + JumpIf script_0800CFFA + CheckInventory1 0x0041 + JumpIfNot script_0800CFEC + _0807E5F8 0x00000020 + Jump script_0800CFFA +script_0800CFEC: + CheckLocalFlag 0x007e + JumpIfNot script_0800CFFA + _0807E5F8 0x00000010 +script_0800CFFA: + EndBlock + BeginBlock + Call sub_08068910 + CheckEntityInteractType + JumpIfNot script_0800CFFA + EndBlock + _0807E864 + Call sub_0807DF28 + CheckInventory1 0x0002 + JumpIfNot script_0800D032 + _0807EB74 + SetIntVariable 0x00000000 + Call sub_0806C028 + MessageNoOverlap 0x1219 + Jump script_0800D17C +script_0800D032: + CheckInventory1 0x0041 + JumpIfNot script_0800D098 + StartPlayerScript script_PlayerAtMelari + WaitForSomething2 0x00000008 + _0807EB74 + SetIntVariable 0x00000000 + Call sub_0806C028 + MessageFromTargetPos 0x125c, 0x0002 + WaitUntilTextboxCloses + StartPlayerScript script_PlayerPlaceBrokenSword + WaitForSomething2 0x00000008 + _0807EB44 0x0002 + SetIntVariable 0x00000000 + Call sub_0806C028 + Wait 0x000f + _0807E5F8 0x00000020 + StartPlayerScript script_PlayerGetWhiteSword + WaitForSomething2 0x00000008 + MessageFromTargetPos 0x125d, 0x0002 + Jump script_0800D17C +script_0800D098: + CheckLocalFlag 0x007e + JumpIfNot script_0800D0A8 + MessageFromTarget 0x123e + Jump script_0800D17C +script_0800D0A8: + StartPlayerScript script_PlayerAtMelari + WaitForSomething2 0x00000008 + _0807E5F8 0x00000001 + WaitForSomething2 0x00000004 + _0807E5F8 0x00000001 + WaitForSomething2 0x00000004 + _0807EB74 + SetIntVariable 0x00000000 + Call sub_0806C028 + MessageFromTargetPos 0x123d, 0x0002 + WaitUntilTextboxCloses + StartPlayerScript script_PlayerPlaceBrokenSword + WaitForSomething2 0x00000008 + _0807EB44 0x0002 + SetIntVariable 0x00000000 + Call sub_0806C028 + PlaySound SFX_TASK_COMPLETE + Call sub_08068964 +script_0800D108: + ComparePlayerAction 0x0008 + JumpIf script_0800D108 + PlaySound SFX_F8 + _0807E5F8 0x00000010 + SetLocalFlag 0x007e + MessageFromTargetPos 0x123e, 0x0002 + WaitUntilTextboxCloses + Wait 0x000f + _0807E930 0x0009 + _0807E5F8 0x00000002 + WaitForSomething2 0x00000004 + _0807E5F8 0x00000002 + WaitForSomething2 0x00000004 + Wait 0x001e + MessageFromTargetPos 0x123f, 0x0002 + WaitUntilTextboxCloses + _0807E5F8 0x00000001 + WaitForSomething2 0x00000004 + _0807E5F8 0x00000001 + WaitForSomething2 0x00000004 + _0807E930 0x0008 + Wait 0x003c + Call sub_08095164 + _0807EB28 0x1240 +script_0800D17C: + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Call sub_0807DF50 + Jump script_0800CFFA + .2byte 0x0000 diff --git a/data/scripts/mtCrenel/script_MelariInRoom.inc b/data/scripts/mtCrenel/script_MelariInRoom.inc new file mode 100644 index 00000000..255d95e6 --- /dev/null +++ b/data/scripts/mtCrenel/script_MelariInRoom.inc @@ -0,0 +1,24 @@ +@ Mines Melari in his room +SCRIPT_START script_MelariInRoom + BeginBlock + Call sub_08068884 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + _0807E930 0x0000 + EndBlock +script_0800D31E: + EndBlock + BeginBlock + Call sub_08068910 + CheckEntityInteractType + JumpIfNot script_0800D31E + EndBlock + _0807E864 + _0807EB74 + SetIntVariable 0x00000000 + Call sub_0806C028 + MessageFromTarget 0x1219 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800D31E diff --git a/data/scripts/mtCrenel/script_MountainMinish1.inc b/data/scripts/mtCrenel/script_MountainMinish1.inc new file mode 100644 index 00000000..ef7567fc --- /dev/null +++ b/data/scripts/mtCrenel/script_MountainMinish1.inc @@ -0,0 +1,21 @@ +@ Mines Mountain Minish before beds +SCRIPT_START script_MountainMinish1 + BeginBlock + Call sub_08068104 + DoPostScriptAction 0x000a + EndBlock +script_0800CF5E: + BeginBlock + CheckEntityInteractType + JumpIf script_0800CF72 + Call sub_0806811C + EndBlock + Jump script_0800CF5E +script_0800CF72: + EndBlock + _0807E864 + Call sub_08068190 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800CF5E diff --git a/data/scripts/mtCrenel/script_MountainMinish2.inc b/data/scripts/mtCrenel/script_MountainMinish2.inc new file mode 100644 index 00000000..ff89c97d --- /dev/null +++ b/data/scripts/mtCrenel/script_MountainMinish2.inc @@ -0,0 +1,14 @@ +@ Mines Mountain Minish +SCRIPT_START script_MountainMinish2 + BeginBlock + Call sub_08068104 + DoPostScriptAction 0x000a + EndBlock +script_0800CF96: + _0807E944 + _0807E864 + Call sub_08068190 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800CF96 diff --git a/data/scripts/mtCrenel/script_MountainMinish3.inc b/data/scripts/mtCrenel/script_MountainMinish3.inc new file mode 100644 index 00000000..9320c9e1 --- /dev/null +++ b/data/scripts/mtCrenel/script_MountainMinish3.inc @@ -0,0 +1,47 @@ +@ Mines Mountain Minish helpers +SCRIPT_START script_MountainMinish3 + BeginBlock + _0807E9D4 + DoPostScriptAction 0x000a + EndBlock +script_0800D282: + CheckInventory1 0x0041 + JumpIf script_0800D292 + CheckLocalFlag 0x007e + JumpIf script_0800D2EA +script_0800D292: + BeginBlock + TestBit 0x00000001 + JumpIf script_0800D2C6 + CheckEntityInteractType + JumpIf script_0800D2B0 + Call sub_0806811C + EndBlock + Jump script_0800D282 +script_0800D2B0: + EndBlock + _0807E864 + Call sub_08068190 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800D282 +script_0800D2C6: + EndBlock + _0807E5F8 0x00000004 + WaitForSomething2 0x00000002 + _0807E5F8 0x00000004 + _0807E930 0x000c + WaitForSomething2 0x00000001 + _0807E5F8 0x00000004 +script_0800D2EA: + _0807E930 0x000b +script_0800D2EE: + CheckEntityInteractType + JumpIfNot script_0800D2EE + _0807E864 + Call sub_08068190 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800D2EE diff --git a/data/scripts/mtCrenel/script_MountainMinish4.inc b/data/scripts/mtCrenel/script_MountainMinish4.inc new file mode 100644 index 00000000..a3555d08 --- /dev/null +++ b/data/scripts/mtCrenel/script_MountainMinish4.inc @@ -0,0 +1,45 @@ +@ Mines Mountain Minish at exit +SCRIPT_START script_MountainMinish4 + BeginBlock + Call sub_08068104 + DoPostScriptAction 0x000a + EndBlock +script_0800D35E: + BeginBlock + CheckEntityInteractType + JumpIf script_0800D372 + Call sub_0806811C + EndBlock + Jump script_0800D35E +script_0800D372: + EndBlock + _0807E864 + Call sub_08068190 + WaitUntilTextboxCloses + Wait 0x000f + CheckLocalFlag 0x007f + JumpIf script_0800D3E4 + CheckLocalFlag 0x007e + JumpIfNot script_0800D3E4 + DoPostScriptAction 0x000b + SetEntitySpeed 0x0100 + CheckPlayerInRegion 0x0090, 0x0130, 0x0810 + JumpIfNot script_0800D3B2 + StartPlayerScript script_PlayerAtMountainMinishExit + WaitForSomething2 0x00000001 +script_0800D3B2: + _0807EB44 0x0002 + _0807E930 0x0005 + _0807EDD4 0x00a0, 0x0130 + _0807EB44 0x0006 + _0807E930 0x0003 + SetIntVariable 0x00000004 + Call sub_080681D8 + PlaySound SFX_TASK_COMPLETE + Wait 0x001e + DoPostScriptAction 0x000a + SetLocalFlag 0x007f +script_0800D3E4: + _0807E878 + Jump script_0800D35E + .2byte 0x0000 diff --git a/data/scripts/script_0800D414.inc b/data/scripts/mtCrenel/script_MountainMinish5.inc similarity index 59% rename from data/scripts/script_0800D414.inc rename to data/scripts/mtCrenel/script_MountainMinish5.inc index 76a31a6e..a31a712b 100644 --- a/data/scripts/script_0800D414.inc +++ b/data/scripts/mtCrenel/script_MountainMinish5.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D414 +@ Mines Mountain Minish running +SCRIPT_START script_MountainMinish5 BeginBlock SetEntitySpeed 0x0100 Call sub_08068104 @@ -95,69 +96,3 @@ script_0800D584: Wait 0x000f _0807E878 Jump script_0800D4E4 -SCRIPT_START script_0800D59C - BeginBlock - DoPostScriptAction 0x000a - Call sub_08062A48 - DoPostScriptAction 0x0000 -script_0800D5AC: - EndBlock - Call sub_08062698 - Call sub_080626AC - CallWithArg sub_0807F0EC, 0x00000004 - JumpTable script_0800D5CE, script_0800D5D8, script_0800D5E2, script_0800D5EC -script_0800D5CE: - _0807EE04 0x0038, 0x0098 - Jump script_0800D5F2 -script_0800D5D8: - _0807EE04 0x0058, 0x0098 - Jump script_0800D5F2 -script_0800D5E2: - _0807EE04 0x0038, 0x00c8 - Jump script_0800D5F2 -script_0800D5EC: - _0807EE04 0x0058, 0x00c8 -script_0800D5F2: - EndBlock - BeginBlock - Call sub_080626C0 - JumpIf script_0800D5AC - _0807EE30 - JumpIfNot script_0800D5F2 - Jump script_0800D5AC - .2byte 0x0000 -SCRIPT_START script_0800D60C - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x000b - DoPostScriptAction 0x0008 - Call sub_0806DAAC - JumpIf script_0800D6AE - Call sub_0806DAD0 - CallWithArg sub_0806DA04, 0x00000002 - EndBlock -script_0800D636: - _0807EA4C - _0807E9F0 - Call sub_0806DAAC - JumpIf script_0800D650 - Call sub_0807DF50 - _0807E878 - Jump script_0800D636 -script_0800D650: - _0807E864 - Call sub_0807DF28 - Call sub_0807FBC4 - Call sub_0807FBA0 - SetEntitySpeed 0x0700 - _0807F0B4 0x0007 - CameraTargetEntity - _0807EDD4 0x01e8, 0x01b8 - Wait 0x003c - Call sub_0806DAE8 - Wait 0x0078 - Call sub_0806DB44 - JumpIfNot script_0800D698 - LoadRoomEntityList gUnk_080DD730 - DoPostScriptAction 0x0006 -SCRIPT_END diff --git a/data/scripts/script_0800D218.inc b/data/scripts/mtCrenel/script_Object6ABrokenSword.inc similarity index 51% rename from data/scripts/script_0800D218.inc rename to data/scripts/mtCrenel/script_Object6ABrokenSword.inc index 741fe977..33f2b78f 100644 --- a/data/scripts/script_0800D218.inc +++ b/data/scripts/mtCrenel/script_Object6ABrokenSword.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D218 +@ Mines OBJECT_6A Broken Sword on Table? +SCRIPT_START script_Object6ABrokenSword BeginBlock CheckInventory1 0x0041 JumpIf script_0800D24C @@ -10,3 +11,11 @@ SCRIPT_START script_0800D218 DoPostScriptAction 0x0007 WaitForSomething2 0x00000010 SCRIPT_END +script_0800D242: + DoPostScriptAction 0x0007 + _0807E930 0x0003 +SCRIPT_END +script_0800D24C: + DoPostScriptAction 0x0006 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_0800D254.inc b/data/scripts/mtCrenel/script_Object6ARepairedSword.inc similarity index 71% rename from data/scripts/script_0800D254.inc rename to data/scripts/mtCrenel/script_Object6ARepairedSword.inc index f601fb80..4c92069f 100644 --- a/data/scripts/script_0800D254.inc +++ b/data/scripts/mtCrenel/script_Object6ARepairedSword.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D254 +@ Mines OBJECT_6A Repaired Sword on Table? +SCRIPT_START script_Object6ARepairedSword BeginBlock DoPostScriptAction 0x0008 EndBlock diff --git a/data/scripts/script_0800D190.inc b/data/scripts/mtCrenel/script_PlayerAtMelari.inc similarity index 75% rename from data/scripts/script_0800D190.inc rename to data/scripts/mtCrenel/script_PlayerAtMelari.inc index 1cec26bd..9e2afbbe 100644 --- a/data/scripts/script_0800D190.inc +++ b/data/scripts/mtCrenel/script_PlayerAtMelari.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D190 +@ Player at Melari +SCRIPT_START script_PlayerAtMelari BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800D3EC.inc b/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc similarity index 70% rename from data/scripts/script_0800D3EC.inc rename to data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc index 4a39c3f8..31c59aff 100644 --- a/data/scripts/script_0800D3EC.inc +++ b/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D3EC +@ Player at Mountain Minish at exit +SCRIPT_START script_PlayerAtMountainMinishExit BeginBlock SetEntitySpeed 0x0080 EndBlock diff --git a/data/scripts/script_0800D1E0.inc b/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc similarity index 77% rename from data/scripts/script_0800D1E0.inc rename to data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc index 5a9f4e39..08b4550e 100644 --- a/data/scripts/script_0800D1E0.inc +++ b/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D1E0 +@ Mines Player get white sword +SCRIPT_START script_PlayerGetWhiteSword _0807F078 0x0002, 0x0001 CallWithArg sub_0807F918, 0x00000002 PlaySound SFX_109 diff --git a/data/scripts/script_0800D1B4.inc b/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc similarity index 72% rename from data/scripts/script_0800D1B4.inc rename to data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc index cf4aa40f..f9a0b91c 100644 --- a/data/scripts/script_0800D1B4.inc +++ b/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D1B4 +@ Player at Melari place broken Sword +SCRIPT_START script_PlayerPlaceBrokenSword BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/northHyruleField/script_CarpenterOutsideTown.inc b/data/scripts/northHyruleField/script_CarpenterOutsideTown.inc new file mode 100644 index 00000000..c081612b --- /dev/null +++ b/data/scripts/northHyruleField/script_CarpenterOutsideTown.inc @@ -0,0 +1,26 @@ +@ Outside Castle Carpenter +@ Hyrule Town Carpenter +SCRIPT_START script_CarpenterOutsideTown + BeginBlock + Call sub_08067314 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + SetIntVariable 0x00000000 + Call sub_080672B0 + EndBlock +script_08009592: + CheckEntityInteractType + JumpIfNot script_08009592 + _0807E864 + _0807EB74 + SetIntVariable 0x00000004 + Call sub_080672B0 + Call sub_080672C8 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + _0807EB44 0x0004 + SetIntVariable 0x00000000 + Call sub_080672B0 + Jump script_08009592 + .2byte 0x0000 diff --git a/data/scripts/northHyruleField/script_GuardNorthHyruleField.inc b/data/scripts/northHyruleField/script_GuardNorthHyruleField.inc new file mode 100644 index 00000000..fb4474ad --- /dev/null +++ b/data/scripts/northHyruleField/script_GuardNorthHyruleField.inc @@ -0,0 +1,20 @@ +@ Outside Castle Guard +@ also at Lon Lon Ranch +SCRIPT_START script_GuardNorthHyruleField + BeginBlock + _0807EB44 0x0004 + _0807E9D4 + DoPostScriptAction 0x000a + CallWithArg sub_0807F3D8, 0x00000000 + EndBlock +script_08014E2C: + CheckEntityInteractType + JumpIfNot script_08014E2C + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x00000000 + Call sub_08064428 + WaitUntilTextboxCloses + _0807E878 + Jump script_08014E2C + .2byte 0x0000 diff --git a/data/scripts/northHyruleField/script_MutohOutsideTown.inc b/data/scripts/northHyruleField/script_MutohOutsideTown.inc new file mode 100644 index 00000000..11002fe7 --- /dev/null +++ b/data/scripts/northHyruleField/script_MutohOutsideTown.inc @@ -0,0 +1,21 @@ +@ Outside Castle Mutoh +SCRIPT_START script_MutohOutsideTown + BeginBlock + Call sub_08067100 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + EndBlock +script_08009512: + CheckEntityInteractType + JumpIfNot script_08009512 + _0807E864 + DoPostScriptAction 0x0001 + _0807EB74 + Call sub_080670B4 + WaitUntilTextboxCloses + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + Jump script_08009512 + .2byte 0x0000 diff --git a/data/scripts/script_08015BA8.inc b/data/scripts/northHyruleField/script_Object69FixBridge.inc similarity index 86% rename from data/scripts/script_08015BA8.inc rename to data/scripts/northHyruleField/script_Object69FixBridge.inc index 70876df6..3dff4c45 100644 --- a/data/scripts/script_08015BA8.inc +++ b/data/scripts/northHyruleField/script_Object69FixBridge.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015BA8 +@ Outside Caste OBJECT_69 Fix bridge +SCRIPT_START script_Object69FixBridge BeginBlock .ifdef JP SetLocalFlag 0x008c diff --git a/data/scripts/script_08012C48.inc b/data/scripts/npc/script_08012C48.inc similarity index 87% rename from data/scripts/script_08012C48.inc rename to data/scripts/npc/script_08012C48.inc index 63b3e809..2eb2b3d3 100644 --- a/data/scripts/script_08012C48.inc +++ b/data/scripts/npc/script_08012C48.inc @@ -1,3 +1,4 @@ +@ OBJECT_6A in sub_08095954 ? SCRIPT_START script_08012C48 BeginBlock DoPostScriptAction 0x0007 diff --git a/data/scripts/npc/script_BladeBrothers.inc b/data/scripts/npc/script_BladeBrothers.inc new file mode 100644 index 00000000..3192f64e --- /dev/null +++ b/data/scripts/npc/script_BladeBrothers.inc @@ -0,0 +1,102 @@ +@ Blade Brothers +SCRIPT_START script_BladeBrothers + BeginBlock + Call sub_0807F348 + DoPostScriptAction 0x000a + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + EndBlock +script_080161FE: + Call sub_08068C28 +script_08016204: + CheckEntityInteractType + JumpIfNot script_08016204 + _0807E864 + Call sub_0807DF28 + _0807EB74 + Call sub_08068CA0 + JumpIf script_0801633E + Call sub_08068CFC + JumpIfNot script_08016332 + Call sub_08068DB8 + WaitUntilTextboxCloses + Call sub_08068DD0 + WaitUntilTextboxCloses + _0807E3E8 + JumpIfNot script_08016346 + StartPlayerScript script_PlayerAtBladeBrothers + WaitForSomething2 0x00000001 + _0807EB74 + Call sub_08068C8C + JumpIf script_08016262 + Call sub_08068DE8 + WaitUntilTextboxCloses + Wait 0x001e +script_08016262: + Call sub_08068E00 + WaitUntilTextboxCloses + DoPostScriptAction 0x0001 + Call sub_0807F2D4 + Call sub_08068E90 + Call sub_08068C8C + JumpIf script_0801631C + Call sub_08068F00 + Call sub_08068F14 + Call sub_08068BB4 + CallWithArg sub_0807F244, 0x00010001 + Call sub_08068B84 + Call sub_0807F2A8 + Call sub_08068BD0 + Wait 0x001e + Call sub_08068E18 + WaitUntilTextboxCloses + Call sub_08068EB4 + Call sub_0807DF50 + _0807E878 +script_080162CC: + EndBlock + BeginBlock + Call sub_08068EC4 + JumpIf script_080162F6 + CheckEntityInteractType + JumpIf script_080162E4 + Jump script_080162CC +script_080162E4: + EndBlock + _0807E864 + Call sub_08068E78 + WaitUntilTextboxCloses + _0807E878 + Jump script_080162CC +script_080162F6: + EndBlock + _0807E888 + Call sub_0807F594 + Call sub_0807DF28 + _0807E864 + StopBgm + PlaySound SFX_TASK_COMPLETE + Wait 0x003c + PlayBgm BGM_LEARN_SCROLL + Call sub_08068F3C +script_0801631C: + Call sub_08068E30 + WaitUntilTextboxCloses + Call sub_08068C6C + WaitPlayerGetItem + WaitUntilTextboxCloses + Jump script_08016346 +script_08016332: + Call sub_08068E60 + WaitUntilTextboxCloses + Jump script_08016346 +script_0801633E: + Call sub_08068E48 + WaitUntilTextboxCloses +script_08016346: + Call sub_0807DF50 + _0807E878 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + Jump script_080161FE + .2byte 0x0000 diff --git a/data/scripts/script_0800B0D0.inc b/data/scripts/npc/script_Farmer.inc similarity index 67% rename from data/scripts/script_0800B0D0.inc rename to data/scripts/npc/script_Farmer.inc index b7504878..7316606b 100644 --- a/data/scripts/script_0800B0D0.inc +++ b/data/scripts/npc/script_Farmer.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800B0D0 +@ Farmer +SCRIPT_START script_Farmer BeginBlock Call sub_0806BCD4 DoPostScriptAction 0x000a @@ -38,22 +39,3 @@ script_0800B160: Call sub_0806BCB8 CallWithArg sub_0806BC94, 0x00000000 Jump script_0800B0E8 -SCRIPT_START script_0800B17C - BeginBlock - Call sub_0807DF28 - SetLocalFlag 0x0039 - _0807E864 - EndBlock - WaitForPlayerAction0x17 - StartPlayerScript script_0800B1C0 - Wait 0x0018 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 - SetRoomFlag 0x0000 - Wait 0x0010 - PlayBgm BGM_FIGHT_THEME - _0807EB28 0x2701 - _0807E878 - Call sub_0807DF50 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/npc/script_ForestMinish12.inc b/data/scripts/npc/script_ForestMinish12.inc new file mode 100644 index 00000000..0ba2e7ea --- /dev/null +++ b/data/scripts/npc/script_ForestMinish12.inc @@ -0,0 +1,10 @@ +@ Some Forest Minish ? +SCRIPT_START script_ForestMinish12 + BeginBlock + _0807E9D4 + EndBlock +script_080165FE: + _0807E30C + JumpIfNot script_080165FE + MessageFromTarget 0x0601 + Jump script_080165FE diff --git a/data/scripts/npc/script_ForestMinish13.inc b/data/scripts/npc/script_ForestMinish13.inc new file mode 100644 index 00000000..c277126a --- /dev/null +++ b/data/scripts/npc/script_ForestMinish13.inc @@ -0,0 +1,14 @@ +@ Some Forest Minish? +SCRIPT_START script_ForestMinish13 + BeginBlock + _0807E9D4 + EndBlock +script_08016612: + _0807E944 + _0807E864 + MessageFromTarget 0x0602 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_08016612 + .2byte 0x0000 diff --git a/data/scripts/npc/script_ForestMinish14.inc b/data/scripts/npc/script_ForestMinish14.inc new file mode 100644 index 00000000..7eb3fa47 --- /dev/null +++ b/data/scripts/npc/script_ForestMinish14.inc @@ -0,0 +1,14 @@ +@ Some Forest Minish ? +SCRIPT_START script_ForestMinish14 + BeginBlock + _0807E9D4 + EndBlock +script_0801662E: + _0807E944 + _0807E864 + _0807EB28 0x0603 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0801662E + .2byte 0x0000 diff --git a/data/scripts/npc/script_ForestMinish15.inc b/data/scripts/npc/script_ForestMinish15.inc new file mode 100644 index 00000000..c9b227b0 --- /dev/null +++ b/data/scripts/npc/script_ForestMinish15.inc @@ -0,0 +1,13 @@ +@ Some Forest Minish? +SCRIPT_START script_ForestMinish15 + SetEntitySpeed 0x0100 +script_08016648: + _0807ECF4 0x0030 + Wait 0x0008 + _0807ECC4 0x0030 + Wait 0x0008 + _0807EC94 0x0030 + Wait 0x0008 + _0807EC64 0x0030 + Wait 0x0008 + Jump script_08016648 diff --git a/data/scripts/npc/script_ForestMinish16.inc b/data/scripts/npc/script_ForestMinish16.inc new file mode 100644 index 00000000..6978bbde --- /dev/null +++ b/data/scripts/npc/script_ForestMinish16.inc @@ -0,0 +1,15 @@ +@ Some Forest Minish ? +SCRIPT_START script_ForestMinish16 + _0807ED24 0x0055, 0x0039, 0x00b4 + Wait 0x0008 + _0807ED24 0x0075, 0x0076, 0x003c + Wait 0x0008 + _0807ED24 0x0105, 0x006c, 0x0078 + Wait 0x0008 + _0807ED24 0x018e, 0x007a, 0x0078 + Wait 0x0008 + _0807ED24 0x0173, 0x0023, 0x003c + Wait 0x0008 + _0807ED24 0x00d8, 0x003f, 0x003c + Wait 0x0008 + Jump script_ForestMinish16 diff --git a/data/scripts/npc/script_ForestMinish17.inc b/data/scripts/npc/script_ForestMinish17.inc new file mode 100644 index 00000000..376c28db --- /dev/null +++ b/data/scripts/npc/script_ForestMinish17.inc @@ -0,0 +1,17 @@ +@ Some Forest Minish ? +SCRIPT_START script_ForestMinish17 + SetEntitySpeed 0x0100 +script_080166BC: + _0807EDD4 0x0055, 0x0039 + Wait 0x0008 + _0807EDD4 0x0075, 0x0076 + Wait 0x0008 + _0807EDD4 0x0105, 0x006c + Wait 0x0008 + _0807EDD4 0x018e, 0x007a + Wait 0x0008 + _0807EDD4 0x0173, 0x0023 + Wait 0x0008 + _0807EDD4 0x00d8, 0x003f + Wait 0x0008 + Jump script_080166BC diff --git a/data/scripts/npc/script_ForestMinish18.inc b/data/scripts/npc/script_ForestMinish18.inc new file mode 100644 index 00000000..5e70440e --- /dev/null +++ b/data/scripts/npc/script_ForestMinish18.inc @@ -0,0 +1,39 @@ +@ Some Forest Minish ? +SCRIPT_START script_ForestMinish18 + SetEntitySpeed 0x0100 +script_08016700: + _0807EC94 0x0030 + _0807E5F8 0x00000002 + Wait 0x000f + DoPostScriptAction 0x0000 + _0807EB44 0x0004 + WaitForSomething 0x00000001 + _0807E610 0x00000001 + DoPostScriptAction 0x0003 + Wait 0x0002 + _0807EB44 0x0006 + Wait 0x0002 + _0807EB44 0x0000 + Wait 0x0002 + _0807EB44 0x0002 + Wait 0x0002 + _0807EB44 0x0004 + WaitForSomething 0x00000001 + _0807E610 0x00000001 + _0807ECF4 0x0030 + Wait 0x000f + DoPostScriptAction 0x0000 + _0807EB44 0x0004 + Wait 0x001e + _0807E5F8 0x00000006 + DoPostScriptAction 0x0003 + Wait 0x0002 + _0807EB44 0x0006 + Wait 0x0002 + _0807EB44 0x0000 + Wait 0x0002 + _0807EB44 0x0002 + Wait 0x0002 + _0807EB44 0x0004 + Wait 0x003c + Jump script_08016700 diff --git a/data/scripts/npc/script_ForestMinish19.inc b/data/scripts/npc/script_ForestMinish19.inc new file mode 100644 index 00000000..ddf9962f --- /dev/null +++ b/data/scripts/npc/script_ForestMinish19.inc @@ -0,0 +1,41 @@ +@ Some Forest Minish? +SCRIPT_START script_ForestMinish19 + SetEntitySpeed 0x0100 +script_0801679C: + WaitForSomething 0x00000002 + _0807E610 0x00000002 + _0807EC94 0x0030 + _0807E5F8 0x00000004 + Wait 0x000f + DoPostScriptAction 0x0000 + _0807EB44 0x0004 + WaitForSomething 0x00000002 + _0807E610 0x00000002 + DoPostScriptAction 0x0003 + Wait 0x0002 + _0807EB44 0x0006 + Wait 0x0002 + _0807EB44 0x0000 + Wait 0x0002 + _0807EB44 0x0002 + Wait 0x0002 + _0807EB44 0x0004 + WaitForSomething 0x00000002 + _0807E610 0x00000002 + _0807ECF4 0x0030 + _0807E5F8 0x00000001 + Wait 0x000f + DoPostScriptAction 0x0000 + _0807EB44 0x0004 + WaitForSomething 0x00000002 + _0807E610 0x00000002 + DoPostScriptAction 0x0003 + Wait 0x0002 + _0807EB44 0x0006 + Wait 0x0002 + _0807EB44 0x0000 + Wait 0x0002 + _0807EB44 0x0002 + Wait 0x0002 + _0807EB44 0x0004 + Jump script_0801679C diff --git a/data/scripts/npc/script_ForestMinish20.inc b/data/scripts/npc/script_ForestMinish20.inc new file mode 100644 index 00000000..96cb2c4b --- /dev/null +++ b/data/scripts/npc/script_ForestMinish20.inc @@ -0,0 +1,39 @@ +@ Some Forest Minish ? +SCRIPT_START script_ForestMinish20 + SetEntitySpeed 0x0100 +script_08016848: + WaitForSomething 0x00000004 + _0807E610 0x00000004 + _0807EC94 0x0030 + Wait 0x000f + DoPostScriptAction 0x0000 + _0807EB44 0x0004 + Wait 0x001e + _0807E5F8 0x00000003 + DoPostScriptAction 0x0003 + Wait 0x0002 + _0807EB44 0x0006 + Wait 0x0002 + _0807EB44 0x0000 + Wait 0x0002 + _0807EB44 0x0002 + Wait 0x0002 + _0807EB44 0x0004 + Wait 0x003c + _0807ECF4 0x0030 + _0807E5F8 0x00000002 + Wait 0x000f + DoPostScriptAction 0x0000 + _0807EB44 0x0004 + WaitForSomething 0x00000004 + _0807E610 0x00000004 + DoPostScriptAction 0x0003 + Wait 0x0002 + _0807EB44 0x0006 + Wait 0x0002 + _0807EB44 0x0000 + Wait 0x0002 + _0807EB44 0x0002 + Wait 0x0002 + _0807EB44 0x0004 + Jump script_08016848 diff --git a/data/scripts/npc/script_ForestMinish21.inc b/data/scripts/npc/script_ForestMinish21.inc new file mode 100644 index 00000000..4708f47d --- /dev/null +++ b/data/scripts/npc/script_ForestMinish21.inc @@ -0,0 +1,11 @@ +@ Some Forest Minish ? +SCRIPT_START script_ForestMinish21 + BeginBlock + _0807E9D4 + EndBlock +script_080168E6: + _0807E944 + _0807E864 + Wait 0x000f + _0807E878 + Jump script_080168E6 diff --git a/data/scripts/npc/script_MysteriousWall.inc b/data/scripts/npc/script_MysteriousWall.inc new file mode 100644 index 00000000..a55a6817 --- /dev/null +++ b/data/scripts/npc/script_MysteriousWall.inc @@ -0,0 +1,25 @@ +@ Cave NPC4E Fusion thingy Mysterious Wall +SCRIPT_START script_MysteriousWall + BeginBlock + DoPostScriptAction 0x000b + DoPostScriptAction 0x0008 + Call sub_0806DAAC + JumpIf script_0800B9AC + Call sub_0806DAD0 + CallWithArg sub_0806DA04, 0x00000005 + EndBlock +script_0800B98A: + _0807EA4C + _0807E9F0 + JumpIf script_0800B99E + Call sub_0807DF50 + _0807E878 + Jump script_0800B98A +script_0800B99E: + Call sub_0806F188 + Call sub_0807DF50 + _0807E878 +script_0800B9AC: + DoPostScriptAction 0x0006 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_0801635C.inc b/data/scripts/npc/script_PlayerAtBladeBrothers.inc similarity index 67% rename from data/scripts/script_0801635C.inc rename to data/scripts/npc/script_PlayerAtBladeBrothers.inc index 002227b9..7026967e 100644 --- a/data/scripts/script_0801635C.inc +++ b/data/scripts/npc/script_PlayerAtBladeBrothers.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0801635C +@ Player at Blade Brothers +SCRIPT_START script_PlayerAtBladeBrothers SetEntitySpeed 0x0100 _0807EDD4 0x0078, 0x0050 _0807EB44 0x0000 diff --git a/data/scripts/npc/script_PlayerAtGreatFairy.inc b/data/scripts/npc/script_PlayerAtGreatFairy.inc new file mode 100644 index 00000000..cbea15ed --- /dev/null +++ b/data/scripts/npc/script_PlayerAtGreatFairy.inc @@ -0,0 +1,25 @@ +@ Player at Great Fairy +SCRIPT_START script_PlayerAtGreatFairy + BeginBlock + SetEntitySpeed 0x0100 + EndBlock + CallWithArg sub_0807F6B4, 0x00000090 + JumpIfNot script_0800B7FC + CallWithArg sub_0807F464, 0x00000078 + CallWithArg sub_0807F4F8, 0x00000090 +script_0800B7EE: + _0807E8E4_0 + DoPostScriptAction 0x0000 + _0807E5F8 0x00000004 +SCRIPT_END +script_0800B7FC: + CallWithArg sub_0807F4F8, 0x00000090 + CallWithArg sub_0807F464, 0x00000078 + Jump script_0800B7EE + BeginBlock + DoPostScriptAction 0x0007 + _0807EB44 0x0004 + _0807E930 0x0000 + EndBlock +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/npc/script_TingleSiblings.inc b/data/scripts/npc/script_TingleSiblings.inc new file mode 100644 index 00000000..62b59de5 --- /dev/null +++ b/data/scripts/npc/script_TingleSiblings.inc @@ -0,0 +1,53 @@ +@ Tingle Siblings +SCRIPT_START script_TingleSiblings + BeginBlock + Call sub_08064EA4 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + EndBlock +script_0801690A: + _0807E30C + JumpIfNot script_0801690A + _0807E864 + _0807EB74 + Call sub_08064F28 + WaitUntilTextboxCloses + JumpIfNot script_08016926 + _0807F034 0x003d + WaitPlayerGetItem +script_08016926: + _0807E878 + SetGlobalFlag 0x005c + Jump script_0801690A + BeginBlock + _0807E9D4 + _0807EB44 0x0000 + DoPostScriptAction 0x000a + EndBlock +script_0801693E: + _0807E944 + _0807E864 + Wait 0x0018 + MessageFromTarget 0x0a01 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0801693E + .2byte 0x0000 + BeginBlock + _0807E9D4 + _0807EB44 0x0000 + DoPostScriptAction 0x000a + _0807E930 0x0000 + EndBlock +script_0801696A: + _0807E944 + _0807E864 + Wait 0x0018 + MessageFromTarget 0x0a01 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0801696A + .2byte 0x0000 diff --git a/data/scripts/script_0800B00C.inc b/data/scripts/npc/script_Windcrest.inc similarity index 95% rename from data/scripts/script_0800B00C.inc rename to data/scripts/npc/script_Windcrest.inc index 78d910d2..ef4d0c4d 100644 --- a/data/scripts/script_0800B00C.inc +++ b/data/scripts/npc/script_Windcrest.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800B00C +@ All Windcrests +SCRIPT_START script_Windcrest BeginBlock Call sub_0807F934 Call sub_080A2124 diff --git a/data/scripts/script_08013F94.inc b/data/scripts/sanctuary/script_08013F94.inc similarity index 96% rename from data/scripts/script_08013F94.inc rename to data/scripts/sanctuary/script_08013F94.inc index a44e8e88..ec8cf7c0 100644 --- a/data/scripts/script_08013F94.inc +++ b/data/scripts/sanctuary/script_08013F94.inc @@ -1,3 +1,4 @@ +@ Sanctuary NPC4E 1? SCRIPT_START script_08013F94 BeginBlock DoPostScriptAction 0x0008 diff --git a/data/scripts/script_08013FE8.inc b/data/scripts/sanctuary/script_NPC4EPreventPlayerLeave.inc similarity index 79% rename from data/scripts/script_08013FE8.inc rename to data/scripts/sanctuary/script_NPC4EPreventPlayerLeave.inc index 6b33e01b..f727cd1a 100644 --- a/data/scripts/script_08013FE8.inc +++ b/data/scripts/sanctuary/script_NPC4EPreventPlayerLeave.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013FE8 +@ Sanctuary NPC4E Link has to try his new ability before leaving +SCRIPT_START script_NPC4EPreventPlayerLeave BeginBlock DoPostScriptAction 0x0008 EndBlock @@ -21,7 +22,7 @@ script_08013FF0: EndBlock _0807EB28 0x1508 WaitUntilTextboxCloses - StartPlayerScript script_08010A14 + StartPlayerScript script_PlayerSanctuary WaitForSomething2 0x00000001 Call sub_0807DF50 _0807E878 diff --git a/data/scripts/script_08013AA6.inc b/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc similarity index 87% rename from data/scripts/script_08013AA6.inc rename to data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc index a34b2009..520a148b 100644 --- a/data/scripts/script_08013AA6.inc +++ b/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013AA6 +@ Sanctuary NPC4E Rumble after fusing final sword +SCRIPT_START script_Npc4EFinalSwordRumble Call sub_0807F3F8 Wait 0x003c .ifdef EU diff --git a/data/scripts/script_08014248.inc b/data/scripts/sanctuary/script_Npc4ELookAtPictureAgain.inc similarity index 57% rename from data/scripts/script_08014248.inc rename to data/scripts/sanctuary/script_Npc4ELookAtPictureAgain.inc index b0ec2caf..26ed2582 100644 --- a/data/scripts/script_08014248.inc +++ b/data/scripts/sanctuary/script_Npc4ELookAtPictureAgain.inc @@ -1,16 +1,5 @@ -SCRIPT_START script_08014248 - TestBit 0x00020000 - JumpIf script_08014264 - Wait 0x0008 - CallWithArg sub_08095EAC, 0x00000000 - Jump script_08014248 -script_08014264: - CallWithArg sub_08095EAC, 0x00000001 - Jump script_08014264 - .align 2, 0 - -.ifndef EU -SCRIPT_START script_08014274 +@ Sanctuary NPC4E Inspect picture in back room after Vaati has revealed himself +SCRIPT_START script_Npc4ELookAtPictureAgain BeginBlock DoPostScriptAction 0x0008 EndBlock @@ -30,4 +19,3 @@ script_08014298: _0807E878 Jump script_08014298 .2byte 0x0000 -.endif diff --git a/data/scripts/script_080134DC.inc b/data/scripts/sanctuary/script_Npc4EPedestal.inc similarity index 64% rename from data/scripts/script_080134DC.inc rename to data/scripts/sanctuary/script_Npc4EPedestal.inc index 2c83e70b..ee6a1058 100644 --- a/data/scripts/script_080134DC.inc +++ b/data/scripts/sanctuary/script_Npc4EPedestal.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080134DC +@ Sanctuary NPC4E Pedestal for sword +SCRIPT_START script_Npc4EPedestal BeginBlock DoPostScriptAction 0x0008 EndBlock @@ -11,35 +12,35 @@ script_080134F8: JumpIfNot script_080134F8 _0807E864 Call sub_0807DF28 - StartPlayerScript script_080136D8 + StartPlayerScript script_PlayerAtPedestal WaitForSomething2 0x00000001 - CallWithArg sub_08095A1C, script_08013F04 + CallWithArg sub_08095A1C, script_Object6ASwordInPedestal PlaySound SFX_ELEMENT_PLACE Wait 0x005a BeginBlock PlaySound SFX_ELEMENT_FLOAT - CallWithArg sub_08095D54, script_08013E04 - CallWithArg sub_08095D54, script_08013E28 + CallWithArg sub_08095D54, script_Object6AEarthElementFloating + CallWithArg sub_08095D54, script_Object6AFireElementFloating EndBlock WaitForSomething2 0x18000000 BeginBlock PlaySound SFX_ELEMENT_CHARGE - CallWithArg sub_08095D8C, script_08014054 - CallWithArg sub_08095D8C, script_08014074 + CallWithArg sub_08095D8C, script_Object6ASwordChange1 + CallWithArg sub_08095D8C, script_Object6ASwordCharge2 EndBlock Wait 0x001e BeginBlock PlaySound SFX_1D0 - CallWithArg sub_08095D8C, script_080140DC - CallWithArg sub_08095D8C, script_08014118 + CallWithArg sub_08095D8C, script_Object6ASwordCharge5 + CallWithArg sub_08095D8C, script_Object6ASwordCharge6 EndBlock Wait 0x003c CallWithArg CreateManager36, 0x00000000 _0807E5F8 0x00000200 WaitForSomething2 0x00002000 PlaySound SFX_1D2 - CallWithArg sub_08095D8C, script_080141DC - CallWithArg sub_08095D8C, script_08014210 + CallWithArg sub_08095D8C, script_Object6ASwordCharge9 + CallWithArg sub_08095D8C, script_Object6ASwordCharge10 _0807E5F8 0x00000400 WaitForSomething2 0x00004000 Wait 0x0078 @@ -49,7 +50,7 @@ script_080134F8: _0807E5F8 0x00000080 WaitForSomething2 0x00000100 Wait 0x003c - StartPlayerScript script_08013B70 + StartPlayerScript script_PlayerPickUpSword _0807E5F8 0x00000080 _0807F078 0x0003, 0x0001 Call sub_0806DC3C diff --git a/data/scripts/script_08013B18.inc b/data/scripts/sanctuary/script_Npc4EPreventPlayerLeaving.inc similarity index 73% rename from data/scripts/script_08013B18.inc rename to data/scripts/sanctuary/script_Npc4EPreventPlayerLeaving.inc index 871595af..2f6668f6 100644 --- a/data/scripts/script_08013B18.inc +++ b/data/scripts/sanctuary/script_Npc4EPreventPlayerLeaving.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013B18 +@ Sanctuary NPC4E Prevent link from leaving after fusing final sword +SCRIPT_START script_Npc4EPreventPlayerLeaving BeginBlock DoPostScriptAction 0x0008 script_08013B1E: @@ -16,7 +17,7 @@ script_08013B1E: Call sub_0807DF28 _0807EB28 0x1507 WaitUntilTextboxCloses - StartPlayerScript script_08010A14 + StartPlayerScript script_PlayerSanctuary WaitForSomething2 0x00000001 Call sub_0807DF50 _0807E878 diff --git a/data/scripts/script_08013CA4.inc b/data/scripts/sanctuary/script_Npc4ESanctuaryIntro.inc similarity index 86% rename from data/scripts/script_08013CA4.inc rename to data/scripts/sanctuary/script_Npc4ESanctuaryIntro.inc index a04b072e..d52e0ba7 100644 --- a/data/scripts/script_08013CA4.inc +++ b/data/scripts/sanctuary/script_Npc4ESanctuaryIntro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013CA4 +@ Sanctuary NPC4E Intro Cutscene +SCRIPT_START script_Npc4ESanctuaryIntro EndBlock script_08013CA6: CheckPlayerInRegion 0x00e8, 0x01e8, 0x4080 diff --git a/data/scripts/script_08013720.inc b/data/scripts/sanctuary/script_Npc4ESecondSanctuary.inc similarity index 64% rename from data/scripts/script_08013720.inc rename to data/scripts/sanctuary/script_Npc4ESecondSanctuary.inc index 1f7bb597..982e53f7 100644 --- a/data/scripts/script_08013720.inc +++ b/data/scripts/sanctuary/script_Npc4ESecondSanctuary.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013720 +@ Sanctuary second time NPC4E? Handles cutscene +SCRIPT_START script_Npc4ESecondSanctuary BeginBlock DoPostScriptAction 0x0008 EndBlock @@ -11,36 +12,36 @@ script_0801373C: JumpIfNot script_0801373C _0807E864 Call sub_0807DF28 - StartPlayerScript script_080136D8 + StartPlayerScript script_PlayerAtPedestal WaitForSomething2 0x00000001 - CallWithArg sub_08095A1C, script_08013F34 + CallWithArg sub_08095A1C, script_Object6ASword2 PlaySound SFX_ELEMENT_PLACE Wait 0x005a BeginBlock PlaySound SFX_ELEMENT_FLOAT - CallWithArg sub_08095D54, script_08013E4C + CallWithArg sub_08095D54, script_Object6AWaterElementFloating EndBlock WaitForSomething2 0x20000000 BeginBlock PlaySound SFX_ELEMENT_CHARGE - CallWithArg sub_08095D8C, script_08014054 - CallWithArg sub_08095D8C, script_08014074 - CallWithArg sub_08095D8C, script_08014094 + CallWithArg sub_08095D8C, script_Object6ASwordChange1 + CallWithArg sub_08095D8C, script_Object6ASwordCharge2 + CallWithArg sub_08095D8C, script_Object6ASwordCharge3 EndBlock Wait 0x001e BeginBlock PlaySound SFX_1D0 - CallWithArg sub_08095D8C, script_080140DC - CallWithArg sub_08095D8C, script_08014118 - CallWithArg sub_08095D8C, script_08014154 + CallWithArg sub_08095D8C, script_Object6ASwordCharge5 + CallWithArg sub_08095D8C, script_Object6ASwordCharge6 + CallWithArg sub_08095D8C, script_Objet6ASwordCharge7 EndBlock Wait 0x003c CallWithArg CreateManager36, 0x00000000 _0807E5F8 0x00000200 WaitForSomething2 0x00002000 PlaySound SFX_1D2 - CallWithArg sub_08095D8C, script_080141DC - CallWithArg sub_08095D8C, script_08014210 + CallWithArg sub_08095D8C, script_Object6ASwordCharge9 + CallWithArg sub_08095D8C, script_Object6ASwordCharge10 _0807E5F8 0x00000400 WaitForSomething2 0x00004000 _0807E5F8 0x00000800 @@ -52,7 +53,7 @@ script_0801373C: _0807E5F8 0x00000080 WaitForSomething2 0x00000100 Wait 0x003c - StartPlayerScript script_08013B70 + StartPlayerScript script_PlayerPickUpSword _0807E5F8 0x00000080 _0807F078 0x0004, 0x0001 Call sub_0806DC3C diff --git a/data/scripts/script_08013650.inc b/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc similarity index 78% rename from data/scripts/script_08013650.inc rename to data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc index 9e6b1d46..2cebfed6 100644 --- a/data/scripts/script_08013650.inc +++ b/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013650 +@ Sanctuary NPC4E spawn text board +SCRIPT_START script_Npc4ESpawnTextBoard Call sub_0807F3F8 Wait 0x003c _0807F0B4 0x0007 @@ -9,7 +10,7 @@ SCRIPT_START script_08013650 Wait 0x0078 CallWithArg DeleteManager36, 0x00000001 _0807F0C8 0x0000, 0x0000 - StartPlayerScript script_080136B4 + StartPlayerScript script_PlayerTextBoardAppears WaitForSomething2 0x00000002 _0807EB28 0x1501 WaitUntilTextboxCloses diff --git a/data/scripts/script_080138B4.inc b/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc similarity index 67% rename from data/scripts/script_080138B4.inc rename to data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc index 2cbc2caf..5a6acd5a 100644 --- a/data/scripts/script_080138B4.inc +++ b/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080138B4 +@ Sanctuary third time NPC4E controlling cutscene +SCRIPT_START script_Npc4EThirdSanctuary BeginBlock DoPostScriptAction 0x0008 EndBlock @@ -11,38 +12,38 @@ script_080138D0: JumpIfNot script_080138D0 _0807E864 Call sub_0807DF28 - StartPlayerScript script_080136D8 + StartPlayerScript script_PlayerAtPedestal WaitForSomething2 0x00000001 - CallWithArg sub_08095A1C, script_08013F64 + CallWithArg sub_08095A1C, script_Object6ASword3 PlaySound SFX_ELEMENT_PLACE Wait 0x005a BeginBlock PlaySound SFX_ELEMENT_FLOAT - CallWithArg sub_08095D54, script_08013E70 + CallWithArg sub_08095D54, script_Object6AWindElementFloating EndBlock WaitForSomething2 0x40000000 BeginBlock PlaySound SFX_ELEMENT_CHARGE - CallWithArg sub_08095D8C, script_08014054 - CallWithArg sub_08095D8C, script_08014074 - CallWithArg sub_08095D8C, script_08014094 - CallWithArg sub_08095D8C, script_080140B8 + CallWithArg sub_08095D8C, script_Object6ASwordChange1 + CallWithArg sub_08095D8C, script_Object6ASwordCharge2 + CallWithArg sub_08095D8C, script_Object6ASwordCharge3 + CallWithArg sub_08095D8C, script_Object6ASwordCharge4 EndBlock Wait 0x001e BeginBlock PlaySound SFX_1D0 - CallWithArg sub_08095D8C, script_080140DC - CallWithArg sub_08095D8C, script_08014118 - CallWithArg sub_08095D8C, script_08014154 - CallWithArg sub_08095D8C, script_08014198 + CallWithArg sub_08095D8C, script_Object6ASwordCharge5 + CallWithArg sub_08095D8C, script_Object6ASwordCharge6 + CallWithArg sub_08095D8C, script_Objet6ASwordCharge7 + CallWithArg sub_08095D8C, script_Object6ASwordCharge8 EndBlock Wait 0x003c CallWithArg CreateManager36, 0x00000000 _0807E5F8 0x00000200 WaitForSomething2 0x00002000 PlaySound SFX_1D2 - CallWithArg sub_08095D8C, script_080141DC - CallWithArg sub_08095D8C, script_08014210 + CallWithArg sub_08095D8C, script_Object6ASwordCharge9 + CallWithArg sub_08095D8C, script_Object6ASwordCharge10 _0807E5F8 0x00000400 WaitForSomething2 0x00004000 _0807E5F8 0x00000800 @@ -56,7 +57,7 @@ script_080138D0: _0807E5F8 0x00000080 WaitForSomething2 0x00000100 Wait 0x003c - StartPlayerScript script_08013BA8 + StartPlayerScript script_PlayerPickUpFinalSword _0807E5F8 0x00000080 _0807F078 0x0006, 0x0001 Call sub_0807AEE4 diff --git a/data/scripts/script_08013E94.inc b/data/scripts/sanctuary/script_Object6AEarthElement.inc similarity index 63% rename from data/scripts/script_08013E94.inc rename to data/scripts/sanctuary/script_Object6AEarthElement.inc index 6da73541..55980676 100644 --- a/data/scripts/script_08013E94.inc +++ b/data/scripts/sanctuary/script_Object6AEarthElement.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013E94 +@ Sanctuary second time OBJECT_6A Earth Element +SCRIPT_START script_Object6AEarthElement BeginBlock DoPostScriptAction 0x0007 Call sub_0807F180 diff --git a/data/scripts/script_08013E04.inc b/data/scripts/sanctuary/script_Object6AEarthElementFloating.inc similarity index 65% rename from data/scripts/script_08013E04.inc rename to data/scripts/sanctuary/script_Object6AEarthElementFloating.inc index 47abff69..554c5cc7 100644 --- a/data/scripts/script_08013E04.inc +++ b/data/scripts/sanctuary/script_Object6AEarthElementFloating.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013E04 +@ Sanctuary OBJECT_6A floating Earth Element +SCRIPT_START script_Object6AEarthElementFloating BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0000 diff --git a/data/scripts/script_08013EB0.inc b/data/scripts/sanctuary/script_Object6AFireElement.inc similarity index 63% rename from data/scripts/script_08013EB0.inc rename to data/scripts/sanctuary/script_Object6AFireElement.inc index f02fef23..48385c7a 100644 --- a/data/scripts/script_08013EB0.inc +++ b/data/scripts/sanctuary/script_Object6AFireElement.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013EB0 +@ Sanctuary second time OBJECT_6A Fire Element +SCRIPT_START script_Object6AFireElement BeginBlock DoPostScriptAction 0x0007 Call sub_0807F180 diff --git a/data/scripts/script_08013E28.inc b/data/scripts/sanctuary/script_Object6AFireElementFloating.inc similarity index 66% rename from data/scripts/script_08013E28.inc rename to data/scripts/sanctuary/script_Object6AFireElementFloating.inc index e996cf56..f1f623c8 100644 --- a/data/scripts/script_08013E28.inc +++ b/data/scripts/sanctuary/script_Object6AFireElementFloating.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013E28 +@ Sanctuary OBJECT_6A floating Fire Element +SCRIPT_START script_Object6AFireElementFloating BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0002 diff --git a/data/scripts/script_08013F34.inc b/data/scripts/sanctuary/script_Object6ASword2.inc similarity index 75% rename from data/scripts/script_08013F34.inc rename to data/scripts/sanctuary/script_Object6ASword2.inc index 9646a835..34de116e 100644 --- a/data/scripts/script_08013F34.inc +++ b/data/scripts/sanctuary/script_Object6ASword2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013F34 +@ Sanctuary second time OBJECT_6A sword? +SCRIPT_START script_Object6ASword2 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0009 diff --git a/data/scripts/script_08013F64.inc b/data/scripts/sanctuary/script_Object6ASword3.inc similarity index 77% rename from data/scripts/script_08013F64.inc rename to data/scripts/sanctuary/script_Object6ASword3.inc index 3bdd29ac..f44a9697 100644 --- a/data/scripts/script_08013F64.inc +++ b/data/scripts/sanctuary/script_Object6ASword3.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013F64 +@ Sanctuary third time OBJECT_6A ? +SCRIPT_START script_Object6ASword3 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x000a diff --git a/data/scripts/script_08014054.inc b/data/scripts/sanctuary/script_Object6ASwordChange1.inc similarity index 68% rename from data/scripts/script_08014054.inc rename to data/scripts/sanctuary/script_Object6ASwordChange1.inc index 52fc4e4f..7c41e39c 100644 --- a/data/scripts/script_08014054.inc +++ b/data/scripts/sanctuary/script_Object6ASwordChange1.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014054 +@ Sanctuary OBJECT_6A Sword charging? +SCRIPT_START script_Object6ASwordChange1 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0000 diff --git a/data/scripts/script_08014210.inc b/data/scripts/sanctuary/script_Object6ASwordCharge10.inc similarity index 74% rename from data/scripts/script_08014210.inc rename to data/scripts/sanctuary/script_Object6ASwordCharge10.inc index 4119ab95..5a3fcf8d 100644 --- a/data/scripts/script_08014210.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge10.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014210 +@ Sanctuary OBJECT_6A Sword charging 5? +SCRIPT_START script_Object6ASwordCharge10 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0015 diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge11.inc b/data/scripts/sanctuary/script_Object6ASwordCharge11.inc new file mode 100644 index 00000000..3d2b2cd9 --- /dev/null +++ b/data/scripts/sanctuary/script_Object6ASwordCharge11.inc @@ -0,0 +1,11 @@ +@ Sanctuary third time OBJECT_6A ? +SCRIPT_START script_Object6ASwordCharge11 + TestBit 0x00020000 + JumpIf script_08014264 + Wait 0x0008 + CallWithArg sub_08095EAC, 0x00000000 + Jump script_Object6ASwordCharge11 +script_08014264: + CallWithArg sub_08095EAC, 0x00000001 + Jump script_08014264 + .align 2, 0 diff --git a/data/scripts/script_08014074.inc b/data/scripts/sanctuary/script_Object6ASwordCharge2.inc similarity index 67% rename from data/scripts/script_08014074.inc rename to data/scripts/sanctuary/script_Object6ASwordCharge2.inc index 94ac4516..d3e23d65 100644 --- a/data/scripts/script_08014074.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge2.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014074 +@ Sanctuary OBJECT_6A Sword charging 2? +SCRIPT_START script_Object6ASwordCharge2 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0001 diff --git a/data/scripts/script_08014094.inc b/data/scripts/sanctuary/script_Object6ASwordCharge3.inc similarity index 67% rename from data/scripts/script_08014094.inc rename to data/scripts/sanctuary/script_Object6ASwordCharge3.inc index ba91ee5c..72f35164 100644 --- a/data/scripts/script_08014094.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge3.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014094 +@ Sanctuary second time OBJECT_6A sword charging? +SCRIPT_START script_Object6ASwordCharge3 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0002 diff --git a/data/scripts/script_080140B8.inc b/data/scripts/sanctuary/script_Object6ASwordCharge4.inc similarity index 71% rename from data/scripts/script_080140B8.inc rename to data/scripts/sanctuary/script_Object6ASwordCharge4.inc index 200930ac..e693e365 100644 --- a/data/scripts/script_080140B8.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge4.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080140B8 +@ Sanctuary third time OBJECT_6A ? +SCRIPT_START script_Object6ASwordCharge4 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0003 diff --git a/data/scripts/script_080140DC.inc b/data/scripts/sanctuary/script_Object6ASwordCharge5.inc similarity index 77% rename from data/scripts/script_080140DC.inc rename to data/scripts/sanctuary/script_Object6ASwordCharge5.inc index 14d92521..22e19902 100644 --- a/data/scripts/script_080140DC.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge5.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080140DC +@ Sanctuary OBJECT_6A Sword charging 3? +SCRIPT_START script_Object6ASwordCharge5 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0004 diff --git a/data/scripts/script_08014118.inc b/data/scripts/sanctuary/script_Object6ASwordCharge6.inc similarity index 77% rename from data/scripts/script_08014118.inc rename to data/scripts/sanctuary/script_Object6ASwordCharge6.inc index 3576334e..e40ad2be 100644 --- a/data/scripts/script_08014118.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge6.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014118 +@ Sanctuary OBJECT_6A Sword charging 3? +SCRIPT_START script_Object6ASwordCharge6 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0005 diff --git a/data/scripts/script_08014198.inc b/data/scripts/sanctuary/script_Object6ASwordCharge8.inc similarity index 81% rename from data/scripts/script_08014198.inc rename to data/scripts/sanctuary/script_Object6ASwordCharge8.inc index 23954b49..38ad04ca 100644 --- a/data/scripts/script_08014198.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge8.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014198 +@ Sanctuary third time OBJECT_6A ? +SCRIPT_START script_Object6ASwordCharge8 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0007 diff --git a/data/scripts/script_080141DC.inc b/data/scripts/sanctuary/script_Object6ASwordCharge9.inc similarity index 74% rename from data/scripts/script_080141DC.inc rename to data/scripts/sanctuary/script_Object6ASwordCharge9.inc index cdb648e7..5c2d7dca 100644 --- a/data/scripts/script_080141DC.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge9.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080141DC +@ Sanctuary OBJECT_6A Sword charging 4? +SCRIPT_START script_Object6ASwordCharge9 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0014 diff --git a/data/scripts/script_08013F04.inc b/data/scripts/sanctuary/script_Object6ASwordInPedestal.inc similarity index 73% rename from data/scripts/script_08013F04.inc rename to data/scripts/sanctuary/script_Object6ASwordInPedestal.inc index 7b5162e1..d83de50e 100644 --- a/data/scripts/script_08013F04.inc +++ b/data/scripts/sanctuary/script_Object6ASwordInPedestal.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013F04 +@ Sanctuary OBJECT_6A Sword in pedestal +SCRIPT_START script_Object6ASwordInPedestal BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0008 diff --git a/data/scripts/script_08013BE8.inc b/data/scripts/sanctuary/script_Object6ATextBoard.inc similarity index 94% rename from data/scripts/script_08013BE8.inc rename to data/scripts/sanctuary/script_Object6ATextBoard.inc index 61fa4b10..0d465a7f 100644 --- a/data/scripts/script_08013BE8.inc +++ b/data/scripts/sanctuary/script_Object6ATextBoard.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013BE8 +@ Sanctuary OBJECT_6A text board +SCRIPT_START script_Object6ATextBoard BeginBlock CheckLocalFlag 0x007a JumpIf script_08013C2A diff --git a/data/scripts/script_08013ECC.inc b/data/scripts/sanctuary/script_Object6AWaterElement.inc similarity index 66% rename from data/scripts/script_08013ECC.inc rename to data/scripts/sanctuary/script_Object6AWaterElement.inc index 4ea11b20..0d40a625 100644 --- a/data/scripts/script_08013ECC.inc +++ b/data/scripts/sanctuary/script_Object6AWaterElement.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013ECC +@ Sanctuary OBJECT_6A Water Element +SCRIPT_START script_Object6AWaterElement BeginBlock DoPostScriptAction 0x0007 Call sub_0807F180 diff --git a/data/scripts/script_08013E4C.inc b/data/scripts/sanctuary/script_Object6AWaterElementFloating.inc similarity index 65% rename from data/scripts/script_08013E4C.inc rename to data/scripts/sanctuary/script_Object6AWaterElementFloating.inc index 7180dae7..f325a16c 100644 --- a/data/scripts/script_08013E4C.inc +++ b/data/scripts/sanctuary/script_Object6AWaterElementFloating.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013E4C +@ Sanctuary second time floating water element +SCRIPT_START script_Object6AWaterElementFloating BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0004 diff --git a/data/scripts/script_08013EE8.inc b/data/scripts/sanctuary/script_Object6AWindElement.inc similarity index 67% rename from data/scripts/script_08013EE8.inc rename to data/scripts/sanctuary/script_Object6AWindElement.inc index 924a762e..b0a2e2c4 100644 --- a/data/scripts/script_08013EE8.inc +++ b/data/scripts/sanctuary/script_Object6AWindElement.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013EE8 +@ Sanctuary OBJECT_6A Wind Element +SCRIPT_START script_Object6AWindElement BeginBlock DoPostScriptAction 0x0007 Call sub_0807F180 diff --git a/data/scripts/script_08013E70.inc b/data/scripts/sanctuary/script_Object6AWindElementFloating.inc similarity index 68% rename from data/scripts/script_08013E70.inc rename to data/scripts/sanctuary/script_Object6AWindElementFloating.inc index fb6a48c8..d50d3f3f 100644 --- a/data/scripts/script_08013E70.inc +++ b/data/scripts/sanctuary/script_Object6AWindElementFloating.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013E70 +@ Sanctuary third time OBJECT_6A ? +SCRIPT_START script_Object6AWindElementFloating BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0006 diff --git a/data/scripts/script_08014154.inc b/data/scripts/sanctuary/script_Objet6ASwordCharge7.inc similarity index 78% rename from data/scripts/script_08014154.inc rename to data/scripts/sanctuary/script_Objet6ASwordCharge7.inc index 175080d4..c56f06ee 100644 --- a/data/scripts/script_08014154.inc +++ b/data/scripts/sanctuary/script_Objet6ASwordCharge7.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08014154 +@ Sanctuary second time OBJECT_6A sword charging? +SCRIPT_START script_Objet6ASwordCharge7 BeginBlock DoPostScriptAction 0x0007 _0807E930 0x0006 diff --git a/data/scripts/script_080136D8.inc b/data/scripts/sanctuary/script_PlayerAtPedestal.inc similarity index 85% rename from data/scripts/script_080136D8.inc rename to data/scripts/sanctuary/script_PlayerAtPedestal.inc index bd7e8f9c..be558d2e 100644 --- a/data/scripts/script_080136D8.inc +++ b/data/scripts/sanctuary/script_PlayerAtPedestal.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080136D8 +@ Player at Sanctuary pedestal +SCRIPT_START script_PlayerAtPedestal BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_08012DB0.inc b/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc similarity index 70% rename from data/scripts/script_08012DB0.inc rename to data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc index 5e9b2640..b257b2f5 100644 --- a/data/scripts/script_08012DB0.inc +++ b/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08012DB0 +@ Player at Sanctuary Entrance +SCRIPT_START script_PlayerAtSanctuaryEntrance BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_0800A0B4.inc b/data/scripts/sanctuary/script_PlayerGetElement.inc similarity index 86% rename from data/scripts/script_0800A0B4.inc rename to data/scripts/sanctuary/script_PlayerGetElement.inc index 25fbd63c..e834ef9f 100644 --- a/data/scripts/script_0800A0B4.inc +++ b/data/scripts/sanctuary/script_PlayerGetElement.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800A0B4 +@ Player get element +SCRIPT_START script_PlayerGetElement BeginBlock SetEntitySpeed 0x0140 _0807E864 diff --git a/data/scripts/script_08013BA8.inc b/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc similarity index 59% rename from data/scripts/script_08013BA8.inc rename to data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc index dd34bd58..bffaefd0 100644 --- a/data/scripts/script_08013BA8.inc +++ b/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc @@ -1,5 +1,6 @@ -SCRIPT_START script_08013BA8 - CallWithArg sub_08095E7C, script_08014248 +@ Player at Sanctuary draw final sword +SCRIPT_START script_PlayerPickUpFinalSword + CallWithArg sub_08095E7C, script_Object6ASwordCharge11 PlaySound SFX_1D3 CallWithArg sub_0807F238, 0x000008e3 Call sub_08096028 diff --git a/data/scripts/script_08013B70.inc b/data/scripts/sanctuary/script_PlayerPickUpSword.inc similarity index 74% rename from data/scripts/script_08013B70.inc rename to data/scripts/sanctuary/script_PlayerPickUpSword.inc index 15c75a3c..a6e18822 100644 --- a/data/scripts/script_08013B70.inc +++ b/data/scripts/sanctuary/script_PlayerPickUpSword.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013B70 +@ Player at Sanctuary pick up sword +SCRIPT_START script_PlayerPickUpSword PlaySound SFX_1D3 CallWithArg sub_0807F238, 0x000008bf Call sub_08096028 diff --git a/data/scripts/script_08010A14.inc b/data/scripts/sanctuary/script_PlayerSanctuary.inc similarity index 62% rename from data/scripts/script_08010A14.inc rename to data/scripts/sanctuary/script_PlayerSanctuary.inc index 8e7c7ca4..a860cd9c 100644 --- a/data/scripts/script_08010A14.inc +++ b/data/scripts/sanctuary/script_PlayerSanctuary.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08010A14 +@ Player in Sanctuary when trying clone ability for the first time +SCRIPT_START script_PlayerSanctuary BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_08013330.inc b/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc similarity index 61% rename from data/scripts/script_08013330.inc rename to data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc index e1622710..5fea928d 100644 --- a/data/scripts/script_08013330.inc +++ b/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08013330 +@ Player in Sanctuary during intro cutscene +SCRIPT_START script_PlayerSanctuaryIntro BeginBlock _0807EB44 0x0000 SetEntityPositionRelative 0x0098, 0x0070 diff --git a/data/scripts/script_080136B4.inc b/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc similarity index 65% rename from data/scripts/script_080136B4.inc rename to data/scripts/sanctuary/script_PlayerTextBoardAppears.inc index 3cd43738..35c0f79a 100644 --- a/data/scripts/script_080136B4.inc +++ b/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080136B4 +@ Player in Sanctuary when spawning text board +SCRIPT_START script_PlayerTextBoardAppears BeginBlock SetEntitySpeed 0x0100 EndBlock diff --git a/data/scripts/script_08008B5C.inc b/data/scripts/script_08008B5C.inc deleted file mode 100644 index c1bc824e..00000000 --- a/data/scripts/script_08008B5C.inc +++ /dev/null @@ -1,137 +0,0 @@ -SCRIPT_START script_08008B5C - BeginBlock - _0807E9D4 - _0807EB44 0x0004 - _0807E930 0x0000 - DoPostScriptAction 0x000a - EndBlock -script_08008B6E: - _0807E944 - _0807E864 - _0807E930 0x0004 - Call sub_0807F2D4 - Call sub_0806BBB0 - WaitUntilTextboxCloses - _0807E930 0x0008 - _0807E878 - Jump script_08008B6E - .2byte 0x0000 -SCRIPT_START script_08008B90 - BeginBlock - _0807E9D4 - _0807EB44 0x0004 - DoPostScriptAction 0x000a - _0807E930 0x0000 - EndBlock -script_08008BA2: - _0807E944 - _0807E864 - _0807E930 0x0004 - Call sub_0807F2D4 - MessageFromTarget 0x4912 - WaitUntilTextboxCloses - _0807E930 0x0008 - _0807E878 - Jump script_08008BA2 -SCRIPT_START script_08008BC0 - BeginBlock - _0807E9D4 - _0807EB44 0x0004 - DoPostScriptAction 0x000a - _0807E930 0x0000 -.ifdef EU - SetGlobalFlag 0x0061 -.endif - EndBlock -script_08008BD2: - _0807E944 - _0807E864 -.ifndef EU - SetGlobalFlag 0x0061 -.endif - _0807E930 0x0004 - Call sub_0807F2D4 - WaitUntilTextboxCloses - Call sub_0806BA34 - JumpIfNot script_08008C54 - WaitUntilTextboxCloses - CallWithArg sub_0806BB1C, 0x00000000 - Call sub_0807F2D4 - CallWithArg sub_0806BB1C, 0x00000001 - Call sub_0806BB7C - JumpIfNot script_08008C5C - MessageNoOverlap 0x490c - WaitUntilTextboxCloses - LoadRoomEntityList gUnk_080D6784 - WaitForSomething 0x00000001 - WaitForSomething 0x00000004 - Wait 0x000f - PlaySound SFX_SECRET - _0807E930 0x0004 - Call sub_0807F2D4 - MessageNoOverlap 0x4913 - WaitUntilTextboxCloses - _0807E930 0x0008 - Call sub_0807F2D4 - Jump script_08008C5C -script_08008C54: - _0807E930 0x0008 - Wait 0x000f -script_08008C5C: - WaitUntilTextboxCloses - _0807E878 - Jump script_08008BD2 -SCRIPT_START script_08008C64 - BeginBlock - SetEntityPositionRelative 0x0068, 0x0018 - DoPostScriptAction 0x000f - _0807EB44 0x0004 - _0807E930 0x0004 - SetEntitySpeed 0x0300 - PlaySound SFX_STAIRS - EndBlock - WaitForSomething 0x00000002 - MessageNoOverlap 0x490d - WaitUntilTextboxCloses - DoPostScriptAction 0x0007 - Call sub_08064D08 - _0807EDD4 0x0068, 0x0078 - Call sub_08064D10 - Wait 0x000f - _0807EB44 0x0002 - Wait 0x000f - Call sub_08064D08 - _0807EDD4 0x0098, 0x0078 - Call sub_08064D10 - Wait 0x000f - _0807EB44 0x0004 - PlaySound SFX_PLY_LIFT - Wait 0x000f - _0807EB44 0x0002 - _0807EDD4 0x00ac, 0x0078 - Wait 0x000f - _0807EB44 0x0004 - PlaySound SFX_PLY_LIFT - Wait 0x000f - _0807EB44 0x0002 - _0807EDD4 0x00c0, 0x0078 - Wait 0x000f - _0807EB44 0x0004 - PlaySound SFX_PLY_LIFT - Wait 0x000f - _0807EB44 0x0006 - Wait 0x001e - Call sub_08064D08 - _0807EDD4 0x0068, 0x0078 - Call sub_08064D10 - Wait 0x000f - _0807EB44 0x0000 - Wait 0x000f - Call sub_08064D08 - _0807EDD4 0x0068, 0x0018 - Call sub_08064D10 - PlaySound SFX_STAIRS - _0807E5F8 0x00000001 - DoPostScriptAction 0x0006 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800903C.inc b/data/scripts/script_0800903C.inc deleted file mode 100644 index ba22fe01..00000000 --- a/data/scripts/script_0800903C.inc +++ /dev/null @@ -1,206 +0,0 @@ -SCRIPT_START script_0800903C - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - EndBlock - WaitForSomething2 0x00000004 - PlaySound SFX_PLY_JUMP - _0807EF3C 0x0180, 0x0030 - _0807EB44 0x0002 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 - _0807EB44 0x0004 - _0807E5F8 0x00000008 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a - Jump script_0800927E - .2byte 0x0000 -SCRIPT_START script_08009080 - BeginBlock - Call sub_0807F348 - SetEntitySpeed 0x0100 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - _0807E9D4 - DoPostScriptAction 0x000a - EndBlock - WaitForSomething2 0x00000080 - _0807EB44 0x0004 - _0807ECC4 0x0008 - _0807E930 0x0004 - MessageFromTargetPos 0x1050, 0x000e - WaitUntilTextboxCloses - DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 - _0807E930 0x0004 - MessageFromTargetPos 0x1052, 0x000e - WaitUntilTextboxCloses - DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 - _0807EB44 0x0006 - _0807E930 0x0005 - MessageFromTargetPos 0x1054, 0x000e - WaitUntilTextboxCloses - DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 - _0807EB44 0x0004 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 - _0807E930 0x0004 - MessageFromTargetPos 0x1056, 0x000e - WaitUntilTextboxCloses - DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 - _0807E930 0x0004 - MessageFromTargetPos 0x1057, 0x000e - WaitUntilTextboxCloses - DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 - _0807E930 0x0004 - MessageFromTargetPos 0x1058, 0x000e - WaitUntilTextboxCloses - DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 - _0807E930 0x0004 - MessageFromTargetPos 0x105c, 0x000e - WaitUntilTextboxCloses - DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 -script_0800917C: - CheckEntityInteractType - JumpIfNot script_0800917C - _0807E864 - _0807EB74 - Call sub_0806673C - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800917C -SCRIPT_START script_08009198 - BeginBlock - Call sub_0807F348 - _0807EB44 0x0006 - DoPostScriptAction 0x0000 - EndBlock - WaitForSomething2 0x00000001 - _0807EB74 - DoPostScriptAction 0x0001 - MessageFromTargetPos 0x105b, 0x0000 - WaitUntilTextboxCloses - DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 - _0807EB44 0x0006 - DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 - DoPostScriptAction 0x0005 - Wait 0x003c - DoPostScriptAction 0x0001 - MessageFromTargetPos 0x1051, 0x0000 - WaitUntilTextboxCloses - DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 - DoPostScriptAction 0x0004 - Wait 0x003c - _0807EB74 - _0807EB8C - DoPostScriptAction 0x0001 - MessageFromTargetPos 0x1055, 0x0000 - WaitUntilTextboxCloses - DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 - _0807EB74 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 - SetEntitySpeed 0x0080 - DoPostScriptAction 0x0001 - _0807EDD4 0x0098, 0x0078 - _0807EB74 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x0001 - MessageFromTargetPos 0x1059, 0x0000 - WaitUntilTextboxCloses - DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a - Jump script_080092B2 - .2byte 0x0000 -SCRIPT_START script_08009274 - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x0000 -script_0800927E: - Call sub_080668F0 - DoPostScriptAction 0x000a - EndBlock -script_0800928A: - CheckEntityInteractType - JumpIfNot script_0800928A - _0807E864 - _0807EB74 - Call sub_08066904 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800928A - .2byte 0x0000 -SCRIPT_START script_080092A8 - BeginBlock - _0807EB44 0x0006 - DoPostScriptAction 0x0000 -script_080092B2: - _0807E9D4 - DoPostScriptAction 0x000a - EndBlock -script_080092BA: - CheckEntityInteractType - JumpIfNot script_080092BA - _0807E864 - _0807EB74 - MessageNoOverlap 0x105e - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_080092BA -SCRIPT_START script_080092D4 - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - Call sub_0806672C - DoPostScriptAction 0x000a - EndBlock - Jump script_0800917C - .2byte 0x0000 -SCRIPT_START script_080092F0 - BeginBlock - DoPostScriptAction 0x000a - Call sub_08066E38 - _0807E9D4 - EndBlock -script_08009300: - CheckEntityInteractType - JumpIfNot script_08009300 - _0807E864 - _0807EB74 - MessageNoOverlap 0x1071 - WaitUntilTextboxCloses - _0807E878 - Jump script_08009300 - .2byte 0x0000 -SCRIPT_START script_08009318 - BeginBlock - EndBlock -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_08009340.inc b/data/scripts/script_08009340.inc deleted file mode 100644 index d5ecf24e..00000000 --- a/data/scripts/script_08009340.inc +++ /dev/null @@ -1,5 +0,0 @@ -SCRIPT_START script_08009340 - BeginBlock - EndBlock -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_080094FC.inc b/data/scripts/script_080094FC.inc deleted file mode 100644 index ca1dae02..00000000 --- a/data/scripts/script_080094FC.inc +++ /dev/null @@ -1,76 +0,0 @@ -SCRIPT_START script_080094FC - BeginBlock - Call sub_08067100 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - EndBlock -script_08009512: - CheckEntityInteractType - JumpIfNot script_08009512 - _0807E864 - DoPostScriptAction 0x0001 - _0807EB74 - Call sub_080670B4 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - Jump script_08009512 - .2byte 0x0000 -SCRIPT_START script_08009538 - BeginBlock - Call sub_08067100 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - EndBlock -script_0800954E: - CheckEntityInteractType - JumpIfNot script_0800954E - _0807E864 - DoPostScriptAction 0x0001 - _0807EB74 - Call sub_080670E4 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - Jump script_0800954E - .2byte 0x0000 -SCRIPT_START script_08009574 - BeginBlock - Call sub_08067314 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - SetIntVariable 0x00000000 - Call sub_080672B0 - EndBlock -script_08009592: - CheckEntityInteractType - JumpIfNot script_08009592 - _0807E864 - _0807EB74 - SetIntVariable 0x00000004 - Call sub_080672B0 - Call sub_080672C8 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - _0807EB44 0x0004 - SetIntVariable 0x00000000 - Call sub_080672B0 - Jump script_08009592 - .2byte 0x0000 -SCRIPT_START script_080095CC - BeginBlock - Call sub_0806BE3C - DoPostScriptAction 0x000a - DoPostScriptAction 0x0007 - EndBlock -script_080095DE: - Call sub_0806BF44 - JumpIf script_080095F2 - DoPostScriptAction 0x000b - DoPostScriptAction 0x0006 -SCRIPT_END diff --git a/data/scripts/script_080095F2.inc b/data/scripts/script_080095F2.inc deleted file mode 100644 index a0b52a09..00000000 --- a/data/scripts/script_080095F2.inc +++ /dev/null @@ -1,83 +0,0 @@ -SCRIPT_START script_080095F2 - CheckEntityInteractType - JumpIfNot script_080095DE - _0807E864 - _0807EB74 - DoPostScriptAction 0x0001 - Call sub_0806BE84 - WaitUntilTextboxCloses - JumpIfNot script_08009622 - PlaySound SFX_109 - _0807F088 0x003c - MessageFromTarget 0x053c - WaitPlayerGetItem - WaitUntilTextboxCloses - _0807F078 0x003c, 0x0001 -script_08009622: - _0807E878 - DoPostScriptAction 0x0000 - Jump script_080095DE -SCRIPT_START script_0800962C - BeginBlock - DoPostScriptAction 0x000b - DoPostScriptAction 0x0008 - EndBlock -script_08009638: - EndBlock - BeginBlock - CheckGlobalFlag 0x0020 - JumpIfNot script_08009638 - EndBlock -script_08009646: - Call sub_0806BF44 - JumpIf script_08009646 - EndBlock - Call sub_0806BE3C - DoPostScriptAction 0x000a - DoPostScriptAction 0x0007 -script_08009660: - CheckEntityInteractType - JumpIfNot script_08009660 - _0807E864 - _0807EB74 - DoPostScriptAction 0x0001 - Call sub_0806BEC8 - WaitUntilTextboxCloses - JumpIfNot script_0800968E - PlaySound SFX_111 - PlaySound SFX_SECRET - _0807F078 0x003c, 0x0002 - Call sub_0806BEFC -script_0800968E: - _0807E878 - DoPostScriptAction 0x0000 - Jump script_08009660 -SCRIPT_START script_08009698 - BeginBlock - DoPostScriptAction 0x0007 - Jump script_080096FC - CheckGlobalFlag 0x0020 - JumpIf script_080096FC - EndBlock -script_080096AC: - CheckPlayerInRegion 0x0188, 0x01c0, 0x1020 - JumpIfNot script_080096AC - _0807E864 - Call sub_0807F9A4 - Call sub_0807DF28 - StartPlayerScript script_08009704 - WaitForSomething2 0x00000001 - PlaySound SFX_111 - DoPostScriptAction 0x0008 - LoadRoomEntityList gUnk_080D9048 - Wait 0x000f - PlaySound SFX_111 - DoPostScriptAction 0x0007 -script_080096EC: - CheckGlobalFlag 0x0020 - JumpIfNot script_080096EC - Call sub_0807DF50 - _0807E878 -script_080096FC: - Call sub_0808692C -SCRIPT_END diff --git a/data/scripts/script_08009E4E.inc b/data/scripts/script_08009E4E.inc deleted file mode 100644 index 62c60d42..00000000 --- a/data/scripts/script_08009E4E.inc +++ /dev/null @@ -1,5 +0,0 @@ -SCRIPT_START script_08009E4E - _0807E878 - DoPostScriptAction 0x0006 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800A7E4.inc b/data/scripts/script_0800A7E4.inc deleted file mode 100644 index 719c802a..00000000 --- a/data/scripts/script_0800A7E4.inc +++ /dev/null @@ -1,104 +0,0 @@ -SCRIPT_START script_0800A7E4 - BeginBlock - DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x0010 - EndBlock - WaitForSomething 0x00000001 - _0807E930 0x0002 - WaitForSomething2 0x00000002 - DoPostScriptAction 0x0004 - Wait 0x003c -script_0800A80C: - _0807E930 0x0001 - Wait 0x001e - _0807E930 0x0003 - Wait 0x001e - Jump script_0800A80C -SCRIPT_START script_0800A820 - BeginBlock - DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x0010 - EndBlock - WaitForSomething 0x00000001 - _0807E930 0x0002 - WaitForSomething2 0x00000004 - DoPostScriptAction 0x0004 - Wait 0x003c -script_0800A848: - _0807E930 0x0001 - Wait 0x0014 - _0807E930 0x0003 - Wait 0x0014 - Jump script_0800A848 -SCRIPT_START script_0800A85C - BeginBlock - DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x0010 - EndBlock - WaitForSomething 0x00000001 - _0807E930 0x0002 - WaitForSomething2 0x00000008 - DoPostScriptAction 0x0004 - Wait 0x003c -script_0800A884: - _0807E930 0x0001 - Wait 0x000a - _0807E930 0x0003 - Wait 0x000a - Jump script_0800A884 -SCRIPT_START script_0800A898 - BeginBlock - DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x0008 - EndBlock - WaitForSomething 0x00000001 - DoPostScriptAction 0x0000 - WaitForSomething2 0x00000010 - DoPostScriptAction 0x0004 - Wait 0x003c -script_0800A8C0: - _0807EB44 0x0002 - Wait 0x0019 - _0807EB44 0x0006 - Wait 0x0019 - Jump script_0800A8C0 -SCRIPT_START script_0800A8D4 - BeginBlock - DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x0008 - EndBlock - WaitForSomething 0x00000001 - DoPostScriptAction 0x0000 - WaitForSomething2 0x00000020 - DoPostScriptAction 0x0004 - Wait 0x003c -script_0800A8FC: - _0807EB44 0x0002 - Wait 0x000f - _0807EB44 0x0006 - Wait 0x000f - Jump script_0800A8FC -SCRIPT_START script_0800A910 - BeginBlock - _0807E864 - Call sub_0807DF28 - SetEntityPositionRelative 0x0378, 0x0178 - Call sub_0807F844 - EndBlock - Wait 0x003c - _0807E5F8 0x00000001 - Wait 0x001e - _0807E5F8 0x00000002 - Wait 0x0014 - _0807E5F8 0x00000004 - Wait 0x000a - _0807E5F8 0x00000008 - Wait 0x003c - CallWithArg sub_0806DA1C, 0x0000000d - DoPostScriptAction 0x0006 -SCRIPT_END diff --git a/data/scripts/script_0800B254.inc b/data/scripts/script_0800B254.inc deleted file mode 100644 index 3e51c2ce..00000000 --- a/data/scripts/script_0800B254.inc +++ /dev/null @@ -1,62 +0,0 @@ -SCRIPT_START script_0800B254 - BeginBlock - CheckKinstoneFused 0x0006 - JumpIf script_0800B302 - _0807EA88 0x0006 - _0807EB44 0x0002 - EndBlock -script_0800B268: - _0807EA4C - _0807E9F0 - _0807E864 - CheckKinstoneFused 0x0006 - JumpIf script_0800B2E2 - Call sub_0807DF50 - _0807E878 - Jump script_0800B268 - .2byte 0x0000 -SCRIPT_START script_0800B284 - BeginBlock - CheckKinstoneFused 0x0007 - JumpIf script_0800B302 - _0807EA88 0x0007 - _0807EB44 0x0002 - EndBlock -script_0800B298: - _0807EA4C - _0807E9F0 - _0807E864 - CheckKinstoneFused 0x0007 - JumpIf script_0800B2E2 - Call sub_0807DF50 - _0807E878 - Jump script_0800B298 - .2byte 0x0000 -SCRIPT_START script_0800B2B4 - BeginBlock - CheckKinstoneFused 0x0008 - JumpIf script_0800B302 - _0807EA88 0x0008 - _0807EB44 0x0002 - EndBlock -script_0800B2C8: - _0807EA4C - _0807E9F0 - _0807E864 - CheckKinstoneFused 0x0008 - JumpIf script_0800B2E2 - Call sub_0807DF50 - _0807E878 - Jump script_0800B2C8 -script_0800B2E2: - DoPostScriptAction 0x0013 - _0807EB44 0x0004 - _0807E9DC - Call sub_080676E0 - Call sub_08067534 - DoPostScriptAction 0x0012 - _0807E5F8 0x00000001 -script_0800B302: - EndBlock -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800B7C4.inc b/data/scripts/script_0800B7C4.inc deleted file mode 100644 index 32b4d19b..00000000 --- a/data/scripts/script_0800B7C4.inc +++ /dev/null @@ -1,13 +0,0 @@ -SCRIPT_START script_0800B7C4 - BeginBlock - SetEntitySpeed 0x0100 - EndBlock - CallWithArg sub_0807F6B4, 0x00000090 - JumpIfNot script_0800B7FC - CallWithArg sub_0807F464, 0x00000078 - CallWithArg sub_0807F4F8, 0x00000090 -script_0800B7EE: - _0807E8E4_0 - DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 -SCRIPT_END diff --git a/data/scripts/script_0800B7FC.inc b/data/scripts/script_0800B7FC.inc deleted file mode 100644 index 75771a0a..00000000 --- a/data/scripts/script_0800B7FC.inc +++ /dev/null @@ -1,11 +0,0 @@ -SCRIPT_START script_0800B7FC - CallWithArg sub_0807F4F8, 0x00000090 - CallWithArg sub_0807F464, 0x00000078 - Jump script_0800B7EE - BeginBlock - DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x0000 - EndBlock -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800B828.inc b/data/scripts/script_0800B828.inc deleted file mode 100644 index 43faad8a..00000000 --- a/data/scripts/script_0800B828.inc +++ /dev/null @@ -1,133 +0,0 @@ -SCRIPT_START script_0800B828 - BeginBlock - _0807E9D4 - _0807EB44 0x0000 - DoPostScriptAction 0x000a - EndBlock -script_0800B836: - _0807E944 - _0807E864 - MessageFromTarget 0x0a01 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800B836 - .2byte 0x0000 - BeginBlock - _0807E9D4 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - EndBlock -script_0800B85E: - Wait 0x003c - Call sub_080646A4 - Jump script_0800B85E - BeginBlock - _0807E9D4 - _0807EB44 0x0004 - _0807E930 0x0000 - DoPostScriptAction 0x000a - EndBlock -script_0800B87E: - Wait 0x003c - Call sub_0806407C - Jump script_0800B87E - BeginBlock - _0807E9D4 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - EndBlock -script_0800B89E: - CheckEntityInteractType - JumpIfNot script_0800B89E - _0807E864 - _0807EB74 - MessageFromTarget 0x0a01 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800B89E -SCRIPT_START script_0800B8B8 - BeginBlock - _0807E9D4 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - CallWithArg sub_08064644, sub_0806464C - EndBlock -script_0800B8D4: - Wait 0x003c - Call sub_080646A4 - Jump script_0800B8D4 - .2byte 0x0000 -SCRIPT_START script_0800B8E4 - BeginBlock - Call sub_08061E70 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - Call sub_08061FD8 - EndBlock -script_0800B8FC: - CheckEntityInteractType - JumpIfNot script_0800B8FC - _0807E864 - _0807EB74 - Call sub_08061FD8 - Call sub_08062048 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800B8FC - .2byte 0x0000 -SCRIPT_START script_0800B91C - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - EndBlock - CheckLocalFlag 0x005f - JumpIf script_0800B94E -script_0800B934: - CheckEntityInteractType - JumpIfNot script_0800B934 - _0807E864 - _0807EB74 - MessageFromTarget 0x3f19 - WaitUntilTextboxCloses - SetLocalFlag 0x005f - _0807E878 - Jump script_0800B934 -script_0800B94E: - CheckEntityInteractType - JumpIfNot script_0800B94E - _0807E864 - _0807EB74 - MessageFromTarget 0x3f1a - WaitUntilTextboxCloses - _0807E878 - Jump script_0800B94E -SCRIPT_START script_0800B964 - BeginBlock - DoPostScriptAction 0x000b - DoPostScriptAction 0x0008 - Call sub_0806DAAC - JumpIf script_0800B9AC - Call sub_0806DAD0 - CallWithArg sub_0806DA04, 0x00000005 - EndBlock -script_0800B98A: - _0807EA4C - _0807E9F0 - JumpIf script_0800B99E - Call sub_0807DF50 - _0807E878 - Jump script_0800B98A -script_0800B99E: - Call sub_0806F188 - Call sub_0807DF50 - _0807E878 -script_0800B9AC: - DoPostScriptAction 0x0006 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800B9B4.inc b/data/scripts/script_0800B9B4.inc deleted file mode 100644 index 79b4f784..00000000 --- a/data/scripts/script_0800B9B4.inc +++ /dev/null @@ -1,84 +0,0 @@ -SCRIPT_START script_0800B9B4 - BeginBlock - _0807E9D4 - Call sub_080694EC - DoPostScriptAction 0x000a - Call sub_080694B0 - EndBlock -script_0800B9CA: - Call sub_0807F434 - JumpTable script_0800B9CA, script_0800B9D8, script_0800B9F4 -script_0800B9D8: - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - Call sub_080694D8 - WaitUntilTextboxCloses - Call sub_080694EC - _0807E878 - Jump script_0800B9CA -script_0800B9F4: - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - Call sub_0807F650 - _0807E9F0 - _0807E864 - Call sub_0806948C - JumpIf script_0800BA24 - WaitUntilTextboxCloses - Call sub_080694EC - Call sub_0807DF50 - _0807E878 - Jump script_0800B9CA -script_0800BA24: - WaitUntilTextboxCloses - _0807E9DC - _0807E9D4 - Call sub_080694EC - Call sub_0807DF50 - _0807E878 - Jump script_0800B9CA -SCRIPT_START script_0800BA3C - BeginBlock - Call sub_0807F934 - EndBlock -script_0800BA46: - CheckEntityInteractType - JumpIfNot script_0800BA46 - _0807E864 - Call sub_0807DF28 - MessageFromTarget 0x3301 - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_0800BA6C - StopBgm - Call sub_0806E964 - PlayBGM -script_0800BA6C: - Call sub_0807DF50 - _0807E878 - Jump script_0800BA46 -SCRIPT_START script_0800BA78 - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - SetEntitySpeed 0x0040 - Call sub_0807F348 - EndBlock -script_0800BA8E: - CheckRoomFlag 0x00ff - JumpIfNot script_0800BA8E - _0807EDD4 0x02f8, 0x0350 - Wait 0x001e - DoPostScriptAction 0x0004 - Wait 0x003c - _0807EB44 0x0006 - Wait 0x001e - _0807EDD4 0x02f0, 0x0350 - Wait 0x001e - MessageNoOverlap 0x0e00 - WaitUntilTextboxCloses - Wait 0x0078 - Call sub_08054968 -SCRIPT_END diff --git a/data/scripts/script_0800C550.inc b/data/scripts/script_0800C550.inc deleted file mode 100644 index 14f85748..00000000 --- a/data/scripts/script_0800C550.inc +++ /dev/null @@ -1,274 +0,0 @@ -SCRIPT_START script_0800C550 - BeginBlock - Call sub_08060090 - DoPostScriptAction 0x000a - EndBlock -script_0800C55E: - BeginBlock - CheckEntityInteractType - JumpIf script_0800C572 - Call sub_08060158 - EndBlock - Jump script_0800C55E -script_0800C572: - EndBlock - _0807E864 - Call sub_08060208 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800C55E -SCRIPT_START script_0800C584 - BeginBlock - Call sub_08060090 - DoPostScriptAction 0x000a - EndBlock -script_0800C592: - BeginBlock - CheckEntityInteractType - JumpIf script_0800C5A6 - Call sub_08060158 - EndBlock - Jump script_0800C592 -script_0800C5A6: - EndBlock - _0807E864 - CheckInventory1 0x0067 - JumpIfNot script_0800C5BC - Call sub_08060208 - Jump script_0800C5C0 -script_0800C5BC: - MessageNoOverlap 0x4710 -script_0800C5C0: - WaitUntilTextboxCloses - _0807E878 - Jump script_0800C592 -SCRIPT_START script_0800C5C8 - BeginBlock - Call sub_08060090 - DoPostScriptAction 0x000a - EndBlock -script_0800C5D6: - BeginBlock - CheckEntityInteractType - JumpIf script_0800C5EA - Call sub_08060158 - EndBlock - Jump script_0800C5D6 -script_0800C5EA: - EndBlock - _0807E864 - Call sub_08060270 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800C5D6 -SCRIPT_START script_0800C5FC - BeginBlock -script_0800C5FE: - Call sub_08060090 - DoPostScriptAction 0x000a - EndBlock -script_0800C60A: - BeginBlock - CheckEntityInteractType - JumpIf script_0800C61E - Call sub_08060158 - EndBlock - Jump script_0800C60A -script_0800C61E: - EndBlock - _0807E864 - Call sub_0806021C - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800C60A -SCRIPT_START script_0800C634 - BeginBlock - DoPostScriptAction 0x000a - SetEntitySpeed 0x0080 - _0807EB44 0x0004 - CheckLocalFlag 0x0082 - JumpIfNot script_0800C650 - OffsetEntityPosition 0x0010, 0x0000 -script_0800C650: - EndBlock -script_0800C652: - _0807E944 - _0807E864 - Call sub_0807DF28 - CheckLocalFlag 0x0082 - JumpIf script_0800C684 - CheckPlayerInRegion 0x00e8, 0x0028, 0x1810 - JumpIfNot script_0800C674 - DoPostScriptAction 0x000b -script_0800C674: - StartPlayerScript script_0800C8C8 - WaitForSomething2 0x00000001 - DoPostScriptAction 0x000a -script_0800C684: - CheckInventory1 0x0040 - JumpIf script_0800C730 - CheckInventory1 0x005b - JumpIf script_0800C6B6 - DoPostScriptAction 0x0002 - MessageFromTarget 0x1f16 - WaitUntilTextboxCloses - DoPostScriptAction 0x0015 - Wait 0x000a - SetLocalFlag 0x0080 - Call sub_0807DF50 - _0807E878 - Jump script_0800C652 -script_0800C6B6: - CheckLocalFlag 0x0081 - JumpIf script_0800C6DC - DoPostScriptAction 0x0002 - MessageFromTarget 0x1f1b - WaitUntilTextboxCloses - DoPostScriptAction 0x0015 - Wait 0x000a - Call sub_0807DF50 - _0807E878 - Jump script_0800C652 -script_0800C6DC: - CheckLocalFlag 0x0082 - JumpIf script_0800C712 - DoPostScriptAction 0x0002 - MessageFromTarget 0x1f17 - WaitUntilTextboxCloses - DoPostScriptAction 0x0015 - Wait 0x000a - _0807EB44 0x0002 - DoPostScriptAction 0x0001 - _0807EC94 0x0020 - _0807EB44 0x0004 - Wait 0x000f - PlaySound SFX_SECRET - SetLocalFlag 0x0082 -script_0800C712: - DoPostScriptAction 0x0002 - MessageFromTarget 0x1f18 - WaitUntilTextboxCloses - DoPostScriptAction 0x0015 - Wait 0x000a - Call sub_0807DF50 - _0807E878 - Jump script_0800C652 -script_0800C730: - CheckLocalFlag 0x0083 - JumpIf script_0800C756 - DoPostScriptAction 0x0002 - MessageFromTarget 0x1f19 - WaitUntilTextboxCloses - DoPostScriptAction 0x0015 - Wait 0x000a - Call sub_0807DF50 - _0807E878 - Jump script_0800C652 -script_0800C756: - DoPostScriptAction 0x0002 - MessageFromTarget 0x1f1a - WaitUntilTextboxCloses - DoPostScriptAction 0x0015 - Wait 0x000a - Call sub_0807DF50 - _0807E878 - Jump script_0800C652 -SCRIPT_START script_0800C774 - BeginBlock - DoPostScriptAction 0x000a - _0807EB44 0x0004 - EndBlock -script_0800C780: - _0807E944 - _0807E864 - Call sub_0807DF28 - StartPlayerScript script_0800C8F0 - WaitForSomething2 0x00000001 - CheckInventory1 0x0040 - JumpIf script_0800C824 - CheckInventory1 0x005b - JumpIf script_0800C7C0 - _0807E930 0x0008 - MessageFromTarget 0x2122 - WaitUntilTextboxCloses - DoPostScriptAction 0x0000 - Call sub_0807DF50 - _0807E878 - Jump script_0800C780 -script_0800C7C0: - _0807E930 0x0008 - CheckLocalFlag 0x0081 - JumpIf script_0800C80A - MessageFromTarget 0x1130 - WaitUntilTextboxCloses - _0807EB28 0x1131 - WaitUntilTextboxCloses - _0807EB8C - MessageFromTarget 0x1132 - WaitUntilTextboxCloses - SetIntVariable 0x00000103 - Call sub_0807F420 - MessageFromTarget 0x1133 - WaitUntilTextboxCloses - Wait 0x000a - DoPostScriptAction 0x0000 - SetLocalFlag 0x0081 - Call sub_0807DF50 - _0807E878 - Jump script_0800C780 -script_0800C80A: - MessageFromTarget 0x1133 - WaitUntilTextboxCloses - Wait 0x000a - _0807E930 0x0000 - Call sub_0807DF50 - _0807E878 - Jump script_0800C780 -script_0800C824: - _0807E930 0x0008 - CheckLocalFlag 0x0083 - JumpIf script_0800C8AE - MessageFromTarget 0x1135 - WaitUntilTextboxCloses - SetEntitySpeed 0x0040 - _0807EDD4 0x0038, 0x0044 - DoPostScriptAction 0x0000 - Wait 0x000f - SetLocalFlag 0x0083 - Wait 0x003c - PlaySound SFX_SECRET - Wait 0x003c - _0807EB74 - _0807EB8C - MessageFromTarget 0x1136 - WaitUntilTextboxCloses - _0807EB28 0x1137 - WaitUntilTextboxCloses - Wait 0x000a - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - Call sub_0807DF50 - _0807E878 -script_0800C87C: - _0807E944 - _0807E864 - Call sub_0807DF28 - _0807EB74 - SetIntVariable 0x00000008 - Call sub_0807F3D8 - MessageFromTarget 0x1136 - WaitUntilTextboxCloses - Wait 0x000a - DoPostScriptAction 0x0000 - Call sub_0807DF50 - _0807E878 - Jump script_0800C87C -script_0800C8AE: - MessageFromTarget 0x1136 - WaitUntilTextboxCloses - Wait 0x000a - DoPostScriptAction 0x0000 - Call sub_0807DF50 - _0807E878 - Jump script_0800C780 diff --git a/data/scripts/script_0800CD7C.inc b/data/scripts/script_0800CD7C.inc deleted file mode 100644 index 5a3bef29..00000000 --- a/data/scripts/script_0800CD7C.inc +++ /dev/null @@ -1,296 +0,0 @@ -SCRIPT_START script_0800CD7C - BeginBlock - CheckInventory1 0x005b - JumpIfNot script_0800C5FE - Call sub_08060090 - DoPostScriptAction 0x000a - EndBlock -script_0800CD92: - EndBlock - BeginBlock - CheckEntityInteractType - JumpIf script_0800CDA6 - Call sub_08060158 - Jump script_0800CD92 -script_0800CDA6: - EndBlock - _0807E864 - Call sub_0807DF28 - CheckLocalFlag 0x009d - JumpIf script_0800CDC4 - SetLocalFlag 0x009d - MessageNoOverlap 0x213d - Jump script_0800CF40 -script_0800CDC4: - CheckGlobalFlag 0x003b - JumpIf script_0800CE46 - CheckGlobalFlag 0x0054 - JumpIfNot script_0800CDEC - CheckRoomFlag 0x0000 - JumpIfNot script_0800CF2A - SetGlobalFlag 0x003b - ClearGlobalFlag 0x0054 - MessageNoOverlap 0x2141 - Jump script_0800CF40 -script_0800CDEC: - MessageNoOverlap 0x213e - WaitUntilTextboxCloses - _0807E48C 0x0023 - JumpIfNot script_0800CE14 - MessageNoOverlap 0x214b - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_0800CF40 - PlaySound SFX_TASK_COMPLETE - _0807F088 0x0023 - WaitPlayerGetItem - Jump script_0800CE32 -script_0800CE14: - _0807E48C 0x0022 - JumpIfNot script_0800CF40 - MessageNoOverlap 0x214b - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_0800CF40 - PlaySound SFX_TASK_COMPLETE - _0807F088 0x0022 - WaitPlayerGetItem -script_0800CE32: - _0807EB8C - SetGlobalFlag 0x0054 - Call sub_08060340 - MessageNoOverlap 0x213f - Jump script_0800CF02 -script_0800CE46: - CheckGlobalFlag 0x003c - JumpIf script_0800CEA6 - CheckGlobalFlag 0x0054 - JumpIfNot script_0800CE6E - CheckRoomFlag 0x0000 - JumpIfNot script_0800CF2A - SetGlobalFlag 0x003c - ClearGlobalFlag 0x0054 - MessageNoOverlap 0x2145 - Jump script_0800CF40 -script_0800CE6E: - MessageNoOverlap 0x2142 - WaitUntilTextboxCloses - _0807E48C 0x0027 - JumpIfNot script_0800CF40 - MessageNoOverlap 0x214c - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_0800CF40 - PlaySound SFX_TASK_COMPLETE - _0807F088 0x0027 - WaitPlayerGetItem - _0807EB8C - SetGlobalFlag 0x0054 - Call sub_08060340 - MessageNoOverlap 0x2143 - Jump script_0800CF02 -script_0800CEA6: - CheckGlobalFlag 0x003d - JumpIf script_0800CF3C - CheckGlobalFlag 0x0054 - JumpIfNot script_0800CECE - CheckRoomFlag 0x0000 - JumpIfNot script_0800CF2A - SetGlobalFlag 0x003d - ClearGlobalFlag 0x0054 - MessageNoOverlap 0x2149 - Jump script_0800CF40 -script_0800CECE: - MessageNoOverlap 0x2146 - WaitUntilTextboxCloses - _0807E48C 0x0024 - JumpIfNot script_0800CF40 - MessageNoOverlap 0x214d - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_0800CF40 - PlaySound SFX_TASK_COMPLETE - _0807F088 0x0024 - WaitPlayerGetItem - _0807EB8C - SetGlobalFlag 0x0054 - Call sub_08060340 - MessageNoOverlap 0x2147 -script_0800CF02: - WaitUntilTextboxCloses - Call sub_0807DF50 - _0807E878 -script_0800CF0C: - EndBlock - BeginBlock - CheckEntityInteractType - JumpIf script_0800CF20 - Call sub_08060158 - Jump script_0800CF0C -script_0800CF20: - EndBlock - _0807E864 - Call sub_0807DF28 -script_0800CF2A: - MessageNoOverlap 0x2140 - WaitUntilTextboxCloses - Call sub_0807DF50 - _0807E878 - Jump script_0800CF0C -script_0800CF3C: - MessageNoOverlap 0x214a -script_0800CF40: - WaitUntilTextboxCloses - Call sub_0807DF50 - _0807E878 - Jump script_0800CD92 - .2byte 0x0000 -SCRIPT_START script_0800CF50 - BeginBlock - Call sub_08068104 - DoPostScriptAction 0x000a - EndBlock -script_0800CF5E: - BeginBlock - CheckEntityInteractType - JumpIf script_0800CF72 - Call sub_0806811C - EndBlock - Jump script_0800CF5E -script_0800CF72: - EndBlock - _0807E864 - Call sub_08068190 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800CF5E -SCRIPT_START script_0800CF88 - BeginBlock - Call sub_08068104 - DoPostScriptAction 0x000a - EndBlock -script_0800CF96: - _0807E944 - _0807E864 - Call sub_08068190 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800CF96 -SCRIPT_START script_0800CFAC - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0000 - EndBlock - CheckInventory1 0x0041 - JumpIf script_0800CFD2 - CheckLocalFlag 0x007e - JumpIfNot script_0800CFD2 - _0807E930 0x0008 -script_0800CFD2: - CheckInventory1 0x0002 - JumpIf script_0800CFFA - CheckInventory1 0x0041 - JumpIfNot script_0800CFEC - _0807E5F8 0x00000020 - Jump script_0800CFFA -script_0800CFEC: - CheckLocalFlag 0x007e - JumpIfNot script_0800CFFA - _0807E5F8 0x00000010 -script_0800CFFA: - EndBlock - BeginBlock - Call sub_08068910 - CheckEntityInteractType - JumpIfNot script_0800CFFA - EndBlock - _0807E864 - Call sub_0807DF28 - CheckInventory1 0x0002 - JumpIfNot script_0800D032 - _0807EB74 - SetIntVariable 0x00000000 - Call sub_0806C028 - MessageNoOverlap 0x1219 - Jump script_0800D17C -script_0800D032: - CheckInventory1 0x0041 - JumpIfNot script_0800D098 - StartPlayerScript script_0800D190 - WaitForSomething2 0x00000008 - _0807EB74 - SetIntVariable 0x00000000 - Call sub_0806C028 - MessageFromTargetPos 0x125c, 0x0002 - WaitUntilTextboxCloses - StartPlayerScript script_0800D1B4 - WaitForSomething2 0x00000008 - _0807EB44 0x0002 - SetIntVariable 0x00000000 - Call sub_0806C028 - Wait 0x000f - _0807E5F8 0x00000020 - StartPlayerScript script_0800D1E0 - WaitForSomething2 0x00000008 - MessageFromTargetPos 0x125d, 0x0002 - Jump script_0800D17C -script_0800D098: - CheckLocalFlag 0x007e - JumpIfNot script_0800D0A8 - MessageFromTarget 0x123e - Jump script_0800D17C -script_0800D0A8: - StartPlayerScript script_0800D190 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000004 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000004 - _0807EB74 - SetIntVariable 0x00000000 - Call sub_0806C028 - MessageFromTargetPos 0x123d, 0x0002 - WaitUntilTextboxCloses - StartPlayerScript script_0800D1B4 - WaitForSomething2 0x00000008 - _0807EB44 0x0002 - SetIntVariable 0x00000000 - Call sub_0806C028 - PlaySound SFX_TASK_COMPLETE - Call sub_08068964 -script_0800D108: - ComparePlayerAction 0x0008 - JumpIf script_0800D108 - PlaySound SFX_F8 - _0807E5F8 0x00000010 - SetLocalFlag 0x007e - MessageFromTargetPos 0x123e, 0x0002 - WaitUntilTextboxCloses - Wait 0x000f - _0807E930 0x0009 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 - Wait 0x001e - MessageFromTargetPos 0x123f, 0x0002 - WaitUntilTextboxCloses - _0807E5F8 0x00000001 - WaitForSomething2 0x00000004 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000004 - _0807E930 0x0008 - Wait 0x003c - Call sub_08095164 - _0807EB28 0x1240 -script_0800D17C: - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Call sub_0807DF50 - Jump script_0800CFFA - .2byte 0x0000 diff --git a/data/scripts/script_0800D242.inc b/data/scripts/script_0800D242.inc deleted file mode 100644 index c441c743..00000000 --- a/data/scripts/script_0800D242.inc +++ /dev/null @@ -1,4 +0,0 @@ -SCRIPT_START script_0800D242 - DoPostScriptAction 0x0007 - _0807E930 0x0003 -SCRIPT_END diff --git a/data/scripts/script_0800D24C.inc b/data/scripts/script_0800D24C.inc deleted file mode 100644 index f56e72d8..00000000 --- a/data/scripts/script_0800D24C.inc +++ /dev/null @@ -1,4 +0,0 @@ -SCRIPT_START script_0800D24C - DoPostScriptAction 0x0006 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800D278.inc b/data/scripts/script_0800D278.inc deleted file mode 100644 index 7187c45d..00000000 --- a/data/scripts/script_0800D278.inc +++ /dev/null @@ -1,113 +0,0 @@ -SCRIPT_START script_0800D278 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a - EndBlock -script_0800D282: - CheckInventory1 0x0041 - JumpIf script_0800D292 - CheckLocalFlag 0x007e - JumpIf script_0800D2EA -script_0800D292: - BeginBlock - TestBit 0x00000001 - JumpIf script_0800D2C6 - CheckEntityInteractType - JumpIf script_0800D2B0 - Call sub_0806811C - EndBlock - Jump script_0800D282 -script_0800D2B0: - EndBlock - _0807E864 - Call sub_08068190 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800D282 -script_0800D2C6: - EndBlock - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 - _0807E5F8 0x00000004 - _0807E930 0x000c - WaitForSomething2 0x00000001 - _0807E5F8 0x00000004 -script_0800D2EA: - _0807E930 0x000b -script_0800D2EE: - CheckEntityInteractType - JumpIfNot script_0800D2EE - _0807E864 - Call sub_08068190 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800D2EE -SCRIPT_START script_0800D308 - BeginBlock - Call sub_08068884 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0000 - EndBlock -script_0800D31E: - EndBlock - BeginBlock - Call sub_08068910 - CheckEntityInteractType - JumpIfNot script_0800D31E - EndBlock - _0807E864 - _0807EB74 - SetIntVariable 0x00000000 - Call sub_0806C028 - MessageFromTarget 0x1219 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800D31E -SCRIPT_START script_0800D350 - BeginBlock - Call sub_08068104 - DoPostScriptAction 0x000a - EndBlock -script_0800D35E: - BeginBlock - CheckEntityInteractType - JumpIf script_0800D372 - Call sub_0806811C - EndBlock - Jump script_0800D35E -script_0800D372: - EndBlock - _0807E864 - Call sub_08068190 - WaitUntilTextboxCloses - Wait 0x000f - CheckLocalFlag 0x007f - JumpIf script_0800D3E4 - CheckLocalFlag 0x007e - JumpIfNot script_0800D3E4 - DoPostScriptAction 0x000b - SetEntitySpeed 0x0100 - CheckPlayerInRegion 0x0090, 0x0130, 0x0810 - JumpIfNot script_0800D3B2 - StartPlayerScript script_0800D3EC - WaitForSomething2 0x00000001 -script_0800D3B2: - _0807EB44 0x0002 - _0807E930 0x0005 - _0807EDD4 0x00a0, 0x0130 - _0807EB44 0x0006 - _0807E930 0x0003 - SetIntVariable 0x00000004 - Call sub_080681D8 - PlaySound SFX_TASK_COMPLETE - Wait 0x001e - DoPostScriptAction 0x000a - SetLocalFlag 0x007f -script_0800D3E4: - _0807E878 - Jump script_0800D35E - .2byte 0x0000 diff --git a/data/scripts/script_0800D76C.inc b/data/scripts/script_0800D76C.inc deleted file mode 100644 index 01e60a1f..00000000 --- a/data/scripts/script_0800D76C.inc +++ /dev/null @@ -1,51 +0,0 @@ -SCRIPT_START script_0800D76C - BeginBlock - Call sub_0807F360 - DoPostScriptAction 0x000b - SetEntitySpeed 0x0200 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - EndBlock - WaitForSomething2 0x00000008 - DoPostScriptAction 0x0004 - Wait 0x003c - PlaySound SFX_123 - CallWithArg sub_0807F464, 0x000001e0 - _0807EDD4 0x01e0, 0x01d8 - _0807EB44 0x0002 - DoPostScriptAction 0x0000 - _0807E5F8 0x00000010 - PlaySound SFX_PLY_JUMP - _0807EF3C 0x0180, 0x0030 - PlaySound SFX_PLY_JUMP - _0807EF3C 0x0180, 0x0030 - _0807EB44 0x0002 - DoPostScriptAction 0x0001 - WaitForSomething2 0x00000008 - Jump script_0800D80C -SCRIPT_START script_0800D7DC - BeginBlock - Call sub_0807F360 - DoPostScriptAction 0x000b - SetEntityPositionRelative 0x0268, 0x01d8 - SetEntitySpeed 0x0100 - EndBlock - WaitForSomething2 0x00000002 - _0807EDD4 0x01f0, 0x01d8 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 -script_0800D80C: - SetEntitySpeed 0x0100 - _0807EEF4 0x0000, 0xffe0 - DoPostScriptAction 0x000e - Call sub_0806CA5C - SetEntity0x20 0x00040000 - PlaySound SFX_F5 -script_0800D82A: - CallWithArg sub_0807F8D0, 0xffffe000 - Call sub_0807F8BC - JumpIf script_0800D82A - _0807E5F8 0x00000004 - DoPostScriptAction 0x0006 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800E0BC.inc b/data/scripts/script_0800E0BC.inc deleted file mode 100644 index 3b30dd5e..00000000 --- a/data/scripts/script_0800E0BC.inc +++ /dev/null @@ -1,355 +0,0 @@ -SCRIPT_START script_0800E0BC - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x000a - CheckLocalFlag 0x0093 - JumpIf script_0800E12E - _0807E930 0x0008 - CallWithArg sub_0807F8E8, 0x00000000 - EndBlock -script_0800E0DE: - CheckRoomFlag 0x0000 - JumpIfNot script_0800E0DE - _0807E864 - Wait 0x001e - DoPostScriptAction 0x0010 - PlaySound SFX_1C9 - _0807E930 0x0009 - Wait 0x003c - PlaySound SFX_1CA - DoPostScriptAction 0x0010 - Wait 0x001e - PlaySound SFX_SECRET - Wait 0x0078 - DoPostScriptAction 0x0004 - Wait 0x001e - DoPostScriptAction 0x0000 - _0807EB8C - _0807EB74 - Wait 0x000a - MessageNoOverlap 0x2402 - WaitUntilTextboxCloses - SetLocalFlag 0x0093 -script_0800E12E: - Call sub_080668F0 - _0807E878 - EndBlock -script_0800E138: - CheckEntityInteractType - JumpIfNot script_0800E138 - _0807E864 - _0807EB74 - MessageNoOverlap 0x2402 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800E138 - .2byte 0x0000 -SCRIPT_START script_0800E154 - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x000a - CheckLocalFlag 0x0094 - JumpIf script_0800E1D0 - _0807E930 0x0010 - CallWithArg sub_0807F8E8, 0x00000001 - EndBlock -script_0800E176: - CheckRoomFlag 0x0001 - JumpIfNot script_0800E176 - _0807E864 - Wait 0x001e - DoPostScriptAction 0x0010 - PlaySound SFX_1C9 - _0807E930 0x0015 - Wait 0x003c - PlaySound SFX_1CA - DoPostScriptAction 0x0010 - Wait 0x001e - PlaySound SFX_SECRET - Wait 0x0078 - DoPostScriptAction 0x0004 - Wait 0x001e - DoPostScriptAction 0x0000 - _0807EB8C - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - Wait 0x000a - MessageNoOverlap 0x2401 - WaitUntilTextboxCloses - SetLocalFlag 0x0094 -script_0800E1D0: - CallWithArg sub_0807F3D8, 0x00000000 - _0807E9D4 - _0807E878 - EndBlock -script_0800E1E0: - CheckEntityInteractType - JumpIfNot script_0800E1E0 - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - MessageNoOverlap 0x2401 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800E1E0 -SCRIPT_START script_0800E200 - BeginBlock - SetEntitySpeed 0x0100 - _0807EB44 0x0004 - DoPostScriptAction 0x000a - CheckLocalFlag 0x0073 - JumpIfNot script_0800E232 - _0807E9D4 - SetEntityPositionRelative 0x0070, 0x0168 - _0807EB44 0x0002 - CallWithArg sub_0807F3D8, 0x00000000 - EndBlock - Jump script_0800E32E -script_0800E232: - CheckLocalFlag 0x0095 - JumpIf script_0800E29A - _0807E930 0x0010 - CallWithArg sub_0807F8E8, 0x00000002 - EndBlock -script_0800E24A: - CheckRoomFlag 0x0002 - JumpIfNot script_0800E24A - _0807E864 - Wait 0x001e - DoPostScriptAction 0x0010 - PlaySound SFX_1C9 - _0807E930 0x0015 - Wait 0x003c - PlaySound SFX_1CA - DoPostScriptAction 0x0010 - Wait 0x001e - PlaySound SFX_SECRET - Wait 0x0078 - DoPostScriptAction 0x0004 - Wait 0x001e - DoPostScriptAction 0x0000 - _0807EB8C - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - SetLocalFlag 0x0095 -script_0800E29A: - DoPostScriptAction 0x0000 - CallWithArg sub_0807F3D8, 0x00000000 - _0807E9D4 - _0807E878 - EndBlock -script_0800E2AE: - EndBlock - BeginBlock - CheckEntityInteractType - JumpIf script_0800E312 - CheckLocalFlag 0x0093 - JumpIfNot script_0800E2AE - CheckLocalFlag 0x0094 - JumpIfNot script_0800E2AE - CheckLocalFlag 0x0095 - JumpIfNot script_0800E2AE - _0807E9DC - SetLocalFlag 0x0073 - EndBlock - _0807EB44 0x0000 - CallWithArg sub_0807F3D8, 0x00000004 - _0807EDD4 0x0088, 0x0168 - _0807EB44 0x0006 - CallWithArg sub_0807F3D8, 0x00000004 - _0807EDD4 0x0070, 0x0168 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - _0807E9D4 - Jump script_0800E32E -script_0800E312: - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - EndBlock - MessageNoOverlap 0x2404 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800E2AE -script_0800E32E: - CheckEntityInteractType - JumpIfNot script_0800E32E - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - MessageNoOverlap 0x2403 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800E32E - .2byte 0x0000 -SCRIPT_START script_0800E350 - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x000a - CheckLocalFlag 0x0071 - JumpIf script_0800E3E8 - CheckLocalFlag 0x0096 - JumpIf script_0800E3BE - _0807E930 0x000c - CallWithArg sub_0807F8E8, 0x00000000 - EndBlock -script_0800E37A: - CheckRoomFlag 0x0000 - JumpIfNot script_0800E37A - _0807E864 - Wait 0x001e - DoPostScriptAction 0x0010 - PlaySound SFX_1C9 - _0807E930 0x000d - Wait 0x003c - PlaySound SFX_1CA - DoPostScriptAction 0x0010 - Wait 0x001e - PlaySound SFX_SECRET - Wait 0x0078 - DoPostScriptAction 0x0004 - Wait 0x001e - DoPostScriptAction 0x0000 - _0807EB74 - SetLocalFlag 0x0096 -script_0800E3BE: - DoPostScriptAction 0x0000 - _0807E9D4 - _0807E878 - EndBlock -script_0800E3C8: - CheckEntityInteractType - JumpIfNot script_0800E3C8 - _0807E864 - _0807EB74 - MessageNoOverlap 0x240c - WaitUntilTextboxCloses - Wait 0x000f - _0807F034 0x0053 - WaitPlayerGetItem - SetLocalFlag 0x0071 - _0807E878 -script_0800E3E8: - _0807E9D4 - _0807E878 - EndBlock -script_0800E3EE: - CheckEntityInteractType - JumpIfNot script_0800E3EE - _0807E864 - _0807EB74 - MessageNoOverlap 0x240d - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800E3EE -SCRIPT_START script_0800E408 - BeginBlock - _0807EB44 0x0002 - DoPostScriptAction 0x000a - Call sub_080668F0 - EndBlock -script_0800E41A: - CheckEntityInteractType - JumpIfNot script_0800E41A - _0807E864 - _0807EB74 - MessageNoOverlap 0x2406 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800E41A -SCRIPT_START script_0800E434 - BeginBlock - _0807EB44 0x0002 - CallWithArg sub_0807F3D8, 0x00000000 - DoPostScriptAction 0x000a - _0807E9D4 - EndBlock -script_0800E44C: - CheckEntityInteractType - JumpIfNot script_0800E44C - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - MessageNoOverlap 0x2405 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800E44C -SCRIPT_START script_0800E46C - BeginBlock - _0807EB44 0x0004 - CallWithArg sub_0807F3D8, 0x00000000 - DoPostScriptAction 0x000a - _0807E9D4 - EndBlock -script_0800E484: - CheckEntityInteractType - JumpIfNot script_0800E484 - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - MessageNoOverlap 0x2407 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800E484 - - -SCRIPT_START script_0800E4A4 - BeginBlock - Call sub_0807F354 - EndBlock - CheckLocalFlag 0x007c - JumpIf script_0800E4FA -script_0800E4B6: -.ifdef JP - CheckPlayerInRegion 0x0088, 0x0100, 0x0820 -.else -.ifdef EU - CheckPlayerInRegion 0x0088, 0x0100, 0x0820 -.else - CheckPlayerInRegion 0x0088, 0x00f8, 0x0820 -.endif -.endif - JumpIfNot script_0800E4B6 - BeginBlock - _0807E864 -.ifdef JP -.ifndef DEMO_JP - Call SetPlayerEventPriority -.endif -.else -.ifdef EU - Call SetPlayerEventPriority -.endif -.endif - EndBlock - Call sub_0807F3F8 - Wait 0x003c - MessageFromTarget 0x160c - WaitUntilTextboxCloses - Wait 0x001e - MessageFromTarget 0x160d - WaitUntilTextboxCloses - Wait 0x001e - _0807EB28 0x160e - Wait 0x003c - WaitUntilTextboxCloses - BeginBlock - PlayBgm BGM_FIGHT_THEME2 - SetLocalFlag 0x007c -.ifdef JP -.ifndef DEMO_JP - Call ResetPlayerEventPriority -.endif -.else -.ifdef EU - Call ResetPlayerEventPriority -.endif -.endif -script_0800E4FA: - _0807E878 - DoPostScriptAction 0x0006 - EndBlock -SCRIPT_END diff --git a/data/scripts/script_0800E5C4.inc b/data/scripts/script_0800E5C4.inc deleted file mode 100644 index 49daf384..00000000 --- a/data/scripts/script_0800E5C4.inc +++ /dev/null @@ -1,7 +0,0 @@ -SCRIPT_START script_0800E5C4 - BeginBlock - CheckLocalFlag 0x0086 - JumpIfNot script_0800E5D6 - DoPostScriptAction 0x0006 - EndBlock -SCRIPT_END diff --git a/data/scripts/script_0800E6B0.inc b/data/scripts/script_0800E6B0.inc deleted file mode 100644 index 3ecd0d05..00000000 --- a/data/scripts/script_0800E6B0.inc +++ /dev/null @@ -1,161 +0,0 @@ -SCRIPT_START script_0800E6B0 - BeginBlock - Call sub_08060090 - DoPostScriptAction 0x000a - EndBlock -script_0800E6BE: - BeginBlock - CheckEntityInteractType - JumpIf script_0800E6D2 - Call sub_08060158 - EndBlock - Jump script_0800E6BE -script_0800E6D2: - EndBlock - _0807E864 - Call sub_0806025C - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800E6BE -SCRIPT_START script_0800E6E8 - BeginBlock - Call sub_0806ADFC - DoPostScriptAction 0x000a -script_0800E6F4: - EndBlock - BeginBlock - CheckEntityInteractType - JumpIf script_0800E708 - Call sub_0806AEE4 - Jump script_0800E6F4 -script_0800E708: - EndBlock - _0807E864 - Call sub_0806AFE8 - JumpIf script_0800E722 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800E6F4 -script_0800E722: - WaitUntilTextboxCloses - _0807F034 0x0057 - WaitPlayerGetItem - WaitUntilTextboxCloses - _0807E878 - Jump script_0800E6F4 - .2byte 0x0000 -SCRIPT_START script_0800E734 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a - EndBlock -script_0800E73E: - CheckEntityInteractType - JumpIfNot script_0800E73E - _0807E864 - _0807EB74 - CallWithArg sub_0806AF60, 0x00000000 - Call sub_0806AFE8 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800E73E -SCRIPT_START script_0800E760 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a - SetEntitySpeed 0x0200 - CheckGlobalFlag 0x0029 - JumpIfNot script_0800E77C - CheckGlobalFlag 0x002a - JumpIfNot script_0800E786 -script_0800E77C: - SetEntityPositionRelative 0x0188, 0x0098 - Jump script_0800E6F4 -script_0800E786: - EndBlock -script_0800E788: - BeginBlock - CheckGlobalFlag 0x002a - JumpIf script_0800E7BA - CheckEntityInteractType - JumpIf script_0800E7A4 - Call sub_0806AEE4 - EndBlock - Jump script_0800E788 -script_0800E7A4: - EndBlock - _0807E864 - Call sub_0806AFE8 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800E788 -script_0800E7BA: - DoPostScriptAction 0x000f - _0807EB44 0x0002 - CallWithArg sub_0806AF60, 0x00000004 - Call sub_0806AF70 - _0807EE04 0x0188, 0x0058 -script_0800E7D8: - EndBlock - BeginBlock - Call sub_0806AF78 - _0807EE30 - JumpIfNot script_0800E7D8 - EntityHasHeight - JumpIf script_0800E7D8 - EndBlock - Jump script_0800E6F4 -SCRIPT_START script_0800E7F4 - BeginBlock - Call sub_0806C674 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - EndBlock -script_0800E806: - CheckEntityInteractType - JumpIfNot script_0800E806 - _0807E864 - _0807EB74 - Call sub_0806C70C - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - Jump script_0800E806 - .2byte 0x0000 -SCRIPT_START script_0800E824 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a - _0807EB44 0x0000 - EndBlock -script_0800E832: - CheckEntityInteractType - JumpIfNot script_0800E832 - _0807E864 - _0807EB44 0x0004 - BeginBlock - MessageFromTarget 0x4501 - CallWithArg sub_0807F854, 0x00010032 - CallWithArg sub_0807F854, 0x000200c8 - CallWithArg sub_0807F854, 0x00030190 - EndBlock - WaitUntilTextboxCloses - _0807EB38 - JumpTable script_0800E910, script_0800E8D6, script_0800E8A4, script_0800E872 -script_0800E872: - BeginBlock - MessageFromTarget 0x4505 - CallWithArg sub_0807F854, 0x00010190 - EndBlock - WaitUntilTextboxCloses - HasRupees 0x0190 - JumpIfNot script_0800E908 - ModRupees 0xfe70 - SetLocalFlag 0x0091 - MessageFromTarget 0x4508 - WaitUntilTextboxCloses - Call sub_0806C578 -SCRIPT_END diff --git a/data/scripts/script_0800EA54.inc b/data/scripts/script_0800EA54.inc deleted file mode 100644 index be000e41..00000000 --- a/data/scripts/script_0800EA54.inc +++ /dev/null @@ -1,360 +0,0 @@ -SCRIPT_START script_0800EA54 - BeginBlock - Call sub_0806CE5C - DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0008 - EndBlock -script_0800EA6A: - CheckEntityInteractType - JumpIfNot script_0800EA6A - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000004 - Call sub_0807F2D4 - _0807E930 0x0009 - Call sub_0806CE80 - WaitUntilTextboxCloses - _0807E878 - _0807E930 0x000a - Call sub_0807F2D4 - _0807E930 0x0008 - Jump script_0800EA6A -SCRIPT_START script_0800EAA4 - BeginBlock - _0807E9D4 - Call sub_0806C09C - DoPostScriptAction 0x000a - _0807E930 0x0000 - _0807EB44 0x0004 - EndBlock -script_0800EABC: - CheckEntityInteractType - JumpIfNot script_0800EABC - BeginBlock - _0807E864 - _0807EB74 - CallWithArg sub_0806C028, 0x00000004 - EndBlock -script_0800EAD4: - Call sub_0806C00C - JumpIfNot script_0800EAD4 - _0807E930 0x0008 - Call sub_0806C038 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - _0807E930 0x0000 - Jump script_0800EABC -SCRIPT_START script_0800EAF8 - BeginBlock - Call sub_0806C870 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0000 - EndBlock -script_0800EB0E: - _0807E30C - JumpIfNot script_0800EB0E - _0807E864 - _0807EB74 - Call sub_0806C90C - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800EB0E - .2byte 0x0000 -SCRIPT_START script_0800EB2C - BeginBlock - Call sub_08061E70 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - Call sub_08061FD8 - EndBlock -script_0800EB44: - CheckEntityInteractType - JumpIfNot script_0800EB44 - _0807E864 - _0807EB74 - Call sub_08061FD8 - Call sub_08062048 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800EB44 - .2byte 0x0000 -SCRIPT_START script_0800EB64 - BeginBlock - Call sub_08061E70 - DoPostScriptAction 0x000a - _0807EB44 0x0006 - Call sub_08061FD8 - EndBlock -script_0800EB7C: - CheckEntityInteractType - JumpIfNot script_0800EB7C - _0807E864 - _0807EB74 - Call sub_08061FD8 - Call sub_08062048 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0006 - Call sub_08061FD8 - Jump script_0800EB7C - BeginBlock - Call sub_08061E70 - DoPostScriptAction 0x000a - _0807EB44 0x0002 - Call sub_08061FD8 - EndBlock - Jump script_0800EBF4 -SCRIPT_START script_0800EBC0 - BeginBlock - Call sub_08061E70 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - Call sub_08061FD8 - EndBlock - Jump script_0800EBF4 -SCRIPT_START script_0800EBDC - BeginBlock - Call sub_08061E70 - DoPostScriptAction 0x000a - _0807EB44 0x0006 - Call sub_08061FD8 - EndBlock -script_0800EBF4: - CheckEntityInteractType - JumpIfNot script_0800EBF4 - _0807E864 - _0807EB74 - Call sub_08061FD8 - Call sub_08062048 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800EBF4 - .2byte 0x0000 -SCRIPT_START script_0800EC14 - BeginBlock - Call sub_08061E70 - DoPostScriptAction 0x000a - _0807EB44 0x0002 - Call sub_08061FD8 - EndBlock -script_0800EC2C: - CheckEntityInteractType - JumpIfNot script_0800EC2C - _0807E864 - _0807EB74 - Call sub_08061FD8 - Call sub_08062048 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0002 - Call sub_08061FD8 - Jump script_0800EC2C -SCRIPT_START script_0800EC54 - BeginBlock - Call sub_08061E70 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - Call sub_08061FD8 - EndBlock -script_0800EC6C: - CheckEntityInteractType - JumpIfNot script_0800EC6C - _0807E864 - _0807EB74 - Call sub_08061FD8 - Call sub_08062048 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800EC6C - .2byte 0x0000 -SCRIPT_START script_0800EC8C - BeginBlock - _0807E9D4 - CallWithArg sub_08061FB8, 0x00000001 - SetEntitySpeed 0x0040 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0002 - EndBlock -script_0800ECAC: - _0807EB44 0x0006 - _0807E930 0x0007 - _0807EDD4 0x0028, 0x0050 - Wait 0x001e - _0807EB44 0x0004 - _0807E930 0x0002 - Wait 0x001e - _0807EB44 0x0002 - _0807E930 0x0001 - Wait 0x001e - _0807EB44 0x0002 - _0807E930 0x0005 - _0807EDD4 0x0048, 0x0050 - Wait 0x001e - _0807EB44 0x0004 - _0807E930 0x0002 - Wait 0x001e - _0807EB44 0x0006 - _0807E930 0x0003 - Wait 0x001e - Jump script_0800ECAC -SCRIPT_START script_0800ED04 - BeginBlock - Call sub_080639D0 - DoPostScriptAction 0x000a - EndBlock - BeginBlock - CallWithArg sub_08063850, 0x00000000 - EndBlock -script_0800ED20: - CheckEntityInteractType - JumpIfNot script_0800ED20 - _0807E864 - _0807EB74 - CallWithArg sub_08063850, 0x00000000 - Call sub_08063944 - WaitUntilTextboxCloses - JumpIfNot script_0800ED46 - _0807F050 0x0070 - WaitPlayerGetItem -script_0800ED46: - _0807E878 - Call sub_08063874 - CallWithArg sub_08063850, 0x00000000 - Jump script_0800ED20 -SCRIPT_START script_0800ED5C - BeginBlock - Call sub_08064CC0 - DoPostScriptAction 0x000a - DoPostScriptAction 0x0007 - _0807EB44 0x0002 - _0807E930 0x0000 - EndBlock -script_0800ED76: - _0807E944 - _0807E864 - _0807EB74 - Call sub_08064CD8 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800ED76 - .2byte 0x0000 -SCRIPT_START script_0800ED90 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a -script_0800ED98: - EndBlock - BeginBlock - CheckEntityInteractType - JumpIf script_0800EDB6 - TestBit 0x00000001 - JumpIf script_0800EE12 - Call sub_0806AEE4 - Jump script_0800ED98 -script_0800EDB6: - EndBlock - _0807E864 - Call sub_0807DF28 - CheckLocalFlag 0x00ae - JumpIf script_0800EE3E - Wait 0x000a - _0807E5F8 0x00000001 - MessageFromTarget 0x4c07 - WaitUntilTextboxCloses - _0807E5F8 0x00000010 - MessageFromTarget 0x4c08 - WaitUntilTextboxCloses - _0807E5F8 0x00000020 - MessageFromTarget 0x4c09 - WaitUntilTextboxCloses - SetIntVariable 0x00000503 - Call sub_0807F420 - _0807E5F8 0x00000040 - Call sub_0807DF50 - _0807E878 - SetLocalFlag 0x00ae - Jump script_0800ED98 -script_0800EE12: - EndBlock - WaitForSomething2 0x00000002 - _0807EB44 0x0002 - CallWithArg sub_0806AF60, 0x00000008 - WaitForSomething2 0x00000004 - Call sub_0806AED8 - WaitForSomething2 0x00000008 - Jump script_0800ED98 -script_0800EE3E: - MessageFromTarget 0x4c16 - WaitUntilTextboxCloses - Call sub_0807DF50 - _0807E878 - Jump script_0800ED98 -SCRIPT_START script_0800EE50 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a -script_0800EE58: - EndBlock - BeginBlock - CheckEntityInteractType - JumpIf script_0800EE76 - TestBit 0x00000001 - JumpIf script_0800EED2 - Call sub_0806AEE4 - Jump script_0800EE58 -script_0800EE76: - EndBlock - _0807E864 - Call sub_0807DF28 - CheckLocalFlag 0x00ae - JumpIf script_0800EEFE - Wait 0x000a - _0807E5F8 0x00000001 - MessageFromTarget 0x4c07 - WaitUntilTextboxCloses - _0807E5F8 0x00000002 - MessageFromTarget 0x4c08 - WaitUntilTextboxCloses - _0807E5F8 0x00000004 - MessageFromTarget 0x4c09 - WaitUntilTextboxCloses - SetIntVariable 0x00000503 - Call sub_0807F420 - _0807E5F8 0x00000008 - Call sub_0807DF50 - _0807E878 - SetLocalFlag 0x00ae - Jump script_0800EE58 -script_0800EED2: - EndBlock - WaitForSomething2 0x00000010 - _0807EB44 0x0006 - CallWithArg sub_0806AF60, 0x00000008 - WaitForSomething2 0x00000020 - Call sub_0806AED8 - WaitForSomething2 0x00000040 - Jump script_0800EE58 -script_0800EEFE: - MessageFromTarget 0x4c15 - WaitUntilTextboxCloses - Call sub_0807DF50 - _0807E878 - Jump script_0800EE58 - MessageFromTarget 0x4c07 - WaitUntilTextboxCloses - _0807E5F8 0x00000012 - Wait 0x000a - MessageFromTarget 0x4c08 - WaitUntilTextboxCloses - _0807E5F8 0x00000024 - MessageFromTarget 0x4c09 - WaitUntilTextboxCloses - _0807E5F8 0x00000048 - Call sub_080791BC -SCRIPT_END diff --git a/data/scripts/script_0800EFC0.inc b/data/scripts/script_0800EFC0.inc deleted file mode 100644 index 58456975..00000000 --- a/data/scripts/script_0800EFC0.inc +++ /dev/null @@ -1,92 +0,0 @@ -SCRIPT_START script_0800EFC0 - BeginBlock - SetEntitySpeed 0x0080 - _0807E9D4 - DoPostScriptAction 0x000a - CheckLocalFlag 0x007b - JumpIf script_0800F082 - EndBlock - Jump script_0800EFFE -script_0800EFDA: - _0807EB44 0x0006 - CallWithArg sub_0806AF60, 0x00000008 - Wait 0x0004 - _0807EB44 0x0004 - CallWithArg sub_0806AF60, 0x00000008 - Wait 0x0004 -script_0800EFFE: - _0807EB44 0x0002 - CallWithArg sub_0806AF60, 0x00000008 - Wait 0x0004 - _0807EB44 0x0002 - CallWithArg sub_0806AF60, 0x00000004 - _0807EDD4 0x0088, 0x0040 - DoPostScriptAction 0x000a - _0807EB44 0x0002 - CallWithArg sub_0806AF60, 0x00000008 - Wait 0x0004 - _0807EB44 0x0004 - CallWithArg sub_0806AF60, 0x00000008 - Wait 0x0004 - _0807EB44 0x0006 - CallWithArg sub_0806AF60, 0x00000008 - Wait 0x0004 - _0807EB44 0x0006 - CallWithArg sub_0806AF60, 0x00000004 - _0807EDD4 0x0068, 0x0040 - DoPostScriptAction 0x000a - CheckLocalFlag 0x007b - JumpIf script_0800F082 - Jump script_0800EFDA -script_0800F082: - EndBlock - Call sub_0806AEE4 - Jump script_0800F082 - .2byte 0x0000 -SCRIPT_START script_0800F090 - BeginBlock - _0807F0B4 0x0001 - CameraTargetPlayer - EndBlock -script_0800F09A: - CheckPlayerInRegion 0x01f8, 0x0338, 0x1030 - JumpIfNot script_0800F09A - _0807E864 - Call sub_0807F9A4 - Call sub_0807DF28 - LoadRoomEntityList gUnk_080EE8AC - StartPlayerScript script_0800F14C - WaitForSomething2 0x00000001 - _0807E5F8 0x0000001e - WaitForSomething2 0x00000040 - MessageFromTargetPos 0x1201, 0x000c - WaitUntilTextboxCloses - WaitForSomething2 0x000003c0 - _0807E8E4_0 - MessageFromTargetPos 0x1202, 0x000c - WaitUntilTextboxCloses - _0807F034 0x0067 - WaitPlayerGetItem - _0807E8E4_0 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000040 - MessageFromTargetPos 0x1203, 0x000c - WaitUntilTextboxCloses - _0807E5F8 0x00000002 - Call sub_0807DF50 - _0807E878 - WaitForSomething2 0x00000040 -script_0800F11A: - CheckKinstoneFused 0x0032 - JumpIfNot script_0800F11A - _0807E864 - Call sub_0807DF28 - _0807E5F8 0x0000001e - Wait 0x003c - _0807E8E4_1 - WaitForSomething2 0x000003c0 - Call sub_0807DF50 - _0807E878 - DoPostScriptAction 0x0006 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800F33C.inc b/data/scripts/script_0800F33C.inc deleted file mode 100644 index 11c63b10..00000000 --- a/data/scripts/script_0800F33C.inc +++ /dev/null @@ -1,7 +0,0 @@ -SCRIPT_START script_0800F33C - SetEntitySpeed 0x0100 - _0807EC94 0x0008 - _0807E5F8 0x00000400 - Call sub_080791BC -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800F354.inc b/data/scripts/script_0800F354.inc deleted file mode 100644 index 4a43ec65..00000000 --- a/data/scripts/script_0800F354.inc +++ /dev/null @@ -1,7 +0,0 @@ -SCRIPT_START script_0800F354 - SetEntitySpeed 0x0100 - _0807ECF4 0x0008 - _0807E5F8 0x00000400 - Call sub_080791BC -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800F36C.inc b/data/scripts/script_0800F36C.inc deleted file mode 100644 index 7fb077c6..00000000 --- a/data/scripts/script_0800F36C.inc +++ /dev/null @@ -1,7 +0,0 @@ -SCRIPT_START script_0800F36C - SetEntitySpeed 0x0100 - _0807ECC4 0x0008 - _0807E5F8 0x00000400 - Call sub_080791BC -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800F384.inc b/data/scripts/script_0800F384.inc deleted file mode 100644 index 488420ce..00000000 --- a/data/scripts/script_0800F384.inc +++ /dev/null @@ -1,7 +0,0 @@ -SCRIPT_START script_0800F384 - SetEntitySpeed 0x0100 - _0807EC64 0x0008 - _0807E5F8 0x00000400 - Call sub_080791BC -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800F554.inc b/data/scripts/script_0800F554.inc deleted file mode 100644 index 14b29ac3..00000000 --- a/data/scripts/script_0800F554.inc +++ /dev/null @@ -1,183 +0,0 @@ -SCRIPT_START script_0800F554 - BeginBlock - Call sub_08061FE4 - _0807E9D4 - DoPostScriptAction 0x000a - EndBlock -script_0800F564: - CheckEntityInteractType - JumpIfNot script_0800F564 - _0807E864 - _0807EB74 - Call sub_08061FE4 - Call sub_08061FF4 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800F564 - .2byte 0x0000 -SCRIPT_START script_0800F584 - BeginBlock - DoPostScriptAction 0x0001 - _0807E9D4 - DoPostScriptAction 0x000a - EndBlock -script_0800F592: - CheckEntityInteractType - JumpIfNot script_0800F592 - _0807E864 - _0807EB74 - Call sub_0806265C - WaitUntilTextboxCloses - _0807E878 - DoPostScriptAction 0x0001 - Jump script_0800F592 - .2byte 0x0000 -SCRIPT_START script_0800F5B0 - BeginBlock - _0807EB44 0x0006 - _0807E9D4 - DoPostScriptAction 0x000a - CallWithArg sub_0807F3D8, 0x00000008 - EndBlock -script_0800F5C8: - CheckEntityInteractType - JumpIfNot script_0800F5C8 - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000008 - Call sub_08064428 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800F5C8 - .2byte 0x0000 -SCRIPT_START script_0800F5EC - BeginBlock - _0807EB44 0x0004 - _0807E930 0x0000 - _0807E9D4 - DoPostScriptAction 0x000a - Call sub_0807F348 - EndBlock -script_0800F604: - CheckEntityInteractType - JumpIfNot script_0800F604 - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000008 - MessageNoOverlap 0x2511 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800F604 -SCRIPT_START script_0800F628 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a - DoPostScriptAction 0x0001 - EndBlock -script_0800F636: - _0807E30C - JumpIfNot script_0800F636 - _0807E864 - _0807EB74 - Call sub_0806C90C - WaitUntilTextboxCloses - _0807E878 - Jump script_0800F636 - .2byte 0x0000 -SCRIPT_START script_0800F650 - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - _0807E9D4 - EndBlock -script_0800F662: - CheckEntityInteractType - JumpIfNot script_0800F662 - _0807E864 - _0807EB74 - DoPostScriptAction 0x0001 - Call sub_0806B4F0 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - DoPostScriptAction 0x0000 - Jump script_0800F662 - .2byte 0x0000 - - -SCRIPT_START script_0800F688 - BeginBlock - _0807EB44 0x0004 - _0807E930 0x0000 - _0807E9D4 - DoPostScriptAction 0x000a - Call sub_0807F348 - EndBlock -script_0800F6A0: - CheckEntityInteractType - JumpIfNot script_0800F6A0 - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000004 -.ifdef JP - CheckLocalFlag 0x00ca -.else -.ifdef EU - CheckLocalFlag 0x00ca -.else -.ifdef DEMO_JP - CheckLocalFlag 0x00ca @ TODO deduplicate -.else - CheckLocalFlag 0x00cd -.endif -.endif -.endif - JumpIf script_0800F6C4 - MessageNoOverlap 0x2512 - Jump script_0800F6C8 -script_0800F6C4: - MessageNoOverlap 0x251f -script_0800F6C8: - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - CallWithArg sub_0807F3D8, 0x00000000 - Jump script_0800F6A0 - .2byte 0x0000 -SCRIPT_START script_0800F6E0 - BeginBlock - DoPostScriptAction 0x0001 - _0807E9D4 - DoPostScriptAction 0x000a - Call sub_08062788 - EndBlock -script_0800F6F4: -.ifdef JP - CheckLocalFlag 0x00ca -.else -.ifdef EU - CheckLocalFlag 0x00ca -.else -.ifdef DEMO_JP - CheckLocalFlag 0x00ca @ TODO deduplicate -.else - CheckLocalFlag 0x00cd -.endif -.endif -.endif - JumpIf script_0800F718 - CheckEntityInteractType - JumpIfNot script_0800F6F4 - _0807E864 - _0807EB74 - Call sub_0806265C - WaitUntilTextboxCloses - _0807E878 - DoPostScriptAction 0x0001 - Jump script_0800F6F4 -script_0800F718: - Call sub_080627E8 - DoPostScriptAction 0x0006 -SCRIPT_END diff --git a/data/scripts/script_0800FDA0.inc b/data/scripts/script_0800FDA0.inc deleted file mode 100644 index 3e0e6277..00000000 --- a/data/scripts/script_0800FDA0.inc +++ /dev/null @@ -1,119 +0,0 @@ -SCRIPT_START script_0800FDA0 - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - _0807E9D4 - EndBlock -script_0800FDB2: - CheckEntityInteractType - JumpIfNot script_0800FDB2 - _0807E864 - _0807EB74 - Call sub_08069888 - WaitUntilTextboxCloses - _0807E878 - Jump script_0800FDB2 - .2byte 0x0000 -SCRIPT_START script_0800FDCC - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - _0807E9D4 - SetEntitySpeed 0x0040 - EndBlock -script_0800FDE2: - Call sub_08069A60 -script_0800FDE8: - Call sub_0806991C -script_0800FDEE: - EndBlock - BeginBlock - Call sub_08069ACC - JumpIf script_0800FE06 - _0807EE30 - JumpIfNot script_0800FDEE - Jump script_0800FDE2 -script_0800FE06: - EndBlock - _0807EB44 0x0002 - DoPostScriptAction 0x0000 - Wait 0x001e - _0807EB44 0x0006 - DoPostScriptAction 0x0000 - Wait 0x001e - _0807EB44 0x0002 - DoPostScriptAction 0x0000 - Wait 0x001e - _0807EB44 0x0006 - DoPostScriptAction 0x0000 - Wait 0x003c - Call sub_08069A3C - Jump script_0800FDE8 - .2byte 0x0000 -SCRIPT_START script_0800FE44 - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - _0807E9D4 - SetEntitySpeed 0x0040 - EndBlock -script_0800FE5A: - Call sub_08069AA8 -script_0800FE60: - Call sub_080699AC -script_0800FE66: - EndBlock - BeginBlock - Call sub_08069ACC - JumpIf script_0800FE7E - _0807EE30 - JumpIfNot script_0800FE66 - Jump script_0800FE5A -script_0800FE7E: - EndBlock - _0807EB44 0x0002 - DoPostScriptAction 0x0000 - Wait 0x001e - _0807EB44 0x0006 - DoPostScriptAction 0x0000 - Wait 0x001e - _0807EB44 0x0002 - DoPostScriptAction 0x0000 - Wait 0x001e - _0807EB44 0x0006 - DoPostScriptAction 0x0000 - Wait 0x003c - Call sub_08069A84 - Jump script_0800FE60 - .2byte 0x0000 -SCRIPT_START script_0800FEBC - BeginBlock - CheckInventory1 0x0012 - JumpIf script_0800FF0E - _0807EB44 0x0006 - _0807E9D4 - CallWithArg sub_0807F3D8, 0x00000008 - EndBlock -script_0800FED8: - EndBlock - BeginBlock - DoPostScriptAction 0x000b - Call sub_080642B8 - CheckEntityInteractType - JumpIfNot script_0800FED8 - EndBlock - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000008 - Call sub_08064428 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0800FED8 -script_0800FF0E: - DoPostScriptAction 0x0008 - DoPostScriptAction 0x0006 -SCRIPT_END diff --git a/data/scripts/script_08010264.inc b/data/scripts/script_08010264.inc deleted file mode 100644 index d088e35d..00000000 --- a/data/scripts/script_08010264.inc +++ /dev/null @@ -1,562 +0,0 @@ -SCRIPT_START script_08010264 - BeginBlock - DoPostScriptAction 0x0007 - _0807E9D4 - DoPostScriptAction 0x000a - _0807EB44 0x0006 - DoPostScriptAction 0x0000 - EndBlock -script_0801027A: - CheckEntityInteractType - JumpIfNot script_0801027A - _0807E864 - _0807EB74 - Call sub_08065F64 - WaitUntilTextboxCloses - _0807E878 - Jump script_0801027A - .align 2 -SCRIPT_START script_08010294 - BeginBlock - DoPostScriptAction 0x0000 - Call sub_08062A48 - DoPostScriptAction 0x000a - EndBlock -script_080102A6: - CheckEntityInteractType - JumpIfNot script_080102A6 - CheckRoomFlag 0x0009 - JumpIfNot script_080102CC - _0807E864 - _0807EB74 - Call sub_0806265C - WaitUntilTextboxCloses - _0807E878 - Call sub_08062500 - Jump script_080102A6 -script_080102CC: - _0807E864 - _0807EB74 - Call sub_0806265C - WaitUntilTextboxCloses - _0807E878 - Jump script_080102A6 - .2byte 0x0000 -SCRIPT_START script_080102E0 - BeginBlock - DoPostScriptAction 0x0000 - Call sub_08062A48 - DoPostScriptAction 0x000a - EndBlock -script_080102F2: - CheckEntityInteractType - JumpIfNot script_080102F2 - _0807E864 - _0807EB74 - Call sub_0806265C - WaitUntilTextboxCloses - _0807E878 - Jump script_080102F2 - .2byte 0x0000 -SCRIPT_START script_0801030C - BeginBlock - DoPostScriptAction 0x0000 - EndBlock -script_08010314: - EndBlock - Call sub_08062698 - Call sub_080626AC - CallWithArg sub_0807F0EC, 0x00000009 - JumpTable script_08010340, script_0801034A, script_08010354, script_0801035E, script_08010368, script_08010372, script_0801037C, script_08010386, script_08010390 -script_08010340: - _0807EE04 0x0358, 0x0078 - Jump script_08010396 -script_0801034A: - _0807EE04 0x0390, 0x0078 - Jump script_08010396 -script_08010354: - _0807EE04 0x03c8, 0x0078 - Jump script_08010396 -script_0801035E: - _0807EE04 0x0358, 0x0098 - Jump script_08010396 -script_08010368: - _0807EE04 0x0390, 0x0098 - Jump script_08010396 -script_08010372: - _0807EE04 0x03c8, 0x0098 - Jump script_08010396 -script_0801037C: - _0807EE04 0x0358, 0x00b8 - Jump script_08010396 -script_08010386: - _0807EE04 0x0390, 0x00b8 - Jump script_08010396 -script_08010390: - _0807EE04 0x03c8, 0x00b8 -script_08010396: - EndBlock - BeginBlock - Call sub_080626C0 - JumpIf script_08010314 - _0807EE30 - JumpIfNot script_08010396 - Jump script_08010314 - .2byte 0x0000 -SCRIPT_START script_080103B0 - BeginBlock - DoPostScriptAction 0x0000 - Call sub_08062A48 - DoPostScriptAction 0x000a - EndBlock -script_080103C2: - Wait 0x001e - Call sub_08062948 - Jump script_080103C2 -SCRIPT_START script_080103D0 - BeginBlock - _0807E9D4 - _0807EB44 0x0004 - DoPostScriptAction 0x000a - CallWithArg sub_0807F3D8, 0x00000004 - EndBlock -script_080103E8: - Wait 0x003c - Call sub_0806407C - Jump script_080103E8 - .2byte 0x0000 -SCRIPT_START script_080103F8 - BeginBlock - _0807E9D4 - _0807EB44 0x0004 - DoPostScriptAction 0x000a - CallWithArg sub_0807F3D8, 0x00000000 - EndBlock -script_08010410: - CheckEntityInteractType - JumpIfNot script_08010410 - _0807E864 - _0807EB74 - Call sub_08064428 - WaitUntilTextboxCloses - _0807E878 - Jump script_08010410 -SCRIPT_START script_08010428 - BeginBlock - _0807E9D4 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - SetIntVariable sub_08064688 - Call sub_08064644 - EndBlock -script_08010446: - Wait 0x003c - Call sub_080646A4 - Jump script_08010446 -SCRIPT_START script_08010454 - BeginBlock - _0807EB44 0x0004 - _0807E930 0x0000 - Call sub_080636F4 - DoPostScriptAction 0x000a - Call sub_0807F348 - EndBlock -script_08010470: - CheckEntityInteractType - JumpIfNot script_08010470 - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000004 - Call sub_080636D8 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - CallWithArg sub_0807F3D8, 0x00000000 - Jump script_08010470 -SCRIPT_START script_080104A0 - BeginBlock - _0807EB44 0x0004 - _0807E930 0x0000 - Call sub_08063CAC - DoPostScriptAction 0x000a - Call sub_0807F348 - EndBlock -script_080104BC: - CheckEntityInteractType - JumpIfNot script_080104BC - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000004 - Call sub_08063C90 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - CallWithArg sub_0807F3D8, 0x00000000 - Jump script_080104BC -SCRIPT_START script_080104EC - BeginBlock - _0807EB44 0x0004 - _0807E930 0x0000 - DoPostScriptAction 0x000a - Call sub_0807F348 - EndBlock -script_08010502: - CheckEntityInteractType - JumpIfNot script_08010502 - _0807E864 - Call sub_0807DF28 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000008 - CheckRoomFlag 0x000e - JumpIf script_0801052E - SetRoomFlag 0x000e - MessageNoOverlap 0x2b10 - WaitUntilTextboxCloses -script_0801052E: - Call sub_080634E4 - JumpTable script_08010544, script_08010558, script_08010570, script_08010570, script_0801054C, script_08010564, script_08010570 -script_08010544: - MessageNoOverlap 0x2b0d - Jump script_080105E0 -script_0801054C: - CheckGlobalFlag 0x003d - JumpIfNot script_080105DC - Jump script_08010570 -script_08010558: - CheckGlobalFlag 0x003c - JumpIfNot script_080105DC - Jump script_08010570 -script_08010564: - CheckGlobalFlag 0x003b - JumpIfNot script_080105DC - Jump script_08010570 -script_08010570: - Call sub_080634EC - CallWithArg sub_0807F78C, 0x00000000 - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_080105E0 - CallWithArg sub_0807F7C4, 0x00000000 - JumpIfNot script_080105C4 - _0807E48C 0x0020 - JumpIfNot script_080105CC - Call sub_08063504 - JumpIf script_080105D4 - MessageNoOverlap 0x2b07 - WaitUntilTextboxCloses - CallWithArg sub_0807F800, 0x00000000 - WaitPlayerGetItem - WaitUntilTextboxCloses - MessageNoOverlap 0x2b0c - Jump script_080105E0 -script_080105C4: - MessageNoOverlap 0x2b09 - Jump script_080105E0 -script_080105CC: - MessageNoOverlap 0x2b0a - Jump script_080105E0 -script_080105D4: - MessageNoOverlap 0x2b0b - Jump script_080105E0 -script_080105DC: - MessageNoOverlap 0x2b0e -script_080105E0: - WaitUntilTextboxCloses - Call sub_0807DF50 - _0807E878 - Jump script_08010502 - .2byte 0x0000 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - EndBlock -script_08010602: - CheckEntityInteractType - JumpIfNot script_08010602 - _0807E864 - _0807EB74 - MessageFromTarget 0x0a01 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - Jump script_08010602 -SCRIPT_START script_0801061C - BeginBlock - _0807E930 0x0008 -script_08010622: - Call sub_08062A48 - DoPostScriptAction 0x000a - EndBlock -script_0801062E: - CheckEntityInteractType - JumpIfNot script_0801062E - _0807E864 - Call sub_0806265C - WaitUntilTextboxCloses - _0807E878 - Jump script_0801062E -SCRIPT_START script_08010644 - BeginBlock - _0807E930 0x0009 - Jump script_08010622 - .2byte 0x0000 -SCRIPT_START script_08010650 - BeginBlock - _0807E930 0x000b - Jump script_08010622 - .2byte 0x0000 - BeginBlock - _0807E930 0x000c - Jump script_08010622 - .2byte 0x0000 - BeginBlock - _0807E930 0x000d - Jump script_08010622 - .2byte 0x0000 -SCRIPT_START script_08010674 - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - EndBlock -script_08010686: - CheckEntityInteractType - JumpIfNot script_08010686 - _0807E864 - _0807EB74 - HasRoomItemForSale - Call sub_0807F77C - MessageFromTargetTable 0x3c08, 0x3c09 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - Jump script_08010686 - .2byte 0x0000 -SCRIPT_START script_080106AC - BeginBlock - _0807E9D4 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - EndBlock -script_080106BE: - CheckEntityInteractType - JumpIfNot script_080106BE - _0807E864 - _0807EB74 - Call sub_0807F2D4 - DoPostScriptAction 0x0000 - HasRoomItemForSale - JumpIf script_080106E0 - MessageNoOverlap 0x3c07 - Jump script_08010726 -script_080106E0: - Call sub_08062EB8 - CallWithArg sub_0807F78C, 0x00000000 - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_08010726 - WaitUntilTextboxCloses - BuyItem 0x0000, 0x0000 - JumpIf script_0801070C - MessageNoOverlap 0x3c04 - Jump script_08010726 -script_0801070C: - WaitPlayerGetItem - ModHealth 0x0008 - Call sub_08062EDC - JumpIf script_08010724 - MessageNoOverlap 0x3c06 - Jump script_08010726 -script_08010724: - WaitPlayerGetItem -script_08010726: - WaitUntilTextboxCloses - _0807E878 - DoPostScriptAction 0x0001 - Jump script_080106BE - .2byte 0x0000 -SCRIPT_START script_08010734 - BeginBlock - DoPostScriptAction 0x0007 - _0807E9D4 - DoPostScriptAction 0x000a - _0807E930 0x0000 - EndBlock -script_08010746: - CheckEntityInteractType - JumpIfNot script_08010746 - _0807E864 - _0807E930 0x0004 - BeginBlock - Call sub_08062D18 - JumpIfNot script_08010786 - EndBlock - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_08010786 - HasRupees 0x00c8 - JumpIf script_08010778 - MessageNoOverlap 0x4008 - Jump script_08010786 -script_08010778: - ModRupees 0xff38 - Call sub_08062E14 - MessageNoOverlap 0x4007 -script_08010786: - EndBlock - WaitUntilTextboxCloses - _0807E878 - _0807E930 0x0008 - Jump script_08010746 -SCRIPT_START script_08010794 - BeginBlock - DoPostScriptAction 0x0007 - _0807E9D4 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - EndBlock -script_080107AA: - CheckEntityInteractType - JumpIfNot script_080107AA - _0807E864 - Call sub_0807F2D4 - DoPostScriptAction 0x0001 - Call sub_08062CBC - WaitUntilTextboxCloses - _0807E878 - DoPostScriptAction 0x0000 - Jump script_080107AA - .2byte 0x0000 -SCRIPT_START script_080107D0 - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - DoPostScriptAction 0x0007 - _0807E9D4 - Call sub_0807F348 - Call sub_08069684 - EndBlock -script_080107F2: - EndBlock - BeginBlock - CheckPlayerInRegion2 0x3030 - JumpIfNot script_080107F2 - Call sub_080696B0 -script_08010804: - EndBlock - BeginBlock - CheckPlayerInRegion2 0x3030 - JumpIfNot script_080107F2 - HasRoomItemForSale - JumpIf script_08010860 - CheckEntityInteractType - JumpIfNot script_08010804 - EndBlock - _0807E864 - Call sub_0807DF28 - _0807EB74 - CheckGlobalFlag 0x0042 - JumpIfNot script_08010858 - CheckGlobalFlag 0x0043 - JumpIfNot script_08010858 - CheckGlobalFlag 0x0044 - JumpIfNot script_08010858 - CheckGlobalFlag 0x0041 - JumpIfNot script_08010850 - MessageNoOverlap 0x3f39 - Jump script_080108BA -script_08010850: - MessageNoOverlap 0x2c1b - Jump script_080108BA -script_08010858: - MessageNoOverlap 0x2c1a - Jump script_080108BA -script_08010860: - EndBlock - _0807E864 - Call sub_0807DF38 - _0807EB74 - Call sub_08069660 - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_080108B2 - Call GoronMerchant_TryToBuyKinstone - JumpIfNot script_080108B2 - WaitPlayerGetItem - WaitUntilTextboxCloses - _0807EB8C - CheckGlobalFlag 0x0042 - JumpIfNot script_080108AA - CheckGlobalFlag 0x0043 - JumpIfNot script_080108AA - CheckGlobalFlag 0x0044 - JumpIfNot script_080108AA - MessageNoOverlap 0x2c21 - Jump script_080108B2 -script_080108AA: -.ifdef USA - SetLocalFlag 0x00fa -.else -.ifdef DEMO_USA - SetLocalFlag 0x00fa -.endif -.endif - MessageNoOverlap 0x2c20 -script_080108B2: - WaitUntilTextboxCloses - Call sub_0807F83C -script_080108BA: - WaitUntilTextboxCloses - Call sub_0807DF50 - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - Jump script_08010804 -SCRIPT_START script_080108D0 - CheckPlayerInRegion2 0x0808 - JumpIfNot script_080108D0 - _0807E864 - Call sub_0807F9A4 - Call sub_0807DF28 - StartPlayerScript script_080109F0 - WaitForSomething2 0x00000001 - CheckRoomFlag 0x0001 - JumpIf script_08010900 - _0807EB28 0x0b63 - WaitUntilTextboxCloses -script_08010900: - Call sub_0807DF50 - _0807E878 - Jump script_080108D0 -SCRIPT_START script_0801090C - BeginBlock - DoPostScriptAction 0x0007 - CheckKinstoneFused 0x001b - JumpIf script_0800EF92 - EndBlock -script_0801091C: - Call sub_080869A4 - JumpIfNot script_0801091C - _0807E864 - Call sub_0807F9A4 - Call sub_0807DF28 - CheckRoomFlag 0x0001 - JumpIf script_08010942 - _0807EB28 0x0b62 - WaitUntilTextboxCloses -script_08010942: - StartPlayerScript script_080109F0 - WaitForSomething2 0x00000001 - Call sub_0807DF50 - _0807E878 - Jump script_0801091C - Call sub_0808692C -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_08011930.inc b/data/scripts/script_08011930.inc deleted file mode 100644 index 2dcc1588..00000000 --- a/data/scripts/script_08011930.inc +++ /dev/null @@ -1,5 +0,0 @@ -SCRIPT_START script_08011930 - WaitForSomething 0x20000000 - Call sub_0809567C -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_08011940.inc b/data/scripts/script_08011940.inc deleted file mode 100644 index 0fdf418f..00000000 --- a/data/scripts/script_08011940.inc +++ /dev/null @@ -1,4 +0,0 @@ -SCRIPT_START script_08011940 - WaitForSomething 0x40000000 - DoPostScriptAction 0x0006 -SCRIPT_END diff --git a/data/scripts/script_0801194C.inc b/data/scripts/script_0801194C.inc deleted file mode 100644 index 18b0d47a..00000000 --- a/data/scripts/script_0801194C.inc +++ /dev/null @@ -1,158 +0,0 @@ -SCRIPT_START script_0801194C - BeginBlock - _0807EB44 0x0002 - Jump script_0801196A - .2byte 0x0000 -SCRIPT_START script_08011958 - BeginBlock - _0807EB44 0x0006 - Jump script_0801196A - .2byte 0x0000 -SCRIPT_START script_08011964 - BeginBlock - _0807EB44 0x0004 -script_0801196A: - _0807E9D4 - DoPostScriptAction 0x000a - CallWithArg sub_0807F3D8, 0x00000000 - EndBlock -script_0801197C: - CheckEntityInteractType - JumpIfNot script_0801197C - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - CheckGlobalFlag 0x0015 - JumpIf script_080119A0 - MessageFromTarget 0x103d - Jump script_080119A4 -script_080119A0: - MessageFromTarget 0x103f -script_080119A4: - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0801197C -SCRIPT_START script_080119B0 - BeginBlock - _0807E9D4 - _0807EB44 0x0004 - DoPostScriptAction 0x000a - CallWithArg sub_0807F3D8, 0x0000000c - EndBlock -script_080119C8: - Wait 0x003c - Call sub_0806407C - Jump script_080119C8 - .2byte 0x0000 -SCRIPT_START script_080119D8 - BeginBlock - _0807EB44 0x0002 - Jump script_080119F6 - .2byte 0x0000 -SCRIPT_START script_080119E4 - BeginBlock - _0807EB44 0x0004 - Jump script_080119F6 - .2byte 0x0000 -SCRIPT_START script_080119F0 - BeginBlock - _0807EB44 0x0006 -script_080119F6: - _0807E9D4 - DoPostScriptAction 0x000a - CallWithArg sub_0807F3D8, 0x00000000 - EndBlock -script_08011A08: - CheckEntityInteractType - JumpIfNot script_08011A08 - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - Call sub_08064428 - WaitUntilTextboxCloses - _0807E878 - Jump script_08011A08 - .2byte 0x0000 -SCRIPT_START script_08011A2C - BeginBlock - _0807EB44 0x0004 - _0807E9D4 - DoPostScriptAction 0x000a - CallWithArg sub_0807F3D8, 0x00000000 - EndBlock -script_08011A44: - CheckEntityInteractType - JumpIfNot script_08011A44 - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - MessageFromTarget 0x1320 - WaitUntilTextboxCloses - _0807E878 - Jump script_08011A44 -SCRIPT_START script_08011A64 - BeginBlock - _0807EB44 0x0002 - _0807E9D4 - DoPostScriptAction 0x000a - CallWithArg sub_0807F3D8, 0x00000000 - EndBlock -script_08011A7C: - CheckEntityInteractType - JumpIfNot script_08011A7C - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - CallWithArg sub_080644B4, 0x00000006 - JumpIf script_08011AFA - MessageFromTarget 0x1320 - WaitUntilTextboxCloses - _0807E878 - Jump script_08011A7C - .2byte 0x0000 - BeginBlock - _0807EB44 0x0004 - _0807E9D4 - DoPostScriptAction 0x000a - CallWithArg sub_0807F3D8, 0x00000000 - EndBlock -script_08011AC4: - CheckEntityInteractType - JumpIfNot script_08011AC4 - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - MessageFromTarget 0x1322 - WaitUntilTextboxCloses - _0807E878 - Jump script_08011AC4 - -SCRIPT_START script_08011AE4 - CheckRoomFlag 0x000f - JumpIfNot script_08011AE4 - _0807E864 - Call sub_0807F9A4 - Call sub_0807DF28 -script_08011AFA: - MessageFromTargetPos 0x1321, 0x0007 - WaitUntilTextboxCloses -.ifdef JP - SetLocalFlag 0x0011 -.else -.ifdef EU - SetLocalFlag 0x0011 -.else -.ifdef DEMO_JP - SetLocalFlag 0x0011 @ TODO deduplicate -.else - SetLocalFlag 0x0010 -.endif -.endif -.endif - CallWithArg sub_0806DA1C, 0x00000003 - _0807E878 - Call sub_0807DF50 - DoPostScriptAction 0x0006 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_08011C7C.inc b/data/scripts/script_08011C7C.inc deleted file mode 100644 index bc4f9a5e..00000000 --- a/data/scripts/script_08011C7C.inc +++ /dev/null @@ -1,622 +0,0 @@ -SCRIPT_START script_08011C7C - BeginBlock - Call sub_08064828 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - DoPostScriptAction 0x000a - CheckGlobalFlag 0x0047 - JumpIf script_08011CC2 - EndBlock -script_08011C9A: - EndBlock - BeginBlock - CheckEntityInteractType - JumpIfNot script_08011C9A - EndBlock - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - MessageNoOverlap 0x4515 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011C9A -script_08011CC2: - EndBlock - BeginBlock - CheckGlobalFlag 0x002c - JumpIf script_08011C9A - CheckGlobalFlag 0x002d - JumpIf script_08011C9A - CheckEntityInteractType - JumpIfNot script_08011CC2 - EndBlock - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - MessageNoOverlap 0x3105 - WaitUntilTextboxCloses - _0807E3E8 - JumpIf script_08011D0E - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011CC2 -script_08011D00: - CheckEntityInteractType - JumpIfNot script_08011D00 - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 -script_08011D0E: - MessageNoOverlap 0x3108 - WaitUntilTextboxCloses - SetGlobalFlag 0x002b - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011D00 - .2byte 0x0000 -SCRIPT_START script_08011D28 - BeginBlock - Call sub_08064928 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - DoPostScriptAction 0x000a - CheckGlobalFlag 0x0047 - JumpIf script_08011D6E - EndBlock -script_08011D46: - EndBlock - BeginBlock - CheckEntityInteractType - JumpIfNot script_08011D46 - EndBlock - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - MessageNoOverlap 0x4513 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011D46 -script_08011D6E: - EndBlock - BeginBlock - CheckGlobalFlag 0x002b - JumpIf script_08011D46 - CheckGlobalFlag 0x002d - JumpIf script_08011D46 - CheckEntityInteractType - JumpIfNot script_08011D6E - EndBlock - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - MessageNoOverlap 0x3103 - WaitUntilTextboxCloses - _0807E3E8 - JumpIf script_08011DBA - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011D6E -script_08011DAC: - CheckEntityInteractType - JumpIfNot script_08011DAC - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 -script_08011DBA: - MessageNoOverlap 0x3106 - WaitUntilTextboxCloses - SetGlobalFlag 0x002c - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011DAC - .2byte 0x0000 -SCRIPT_START script_08011DD4 - BeginBlock - Call sub_08064A28 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - DoPostScriptAction 0x000a - CheckGlobalFlag 0x0047 - JumpIf script_08011E1A - EndBlock -script_08011DF2: - EndBlock - BeginBlock - CheckEntityInteractType - JumpIfNot script_08011DF2 - EndBlock - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - MessageNoOverlap 0x4514 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011DF2 -script_08011E1A: - EndBlock - BeginBlock - CheckGlobalFlag 0x002b - JumpIf script_08011DF2 - CheckGlobalFlag 0x002c - JumpIf script_08011DF2 - CheckEntityInteractType - JumpIfNot script_08011E1A - EndBlock - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - MessageNoOverlap 0x3104 - WaitUntilTextboxCloses - _0807E3E8 - JumpIf script_08011E66 - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011E1A -script_08011E58: - CheckEntityInteractType - JumpIfNot script_08011E58 - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 -script_08011E66: - MessageNoOverlap 0x3107 - WaitUntilTextboxCloses - SetGlobalFlag 0x002d - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011E58 - .2byte 0x0000 -SCRIPT_START script_08011E80 - BeginBlock - Call sub_08064828 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - DoPostScriptAction 0x000a - EndBlock -script_08011E96: - EndBlock - BeginBlock - CheckGlobalFlag 0x002f - JumpIf script_08011C9A - CheckGlobalFlag 0x0030 - JumpIf script_08011C9A - CheckEntityInteractType - JumpIfNot script_08011E96 - EndBlock - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - CheckGlobalFlag 0x0048 - JumpIf script_08011ECC - MessageNoOverlap 0x4524 - WaitUntilTextboxCloses - Jump script_08011ED8 -script_08011ECC: - MessageNoOverlap 0x3111 - WaitUntilTextboxCloses - _0807E3E8 - JumpIf script_08011EF4 -script_08011ED8: - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011E96 -script_08011EE6: - CheckEntityInteractType - JumpIfNot script_08011EE6 - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 -script_08011EF4: - MessageNoOverlap 0x3114 - WaitUntilTextboxCloses - SetGlobalFlag 0x002e - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011EE6 -SCRIPT_START script_08011F0C - BeginBlock - Call sub_08064928 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - DoPostScriptAction 0x000a - EndBlock -script_08011F22: - EndBlock - BeginBlock - CheckGlobalFlag 0x002e - JumpIf script_08011D46 - CheckGlobalFlag 0x0030 - JumpIf script_08011D46 - CheckEntityInteractType - JumpIfNot script_08011F22 - EndBlock - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - CheckGlobalFlag 0x0048 - JumpIf script_08011F58 - MessageNoOverlap 0x4522 - WaitUntilTextboxCloses - Jump script_08011F64 -script_08011F58: - MessageNoOverlap 0x310f - WaitUntilTextboxCloses - _0807E3E8 - JumpIf script_08011F80 -script_08011F64: - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011F22 -script_08011F72: - CheckEntityInteractType - JumpIfNot script_08011F72 - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 -script_08011F80: - MessageNoOverlap 0x3112 - WaitUntilTextboxCloses - SetGlobalFlag 0x002f - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011F72 -SCRIPT_START script_08011F98 - BeginBlock - Call sub_08064A28 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - DoPostScriptAction 0x000a - EndBlock -script_08011FAE: - EndBlock - BeginBlock - CheckGlobalFlag 0x002e - JumpIf script_08011DF2 - CheckGlobalFlag 0x002f - JumpIf script_08011DF2 - CheckEntityInteractType - JumpIfNot script_08011FAE - EndBlock - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - CheckGlobalFlag 0x0048 - JumpIf script_08011FE4 - MessageNoOverlap 0x4523 - WaitUntilTextboxCloses - Jump script_08011FF0 -script_08011FE4: - MessageNoOverlap 0x3110 - WaitUntilTextboxCloses - _0807E3E8 - JumpIf script_0801200C -script_08011FF0: - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011FAE -script_08011FFE: - CheckEntityInteractType - JumpIfNot script_08011FFE - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 -script_0801200C: - MessageNoOverlap 0x3113 - WaitUntilTextboxCloses - SetGlobalFlag 0x0030 - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08011FFE - - -SCRIPT_START script_08012024 - BeginBlock - Call sub_08064828 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - DoPostScriptAction 0x000a - EndBlock -script_0801203A: - CheckEntityInteractType - JumpIfNot script_0801203A - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - CheckLocalFlag 0x0094 - JumpIf script_0801205E - MessageNoOverlap 0x3122 - WaitUntilTextboxCloses - SetLocalFlag 0x0094 - Jump script_0801209E -script_0801205E: - _0807E48C 0x0031 - JumpIfNot script_08012070 - MessageNoOverlap 0x3123 - WaitUntilTextboxCloses - Jump script_0801209E -script_08012070: - MessageNoOverlap 0x3124 - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_0801209E - _0807E48C 0x0020 - JumpIfNot script_0801209A - MessageNoOverlap 0x3125 - WaitUntilTextboxCloses - _0807F034 0x0031 - WaitPlayerGetItem -.ifdef USA - Call sub_0807FC24 -.else -.ifdef DEMO_USA - Call sub_0807FC24 -.else -.ifdef DEMO_JP - Call sub_0807FC24 -.endif -.endif -.endif - Jump script_0801209E -script_0801209A: - MessageNoOverlap 0x3127 -script_0801209E: - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_0801203A - .align 2, 0 - -SCRIPT_START script_080120B0 - BeginBlock - Call sub_08064928 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - DoPostScriptAction 0x000a - EndBlock -script_080120C6: - CheckEntityInteractType - JumpIfNot script_080120C6 - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - CheckLocalFlag 0x0095 - JumpIf script_080120EA - MessageNoOverlap 0x3116 - WaitUntilTextboxCloses - SetLocalFlag 0x0095 - Jump script_0801212A -script_080120EA: - _0807E48C 0x002f - JumpIfNot script_080120FC - MessageNoOverlap 0x3117 - WaitUntilTextboxCloses - Jump script_0801212A -script_080120FC: - MessageNoOverlap 0x3118 - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_0801212A - _0807E48C 0x0020 - JumpIfNot script_08012126 - MessageNoOverlap 0x3119 - WaitUntilTextboxCloses - _0807F034 0x002f - WaitPlayerGetItem -.ifdef USA - Call sub_0807FC24 -.else -.ifdef DEMO_USA - Call sub_0807FC24 -.else -.ifdef DEMO_JP - Call sub_0807FC24 -.endif -.endif -.endif - Jump script_0801212A -script_08012126: - MessageNoOverlap 0x311b -script_0801212A: - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_080120C6 - .align 2, 0 - -SCRIPT_START script_0801213C - BeginBlock - Call sub_08064A28 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - DoPostScriptAction 0x000a - EndBlock -script_08012152: - CheckEntityInteractType - JumpIfNot script_08012152 - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - CheckLocalFlag 0x0096 - JumpIf script_08012176 - MessageNoOverlap 0x311c - WaitUntilTextboxCloses - SetLocalFlag 0x0096 - Jump script_080121B6 -script_08012176: - _0807E48C 0x0030 - JumpIfNot script_08012188 - MessageNoOverlap 0x311d - WaitUntilTextboxCloses - Jump script_080121B6 -script_08012188: - MessageNoOverlap 0x311e - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_080121B6 - _0807E48C 0x0020 - JumpIfNot script_080121B2 - MessageNoOverlap 0x311f - WaitUntilTextboxCloses - _0807F034 0x0030 - WaitPlayerGetItem -.ifdef USA - Call sub_0807FC24 -.else -.ifdef DEMO_USA - Call sub_0807FC24 -.else -.ifdef DEMO_JP - Call sub_0807FC24 -.endif -.endif -.endif - Jump script_080121B6 -script_080121B2: - MessageNoOverlap 0x3121 -script_080121B6: - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08012152 - .align 2, 0 - -SCRIPT_START script_080121C8 - BeginBlock - Call sub_08064828 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - DoPostScriptAction 0x000a - EndBlock -script_080121DE: - CheckEntityInteractType - JumpIfNot script_080121DE - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - MessageNoOverlap 0x4527 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_080121DE -SCRIPT_START script_08012200 - BeginBlock - Call sub_08064928 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - DoPostScriptAction 0x000a - EndBlock -script_08012216: - CheckEntityInteractType - JumpIfNot script_08012216 - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - MessageNoOverlap 0x4525 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_08012216 -SCRIPT_START script_08012238 - BeginBlock - Call sub_08064A28 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - DoPostScriptAction 0x000a - EndBlock -script_0801224E: - CheckEntityInteractType - JumpIfNot script_0801224E - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - MessageNoOverlap 0x4526 - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0001 - Jump script_0801224E -SCRIPT_START script_08012270 - BeginBlock - _0807EB44 0x0004 - Call sub_08061FD8 - _0807E9D4 - DoPostScriptAction 0x000a - EndBlock -script_08012284: - EndBlock - BeginBlock - CheckGlobalFlag 0x001e - JumpIfNot script_08012298 - CheckInventory1 0x0015 - JumpIf script_080122BA -script_08012298: - CheckEntityInteractType - JumpIfNot script_08012284 - EndBlock - _0807EB74 - _0807E864 - Call sub_08061FD8 - MessageFromTarget 0x2302 - WaitUntilTextboxCloses - _0807E878 - SetGlobalFlag 0x001e - Jump script_08012284 -script_080122BA: - EndBlock - BeginBlock - CheckRoomFlag 0x0000 - JumpIfNot script_080122CE - CheckRoomFlag 0x0001 - JumpIf script_080122EC -script_080122CE: - CheckEntityInteractType - JumpIfNot script_080122BA - EndBlock - _0807EB74 - _0807E864 - Call sub_08061FD8 - MessageFromTarget 0x2303 - WaitUntilTextboxCloses - _0807E878 - Jump script_080122BA -script_080122EC: - EndBlock - _0807EB74 - _0807E864 - Call sub_08061FD8 - DoPostScriptAction 0x000b - Call sub_08061FB0 - Call sub_08061F94 - LoadRoomEntityList gUnk_additional_a_HouseInteriors2_Percy - DoPostScriptAction 0x0008 - Wait 0x003c - PlaySound SFX_SECRET - SetLocalFlag 0x0043 - Wait 0x001e - _0807E878 - DoPostScriptAction 0x0006 -SCRIPT_END - .align 2, 0 diff --git a/data/scripts/script_08012B18.inc b/data/scripts/script_08012B18.inc deleted file mode 100644 index c317235e..00000000 --- a/data/scripts/script_08012B18.inc +++ /dev/null @@ -1,4 +0,0 @@ -SCRIPT_START script_08012B18 - DoPostScriptAction 0x0015 - Call sub_080791BC -SCRIPT_END diff --git a/data/scripts/script_08012E88.inc b/data/scripts/script_08012E88.inc deleted file mode 100644 index 3f8ae14f..00000000 --- a/data/scripts/script_08012E88.inc +++ /dev/null @@ -1,38 +0,0 @@ -SCRIPT_START script_08012E88 - BeginBlock - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - Call sub_0806B60C - EndBlock -script_08012E9E: - CheckEntityInteractType - JumpIfNot script_08012E9E - _0807E864 - _0807EB74 - DoPostScriptAction 0x0001 - Call sub_0806B4F0 - WaitUntilTextboxCloses - _0807E878 - DoPostScriptAction 0x0000 - Jump script_08012E9E - .2byte 0x0000 -SCRIPT_START script_08012EC0 - BeginBlock - _0807EB44 0x0004 - CallWithArg sub_0807F3D8, 0x00000008 - DoPostScriptAction 0x000a - Call sub_0806B60C - EndBlock -script_08012EDC: - CheckEntityInteractType - JumpIfNot script_08012EDC - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x0000000c - Call sub_0806B4F0 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - CallWithArg sub_0807F3D8, 0x00000008 - Jump script_08012EDC diff --git a/data/scripts/script_0801450C.inc b/data/scripts/script_0801450C.inc deleted file mode 100644 index ef9e3619..00000000 --- a/data/scripts/script_0801450C.inc +++ /dev/null @@ -1,36 +0,0 @@ -SCRIPT_START script_0801450C - BeginBlock - _0807E9D4 - _0807EB44 0x0000 - SetEntitySpeed 0x01c0 - DoPostScriptAction 0x000a - EndBlock - _0807E864 - Call sub_0807DF28 - Call sub_0806E20C - WaitUntilTextboxCloses - Call sub_0806E23C - ClearLocalFlag 0x0093 - ClearLocalFlag 0x0092 - Call sub_0807DF50 - Jump script_080144FC - .2byte 0x0000 -SCRIPT_START script_08014548 - BeginBlock - EndBlock -script_0801454C: - CheckPlayerInRegion 0x0078, 0x0088, 0x0810 - JumpIfNot script_0801454C - CheckRoomFlag 0x0000 - JumpIfNot script_0801454C - _0807E864 - _0807EB28 0x4217 - WaitUntilTextboxCloses - StartPlayerScript script_08014588 - Wait 0x0010 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 - _0807E878 - Jump script_0801454C -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_08014958.inc b/data/scripts/script_08014958.inc deleted file mode 100644 index d4ae69ff..00000000 --- a/data/scripts/script_08014958.inc +++ /dev/null @@ -1,40 +0,0 @@ -SCRIPT_START script_08014958 - BeginBlock - Call sub_0806C870 - DoPostScriptAction 0x000a - CheckGlobalFlag 0x0058 - JumpIf script_08014976 - _0807EB44 0x0004 - SetEntityPositionRelative 0x0078, 0x0128 -script_08014976: - EndBlock -script_08014978: - _0807E30C - JumpIfNot script_08014978 - _0807E864 - _0807EB74 - Call sub_0806C90C - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_08014978 -SCRIPT_START script_08014994 - BeginBlock - Call sub_0806C870 - DoPostScriptAction 0x000a - CheckGlobalFlag 0x0058 - JumpIfNot script_080149C6 - EndBlock -script_080149AA: - _0807E30C - JumpIfNot script_080149AA - _0807E864 - _0807EB74 - Call sub_0806C90C - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_080149AA -script_080149C6: - DoPostScriptAction 0x0006 -SCRIPT_END diff --git a/data/scripts/script_080149CC.inc b/data/scripts/script_080149CC.inc deleted file mode 100644 index e37b94a7..00000000 --- a/data/scripts/script_080149CC.inc +++ /dev/null @@ -1,61 +0,0 @@ -SCRIPT_START script_080149CC - BeginBlock - SetEntitySpeed 0x0080 - Call sub_0806C870 - DoPostScriptAction 0x000a - EndBlock -script_080149DE: - _0807E30C - JumpIfNot script_080149DE - _0807E864 - _0807EB74 - Call sub_0806C90C - WaitUntilTextboxCloses - CheckLocalFlag 0x0064 - JumpIfNot script_08014A20 - CheckLocalFlag 0x00b1 - JumpIf script_08014A20 - SetLocalFlag 0x00b1 - DoPostScriptAction 0x000b - DoPostScriptAction 0x0001 - _0807EDD4 0x0068, 0x00f8 - PlaySound SFX_SECRET - _0807EB74 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a -script_08014A20: - _0807E878 - Jump script_080149DE - .2byte 0x0000 -SCRIPT_START script_08014A28 - BeginBlock - Call sub_0806C870 - DoPostScriptAction 0x000a - EndBlock -script_08014A36: - _0807E30C - JumpIfNot script_08014A36 - _0807E864 - _0807EB74 - Call sub_0806C90C - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_08014A36 - .2byte 0x0000 -SCRIPT_START script_08014A54 - BeginBlock - Call sub_0806C870 - DoPostScriptAction 0x000a - EndBlock -script_08014A62: - _0807E30C - JumpIfNot script_08014A62 - _0807E864 - _0807EB74 - Call sub_0806C90C - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_08014A62 - .2byte 0x0000 diff --git a/data/scripts/script_08014A80.inc b/data/scripts/script_08014A80.inc deleted file mode 100644 index 058d4364..00000000 --- a/data/scripts/script_08014A80.inc +++ /dev/null @@ -1,48 +0,0 @@ -SCRIPT_START script_08014A80 - BeginBlock - DoPostScriptAction 0x000a - EndBlock - WaitForSomething2 0x00000001 - _0807EB74 - DoPostScriptAction 0x0004 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 - MessageNoOverlap 0x2f0a - WaitUntilTextboxCloses - _0807E5F8 0x00000002 -script_08014AAC: - _0807E30C - JumpIfNot script_08014AAC - _0807E864 - _0807EB74 - MessageNoOverlap 0x2f0a - WaitUntilTextboxCloses - _0807E878 - Jump script_08014AAC - .2byte 0x0000 -SCRIPT_START script_08014AC4 - BeginBlock - Call sub_0806C870 - DoPostScriptAction 0x000a - EndBlock -script_08014AD2: - _0807E30C - JumpIfNot script_08014AD2 - _0807E864 - _0807EB74 - StartPlayerScript script_08014B10 - WaitForSomething2 0x00000001 - _0807EB74 - CheckLocalFlag 0x0064 - JumpIf script_08014AFE - SetLocalFlag 0x0064 - MessageNoOverlap 0x2f0b - Jump script_08014B02 -script_08014AFE: - MessageNoOverlap 0x2f0c -script_08014B02: - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_08014AD2 - .2byte 0x0000 diff --git a/data/scripts/script_08014E14.inc b/data/scripts/script_08014E14.inc deleted file mode 100644 index 86972a81..00000000 --- a/data/scripts/script_08014E14.inc +++ /dev/null @@ -1,292 +0,0 @@ -SCRIPT_START script_08014E14 - BeginBlock - _0807EB44 0x0004 - _0807E9D4 - DoPostScriptAction 0x000a - CallWithArg sub_0807F3D8, 0x00000000 - EndBlock -script_08014E2C: - CheckEntityInteractType - JumpIfNot script_08014E2C - _0807E864 - _0807EB74 - CallWithArg sub_0807F3D8, 0x00000000 - Call sub_08064428 - WaitUntilTextboxCloses - _0807E878 - Jump script_08014E2C - .2byte 0x0000 -SCRIPT_START script_08014E50 - BeginBlock - DoPostScriptAction 0x000a - DoPostScriptAction 0x0007 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - EndBlock -script_08014E64: - CheckEntityInteractType - JumpIfNot script_08014E64 - _0807E864 - Call sub_0807DF28 - _0807EB74 - CallWithArg sub_0807F78C, 0x00000022 - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_08014EBC - CallWithArg sub_0807F7C4, 0x00000022 - JumpIfNot script_08014EB0 - _0807E48C 0x0020 - JumpIfNot script_08014EB8 - CallWithArg sub_0807F800, 0x00000022 - WaitPlayerGetItem - MessageNoOverlap 0x0a04 - Jump script_08014EBC -script_08014EB0: - MessageNoOverlap 0x0a03 - Jump script_08014EBC -script_08014EB8: - MessageNoOverlap 0x0a02 -script_08014EBC: - WaitUntilTextboxCloses - Call sub_0807DF50 - _0807E878 - Jump script_08014E64 - .2byte 0x0000 -SCRIPT_START script_08014ECC - BeginBlock - DoPostScriptAction 0x000a - DoPostScriptAction 0x0007 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - EndBlock -script_08014EE0: - CheckEntityInteractType - JumpIfNot script_08014EE0 - _0807E864 - _0807EB74 - MessageNoOverlap 0x200d - WaitUntilTextboxCloses - _0807E878 - Jump script_08014EE0 - .2byte 0x0000 -SCRIPT_START script_08014EF8 - BeginBlock - DoPostScriptAction 0x000a - DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x000a - EndBlock -script_08014F0C: - CheckEntityInteractType - JumpIfNot script_08014F0C - _0807E864 - _0807EB74 - DoPostScriptAction 0x0000 - MessageNoOverlap 0x200e - WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - _0807E930 0x000a - Jump script_08014F0C - .2byte 0x0000 -SCRIPT_START script_08014F30 - BeginBlock - DoPostScriptAction 0x000a - DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x000e - EndBlock - Call sub_08065914 -script_08014F4A: - CheckEntityInteractType - JumpIfNot script_08014F4A - _0807E864 - Call sub_0807DF28 - _0807EB74 - DoPostScriptAction 0x0000 - BeginBlock - MessageNoOverlap 0x3b0b - CallWithArg sub_0807F854, 0x00010064 - EndBlock - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_08014FA6 - HasRupees 0x0064 - JumpIfNot script_08014F9A - _0807E48C 0x0020 - JumpIfNot script_08014FA2 - ModRupees 0xff9c - _0807F034 0x0022 - WaitPlayerGetItem - MessageNoOverlap 0x3b11 - Jump script_08014FA6 -script_08014F9A: - MessageNoOverlap 0x3b0e - Jump script_08014FA6 -script_08014FA2: - MessageNoOverlap 0x3b0f -script_08014FA6: - WaitUntilTextboxCloses - Call sub_0807DF50 - _0807E878 - _0807EB44 0x0004 - _0807E930 0x000e - Jump script_08014F4A -SCRIPT_START script_08014FBC - BeginBlock - SetEntityPositionRelative 0x01f8, 0x00e0 - Call sub_08054564 - EndBlock -script_08014FCC: - CheckPlayerInRegion 0x01f8, 0x00a0, 0x2040 - JumpIfNot script_08014FCC - _0807E864 - Call sub_0807F9A4 - Call sub_0807DF28 - StopBgm - _0807F0B4 0x0001 - CameraTargetEntity - StartPlayerScript script_080152B4 - WaitForSomething2 0x00000001 - MessageFromTargetPos 0x1301, 0x0002 - WaitUntilTextboxCloses - Call sub_0807F3F8 - Wait 0x003c - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 - PlayBgm BGM_VAATI_THEME - _0807EB28 0x1302 - WaitUntilTextboxCloses - MessageFromTargetPos 0x1303, 0x0002 - WaitUntilTextboxCloses - _0807EB28 0x1304 - WaitUntilTextboxCloses - MessageFromTargetPos 0x1305, 0x0002 - WaitUntilTextboxCloses - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 - _0807EB28 0x1306 - WaitUntilTextboxCloses - StopBgm - StartPlayerScript script_080152DC - CameraTargetEntity - _0807F0B4 0x0003 - SetEntityPositionRelative 0x01f8, 0x0148 - WaitForSomething2 0x00000001 - Call sub_0804F6A8 - Wait 0x0004 - Call sub_0804F808 - PlaySound SFX_10B - StartPlayerScript script_08015304 - Call sub_0804F6C8 - Wait 0x0004 - Call sub_0804F830 - PlaySound SFX_10B - Call sub_0804F6E8 - Wait 0x0004 - Call sub_0804F854 - PlaySound SFX_10B - Call sub_0804F724 - Wait 0x0004 - Call sub_0804F89C - PlaySound SFX_10B - Call sub_0804F760 - Wait 0x0004 - Call sub_0804F8E0 - PlaySound SFX_10B - Wait 0x003c - WaitForSomething2 0x00000001 - PlaySound SFX_1B0 - Call sub_0804F79C - Wait 0x000a - LoadRoomEntityList gUnk_080F7FC0 - PlayBgm BGM_FIGHT_THEME - Call sub_0807DF50 - _0807E878 -script_08015104: - CheckRoomFlag 0x0000 - JumpIfNot script_08015104 - _0807E864 - Call sub_0807F9A4 - Call sub_0807DF28 - StopBgm - StartPlayerScript script_08015338 - WaitForSomething2 0x00000001 - Wait 0x003c - Call sub_0804F6A8 - Wait 0x0004 - Call sub_0804F928 - PlaySound SFX_10B - Call sub_0804F6C8 - Wait 0x0004 - Call sub_0804F944 - PlaySound SFX_10B - Call sub_0804F6E8 - Wait 0x0004 - Call sub_0804F960 - PlaySound SFX_10B - Call sub_0804F724 - Wait 0x0004 - Call sub_0804F994 - PlaySound SFX_10B - Call sub_0804F760 - Wait 0x0004 - Call sub_0804F9C8 - PlaySound SFX_10B - Wait 0x003c - PlaySound SFX_SECRET - _0807F0B4 0x0004 - CameraTargetPlayer -.ifdef JP - SetLocalFlag 0x008a -.else -.ifdef EU - SetLocalFlag 0x008a -.else -.ifdef DEMO_JP - SetLocalFlag 0x008a @ TODO deduplicate -.else - SetLocalFlag 0x008c -.endif -.endif -.endif - _0807EB28 0x130c - WaitUntilTextboxCloses - CameraTargetPlayer - _0807E778 0x0004 - _0807E80C 0x00000000 - WaitFor_2 - Call sub_08053B3C - BeginBlock - _0807E864 - CallWithArg sub_0807F6E8, 0x00000008 - MoveEntityToPlayer - _0807F0B4 0x0004 - CameraTargetEntity - _0807E778 0x0100 - DoFade4 - _0807E80C 0x00000000 - EndBlock - StartPlayerScript script_08015360 - WaitForSomething2 0x00000001 - LoadRoomEntityList gUnk_080F7CB0 - _0807E778 0x0004 - _0807E800 0x00000000 - WaitFor_2 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000010 - BeginBlock - _0807E8E4_2 - _0807EB28 0x1315 - EndBlock - WaitUntilTextboxCloses - _0807F0B4 0x0004 - CameraTargetPlayer - Call sub_08054570 - PlayBGM - Call sub_0807DF50 - _0807E878 - DoPostScriptAction 0x0006 -SCRIPT_END diff --git a/data/scripts/script_08015384.inc b/data/scripts/script_08015384.inc deleted file mode 100644 index a46df80e..00000000 --- a/data/scripts/script_08015384.inc +++ /dev/null @@ -1,4 +0,0 @@ -SCRIPT_START script_08015384 - DoPostScriptAction 0x0015 - Call sub_080791BC -SCRIPT_END diff --git a/data/scripts/script_08016062.inc b/data/scripts/script_08016062.inc deleted file mode 100644 index fb0d6300..00000000 --- a/data/scripts/script_08016062.inc +++ /dev/null @@ -1,4 +0,0 @@ -SCRIPT_START script_08016062 - OffsetEntityPosition 0xfff0, 0x0000 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0801609E.inc b/data/scripts/script_0801609E.inc deleted file mode 100644 index e11bf37f..00000000 --- a/data/scripts/script_0801609E.inc +++ /dev/null @@ -1,4 +0,0 @@ -SCRIPT_START script_0801609E - OffsetEntityPosition 0x0010, 0x0000 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_080160A8.inc b/data/scripts/script_080160A8.inc deleted file mode 100644 index eba0a74e..00000000 --- a/data/scripts/script_080160A8.inc +++ /dev/null @@ -1,224 +0,0 @@ -SCRIPT_START script_080160A8 - BeginBlock - _0807E9D4 - _0807E930 0x0008 -script_080160B0: - EndBlock - BeginBlock - CheckEntityInteractType - JumpIf script_080160E0 - TestBit 0x00000008 - JumpIf script_080160D2 - TestBit 0x00000010 - JumpIf script_080160D2 - Jump script_080160B0 -script_080160D2: - EndBlock - _0807EB74 - WaitForSomething2 0x00000004 - Jump script_080160B0 -script_080160E0: - _0807E864 - _0807EB74 - EndBlock - HasRoomItemForSale - JumpIfNot script_0801611A - MessageFromTarget 0x2d07 - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_08016132 - BuyItem 0x0000, 0x0000 - JumpIf script_0801610C - MessageFromTarget 0x2d0b - WaitUntilTextboxCloses - Jump script_08016132 -script_0801610C: - WaitPlayerGetItem -.ifndef EU - _0807EB8C - MessageFromTarget 0x2d0d -.else - MessageFromTarget 0x2d08 -.endif - WaitUntilTextboxCloses - Jump script_08016132 -script_0801611A: - CheckKinstoneFused 0x0014 - JumpIfNot script_0801612C - MessageFromTarget 0x2d09 - WaitUntilTextboxCloses - Jump script_08016132 -script_0801612C: - MessageFromTarget 0x2d01 - WaitUntilTextboxCloses -script_08016132: - _0807E878 - _0807EB44 0x0004 - Jump script_080160B0 - .align 2, 0 - -SCRIPT_START script_0801613C - BeginBlock - Call sub_080787B4 - EndBlock -script_08016146: - CheckEntityInteractType - JumpIfNot script_08016146 - _0807E864 - GetInventoryValue 0x0025 - MessageFromTargetTable 0x2d03, 0x2d02, 0x2d02, 0x2d02 - _0807E3E8 - JumpIfNot script_0801618A - _0807E48C 0x0020 - JumpIf script_08016172 - MessageFromTarget 0x2d0c - Jump script_0801618A -script_08016172: - BuyItem 0x0025, 0x0000 - JumpIf script_08016184 - MessageFromTarget 0x2d0b - Jump script_0801618A -script_08016184: - WaitPlayerGetItem - MessageFromTarget 0x2d06 -script_0801618A: - _0807E878 - Jump script_08016146 - .align 2, 0 - -SCRIPT_START script_08016190 - BeginBlock - Call sub_080787B4 - EndBlock -script_0801619A: - CheckEntityInteractType - JumpIfNot script_0801619A - _0807E864 - GetInventoryValue 0x0024 - MessageFromTargetTable 0x2d05, 0x2d04, 0x2d04, 0x2d04 - _0807E3E8 - JumpIfNot script_080161E2 - _0807E48C 0x0020 - JumpIf script_080161C6 - MessageFromTarget 0x2d0c - Jump script_080161E2 -script_080161C6: - BuyItem 0x0024, 0x0000 - JumpIf script_080161D8 - MessageFromTarget 0x2d0b - Jump script_080161E2 -script_080161D8: -.ifndef EU - WaitPlayerGetItem - WaitUntilTextboxCloses - _0807EB8C - MessageNoOverlap 0x2d06 -.else - MessageFromTarget 0x2d06 -.endif -script_080161E2: - _0807E878 - Jump script_0801619A - .align 2, 0 - -SCRIPT_START script_080161E8 - BeginBlock - Call sub_0807F348 - DoPostScriptAction 0x000a - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - EndBlock -script_080161FE: - Call sub_08068C28 -script_08016204: - CheckEntityInteractType - JumpIfNot script_08016204 - _0807E864 - Call sub_0807DF28 - _0807EB74 - Call sub_08068CA0 - JumpIf script_0801633E - Call sub_08068CFC - JumpIfNot script_08016332 - Call sub_08068DB8 - WaitUntilTextboxCloses - Call sub_08068DD0 - WaitUntilTextboxCloses - _0807E3E8 - JumpIfNot script_08016346 - StartPlayerScript script_0801635C - WaitForSomething2 0x00000001 - _0807EB74 - Call sub_08068C8C - JumpIf script_08016262 - Call sub_08068DE8 - WaitUntilTextboxCloses - Wait 0x001e -script_08016262: - Call sub_08068E00 - WaitUntilTextboxCloses - DoPostScriptAction 0x0001 - Call sub_0807F2D4 - Call sub_08068E90 - Call sub_08068C8C - JumpIf script_0801631C - Call sub_08068F00 - Call sub_08068F14 - Call sub_08068BB4 - CallWithArg sub_0807F244, 0x00010001 - Call sub_08068B84 - Call sub_0807F2A8 - Call sub_08068BD0 - Wait 0x001e - Call sub_08068E18 - WaitUntilTextboxCloses - Call sub_08068EB4 - Call sub_0807DF50 - _0807E878 -script_080162CC: - EndBlock - BeginBlock - Call sub_08068EC4 - JumpIf script_080162F6 - CheckEntityInteractType - JumpIf script_080162E4 - Jump script_080162CC -script_080162E4: - EndBlock - _0807E864 - Call sub_08068E78 - WaitUntilTextboxCloses - _0807E878 - Jump script_080162CC -script_080162F6: - EndBlock - _0807E888 - Call sub_0807F594 - Call sub_0807DF28 - _0807E864 - StopBgm - PlaySound SFX_TASK_COMPLETE - Wait 0x003c - PlayBgm BGM_LEARN_SCROLL - Call sub_08068F3C -script_0801631C: - Call sub_08068E30 - WaitUntilTextboxCloses - Call sub_08068C6C - WaitPlayerGetItem - WaitUntilTextboxCloses - Jump script_08016346 -script_08016332: - Call sub_08068E60 - WaitUntilTextboxCloses - Jump script_08016346 -script_0801633E: - Call sub_08068E48 - WaitUntilTextboxCloses -script_08016346: - Call sub_0807DF50 - _0807E878 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - Jump script_080161FE - .2byte 0x0000 diff --git a/data/scripts/script_0801637C.inc b/data/scripts/script_0801637C.inc deleted file mode 100644 index 0f1c6a03..00000000 --- a/data/scripts/script_0801637C.inc +++ /dev/null @@ -1,5 +0,0 @@ -thumb_func_start script_0801637C -script_0801637C: - push {lr} - bl CreateDust - pop {pc} diff --git a/data/scripts/script_080165D8.inc b/data/scripts/script_080165D8.inc deleted file mode 100644 index e9ef17f2..00000000 --- a/data/scripts/script_080165D8.inc +++ /dev/null @@ -1,263 +0,0 @@ -SCRIPT_START script_080165D8 - Wait 0x001e - CheckPlayerInRegion2 0x2020 - JumpAbsoluteIfNot script_080165D8 - DoPostScriptAction 0x0003 - Call script_0801637C+1 - JumpAbsolute script_080165D8 - .2byte 0x0000 -SCRIPT_START script_080165F8 - BeginBlock - _0807E9D4 - EndBlock -script_080165FE: - _0807E30C - JumpIfNot script_080165FE - MessageFromTarget 0x0601 - Jump script_080165FE -SCRIPT_START script_0801660C - BeginBlock - _0807E9D4 - EndBlock -script_08016612: - _0807E944 - _0807E864 - MessageFromTarget 0x0602 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_08016612 - .2byte 0x0000 -SCRIPT_START script_08016628 - BeginBlock - _0807E9D4 - EndBlock -script_0801662E: - _0807E944 - _0807E864 - _0807EB28 0x0603 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0801662E - .2byte 0x0000 -SCRIPT_START script_08016644 - SetEntitySpeed 0x0100 -script_08016648: - _0807ECF4 0x0030 - Wait 0x0008 - _0807ECC4 0x0030 - Wait 0x0008 - _0807EC94 0x0030 - Wait 0x0008 - _0807EC64 0x0030 - Wait 0x0008 - Jump script_08016648 -SCRIPT_START script_0801666C - _0807ED24 0x0055, 0x0039, 0x00b4 - Wait 0x0008 - _0807ED24 0x0075, 0x0076, 0x003c - Wait 0x0008 - _0807ED24 0x0105, 0x006c, 0x0078 - Wait 0x0008 - _0807ED24 0x018e, 0x007a, 0x0078 - Wait 0x0008 - _0807ED24 0x0173, 0x0023, 0x003c - Wait 0x0008 - _0807ED24 0x00d8, 0x003f, 0x003c - Wait 0x0008 - Jump script_0801666C -SCRIPT_START script_080166B8 - SetEntitySpeed 0x0100 -script_080166BC: - _0807EDD4 0x0055, 0x0039 - Wait 0x0008 - _0807EDD4 0x0075, 0x0076 - Wait 0x0008 - _0807EDD4 0x0105, 0x006c - Wait 0x0008 - _0807EDD4 0x018e, 0x007a - Wait 0x0008 - _0807EDD4 0x0173, 0x0023 - Wait 0x0008 - _0807EDD4 0x00d8, 0x003f - Wait 0x0008 - Jump script_080166BC -SCRIPT_START script_080166FC - SetEntitySpeed 0x0100 -script_08016700: - _0807EC94 0x0030 - _0807E5F8 0x00000002 - Wait 0x000f - DoPostScriptAction 0x0000 - _0807EB44 0x0004 - WaitForSomething 0x00000001 - _0807E610 0x00000001 - DoPostScriptAction 0x0003 - Wait 0x0002 - _0807EB44 0x0006 - Wait 0x0002 - _0807EB44 0x0000 - Wait 0x0002 - _0807EB44 0x0002 - Wait 0x0002 - _0807EB44 0x0004 - WaitForSomething 0x00000001 - _0807E610 0x00000001 - _0807ECF4 0x0030 - Wait 0x000f - DoPostScriptAction 0x0000 - _0807EB44 0x0004 - Wait 0x001e - _0807E5F8 0x00000006 - DoPostScriptAction 0x0003 - Wait 0x0002 - _0807EB44 0x0006 - Wait 0x0002 - _0807EB44 0x0000 - Wait 0x0002 - _0807EB44 0x0002 - Wait 0x0002 - _0807EB44 0x0004 - Wait 0x003c - Jump script_08016700 -SCRIPT_START script_08016798 - SetEntitySpeed 0x0100 -script_0801679C: - WaitForSomething 0x00000002 - _0807E610 0x00000002 - _0807EC94 0x0030 - _0807E5F8 0x00000004 - Wait 0x000f - DoPostScriptAction 0x0000 - _0807EB44 0x0004 - WaitForSomething 0x00000002 - _0807E610 0x00000002 - DoPostScriptAction 0x0003 - Wait 0x0002 - _0807EB44 0x0006 - Wait 0x0002 - _0807EB44 0x0000 - Wait 0x0002 - _0807EB44 0x0002 - Wait 0x0002 - _0807EB44 0x0004 - WaitForSomething 0x00000002 - _0807E610 0x00000002 - _0807ECF4 0x0030 - _0807E5F8 0x00000001 - Wait 0x000f - DoPostScriptAction 0x0000 - _0807EB44 0x0004 - WaitForSomething 0x00000002 - _0807E610 0x00000002 - DoPostScriptAction 0x0003 - Wait 0x0002 - _0807EB44 0x0006 - Wait 0x0002 - _0807EB44 0x0000 - Wait 0x0002 - _0807EB44 0x0002 - Wait 0x0002 - _0807EB44 0x0004 - Jump script_0801679C -SCRIPT_START script_08016844 - SetEntitySpeed 0x0100 -script_08016848: - WaitForSomething 0x00000004 - _0807E610 0x00000004 - _0807EC94 0x0030 - Wait 0x000f - DoPostScriptAction 0x0000 - _0807EB44 0x0004 - Wait 0x001e - _0807E5F8 0x00000003 - DoPostScriptAction 0x0003 - Wait 0x0002 - _0807EB44 0x0006 - Wait 0x0002 - _0807EB44 0x0000 - Wait 0x0002 - _0807EB44 0x0002 - Wait 0x0002 - _0807EB44 0x0004 - Wait 0x003c - _0807ECF4 0x0030 - _0807E5F8 0x00000002 - Wait 0x000f - DoPostScriptAction 0x0000 - _0807EB44 0x0004 - WaitForSomething 0x00000004 - _0807E610 0x00000004 - DoPostScriptAction 0x0003 - Wait 0x0002 - _0807EB44 0x0006 - Wait 0x0002 - _0807EB44 0x0000 - Wait 0x0002 - _0807EB44 0x0002 - Wait 0x0002 - _0807EB44 0x0004 - Jump script_08016848 -SCRIPT_START script_080168E0 - BeginBlock - _0807E9D4 - EndBlock -script_080168E6: - _0807E944 - _0807E864 - Wait 0x000f - _0807E878 - Jump script_080168E6 -SCRIPT_START script_080168F4 - BeginBlock - Call sub_08064EA4 - _0807EB44 0x0004 - DoPostScriptAction 0x0000 - DoPostScriptAction 0x000a - EndBlock -script_0801690A: - _0807E30C - JumpIfNot script_0801690A - _0807E864 - _0807EB74 - Call sub_08064F28 - WaitUntilTextboxCloses - JumpIfNot script_08016926 - _0807F034 0x003d - WaitPlayerGetItem -script_08016926: - _0807E878 - SetGlobalFlag 0x005c - Jump script_0801690A - BeginBlock - _0807E9D4 - _0807EB44 0x0000 - DoPostScriptAction 0x000a - EndBlock -script_0801693E: - _0807E944 - _0807E864 - Wait 0x0018 - MessageFromTarget 0x0a01 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0801693E - .2byte 0x0000 - BeginBlock - _0807E9D4 - _0807EB44 0x0000 - DoPostScriptAction 0x000a - _0807E930 0x0000 - EndBlock -script_0801696A: - _0807E944 - _0807E864 - Wait 0x0018 - MessageFromTarget 0x0a01 - WaitUntilTextboxCloses - Wait 0x000f - _0807E878 - Jump script_0801696A - .2byte 0x0000 diff --git a/data/scripts/script_08009ECC.inc b/data/scripts/southHyruleField/script_BedInLinksRoom.inc similarity index 69% rename from data/scripts/script_08009ECC.inc rename to data/scripts/southHyruleField/script_BedInLinksRoom.inc index afac33a8..1ce23a20 100644 --- a/data/scripts/script_08009ECC.inc +++ b/data/scripts/southHyruleField/script_BedInLinksRoom.inc @@ -1,4 +1,6 @@ -SCRIPT_START script_08009ECC +@ Bed in links room +@ also Bed in Hyrule Castle +SCRIPT_START script_BedInLinksRoom BeginBlock SetIntVariable 0x00000002 DoPostScriptAction 0x0001 diff --git a/data/scripts/southHyruleField/script_ForestMinish2.inc b/data/scripts/southHyruleField/script_ForestMinish2.inc new file mode 100644 index 00000000..9815dd19 --- /dev/null +++ b/data/scripts/southHyruleField/script_ForestMinish2.inc @@ -0,0 +1,26 @@ +@ Hyrule Fields? ForestMinish with Beanstock left to Minish Woods +SCRIPT_START script_ForestMinish2 + BeginBlock + Call sub_08060090 + DoPostScriptAction 0x000a + EndBlock +script_0800C592: + BeginBlock + CheckEntityInteractType + JumpIf script_0800C5A6 + Call sub_08060158 + EndBlock + Jump script_0800C592 +script_0800C5A6: + EndBlock + _0807E864 + CheckInventory1 0x0067 + JumpIfNot script_0800C5BC + Call sub_08060208 + Jump script_0800C5C0 +script_0800C5BC: + MessageNoOverlap 0x4710 +script_0800C5C0: + WaitUntilTextboxCloses + _0807E878 + Jump script_0800C592 diff --git a/data/scripts/script_08009DB0.inc b/data/scripts/southHyruleField/script_Object69LinksHouseBed.inc similarity index 57% rename from data/scripts/script_08009DB0.inc rename to data/scripts/southHyruleField/script_Object69LinksHouseBed.inc index ee4fe00c..a295cc26 100644 --- a/data/scripts/script_08009DB0.inc +++ b/data/scripts/southHyruleField/script_Object69LinksHouseBed.inc @@ -1,21 +1,5 @@ -SCRIPT_START script_08009DB0 - BeginBlock - Call sub_0807F348 - Call sub_08066288 - Call sub_08066274 - DoPostScriptAction 0x000a - _0807E930 0x000c - _0807E908 0x0003 - EndBlock -script_08009DD2: - _0807E944 - _0807E908 0x0002 - Call sub_0806622C - WaitUntilTextboxCloses - _0807E908 0x0003 - _0807E930 0x000c - Jump script_08009DD2 -SCRIPT_START script_08009DEC +@ Links house OBJECT_69 bed +SCRIPT_START script_Object69LinksHouseBed BeginBlock EndBlock script_08009DF0: @@ -42,3 +26,8 @@ script_08009DF0: Call sub_0807DF50 DoPostScriptAction 0x0006 SCRIPT_END +script_08009E4E: + _0807E878 + DoPostScriptAction 0x0006 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_08009E58.inc b/data/scripts/southHyruleField/script_PlayerWakeAfterRest.inc similarity index 72% rename from data/scripts/script_08009E58.inc rename to data/scripts/southHyruleField/script_PlayerWakeAfterRest.inc index 9603cf05..dcd55630 100644 --- a/data/scripts/script_08009E58.inc +++ b/data/scripts/southHyruleField/script_PlayerWakeAfterRest.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009E58 +@ Player waking up after rest +SCRIPT_START script_PlayerWakeAfterRest BeginBlock Call sub_0807DF28 EndBlock diff --git a/data/scripts/southHyruleField/script_SmithAtLinksHouse.inc b/data/scripts/southHyruleField/script_SmithAtLinksHouse.inc new file mode 100644 index 00000000..88aa8aa8 --- /dev/null +++ b/data/scripts/southHyruleField/script_SmithAtLinksHouse.inc @@ -0,0 +1,18 @@ +@ Links house Smith +SCRIPT_START script_SmithAtLinksHouse + BeginBlock + Call sub_0807F348 + Call sub_08066288 + Call sub_08066274 + DoPostScriptAction 0x000a + _0807E930 0x000c + _0807E908 0x0003 + EndBlock +script_08009DD2: + _0807E944 + _0807E908 0x0002 + Call sub_0806622C + WaitUntilTextboxCloses + _0807E908 0x0003 + _0807E930 0x000c + Jump script_08009DD2 diff --git a/data/scripts/script_08009E80.inc b/data/scripts/unused/script_08009E80.inc similarity index 83% rename from data/scripts/script_08009E80.inc rename to data/scripts/unused/script_08009E80.inc index 97dd114a..9d082aa4 100644 --- a/data/scripts/script_08009E80.inc +++ b/data/scripts/unused/script_08009E80.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08009E80 BeginBlock EndBlock diff --git a/data/scripts/unused/script_0800B828.inc b/data/scripts/unused/script_0800B828.inc new file mode 100644 index 00000000..002888a2 --- /dev/null +++ b/data/scripts/unused/script_0800B828.inc @@ -0,0 +1,52 @@ +@ TODO UNUSED? +SCRIPT_START script_0800B828 + BeginBlock + _0807E9D4 + _0807EB44 0x0000 + DoPostScriptAction 0x000a + EndBlock +script_0800B836: + _0807E944 + _0807E864 + MessageFromTarget 0x0a01 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800B836 + .2byte 0x0000 + BeginBlock + _0807E9D4 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + EndBlock +script_0800B85E: + Wait 0x003c + Call sub_080646A4 + Jump script_0800B85E + BeginBlock + _0807E9D4 + _0807EB44 0x0004 + _0807E930 0x0000 + DoPostScriptAction 0x000a + EndBlock +script_0800B87E: + Wait 0x003c + Call sub_0806407C + Jump script_0800B87E + BeginBlock + _0807E9D4 + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + EndBlock +script_0800B89E: + CheckEntityInteractType + JumpIfNot script_0800B89E + _0807E864 + _0807EB74 + MessageFromTarget 0x0a01 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + Jump script_0800B89E diff --git a/data/scripts/script_0800D84C.inc b/data/scripts/unused/script_0800D84C.inc similarity index 94% rename from data/scripts/script_0800D84C.inc rename to data/scripts/unused/script_0800D84C.inc index cfde64fd..baf79ed1 100644 --- a/data/scripts/script_0800D84C.inc +++ b/data/scripts/unused/script_0800D84C.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_0800D84C BeginBlock EndBlock diff --git a/data/scripts/script_0800FB2C.inc b/data/scripts/unused/script_0800FB2C.inc similarity index 90% rename from data/scripts/script_0800FB2C.inc rename to data/scripts/unused/script_0800FB2C.inc index 6f074f03..fb2209b0 100644 --- a/data/scripts/script_0800FB2C.inc +++ b/data/scripts/unused/script_0800FB2C.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_0800FB2C _0807EB44 0x0002 DoPostScriptAction 0x0000 diff --git a/data/scripts/script_08012B24.inc b/data/scripts/unused/script_08012B24.inc similarity index 93% rename from data/scripts/script_08012B24.inc rename to data/scripts/unused/script_08012B24.inc index 7fa4617a..9a5df12d 100644 --- a/data/scripts/script_08012B24.inc +++ b/data/scripts/unused/script_08012B24.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08012B24 BeginBlock SetEntitySpeed 0x0100 diff --git a/data/scripts/script_08012B50.inc b/data/scripts/unused/script_08012B50.inc similarity index 93% rename from data/scripts/script_08012B50.inc rename to data/scripts/unused/script_08012B50.inc index 8fb19805..e83e0540 100644 --- a/data/scripts/script_08012B50.inc +++ b/data/scripts/unused/script_08012B50.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08012B50 BeginBlock SetEntitySpeed 0x0100 diff --git a/data/scripts/script_08012B7C.inc b/data/scripts/unused/script_08012B7C.inc similarity index 93% rename from data/scripts/script_08012B7C.inc rename to data/scripts/unused/script_08012B7C.inc index 9b90a21b..b6b44f07 100644 --- a/data/scripts/script_08012B7C.inc +++ b/data/scripts/unused/script_08012B7C.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08012B7C BeginBlock SetEntitySpeed 0x0100 diff --git a/data/scripts/unused/script_08012C68.inc b/data/scripts/unused/script_08012C68.inc new file mode 100644 index 00000000..c27b36b3 --- /dev/null +++ b/data/scripts/unused/script_08012C68.inc @@ -0,0 +1,19 @@ +@ TODO UNUSED? +SCRIPT_START script_08012C68 + BeginBlock + _0807E9D4 + DoPostScriptAction 0x0008 + SetIntVariable 0x00000000 + Call sub_0806DA04 + EndBlock +script_08012C7E: + CheckEntityInteractType + JumpIfNot script_08012C7E + _0807E864 + _0807E8E4_0 + MessageFromTarget 0x111d + WaitUntilTextboxCloses + SetGlobalFlag 0x0022 + _0807E878 + Jump script_08012C7E + diff --git a/data/scripts/script_08013D04.inc b/data/scripts/unused/script_08013D04.inc similarity index 96% rename from data/scripts/script_08013D04.inc rename to data/scripts/unused/script_08013D04.inc index c18da600..f53391a3 100644 --- a/data/scripts/script_08013D04.inc +++ b/data/scripts/unused/script_08013D04.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08013D04 BeginBlock Call sub_0807F92C diff --git a/data/scripts/script_08013D44.inc b/data/scripts/unused/script_08013D44.inc similarity index 96% rename from data/scripts/script_08013D44.inc rename to data/scripts/unused/script_08013D44.inc index b2035e0e..0c0c832f 100644 --- a/data/scripts/script_08013D44.inc +++ b/data/scripts/unused/script_08013D44.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08013D44 BeginBlock Call sub_0807F92C diff --git a/data/scripts/script_08013D84.inc b/data/scripts/unused/script_08013D84.inc similarity index 96% rename from data/scripts/script_08013D84.inc rename to data/scripts/unused/script_08013D84.inc index 99a81862..7c41421f 100644 --- a/data/scripts/script_08013D84.inc +++ b/data/scripts/unused/script_08013D84.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08013D84 BeginBlock Call sub_0807F92C diff --git a/data/scripts/script_08013DC4.inc b/data/scripts/unused/script_08013DC4.inc similarity index 96% rename from data/scripts/script_08013DC4.inc rename to data/scripts/unused/script_08013DC4.inc index dbac7069..0d04b036 100644 --- a/data/scripts/script_08013DC4.inc +++ b/data/scripts/unused/script_08013DC4.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08013DC4 BeginBlock Call sub_0807F92C diff --git a/data/scripts/script_080155F4.inc b/data/scripts/unused/script_080155F4.inc similarity index 93% rename from data/scripts/script_080155F4.inc rename to data/scripts/unused/script_080155F4.inc index 8d2bae15..ae645fa8 100644 --- a/data/scripts/script_080155F4.inc +++ b/data/scripts/unused/script_080155F4.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_080155F4 WaitForSomething2 0x00000020 _0807E930 0x0000 diff --git a/data/scripts/script_08015A7C.inc b/data/scripts/unused/script_08015A7C.inc similarity index 93% rename from data/scripts/script_08015A7C.inc rename to data/scripts/unused/script_08015A7C.inc index ade0dcff..88c9b653 100644 --- a/data/scripts/script_08015A7C.inc +++ b/data/scripts/unused/script_08015A7C.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08015A7C SetEntitySpeed 0x0100 DoPostScriptAction 0x0001 diff --git a/data/scripts/script_08015AA0.inc b/data/scripts/unused/script_08015AA0.inc similarity index 93% rename from data/scripts/script_08015AA0.inc rename to data/scripts/unused/script_08015AA0.inc index 24b46093..aaad91f3 100644 --- a/data/scripts/script_08015AA0.inc +++ b/data/scripts/unused/script_08015AA0.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08015AA0 SetEntitySpeed 0x0100 DoPostScriptAction 0x0001 diff --git a/data/scripts/script_08015F80.inc b/data/scripts/unused/script_08015F80.inc similarity index 93% rename from data/scripts/script_08015F80.inc rename to data/scripts/unused/script_08015F80.inc index 685cd467..bf99b59a 100644 --- a/data/scripts/script_08015F80.inc +++ b/data/scripts/unused/script_08015F80.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08015F80 BeginBlock _0807EB44 0x0004 diff --git a/data/scripts/script_08016384.inc b/data/scripts/unused/script_08016384.inc similarity index 99% rename from data/scripts/script_08016384.inc rename to data/scripts/unused/script_08016384.inc index ff750c90..507b9dcc 100644 --- a/data/scripts/script_08016384.inc +++ b/data/scripts/unused/script_08016384.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08016384 BeginBlock EndBlock diff --git a/data/scripts/script_08016482.inc b/data/scripts/unused/script_08016482.inc similarity index 99% rename from data/scripts/script_08016482.inc rename to data/scripts/unused/script_08016482.inc index 57c2cda5..cbd4b1d4 100644 --- a/data/scripts/script_08016482.inc +++ b/data/scripts/unused/script_08016482.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_08016482 _0807E79C Nop2 0x0080 diff --git a/data/scripts/script_080165A4.inc b/data/scripts/unused/script_080165A4.inc similarity index 88% rename from data/scripts/script_080165A4.inc rename to data/scripts/unused/script_080165A4.inc index 288a6781..f3be3358 100644 --- a/data/scripts/script_080165A4.inc +++ b/data/scripts/unused/script_080165A4.inc @@ -1,3 +1,4 @@ +@ TODO UNUSED? SCRIPT_START script_080165A4 BeginBlock DoPostScriptAction 0x000a @@ -13,6 +14,6 @@ script_080165BC: CheckPlayerInRegion2 0x2020 JumpIfNot script_080165BC DoPostScriptAction 0x0003 - Call script_0801637C+1 + Call CreateDustFromScript+1 Jump script_080165BC .2byte 0x0000 diff --git a/data/scripts/unused/script_080165D8.inc b/data/scripts/unused/script_080165D8.inc new file mode 100644 index 00000000..698f8542 --- /dev/null +++ b/data/scripts/unused/script_080165D8.inc @@ -0,0 +1,9 @@ +@ TODO UNUSED? +SCRIPT_START script_080165D8 + Wait 0x001e + CheckPlayerInRegion2 0x2020 + JumpAbsoluteIfNot script_080165D8 + DoPostScriptAction 0x0003 + Call CreateDustFromScript+1 + JumpAbsolute script_080165D8 + .2byte 0x0000 diff --git a/data/scripts/veilFalls/script_BigGoron1.inc b/data/scripts/veilFalls/script_BigGoron1.inc new file mode 100644 index 00000000..09ab084e --- /dev/null +++ b/data/scripts/veilFalls/script_BigGoron1.inc @@ -0,0 +1,6 @@ +@ Veil Falls BigGoron 1 +SCRIPT_START script_BigGoron1 + BeginBlock + EndBlock +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/veilFalls/script_BigGoron2.inc b/data/scripts/veilFalls/script_BigGoron2.inc new file mode 100644 index 00000000..4ee4c99c --- /dev/null +++ b/data/scripts/veilFalls/script_BigGoron2.inc @@ -0,0 +1,6 @@ +@ Veil Falls BigGoron 2 +SCRIPT_START script_BigGoron2 + BeginBlock + EndBlock +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_08009348.inc b/data/scripts/veilFalls/script_BigGoron3.inc similarity index 84% rename from data/scripts/script_08009348.inc rename to data/scripts/veilFalls/script_BigGoron3.inc index 17a843d6..b6531c84 100644 --- a/data/scripts/script_08009348.inc +++ b/data/scripts/veilFalls/script_BigGoron3.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009348 +@ Veil Falls BigGoron 3 +SCRIPT_START script_BigGoron3 BeginBlock _0807E9D4 EndBlock @@ -11,7 +12,7 @@ script_0800934E: _0807F0B4 0x0001 CameraTargetEntity CheckGlobalFlag 0x0055 - JumpIf script_0800939A + JumpIf script_BigGoronTalk MessageNoOverlap 0x1d01 WaitUntilTextboxCloses script_08009376: diff --git a/data/scripts/script_08009320.inc b/data/scripts/veilFalls/script_BigGoronHiding.inc similarity index 70% rename from data/scripts/script_08009320.inc rename to data/scripts/veilFalls/script_BigGoronHiding.inc index ccea2c7d..1cf359ef 100644 --- a/data/scripts/script_08009320.inc +++ b/data/scripts/veilFalls/script_BigGoronHiding.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009320 +@ Veil Falls BigGoron still hiding +SCRIPT_START script_BigGoronHiding BeginBlock Call sub_0806D650 SetEntitySpeed 0x0010 diff --git a/data/scripts/script_08009464.inc b/data/scripts/veilFalls/script_BigGoronMirrorShield.inc similarity index 63% rename from data/scripts/script_08009464.inc rename to data/scripts/veilFalls/script_BigGoronMirrorShield.inc index 05f2b9d0..43fbb794 100644 --- a/data/scripts/script_08009464.inc +++ b/data/scripts/veilFalls/script_BigGoronMirrorShield.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08009464 +@ Veil Falls BigGoron spit out Shield +SCRIPT_START script_BigGoronMirrorShield Wait 0x003c _0807F0C8 0x0000, 0x0000 LoadRoomEntityList gUnk_080F9C58 @@ -27,16 +28,3 @@ SCRIPT_START script_08009464 Wait 0x000a Jump script_08009376 .2byte 0x0000 -SCRIPT_START script_080094A4 - BeginBlock - Call sub_0806D7C4 - SetEntitySpeed 0x0080 - EndBlock - Wait 0x003c - SetEntity0x20 0x00018000 -script_080094BC: - _0807EE30 - JumpIfNot script_080094BC - Wait 0x003c - DoPostScriptAction 0x0006 -SCRIPT_END diff --git a/data/scripts/script_0800939A.inc b/data/scripts/veilFalls/script_BigGoronTalk.inc similarity index 96% rename from data/scripts/script_0800939A.inc rename to data/scripts/veilFalls/script_BigGoronTalk.inc index 39e1d99d..cb070bfe 100644 --- a/data/scripts/script_0800939A.inc +++ b/data/scripts/veilFalls/script_BigGoronTalk.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800939A +@ Veil Falls Talk to BigGoron +SCRIPT_START script_BigGoronTalk .ifdef JP CheckLocalFlag 0x00ac .else diff --git a/data/scripts/script_08015FC0.inc b/data/scripts/veilFalls/script_NPC4ESourceOfTheFlow.inc similarity index 82% rename from data/scripts/script_08015FC0.inc rename to data/scripts/veilFalls/script_NPC4ESourceOfTheFlow.inc index a4af16db..61995039 100644 --- a/data/scripts/script_08015FC0.inc +++ b/data/scripts/veilFalls/script_NPC4ESourceOfTheFlow.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08015FC0 +@ Veil Falls NPC4E Source of the Flow +SCRIPT_START script_NPC4ESourceOfTheFlow BeginBlock Call sub_0806DB84 CheckKinstoneFused 0x0009 diff --git a/data/scripts/script_08016004.inc b/data/scripts/veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc similarity index 66% rename from data/scripts/script_08016004.inc rename to data/scripts/veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc index 7516f589..ae9416fe 100644 --- a/data/scripts/script_08016004.inc +++ b/data/scripts/veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_08016004 +@ Veil Falls NPC4E Source of the Flow during opening Kinstone cutscene +SCRIPT_START script_NPC4ESouurceOfTheFlowOpening _0807E5F8 0x00000003 WaitForSomething2 0x0000000c _0807F0C8 0x0000, 0x0000 diff --git a/data/scripts/veilFalls/script_Object3ELeftStone.inc b/data/scripts/veilFalls/script_Object3ELeftStone.inc new file mode 100644 index 00000000..d92ea126 --- /dev/null +++ b/data/scripts/veilFalls/script_Object3ELeftStone.inc @@ -0,0 +1,5 @@ +@ Veil Falls OBJECT_3E left stone +SCRIPT_START script_Object3ELeftStone + OffsetEntityPosition 0xfff0, 0x0000 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_08016030.inc b/data/scripts/veilFalls/script_Object3ELeftStoneOpening.inc similarity index 64% rename from data/scripts/script_08016030.inc rename to data/scripts/veilFalls/script_Object3ELeftStoneOpening.inc index 89472d82..cb69c950 100644 --- a/data/scripts/script_08016030.inc +++ b/data/scripts/veilFalls/script_Object3ELeftStoneOpening.inc @@ -1,7 +1,8 @@ -SCRIPT_START script_08016030 +@ Waterfalls OBJECT_3E during kinstone cutscene? +SCRIPT_START script_Object3ELeftStoneOpening BeginBlock CheckKinstoneFused 0x0009 - JumpIf script_08016062 + JumpIf script_Object3ELeftStone EndBlock WaitForSomething2 0x00000001 DoPostScriptAction 0x0010 diff --git a/data/scripts/veilFalls/script_Object3ERightStone.inc b/data/scripts/veilFalls/script_Object3ERightStone.inc new file mode 100644 index 00000000..76e0ddbd --- /dev/null +++ b/data/scripts/veilFalls/script_Object3ERightStone.inc @@ -0,0 +1,5 @@ +@ Veil Falls OBJECT_3E right stone +SCRIPT_START script_Object3ERightStone + OffsetEntityPosition 0x0010, 0x0000 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_0801606C.inc b/data/scripts/veilFalls/script_Object3ERightStoneOpening.inc similarity index 64% rename from data/scripts/script_0801606C.inc rename to data/scripts/veilFalls/script_Object3ERightStoneOpening.inc index 34937e0f..ef2f0020 100644 --- a/data/scripts/script_0801606C.inc +++ b/data/scripts/veilFalls/script_Object3ERightStoneOpening.inc @@ -1,7 +1,8 @@ -SCRIPT_START script_0801606C +@ Waterfalls OBJECT_3E during kinstone cutscene? +SCRIPT_START script_Object3ERightStoneOpening BeginBlock CheckKinstoneFused 0x0009 - JumpIf script_0801609E + JumpIf script_Object3ERightStone EndBlock WaitForSomething2 0x00000002 DoPostScriptAction 0x0010 diff --git a/data/scripts/script_080094CC.inc b/data/scripts/veilFalls/script_Object6AMirrorShield.inc similarity index 72% rename from data/scripts/script_080094CC.inc rename to data/scripts/veilFalls/script_Object6AMirrorShield.inc index 9b4323f2..63bca6f6 100644 --- a/data/scripts/script_080094CC.inc +++ b/data/scripts/veilFalls/script_Object6AMirrorShield.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_080094CC +@ Veil Falls OBJECT_6A Mirror Shield being spit out +SCRIPT_START script_Object6AMirrorShield BeginBlock Call sub_0806D804 SetEntitySpeed 0x0180 diff --git a/data/scripts/veilFalls/script_Object6AVeilFallsTop.inc b/data/scripts/veilFalls/script_Object6AVeilFallsTop.inc new file mode 100644 index 00000000..a112bcb8 --- /dev/null +++ b/data/scripts/veilFalls/script_Object6AVeilFallsTop.inc @@ -0,0 +1,14 @@ +@ OBJECT_6A in Veil Falls Top? +SCRIPT_START script_Object6AVeilFallsTop + BeginBlock + Call sub_0806D7C4 + SetEntitySpeed 0x0080 + EndBlock + Wait 0x003c + SetEntity0x20 0x00018000 +script_080094BC: + _0807EE30 + JumpIfNot script_080094BC + Wait 0x003c + DoPostScriptAction 0x0006 +SCRIPT_END diff --git a/data/scripts/westernWood/script_ForestMinish1.inc b/data/scripts/westernWood/script_ForestMinish1.inc new file mode 100644 index 00000000..f31443f3 --- /dev/null +++ b/data/scripts/westernWood/script_ForestMinish1.inc @@ -0,0 +1,20 @@ +@ Western Wood Forest Minish +SCRIPT_START script_ForestMinish1 + BeginBlock + Call sub_08060090 + DoPostScriptAction 0x000a + EndBlock +script_0800C55E: + BeginBlock + CheckEntityInteractType + JumpIf script_0800C572 + Call sub_08060158 + EndBlock + Jump script_0800C55E +script_0800C572: + EndBlock + _0807E864 + Call sub_08060208 + WaitUntilTextboxCloses + _0807E878 + Jump script_0800C55E diff --git a/data/scripts/westernWood/script_MoblinLady.inc b/data/scripts/westernWood/script_MoblinLady.inc new file mode 100644 index 00000000..05c272db --- /dev/null +++ b/data/scripts/westernWood/script_MoblinLady.inc @@ -0,0 +1,22 @@ +@ Western Wood MoblinLady in Percys house +SCRIPT_START script_MoblinLady + BeginBlock + _0807EB74 + _0807E9D4 + DoPostScriptAction 0x000a + EndBlock +script_08012338: + CheckEntityInteractType + JumpIfNot script_08012338 + _0807EB74 + _0807E864 + MessageFromTarget 0x2304 + WaitUntilTextboxCloses + CheckLocalFlag 0x0042 + JumpIf script_0801235A + SetLocalFlag 0x0042 + _0807F034 0x0057 + WaitPlayerGetItem +script_0801235A: + _0807E878 + Jump script_08012338 diff --git a/data/scripts/westernWood/script_MoblinLadyDisguised.inc b/data/scripts/westernWood/script_MoblinLadyDisguised.inc new file mode 100644 index 00000000..3000aea1 --- /dev/null +++ b/data/scripts/westernWood/script_MoblinLadyDisguised.inc @@ -0,0 +1,63 @@ +@ Western Wood Moblin disguised as Townsperson in Percys house +SCRIPT_START script_MoblinLadyDisguised + BeginBlock + _0807EB44 0x0004 + Call sub_08061FD8 + _0807E9D4 + DoPostScriptAction 0x000a + EndBlock +script_08012284: + EndBlock + BeginBlock + CheckGlobalFlag 0x001e + JumpIfNot script_08012298 + CheckInventory1 0x0015 + JumpIf script_080122BA +script_08012298: + CheckEntityInteractType + JumpIfNot script_08012284 + EndBlock + _0807EB74 + _0807E864 + Call sub_08061FD8 + MessageFromTarget 0x2302 + WaitUntilTextboxCloses + _0807E878 + SetGlobalFlag 0x001e + Jump script_08012284 +script_080122BA: + EndBlock + BeginBlock + CheckRoomFlag 0x0000 + JumpIfNot script_080122CE + CheckRoomFlag 0x0001 + JumpIf script_080122EC +script_080122CE: + CheckEntityInteractType + JumpIfNot script_080122BA + EndBlock + _0807EB74 + _0807E864 + Call sub_08061FD8 + MessageFromTarget 0x2303 + WaitUntilTextboxCloses + _0807E878 + Jump script_080122BA +script_080122EC: + EndBlock + _0807EB74 + _0807E864 + Call sub_08061FD8 + DoPostScriptAction 0x000b + Call sub_08061FB0 + Call sub_08061F94 + LoadRoomEntityList gUnk_additional_a_HouseInteriors2_Percy + DoPostScriptAction 0x0008 + Wait 0x003c + PlaySound SFX_SECRET + SetLocalFlag 0x0043 + Wait 0x001e + _0807E878 + DoPostScriptAction 0x0006 +SCRIPT_END + .align 2, 0 diff --git a/data/scripts/westernWood/script_PercyInside.inc b/data/scripts/westernWood/script_PercyInside.inc new file mode 100644 index 00000000..d0794615 --- /dev/null +++ b/data/scripts/westernWood/script_PercyInside.inc @@ -0,0 +1,20 @@ +@ Tilby Highlands Percy in Tree or in his house +SCRIPT_START script_PercyInside + BeginBlock + _0807EB44 0x0004 + DoPostScriptAction 0x0000 + DoPostScriptAction 0x000a + Call sub_0806B60C + EndBlock +script_08012E9E: + CheckEntityInteractType + JumpIfNot script_08012E9E + _0807E864 + _0807EB74 + DoPostScriptAction 0x0001 + Call sub_0806B4F0 + WaitUntilTextboxCloses + _0807E878 + DoPostScriptAction 0x0000 + Jump script_08012E9E + .2byte 0x0000 diff --git a/data/scripts/westernWood/script_PercyOutside.inc b/data/scripts/westernWood/script_PercyOutside.inc new file mode 100644 index 00000000..e34359d9 --- /dev/null +++ b/data/scripts/westernWood/script_PercyOutside.inc @@ -0,0 +1,20 @@ +@ Trilby Highlands Percy in front of house +SCRIPT_START script_PercyOutside + BeginBlock + _0807EB44 0x0004 + CallWithArg sub_0807F3D8, 0x00000008 + DoPostScriptAction 0x000a + Call sub_0806B60C + EndBlock +script_08012EDC: + CheckEntityInteractType + JumpIfNot script_08012EDC + _0807E864 + _0807EB74 + CallWithArg sub_0807F3D8, 0x0000000c + Call sub_0806B4F0 + WaitUntilTextboxCloses + Wait 0x000f + _0807E878 + CallWithArg sub_0807F3D8, 0x00000008 + Jump script_08012EDC diff --git a/data/scripts/script_0800AF8C.inc b/data/scripts/windRuins/script_EzloTalkFoW.inc similarity index 75% rename from data/scripts/script_0800AF8C.inc rename to data/scripts/windRuins/script_EzloTalkFoW.inc index b4477b56..8ac839e1 100644 --- a/data/scripts/script_0800AF8C.inc +++ b/data/scripts/windRuins/script_EzloTalkFoW.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800AF8C +@ Ezlo talk after Wind Ruins +SCRIPT_START script_EzloTalkFoW _0807E864 Call sub_0807DF28 _0807EB28 0x1c03 diff --git a/data/scripts/windRuins/script_Npc4EReceiveOcarina.inc b/data/scripts/windRuins/script_Npc4EReceiveOcarina.inc new file mode 100644 index 00000000..b3a0d2f2 --- /dev/null +++ b/data/scripts/windRuins/script_Npc4EReceiveOcarina.inc @@ -0,0 +1,24 @@ +@ After Mazaal NPC4E receive ocarina +SCRIPT_START script_Npc4EReceiveOcarina + BeginBlock + DoPostScriptAction 0x0008 + CheckInventory1 0x0017 + JumpIf script_0800D924 + EndBlock +script_0800D8F4: + CheckInventory1 0x0017 + JumpIfNot script_0800D8F4 + Call sub_0807DF28 + _0807E864 + WaitPlayerGetItem + _0807EB28 0x1325 + WaitUntilTextboxCloses + PlaySound SFX_113 + SetIntVariable 0x00000000 + Call sub_0806DA1C + _0807E878 + Call sub_0807DF50 +script_0800D924: + DoPostScriptAction 0x0006 +SCRIPT_END + .2byte 0x0000 diff --git a/data/scripts/script_0800D874.inc b/data/scripts/windRuins/script_Npc4EWindRuinsTextBoard.inc similarity index 55% rename from data/scripts/script_0800D874.inc rename to data/scripts/windRuins/script_Npc4EWindRuinsTextBoard.inc index 6e7a1185..8b0662a7 100644 --- a/data/scripts/script_0800D874.inc +++ b/data/scripts/windRuins/script_Npc4EWindRuinsTextBoard.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D874 +@ After Mazaal NPC4E text board +SCRIPT_START script_Npc4EWindRuinsTextBoard BeginBlock Call sub_0807F934 DoPostScriptAction 0x0008 @@ -12,7 +13,7 @@ script_0800D88E: Call sub_0807DF28 CheckLocalFlag 0x0045 JumpIf script_0800D8B0 - StartPlayerScript script_0800D92C + StartPlayerScript script_PlayerAtTextboard WaitForSomething2 0x00000001 script_0800D8B0: _0807E8E4_0 @@ -31,26 +32,3 @@ script_0800D8D6: _0807E878 Jump script_0800D88E .2byte 0x0000 -SCRIPT_START script_0800D8E4 - BeginBlock - DoPostScriptAction 0x0008 - CheckInventory1 0x0017 - JumpIf script_0800D924 - EndBlock -script_0800D8F4: - CheckInventory1 0x0017 - JumpIfNot script_0800D8F4 - Call sub_0807DF28 - _0807E864 - WaitPlayerGetItem - _0807EB28 0x1325 - WaitUntilTextboxCloses - PlaySound SFX_113 - SetIntVariable 0x00000000 - Call sub_0806DA1C - _0807E878 - Call sub_0807DF50 -script_0800D924: - DoPostScriptAction 0x0006 -SCRIPT_END - .2byte 0x0000 diff --git a/data/scripts/script_0800D92C.inc b/data/scripts/windRuins/script_PlayerAtTextboard.inc similarity index 72% rename from data/scripts/script_0800D92C.inc rename to data/scripts/windRuins/script_PlayerAtTextboard.inc index 43b2abb5..dbee2f6d 100644 --- a/data/scripts/script_0800D92C.inc +++ b/data/scripts/windRuins/script_PlayerAtTextboard.inc @@ -1,4 +1,5 @@ -SCRIPT_START script_0800D92C +@ Player at Text board after Mazaal +SCRIPT_START script_PlayerAtTextboard BeginBlock SetEntitySpeed 0x0080 EndBlock diff --git a/src/enemy/mazaalMacro.c b/src/enemy/mazaalMacro.c index ed28d6c8..ba955777 100644 --- a/src/enemy/mazaalMacro.c +++ b/src/enemy/mazaalMacro.c @@ -5,7 +5,7 @@ extern void sub_0807B600(u32); -extern const u16 script_08012E20[]; +extern const u16 script_MazaalMacroDefeated[]; void sub_08034E18(Entity*); void sub_08034FA0(Entity*); @@ -139,7 +139,7 @@ void sub_08034E68(Entity* this) { if (gScreenTransition.field_0x39 == 0) { if (sub_08079F8C() != 0) { this->action = 3; - scriptExecutionContext = StartCutscene(this, (u16*)script_08012E20); + scriptExecutionContext = StartCutscene(this, (u16*)script_MazaalMacroDefeated); *(ScriptExecutionContext**)&this->cutsceneBeh = scriptExecutionContext; } } else { diff --git a/src/manager/managerF.c b/src/manager/managerF.c index cc7b7692..bd871e70 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -75,16 +75,16 @@ const ManagerF_HelperStruct gUnk_08108354[] = { const u32 gUnk_08108354_terminator = 0xFFFF; // terminator for the previous array -extern u16 script_0800E600[]; -extern u16 script_0800E62C[]; -extern u16 script_0800E658[]; -extern u16 script_0800E684[]; +extern u16 script_PlayerAtDarkNut1[]; +extern u16 script_PlayerAtDarkNut2[]; +extern u16 script_PlayerAtDarkNut3[]; +extern u16 script_PlayerAtMadderpillar[]; u16* const gUnk_08108380[] = { - script_0800E600, - script_0800E62C, - script_0800E658, - script_0800E684, + script_PlayerAtDarkNut1, + script_PlayerAtDarkNut2, + script_PlayerAtDarkNut3, + script_PlayerAtMadderpillar, }; void sub_08058F44(u32, u32, u32); diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index 84d18da1..41c83e06 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -17,8 +17,8 @@ typedef struct { extern void sub_08078850(Entity*, u32, u8 /* TODO this is a s8 in beedle.c*/, gUnk_0810C89C_struct*); -extern void script_08016030; // Cutscene data type? -extern void script_0801606C; // Cutscene data type? +extern void script_Object3ELeftStoneOpening; // Cutscene data type? +extern void script_Object3ERightStoneOpening; // Cutscene data type? const Hitbox gUnk_08114154; const u8 gUnk_0811415C[]; @@ -142,12 +142,12 @@ void sub_0806DB84(Entity* this, ScriptExecutionContext* context) { ent = CreateObject(OBJECT_3E, 4, 0); if (ent != NULL) { PositionRelative(this, ent, -0x80000, 0); - *(ScriptExecutionContext**)&ent->cutsceneBeh = StartCutscene(ent, &script_08016030); + *(ScriptExecutionContext**)&ent->cutsceneBeh = StartCutscene(ent, &script_Object3ELeftStoneOpening); } ent = CreateObject(OBJECT_3E, 5, 0); if (ent != NULL) { PositionRelative(this, ent, 0x80000, 0); - *(ScriptExecutionContext**)&ent->cutsceneBeh = StartCutscene(ent, &script_0801606C); + *(ScriptExecutionContext**)&ent->cutsceneBeh = StartCutscene(ent, &script_Object3ERightStoneOpening); } } diff --git a/src/npc/rem.c b/src/npc/rem.c index d3ab32d0..493ce944 100644 --- a/src/npc/rem.c +++ b/src/npc/rem.c @@ -6,7 +6,7 @@ extern void sub_0806A8C8(Entity*); extern void (*gUnk_08112260[])(Entity*); extern void (*gUnk_08112278[])(Entity*); -extern void script_08012F0C; +extern void script_Rem; extern void sub_08078850(Entity*, u32, u32, u32*); extern u32 gUnk_0811229C; @@ -51,7 +51,7 @@ void sub_0806A3D8(Entity* this) { this->actionDelay = 0xb4; SetDefaultPriority(this, PRIO_MESSAGE); sub_0806A8C8(this); - uVar1 = StartCutscene(this, &script_08012F0C); + uVar1 = StartCutscene(this, &script_Rem); *(ScriptExecutionContext**)&this->cutsceneBeh = uVar1; sub_0807DD94(this, NULL); } diff --git a/src/npc/stockwell.c b/src/npc/stockwell.c index 454b8b2a..e6beed01 100644 --- a/src/npc/stockwell.c +++ b/src/npc/stockwell.c @@ -13,7 +13,7 @@ extern bool32 sub_08056338(void); extern void sub_08078850(Entity*, u32, u8, u32*); extern u32 gUnk_0810FDA0; -extern u16 script_080142B0; +extern u16 script_Stockwell; void Stockwell(Entity* this) { gUnk_0810FDA4[this->action](this); @@ -32,7 +32,7 @@ void sub_08065080(Entity* this) { #ifndef EU sub_08078850(this, 0, 0, &gUnk_0810FDA0); #endif - context = StartCutscene(this, &script_080142B0); + context = StartCutscene(this, &script_Stockwell); *(ScriptExecutionContext**)&this->cutsceneBeh = context; } diff --git a/src/npc/talon.c b/src/npc/talon.c index 1ed653fd..a7bc1e81 100644 --- a/src/npc/talon.c +++ b/src/npc/talon.c @@ -4,7 +4,7 @@ extern void (*gUnk_0810FEC4[])(Entity* this); extern void (*gUnk_0810FEBC[])(Entity* this); extern SpriteLoadData gUnk_0810FEB0; -extern u8 script_0800B41C; +extern u8 script_TalonGotKey; extern u8 gUnk_0810FED8[]; void sub_0806574C(Entity* this); @@ -103,7 +103,7 @@ void sub_080656D4(Entity* this) { } else { if (this->interactType != 0) { if (GetInventoryValue(0x37) != 0) { // keyLonLon - StartCutscene(this, (u16*)&script_0800B41C); + StartCutscene(this, (u16*)&script_TalonGotKey); goto label2; } else { this->field_0x68.HALF.HI = this->action; diff --git a/src/npc/windTribespeople.c b/src/npc/windTribespeople.c index f5e3d57d..a0d979eb 100644 --- a/src/npc/windTribespeople.c +++ b/src/npc/windTribespeople.c @@ -15,7 +15,7 @@ extern void (*const gUnk_08113A7C[])(Entity*); extern void (*const gUnk_08113A8C[])(Entity*, ScriptExecutionContext*); extern SpriteLoadData gUnk_08113A1C[]; -extern u16 script_08014A80; +extern u16 script_WindTribespeople6; extern Dialog gUnk_08113ABC[]; extern u16 gUnk_08113B0C[]; @@ -64,7 +64,7 @@ void sub_0806C7D4(Entity* this) { sub_0807DD94(this, NULL); if ((this->type2 == 3) && (!CheckGlobalFlag(WARP_EVENT_END)) && (CheckLocalFlag(0x63)) && (CheckRoomFlag(0))) { this->type2 = 7; - sub_0807DD80(this, &script_08014A80); + sub_0807DD80(this, &script_WindTribespeople6); } } } diff --git a/src/object/object6A.c b/src/object/object6A.c index baeccd92..b1005e1e 100644 --- a/src/object/object6A.c +++ b/src/object/object6A.c @@ -16,10 +16,10 @@ extern s16 gUnk_08122B0E[]; extern u16 gUnk_08122B1E[]; extern s8 gUnk_08122B2E[]; -extern u16 script_0800AEDC; -extern u16 script_0801183C; +extern u16 script_Object6ATheLittleHat; +extern u16 script_Object6ASwordInChest; extern u16 script_08015B14; -extern u16 script_08011940; +extern u16 script_ZeldaMagic; extern u16 script_08012C48; typedef struct { @@ -186,7 +186,7 @@ void sub_08094B94(Object6AEntity* this) { if (e != NULL) { CopyPosition(&gPlayerEntity, e); e->z.HALF.HI = -48; - ((Object6AEntity*)e)->ctx = StartCutscene(e, &script_0800AEDC); + ((Object6AEntity*)e)->ctx = StartCutscene(e, &script_Object6ATheLittleHat); CreateDust(e); e->z.HALF.HI += 16; e->y.HALF.HI++; @@ -535,7 +535,7 @@ void sub_08095244(Object6AEntity* this) { if (e != NULL) { e->parent = super; PositionRelative(super, e, 0x100000, -0x100000); - ((Object6AEntity*)e)->ctx = StartCutscene(e, &script_0801183C); + ((Object6AEntity*)e)->ctx = StartCutscene(e, &script_Object6ASwordInChest); } } } @@ -804,7 +804,7 @@ void sub_08095810(Object6AEntity* this) { e->parent = super; CopyPosition(super, e); ResolveEntityOnTop(super, e); - ((Object6AEntity*)e)->ctx = StartCutscene(e, &script_08011940); + ((Object6AEntity*)e)->ctx = StartCutscene(e, &script_ZeldaMagic); } } diff --git a/src/roomInit.c b/src/roomInit.c index e553a20f..15aa6c1b 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -390,7 +390,7 @@ u32 sub_unk3_HouseInteriors1_InnWestRoom(void) { return 1; } -extern void* script_08010A5C[]; +extern void* script_PlayerSleepingInn[]; void sub_StateChange_HouseInteriors1_InnWestRoom(void) { if (CheckLocalFlag(YADO_CHECKIN)) { @@ -398,7 +398,7 @@ void sub_StateChange_HouseInteriors1_InnWestRoom(void) { DoFade(5, 256); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; - sub_080751E8(1, 2, &script_08010A5C); + sub_080751E8(1, 2, &script_PlayerSleepingInn); } } @@ -424,7 +424,7 @@ void sub_StateChange_HouseInteriors1_InnMiddleRoom(void) { DoFade(5, 256); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; - sub_080751E8(1, 2, &script_08010A5C); + sub_080751E8(1, 2, &script_PlayerSleepingInn); } } @@ -450,7 +450,7 @@ void sub_StateChange_HouseInteriors1_InnEastRoom(void) { DoFade(5, 256); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x60; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; - sub_080751E8(1, 2, &script_08010A5C); + sub_080751E8(1, 2, &script_PlayerSleepingInn); } } @@ -665,14 +665,14 @@ u32 sub_unk3_HyruleCastle_4(void) { return 1; } -extern u32 script_08009E88; +extern u32 script_PlayerWakingUpInHyruleCastle; void sub_StateChange_HyruleCastle_4(void) { if (!CheckLocalFlag(CASTLE_04_MEZAME)) { DoFade(5, 256); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0xb0; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x40; - sub_080751E8(0, 6, &script_08009E88); + sub_080751E8(0, 6, &script_PlayerWakingUpInHyruleCastle); #ifdef EU SoundReq(0x80010000); gArea.musicIndex = gArea.pMusicIndex; @@ -4806,14 +4806,14 @@ u32 sub_unk3_HouseInteriors2_LinksHouseBedroom() { } extern EntityData gUnk_080F31D8; -extern u32 script_08009B30; +extern u32 script_PlayerIntro; void sub_StateChange_HouseInteriors2_LinksHouseBedroom(void) { if (!CheckGlobalFlag(START) && !CheckLocalFlag(0x46)) { sub_080A71C4(5, 1, 4, 4); gUpdateVisibleTiles = 0; DoFade(5, 256); - sub_080751E8(0, 6, &script_08009B30); + sub_080751E8(0, 6, &script_PlayerIntro); } if (!CheckGlobalFlag(OUTDOOR)) { gArea.musicIndex = gArea.pMusicIndex; @@ -4824,12 +4824,12 @@ void sub_StateChange_HouseInteriors2_LinksHouseBedroom(void) { } } -extern u32 script_08009E58; +extern u32 script_PlayerWakeAfterRest; void sub_0804E864(void) { gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x90; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; - sub_080751E8(1, 6, &script_08009E58); + sub_080751E8(1, 6, &script_PlayerWakeAfterRest); ModHealth(0xa0); } @@ -5316,14 +5316,14 @@ u32 sub_unk3_HouseInteriors3_Simon(void) { } extern EntityData gUnk_080F5DD0; -extern u32 script_08011C50; +extern u32 script_PlayerWakingUpAtSimons; void sub_StateChange_HouseInteriors3_Simon(void) { if (gSave.global_progress > 7) { LoadRoomEntityList(&gUnk_080F5DD0); } if (CheckGlobalFlag(MAROYA_WAKEUP)) { - sub_080751E8(1, 2, &script_08011C50); + sub_080751E8(1, 2, &script_PlayerWakingUpAtSimons); } } From 57f00c0eae4cc00fa329df0d13752f7de096054f Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Sun, 26 Dec 2021 23:44:43 +0100 Subject: [PATCH 038/168] Name some script commands --- asm/macros/scripts.inc | 18 ++-- data/scripts.s | 2 + .../script_CastorWildsStatueRight.inc | 2 +- .../script_CastorWildsStatueRock.inc | 4 +- .../castorWilds/script_GreatFairyRupees.inc | 6 +- data/scripts/castorWilds/script_Object69.inc | 8 +- .../script_Object69DarknutFight.inc | 4 +- .../script_PlayerAtDarknutFight.inc | 4 +- .../cloudTops/script_GregalHealthy.inc | 2 +- data/scripts/cloudTops/script_GregalSick.inc | 10 +- .../script_Object69GreatWhirlwindRevealed.inc | 12 +-- .../cloudTops/script_PlayerAtSiroc.inc | 2 +- data/scripts/cloudTops/script_Siroc.inc | 2 +- .../cloudTops/script_WindTribespeople6.inc | 8 +- ...indTribespeopleGreatWhirlwindRevealed1.inc | 6 +- ...indTribespeopleGreatWhirlwindRevealed2.inc | 8 +- data/scripts/cutscene/ezlo/script_EzloCap.inc | 62 +++++------ .../ezlo/script_Npc4EEzloCutscene.inc | 100 ++++++++--------- .../script_Object6ALeftBullyingOctorok.inc | 10 +- .../script_Object6ARightBullyingOctorok.inc | 10 +- .../ezlo/script_PlayerDefeatedOctoroks.inc | 2 +- .../ezlo/script_PlayerEzloBeingBullied.inc | 2 +- .../cutscene/intro/script_HouseDoorIntro.inc | 4 +- .../intro/script_IntroCameraTarget.inc | 4 +- .../intro/script_Npc4EOutsideLinksHouse.inc | 6 +- .../cutscene/intro/script_Object69Intro.inc | 8 +- .../cutscene/intro/script_PlayerIntro.inc | 2 +- .../intro/script_PlayerMoveToSmith.inc | 14 +-- .../cutscene/intro/script_SmithIntro.inc | 10 +- .../cutscene/intro/script_SmithIntro2.inc | 18 ++-- .../cutscene/intro/script_ZeldaIntro.inc | 8 +- .../intro/script_ZeldaLeaveLinksHouse.inc | 2 +- .../intro/script_ZeldaMoveToLinksHouse.inc | 4 +- .../intro/script_ZeldaOutsideLinksHouse.inc | 4 +- .../intro/script_ZeldaTalkToSmith.inc | 10 +- .../introAssembly/script_GuardAtAssembly.inc | 2 +- .../script_KingDaltusAtAssembly.inc | 32 +++--- .../script_MinisterPothoAtAssembly.inc | 8 +- .../script_Npc4EIntroAssembly.inc | 78 +++++++------- .../introAssembly/script_PlayerEnters.inc | 6 +- .../introAssembly/script_PlayerGetSword.inc | 2 +- .../script_PlayerWakingUpInHyruleCastle.inc | 2 +- .../introAssembly/script_SmithAtAssembly.inc | 24 ++--- .../introBusinessScrub/script_080157AC.inc | 38 +++---- .../introBusinessScrub/script_08015B14.inc | 2 +- .../introBusinessScrub/script_08015B34.inc | 2 +- .../script_BusinessScrubIntro.inc | 6 +- .../script_PlayerAtIntroBusinessScrub4.inc | 2 +- .../script_PlayerIntroBusinessScrub1.inc | 2 +- .../script_PlayerIntroBusinessScrub2.inc | 2 +- .../script_PlayerIntroBusinessScrub3.inc | 2 +- .../script_ZeldaIntroBusinessScrub.inc | 24 ++--- .../introCeremony/script_08011890.inc | 4 +- .../introCeremony/script_GuardBottomRight.inc | 16 +-- .../script_GuardCarryingChest.inc | 18 ++-- .../introCeremony/script_GuardEntryLeft.inc | 6 +- .../introCeremony/script_GuardEntryRight.inc | 6 +- .../introCeremony/script_GuardTopLeft.inc | 24 ++--- .../introCeremony/script_GuardTopRight.inc | 24 ++--- .../script_KingDaltusIntroCeremony.inc | 8 +- .../script_MinisterPothoIntroCastle.inc | 20 ++-- .../introCeremony/script_Npc4EMonsters.inc | 32 +++--- .../script_Npc4EVaatiAttacking.inc | 24 ++--- .../script_Object6AMonsterFromChest.inc | 2 +- .../script_Object6ASwordInChest.inc | 14 +-- .../script_PlayerAtIntroCeremony.inc | 4 +- .../introCeremony/script_PlayerFainting.inc | 2 +- .../script_PlayerIntroCastle.inc | 2 +- .../script_PlayerProtectingZelda.inc | 2 +- .../introCeremony/script_VaatiDarkMagic.inc | 6 +- .../script_VaatiIntroCeremony.inc | 46 ++++---- .../introCeremony/script_ZeldaIntroCastle.inc | 26 ++--- .../introCeremony/script_ZeldaMagic.inc | 2 +- .../introTown/script_Npc4EIntroCastle.inc | 102 +++++++++--------- .../introTown/script_Npc4EIntroTown.inc | 66 ++++++------ .../introTown/script_Object69IntroTown.inc | 6 +- .../introTown/script_PlayerIntro1.inc | 2 +- .../introTown/script_PlayerIntro2.inc | 2 +- .../introTown/script_PlayerIntro3.inc | 2 +- .../introTown/script_PlayerIntro4.inc | 2 +- .../introTown/script_PlayerIntro5.inc | 2 +- .../introTown/script_PlayerIntroTown.inc | 2 +- .../introTown/script_ZeldaIntroTown.inc | 50 ++++----- .../script_HurdyGurdyManFirstKinstone.inc | 26 ++--- .../kinstones/script_KidKinstone1.inc | 8 +- .../kinstones/script_KidKinstone2.inc | 8 +- .../kinstones/script_KidKinstone3.inc | 8 +- .../kinstones/script_Npc4EFirstKinstone.inc | 22 ++-- .../script_PlayerAtFirstKinstone.inc | 2 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone1.inc | 2 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone2.inc | 2 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone3.inc | 2 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone4.inc | 2 +- .../minishVillage/script_ForestMinish5.inc | 16 +-- .../minishVillage/script_ForestMinish6.inc | 12 +-- .../minishVillage/script_ForestMinish7.inc | 16 +-- .../minishVillage/script_ForestMinish8.inc | 16 +-- .../minishVillage/script_ForestMinish9.inc | 12 +-- .../script_Object69VillageIntro.inc | 74 ++++++------- .../script_PlayerAtVillageIntro.inc | 2 +- .../script_EzloCapExplainingOriginStory.inc | 4 +- .../originStory/script_MinishEzlo.inc | 16 +-- .../script_Object69CameraTarget.inc | 22 ++-- .../script_Object69MinishVaati.inc | 22 ++-- .../script_Object69VaatiAppears.inc | 30 +++--- .../originStory/script_Object6ADarkMagic.inc | 8 +- .../originStory/script_Object6AMinishCap.inc | 10 +- .../script_PlayerAtVaatisAppearance.inc | 2 +- .../script_PlayerDefeatedMoblins.inc | 2 +- .../script_PlayerSeenOriginStory.inc | 2 +- .../script_PlayerStoneWallsAppear.inc | 2 +- .../script_PlayerTryToFollowVaati.inc | 2 +- .../cutscene/originStory/script_Vaati.inc | 22 ++-- .../originStory/script_VaatiAppearsAgain.inc | 12 +-- .../cutscene/outro/script_EzloCapOutro.inc | 14 +-- .../cutscene/outro/script_EzloZeldaMagic.inc | 2 +- .../outro/script_GuardStoneOutro1.inc | 4 +- .../outro/script_GuardStoneOutro2.inc | 4 +- .../outro/script_GuardStoneOutro3.inc | 4 +- .../cutscene/outro/script_MaidStoneOutro1.inc | 4 +- .../cutscene/outro/script_MaidStoneOutro2.inc | 4 +- .../outro/script_MinishEzloGoodbye.inc | 30 +++--- .../cutscene/outro/script_MinishEzloOutro.inc | 20 ++-- .../outro/script_Npc4EMinishPortalClosing.inc | 48 ++++----- .../outro/script_Npc4EMinishWoods.inc | 8 +- .../cutscene/outro/script_Npc4EMtCrenel.inc | 8 +- .../cutscene/outro/script_Npc4EOutro.inc | 58 +++++----- .../outro/script_Npc4EUnfreezeCastleStaff.inc | 16 +-- .../outro/script_Object6AEzloDismounting.inc | 2 +- .../outro/script_Object6AEzloFinalMagic.inc | 2 +- .../outro/script_Object6AMinishCapOutro.inc | 16 +-- .../outro/script_Object6AOctorok1.inc | 2 +- .../outro/script_Object6AOctorok2.inc | 2 +- .../outro/script_Object6AOctorok3.inc | 2 +- .../outro/script_Object6AOctorok4.inc | 2 +- .../outro/script_Object6ATektite1.inc | 2 +- .../outro/script_Object6ATektite2.inc | 2 +- .../outro/script_Object6ATektite3.inc | 2 +- .../outro/script_Object6ATektite4.inc | 2 +- .../outro/script_Object6ATheLittleHat.inc | 6 +- .../outro/script_Object6AZeldaMagic.inc | 2 +- .../cutscene/outro/script_PlayerAtEzlo.inc | 2 +- .../cutscene/outro/script_PlayerAtOutro.inc | 2 +- .../outro/script_PlayerGetGreenCap.inc | 4 +- .../outro/script_PlayerSayGoodbye.inc | 2 +- .../cutscene/outro/script_ZeldaGoodbye.inc | 6 +- .../cutscene/outro/script_ZeldaOutro.inc | 32 +++--- .../cutscene/reveal/script_08013494.inc | 2 +- .../cutscene/reveal/script_FakeKingDaltus.inc | 4 +- .../reveal/script_Object3EPictureBackRoom.inc | 40 +++---- .../reveal/script_PlayerAtPicture.inc | 2 +- .../reveal/script_PlayerDistanceFromVaati.inc | 2 +- .../reveal/script_PlayerFaintAgain.inc | 6 +- .../reveal/script_PlayerMoveToPicture.inc | 2 +- .../cutscene/reveal/script_VaatiSanctuary.inc | 18 ++-- .../takeover/script_GuardTakeover.inc | 8 +- .../takeover/script_KingDaltusTakeover.inc | 18 ++-- .../takeover/script_MinisterPothoTakeover.inc | 8 +- .../takeover/script_Object69Takeover.inc | 6 +- .../script_Object69TakeoverCutscene.inc | 52 ++++----- .../takeover/script_PlayerAtTakeover.inc | 2 +- .../takeover/script_VaatiTakeover.inc | 18 ++-- .../takeover/script_ZeldaStoneTakeover.inc | 2 +- data/scripts/dhc/script_KingDaltusStone.inc | 2 +- .../dhc/script_Npc4EAfterDefeatingV2.inc | 16 +-- .../dhc/script_Npc4ECastleCollapsing.inc | 6 +- data/scripts/dhc/script_Npc4EV3Defeated.inc | 4 +- .../dhc/script_Object69CastleEscape.inc | 4 +- .../scripts/dhc/script_Object69V2Defeated.inc | 4 +- .../dhc/script_Object69VaatiWithZelda.inc | 6 +- .../script_Object6AV3DefeatedMinishCap.inc | 4 +- .../script_Object6AV3DefeatedMinishCap2.inc | 2 +- .../dhc/script_PlayerAfterDefeatingV2.inc | 2 +- .../dhc/script_PlayerCastleCollapsing.inc | 2 +- .../scripts/dhc/script_PlayerCastleEscape.inc | 2 +- .../scripts/dhc/script_PlayerRescuedZelda.inc | 2 +- data/scripts/dhc/script_PlayerStonesFall.inc | 2 +- data/scripts/dhc/script_PlayerV2Defeated.inc | 4 +- data/scripts/dhc/script_VaatiWithZelda.inc | 6 +- .../dhc/script_ZeldaAfterDefeatingV2.inc | 18 ++-- data/scripts/dhc/script_ZeldaCastleEscape.inc | 2 +- .../fow/script_MazaalMacroDefeated.inc | 2 +- data/scripts/fow/script_Object89Mazaal.inc | 2 +- data/scripts/fow/script_PlayerAtMazaal.inc | 2 +- .../fow/script_PlayerDefeatedMazaal.inc | 2 +- .../graveyard/script_GraveyardHouseDoor.inc | 2 +- .../graveyard/script_GreatFairyArrows.inc | 12 +-- data/scripts/graveyard/script_KingGustav.inc | 10 +- .../script_Object69CrowStealingKey.inc | 14 +-- .../script_Object6AKingsGravestone.inc | 8 +- .../graveyard/script_Object97FirstCrow.inc | 4 +- .../graveyard/script_Object97SecondCrow.inc | 4 +- .../script_PlayerAtGraveyardHouseDoor.inc | 2 +- .../graveyard/script_PlayerAtKingGustav.inc | 2 +- .../graveyard/script_PlayerGetKeyStolen.inc | 6 +- .../script_Object69SanctuaryEntrance.inc | 2 +- data/scripts/hyruleTown/script_Anju.inc | 6 +- .../scripts/hyruleTown/script_BedAtSimons.inc | 2 +- data/scripts/hyruleTown/script_Beedle.inc | 4 +- data/scripts/hyruleTown/script_Carlov.inc | 2 +- data/scripts/hyruleTown/script_Carlov2.inc | 14 +-- .../scripts/hyruleTown/script_CarlovChest.inc | 10 +- data/scripts/hyruleTown/script_CarlovGame.inc | 16 +-- data/scripts/hyruleTown/script_Din.inc | 2 +- data/scripts/hyruleTown/script_Din2.inc | 2 +- data/scripts/hyruleTown/script_DinMovedIn.inc | 8 +- data/scripts/hyruleTown/script_DrLeftDoor.inc | 2 +- data/scripts/hyruleTown/script_Farore.inc | 2 +- data/scripts/hyruleTown/script_Farore2.inc | 2 +- .../hyruleTown/script_FaroreMovedIn.inc | 8 +- .../hyruleTown/script_FirstHouseDoor.inc | 2 +- .../hyruleTown/script_GoronMerchant.inc | 2 +- data/scripts/hyruleTown/script_InnDoor.inc | 2 +- data/scripts/hyruleTown/script_Librari.inc | 4 +- .../hyruleTown/script_LibrariLater.inc | 2 +- .../script_LibrarianLeftWithQuest.inc | 4 +- .../hyruleTown/script_MalonHyruleTown.inc | 6 +- data/scripts/hyruleTown/script_Marcy.inc | 2 +- data/scripts/hyruleTown/script_Nayru.inc | 2 +- data/scripts/hyruleTown/script_Nayru2.inc | 2 +- .../hyruleTown/script_NayruMovedIn.inc | 8 +- .../script_Object69AllBooksCollected.inc | 6 +- .../script_Object69SimonsSimulation.inc | 4 +- .../hyruleTown/script_Object6ACarlov2.inc | 8 +- ...cript_Object6APreventPlayerLeaveCarlov.inc | 4 +- data/scripts/hyruleTown/script_Phonograph.inc | 2 +- .../hyruleTown/script_PhonographDoor.inc | 2 +- data/scripts/hyruleTown/script_Pita.inc | 2 +- .../script_PlayerActivatedTrapCard.inc | 2 +- .../hyruleTown/script_PlayerAtCarlov.inc | 4 +- .../hyruleTown/script_PlayerAtDrLeftDoor.inc | 2 +- .../hyruleTown/script_PlayerAtInnDoor.inc | 2 +- .../scripts/hyruleTown/script_PlayerAtRem.inc | 2 +- .../hyruleTown/script_PlayerCannotEnter.inc | 2 +- .../hyruleTown/script_PlayerSleepingInn.inc | 2 +- .../hyruleTown/script_PlayerStepOnTrap.inc | 2 +- .../script_PlayerWakingUpAtSimons.inc | 4 +- ...ipt_PlayerWhenLeavingCarlovAlreadyPaid.inc | 4 +- .../hyruleTown/script_RemFallingAsleep.inc | 6 +- data/scripts/hyruleTown/script_Simon.inc | 6 +- data/scripts/hyruleTown/script_SimonsDoor.inc | 2 +- .../hyruleTown/script_StockwellBuy.inc | 2 +- .../hyruleTown/script_StockwellDogFood.inc | 4 +- .../script_SturgeonAllBooksCollected.inc | 4 +- .../scripts/hyruleTown/script_TownMinish1.inc | 2 +- .../scripts/hyruleTown/script_TownMinish4.inc | 16 +-- .../scripts/hyruleTown/script_TownMinish5.inc | 22 ++-- .../script_BigGoronKinstone2.inc | 2 +- .../script_BigGoronKinstone3.inc | 4 +- .../script_BigGoronKinstone4.inc | 4 +- .../kinstoneFusion/script_Goron1Kinstone2.inc | 14 +-- .../kinstoneFusion/script_Goron1Kinstone3.inc | 2 +- .../kinstoneFusion/script_Goron1Kinstone4.inc | 2 +- .../kinstoneFusion/script_Goron1Kinstone5.inc | 2 +- .../kinstoneFusion/script_Goron1Kinstone6.inc | 2 +- .../kinstoneFusion/script_Goron2Kinstone2.inc | 10 +- .../kinstoneFusion/script_Goron2Kinstone3.inc | 8 +- .../kinstoneFusion/script_Goron2Kinstone4.inc | 8 +- .../kinstoneFusion/script_Goron2Kinstone5.inc | 8 +- .../kinstoneFusion/script_Goron2Kinstone6.inc | 8 +- .../kinstoneFusion/script_Goron3Kinstone3.inc | 8 +- .../kinstoneFusion/script_Goron4Kinstone4.inc | 10 +- .../kinstoneFusion/script_Goron5Kinstone5.inc | 8 +- .../script_Goron6Kindstone6.inc | 10 +- .../script_ObjectB3KinstoneSparkGoron.inc | 2 +- .../lakeHylia/script_KingGustafHologram.inc | 6 +- .../lakeHylia/script_PlayerAfterToD.inc | 2 +- .../lonLonRanch/script_LonLonRanchDoor.inc | 8 +- .../lonLonRanch/script_MalonLostKey.inc | 10 +- .../lonLonRanch/script_PlayerGiveKey.inc | 4 +- .../lonLonRanch/script_TalonGotKey.inc | 10 +- .../lonLonRanch/script_TalonInside.inc | 4 +- data/scripts/minishWoods/script_08012D18.inc | 2 +- .../scripts/minishWoods/script_BombMinish.inc | 14 +-- data/scripts/minishWoods/script_Festari.inc | 2 +- .../minishWoods/script_ForestMinish10.inc | 16 +-- data/scripts/minishWoods/script_Gentari.inc | 2 +- .../minishWoods/script_Object69PotionBlue.inc | 4 +- .../minishWoods/script_Object69PotionRed.inc | 4 +- .../minishWoods/script_PlayerAtBombMinish.inc | 2 +- .../minishWoods/script_PlayerAtFestari.inc | 2 +- .../minishWoods/script_PlayerAtGentari.inc | 2 +- data/scripts/minishWoods/script_Syrup.inc | 8 +- .../mtCrenel/script_GreatFairyBombs.inc | 10 +- data/scripts/mtCrenel/script_Melari.inc | 42 ++++---- .../mtCrenel/script_MountainMinish3.inc | 12 +-- .../mtCrenel/script_MountainMinish4.inc | 2 +- .../mtCrenel/script_Object6ABrokenSword.inc | 4 +- .../mtCrenel/script_Object6ARepairedSword.inc | 4 +- .../mtCrenel/script_PlayerAtMelari.inc | 2 +- .../script_PlayerAtMountainMinishExit.inc | 2 +- .../mtCrenel/script_PlayerGetWhiteSword.inc | 2 +- .../script_PlayerPlaceBrokenSword.inc | 2 +- data/scripts/npc/script_08012C48.inc | 2 +- data/scripts/npc/script_BladeBrothers.inc | 4 +- data/scripts/npc/script_ForestMinish18.inc | 12 +-- data/scripts/npc/script_ForestMinish19.inc | 20 ++-- data/scripts/npc/script_ForestMinish20.inc | 12 +-- .../npc/script_PlayerAtBladeBrothers.inc | 2 +- .../scripts/npc/script_PlayerAtGreatFairy.inc | 2 +- data/scripts/npc/script_TingleSiblings.inc | 2 +- .../script_NPC4EPreventPlayerLeave.inc | 2 +- .../script_Npc4EFinalSwordRumble.inc | 2 +- .../sanctuary/script_Npc4EPedestal.inc | 28 ++--- .../script_Npc4EPreventPlayerLeaving.inc | 2 +- .../sanctuary/script_Npc4ESecondSanctuary.inc | 32 +++--- .../sanctuary/script_Npc4ESpawnTextBoard.inc | 4 +- .../sanctuary/script_Npc4EThirdSanctuary.inc | 36 +++---- .../script_Object6AEarthElementFloating.inc | 2 +- .../script_Object6AFireElementFloating.inc | 2 +- .../sanctuary/script_Object6ASword2.inc | 6 +- .../sanctuary/script_Object6ASword3.inc | 6 +- .../sanctuary/script_Object6ASwordChange1.inc | 2 +- .../script_Object6ASwordCharge10.inc | 2 +- .../script_Object6ASwordCharge11.inc | 2 +- .../sanctuary/script_Object6ASwordCharge2.inc | 2 +- .../sanctuary/script_Object6ASwordCharge3.inc | 2 +- .../sanctuary/script_Object6ASwordCharge4.inc | 2 +- .../sanctuary/script_Object6ASwordCharge5.inc | 6 +- .../sanctuary/script_Object6ASwordCharge6.inc | 6 +- .../sanctuary/script_Object6ASwordCharge8.inc | 6 +- .../sanctuary/script_Object6ASwordCharge9.inc | 2 +- .../script_Object6ASwordInPedestal.inc | 6 +- .../sanctuary/script_Object6ATextBoard.inc | 4 +- .../script_Object6AWaterElementFloating.inc | 2 +- .../script_Object6AWindElementFloating.inc | 2 +- .../sanctuary/script_Objet6ASwordCharge7.inc | 6 +- .../sanctuary/script_PlayerAtPedestal.inc | 2 +- .../script_PlayerAtSanctuaryEntrance.inc | 2 +- .../sanctuary/script_PlayerGetElement.inc | 4 +- .../script_PlayerPickUpFinalSword.inc | 4 +- .../sanctuary/script_PlayerPickUpSword.inc | 4 +- .../sanctuary/script_PlayerSanctuary.inc | 2 +- .../sanctuary/script_PlayerSanctuaryIntro.inc | 2 +- .../script_PlayerTextBoardAppears.inc | 2 +- .../script_BedInLinksRoom.inc | 2 +- .../script_Object69LinksHouseBed.inc | 8 +- .../script_PlayerWakeAfterRest.inc | 6 +- data/scripts/unused/script_0800FB2C.inc | 2 +- data/scripts/unused/script_08012B24.inc | 2 +- data/scripts/unused/script_08012B50.inc | 2 +- data/scripts/unused/script_08012B7C.inc | 2 +- data/scripts/unused/script_08013D04.inc | 2 +- data/scripts/unused/script_08013D44.inc | 2 +- data/scripts/unused/script_08013D84.inc | 2 +- data/scripts/unused/script_08013DC4.inc | 2 +- data/scripts/unused/script_080155F4.inc | 4 +- data/scripts/unused/script_08015A7C.inc | 2 +- data/scripts/unused/script_08015AA0.inc | 2 +- data/scripts/unused/script_08015F80.inc | 4 +- data/scripts/unused/script_08016384.inc | 16 +-- data/scripts/unused/script_08016482.inc | 2 +- .../scripts/veilFalls/script_BigGoronTalk.inc | 2 +- .../script_NPC4ESouurceOfTheFlowOpening.inc | 4 +- .../script_Object3ELeftStoneOpening.inc | 4 +- .../script_Object3ERightStoneOpening.inc | 4 +- .../scripts/westernWood/script_MoblinLady.inc | 2 +- .../script_Npc4EWindRuinsTextBoard.inc | 2 +- .../windRuins/script_PlayerAtTextboard.inc | 2 +- include/script.h | 7 +- src/npc/npc4E.c | 2 +- src/npc/rem.c | 6 +- src/object/greatFairy.c | 2 +- src/object/object6A.c | 6 +- src/script.c | 78 +++++++------- 365 files changed, 1579 insertions(+), 1576 deletions(-) diff --git a/asm/macros/scripts.inc b/asm/macros/scripts.inc index df85a3a2..1c6bc83d 100644 --- a/asm/macros/scripts.inc +++ b/asm/macros/scripts.inc @@ -115,7 +115,7 @@ .4byte \entityDataList .endm -.macro TestBit bitmask:req +.macro CheckSyncFlagAndClear bitmask:req .2byte 0x0c0e .4byte \bitmask .endm @@ -185,7 +185,7 @@ .2byte \s .endm -.macro _0807E3E8 +.macro CheckTextboxResult .2byte 0x041c .endm @@ -204,7 +204,7 @@ .endif .endm -.macro _0807E48C s:req +.macro CheckBottleContaining s:req .2byte 0x081f .2byte \s .endm @@ -247,12 +247,12 @@ .2byte \s .endm -.macro _0807E5F8 w:req +.macro SetSyncFlag w:req .2byte 0x0c28 .4byte \w .endm -.macro _0807E610 w:req +.macro ClearSyncFlag w:req .2byte 0x0c29 .4byte \w .endm @@ -298,12 +298,12 @@ .2byte \frames .endm -.macro WaitForSomething w:req +.macro WaitForSyncFlag w:req .2byte 0x0c32 .4byte \w .endm -.macro WaitForSomething2 w:req +.macro WaitForSyncFlagAndClear w:req .2byte 0x0c33 .4byte \w .endm @@ -320,7 +320,7 @@ .2byte 0x0436 .endm -.macro WaitFor_2 +.macro WaitForFadeFinish .2byte 0x0437 .endm @@ -690,7 +690,7 @@ .2byte 8 .endm -.macro _0807F034 s:req +.macro GivePlayerItem s:req .2byte 0x0882 .2byte \s .endm diff --git a/data/scripts.s b/data/scripts.s index 699276a6..b23bc221 100644 --- a/data/scripts.s +++ b/data/scripts.s @@ -486,7 +486,9 @@ .include "data/scripts/sanctuary/script_Object6ASwordCharge9.inc" .include "data/scripts/sanctuary/script_Object6ASwordCharge10.inc" .include "data/scripts/sanctuary/script_Object6ASwordCharge11.inc" +.ifndef EU .include "data/scripts/sanctuary/script_Npc4ELookAtPictureAgain.inc" +.endif .include "data/scripts/hyruleTown/script_Stockwell.inc" .include "data/scripts/hyruleTown/script_StockwellBuy.inc" .include "data/scripts/hyruleTown/script_StockwellDogFood.inc" diff --git a/data/scripts/castorWilds/script_CastorWildsStatueRight.inc b/data/scripts/castorWilds/script_CastorWildsStatueRight.inc index d6d70d72..e5553e6f 100644 --- a/data/scripts/castorWilds/script_CastorWildsStatueRight.inc +++ b/data/scripts/castorWilds/script_CastorWildsStatueRight.inc @@ -22,7 +22,7 @@ script_0800B2E2: Call sub_080676E0 Call sub_08067534 DoPostScriptAction 0x0012 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 script_0800B302: EndBlock SCRIPT_END diff --git a/data/scripts/castorWilds/script_CastorWildsStatueRock.inc b/data/scripts/castorWilds/script_CastorWildsStatueRock.inc index 4c062cae..3cb8cec3 100644 --- a/data/scripts/castorWilds/script_CastorWildsStatueRock.inc +++ b/data/scripts/castorWilds/script_CastorWildsStatueRock.inc @@ -34,14 +34,14 @@ script_0800B348: Call sub_0806757C script_0800B350: EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 PlaySound SFX_ITEM_BOMB_EXPLODE Call sub_080676D8 Call sub_0806757C Call sub_080675D4 Wait 0x0014 BeginBlock - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 CheckKinstoneFused 0x0006 JumpIfNot script_0800B350 CheckKinstoneFused 0x0007 diff --git a/data/scripts/castorWilds/script_GreatFairyRupees.inc b/data/scripts/castorWilds/script_GreatFairyRupees.inc index ee7fcd05..2385d474 100644 --- a/data/scripts/castorWilds/script_GreatFairyRupees.inc +++ b/data/scripts/castorWilds/script_GreatFairyRupees.inc @@ -12,9 +12,9 @@ script_0800B6D4: _0807E864 Call sub_0807F9A4 StartPlayerScript script_PlayerAtGreatFairy - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 SetRoomFlag 0x0000 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 CheckLocalFlag 0x009f JumpIf script_0800B7A2 MessageNoOverlap 0x057b @@ -23,6 +23,6 @@ script_0800B6D4: JumpIf script_0800B6A6 WaitUntilTextboxCloses SetLocalFlag 0x009f - _0807F034 0x0064 + GivePlayerItem 0x0064 Jump script_0800B698 .2byte 0x0000 diff --git a/data/scripts/castorWilds/script_Object69.inc b/data/scripts/castorWilds/script_Object69.inc index 17eed592..0bb907d2 100644 --- a/data/scripts/castorWilds/script_Object69.inc +++ b/data/scripts/castorWilds/script_Object69.inc @@ -1,7 +1,7 @@ @ Castor Wilds OBJECT_69? SCRIPT_START script_Object69 BeginBlock - _0807E5F8 0x00000000 + SetSyncFlag 0x00000000 .ifdef JP CheckLocalFlag 0x001e .else @@ -19,13 +19,13 @@ SCRIPT_START script_Object69 SetEntitySpeed 0x00c0 EndBlock script_0800B216: - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Call sub_0807DF28 MoveEntityToPlayer CameraTargetEntity _0807EDD4 0x0068, 0x0380 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 Call sub_0807DF50 Wait 0x000c CameraTargetPlayer diff --git a/data/scripts/castorWilds/script_Object69DarknutFight.inc b/data/scripts/castorWilds/script_Object69DarknutFight.inc index fd531758..c62e659d 100644 --- a/data/scripts/castorWilds/script_Object69DarknutFight.inc +++ b/data/scripts/castorWilds/script_Object69DarknutFight.inc @@ -8,8 +8,8 @@ SCRIPT_START script_Object69DarknutFight WaitForPlayerAction0x17 StartPlayerScript script_PlayerAtDarknutFight Wait 0x0018 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 SetRoomFlag 0x0000 Wait 0x0010 PlayBgm BGM_FIGHT_THEME diff --git a/data/scripts/castorWilds/script_PlayerAtDarknutFight.inc b/data/scripts/castorWilds/script_PlayerAtDarknutFight.inc index b122fc5b..1c974574 100644 --- a/data/scripts/castorWilds/script_PlayerAtDarknutFight.inc +++ b/data/scripts/castorWilds/script_PlayerAtDarknutFight.inc @@ -3,7 +3,7 @@ SCRIPT_START script_PlayerAtDarknutFight BeginBlock DoPostScriptAction 0x0000 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x00e0 _0807EDD4 0x0088, 0x0090 ClearLocalFlag 0x0039 @@ -12,6 +12,6 @@ SCRIPT_START script_PlayerAtDarknutFight Wait 0x002c LoadRoomEntityList gUnk_080DA260 Wait 0x001e - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_0807921C SCRIPT_END diff --git a/data/scripts/cloudTops/script_GregalHealthy.inc b/data/scripts/cloudTops/script_GregalHealthy.inc index 1da04bec..646b5d39 100644 --- a/data/scripts/cloudTops/script_GregalHealthy.inc +++ b/data/scripts/cloudTops/script_GregalHealthy.inc @@ -22,7 +22,7 @@ script_08014C56: SetLocalFlag 0x0066 MessageNoOverlap 0x2f0d WaitUntilTextboxCloses - _0807F034 0x000a + GivePlayerItem 0x000a WaitPlayerGetItem Jump script_08014C82 script_08014C7C: diff --git a/data/scripts/cloudTops/script_GregalSick.inc b/data/scripts/cloudTops/script_GregalSick.inc index 10661252..dac29473 100644 --- a/data/scripts/cloudTops/script_GregalSick.inc +++ b/data/scripts/cloudTops/script_GregalSick.inc @@ -25,9 +25,9 @@ script_08014B70: EndBlock _0807E864 Call sub_0807DF28 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 DoPostScriptAction 0x0004 - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 _0807E930 0x0010 Call sub_0806CCF8 Wait 0x0014 @@ -43,8 +43,8 @@ script_08014B70: Wait 0x0014 Call sub_0806CD4C PlaySound SFX_SECRET - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 Call sub_0807DF50 _0807E878 script_08014BE8: @@ -60,7 +60,7 @@ script_08014BF2: MessageNoOverlap 0x2f07 WaitUntilTextboxCloses SetIntVariable 0x00000064 - _0807F034 0x003f + GivePlayerItem 0x003f WaitPlayerGetItem Jump script_08014C22 script_08014C1C: diff --git a/data/scripts/cloudTops/script_Object69GreatWhirlwindRevealed.inc b/data/scripts/cloudTops/script_Object69GreatWhirlwindRevealed.inc index 2e3297b3..c2d465d4 100644 --- a/data/scripts/cloudTops/script_Object69GreatWhirlwindRevealed.inc +++ b/data/scripts/cloudTops/script_Object69GreatWhirlwindRevealed.inc @@ -7,12 +7,12 @@ SCRIPT_START script_Object69GreatWhirlwindRevealed CameraTargetEntity Call sub_0807FBC4 EndBlock - _0807E5F8 0x00000008 - WaitForSomething2 0x00000010 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 - _0807E5F8 0x0000000a - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000010 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 + SetSyncFlag 0x0000000a + WaitForSyncFlagAndClear 0x00000004 _0807EEB4 _0807F0B4 0x0004 CameraTargetPlayer diff --git a/data/scripts/cloudTops/script_PlayerAtSiroc.inc b/data/scripts/cloudTops/script_PlayerAtSiroc.inc index a2a5ef87..5dd59161 100644 --- a/data/scripts/cloudTops/script_PlayerAtSiroc.inc +++ b/data/scripts/cloudTops/script_PlayerAtSiroc.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerAtSiroc _0807EDD4 0x0078, 0x0040 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cloudTops/script_Siroc.inc b/data/scripts/cloudTops/script_Siroc.inc index c45610b2..679d1966 100644 --- a/data/scripts/cloudTops/script_Siroc.inc +++ b/data/scripts/cloudTops/script_Siroc.inc @@ -10,7 +10,7 @@ script_08014AD2: _0807E864 _0807EB74 StartPlayerScript script_PlayerAtSiroc - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 _0807EB74 CheckLocalFlag 0x0064 JumpIf script_08014AFE diff --git a/data/scripts/cloudTops/script_WindTribespeople6.inc b/data/scripts/cloudTops/script_WindTribespeople6.inc index dd9332bf..fea83201 100644 --- a/data/scripts/cloudTops/script_WindTribespeople6.inc +++ b/data/scripts/cloudTops/script_WindTribespeople6.inc @@ -3,14 +3,14 @@ SCRIPT_START script_WindTribespeople6 BeginBlock DoPostScriptAction 0x000a EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 _0807EB74 DoPostScriptAction 0x0004 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 MessageNoOverlap 0x2f0a WaitUntilTextboxCloses - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 script_08014AAC: _0807E30C JumpIfNot script_08014AAC diff --git a/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc b/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc index 19d94f87..0561a0fb 100644 --- a/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc +++ b/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc @@ -7,7 +7,7 @@ SCRIPT_START script_WindTribespeopleGreatWhirlwindRevealed1 _0807EB44 0x0004 DoPostScriptAction 0x0000 EndBlock - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 DoPostScriptAction 0x0004 Wait 0x003c PlaySound SFX_123 @@ -15,12 +15,12 @@ SCRIPT_START script_WindTribespeopleGreatWhirlwindRevealed1 _0807EDD4 0x01e0, 0x01d8 _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 PlaySound SFX_PLY_JUMP _0807EF3C 0x0180, 0x0030 PlaySound SFX_PLY_JUMP _0807EF3C 0x0180, 0x0030 _0807EB44 0x0002 DoPostScriptAction 0x0001 - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 Jump script_0800D80C diff --git a/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc b/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc index 076d46f1..53f64c9b 100644 --- a/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc +++ b/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc @@ -6,10 +6,10 @@ SCRIPT_START script_WindTribespeopleGreatWhirlwindRevealed2 SetEntityPositionRelative 0x0268, 0x01d8 SetEntitySpeed 0x0100 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 _0807EDD4 0x01f0, 0x01d8 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 script_0800D80C: SetEntitySpeed 0x0100 _0807EEF4 0x0000, 0xffe0 @@ -21,7 +21,7 @@ script_0800D82A: CallWithArg sub_0807F8D0, 0xffffe000 Call sub_0807F8BC JumpIf script_0800D82A - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/ezlo/script_EzloCap.inc b/data/scripts/cutscene/ezlo/script_EzloCap.inc index bd5017e4..29b94ee9 100644 --- a/data/scripts/cutscene/ezlo/script_EzloCap.inc +++ b/data/scripts/cutscene/ezlo/script_EzloCap.inc @@ -5,32 +5,32 @@ SCRIPT_START script_EzloCap DoPostScriptAction 0x0007 EndBlock _0807E930 0x0020 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 _0807E930 0x0022 Call sub_0807F3C8 MessageFromTargetPos 0x1102, 0x000c WaitUntilTextboxCloses _0807E930 0x0020 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 _0807E930 0x0021 Call sub_0807F3C8 MessageFromTargetPos 0x1103, 0x000c WaitUntilTextboxCloses _0807E930 0x0020 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0004 Wait 0x003c - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0011 _0807E930 0x001c MessageFromTargetPos 0x1105, 0x000c WaitUntilTextboxCloses _0807E930 0x0020 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 _0807E930 0x0022 Call sub_0807F3C8 MessageFromTargetPos 0x1106, 0x000c @@ -40,8 +40,8 @@ SCRIPT_START script_EzloCap MessageFromTargetPos 0x1107, 0x000c WaitUntilTextboxCloses _0807E930 0x0020 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 _0807E930 0x0021 Call sub_0807F3C8 MessageFromTargetPos 0x1108, 0x000c @@ -53,7 +53,7 @@ SCRIPT_START script_EzloCap _0807E930 0x0020 DoPostScriptAction 0x000a _0807E9D4 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 script_080127F2: EndBlock BeginBlock @@ -76,38 +76,38 @@ script_08012824: CallWithArg sub_0807F5B0, 0x0000003c Call sub_080791D0 EndBlock - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x000b - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 Call sub_0806D944 _0807E930 0x0010 MessageFromTargetPos 0x110a, 0x000c WaitUntilTextboxCloses _0807E930 0x001f - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 _0807E930 0x0010 MessageFromTargetPos 0x110b, 0x000c WaitUntilTextboxCloses _0807E930 0x001f - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0004 Wait 0x003c _0807E930 0x0010 MessageFromTargetPos 0x110c, 0x000c WaitUntilTextboxCloses _0807E930 0x001f - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 _0807E930 0x0010 MessageFromTargetPos 0x110d, 0x000c WaitUntilTextboxCloses _0807E930 0x001f - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 _0807E930 0x0010 MessageFromTargetPos 0x110e, 0x000c WaitUntilTextboxCloses @@ -117,8 +117,8 @@ script_08012824: _0807EC1C 0x0010 DoPostScriptAction 0x000a _0807E9D4 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 script_08012904: EndBlock BeginBlock @@ -153,8 +153,8 @@ script_0801293A: WaitUntilTextboxCloses Call sub_0807DF50 _0807E878 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 script_08012984: EndBlock BeginBlock @@ -190,8 +190,8 @@ script_080129BA: WaitUntilTextboxCloses Call sub_0807DF50 _0807E878 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 script_08012A08: EndBlock BeginBlock @@ -239,6 +239,6 @@ script_08012A74: _0807EB28 0x1112 EndBlock WaitUntilTextboxCloses - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc b/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc index a238743e..f059f75b 100644 --- a/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc +++ b/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc @@ -16,7 +16,7 @@ script_0801248A: CameraTargetPlayer _0807E778 0x0004 _0807E80C 0x00000000 - WaitFor_2 + WaitForFadeFinish _0807E858 0x0000 Call sub_080791BC LoadRoomEntityList gUnk_080F4D70 @@ -25,29 +25,29 @@ script_0801248A: Call sub_0807F844 _0807E778 0x0004 _0807E800 0x00000000 - WaitFor_2 + WaitForFadeFinish PlayBgm BGM_EZLO_THEME - _0807E5F8 0x00000010 - WaitForSomething2 0x00000020 - WaitForSomething2 0x00000100 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000080 - WaitForSomething2 0x00000100 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000020 + WaitForSyncFlagAndClear 0x00000100 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000080 + WaitForSyncFlagAndClear 0x00000100 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 StopBgm _0807E778 0x0004 _0807E80C 0x00000000 - WaitFor_2 + WaitForFadeFinish MoveEntityToPlayer Call sub_0807F844 CameraTargetPlayer SetFadeMask 0xffffffff _0807E778 0x0004 _0807E800 0x00000000 - WaitFor_2 + WaitForFadeFinish Call sub_0807DF50 _0807E878 PlayBGM @@ -60,55 +60,55 @@ script_08012566: Call sub_0806DC7C StopBgm StartPlayerScript script_PlayerEzloBeingBullied - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 SetEntityPositionRelative 0x0388, 0x0168 _0807F0B4 0x0001 CameraTargetEntity Wait 0x005a - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 PlayBgm BGM_EZLO_THEME - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000080 - WaitForSomething2 0x00000100 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000010 - WaitForSomething2 0x00000020 - WaitForSomething2 0x00000100 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000080 + WaitForSyncFlagAndClear 0x00000100 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000020 + WaitForSyncFlagAndClear 0x00000100 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 StopBgm PlayBgm BGM_FIGHT_THEME2 Call sub_0807DF50 _0807E878 - _0807E5F8 0x00000050 + SetSyncFlag 0x00000050 LoadRoomEntityList gUnk_080F51D0 - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 _0807E864 Call sub_0807FA40 Call sub_0807DF28 PlaySound SFX_SECRET StopBgm - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 StartPlayerScript script_PlayerDefeatedOctoroks - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 _0807E8E4_0 PlayBgm BGM_EZLO_THEME Wait 0x001e - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 StopBgm Wait 0x003c PlayBGM @@ -117,12 +117,12 @@ script_08012566: CameraTargetPlayer Call sub_0807DF50 _0807E878 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 StopBgm Wait 0x003c PlayBGM diff --git a/data/scripts/cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc b/data/scripts/cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc index 3aa979f2..4528f6df 100644 --- a/data/scripts/cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc +++ b/data/scripts/cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc @@ -5,17 +5,17 @@ SCRIPT_START script_Object6ALeftBullyingOctorok DoPostScriptAction 0x0007 _0807E930 0x0001 EndBlock - WaitForSomething2 0x00000040 + WaitForSyncFlagAndClear 0x00000040 _0807E930 0x0005 Wait 0x001e - _0807E5F8 0x00000080 + SetSyncFlag 0x00000080 _0807E930 0x0001 - WaitForSomething2 0x00000040 + WaitForSyncFlagAndClear 0x00000040 _0807E930 0x0005 Wait 0x001e - _0807E5F8 0x00000080 + SetSyncFlag 0x00000080 _0807E930 0x0001 - WaitForSomething2 0x00000040 + WaitForSyncFlagAndClear 0x00000040 Wait 0x0001 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/ezlo/script_Object6ARightBullyingOctorok.inc b/data/scripts/cutscene/ezlo/script_Object6ARightBullyingOctorok.inc index f715c8ca..8051b6b5 100644 --- a/data/scripts/cutscene/ezlo/script_Object6ARightBullyingOctorok.inc +++ b/data/scripts/cutscene/ezlo/script_Object6ARightBullyingOctorok.inc @@ -5,17 +5,17 @@ SCRIPT_START script_Object6ARightBullyingOctorok DoPostScriptAction 0x0007 _0807E930 0x0003 EndBlock - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 _0807E930 0x0007 Wait 0x001e - _0807E5F8 0x00000020 + SetSyncFlag 0x00000020 _0807E930 0x0003 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 _0807E930 0x0007 Wait 0x001e - _0807E5F8 0x00000020 + SetSyncFlag 0x00000020 _0807E930 0x0003 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 Wait 0x0001 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc b/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc index 19d3b88a..f53814e1 100644 --- a/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc +++ b/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerDefeatedOctoroks _0807EDD4 0x0388, 0x0180 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc b/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc index 3d67f251..edf2a936 100644 --- a/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc +++ b/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc @@ -7,7 +7,7 @@ SCRIPT_START script_PlayerEzloBeingBullied DoPostScriptAction 0x0000 DoPostScriptAction 0x0004 Wait 0x003c - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/intro/script_HouseDoorIntro.inc b/data/scripts/cutscene/intro/script_HouseDoorIntro.inc index 41718dc5..45d64e58 100644 --- a/data/scripts/cutscene/intro/script_HouseDoorIntro.inc +++ b/data/scripts/cutscene/intro/script_HouseDoorIntro.inc @@ -2,7 +2,7 @@ SCRIPT_START script_HouseDoorIntro BeginBlock EndBlock - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 @ Open door PlaySound SFX_F0 DoPostScriptAction 0x0008 @@ -14,7 +14,7 @@ SCRIPT_START script_HouseDoorIntro _0807E778 0x0004 @ Circle transition _0807E80C 0x00000000 - WaitFor_2 @ Wait for end of transition + WaitForFadeFinish @ Wait for end of transition Call sub_0805367C SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/intro/script_IntroCameraTarget.inc b/data/scripts/cutscene/intro/script_IntroCameraTarget.inc index d208ad40..1df4f5a3 100644 --- a/data/scripts/cutscene/intro/script_IntroCameraTarget.inc +++ b/data/scripts/cutscene/intro/script_IntroCameraTarget.inc @@ -8,9 +8,9 @@ SCRIPT_START script_IntroCameraTarget _0807E778 0x0002 @ Fade in DoFade4 - WaitFor_2 @ TODO wait for fade to be finished + WaitForFadeFinish @ TODO wait for fade to be finished Wait 0x0078 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Call sub_08053648 @ Move camera target down _0807EDD4 0x0240, 0x0228 diff --git a/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc b/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc index 24a29289..4fe5b4ae 100644 --- a/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc +++ b/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc @@ -9,9 +9,9 @@ SCRIPT_START script_Npc4EOutsideLinksHouse EndBlock _0807E778 0x0010 DoFade6 - WaitFor_2 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + WaitForFadeFinish + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 _0807F0B4 0x0004 CameraTargetPlayer Call sub_0807DF50 diff --git a/data/scripts/cutscene/intro/script_Object69Intro.inc b/data/scripts/cutscene/intro/script_Object69Intro.inc index 3165207b..059bb9f7 100644 --- a/data/scripts/cutscene/intro/script_Object69Intro.inc +++ b/data/scripts/cutscene/intro/script_Object69Intro.inc @@ -3,12 +3,12 @@ SCRIPT_START script_Object69Intro BeginBlock Call sub_0807DF28 _0807E864 - _0807E5F8 0x00000000 + SetSyncFlag 0x00000000 EndBlock - WaitFor_2 + WaitForFadeFinish Wait 0x0078 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000001 SetGlobalFlag 0x001c Call sub_0807DF50 _0807E878 diff --git a/data/scripts/cutscene/intro/script_PlayerIntro.inc b/data/scripts/cutscene/intro/script_PlayerIntro.inc index 862bf6e6..e89495c8 100644 --- a/data/scripts/cutscene/intro/script_PlayerIntro.inc +++ b/data/scripts/cutscene/intro/script_PlayerIntro.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerIntro _0807E864 SetLocalFlag 0x0046 EndBlock - WaitFor_2 + WaitForFadeFinish Wait 0x001e @ Wake up message MessageFromTarget 0x1005 diff --git a/data/scripts/cutscene/intro/script_PlayerMoveToSmith.inc b/data/scripts/cutscene/intro/script_PlayerMoveToSmith.inc index 3f349401..8bec701d 100644 --- a/data/scripts/cutscene/intro/script_PlayerMoveToSmith.inc +++ b/data/scripts/cutscene/intro/script_PlayerMoveToSmith.inc @@ -4,25 +4,25 @@ SCRIPT_START script_PlayerMoveToSmith _0807E8E4_1 SetEntitySpeed 0x00c0 EndBlock - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 DoPostScriptAction 0x0004 Wait 0x003c _0807EDD4 0x0040, 0x0060 _0807EDD4 0x0060, 0x0068 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 DoPostScriptAction 0x0000 _0807E8E4_0 Wait 0x000f PlaySound SFX_VO_ZELDA1 DoPostScriptAction 0x0000 Wait 0x001e - _0807E5F8 0x00000008 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000002 _0807EDD4 0x0070, 0x005c _0807E8E4_1 DoPostScriptAction 0x0000 Wait 0x000f - _0807E5F8 0x00000008 - WaitForSomething2 0x00000002 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000002 + SetSyncFlag 0x00000008 SCRIPT_END diff --git a/data/scripts/cutscene/intro/script_SmithIntro.inc b/data/scripts/cutscene/intro/script_SmithIntro.inc index e1e63bf5..d26a3683 100644 --- a/data/scripts/cutscene/intro/script_SmithIntro.inc +++ b/data/scripts/cutscene/intro/script_SmithIntro.inc @@ -11,8 +11,8 @@ SCRIPT_START script_SmithIntro CameraTargetEntity _0807E778 0x0004 _0807E800 0x00000000 - WaitFor_2 - WaitForSomething2 0x00000008 + WaitForFadeFinish + WaitForSyncFlagAndClear 0x00000008 DoPostScriptAction 0x0004 Wait 0x001e _0807E930 0x000b @@ -20,8 +20,8 @@ SCRIPT_START script_SmithIntro MessageFromTarget 0x1002 WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 _0807E908 0x0001 _0807EB44 0x0004 _0807EDD4 0x00b8, 0x005c @@ -33,6 +33,6 @@ SCRIPT_START script_SmithIntro Wait 0x001e _0807E778 0x0002 DoFade5 - WaitFor_2 + WaitForFadeFinish Call sub_08053634 SCRIPT_END diff --git a/data/scripts/cutscene/intro/script_SmithIntro2.inc b/data/scripts/cutscene/intro/script_SmithIntro2.inc index 6ad10242..fff723fa 100644 --- a/data/scripts/cutscene/intro/script_SmithIntro2.inc +++ b/data/scripts/cutscene/intro/script_SmithIntro2.inc @@ -13,7 +13,7 @@ SCRIPT_START script_SmithIntro2 _0807E864 StartPlayerScript script_PlayerMoveToSmith Call sub_0807DF28 - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 _0807EDD4 0x0080, 0x005c _0807EB44 0x0006 DoPostScriptAction 0x0000 @@ -23,15 +23,15 @@ SCRIPT_START script_SmithIntro2 _0807E8E4_1 WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 _0807EB8C DoPostScriptAction 0x0001 MessageFromTargetPos 0x100b, 0x0000 WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000008 _0807EDD4 0x007c, 0x005c Wait 0x000f DoPostScriptAction 0x000d @@ -39,18 +39,18 @@ SCRIPT_START script_SmithIntro2 _0807EB44 0x0006 DoPostScriptAction 0x000c DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000008 Call sub_08053250 @ Give player rusty sword - _0807F034 0x0034 + GivePlayerItem 0x0034 WaitPlayerGetItem _0807E8E4_1 DoPostScriptAction 0x0001 MessageFromTargetPos 0x100c, 0x0000 WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 script_08009C4C: @ Talk to Smith DoPostScriptAction 0x000a diff --git a/data/scripts/cutscene/intro/script_ZeldaIntro.inc b/data/scripts/cutscene/intro/script_ZeldaIntro.inc index 8c6cbb80..6f2c28ec 100644 --- a/data/scripts/cutscene/intro/script_ZeldaIntro.inc +++ b/data/scripts/cutscene/intro/script_ZeldaIntro.inc @@ -6,19 +6,19 @@ SCRIPT_START script_ZeldaIntro _0807EB44 0x0002 DoPostScriptAction 0x0008 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0007 _0807EDD4 0x0068, 0x0060 Wait 0x000f MessageFromTarget 0x1001 WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0001 MessageFromTarget 0x1003 WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/intro/script_ZeldaLeaveLinksHouse.inc b/data/scripts/cutscene/intro/script_ZeldaLeaveLinksHouse.inc index 8c776a85..7386e1cf 100644 --- a/data/scripts/cutscene/intro/script_ZeldaLeaveLinksHouse.inc +++ b/data/scripts/cutscene/intro/script_ZeldaLeaveLinksHouse.inc @@ -13,7 +13,7 @@ SCRIPT_START script_ZeldaLeaveLinksHouse DoPostScriptAction 0x0008 _0807E778 0x0010 DoFade5 - WaitFor_2 + WaitForFadeFinish Call sub_08053634 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/intro/script_ZeldaMoveToLinksHouse.inc b/data/scripts/cutscene/intro/script_ZeldaMoveToLinksHouse.inc index c53e3594..d86a142b 100644 --- a/data/scripts/cutscene/intro/script_ZeldaMoveToLinksHouse.inc +++ b/data/scripts/cutscene/intro/script_ZeldaMoveToLinksHouse.inc @@ -5,7 +5,7 @@ SCRIPT_START script_ZeldaMoveToLinksHouse SetEntitySpeed 0x00c0 DoPostScriptAction 0x0008 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0007 _0807EDD4 0x01e8, 0x0200 _0807EDD4 0x01f8, 0x0218 @@ -21,7 +21,7 @@ SCRIPT_START script_ZeldaMoveToLinksHouse _0807EDD4 0x0290, 0x0198 Wait 0x001e @ Door is opening - _0807E5F8 0x00000010 @ Send signal to door + SetSyncFlag 0x00000010 @ Send signal to door _0807EDD4 0x0290, 0x0190 DoPostScriptAction 0x0008 _0807EDD4 0x0290, 0x0188 diff --git a/data/scripts/cutscene/intro/script_ZeldaOutsideLinksHouse.inc b/data/scripts/cutscene/intro/script_ZeldaOutsideLinksHouse.inc index acd3f102..9a200b2f 100644 --- a/data/scripts/cutscene/intro/script_ZeldaOutsideLinksHouse.inc +++ b/data/scripts/cutscene/intro/script_ZeldaOutsideLinksHouse.inc @@ -9,12 +9,12 @@ SCRIPT_START script_ZeldaOutsideLinksHouse _0807EB44 0x0004 DoPostScriptAction 0x0000 EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Call sub_08066E08 _0807E864 MessageFromTargetPos 0x1010, 0x000c WaitUntilTextboxCloses - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 script_08014D1E: EndBlock BeginBlock diff --git a/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc b/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc index 4e986e81..282bbec0 100644 --- a/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc +++ b/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc @@ -5,20 +5,20 @@ SCRIPT_START script_ZeldaTalkToSmith SetEntitySpeed 0x0100 Call sub_0807F348 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0004 _0807EB74 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 _0807EB74 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 _0807EB74 _0807EB8C DoPostScriptAction 0x0001 MessageFromTargetPos 0x100a, 0x0000 WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 _0807EB8C DoPostScriptAction 0x0001 _0807EB8C diff --git a/data/scripts/cutscene/introAssembly/script_GuardAtAssembly.inc b/data/scripts/cutscene/introAssembly/script_GuardAtAssembly.inc index 4b6b7c79..804be255 100644 --- a/data/scripts/cutscene/introAssembly/script_GuardAtAssembly.inc +++ b/data/scripts/cutscene/introAssembly/script_GuardAtAssembly.inc @@ -4,7 +4,7 @@ SCRIPT_START script_GuardAtAssembly _0807EB44 0x0000 _0807E930 0x0000 EndBlock - WaitForSomething 0x00000010 + WaitForSyncFlag 0x00000010 PlaySound SFX_11C _0807E930 0x0001 Wait 0x0010 diff --git a/data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc b/data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc index 9b88ae6c..5ea4ba26 100644 --- a/data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc +++ b/data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc @@ -8,54 +8,54 @@ SCRIPT_START script_KingDaltusAtAssembly _0807E9D4 DoPostScriptAction 0x000a EndBlock - WaitForSomething2 0x00000080 + WaitForSyncFlagAndClear 0x00000080 _0807EB44 0x0004 _0807ECC4 0x0008 _0807E930 0x0004 MessageFromTargetPos 0x1050, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000080 _0807E930 0x0004 MessageFromTargetPos 0x1052, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000080 _0807EB44 0x0006 _0807E930 0x0005 MessageFromTargetPos 0x1054, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000080 _0807EB44 0x0004 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000080 _0807E930 0x0004 MessageFromTargetPos 0x1056, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000080 _0807E930 0x0004 MessageFromTargetPos 0x1057, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000080 _0807E930 0x0004 MessageFromTargetPos 0x1058, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000080 _0807E930 0x0004 MessageFromTargetPos 0x105c, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 + SetSyncFlag 0x00000100 script_0800917C: CheckEntityInteractType JumpIfNot script_0800917C diff --git a/data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc b/data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc index 4142d592..fe1106ed 100644 --- a/data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc +++ b/data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc @@ -4,14 +4,14 @@ SCRIPT_START script_MinisterPothoAtAssembly _0807EB44 0x0004 DoPostScriptAction 0x0000 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 PlaySound SFX_PLY_JUMP _0807EF3C 0x0180, 0x0030 _0807EB44 0x0002 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 _0807EB44 0x0004 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 BeginBlock _0807E9D4 DoPostScriptAction 0x000a diff --git a/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc b/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc index 3b00fdf8..e871a204 100644 --- a/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc +++ b/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc @@ -14,58 +14,58 @@ script_08008E12: WaitForPlayerAction0x17 Wait 0x003c StartPlayerScript script_PlayerEnters - WaitForSomething2 0x00000020 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000020 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 Wait 0x003c - _0807E5F8 0x00000080 - WaitForSomething2 0x00000100 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000100 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 Wait 0x000f - _0807E5F8 0x00000080 - WaitForSomething2 0x00000100 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000100 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 MessageFromTargetPos 0x1053, 0x000e WaitUntilTextboxCloses - _0807E5F8 0x00000080 - WaitForSomething2 0x00000100 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000100 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000100 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000020 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 - _0807F034 0x0035 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000100 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000100 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000100 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000020 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 + GivePlayerItem 0x0035 WaitPlayerGetItem StartPlayerScript script_PlayerGetSword - WaitForSomething2 0x00000020 + WaitForSyncFlagAndClear 0x00000020 _0807E8E4_0 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000100 - _0807E5F8 0x00000010 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000100 + SetSyncFlag 0x00000010 Wait 0x0078 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000100 _0807E8E4_1 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 - _0807F034 0x0047 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 + GivePlayerItem 0x0047 WaitPlayerGetItem SetIntVariable 0x00000003 Call sub_0807F420 _0807E8E4_0 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000100 _0807F0B4 0x0004 CameraTargetPlayer SetGlobalFlag 0x0015 diff --git a/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc b/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc index 47cdcef5..c2b49497 100644 --- a/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc +++ b/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc @@ -7,14 +7,14 @@ SCRIPT_START script_PlayerEnters _0807EDD4 0x00b8, 0x0090 _0807EB44 0x0006 DoPostScriptAction 0x0000 - _0807E5F8 0x00000020 - WaitForSomething2 0x00000040 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000040 DoPostScriptAction 0x0001 _0807EDD4 0x0088, 0x0078 _0807EB44 0x0000 DoPostScriptAction 0x0000 Wait 0x000f - _0807E5F8 0x00000020 + SetSyncFlag 0x00000020 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc b/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc index fb1ff121..af4e4dd7 100644 --- a/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc +++ b/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc @@ -7,7 +7,7 @@ SCRIPT_START script_PlayerGetSword Call sub_0807F304 MessageFromTargetPos 0x0501, 0x000e WaitUntilTextboxCloses - _0807E5F8 0x00000020 + SetSyncFlag 0x00000020 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc b/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc index 5943b93a..931c03f4 100644 --- a/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc +++ b/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc @@ -20,7 +20,7 @@ SCRIPT_START script_PlayerWakingUpInHyruleCastle Wait 0x003c _0807E778 0x0004 DoFade4 - WaitFor_2 + WaitForFadeFinish script_08009EA4: Call sub_0807F0D8 JumpIfNot script_08009EA4 diff --git a/data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc b/data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc index d5f52ed6..56c32d55 100644 --- a/data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc +++ b/data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc @@ -5,26 +5,26 @@ SCRIPT_START script_SmithAtAssembly _0807EB44 0x0006 DoPostScriptAction 0x0000 EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 _0807EB74 DoPostScriptAction 0x0001 MessageFromTargetPos 0x105b, 0x0000 WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 _0807EB44 0x0006 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 DoPostScriptAction 0x0005 Wait 0x003c DoPostScriptAction 0x0001 MessageFromTargetPos 0x1051, 0x0000 WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 DoPostScriptAction 0x0004 Wait 0x003c _0807EB74 @@ -33,11 +33,11 @@ SCRIPT_START script_SmithAtAssembly MessageFromTargetPos 0x1055, 0x0000 WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 _0807EB74 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 SetEntitySpeed 0x0080 DoPostScriptAction 0x0001 _0807EDD4 0x0098, 0x0078 @@ -47,7 +47,7 @@ SCRIPT_START script_SmithAtAssembly MessageFromTargetPos 0x1059, 0x0000 WaitUntilTextboxCloses DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 BeginBlock _0807E9D4 DoPostScriptAction 0x000a diff --git a/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc b/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc index c9cd9e1d..6771b682 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc @@ -5,8 +5,8 @@ SCRIPT_START script_080157AC _0807E864 Call sub_0807F9A4 Call sub_0807DF28 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 Call sub_0807DF50 _0807E878 script_080157DA: @@ -17,30 +17,30 @@ script_080157DA: Call sub_0807DF28 Call sub_0807F3F8 Wait 0x003c - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 StartPlayerScript script_PlayerIntroBusinessScrub1 _0807F0B4 0x0001 SetEntityPositionRelative 0x0248, 0x0218 CameraTargetEntity Call sub_0807F5C0 - WaitForSomething2 0x00000010 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000020 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000010 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000020 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 StartPlayerScript script_PlayerIntroBusinessScrub2 - WaitForSomething2 0x00000010 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000010 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 MessageFromTargetPos 0x1066, 0x0002 WaitUntilTextboxCloses - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 Call sub_0807DF50 _0807E878 Call sub_08066F94 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 script_08015880: CheckRoomFlag 0x0000 JumpIfNot script_08015880 @@ -54,16 +54,16 @@ script_08015888: SetEntityPositionRelative 0x0248, 0x0208 CameraTargetEntity StartPlayerScript script_PlayerIntroBusinessScrub3 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 MessageFromTargetPos 0x106a, 0x000c WaitUntilTextboxCloses - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Wait 0x0078 _0807E8E4_2 MessageFromTargetPos 0x1068, 0x0002 WaitUntilTextboxCloses - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 .ifdef JP SetLocalFlag 0x0089 .else diff --git a/data/scripts/cutscene/introBusinessScrub/script_08015B14.inc b/data/scripts/cutscene/introBusinessScrub/script_08015B14.inc index b53d5a0a..0ec77806 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_08015B14.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_08015B14.inc @@ -5,7 +5,7 @@ SCRIPT_START script_08015B14 SetEntitySpeed 0x0300 EndBlock _0807EDD4 0x0248, 0x0218 - _0807E5F8 0x00000020 + SetSyncFlag 0x00000020 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introBusinessScrub/script_08015B34.inc b/data/scripts/cutscene/introBusinessScrub/script_08015B34.inc index c4d17a30..d93ccb08 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_08015B34.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_08015B34.inc @@ -26,7 +26,7 @@ SCRIPT_START script_08015B34 MessageFromTargetPos 0x2506, 0x0002 WaitUntilTextboxCloses StartPlayerScript script_PlayerAtIntroBusinessScrub4 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 Call sub_0807DF50 _0807E878 Jump script_08015B34 diff --git a/data/scripts/cutscene/introBusinessScrub/script_BusinessScrubIntro.inc b/data/scripts/cutscene/introBusinessScrub/script_BusinessScrubIntro.inc index f549c630..52ceeee2 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_BusinessScrubIntro.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_BusinessScrubIntro.inc @@ -6,14 +6,14 @@ SCRIPT_START script_BusinessScrubIntro _0807EB44 0x0004 DoPostScriptAction 0x0000 EndBlock - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 _0807E908 0x0007 - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 _0807E908 0x0006 SetRoomFlag 0x0000 _0807EB44 0x0004 DoPostScriptAction 0x0000 - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 Wait 0x003c PlaySound SFX_SECRET Call sub_08046078 diff --git a/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc index 1b3b8636..02806a81 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerAtIntroBusinessScrub4 _0807EC64 0x0010 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc index 729f3715..a83e7979 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc @@ -4,6 +4,6 @@ SCRIPT_START script_PlayerIntroBusinessScrub1 _0807EDD4 0x0218, 0x0238 _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc index 76ba35a0..ca673adf 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc @@ -4,6 +4,6 @@ SCRIPT_START script_PlayerIntroBusinessScrub2 _0807EDD4 0x0238, 0x0228 _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc index e30904f6..d9bb7e36 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc @@ -4,6 +4,6 @@ SCRIPT_START script_PlayerIntroBusinessScrub3 _0807EDD4 0x0248, 0x0208 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc b/data/scripts/cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc index 3a1d1d3d..1d91c7f0 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc @@ -6,7 +6,7 @@ SCRIPT_START script_ZeldaIntroBusinessScrub DoPostScriptAction 0x000b Call sub_08066D04 EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 BeginBlock Call sub_08066D14 MoveEntityToPlayer @@ -22,12 +22,12 @@ SCRIPT_START script_ZeldaIntroBusinessScrub SetEntityPositionRelative 0x0248, 0x0218 _0807EB44 0x0006 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 Call sub_0807F3C8 PlaySound SFX_VO_ZELDA3 SetEntitySpeed 0x0200 @@ -36,19 +36,19 @@ SCRIPT_START script_ZeldaIntroBusinessScrub Call sub_0807F2D4 _0807EB44 0x0006 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 _0807EB44 0x0006 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 SetEntitySpeed 0x0100 _0807EDD4 0x0238, 0x0238 _0807EB44 0x0000 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a _0807E9D4 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 script_08015A32: EndBlock BeginBlock @@ -66,9 +66,9 @@ script_08015A54: DoPostScriptAction 0x000b _0807EB44 0x0000 DoPostScriptAction 0x0000 - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Call sub_08066D4C - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introCeremony/script_08011890.inc b/data/scripts/cutscene/introCeremony/script_08011890.inc index cbad968b..9ccc9bc5 100644 --- a/data/scripts/cutscene/introCeremony/script_08011890.inc +++ b/data/scripts/cutscene/introCeremony/script_08011890.inc @@ -11,7 +11,7 @@ SCRIPT_START script_08011890 _0807EDD4 0x01f8, 0x0088 Call sub_08094B80 PlaySound SFX_1CC - _0807E5F8 0x10000000 - WaitForSomething2 0x08000000 + SetSyncFlag 0x10000000 + WaitForSyncFlagAndClear 0x08000000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_GuardBottomRight.inc b/data/scripts/cutscene/introCeremony/script_GuardBottomRight.inc index 84046e60..59b81dea 100644 --- a/data/scripts/cutscene/introCeremony/script_GuardBottomRight.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardBottomRight.inc @@ -1,15 +1,15 @@ @ Intro Ceremony Guard bottom right SCRIPT_START script_GuardBottomRight - _0807E610 0x00002000 - _0807E5F8 0x00004000 - WaitForSomething2 0x00002000 + ClearSyncFlag 0x00002000 + SetSyncFlag 0x00004000 + WaitForSyncFlagAndClear 0x00002000 _0807E930 0x0005 _0807EB44 0x0002 _0807EC94 0x0010 _0807EB44 0x0004 _0807E930 0x0002 - _0807E5F8 0x00004000 - WaitForSomething2 0x00002000 + SetSyncFlag 0x00004000 + WaitForSyncFlagAndClear 0x00002000 DoPostScriptAction 0x0004 Wait 0x003c _0807E930 0x0012 @@ -20,8 +20,8 @@ SCRIPT_START script_GuardBottomRight _0807EDD4 0x0200, 0x0098 _0807EDD4 0x0200, 0x00c8 _0807E930 0x0013 - _0807E5F8 0x00004000 - WaitForSomething2 0x00002000 + SetSyncFlag 0x00004000 + WaitForSyncFlagAndClear 0x00002000 DoPostScriptAction 0x0010 Wait 0x000a DoPostScriptAction 0x0010 @@ -30,6 +30,6 @@ SCRIPT_START script_GuardBottomRight SetEntitySpeed 0x0400 SetEntityDirection 0x0002 _0807EC1C 0x003c - _0807E5F8 0x00004000 + SetSyncFlag 0x00004000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_GuardCarryingChest.inc b/data/scripts/cutscene/introCeremony/script_GuardCarryingChest.inc index b558aaa0..33d049b7 100644 --- a/data/scripts/cutscene/introCeremony/script_GuardCarryingChest.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardCarryingChest.inc @@ -7,7 +7,7 @@ SCRIPT_START script_GuardCarryingChest Call sub_08095244 Call sub_0807F338 EndBlock - WaitForSomething 0x0002a800 + WaitForSyncFlag 0x0002a800 DoPostScriptAction 0x0007 _0807E930 0x0006 _0807ECC4 0x0010 @@ -20,16 +20,16 @@ SCRIPT_START script_GuardCarryingChest JumpTable script_08011312, script_GuardBottomRight, script_GuardTopLeft, script_GuardTopRight @ Guard bottom left: script_08011312: - _0807E610 0x00000800 - _0807E5F8 0x00001000 - WaitForSomething2 0x00000800 + ClearSyncFlag 0x00000800 + SetSyncFlag 0x00001000 + WaitForSyncFlagAndClear 0x00000800 _0807E930 0x0007 _0807EB44 0x0006 _0807ECF4 0x0010 _0807EB44 0x0004 _0807E930 0x0002 - _0807E5F8 0x00001000 - WaitForSomething2 0x00000800 + SetSyncFlag 0x00001000 + WaitForSyncFlagAndClear 0x00000800 DoPostScriptAction 0x0004 Wait 0x003c _0807E930 0x0012 @@ -40,8 +40,8 @@ script_08011312: _0807EDD4 0x01f0, 0x0098 _0807EDD4 0x01f0, 0x00c8 _0807E930 0x0013 - _0807E5F8 0x00001000 - WaitForSomething2 0x00000800 + SetSyncFlag 0x00001000 + WaitForSyncFlagAndClear 0x00000800 DoPostScriptAction 0x0010 Wait 0x000a DoPostScriptAction 0x0010 @@ -50,6 +50,6 @@ script_08011312: SetEntitySpeed 0x0400 SetEntityDirection 0x001e _0807EC1C 0x003c - _0807E5F8 0x00001000 + SetSyncFlag 0x00001000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_GuardEntryLeft.inc b/data/scripts/cutscene/introCeremony/script_GuardEntryLeft.inc index 4efe80a7..c826ed27 100644 --- a/data/scripts/cutscene/introCeremony/script_GuardEntryLeft.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardEntryLeft.inc @@ -5,12 +5,12 @@ SCRIPT_START script_GuardEntryLeft _0807EB44 0x0002 _0807E930 0x0001 EndBlock - WaitForSomething2 0x00080000 + WaitForSyncFlagAndClear 0x00080000 _0807E930 0x0005 PlaySound SFX_11C _0807ECF4 0x0010 _0807E930 0x0001 - _0807E5F8 0x00100000 - WaitForSomething2 0x00080000 + SetSyncFlag 0x00100000 + WaitForSyncFlagAndClear 0x00080000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_GuardEntryRight.inc b/data/scripts/cutscene/introCeremony/script_GuardEntryRight.inc index 487b0bec..3a132ca8 100644 --- a/data/scripts/cutscene/introCeremony/script_GuardEntryRight.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardEntryRight.inc @@ -5,12 +5,12 @@ SCRIPT_START script_GuardEntryRight _0807EB44 0x0006 _0807E930 0x0003 EndBlock - WaitForSomething2 0x00200000 + WaitForSyncFlagAndClear 0x00200000 _0807E930 0x0007 PlaySound SFX_11C _0807EC94 0x0010 _0807E930 0x0003 - _0807E5F8 0x00400000 - WaitForSomething2 0x00200000 + SetSyncFlag 0x00400000 + WaitForSyncFlagAndClear 0x00200000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_GuardTopLeft.inc b/data/scripts/cutscene/introCeremony/script_GuardTopLeft.inc index fd1af748..d8dd17d9 100644 --- a/data/scripts/cutscene/introCeremony/script_GuardTopLeft.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardTopLeft.inc @@ -1,8 +1,8 @@ @ Intro Ceremony Guard top left SCRIPT_START script_GuardTopLeft - _0807E610 0x00008000 - _0807E5F8 0x00010000 - WaitForSomething2 0x00008000 + ClearSyncFlag 0x00008000 + SetSyncFlag 0x00010000 + WaitForSyncFlagAndClear 0x00008000 _0807E930 0x0007 _0807EB44 0x0006 _0807ECF4 0x0020 @@ -10,35 +10,35 @@ SCRIPT_START script_GuardTopLeft _0807E930 0x0006 _0807ECC4 0x0010 _0807E930 0x0002 - _0807E5F8 0x00010000 - WaitForSomething2 0x00008000 + SetSyncFlag 0x00010000 + WaitForSyncFlagAndClear 0x00008000 DoPostScriptAction 0x0004 Wait 0x003c _0807E930 0x0012 PlaySound SFX_EM_MOBLIN_SPEAR - _0807E5F8 0x00010000 - WaitForSomething2 0x00008000 + SetSyncFlag 0x00010000 + WaitForSyncFlagAndClear 0x00008000 _0807E930 0x0014 SetEntitySpeed 0x0100 _0807EDD4 0x01e8, 0x0098 SetEntitySpeed 0x0040 _0807EEF4 0x0000, 0x0010 _0807E930 0x0013 - _0807E5F8 0x00010000 - WaitForSomething2 0x00008000 + SetSyncFlag 0x00010000 + WaitForSyncFlagAndClear 0x00008000 DoPostScriptAction 0x000d _0807E930 0x0014 SetEntitySpeed 0x0020 _0807EEF4 0x0000, 0xfff0 _0807E930 0x0013 DoPostScriptAction 0x0010 - _0807E5F8 0x00010000 - WaitForSomething2 0x00008000 + SetSyncFlag 0x00010000 + WaitForSyncFlagAndClear 0x00008000 Call sub_0807F3C8 _0807E930 0x0014 SetEntitySpeed 0x0400 SetEntityDirection 0x001e _0807EC1C 0x003c - _0807E5F8 0x00010000 + SetSyncFlag 0x00010000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_GuardTopRight.inc b/data/scripts/cutscene/introCeremony/script_GuardTopRight.inc index 9b8b000e..1a5b8eb3 100644 --- a/data/scripts/cutscene/introCeremony/script_GuardTopRight.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardTopRight.inc @@ -1,8 +1,8 @@ @ Intro Ceremony Guard top right SCRIPT_START script_GuardTopRight - _0807E610 0x00020000 - _0807E5F8 0x00040000 - WaitForSomething2 0x00020000 + ClearSyncFlag 0x00020000 + SetSyncFlag 0x00040000 + WaitForSyncFlagAndClear 0x00020000 _0807E930 0x0005 _0807EB44 0x0002 _0807EC94 0x0020 @@ -10,36 +10,36 @@ SCRIPT_START script_GuardTopRight _0807E930 0x0006 _0807ECC4 0x0010 _0807E930 0x0002 - _0807E5F8 0x00040000 - WaitForSomething2 0x00020000 + SetSyncFlag 0x00040000 + WaitForSyncFlagAndClear 0x00020000 DoPostScriptAction 0x0004 Wait 0x003c _0807E930 0x0012 PlaySound SFX_EM_MOBLIN_SPEAR - _0807E5F8 0x00040000 - WaitForSomething2 0x00020000 + SetSyncFlag 0x00040000 + WaitForSyncFlagAndClear 0x00020000 _0807E930 0x0014 SetEntitySpeed 0x0100 _0807EDD4 0x0208, 0x0098 SetEntitySpeed 0x0040 _0807EEF4 0x0000, 0x0010 _0807E930 0x0013 - _0807E5F8 0x00040000 - WaitForSomething2 0x00020000 + SetSyncFlag 0x00040000 + WaitForSyncFlagAndClear 0x00020000 DoPostScriptAction 0x000d _0807E930 0x0014 SetEntitySpeed 0x0020 _0807EEF4 0x0000, 0xfff0 _0807E930 0x0013 DoPostScriptAction 0x0010 - _0807E5F8 0x00040000 - WaitForSomething2 0x00020000 + SetSyncFlag 0x00040000 + WaitForSyncFlagAndClear 0x00020000 Call sub_0807F3C8 _0807E930 0x0014 SetEntitySpeed 0x0400 SetEntityDirection 0x0002 _0807EC1C 0x003c - _0807E5F8 0x00040000 + SetSyncFlag 0x00040000 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introCeremony/script_KingDaltusIntroCeremony.inc b/data/scripts/cutscene/introCeremony/script_KingDaltusIntroCeremony.inc index 2e28b685..cab32512 100644 --- a/data/scripts/cutscene/introCeremony/script_KingDaltusIntroCeremony.inc +++ b/data/scripts/cutscene/introCeremony/script_KingDaltusIntroCeremony.inc @@ -6,14 +6,14 @@ SCRIPT_START script_KingDaltusIntroCeremony SetEntitySpeed 0x0100 EndBlock Call sub_0807F338 - WaitForSomething2 0x00000040 + WaitForSyncFlagAndClear 0x00000040 DoPostScriptAction 0x0007 DoPostScriptAction 0x0001 SetEntitySpeed 0x0040 _0807EDD4 0x01f8, 0x0048 DoPostScriptAction 0x0000 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000040 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000040 DoPostScriptAction 0x0010 Wait 0x001e DoPostScriptAction 0x0010 @@ -21,6 +21,6 @@ SCRIPT_START script_KingDaltusIntroCeremony SetEntitySpeed 0x0400 SetEntityDirection 0x0008 _0807EC1C 0x003c - _0807E5F8 0x00000080 + SetSyncFlag 0x00000080 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_MinisterPothoIntroCastle.inc b/data/scripts/cutscene/introCeremony/script_MinisterPothoIntroCastle.inc index ecae12e4..0af3031f 100644 --- a/data/scripts/cutscene/introCeremony/script_MinisterPothoIntroCastle.inc +++ b/data/scripts/cutscene/introCeremony/script_MinisterPothoIntroCastle.inc @@ -20,23 +20,23 @@ script_08011134: JumpIfNot script_08011134 LoadRoomEntityList gUnk_080F06B0 DoPostScriptAction 0x000b - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 SetEntityPositionRelative 0x01b8, 0x0058 _0807EB44 0x0004 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 _0807EB44 0x0006 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 _0807EB44 0x0004 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 SetEntitySpeed 0x0100 DoPostScriptAction 0x0001 _0807ECC4 0x0010 DoPostScriptAction 0x0000 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0010 Wait 0x001e DoPostScriptAction 0x0010 @@ -44,7 +44,7 @@ script_08011134: SetEntitySpeed 0x0400 SetEntityDirection 0x001c _0807EC1C 0x003c - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 DoPostScriptAction 0x0006 SCRIPT_END .ifdef JP diff --git a/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc b/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc index f17ba3ea..f64d4428 100644 --- a/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc +++ b/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc @@ -11,20 +11,20 @@ SCRIPT_START script_Npc4EMonsters CallWithArg sub_0807FB28, 0x00000003 Wait 0x001e PlaySound SFX_12C - _0807E5F8 0x00800000 - WaitForSomething2 0x01000000 + SetSyncFlag 0x00800000 + WaitForSyncFlagAndClear 0x01000000 _0807E778 0x0004 DoFade7 - WaitFor_2 + WaitForFadeFinish Wait 0x003c PlaySound SFX_SPIRITS_RELEASE PlaySound SFX_1C2 LoadRoomEntityList gUnk_080F0770 - _0807E5F8 0x00000010 - WaitForSomething2 0x00000020 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000020 _0807E778 0x0002 DoFade6 - WaitFor_2 + WaitForFadeFinish CallWithArg DeleteManager36, 0x00000002 _0807F0C8 0x0000, 0x0000 Call sub_0806DC3C @@ -33,21 +33,21 @@ SCRIPT_START script_Npc4EMonsters CallWithArg sub_0807F29C, gUnk_080049F6 _0807F0B4 0x0001 SetEntityPositionRelative 0x01f8, 0x0068 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Wait 0x001e - _0807E5F8 0x00000040 - WaitForSomething2 0x00000008 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000008 + WaitForSyncFlagAndClear 0x00000080 PlaySound SFX_1C3 - _0807E5F8 0x20000000 + SetSyncFlag 0x20000000 Wait 0x0078 CallWithArg sub_0807F29C, 0x00000000 Call sub_0806DC58 - _0807E5F8 0x40000000 - _0807E5F8 0x00000010 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000020 - WaitForSomething2 0x00000200 + SetSyncFlag 0x40000000 + SetSyncFlag 0x00000010 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000020 + WaitForSyncFlagAndClear 0x00000200 MessageFromTargetPos 0x1045, 0x000c WaitUntilTextboxCloses MessageFromTargetPos 0x1046, 0x0000 diff --git a/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc b/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc index 62ab6228..69a6d693 100644 --- a/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc +++ b/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc @@ -1,10 +1,10 @@ @ Intro Ceremony NPC4E Vaati attacking SCRIPT_START script_Npc4EVaatiAttacking Wait 0x003c - _0807E5F8 0x00000100 - WaitForSomething2 0x00000200 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000200 StartPlayerScript script_PlayerProtectingZelda - WaitForSomething2 0x00000400 + WaitForSyncFlagAndClear 0x00000400 MessageFromTargetPos 0x1047, 0x0000 WaitUntilTextboxCloses Call sub_0806DC3C @@ -12,12 +12,12 @@ SCRIPT_START script_Npc4EVaatiAttacking CallWithArg sub_0807F244, 0x0000000d CallWithArg sub_0807F29C, gUnk_080049F6 Wait 0x001e - _0807E5F8 0x00000100 - WaitForSomething2 0x00000200 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000200 CallWithArg sub_0807F29C, 0x00000000 Call sub_0806DC58 Wait 0x003c - _0807E5F8 0x08000000 + SetSyncFlag 0x08000000 PlaySound SFX_125 CallWithArg sub_0807FB28, 0x00000003 Wait 0x000f @@ -25,20 +25,20 @@ SCRIPT_START script_Npc4EVaatiAttacking CallWithArg sub_0807FB28, 0x00000003 CallWithArg DeleteManager36, 0x00000002 _0807F0C8 0x0000, 0x0000 - _0807E5F8 0x00000010 - WaitForSomething2 0x00000020 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000020 StopBgm Wait 0x003c MessageFromTargetPos 0x104a, 0x0000 WaitUntilTextboxCloses - _0807E5F8 0x00000100 - WaitForSomething2 0x00000200 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000200 MessageFromTargetPos 0x1049, 0x0000 WaitUntilTextboxCloses SetEntityPositionRelative 0x01f8, 0x0098 Wait 0x0078 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000200 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000200 Call sub_0804BCDC DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_Object6AMonsterFromChest.inc b/data/scripts/cutscene/introCeremony/script_Object6AMonsterFromChest.inc index 994c88a1..786aa81e 100644 --- a/data/scripts/cutscene/introCeremony/script_Object6AMonsterFromChest.inc +++ b/data/scripts/cutscene/introCeremony/script_Object6AMonsterFromChest.inc @@ -1,6 +1,6 @@ @ Intro Ceremony OBJECT_6A Monster from Chest SCRIPT_START script_Object6AMonsterFromChest - WaitForSomething 0x20000000 + WaitForSyncFlag 0x20000000 Call sub_0809567C SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introCeremony/script_Object6ASwordInChest.inc b/data/scripts/cutscene/introCeremony/script_Object6ASwordInChest.inc index 5ce1fc5e..3b4b91f2 100644 --- a/data/scripts/cutscene/introCeremony/script_Object6ASwordInChest.inc +++ b/data/scripts/cutscene/introCeremony/script_Object6ASwordInChest.inc @@ -3,18 +3,18 @@ SCRIPT_START script_Object6ASwordInChest BeginBlock Call sub_08095330 EndBlock - WaitForSomething2 0x00800000 + WaitForSyncFlagAndClear 0x00800000 _0807EF3C 0x0000, 0x0020 - _0807E5F8 0x01000000 - WaitForSomething2 0x00800000 + SetSyncFlag 0x01000000 + WaitForSyncFlagAndClear 0x00800000 Call sub_08095364 PlaySound SFX_122 Wait 0x003c - _0807E5F8 0x01000000 - WaitForSomething2 0x00800000 + SetSyncFlag 0x01000000 + WaitForSyncFlagAndClear 0x00800000 _0807E930 0x0002 - _0807E5F8 0x01000000 - WaitForSomething2 0x00800000 + SetSyncFlag 0x01000000 + WaitForSyncFlagAndClear 0x00800000 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc b/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc index 95d01756..0d800ec9 100644 --- a/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc @@ -3,8 +3,8 @@ SCRIPT_START script_PlayerAtIntroCeremony SetEntityPositionRelative 0x01a8, 0x0058 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000400 - _0807E610 0x00000002 + SetSyncFlag 0x00000400 + ClearSyncFlag 0x00000002 EndBlock Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc b/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc index 85909eb4..386826af 100644 --- a/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc @@ -12,6 +12,6 @@ SCRIPT_START script_PlayerFainting DoPostScriptAction 0x0011 EndBlock Call sub_0807F2D4 - WaitForSomething 0x80000000 + WaitForSyncFlag 0x80000000 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc b/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc index e9fa7bae..f3d1557d 100644 --- a/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerIntroCastle _0807EDD4 0x01e8, 0x0050 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000400 + SetSyncFlag 0x00000400 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc b/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc index b83227b8..e0c26443 100644 --- a/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc @@ -8,6 +8,6 @@ SCRIPT_START script_PlayerProtectingZelda _0807EDD4 0x01d8, 0x0068 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000400 + SetSyncFlag 0x00000400 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_VaatiDarkMagic.inc b/data/scripts/cutscene/introCeremony/script_VaatiDarkMagic.inc index 7224f273..c00eb537 100644 --- a/data/scripts/cutscene/introCeremony/script_VaatiDarkMagic.inc +++ b/data/scripts/cutscene/introCeremony/script_VaatiDarkMagic.inc @@ -6,7 +6,7 @@ SCRIPT_START script_VaatiDarkMagic Call nullsub_527 Call sub_08094B80 EndBlock - WaitForSomething2 0x08000000 + WaitForSyncFlagAndClear 0x08000000 Call sub_08094B6C _0807EDD4 0x01d8, 0x0078 StartPlayerScript script_PlayerFainting @@ -14,8 +14,8 @@ SCRIPT_START script_VaatiDarkMagic Call sub_08094B80 PlaySound SFX_VO_ZELDA7 PlaySound SFX_1C6 - _0807E5F8 0x10000000 - WaitForSomething2 0x08000000 + SetSyncFlag 0x10000000 + WaitForSyncFlagAndClear 0x08000000 PlaySound SFX_11D DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_VaatiIntroCeremony.inc b/data/scripts/cutscene/introCeremony/script_VaatiIntroCeremony.inc index 0758dc29..2557a4c2 100644 --- a/data/scripts/cutscene/introCeremony/script_VaatiIntroCeremony.inc +++ b/data/scripts/cutscene/introCeremony/script_VaatiIntroCeremony.inc @@ -5,32 +5,32 @@ SCRIPT_START script_VaatiIntroCeremony SetEntitySpeed 0x0100 EndBlock Call sub_0807F338 - WaitForSomething2 0x00000100 + WaitForSyncFlagAndClear 0x00000100 DoPostScriptAction 0x0001 _0807EDD4 0x01f8, 0x00d0 DoPostScriptAction 0x0000 - _0807E5F8 0x00000200 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00000100 _0807EB44 0x0004 DoPostScriptAction 0x001c Call sub_0807F2D4 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000200 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00000100 _0807EB44 0x0000 DoPostScriptAction 0x001c Call sub_0807F2D4 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000200 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00000100 _0807EB44 0x0000 DoPostScriptAction 0x001a Call sub_0807F2D4 DoPostScriptAction 0x0000 - _0807E5F8 0x00000200 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00000100 _0807EB44 0x0000 DoPostScriptAction 0x0014 PlaySound SFX_CHARGING_UP @@ -38,30 +38,30 @@ SCRIPT_START script_VaatiIntroCeremony Wait 0x00f0 DoPostScriptAction 0x0016 PlaySound SFX_1CB - WaitForSomething2 0x10000000 + WaitForSyncFlagAndClear 0x10000000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000200 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00000100 SetEntitySpeed 0x0080 DoPostScriptAction 0x0001 _0807EDD4 0x01d8, 0x00a8 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000200 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00000100 DoPostScriptAction 0x0014 PlaySound SFX_1C4 CallWithArg sub_0809545C, script_VaatiDarkMagic - _0807E5F8 0x00000200 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00000100 Wait 0x003c DoPostScriptAction 0x0016 PlaySound SFX_1C5 - _0807E5F8 0x08000000 - WaitForSomething2 0x10000000 + SetSyncFlag 0x08000000 + WaitForSyncFlagAndClear 0x10000000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000200 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00000100 SetEntitySpeed 0x0100 DoPostScriptAction 0x0001 _0807EDD4 0x01f8, 0x0098 @@ -75,12 +75,12 @@ SCRIPT_START script_VaatiIntroCeremony _0807EB44 0x0004 DoPostScriptAction 0x0000 Wait 0x001e - _0807E5F8 0x00000200 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00000100 Call sub_08066CA4 DoPostScriptAction 0x0008 Wait 0x0078 - _0807E5F8 0x00000200 + SetSyncFlag 0x00000200 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introCeremony/script_ZeldaIntroCastle.inc b/data/scripts/cutscene/introCeremony/script_ZeldaIntroCastle.inc index 9c4bc258..b0554ed0 100644 --- a/data/scripts/cutscene/introCeremony/script_ZeldaIntroCastle.inc +++ b/data/scripts/cutscene/introCeremony/script_ZeldaIntroCastle.inc @@ -6,7 +6,7 @@ SCRIPT_START script_ZeldaIntroCastle Call sub_08066D04 EndBlock Call sub_0807F338 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 Call sub_08066D14 JumpIf script_080111F6 MoveEntityToPlayer @@ -20,28 +20,28 @@ script_08011206: _0807EDD4 0x01f8, 0x0050 _0807EB74 DoPostScriptAction 0x0000 - _0807E5F8 0x00000020 - WaitForSomething2 0x00000010 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0001 _0807EDD4 0x01f8, 0x0020 DoPostScriptAction 0x0008 - _0807E5F8 0x00000020 - WaitForSomething2 0x00000010 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0007 DoPostScriptAction 0x0001 SetEntitySpeed 0x0040 _0807EDD4 0x01e8, 0x0040 DoPostScriptAction 0x0000 - _0807E5F8 0x00000020 - WaitForSomething2 0x00000010 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000010 Call sub_08095810 - _0807E5F8 0x00000020 - WaitForSomething2 0x00000010 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0001 _0807EDD4 0x01d8, 0x0058 DoPostScriptAction 0x0000 - _0807E5F8 0x00000020 - WaitForSomething2 0x00000010 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000010 PlaySound SFX_1C9 DoPostScriptAction 0x0010 Wait 0x0014 @@ -50,7 +50,7 @@ script_08011206: DoPostScriptAction 0x0010 Call sub_0807F2D4 PlaySound SFX_1CA - _0807E5F8 0x00000020 - WaitForSomething2 0x00000010 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_ZeldaMagic.inc b/data/scripts/cutscene/introCeremony/script_ZeldaMagic.inc index b9e3dc17..03506c59 100644 --- a/data/scripts/cutscene/introCeremony/script_ZeldaMagic.inc +++ b/data/scripts/cutscene/introCeremony/script_ZeldaMagic.inc @@ -1,5 +1,5 @@ @ Intro Ceremony OBJECT_6A Zelda shine or something? SCRIPT_START script_ZeldaMagic - WaitForSomething 0x40000000 + WaitForSyncFlag 0x40000000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc b/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc index 85512814..ea3471c4 100644 --- a/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc +++ b/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc @@ -4,22 +4,22 @@ SCRIPT_START script_Npc4EIntroCastle Call sub_0807F9A4 Call sub_0807DF28 StartPlayerScript script_PlayerIntroCastle - WaitForSomething2 0x00000400 + WaitForSyncFlagAndClear 0x00000400 _0807F078 0x0034, 0x0002 MessageFromTargetPos 0x1036, 0x000c WaitUntilTextboxCloses - _0807E5F8 0x00000010 - WaitForSomething2 0x00000020 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000020 MessageFromTargetPos 0x1037, 0x0002 WaitUntilTextboxCloses - _0807E5F8 0x00000010 - WaitForSomething2 0x00000020 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000020 MessageFromTargetPos 0x1038, 0x000c WaitUntilTextboxCloses StopBgm _0807E778 0x0004 DoFade5 - WaitFor_2 + WaitForFadeFinish Call sub_08064180 Call sub_08064180 Call sub_08064180 @@ -29,10 +29,10 @@ SCRIPT_START script_Npc4EIntroCastle Call sub_08064180 Call sub_08064180 LoadRoomEntityList gUnk_080F06E0 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 StartPlayerScript script_PlayerAtIntroCeremony - WaitForSomething2 0x00000400 + WaitForSyncFlagAndClear 0x00000400 SetEntityPositionRelative 0x01f8, 0x0050 _0807F0B4 0x0007 CameraTargetEntity @@ -40,82 +40,82 @@ SCRIPT_START script_Npc4EIntroCastle _0807F0B4 0x0001 _0807E778 0x0001 DoFade4 - _0807E5F8 0x0002a800 - WaitForSomething2 0x00055000 + SetSyncFlag 0x0002a800 + WaitForSyncFlagAndClear 0x00055000 SetEntityPositionRelative 0x01f8, 0x0078 Wait 0x003c - _0807E5F8 0x00800000 - WaitForSomething2 0x01000000 - _0807E5F8 0x0002a800 - WaitForSomething2 0x00055000 + SetSyncFlag 0x00800000 + WaitForSyncFlagAndClear 0x01000000 + SetSyncFlag 0x0002a800 + WaitForSyncFlagAndClear 0x00055000 _0807E8E4_1 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 MessageFromTargetPos 0x1039, 0x000c WaitUntilTextboxCloses PlayBgm BGM_CASTLE_TOURNAMENT _0807E8E4_2 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000010 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000020 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000010 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000020 + WaitForSyncFlagAndClear 0x00000080 Wait 0x012c - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 MessageFromTargetPos 0x103a, 0x000c WaitUntilTextboxCloses SetEntityPositionRelative 0x01f8, 0x01c0 _0807F0B4 0x0004 Wait 0x0078 - _0807E5F8 0x00280000 - WaitForSomething2 0x00500000 - _0807E5F8 0x00000100 + SetSyncFlag 0x00280000 + WaitForSyncFlagAndClear 0x00500000 + SetSyncFlag 0x00000100 SetEntityPositionRelative 0x01f8, 0x0220 SetEntitySpeed 0x0100 _0807EDD4 0x01f8, 0x0098 Wait 0x003c - WaitForSomething2 0x00000200 - _0807E5F8 0x00280000 + WaitForSyncFlagAndClear 0x00000200 + SetSyncFlag 0x00280000 StopBgm PlaySound SFX_9B - _0807E5F8 0x00000100 - WaitForSomething2 0x00000200 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000200 MessageFromTargetPos 0x1043, 0x0000 WaitUntilTextboxCloses PlayBgm BGM_VAATI_THEME - _0807E5F8 0x00000100 - WaitForSomething2 0x00000200 - _0807E5F8 0x0002a800 - WaitForSomething2 0x00055000 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000200 + SetSyncFlag 0x0002a800 + WaitForSyncFlagAndClear 0x00055000 PlaySound SFX_1C7 PlaySound SFX_BUTTON_DEPRESS - _0807E5F8 0x00000100 - _0807E5F8 0x00002800 + SetSyncFlag 0x00000100 + SetSyncFlag 0x00002800 CallWithArg sub_0807FB28, 0x00000003 - WaitForSomething2 0x00000200 - WaitForSomething2 0x00005000 - _0807E5F8 0x00028000 - WaitForSomething2 0x00050000 + WaitForSyncFlagAndClear 0x00000200 + WaitForSyncFlagAndClear 0x00005000 + SetSyncFlag 0x00028000 + WaitForSyncFlagAndClear 0x00050000 MessageFromTargetPos 0x1044, 0x0000 WaitUntilTextboxCloses SetEntityPositionRelative 0x01f8, 0x0098 StopBgm Wait 0x003c PlayBgm BGM_VAATI_REBORN - _0807E5F8 0x00028000 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000200 - WaitForSomething2 0x00050000 + SetSyncFlag 0x00028000 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000200 + WaitForSyncFlagAndClear 0x00050000 CallWithArg sub_0807FB28, 0x00000003 PlaySound SFX_BUTTON_DEPRESS - _0807E5F8 0x00028000 - WaitForSomething2 0x00050000 + SetSyncFlag 0x00028000 + WaitForSyncFlagAndClear 0x00050000 PlaySound SFX_125 CallWithArg sub_0807FB28, 0x00000003 - _0807E5F8 0x08000000 - _0807E5F8 0x00800000 - WaitForSomething2 0x01000000 + SetSyncFlag 0x08000000 + SetSyncFlag 0x00800000 + WaitForSyncFlagAndClear 0x01000000 CallWithArg CreateManager36, 0x00000002 _0807F0C8 0xffff, 0x0000 diff --git a/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc b/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc index db8de660..67df44fd 100644 --- a/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc +++ b/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc @@ -20,9 +20,9 @@ SCRIPT_START script_Npc4EIntroTown Call sub_0807F844 _0807E778 0x0002 DoFade6 - WaitFor_2 + WaitForFadeFinish StartPlayerScript script_PlayerIntro1 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 _0807F0B4 0x0001 SetEntityPositionRelative 0x00c8, 0x0218 Call sub_0807F5C0 @@ -31,60 +31,60 @@ SCRIPT_START script_Npc4EIntroTown _0807F0B4 0x0002 SetEntityPositionRelative 0x00c8, 0x0368 Call sub_0807F5C0 - WaitForSomething2 0x00000001 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000001 + WaitForSyncFlagAndClear 0x00000004 @ First message from Zelda MessageFromTargetPos 0x2501, 0x0000 WaitUntilTextboxCloses - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 @ Zelda ran off. Give control to the player _0807F0B4 0x0004 CameraTargetPlayer Call sub_0807DF50 _0807E878 - _0807E5F8 0x00000010 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000004 _0807E864 Call sub_0807DF28 StartPlayerScript script_PlayerIntro2 - WaitForSomething2 0x00000001 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 MessageFromTargetPos 0x2503, 0x000e WaitUntilTextboxCloses - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 Call sub_0807DF50 _0807E878 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 _0807E864 Call sub_0807DF28 StartPlayerScript script_PlayerIntro3 - WaitForSomething2 0x00000001 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 MessageFromTargetPos 0x2504, 0x000e WaitUntilTextboxCloses - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 Call sub_0807DF50 _0807E878 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 _0807E864 Call sub_0807DF28 StartPlayerScript script_PlayerIntro4 - WaitForSomething2 0x00000001 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 MessageFromTargetPos 0x2505, 0x000e WaitUntilTextboxCloses - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 Call sub_0807DF50 _0807E878 @ Wait for Link at Pina - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 _0807E864 Call sub_0807DF28 Call sub_08063C5C @@ -101,7 +101,7 @@ SCRIPT_START script_Npc4EIntroTown CameraTargetEntity Wait 0x001e Call sub_08063C2C - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 MessageFromTargetPos 0x1022, 0x000e WaitUntilTextboxCloses _0807E8E4_0 @@ -123,8 +123,8 @@ SCRIPT_START script_Npc4EIntroTown Call sub_08063C5C MessageFromTargetPos 0x1026, 0x000e WaitUntilTextboxCloses - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 _0807E8E4_1 Call sub_08063C2C MessageFromTargetPos 0x1027, 0x0000 @@ -144,8 +144,8 @@ SCRIPT_START script_Npc4EIntroTown Call sub_08063C14 Call sub_08094D70 PlaySound SFX_103 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 Call sub_08063C14 Call sub_08094D10 Wait 0x001e @@ -157,7 +157,7 @@ SCRIPT_START script_Npc4EIntroTown MessageFromTargetPos 0x102b, 0x0000 WaitUntilTextboxCloses @ Give the shield to the player - _0807F034 0x000d + GivePlayerItem 0x000d WaitPlayerGetItem Call sub_0806DC3C Call sub_080791BC @@ -176,7 +176,7 @@ SCRIPT_START script_Npc4EIntroTown _0807F0B4 0x0004 CameraTargetPlayer Wait 0x000a - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_08063C44 .ifdef JP SetLocalFlag 0x00ca diff --git a/data/scripts/cutscene/introTown/script_Object69IntroTown.inc b/data/scripts/cutscene/introTown/script_Object69IntroTown.inc index 7ef81598..ff9f8d27 100644 --- a/data/scripts/cutscene/introTown/script_Object69IntroTown.inc +++ b/data/scripts/cutscene/introTown/script_Object69IntroTown.inc @@ -14,7 +14,7 @@ SCRIPT_START script_Object69IntroTown .endif .endif JumpIf script_0800FD50 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 script_0800FD1A: @ Prevent Link from leaving CheckPlayerInRegion 0x00c8, 0x03c0, 0x1040 @@ -38,7 +38,7 @@ script_0800FD1A: MessageFromTargetPos 0x2506, 0x0000 WaitUntilTextboxCloses StartPlayerScript script_PlayerIntroTown - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 _0807E878 Jump script_0800FD1A script_0800FD50: @@ -50,7 +50,7 @@ script_0800FD5C: MessageFromTargetPos 0x106c, 0x0000 WaitUntilTextboxCloses StartPlayerScript script_PlayerIntroTown - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 _0807E878 Jump script_0800FD50 .2byte 0x0000 diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro1.inc b/data/scripts/cutscene/introTown/script_PlayerIntro1.inc index ba36e8ab..4732932e 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro1.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro1.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerIntro1 SetEntityPositionRelative 0x00d8, 0x0398 _0807EB44 0x0006 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro2.inc b/data/scripts/cutscene/introTown/script_PlayerIntro2.inc index 6ce812b6..94540b8a 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro2.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro2.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerIntro2 _0807EDD4 0x00a0, 0x0278 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro3.inc b/data/scripts/cutscene/introTown/script_PlayerIntro3.inc index cccb6450..4f48ea8c 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro3.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro3.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerIntro3 _0807EDD4 0x0078, 0x01c0 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro4.inc b/data/scripts/cutscene/introTown/script_PlayerIntro4.inc index 76ca7bd4..9d304aea 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro4.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro4.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerIntro4 _0807EDD4 0x0108, 0x01c8 _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro5.inc b/data/scripts/cutscene/introTown/script_PlayerIntro5.inc index 721060d3..ce887cd2 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro5.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro5.inc @@ -13,6 +13,6 @@ script_0800FB10: _0807EDD4 0x00e8, 0x0270 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc b/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc index e4ba634a..a15642df 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerIntroTown _0807EC64 0x0020 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introTown/script_ZeldaIntroTown.inc b/data/scripts/cutscene/introTown/script_ZeldaIntroTown.inc index 1b3fbac7..6cda5954 100644 --- a/data/scripts/cutscene/introTown/script_ZeldaIntroTown.inc +++ b/data/scripts/cutscene/introTown/script_ZeldaIntroTown.inc @@ -6,7 +6,7 @@ SCRIPT_START script_ZeldaIntroTown SetEntitySpeed 0x0080 Call sub_08066D04 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 Call sub_08066D14 JumpIf script_0800FB6C MoveEntityToPlayer @@ -15,26 +15,26 @@ script_0800FB6C: SetEntityPositionRelative 0x00b8, 0x0398 _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0200 _0807EDD4 0x00b8, 0x0318 SetEntityPositionRelative 0x00a0, 0x0260 _0807EB44 0x0000 DoPostScriptAction 0x0001 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 DoPostScriptAction 0x000a _0807E9D4 script_0800FBAE: _0807E30C JumpIfNot script_0800FBAE DoPostScriptAction 0x000b - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0200 _0807EDD4 0x00a0, 0x0268 _0807EDD4 0x0070, 0x0268 @@ -42,41 +42,41 @@ script_0800FBAE: SetEntityPositionRelative 0x0078, 0x01a8 _0807EB44 0x0000 DoPostScriptAction 0x0001 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 DoPostScriptAction 0x000a script_0800FC06: _0807E30C JumpIfNot script_0800FC06 DoPostScriptAction 0x000b - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0200 _0807EDD4 0x00f8, 0x01a8 SetEntityPositionRelative 0x0118, 0x01c8 _0807EB44 0x0002 DoPostScriptAction 0x0001 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 DoPostScriptAction 0x000a script_0800FC52: _0807E30C JumpIfNot script_0800FC52 DoPostScriptAction 0x000b - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 _0807EB44 0x0006 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0200 _0807EDD4 0x0118, 0x0260 SetEntityPositionRelative 0x00f8, 0x0270 _0807EB44 0x0000 DoPostScriptAction 0x0001 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 DoPostScriptAction 0x000a script_0800FC9E: @ Wait at Pina for Link @@ -85,23 +85,23 @@ script_0800FC9E: DoPostScriptAction 0x000b _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 DoPostScriptAction 0x0004 - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x000d SetEntitySpeed 0x0040 _0807EC94 0x0020 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x000c SetEntitySpeed 0x0040 _0807ECF4 0x0020 _0807EB44 0x0006 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 Call sub_08066D4C DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc b/data/scripts/cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc index 59b5403d..2f96db73 100644 --- a/data/scripts/cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc +++ b/data/scripts/cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc @@ -7,20 +7,20 @@ SCRIPT_START script_HurdyGurdyManFirstKinstone EndBlock Call sub_0807F348 _0807EB44 0x0002 - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0007 _0807EDD4 0x01b8, 0x0328 - _0807E5F8 0x00000040 + SetSyncFlag 0x00000040 _0807EDD4 0x01f8, 0x0328 _0807EB44 0x0004 _0807E930 0x0008 _0807E8E4_0 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000002 Call sub_0806E440 Wait 0x0078 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000002 script_0800F1E6: EndBlock BeginBlock @@ -36,7 +36,7 @@ script_0800F1E6: MessageFromTargetPos 0x1206, 0x000c WaitUntilTextboxCloses StartPlayerScript script_PlayerAtHurdyGurdyManFirstKinstone1 - WaitForSomething2 0x00000400 + WaitForSyncFlagAndClear 0x00000400 _0807E878 Jump script_0800F1E6 script_0800F22A: @@ -52,7 +52,7 @@ script_0800F22A: MessageFromTargetPos 0x1206, 0x000c WaitUntilTextboxCloses StartPlayerScript script_PlayerAtHurdyGurdyManFirstKinstone2 - WaitForSomething2 0x00000400 + WaitForSyncFlagAndClear 0x00000400 _0807E878 Jump script_0800F1E6 script_0800F26A: @@ -68,7 +68,7 @@ script_0800F26A: MessageFromTargetPos 0x1206, 0x000c WaitUntilTextboxCloses StartPlayerScript script_PlayerAtHurdyGurdyManFirstKinstone3 - WaitForSomething2 0x00000400 + WaitForSyncFlagAndClear 0x00000400 _0807E878 Jump script_0800F1E6 script_0800F2AA: @@ -84,7 +84,7 @@ script_0800F2AA: MessageFromTargetPos 0x1206, 0x000c WaitUntilTextboxCloses StartPlayerScript script_PlayerAtHurdyGurdyManFirstKinstone4 - WaitForSomething2 0x00000400 + WaitForSyncFlagAndClear 0x00000400 _0807E878 Jump script_0800F1E6 script_0800F2EA: @@ -104,11 +104,11 @@ script_0800F2EA: Jump script_0800F1E6 script_0800F314: EndBlock - _0807E5F8 0x00000040 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0100 _0807EB44 0x0002 _0807EEF4 0x00c0, 0x0000 - _0807E5F8 0x00000040 + SetSyncFlag 0x00000040 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/kinstones/script_KidKinstone1.inc b/data/scripts/cutscene/kinstones/script_KidKinstone1.inc index 45b1ce72..21c9883d 100644 --- a/data/scripts/cutscene/kinstones/script_KidKinstone1.inc +++ b/data/scripts/cutscene/kinstones/script_KidKinstone1.inc @@ -9,7 +9,7 @@ SCRIPT_START script_KidKinstone1 DoPostScriptAction 0x000b EndBlock Call sub_0807F348 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0007 _0807EDD4 0x01f8, 0x0318 _0807EDD4 0x0208, 0x0318 @@ -17,7 +17,7 @@ SCRIPT_START script_KidKinstone1 _0807EB44 0x0006 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a - _0807E5F8 0x00000080 + SetSyncFlag 0x00000080 script_0800F3EA: EndBlock BeginBlock @@ -30,7 +30,7 @@ script_0800F3EA: WaitUntilTextboxCloses _0807E878 script_0800F402: - TestBit 0x00000004 + CheckSyncFlagAndClear 0x00000004 JumpIfNot script_0800F3EA EndBlock DoPostScriptAction 0x000b @@ -38,6 +38,6 @@ script_0800F402: SetEntitySpeed 0x0100 _0807EC64 0x0010 _0807EDD4 0x0288, 0x0328 - _0807E5F8 0x00000080 + SetSyncFlag 0x00000080 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/kinstones/script_KidKinstone2.inc b/data/scripts/cutscene/kinstones/script_KidKinstone2.inc index c197dfec..d3cdd400 100644 --- a/data/scripts/cutscene/kinstones/script_KidKinstone2.inc +++ b/data/scripts/cutscene/kinstones/script_KidKinstone2.inc @@ -9,14 +9,14 @@ SCRIPT_START script_KidKinstone2 DoPostScriptAction 0x000b EndBlock Call sub_0807F348 - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 DoPostScriptAction 0x0007 _0807EDD4 0x01d8, 0x0328 _0807EDD4 0x01f8, 0x0348 _0807EB44 0x0000 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a - _0807E5F8 0x00000100 + SetSyncFlag 0x00000100 script_0800F478: EndBlock BeginBlock @@ -29,7 +29,7 @@ script_0800F478: WaitUntilTextboxCloses _0807E878 script_0800F490: - TestBit 0x00000008 + CheckSyncFlagAndClear 0x00000008 JumpIfNot script_0800F478 EndBlock DoPostScriptAction 0x000b @@ -38,7 +38,7 @@ script_0800F490: _0807EC94 0x0010 _0807EC64 0x0020 _0807EDD4 0x0288, 0x0328 - _0807E5F8 0x00000100 + SetSyncFlag 0x00000100 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_KidKinstone3.inc b/data/scripts/cutscene/kinstones/script_KidKinstone3.inc index 1b55066e..1039e878 100644 --- a/data/scripts/cutscene/kinstones/script_KidKinstone3.inc +++ b/data/scripts/cutscene/kinstones/script_KidKinstone3.inc @@ -9,14 +9,14 @@ SCRIPT_START script_KidKinstone3 DoPostScriptAction 0x000b EndBlock Call sub_0807F348 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0007 _0807EDD4 0x01c8, 0x0328 _0807EDD4 0x01e8, 0x0338 _0807EB44 0x0002 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a - _0807E5F8 0x00000200 + SetSyncFlag 0x00000200 script_0800F50C: EndBlock BeginBlock @@ -29,7 +29,7 @@ script_0800F50C: WaitUntilTextboxCloses _0807E878 script_0800F524: - TestBit 0x00000010 + CheckSyncFlagAndClear 0x00000010 JumpIfNot script_0800F50C EndBlock DoPostScriptAction 0x000b @@ -37,7 +37,7 @@ script_0800F524: SetEntitySpeed 0x0100 _0807EC64 0x0010 _0807EDD4 0x0288, 0x0328 - _0807E5F8 0x00000200 + SetSyncFlag 0x00000200 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc b/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc index 33bd8b48..80a76584 100644 --- a/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc +++ b/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc @@ -12,35 +12,35 @@ script_0800F09A: Call sub_0807DF28 LoadRoomEntityList gUnk_080EE8AC StartPlayerScript script_PlayerAtFirstKinstone - WaitForSomething2 0x00000001 - _0807E5F8 0x0000001e - WaitForSomething2 0x00000040 + WaitForSyncFlagAndClear 0x00000001 + SetSyncFlag 0x0000001e + WaitForSyncFlagAndClear 0x00000040 MessageFromTargetPos 0x1201, 0x000c WaitUntilTextboxCloses - WaitForSomething2 0x000003c0 + WaitForSyncFlagAndClear 0x000003c0 _0807E8E4_0 MessageFromTargetPos 0x1202, 0x000c WaitUntilTextboxCloses - _0807F034 0x0067 + GivePlayerItem 0x0067 WaitPlayerGetItem _0807E8E4_0 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000040 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000040 MessageFromTargetPos 0x1203, 0x000c WaitUntilTextboxCloses - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_0807DF50 _0807E878 - WaitForSomething2 0x00000040 + WaitForSyncFlagAndClear 0x00000040 script_0800F11A: CheckKinstoneFused 0x0032 JumpIfNot script_0800F11A _0807E864 Call sub_0807DF28 - _0807E5F8 0x0000001e + SetSyncFlag 0x0000001e Wait 0x003c _0807E8E4_1 - WaitForSomething2 0x000003c0 + WaitForSyncFlagAndClear 0x000003c0 Call sub_0807DF50 _0807E878 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc b/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc index 40305c72..d039a201 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc @@ -11,6 +11,6 @@ SCRIPT_START script_PlayerAtFirstKinstone _0807EDD4 0x01f8, 0x0338 _0807EB44 0x0006 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc index cc32b8ed..941d969d 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc @@ -2,7 +2,7 @@ SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone1 SetEntitySpeed 0x0100 _0807EC94 0x0008 - _0807E5F8 0x00000400 + SetSyncFlag 0x00000400 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc index a8d17ccd..8bcc7ac1 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc @@ -2,7 +2,7 @@ SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone2 SetEntitySpeed 0x0100 _0807ECF4 0x0008 - _0807E5F8 0x00000400 + SetSyncFlag 0x00000400 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc index e951333f..a86cda57 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc @@ -2,7 +2,7 @@ SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone3 SetEntitySpeed 0x0100 _0807ECC4 0x0008 - _0807E5F8 0x00000400 + SetSyncFlag 0x00000400 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc index db5813b5..01316111 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc @@ -2,7 +2,7 @@ SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone4 SetEntitySpeed 0x0100 _0807EC64 0x0008 - _0807E5F8 0x00000400 + SetSyncFlag 0x00000400 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/minishVillage/script_ForestMinish5.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish5.inc index 15ae2605..c1d7b3bb 100644 --- a/data/scripts/cutscene/minishVillage/script_ForestMinish5.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish5.inc @@ -7,29 +7,29 @@ SCRIPT_START script_ForestMinish5 DoPostScriptAction 0x000f Call sub_0807F338 EndBlock - WaitForSomething2 0x00000200 + WaitForSyncFlagAndClear 0x00000200 DoPostScriptAction 0x0007 _0807EDD4 0x0208, 0x0308 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000400 - WaitForSomething2 0x00000200 + SetSyncFlag 0x00000400 + WaitForSyncFlagAndClear 0x00000200 PlaySound SFX_PLY_JUMP _0807EF3C 0x0180, 0x0030 PlaySound SFX_PLY_JUMP _0807EF3C 0x0180, 0x0030 - _0807E5F8 0x00000400 - WaitForSomething2 0x00000200 + SetSyncFlag 0x00000400 + WaitForSyncFlagAndClear 0x00000200 SetEntitySpeed 0x0200 DoPostScriptAction 0x000f _0807EDD4 0x0208, 0x0328 DoPostScriptAction 0x0000 - _0807E5F8 0x00000400 - WaitForSomething2 0x00000200 + SetSyncFlag 0x00000400 + WaitForSyncFlagAndClear 0x00000200 SetEntitySpeed 0x0300 DoPostScriptAction 0x000f _0807EDD4 0x0208, 0x02b0 - _0807E5F8 0x00000400 + SetSyncFlag 0x00000400 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/minishVillage/script_ForestMinish6.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish6.inc index 6fe0af32..06076fd2 100644 --- a/data/scripts/cutscene/minishVillage/script_ForestMinish6.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish6.inc @@ -7,25 +7,25 @@ SCRIPT_START script_ForestMinish6 DoPostScriptAction 0x000f Call sub_0807F338 EndBlock - WaitForSomething2 0x00000800 + WaitForSyncFlagAndClear 0x00000800 DoPostScriptAction 0x0007 _0807EB44 0x0002 DoPostScriptAction 0x0001 _0807EDD4 0x01a8, 0x0330 _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00001000 - WaitForSomething2 0x00000800 + SetSyncFlag 0x00001000 + WaitForSyncFlagAndClear 0x00000800 SetEntitySpeed 0x0200 DoPostScriptAction 0x000f _0807EDD4 0x01f8, 0x0348 DoPostScriptAction 0x0000 - _0807E5F8 0x00001000 - WaitForSomething2 0x00000800 + SetSyncFlag 0x00001000 + WaitForSyncFlagAndClear 0x00000800 SetEntitySpeed 0x0300 DoPostScriptAction 0x000f _0807EDD4 0x0178, 0x0328 - _0807E5F8 0x00001000 + SetSyncFlag 0x00001000 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/minishVillage/script_ForestMinish7.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish7.inc index 63c90ea4..4e862a77 100644 --- a/data/scripts/cutscene/minishVillage/script_ForestMinish7.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish7.inc @@ -7,29 +7,29 @@ SCRIPT_START script_ForestMinish7 DoPostScriptAction 0x000f Call sub_0807F338 EndBlock - WaitForSomething2 0x00002000 + WaitForSyncFlagAndClear 0x00002000 DoPostScriptAction 0x0007 _0807EDD4 0x0258, 0x0330 _0807EB44 0x0006 DoPostScriptAction 0x0000 - _0807E5F8 0x00004000 - WaitForSomething2 0x00002000 + SetSyncFlag 0x00004000 + WaitForSyncFlagAndClear 0x00002000 SetEntitySpeed 0x0200 DoPostScriptAction 0x000f _0807EDD4 0x0218, 0x0340 DoPostScriptAction 0x0000 - _0807E5F8 0x00004000 - WaitForSomething2 0x00002000 + SetSyncFlag 0x00004000 + WaitForSyncFlagAndClear 0x00002000 PlaySound SFX_PLY_JUMP _0807EF3C 0x0180, 0x0030 PlaySound SFX_PLY_JUMP _0807EF3C 0x0180, 0x0030 - _0807E5F8 0x00004000 - WaitForSomething2 0x00002000 + SetSyncFlag 0x00004000 + WaitForSyncFlagAndClear 0x00002000 SetEntitySpeed 0x0300 DoPostScriptAction 0x000f _0807EDD4 0x0288, 0x02d8 - _0807E5F8 0x00004000 + SetSyncFlag 0x00004000 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/minishVillage/script_ForestMinish8.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish8.inc index 738c4983..945415dc 100644 --- a/data/scripts/cutscene/minishVillage/script_ForestMinish8.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish8.inc @@ -7,29 +7,29 @@ SCRIPT_START script_ForestMinish8 DoPostScriptAction 0x000f Call sub_0807F338 EndBlock - WaitForSomething2 0x00008000 + WaitForSyncFlagAndClear 0x00008000 DoPostScriptAction 0x0007 _0807EDD4 0x01b8, 0x0320 _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00010000 - WaitForSomething2 0x00008000 + SetSyncFlag 0x00010000 + WaitForSyncFlagAndClear 0x00008000 SetEntitySpeed 0x0200 DoPostScriptAction 0x000f _0807EDD4 0x01f8, 0x0330 DoPostScriptAction 0x0000 - _0807E5F8 0x00010000 - WaitForSomething2 0x00008000 + SetSyncFlag 0x00010000 + WaitForSyncFlagAndClear 0x00008000 PlaySound SFX_PLY_JUMP _0807EF3C 0x0180, 0x0030 PlaySound SFX_PLY_JUMP _0807EF3C 0x0180, 0x0030 - _0807E5F8 0x00010000 - WaitForSomething2 0x00008000 + SetSyncFlag 0x00010000 + WaitForSyncFlagAndClear 0x00008000 SetEntitySpeed 0x0300 DoPostScriptAction 0x000f _0807EDD4 0x0188, 0x02d8 - _0807E5F8 0x00010000 + SetSyncFlag 0x00010000 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/minishVillage/script_ForestMinish9.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish9.inc index 2c974e25..4b350a06 100644 --- a/data/scripts/cutscene/minishVillage/script_ForestMinish9.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish9.inc @@ -7,23 +7,23 @@ SCRIPT_START script_ForestMinish9 DoPostScriptAction 0x000f Call sub_0807F338 EndBlock - WaitForSomething2 0x00020000 + WaitForSyncFlagAndClear 0x00020000 DoPostScriptAction 0x0007 _0807EDD4 0x0268, 0x0338 _0807EB44 0x0006 DoPostScriptAction 0x0000 - _0807E5F8 0x00040000 - WaitForSomething2 0x00020000 + SetSyncFlag 0x00040000 + WaitForSyncFlagAndClear 0x00020000 SetEntitySpeed 0x0200 DoPostScriptAction 0x000f _0807EDD4 0x0218, 0x0350 DoPostScriptAction 0x0000 - _0807E5F8 0x00040000 - WaitForSomething2 0x00020000 + SetSyncFlag 0x00040000 + WaitForSyncFlagAndClear 0x00020000 SetEntitySpeed 0x0300 DoPostScriptAction 0x000f _0807EDD4 0x02a8, 0x0328 - _0807E5F8 0x00040000 + SetSyncFlag 0x00040000 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/minishVillage/script_Object69VillageIntro.inc b/data/scripts/cutscene/minishVillage/script_Object69VillageIntro.inc index 81567508..6419dba0 100644 --- a/data/scripts/cutscene/minishVillage/script_Object69VillageIntro.inc +++ b/data/scripts/cutscene/minishVillage/script_Object69VillageIntro.inc @@ -11,68 +11,68 @@ script_0800C928: Call sub_0807F9A4 Call sub_0807DF28 StartPlayerScript script_PlayerAtVillageIntro - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 Wait 0x003c _0807EB28 0x1125 WaitUntilTextboxCloses - _0807E5F8 0x00000800 + SetSyncFlag 0x00000800 _0807E8E4_3 Wait 0x003c - _0807E5F8 0x00000200 + SetSyncFlag 0x00000200 _0807E8E4_0 Wait 0x001e - _0807E5F8 0x00002000 + SetSyncFlag 0x00002000 _0807E8E4_1 Wait 0x0014 - _0807E5F8 0x00020000 + SetSyncFlag 0x00020000 _0807E8E4_1 Wait 0x000a - _0807E5F8 0x00008000 + SetSyncFlag 0x00008000 _0807E8E4_3 Wait 0x001e - WaitForSomething2 0x00000400 - WaitForSomething2 0x00001000 - WaitForSomething2 0x00004000 - WaitForSomething2 0x00010000 - WaitForSomething2 0x00040000 + WaitForSyncFlagAndClear 0x00000400 + WaitForSyncFlagAndClear 0x00001000 + WaitForSyncFlagAndClear 0x00004000 + WaitForSyncFlagAndClear 0x00010000 + WaitForSyncFlagAndClear 0x00040000 _0807E8E4_0 Wait 0x003c - _0807E5F8 0x00000200 - WaitForSomething2 0x00000400 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00000400 _0807E8E4_0 MessageFromTarget 0x1126 Call sub_0807F40C WaitUntilTextboxCloses - _0807E5F8 0x00000200 - _0807E5F8 0x00000800 - _0807E5F8 0x00002000 - _0807E5F8 0x00008000 - _0807E5F8 0x00020000 - WaitForSomething2 0x00000400 - WaitForSomething2 0x00001000 - WaitForSomething2 0x00004000 - WaitForSomething2 0x00010000 - WaitForSomething2 0x00040000 - _0807E5F8 0x00008000 - WaitForSomething2 0x00010000 + SetSyncFlag 0x00000200 + SetSyncFlag 0x00000800 + SetSyncFlag 0x00002000 + SetSyncFlag 0x00008000 + SetSyncFlag 0x00020000 + WaitForSyncFlagAndClear 0x00000400 + WaitForSyncFlagAndClear 0x00001000 + WaitForSyncFlagAndClear 0x00004000 + WaitForSyncFlagAndClear 0x00010000 + WaitForSyncFlagAndClear 0x00040000 + SetSyncFlag 0x00008000 + WaitForSyncFlagAndClear 0x00010000 _0807E8E4_3 MessageFromTarget 0x1127 WaitUntilTextboxCloses - _0807E5F8 0x00002000 - WaitForSomething2 0x00004000 + SetSyncFlag 0x00002000 + WaitForSyncFlagAndClear 0x00004000 _0807E8E4_1 MessageFromTarget 0x1128 WaitUntilTextboxCloses - _0807E5F8 0x00000200 - _0807E5F8 0x00000800 - _0807E5F8 0x00002000 - _0807E5F8 0x00008000 - _0807E5F8 0x00020000 - WaitForSomething2 0x00000400 - WaitForSomething2 0x00001000 - WaitForSomething2 0x00004000 - WaitForSomething2 0x00010000 - WaitForSomething2 0x00040000 + SetSyncFlag 0x00000200 + SetSyncFlag 0x00000800 + SetSyncFlag 0x00002000 + SetSyncFlag 0x00008000 + SetSyncFlag 0x00020000 + WaitForSyncFlagAndClear 0x00000400 + WaitForSyncFlagAndClear 0x00001000 + WaitForSyncFlagAndClear 0x00004000 + WaitForSyncFlagAndClear 0x00010000 + WaitForSyncFlagAndClear 0x00040000 _0807E8E4_0 _0807EB28 0x1129 WaitUntilTextboxCloses diff --git a/data/scripts/cutscene/minishVillage/script_PlayerAtVillageIntro.inc b/data/scripts/cutscene/minishVillage/script_PlayerAtVillageIntro.inc index 9ad9b910..81855968 100644 --- a/data/scripts/cutscene/minishVillage/script_PlayerAtVillageIntro.inc +++ b/data/scripts/cutscene/minishVillage/script_PlayerAtVillageIntro.inc @@ -8,7 +8,7 @@ SCRIPT_START script_PlayerAtVillageIntro SetEntitySpeed 0x0080 _0807EDD4 0x0208, 0x0340 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/originStory/script_EzloCapExplainingOriginStory.inc b/data/scripts/cutscene/originStory/script_EzloCapExplainingOriginStory.inc index ba131031..5931fc5e 100644 --- a/data/scripts/cutscene/originStory/script_EzloCapExplainingOriginStory.inc +++ b/data/scripts/cutscene/originStory/script_EzloCapExplainingOriginStory.inc @@ -6,7 +6,7 @@ SCRIPT_START script_EzloCapExplainingOriginStory EndBlock _0807E930 0x001f Call sub_0806D944 - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 _0807E930 0x0010 MessageFromTargetPos 0x1314, 0x000c WaitUntilTextboxCloses @@ -20,6 +20,6 @@ script_080153C2: Call sub_0806D9A4 DoPostScriptAction 0x0008 Wait 0x0078 - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_MinishEzlo.inc b/data/scripts/cutscene/originStory/script_MinishEzlo.inc index cf2b0806..bd1ee7c1 100644 --- a/data/scripts/cutscene/originStory/script_MinishEzlo.inc +++ b/data/scripts/cutscene/originStory/script_MinishEzlo.inc @@ -7,19 +7,19 @@ SCRIPT_START script_MinishEzlo Call sub_0807F338 EndBlock CallWithArg sub_0806AF60, 0x00000000 - WaitForSomething2 0x00008000 + WaitForSyncFlagAndClear 0x00008000 CallWithArg sub_0806AF60, 0x00000004 _0807EDD4 0x0078, 0x00b8 _0807EB44 0x0000 CallWithArg sub_0806AF60, 0x00000000 - _0807E5F8 0x00010000 - WaitForSomething2 0x00008000 + SetSyncFlag 0x00010000 + WaitForSyncFlagAndClear 0x00008000 DoPostScriptAction 0x000d _0807EB44 0x0000 CallWithArg sub_0806AF60, 0x00000004 _0807EDD4 0x0078, 0x00c8 - _0807E5F8 0x00010000 - WaitForSomething2 0x00008000 + SetSyncFlag 0x00010000 + WaitForSyncFlagAndClear 0x00008000 _0807EB44 0x0000 CallWithArg sub_0806AF60, 0x00000000 DoPostScriptAction 0x0010 @@ -31,11 +31,11 @@ SCRIPT_START script_MinishEzlo CallWithArg sub_0807FB28, 0x00000003 Wait 0x000a DoPostScriptAction 0x0010 - _0807E5F8 0x00010000 - WaitForSomething2 0x00008000 + SetSyncFlag 0x00010000 + WaitForSyncFlagAndClear 0x00008000 _0807E930 0x000d Call sub_0807F2D4 - _0807E5F8 0x00010000 + SetSyncFlag 0x00010000 Wait 0x003c DoPostScriptAction 0x0005 Wait 0x003c diff --git a/data/scripts/cutscene/originStory/script_Object69CameraTarget.inc b/data/scripts/cutscene/originStory/script_Object69CameraTarget.inc index aa254ab2..c505a57d 100644 --- a/data/scripts/cutscene/originStory/script_Object69CameraTarget.inc +++ b/data/scripts/cutscene/originStory/script_Object69CameraTarget.inc @@ -1,27 +1,27 @@ @ Ezlo Cutscene OBJECT_69 Camera Target? SCRIPT_START script_Object69CameraTarget - _0807E5F8 0x00000800 - WaitForSomething2 0x00001000 + SetSyncFlag 0x00000800 + WaitForSyncFlagAndClear 0x00001000 PlaySound SFX_125 CallWithArg sub_0807FB28, 0x00000003 - _0807E5F8 0x00048000 - WaitForSomething2 0x00090000 + SetSyncFlag 0x00048000 + WaitForSyncFlagAndClear 0x00090000 MessageFromTargetPos 0x1311, 0x0002 WaitUntilTextboxCloses - _0807E5F8 0x00008000 - WaitForSomething2 0x00010000 - _0807E5F8 0x00048000 - WaitForSomething2 0x00010000 + SetSyncFlag 0x00008000 + WaitForSyncFlagAndClear 0x00010000 + SetSyncFlag 0x00048000 + WaitForSyncFlagAndClear 0x00010000 CallWithArg DeleteManager36, 0x00000001 _0807F0C8 0x0000, 0x0000 MessageFromTargetPos 0x1312, 0x000c WaitUntilTextboxCloses - _0807E5F8 0x00000800 - WaitForSomething2 0x00001000 + SetSyncFlag 0x00000800 + WaitForSyncFlagAndClear 0x00001000 StopBgm _0807E778 0x0004 DoFade5 - WaitFor_2 + WaitForFadeFinish SetRoomFlag 0x0001 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_Object69MinishVaati.inc b/data/scripts/cutscene/originStory/script_Object69MinishVaati.inc index 667db5fc..2ad51bff 100644 --- a/data/scripts/cutscene/originStory/script_Object69MinishVaati.inc +++ b/data/scripts/cutscene/originStory/script_Object69MinishVaati.inc @@ -8,22 +8,22 @@ SCRIPT_START script_Object69MinishVaati PlayBgm BGM_EZLO_STORY _0807E778 0x0004 DoFade4 - WaitFor_2 + WaitForFadeFinish Wait 0x003c - _0807E5F8 0x00000080 - WaitForSomething2 0x00000100 - _0807E5F8 0x00000800 - WaitForSomething2 0x00001000 - _0807E5F8 0x00000880 - WaitForSomething2 0x00001100 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000100 + SetSyncFlag 0x00000800 + WaitForSyncFlagAndClear 0x00001000 + SetSyncFlag 0x00000880 + WaitForSyncFlagAndClear 0x00001100 _0807F0B4 0x0004 SetEntityPositionRelative 0x0078, 0x0090 MessageFromTargetPos 0x1330, 0x0002 WaitUntilTextboxCloses - _0807E5F8 0x00008000 - WaitForSomething2 0x00010000 - _0807E5F8 0x00000880 - WaitForSomething2 0x00001000 + SetSyncFlag 0x00008000 + WaitForSyncFlagAndClear 0x00010000 + SetSyncFlag 0x00000880 + WaitForSyncFlagAndClear 0x00001000 Wait 0x003c MessageFromTargetPos 0x130d, 0x0002 WaitUntilTextboxCloses diff --git a/data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc b/data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc index 6ed25d62..b1f37aad 100644 --- a/data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc +++ b/data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc @@ -14,15 +14,15 @@ script_08014FCC: _0807F0B4 0x0001 CameraTargetEntity StartPlayerScript script_PlayerAtVaatisAppearance - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 MessageFromTargetPos 0x1301, 0x0002 WaitUntilTextboxCloses Call sub_0807F3F8 Wait 0x003c - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 PlayBgm BGM_VAATI_THEME _0807EB28 0x1302 WaitUntilTextboxCloses @@ -32,8 +32,8 @@ script_08014FCC: WaitUntilTextboxCloses MessageFromTargetPos 0x1305, 0x0002 WaitUntilTextboxCloses - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 _0807EB28 0x1306 WaitUntilTextboxCloses StopBgm @@ -41,7 +41,7 @@ script_08014FCC: CameraTargetEntity _0807F0B4 0x0003 SetEntityPositionRelative 0x01f8, 0x0148 - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Call sub_0804F6A8 Wait 0x0004 Call sub_0804F808 @@ -64,7 +64,7 @@ script_08014FCC: Call sub_0804F8E0 PlaySound SFX_10B Wait 0x003c - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 PlaySound SFX_1B0 Call sub_0804F79C Wait 0x000a @@ -81,7 +81,7 @@ script_08015104: Call sub_0807DF28 StopBgm StartPlayerScript script_PlayerDefeatedMoblins - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Wait 0x003c Call sub_0804F6A8 Wait 0x0004 @@ -126,7 +126,7 @@ script_08015104: CameraTargetPlayer _0807E778 0x0004 _0807E80C 0x00000000 - WaitFor_2 + WaitForFadeFinish Call sub_08053B3C BeginBlock _0807E864 @@ -139,13 +139,13 @@ script_08015104: _0807E80C 0x00000000 EndBlock StartPlayerScript script_PlayerSeenOriginStory - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 LoadRoomEntityList gUnk_080F7CB0 _0807E778 0x0004 _0807E800 0x00000000 - WaitFor_2 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000010 + WaitForFadeFinish + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000010 BeginBlock _0807E8E4_2 _0807EB28 0x1315 diff --git a/data/scripts/cutscene/originStory/script_Object6ADarkMagic.inc b/data/scripts/cutscene/originStory/script_Object6ADarkMagic.inc index 655d8258..8b914690 100644 --- a/data/scripts/cutscene/originStory/script_Object6ADarkMagic.inc +++ b/data/scripts/cutscene/originStory/script_Object6ADarkMagic.inc @@ -11,11 +11,11 @@ SCRIPT_START script_Object6ADarkMagic _0807EDD4 0x0078, 0x00b8 PlaySound SFX_1C6 Call sub_08094B80 - _0807E5F8 0x00020000 + SetSyncFlag 0x00020000 SetEntitySpeed 0x0080 - WaitForSomething2 0x00040000 + WaitForSyncFlagAndClear 0x00040000 _0807EDD4 0x0078, 0x00c8 - _0807E5F8 0x00080000 - WaitForSomething2 0x00040000 + SetSyncFlag 0x00080000 + WaitForSyncFlagAndClear 0x00040000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_Object6AMinishCap.inc b/data/scripts/cutscene/originStory/script_Object6AMinishCap.inc index 56f0f57a..93cafa90 100644 --- a/data/scripts/cutscene/originStory/script_Object6AMinishCap.inc +++ b/data/scripts/cutscene/originStory/script_Object6AMinishCap.inc @@ -5,17 +5,17 @@ SCRIPT_START script_Object6AMinishCap SetEntitySpeed 0x0040 Call sub_08094B80 EndBlock - WaitForSomething2 0x00000080 + WaitForSyncFlagAndClear 0x00000080 CallWithArg CreateManager36, 0x00000003 Call sub_08094B0C _0807EDD4 0x0078, 0x0068 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000080 _0807EF3C 0xff80, 0x0000 CallWithArg DeleteManager36, 0x00000003 Wait 0x003c - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000080 _0807E930 0x0001 Call sub_0807F2D4 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc b/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc index 668b0930..39c0de0c 100644 --- a/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc +++ b/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerAtVaatisAppearance _0807EDD4 0x01f8, 0x00b8 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc b/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc index 21b9fb9d..76d0f7dc 100644 --- a/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc +++ b/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerDefeatedMoblins _0807EDD4 0x01f8, 0x0148 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc b/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc index 15faade4..0445fe14 100644 --- a/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc +++ b/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerSeenOriginStory EndBlock _0807EB44 0x0006 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc b/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc index a3c96b65..4f30a21d 100644 --- a/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc +++ b/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc @@ -9,7 +9,7 @@ SCRIPT_START script_PlayerStoneWallsAppear _0807EB44 0x0006 Wait 0x000a _0807EB44 0x0004 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc b/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc index b9759827..50664ad7 100644 --- a/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc +++ b/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerTryToFollowVaati _0807EDD4 0x01f8, 0x0148 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_Vaati.inc b/data/scripts/cutscene/originStory/script_Vaati.inc index 8cdeb503..fd727120 100644 --- a/data/scripts/cutscene/originStory/script_Vaati.inc +++ b/data/scripts/cutscene/originStory/script_Vaati.inc @@ -7,7 +7,7 @@ SCRIPT_START script_Vaati DoPostScriptAction 0x0017 Call sub_0807F180 EndBlock - WaitForSomething2 0x00000800 + WaitForSyncFlagAndClear 0x00000800 _0807EB44 0x0002 DoPostScriptAction 0x0017 Wait 0x000a @@ -15,33 +15,33 @@ SCRIPT_START script_Vaati DoPostScriptAction 0x0017 _0807EB44 0x0004 DoPostScriptAction 0x001b - _0807E5F8 0x00001000 - WaitForSomething2 0x00000800 + SetSyncFlag 0x00001000 + WaitForSyncFlagAndClear 0x00000800 Wait 0x0078 DoPostScriptAction 0x0004 Wait 0x0014 - _0807E5F8 0x00001000 - WaitForSomething2 0x00000800 + SetSyncFlag 0x00001000 + WaitForSyncFlagAndClear 0x00000800 DoPostScriptAction 0x0018 Call sub_0807F2D4 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00001000 - WaitForSomething2 0x00000800 + SetSyncFlag 0x00001000 + WaitForSyncFlagAndClear 0x00000800 _0807EB44 0x0004 DoPostScriptAction 0x0014 CallWithArg sub_0809545C, script_Object6ADarkMagic PlaySound SFX_1C4 Wait 0x0078 DoPostScriptAction 0x0016 - WaitForSomething2 0x00020000 + WaitForSyncFlagAndClear 0x00020000 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00001000 - WaitForSomething2 0x00000800 + SetSyncFlag 0x00001000 + WaitForSyncFlagAndClear 0x00000800 Call sub_08066CA4 DoPostScriptAction 0x0008 Wait 0x0078 - _0807E5F8 0x00001000 + SetSyncFlag 0x00001000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_VaatiAppearsAgain.inc b/data/scripts/cutscene/originStory/script_VaatiAppearsAgain.inc index 0f6a9aef..26990404 100644 --- a/data/scripts/cutscene/originStory/script_VaatiAppearsAgain.inc +++ b/data/scripts/cutscene/originStory/script_VaatiAppearsAgain.inc @@ -6,26 +6,26 @@ SCRIPT_START script_VaatiAppearsAgain DoPostScriptAction 0x0000 Call sub_0807F354 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 Call sub_08066C94 Wait 0x00e9 DoPostScriptAction 0x0007 DoPostScriptAction 0x001e - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 Wait 0x0014 _0807EB44 0x0000 DoPostScriptAction 0x001c Call sub_0807F2D4 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 PlaySound SFX_F5 DoPostScriptAction 0x001f SetEntitySpeed 0x0200 DoPostScriptAction 0x000d DoPostScriptAction 0x0000 _0807ECC4 0x0030 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_EzloCapOutro.inc b/data/scripts/cutscene/outro/script_EzloCapOutro.inc index 63226166..a923e5cc 100644 --- a/data/scripts/cutscene/outro/script_EzloCapOutro.inc +++ b/data/scripts/cutscene/outro/script_EzloCapOutro.inc @@ -10,27 +10,27 @@ SCRIPT_START script_EzloCapOutro CallWithArg sub_0807F98C, 0xfff00000 EndBlock _0807E930 0x0023 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 CallWithArg sub_0807F6E8, 0x00000008 DoPostScriptAction 0x0007 PlaySound SFX_SPARKLES - _0807E610 0x00000800 + ClearSyncFlag 0x00000800 CallWithArg sub_080960C4, script_Object6AEzloDismounting Wait 0x003c _0807EDD4 0x0088, 0x0068 Wait 0x0078 - _0807E5F8 0x00000800 + SetSyncFlag 0x00000800 PlaySound SFX_143 _0807EF3C 0x0000, 0x0020 _0807E930 0x001f - _0807E5F8 0x00000200 - WaitForSomething2 0x00000010 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00000010 Wait 0x0078 DoPostScriptAction 0x0004 Wait 0x003c - _0807E5F8 0x00000200 + SetSyncFlag 0x00000200 Wait 0x0001 DoPostScriptAction 0x0008 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_EzloZeldaMagic.inc b/data/scripts/cutscene/outro/script_EzloZeldaMagic.inc index 8d029aff..e7707cc8 100644 --- a/data/scripts/cutscene/outro/script_EzloZeldaMagic.inc +++ b/data/scripts/cutscene/outro/script_EzloZeldaMagic.inc @@ -5,7 +5,7 @@ SCRIPT_START script_EzloZeldaMagic DoPostScriptAction 0x000b CallWithArg sub_0807F994, 0x0000fff8 EndBlock - WaitForSomething 0x00000020 + WaitForSyncFlag 0x00000020 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/outro/script_GuardStoneOutro1.inc b/data/scripts/cutscene/outro/script_GuardStoneOutro1.inc index 73c218ed..bdfb1c15 100644 --- a/data/scripts/cutscene/outro/script_GuardStoneOutro1.inc +++ b/data/scripts/cutscene/outro/script_GuardStoneOutro1.inc @@ -5,9 +5,9 @@ SCRIPT_START script_GuardStoneOutro1 _0807EB44 0x0004 _0807E930 0x0010 EndBlock - WaitForSomething 0x00000001 + WaitForSyncFlag 0x00000001 _0807E930 0x0002 - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0004 Wait 0x003c script_0800A80C: diff --git a/data/scripts/cutscene/outro/script_GuardStoneOutro2.inc b/data/scripts/cutscene/outro/script_GuardStoneOutro2.inc index f33f9425..59f06757 100644 --- a/data/scripts/cutscene/outro/script_GuardStoneOutro2.inc +++ b/data/scripts/cutscene/outro/script_GuardStoneOutro2.inc @@ -5,9 +5,9 @@ SCRIPT_START script_GuardStoneOutro2 _0807EB44 0x0004 _0807E930 0x0010 EndBlock - WaitForSomething 0x00000001 + WaitForSyncFlag 0x00000001 _0807E930 0x0002 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0004 Wait 0x003c script_0800A848: diff --git a/data/scripts/cutscene/outro/script_GuardStoneOutro3.inc b/data/scripts/cutscene/outro/script_GuardStoneOutro3.inc index 66af4c81..f7d9c800 100644 --- a/data/scripts/cutscene/outro/script_GuardStoneOutro3.inc +++ b/data/scripts/cutscene/outro/script_GuardStoneOutro3.inc @@ -5,9 +5,9 @@ SCRIPT_START script_GuardStoneOutro3 _0807EB44 0x0004 _0807E930 0x0010 EndBlock - WaitForSomething 0x00000001 + WaitForSyncFlag 0x00000001 _0807E930 0x0002 - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 DoPostScriptAction 0x0004 Wait 0x003c script_0800A884: diff --git a/data/scripts/cutscene/outro/script_MaidStoneOutro1.inc b/data/scripts/cutscene/outro/script_MaidStoneOutro1.inc index e355a772..46f28809 100644 --- a/data/scripts/cutscene/outro/script_MaidStoneOutro1.inc +++ b/data/scripts/cutscene/outro/script_MaidStoneOutro1.inc @@ -5,9 +5,9 @@ SCRIPT_START script_MaidStoneOutro1 _0807EB44 0x0004 _0807E930 0x0008 EndBlock - WaitForSomething 0x00000001 + WaitForSyncFlag 0x00000001 DoPostScriptAction 0x0000 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0004 Wait 0x003c script_0800A8C0: diff --git a/data/scripts/cutscene/outro/script_MaidStoneOutro2.inc b/data/scripts/cutscene/outro/script_MaidStoneOutro2.inc index f3884c80..f25c8c27 100644 --- a/data/scripts/cutscene/outro/script_MaidStoneOutro2.inc +++ b/data/scripts/cutscene/outro/script_MaidStoneOutro2.inc @@ -5,9 +5,9 @@ SCRIPT_START script_MaidStoneOutro2 _0807EB44 0x0004 _0807E930 0x0008 EndBlock - WaitForSomething 0x00000001 + WaitForSyncFlag 0x00000001 DoPostScriptAction 0x0000 - WaitForSomething2 0x00000020 + WaitForSyncFlagAndClear 0x00000020 DoPostScriptAction 0x0004 Wait 0x003c script_0800A8FC: diff --git a/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc b/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc index 4a526a99..83ef8867 100644 --- a/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc +++ b/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc @@ -7,7 +7,7 @@ SCRIPT_START script_MinishEzloGoodbye _0807EB44 0x0004 CallWithArg sub_0807F3D8, 0x00000000 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0004 Wait 0x001e _0807EB44 0x0002 @@ -15,44 +15,44 @@ SCRIPT_START script_MinishEzloGoodbye Wait 0x0006 _0807EB44 0x0000 CallWithArg sub_0807F3D8, 0x00000000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 _0807EB44 0x0002 CallWithArg sub_0807F3D8, 0x00000000 Wait 0x0014 _0807EB44 0x0004 CallWithArg sub_0807F3D8, 0x00000000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 _0807E930 0x000c Call sub_0807F2D4 Call sub_08094B94 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 _0807E930 0x000f Call sub_0807F2D4 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 CallWithArg sub_080960C4, script_Object6AEzloFinalMagic _0807E930 0x0012 Call sub_0807F2D4 Wait 0x001e - _0807E5F8 0x00000020 + SetSyncFlag 0x00000020 StopBgm Call CreateDust Call sub_0806305C Call sub_080630A4 _0807EF3C 0x0000, 0x0020 Wait 0x001e - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0080 _0807EEF4 0x0000, 0xfff0 Wait 0x003c _0807EEF4 0x0000, 0xfff0 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 _0807EDD4 0x0088, 0x0040 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_MinishEzloOutro.inc b/data/scripts/cutscene/outro/script_MinishEzloOutro.inc index 77e67238..55f29440 100644 --- a/data/scripts/cutscene/outro/script_MinishEzloOutro.inc +++ b/data/scripts/cutscene/outro/script_MinishEzloOutro.inc @@ -7,26 +7,26 @@ SCRIPT_START script_MinishEzloOutro _0807EB44 0x0004 CallWithArg sub_0807F3D8, 0x00000000 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 _0807E930 0x000e DoPostScriptAction 0x0007 Call sub_0807F2D4 DoPostScriptAction 0x0004 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000002 _0807E930 0x000c Call sub_0807F2D4 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000002 _0807E930 0x000f Call sub_0807F2D4 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000002 _0807E930 0x000c Call sub_0807F2D4 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000002 CallWithArg sub_080960C4, script_EzloZeldaMagic - _0807E5F8 0x00000040 + SetSyncFlag 0x00000040 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc b/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc index 6abb3708..06f842dd 100644 --- a/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc +++ b/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc @@ -1,37 +1,37 @@ @ Outro NPC4E Minish Portal is closing SCRIPT_START script_Npc4EMinishPortalClosing Call sub_0808D2CC - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 _0807E8E4_0 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000080 OffsetEntityPosition 0x0000, 0xffe0 Call sub_0807F5C0 Wait 0x003c CallWithArg DeleteManager36, 0x00000001 _0807F0C8 0x0000, 0x0000 Wait 0x003c - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 MessageFromTargetPos 0x165f, 0x000e WaitUntilTextboxCloses StartPlayerScript script_PlayerAtEzlo - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 MessageFromTargetPos 0x1660, 0x000e WaitUntilTextboxCloses - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 MessageFromTargetPos 0x1661, 0x000e WaitUntilTextboxCloses - _0807E5F8 0x00000008 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 OffsetEntityPosition 0x0000, 0x0020 Call sub_0807F5C0 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 StartPlayerScript script_PlayerGetGreenCap - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Wait 0x003c MessageFromTargetPos 0x1662, 0x000e WaitUntilTextboxCloses @@ -39,31 +39,31 @@ SCRIPT_START script_Npc4EMinishPortalClosing WaitUntilTextboxCloses OffsetEntityPosition 0x0000, 0xffe0 Call sub_0807F5C0 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 StartPlayerScript script_PlayerSayGoodbye - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Wait 0x003c MessageFromTargetPos 0x1665, 0x000e WaitUntilTextboxCloses - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 Wait 0x0078 Call sub_0808D280 Wait 0x0078 _0807E778 0x0004 DoFade5 - WaitFor_2 + WaitForFadeFinish Call sub_0807FB94 @ Roll Credits MoveEntityToPlayer Call sub_0807F844 _0807F0B4 0x0004 CameraTargetPlayer - _0807E5F8 0x80000000 + SetSyncFlag 0x80000000 DoFade4 - WaitFor_2 + WaitForFadeFinish Call sub_0807DF50 _0807E878 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc b/data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc index f63a9c53..83c7004d 100644 --- a/data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc +++ b/data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc @@ -7,13 +7,13 @@ SCRIPT_START script_Npc4EMinishWoods Call sub_0807F844 EndBlock Wait 0x003c - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Wait 0x001e - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Wait 0x0014 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Wait 0x000a - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Wait 0x003c CallWithArg sub_0806DA1C, 0x0000000d DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/outro/script_Npc4EMtCrenel.inc b/data/scripts/cutscene/outro/script_Npc4EMtCrenel.inc index 1ae3df45..22d244b2 100644 --- a/data/scripts/cutscene/outro/script_Npc4EMtCrenel.inc +++ b/data/scripts/cutscene/outro/script_Npc4EMtCrenel.inc @@ -7,13 +7,13 @@ SCRIPT_START script_Npc4EMtCrenel Call sub_0807F844 EndBlock Wait 0x003c - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Wait 0x000a - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Wait 0x0014 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Wait 0x001e - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Wait 0x003c CallWithArg sub_0806DA1C, 0x0000000e DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/outro/script_Npc4EOutro.inc b/data/scripts/cutscene/outro/script_Npc4EOutro.inc index d05b8ba4..844ac95f 100644 --- a/data/scripts/cutscene/outro/script_Npc4EOutro.inc +++ b/data/scripts/cutscene/outro/script_Npc4EOutro.inc @@ -10,53 +10,53 @@ SCRIPT_START script_Npc4EOutro EndBlock Wait 0x003c StartPlayerScript script_PlayerAtOutro - WaitForSomething2 0x00000001 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000080 + WaitForSyncFlagAndClear 0x00000001 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000080 MessageFromTargetPos 0x1659, 0x0000 WaitUntilTextboxCloses Wait 0x003c - _0807E5F8 0x00000010 - WaitForSomething2 0x00000200 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000200 + SetSyncFlag 0x00000004 _0807E8E4_0 - WaitForSomething2 0x00000080 - _0807E5F8 0x00000010 - WaitForSomething2 0x00000200 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000040 - _0807E5F8 0x00000004 + WaitForSyncFlagAndClear 0x00000080 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000200 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000040 + SetSyncFlag 0x00000004 Call sub_0807F3F8 - WaitForSomething2 0x00000080 + WaitForSyncFlagAndClear 0x00000080 MessageFromTargetPos 0x165a, 0x000e WaitUntilTextboxCloses Wait 0x003c MessageFromTargetPos 0x165b, 0x000e WaitUntilTextboxCloses - _0807E5F8 0x00000002 - WaitForSomething2 0x00000040 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000040 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000100 Wait 0x003c _0807E8E4_3 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000080 Wait 0x003c - _0807E5F8 0x00000008 - WaitForSomething2 0x00000100 - _0807E5F8 0x00000006 - WaitForSomething2 0x000000c0 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000100 + SetSyncFlag 0x00000006 + WaitForSyncFlagAndClear 0x000000c0 MessageFromTargetPos 0x165c, 0x000e WaitUntilTextboxCloses StopBgm MessageFromTargetPos 0x165d, 0x000e WaitUntilTextboxCloses - _0807E5F8 0x00000006 - WaitForSomething2 0x000000c0 - _0807E5F8 0x00000006 - WaitForSomething2 0x00000080 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000006 + WaitForSyncFlagAndClear 0x000000c0 + SetSyncFlag 0x00000006 + WaitForSyncFlagAndClear 0x00000080 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000100 PlayBgm BGM_INTRO_CUTSCENE PlaySound SFX_APPARATE CallWithArg sub_0806DA1C, 0x00000007 diff --git a/data/scripts/cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc b/data/scripts/cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc index e85a727a..9cbea7ad 100644 --- a/data/scripts/cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc +++ b/data/scripts/cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc @@ -10,22 +10,22 @@ SCRIPT_START script_Npc4EUnfreezeCastleStaff PlaySound SFX_EVAPORATE _0807E778 0x0004 DoFade7 - WaitFor_2 - _0807E5F8 0x00000001 + WaitForFadeFinish + SetSyncFlag 0x00000001 PlaySound SFX_APPARATE _0807E778 0x0002 DoFade6 - WaitFor_2 + WaitForFadeFinish Wait 0x001e - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Wait 0x0014 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Wait 0x000a - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Wait 0x0005 - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 Wait 0x0002 - _0807E5F8 0x00000020 + SetSyncFlag 0x00000020 Wait 0x0078 CallWithArg sub_0806DA1C, 0x0000000c DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/outro/script_Object6AEzloDismounting.inc b/data/scripts/cutscene/outro/script_Object6AEzloDismounting.inc index 200d28b9..e97a4de3 100644 --- a/data/scripts/cutscene/outro/script_Object6AEzloDismounting.inc +++ b/data/scripts/cutscene/outro/script_Object6AEzloDismounting.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6AEzloDismounting DoPostScriptAction 0x000b CallWithArg sub_0807F994, 0x0000fff8 EndBlock - WaitForSomething 0x00000800 + WaitForSyncFlag 0x00000800 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/outro/script_Object6AEzloFinalMagic.inc b/data/scripts/cutscene/outro/script_Object6AEzloFinalMagic.inc index 8deeaa16..93468e3d 100644 --- a/data/scripts/cutscene/outro/script_Object6AEzloFinalMagic.inc +++ b/data/scripts/cutscene/outro/script_Object6AEzloFinalMagic.inc @@ -6,7 +6,7 @@ SCRIPT_START script_Object6AEzloFinalMagic CallWithArg sub_0807F994, 0x0000fff8 PlaySound SFX_SPARKLES EndBlock - WaitForSomething 0x00000020 + WaitForSyncFlag 0x00000020 PlaySound SFX_143 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_Object6AMinishCapOutro.inc b/data/scripts/cutscene/outro/script_Object6AMinishCapOutro.inc index c53774ad..3b5704d0 100644 --- a/data/scripts/cutscene/outro/script_Object6AMinishCapOutro.inc +++ b/data/scripts/cutscene/outro/script_Object6AMinishCapOutro.inc @@ -7,25 +7,25 @@ SCRIPT_START script_Object6AMinishCapOutro _0807E930 0x0005 Call sub_0807F348 EndBlock - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 PlaySound SFX_SPARKLES - _0807E610 0x00000800 + ClearSyncFlag 0x00000800 CallWithArg sub_080960C4, script_Object6AEzloDismounting _0807E930 0x0002 Call sub_08094B0C _0807EDD4 0x0068, 0x0088 Call sub_08094B80 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000008 Call sub_08094B3C _0807E930 0x0004 - _0807E5F8 0x00000800 + SetSyncFlag 0x00000800 PlaySound SFX_143 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000008 DoPostScriptAction 0x0008 Call sub_080961B0 PlaySound SFX_FA Wait 0x003c - _0807E5F8 0x00000100 + SetSyncFlag 0x00000100 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_Object6AOctorok1.inc b/data/scripts/cutscene/outro/script_Object6AOctorok1.inc index 357948d8..71af9ff5 100644 --- a/data/scripts/cutscene/outro/script_Object6AOctorok1.inc +++ b/data/scripts/cutscene/outro/script_Object6AOctorok1.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6AOctorok1 DoPostScriptAction 0x0007 _0807E930 0x0001 EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Call CreateDust DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_Object6AOctorok2.inc b/data/scripts/cutscene/outro/script_Object6AOctorok2.inc index 1d821ef4..1a823f2d 100644 --- a/data/scripts/cutscene/outro/script_Object6AOctorok2.inc +++ b/data/scripts/cutscene/outro/script_Object6AOctorok2.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6AOctorok2 DoPostScriptAction 0x0007 _0807E930 0x0002 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 Call CreateDust DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_Object6AOctorok3.inc b/data/scripts/cutscene/outro/script_Object6AOctorok3.inc index 4a40f72b..9e970232 100644 --- a/data/scripts/cutscene/outro/script_Object6AOctorok3.inc +++ b/data/scripts/cutscene/outro/script_Object6AOctorok3.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6AOctorok3 DoPostScriptAction 0x0007 _0807E930 0x0000 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 Call CreateDust DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_Object6AOctorok4.inc b/data/scripts/cutscene/outro/script_Object6AOctorok4.inc index 1c305c02..ce4e0e15 100644 --- a/data/scripts/cutscene/outro/script_Object6AOctorok4.inc +++ b/data/scripts/cutscene/outro/script_Object6AOctorok4.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6AOctorok4 DoPostScriptAction 0x0007 _0807E930 0x0003 EndBlock - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 Call CreateDust DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_Object6ATektite1.inc b/data/scripts/cutscene/outro/script_Object6ATektite1.inc index 347784db..a8599488 100644 --- a/data/scripts/cutscene/outro/script_Object6ATektite1.inc +++ b/data/scripts/cutscene/outro/script_Object6ATektite1.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6ATektite1 DoPostScriptAction 0x0007 _0807E930 0x0000 EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Call CreateDust DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_Object6ATektite2.inc b/data/scripts/cutscene/outro/script_Object6ATektite2.inc index e9ef6154..3f666062 100644 --- a/data/scripts/cutscene/outro/script_Object6ATektite2.inc +++ b/data/scripts/cutscene/outro/script_Object6ATektite2.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6ATektite2 DoPostScriptAction 0x0007 _0807E930 0x0000 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 Call CreateDust DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_Object6ATektite3.inc b/data/scripts/cutscene/outro/script_Object6ATektite3.inc index eb0f4191..c088f9cf 100644 --- a/data/scripts/cutscene/outro/script_Object6ATektite3.inc +++ b/data/scripts/cutscene/outro/script_Object6ATektite3.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6ATektite3 DoPostScriptAction 0x0007 _0807E930 0x0000 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 Call CreateDust DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_Object6ATektite4.inc b/data/scripts/cutscene/outro/script_Object6ATektite4.inc index a26b1514..68f9a905 100644 --- a/data/scripts/cutscene/outro/script_Object6ATektite4.inc +++ b/data/scripts/cutscene/outro/script_Object6ATektite4.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6ATektite4 DoPostScriptAction 0x0007 _0807E930 0x0000 EndBlock - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 Call CreateDust DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_Object6ATheLittleHat.inc b/data/scripts/cutscene/outro/script_Object6ATheLittleHat.inc index 06d0d8c7..da1e3fab 100644 --- a/data/scripts/cutscene/outro/script_Object6ATheLittleHat.inc +++ b/data/scripts/cutscene/outro/script_Object6ATheLittleHat.inc @@ -6,11 +6,11 @@ SCRIPT_START script_Object6ATheLittleHat DoPostScriptAction 0x000b _0807E930 0x0000 EndBlock - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 Call sub_08094B80 _0807EF3C 0x0000, 0x0001 - _0807E5F8 0x00000010 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000008 DoPostScriptAction 0x0008 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_Object6AZeldaMagic.inc b/data/scripts/cutscene/outro/script_Object6AZeldaMagic.inc index f7a0d74e..b4456a55 100644 --- a/data/scripts/cutscene/outro/script_Object6AZeldaMagic.inc +++ b/data/scripts/cutscene/outro/script_Object6AZeldaMagic.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6AZeldaMagic DoPostScriptAction 0x000b CallWithArg sub_0807F994, 0x0000fff8 EndBlock - WaitForSomething 0x00001000 + WaitForSyncFlag 0x00001000 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc b/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc index 9e72802e..c04735bc 100644 --- a/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc +++ b/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerAtEzlo _0807EDD4 0x0088, 0x0080 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC .2byte 0x0000 diff --git a/data/scripts/cutscene/outro/script_PlayerAtOutro.inc b/data/scripts/cutscene/outro/script_PlayerAtOutro.inc index c96f4435..3aef29f7 100644 --- a/data/scripts/cutscene/outro/script_PlayerAtOutro.inc +++ b/data/scripts/cutscene/outro/script_PlayerAtOutro.inc @@ -9,6 +9,6 @@ SCRIPT_START script_PlayerAtOutro Wait 0x000a _0807EB44 0x0006 Wait 0x000a - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC .2byte 0x0000 diff --git a/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc b/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc index 1d626969..9b99fff7 100644 --- a/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc +++ b/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc @@ -7,7 +7,7 @@ SCRIPT_START script_PlayerGetGreenCap EndBlock Call sub_0807F304 Wait 0x005a - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 BeginBlock CallWithArg sub_0807F6F8, 0x00000008 CallWithArg sub_0807F238, 0x000008e4 @@ -21,6 +21,6 @@ SCRIPT_START script_PlayerGetGreenCap Wait 0x0004 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC .2byte 0x0000 diff --git a/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc b/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc index 9e6c305d..a209c670 100644 --- a/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc +++ b/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc @@ -6,5 +6,5 @@ SCRIPT_START script_PlayerSayGoodbye _0807EC64 0x0020 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/outro/script_ZeldaGoodbye.inc b/data/scripts/cutscene/outro/script_ZeldaGoodbye.inc index 244494f8..470bddb0 100644 --- a/data/scripts/cutscene/outro/script_ZeldaGoodbye.inc +++ b/data/scripts/cutscene/outro/script_ZeldaGoodbye.inc @@ -7,10 +7,10 @@ SCRIPT_START script_ZeldaGoodbye _0807EB44 0x0002 DoPostScriptAction 0x0000 EndBlock - WaitForSomething2 0x00000040 + WaitForSyncFlagAndClear 0x00000040 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000080 - WaitForSomething2 0x80000000 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x80000000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_ZeldaOutro.inc b/data/scripts/cutscene/outro/script_ZeldaOutro.inc index 77e64220..d639a25a 100644 --- a/data/scripts/cutscene/outro/script_ZeldaOutro.inc +++ b/data/scripts/cutscene/outro/script_ZeldaOutro.inc @@ -7,7 +7,7 @@ SCRIPT_START script_ZeldaOutro _0807EB44 0x0002 DoPostScriptAction 0x0000 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 BeginBlock DoPostScriptAction 0x0004 Call sub_0807F3F8 @@ -16,29 +16,29 @@ SCRIPT_START script_ZeldaOutro _0807EC94 0x0010 _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000004 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0004 Wait 0x003c - _0807E5F8 0x00000080 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000004 _0807EB44 0x0004 DoPostScriptAction 0x0000 PlaySound SFX_SPARKLES CallWithArg sub_080960C4, script_Object6AZeldaMagic - _0807E5F8 0x00000080 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000004 PlaySound SFX_143 - _0807E5F8 0x00001000 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00001000 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000004 Call sub_08066E68 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000004 PlaySound SFX_SPARKLES CallWithArg sub_080960C4, script_EzloZeldaMagic Wait 0x0078 @@ -54,8 +54,8 @@ SCRIPT_START script_ZeldaOutro PlaySound SFX_153 CallWithArg sub_0807FADC, 0x00000001 PlaySound SFX_143 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/reveal/script_08013494.inc b/data/scripts/cutscene/reveal/script_08013494.inc index a383f68b..fb3b1606 100644 --- a/data/scripts/cutscene/reveal/script_08013494.inc +++ b/data/scripts/cutscene/reveal/script_08013494.inc @@ -13,7 +13,7 @@ SCRIPT_START script_08013494 Call sub_08094B80 PlaySound SFX_1CC Call sub_0807F36C - _0807E5F8 0x00000080 + SetSyncFlag 0x00000080 EndBlock DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/reveal/script_FakeKingDaltus.inc b/data/scripts/cutscene/reveal/script_FakeKingDaltus.inc index 5c5a8d48..4f9e3683 100644 --- a/data/scripts/cutscene/reveal/script_FakeKingDaltus.inc +++ b/data/scripts/cutscene/reveal/script_FakeKingDaltus.inc @@ -6,10 +6,10 @@ SCRIPT_START script_FakeKingDaltus DoPostScriptAction 0x000b Call sub_0807F338 EndBlock - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 Call sub_08061F94 Wait 0x000a - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/reveal/script_Object3EPictureBackRoom.inc b/data/scripts/cutscene/reveal/script_Object3EPictureBackRoom.inc index 15048906..9d81e3fb 100644 --- a/data/scripts/cutscene/reveal/script_Object3EPictureBackRoom.inc +++ b/data/scripts/cutscene/reveal/script_Object3EPictureBackRoom.inc @@ -6,17 +6,17 @@ SCRIPT_START script_Object3EPictureBackRoom Call sub_0807F9A4 Call sub_0807DF28 StartPlayerScript script_PlayerAtPicture - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 _0807EB28 0x1601 WaitUntilTextboxCloses StartPlayerScript script_PlayerMoveToPicture - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 _0807E778 0x0004 DoFade5 - WaitFor_2 + WaitForFadeFinish LoadRoomEntityList gUnk_080F5680 StartPlayerScript script_PlayerSanctuaryIntro - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 MoveEntityToPlayer OffsetEntityPosition 0x0000, 0xfff0 Call sub_0807F844 @@ -24,29 +24,29 @@ SCRIPT_START script_Object3EPictureBackRoom Call sub_080536B8 _0807E864 Call sub_0807DF28 - WaitFor_2 + WaitForFadeFinish MessageFromTargetPos 0x1602, 0x000c WaitUntilTextboxCloses - _0807E5F8 0x00000008 - WaitForSomething2 0x00000010 - _0807E5F8 0x00000020 - WaitForSomething2 0x00000040 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000010 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000040 PlayBgm BGM_VAATI_THEME StartPlayerScript script_PlayerDistanceFromVaati - WaitForSomething2 0x00000002 - _0807E5F8 0x00000020 - WaitForSomething2 0x00000040 + WaitForSyncFlagAndClear 0x00000002 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000040 StartPlayerScript script_PlayerFaintAgain - _0807E5F8 0x00000020 - WaitForSomething2 0x00000042 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000042 MessageFromTargetPos 0x1603, 0x000c WaitUntilTextboxCloses - _0807E5F8 0x00000020 - WaitForSomething2 0x00000040 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000040 SetFadeMask 0xffff7fff _0807E778 0x0004 DoFade5 - WaitFor_2 + WaitForFadeFinish StopBgm _0807E858 0x0000 Wait 0x003c @@ -57,9 +57,9 @@ SCRIPT_START script_Object3EPictureBackRoom SetFadeMask 0xffffffff _0807E778 0x0004 DoFade4 - WaitFor_2 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + WaitForFadeFinish + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 _0807EB28 0x1605 WaitUntilTextboxCloses SetLocalFlag 0x0078 diff --git a/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc b/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc index 9651271d..69a76452 100644 --- a/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc +++ b/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerAtPicture _0807EDD4 0x0098, 0x0058 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc b/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc index fa626ffc..ed636572 100644 --- a/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc +++ b/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc @@ -8,7 +8,7 @@ SCRIPT_START script_PlayerDistanceFromVaati _0807ECC4 0x0020 DoPostScriptAction 0x0000 DoPostScriptAction 0x000c - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc b/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc index 2a7d728c..91f9285d 100644 --- a/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc +++ b/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc @@ -4,14 +4,14 @@ SCRIPT_START script_PlayerFaintAgain Call sub_0807F2D4 Call sub_0807F1E8 Call sub_0807F2D4 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 PlaySound SFX_PLY_JUMP _0807EB44 0x0004 Call sub_0807F210 _0807EF3C 0x0200, 0x0020 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc b/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc index 7a621543..76237d60 100644 --- a/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc +++ b/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc @@ -6,7 +6,7 @@ SCRIPT_START script_PlayerMoveToPicture DoPostScriptAction 0x0001 _0807EC64 0x0020 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/reveal/script_VaatiSanctuary.inc b/data/scripts/cutscene/reveal/script_VaatiSanctuary.inc index a45f9d55..ca88188c 100644 --- a/data/scripts/cutscene/reveal/script_VaatiSanctuary.inc +++ b/data/scripts/cutscene/reveal/script_VaatiSanctuary.inc @@ -6,30 +6,30 @@ SCRIPT_START script_VaatiSanctuary DoPostScriptAction 0x000b Call sub_0807F338 EndBlock - WaitForSomething2 0x00000020 + WaitForSyncFlagAndClear 0x00000020 SetEntityPositionRelative 0x0098, 0x0048 Call sub_08066C94 Wait 0x00e9 DoPostScriptAction 0x0007 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000020 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000020 Wait 0x003c DoPostScriptAction 0x0014 PlaySound SFX_CHARGING_UP CallWithArg sub_08095420, script_08013494 Wait 0x005a DoPostScriptAction 0x0016 - WaitForSomething2 0x00000080 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000020 + WaitForSyncFlagAndClear 0x00000080 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000020 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000040 - WaitForSomething2 0x00000020 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000020 Call sub_08066CA4 DoPostScriptAction 0x0008 Wait 0x0078 - _0807E5F8 0x00000040 + SetSyncFlag 0x00000040 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/takeover/script_GuardTakeover.inc b/data/scripts/cutscene/takeover/script_GuardTakeover.inc index fb77a159..42af6737 100644 --- a/data/scripts/cutscene/takeover/script_GuardTakeover.inc +++ b/data/scripts/cutscene/takeover/script_GuardTakeover.inc @@ -5,15 +5,15 @@ SCRIPT_START script_GuardTakeover _0807EB44 0x0000 _0807E930 0x0000 EndBlock - WaitForSomething 0x00000040 + WaitForSyncFlag 0x00000040 _0807E930 0x0004 _0807EC64 0x00c0 _0807E930 0x0000 Wait 0x003c - _0807E5F8 0x00000080 - WaitForSomething 0x00000200 + SetSyncFlag 0x00000080 + WaitForSyncFlag 0x00000200 DoPostScriptAction 0x0005 - WaitForSomething 0x00000400 + WaitForSyncFlag 0x00000400 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/takeover/script_KingDaltusTakeover.inc b/data/scripts/cutscene/takeover/script_KingDaltusTakeover.inc index b9b72d11..f4263027 100644 --- a/data/scripts/cutscene/takeover/script_KingDaltusTakeover.inc +++ b/data/scripts/cutscene/takeover/script_KingDaltusTakeover.inc @@ -4,24 +4,24 @@ SCRIPT_START script_KingDaltusTakeover _0807EB44 0x0004 DoPostScriptAction 0x0000 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0004 Wait 0x003c MessageNoOverlap 0x1319 WaitUntilTextboxCloses - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 MessageNoOverlap 0x131a WaitUntilTextboxCloses - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 MessageNoOverlap 0x131d WaitUntilTextboxCloses - _0807E5F8 0x00000008 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000004 MessageNoOverlap 0x131e WaitUntilTextboxCloses - _0807E5F8 0x00000008 - WaitForSomething 0x00000400 + SetSyncFlag 0x00000008 + WaitForSyncFlag 0x00000400 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/takeover/script_MinisterPothoTakeover.inc b/data/scripts/cutscene/takeover/script_MinisterPothoTakeover.inc index 850184e6..c3f81281 100644 --- a/data/scripts/cutscene/takeover/script_MinisterPothoTakeover.inc +++ b/data/scripts/cutscene/takeover/script_MinisterPothoTakeover.inc @@ -4,12 +4,12 @@ SCRIPT_START script_MinisterPothoTakeover _0807EB44 0x0004 DoPostScriptAction 0x0000 EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 MessageNoOverlap 0x131c WaitUntilTextboxCloses - _0807E5F8 0x00000002 - WaitForSomething 0x00000200 + SetSyncFlag 0x00000002 + WaitForSyncFlag 0x00000200 DoPostScriptAction 0x0005 - WaitForSomething 0x00000400 + WaitForSyncFlag 0x00000400 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/takeover/script_Object69Takeover.inc b/data/scripts/cutscene/takeover/script_Object69Takeover.inc index 8dc1eaf9..d8ff3cae 100644 --- a/data/scripts/cutscene/takeover/script_Object69Takeover.inc +++ b/data/scripts/cutscene/takeover/script_Object69Takeover.inc @@ -11,11 +11,11 @@ script_08015BF0: Call sub_0807DF28 Call sub_0807FBC4 StartPlayerScript script_PlayerAtTakeover - WaitForSomething2 0x00000100 + WaitForSyncFlagAndClear 0x00000100 CameraTargetPlayer _0807E778 0x0004 _0807E80C 0x00000000 - WaitFor_2 + WaitForFadeFinish StopBgm Call sub_08053BE8 BeginBlock @@ -28,7 +28,7 @@ script_08015BF0: EndBlock _0807E778 0x0004 _0807E800 0x00000000 - WaitFor_2 + WaitForFadeFinish PlayBGM _0807EB28 0x131f WaitUntilTextboxCloses diff --git a/data/scripts/cutscene/takeover/script_Object69TakeoverCutscene.inc b/data/scripts/cutscene/takeover/script_Object69TakeoverCutscene.inc index 61543da9..10feed63 100644 --- a/data/scripts/cutscene/takeover/script_Object69TakeoverCutscene.inc +++ b/data/scripts/cutscene/takeover/script_Object69TakeoverCutscene.inc @@ -7,61 +7,61 @@ SCRIPT_START script_Object69TakeoverCutscene EndBlock _0807E778 0x0004 DoFade4 - WaitFor_2 + WaitForFadeFinish Wait 0x003c _0807F0B4 0x0004 SetEntityPositionRelative 0x0088, 0x00e0 CameraTargetEntity Wait 0x003c PlayBgm BGM_VAATI_THEME - _0807E5F8 0x00000010 - WaitForSomething2 0x00000020 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000020 _0807F0B4 0x0004 SetEntityPositionRelative 0x0088, 0x0070 CameraTargetEntity Wait 0x003c - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 _0807F0B4 0x0004 SetEntityPositionRelative 0x0088, 0x00e0 CameraTargetEntity Wait 0x003c - _0807E5F8 0x00000010 - WaitForSomething2 0x00000020 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000020 _0807F0B4 0x0004 SetEntityPositionRelative 0x0088, 0x0070 CameraTargetEntity Wait 0x003c - _0807E5F8 0x00000010 - WaitForSomething2 0x00000020 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000010 - WaitForSomething2 0x00000020 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000020 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000010 + WaitForSyncFlagAndClear 0x00000020 _0807E778 0x0004 DoFade5 - WaitFor_2 - _0807E5F8 0x00000010 + WaitForFadeFinish + SetSyncFlag 0x00000010 LoadRoomEntityList gUnk_080FCE30 StopBgm Wait 0x0078 _0807E778 0x0004 DoFade4 - WaitFor_2 + WaitForFadeFinish PlayBgm BGM_DIGGING_CAVE - _0807E5F8 0x00000040 - WaitForSomething2 0x00000080 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 - _0807E5F8 0x00000200 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000080 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000200 Wait 0x003c - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 _0807E778 0x0004 DoFade5 - WaitFor_2 + WaitForFadeFinish StopBgm SetRoomFlag 0x0000 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc b/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc index 7e98b2b7..551025aa 100644 --- a/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc +++ b/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc @@ -15,6 +15,6 @@ SCRIPT_START script_PlayerAtTakeover Call sub_0807F304 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000100 + SetSyncFlag 0x00000100 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/takeover/script_VaatiTakeover.inc b/data/scripts/cutscene/takeover/script_VaatiTakeover.inc index 6762ddeb..14796d93 100644 --- a/data/scripts/cutscene/takeover/script_VaatiTakeover.inc +++ b/data/scripts/cutscene/takeover/script_VaatiTakeover.inc @@ -6,7 +6,7 @@ SCRIPT_START script_VaatiTakeover DoPostScriptAction 0x0000 DoPostScriptAction 0x001d EndBlock - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 Call sub_08066C94 Wait 0x00e9 DoPostScriptAction 0x0007 @@ -16,26 +16,26 @@ SCRIPT_START script_VaatiTakeover DoPostScriptAction 0x001c Call sub_0807F2D4 DoPostScriptAction 0x0000 - _0807E5F8 0x00000020 - WaitForSomething2 0x00000010 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000010 Call sub_08066CA4 DoPostScriptAction 0x0008 Wait 0x00bc - _0807E5F8 0x00000020 - WaitForSomething2 0x00000010 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000010 SetEntityPositionRelative 0x0088, 0x0068 Call sub_08066C94 Wait 0x00e8 DoPostScriptAction 0x0007 DoPostScriptAction 0x001e Wait 0x0014 - _0807E5F8 0x00000020 - WaitForSomething2 0x00000010 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0014 Wait 0x001e MessageNoOverlap 0x131b WaitUntilTextboxCloses - _0807E5F8 0x00000020 - WaitForSomething2 0x00000010 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/takeover/script_ZeldaStoneTakeover.inc b/data/scripts/cutscene/takeover/script_ZeldaStoneTakeover.inc index beea2b4a..00b1bc9a 100644 --- a/data/scripts/cutscene/takeover/script_ZeldaStoneTakeover.inc +++ b/data/scripts/cutscene/takeover/script_ZeldaStoneTakeover.inc @@ -4,7 +4,7 @@ SCRIPT_START script_ZeldaStoneTakeover DoPostScriptAction 0x000a Call sub_08066E38 EndBlock - WaitForSomething 0x00000400 + WaitForSyncFlag 0x00000400 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_KingDaltusStone.inc b/data/scripts/dhc/script_KingDaltusStone.inc index 21346968..ee83a886 100644 --- a/data/scripts/dhc/script_KingDaltusStone.inc +++ b/data/scripts/dhc/script_KingDaltusStone.inc @@ -42,7 +42,7 @@ script_0800E3C8: MessageNoOverlap 0x240c WaitUntilTextboxCloses Wait 0x000f - _0807F034 0x0053 + GivePlayerItem 0x0053 WaitPlayerGetItem SetLocalFlag 0x0071 _0807E878 diff --git a/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc b/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc index a604a7b8..7862193e 100644 --- a/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc +++ b/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc @@ -15,8 +15,8 @@ script_0800DB7C: _0807EB28 0x1648 WaitUntilTextboxCloses Call sub_0804D7EC - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 Call sub_0807DF50 _0807E878 script_0800DBCA: @@ -29,18 +29,18 @@ script_0800DBCA: Call sub_0807F3F8 Wait 0x003c StartPlayerScript script_PlayerRescuedZelda - WaitForSomething2 0x00000004 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 - _0807E5F8 0x00000001 + WaitForSyncFlagAndClear 0x00000004 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 + SetSyncFlag 0x00000001 StartPlayerScript script_PlayerAfterDefeatingV2 - WaitForSomething2 0x00000006 + WaitForSyncFlagAndClear 0x00000006 MessageFromTargetPos 0x1643, 0x0002 WaitUntilTextboxCloses _0807EB28 0x1645 WaitUntilTextboxCloses Call sub_0807F3F8 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 StopBgm Call sub_08094F98 CallWithArg CreateManager36, 0x00000001 diff --git a/data/scripts/dhc/script_Npc4ECastleCollapsing.inc b/data/scripts/dhc/script_Npc4ECastleCollapsing.inc index b1cc0f18..901ce247 100644 --- a/data/scripts/dhc/script_Npc4ECastleCollapsing.inc +++ b/data/scripts/dhc/script_Npc4ECastleCollapsing.inc @@ -3,15 +3,15 @@ SCRIPT_START script_Npc4ECastleCollapsing Wait 0x003c PlayBgm BGM_CASTLE_COLLAPSE StartPlayerScript script_PlayerStonesFall - WaitForSomething2 0x00000006 + WaitForSyncFlagAndClear 0x00000006 _0807EB28 0x1646 WaitUntilTextboxCloses - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 StartPlayerScript script_PlayerCastleCollapsing CameraTargetPlayer _0807E778 0x0004 _0807E80C 0x00000000 - WaitFor_2 + WaitForFadeFinish CallWithArg DeleteManager36, 0x00000001 _0807F0C8 0x0000, 0x0000 SetLocalFlag 0x0079 diff --git a/data/scripts/dhc/script_Npc4EV3Defeated.inc b/data/scripts/dhc/script_Npc4EV3Defeated.inc index d1c4dc6f..c2f60ee1 100644 --- a/data/scripts/dhc/script_Npc4EV3Defeated.inc +++ b/data/scripts/dhc/script_Npc4EV3Defeated.inc @@ -20,8 +20,8 @@ script_0800A0FE: _0807E778 0x0002 DoFade6 EndBlock - WaitFor_2 - WaitForSomething2 0x00000004 + WaitForFadeFinish + WaitForSyncFlagAndClear 0x00000004 CallWithArg sub_0806DA1C, 0x00000006 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/dhc/script_Object69CastleEscape.inc b/data/scripts/dhc/script_Object69CastleEscape.inc index 677a4280..ffd72119 100644 --- a/data/scripts/dhc/script_Object69CastleEscape.inc +++ b/data/scripts/dhc/script_Object69CastleEscape.inc @@ -4,8 +4,8 @@ SCRIPT_START script_Object69CastleEscape Call sub_0807F9A4 Call sub_0807DF28 StartPlayerScript script_PlayerCastleEscape - WaitForSomething2 0x00000001 - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000001 + WaitForSyncFlagAndClear 0x00000002 _0807EB28 0x1647 WaitUntilTextboxCloses SetLocalFlag 0x007a diff --git a/data/scripts/dhc/script_Object69V2Defeated.inc b/data/scripts/dhc/script_Object69V2Defeated.inc index 74a59508..9d356a54 100644 --- a/data/scripts/dhc/script_Object69V2Defeated.inc +++ b/data/scripts/dhc/script_Object69V2Defeated.inc @@ -11,9 +11,9 @@ SCRIPT_START script_Object69V2Defeated WaitUntilTextboxCloses SetRoomFlag 0x0000 Wait 0x001e - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 StartPlayerScript script_PlayerV2Defeated - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 Call sub_0807DF50 _0807E878 DoPostScriptAction 0x0006 diff --git a/data/scripts/dhc/script_Object69VaatiWithZelda.inc b/data/scripts/dhc/script_Object69VaatiWithZelda.inc index 4f71ba77..e66a3b15 100644 --- a/data/scripts/dhc/script_Object69VaatiWithZelda.inc +++ b/data/scripts/dhc/script_Object69VaatiWithZelda.inc @@ -15,11 +15,11 @@ script_0800DA64: SetEntityPositionRelative 0x0078, 0x0080 CameraTargetEntity Call sub_0807F5C0 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 MessageFromTargetPos 0x162d, 0x0002 WaitUntilTextboxCloses - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Wait 0x001e MessageFromTargetPos 0x162e, 0x0002 WaitUntilTextboxCloses diff --git a/data/scripts/dhc/script_Object6AV3DefeatedMinishCap.inc b/data/scripts/dhc/script_Object6AV3DefeatedMinishCap.inc index 6431badd..77dc7aaa 100644 --- a/data/scripts/dhc/script_Object6AV3DefeatedMinishCap.inc +++ b/data/scripts/dhc/script_Object6AV3DefeatedMinishCap.inc @@ -13,8 +13,8 @@ SCRIPT_START script_Object6AV3DefeatedMinishCap _0807EF3C 0xff80, 0x0000 PlaySound SFX_143 _0807E930 0x0004 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Wait 0x003c - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_Object6AV3DefeatedMinishCap2.inc b/data/scripts/dhc/script_Object6AV3DefeatedMinishCap2.inc index 1854ede1..093a1833 100644 --- a/data/scripts/dhc/script_Object6AV3DefeatedMinishCap2.inc +++ b/data/scripts/dhc/script_Object6AV3DefeatedMinishCap2.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6AV3DefeatedMinishCap2 DoPostScriptAction 0x000b CallWithArg sub_0807F994, 0x0000fff8 EndBlock - WaitForSomething 0x00000002 + WaitForSyncFlag 0x00000002 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc b/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc index 56ce6d79..8c72e4c3 100644 --- a/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc +++ b/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc @@ -8,7 +8,7 @@ SCRIPT_START script_PlayerAfterDefeatingV2 DoPostScriptAction 0x0000 _0807ECC4 0x0010 DoPostScriptAction 0x000c - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_PlayerCastleCollapsing.inc b/data/scripts/dhc/script_PlayerCastleCollapsing.inc index 565fce6f..dff8b0a0 100644 --- a/data/scripts/dhc/script_PlayerCastleCollapsing.inc +++ b/data/scripts/dhc/script_PlayerCastleCollapsing.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerCastleCollapsing _0807EB44 0x0004 DoPostScriptAction 0x0000 _0807EEF4 0x0000, 0x0080 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerCastleEscape.inc b/data/scripts/dhc/script_PlayerCastleEscape.inc index ea20bf30..997799ad 100644 --- a/data/scripts/dhc/script_PlayerCastleEscape.inc +++ b/data/scripts/dhc/script_PlayerCastleEscape.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerCastleEscape _0807EDD4 0x0198, 0x01c8 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerRescuedZelda.inc b/data/scripts/dhc/script_PlayerRescuedZelda.inc index d4412b4b..23a6112c 100644 --- a/data/scripts/dhc/script_PlayerRescuedZelda.inc +++ b/data/scripts/dhc/script_PlayerRescuedZelda.inc @@ -7,7 +7,7 @@ SCRIPT_START script_PlayerRescuedZelda _0807EDD4 0x0078, 0x00a0 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_PlayerStonesFall.inc b/data/scripts/dhc/script_PlayerStonesFall.inc index e1ba8278..5f9e57d1 100644 --- a/data/scripts/dhc/script_PlayerStonesFall.inc +++ b/data/scripts/dhc/script_PlayerStonesFall.inc @@ -5,6 +5,6 @@ SCRIPT_START script_PlayerStonesFall DoPostScriptAction 0x0000 CallWithArg sub_0807F238, 0x000003c5 Call sub_0807F304 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerV2Defeated.inc b/data/scripts/dhc/script_PlayerV2Defeated.inc index 62cbbc18..33f6d785 100644 --- a/data/scripts/dhc/script_PlayerV2Defeated.inc +++ b/data/scripts/dhc/script_PlayerV2Defeated.inc @@ -3,10 +3,10 @@ SCRIPT_START script_PlayerV2Defeated BeginBlock SetEntitySpeed 0x00c0 EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 DoPostScriptAction 0x0001 _0807EDD4 0x00a8, 0x002c - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_VaatiWithZelda.inc b/data/scripts/dhc/script_VaatiWithZelda.inc index 84ff00d4..252052f3 100644 --- a/data/scripts/dhc/script_VaatiWithZelda.inc +++ b/data/scripts/dhc/script_VaatiWithZelda.inc @@ -5,7 +5,7 @@ SCRIPT_START script_VaatiWithZelda _0807EB44 0x0000 DoPostScriptAction 0x0014 EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Wait 0x003c DoPostScriptAction 0x0004 Wait 0x003c @@ -14,8 +14,8 @@ SCRIPT_START script_VaatiWithZelda Call sub_0807F2D4 DoPostScriptAction 0x0000 Wait 0x003c - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 _0807EB44 0x0004 DoPostScriptAction 0x0014 SCRIPT_END diff --git a/data/scripts/dhc/script_ZeldaAfterDefeatingV2.inc b/data/scripts/dhc/script_ZeldaAfterDefeatingV2.inc index 0f35ea99..c52b1a81 100644 --- a/data/scripts/dhc/script_ZeldaAfterDefeatingV2.inc +++ b/data/scripts/dhc/script_ZeldaAfterDefeatingV2.inc @@ -4,9 +4,9 @@ SCRIPT_START script_ZeldaAfterDefeatingV2 DoPostScriptAction 0x000a Call sub_08066E38 EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 CallWithArg sub_0807F8E8, 0x00000000 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 script_0800DCD0: CheckRoomFlag 0x0000 JumpIfNot script_0800DCD0 @@ -14,7 +14,7 @@ script_0800DCD0: Wait 0x003c DoPostScriptAction 0x0010 SetEntityPositionRelative 0x0078, 0x0068 - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 StopBgm Call sub_08066E50 PlaySound SFX_1C9 @@ -36,8 +36,8 @@ script_0800DCD0: _0807EB44 0x0004 DoPostScriptAction 0x0000 Wait 0x003c - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 SetEntitySpeed 0x0100 _0807EEF4 0x0000, 0x0008 _0807EB44 0x0004 @@ -46,8 +46,8 @@ script_0800DCD0: Call sub_08066E80 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 DoPostScriptAction 0x0004 Wait 0x003c _0807EB44 0x0002 @@ -61,8 +61,8 @@ script_0800DCD0: Wait 0x000a _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 SetEntitySpeed 0x0100 _0807EEF4 0x0000, 0x0080 SCRIPT_END diff --git a/data/scripts/dhc/script_ZeldaCastleEscape.inc b/data/scripts/dhc/script_ZeldaCastleEscape.inc index c6553c8e..83fd2afd 100644 --- a/data/scripts/dhc/script_ZeldaCastleEscape.inc +++ b/data/scripts/dhc/script_ZeldaCastleEscape.inc @@ -15,7 +15,7 @@ SCRIPT_START script_ZeldaCastleEscape _0807EDD4 0x0198, 0x01a8 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_08066D4C DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/fow/script_MazaalMacroDefeated.inc b/data/scripts/fow/script_MazaalMacroDefeated.inc index 02a44d56..624a5513 100644 --- a/data/scripts/fow/script_MazaalMacroDefeated.inc +++ b/data/scripts/fow/script_MazaalMacroDefeated.inc @@ -6,7 +6,7 @@ SCRIPT_START script_MazaalMacroDefeated Wait 0x0078 _0807E908 0x0004 StartPlayerScript script_PlayerDefeatedMazaal - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 Wait 0x000c _0807E908 0x0005 SCRIPT_END diff --git a/data/scripts/fow/script_Object89Mazaal.inc b/data/scripts/fow/script_Object89Mazaal.inc index 28c36a5c..b5c522c0 100644 --- a/data/scripts/fow/script_Object89Mazaal.inc +++ b/data/scripts/fow/script_Object89Mazaal.inc @@ -6,7 +6,7 @@ SCRIPT_START script_Object89Mazaal Wait 0x0018 _0807E864 StartPlayerScript script_PlayerAtMazaal - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 _0807E908 0x0002 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/fow/script_PlayerAtMazaal.inc b/data/scripts/fow/script_PlayerAtMazaal.inc index 80b81ae5..75086071 100644 --- a/data/scripts/fow/script_PlayerAtMazaal.inc +++ b/data/scripts/fow/script_PlayerAtMazaal.inc @@ -8,6 +8,6 @@ SCRIPT_START script_PlayerAtMazaal Wait 0x0008 DoPostScriptAction 0x0000 Wait 0x0008 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/fow/script_PlayerDefeatedMazaal.inc b/data/scripts/fow/script_PlayerDefeatedMazaal.inc index 19afd13a..0f6d278a 100644 --- a/data/scripts/fow/script_PlayerDefeatedMazaal.inc +++ b/data/scripts/fow/script_PlayerDefeatedMazaal.inc @@ -14,7 +14,7 @@ SCRIPT_START script_PlayerDefeatedMazaal Wait 0x0015 _0807EB44 0x0004 Wait 0x0008 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 _0807EDD4 0x0088, 0x0158 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/graveyard/script_GraveyardHouseDoor.inc b/data/scripts/graveyard/script_GraveyardHouseDoor.inc index 04e54f7d..631a1c19 100644 --- a/data/scripts/graveyard/script_GraveyardHouseDoor.inc +++ b/data/scripts/graveyard/script_GraveyardHouseDoor.inc @@ -13,7 +13,7 @@ script_080096AC: Call sub_0807F9A4 Call sub_0807DF28 StartPlayerScript script_PlayerAtGraveyardHouseDoor - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 PlaySound SFX_111 DoPostScriptAction 0x0008 LoadRoomEntityList gUnk_080D9048 diff --git a/data/scripts/graveyard/script_GreatFairyArrows.inc b/data/scripts/graveyard/script_GreatFairyArrows.inc index d78252c3..e43be1bd 100644 --- a/data/scripts/graveyard/script_GreatFairyArrows.inc +++ b/data/scripts/graveyard/script_GreatFairyArrows.inc @@ -9,14 +9,14 @@ script_0800B618: _0807E864 Call sub_0807F9A4 StartPlayerScript script_PlayerAtGreatFairy - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 SetRoomFlag 0x0000 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 CheckLocalFlag 0x009e JumpIf script_0800B7A2 MessageNoOverlap 0x0583 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_0800B684 Wait 0x000f MessageNoOverlap 0x0584 @@ -32,7 +32,7 @@ script_0800B684: script_0800B68E: WaitUntilTextboxCloses SetLocalFlag 0x009e - _0807F034 0x0066 + GivePlayerItem 0x0066 script_0800B698: WaitPlayerGetItem _0807EB8C @@ -42,10 +42,10 @@ script_0800B698: script_0800B6A6: _0807E778 0x0004 DoFade7 - WaitFor_2 + WaitForFadeFinish Call sub_080873FC DoFade6 - WaitFor_2 + WaitForFadeFinish CameraTargetPlayer Wait 0x001e Call sub_0807DF50 diff --git a/data/scripts/graveyard/script_KingGustav.inc b/data/scripts/graveyard/script_KingGustav.inc index 14fceb9f..f1b2e0fc 100644 --- a/data/scripts/graveyard/script_KingGustav.inc +++ b/data/scripts/graveyard/script_KingGustav.inc @@ -11,7 +11,7 @@ script_0800D962: Call sub_0807F9A4 Call sub_0807DF28 StartPlayerScript script_PlayerAtKingGustav - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Wait 0x003c _0807EB44 0x0004 DoPostScriptAction 0x0000 @@ -20,13 +20,13 @@ script_0800D962: SetEntity0x20 0xffff8000 MessageNoOverlap 0x1701 WaitUntilTextboxCloses - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 MessageNoOverlap 0x1702 WaitUntilTextboxCloses SetEntity0x20 0x00010000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 _0807F050 0x006d WaitPlayerGetItem _0807EB28 0x1703 diff --git a/data/scripts/graveyard/script_Object69CrowStealingKey.inc b/data/scripts/graveyard/script_Object69CrowStealingKey.inc index d4eeac98..9c0bf816 100644 --- a/data/scripts/graveyard/script_Object69CrowStealingKey.inc +++ b/data/scripts/graveyard/script_Object69CrowStealingKey.inc @@ -9,14 +9,14 @@ SCRIPT_START script_Object69CrowStealingKey Wait 0x000a _0807E8E4_3 Wait 0x0032 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 StartPlayerScript script_PlayerGetKeyStolen - WaitForSomething2 0x00000040 - _0807E5F8 0x00000008 - WaitForSomething2 0x00000010 - _0807E5F8 0x00000020 - WaitForSomething2 0x00000040 + WaitForSyncFlagAndClear 0x00000040 + SetSyncFlag 0x00000008 + WaitForSyncFlagAndClear 0x00000010 + SetSyncFlag 0x00000020 + WaitForSyncFlagAndClear 0x00000040 _0807F078 0x003c, 0x0000 SetGlobalFlag 0x0020 _0807E8E4_3 diff --git a/data/scripts/graveyard/script_Object6AKingsGravestone.inc b/data/scripts/graveyard/script_Object6AKingsGravestone.inc index 57b0a88c..b8a09309 100644 --- a/data/scripts/graveyard/script_Object6AKingsGravestone.inc +++ b/data/scripts/graveyard/script_Object6AKingsGravestone.inc @@ -4,12 +4,12 @@ SCRIPT_START script_Object6AKingsGravestone DoPostScriptAction 0x0008 SetEntitySpeed 0x0080 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0007 Wait 0x003c - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 _0807EDD4 0x0118, 0x0060 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/graveyard/script_Object97FirstCrow.inc b/data/scripts/graveyard/script_Object97FirstCrow.inc index 40e0dd9a..4c5e2c80 100644 --- a/data/scripts/graveyard/script_Object97FirstCrow.inc +++ b/data/scripts/graveyard/script_Object97FirstCrow.inc @@ -6,7 +6,7 @@ SCRIPT_START script_Object97FirstCrow SetEntitySpeed 0x0300 Call sub_0807F348 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 PlaySound SFX_123 Call sub_0807F1A0 script_08009816: @@ -15,7 +15,7 @@ script_08009816: _0807EE30 JumpIfNot script_08009816 EndBlock - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Call sub_0807FBD4 PlaySound SFX_1F3 DoPostScriptAction 0x0006 diff --git a/data/scripts/graveyard/script_Object97SecondCrow.inc b/data/scripts/graveyard/script_Object97SecondCrow.inc index c3b86b00..131fe158 100644 --- a/data/scripts/graveyard/script_Object97SecondCrow.inc +++ b/data/scripts/graveyard/script_Object97SecondCrow.inc @@ -6,13 +6,13 @@ SCRIPT_START script_Object97SecondCrow SetEntitySpeed 0x0300 Call sub_0807F348 EndBlock - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 Call sub_0809E0A0 Call sub_0809E0D4 PlaySound SFX_1F3 Call sub_0807FBD4 PlaySound SFX_1F3 - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc b/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc index 4fbb447d..5d193069 100644 --- a/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc +++ b/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc @@ -8,7 +8,7 @@ SCRIPT_START script_PlayerAtGraveyardHouseDoor Wait 0x000a DoPostScriptAction 0x0004 Wait 0x003c - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 DoPostScriptAction 0x000d SetEntitySpeed 0x0100 _0807ECC4 0x0010 diff --git a/data/scripts/graveyard/script_PlayerAtKingGustav.inc b/data/scripts/graveyard/script_PlayerAtKingGustav.inc index 92ced678..d1214171 100644 --- a/data/scripts/graveyard/script_PlayerAtKingGustav.inc +++ b/data/scripts/graveyard/script_PlayerAtKingGustav.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerAtKingGustav _0807EDD4 0x0118, 0x0060 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/graveyard/script_PlayerGetKeyStolen.inc b/data/scripts/graveyard/script_PlayerGetKeyStolen.inc index 4848e38c..c805299a 100644 --- a/data/scripts/graveyard/script_PlayerGetKeyStolen.inc +++ b/data/scripts/graveyard/script_PlayerGetKeyStolen.inc @@ -8,14 +8,14 @@ SCRIPT_START script_PlayerGetKeyStolen _0807ECF4 0x0004 Call sub_0807F1E8 Wait 0x001e - _0807E5F8 0x00000040 - WaitForSomething2 0x00000020 + SetSyncFlag 0x00000040 + WaitForSyncFlagAndClear 0x00000020 PlaySound SFX_PLY_JUMP _0807EB44 0x0004 Call sub_0807F210 _0807EF3C 0x0200, 0x0020 DoPostScriptAction 0x0000 - _0807E5F8 0x00000040 + SetSyncFlag 0x00000040 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleCastle/script_Object69SanctuaryEntrance.inc b/data/scripts/hyruleCastle/script_Object69SanctuaryEntrance.inc index 6837ac18..9f2a3cd7 100644 --- a/data/scripts/hyruleCastle/script_Object69SanctuaryEntrance.inc +++ b/data/scripts/hyruleCastle/script_Object69SanctuaryEntrance.inc @@ -6,7 +6,7 @@ SCRIPT_START script_Object69SanctuaryEntrance Call sub_0807F9A4 Call sub_0807DF28 StartPlayerScript script_PlayerAtSanctuaryEntrance - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 _0807EB28 0x132d WaitUntilTextboxCloses .ifdef JP diff --git a/data/scripts/hyruleTown/script_Anju.inc b/data/scripts/hyruleTown/script_Anju.inc index 6603d7fb..827726c2 100644 --- a/data/scripts/hyruleTown/script_Anju.inc +++ b/data/scripts/hyruleTown/script_Anju.inc @@ -14,7 +14,7 @@ script_0801015A: JumpIf script_0801019E MessageFromTargetPos 0x3001, 0x0000 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_080101A6 Call sub_080A1608 WaitUntilTextboxCloses @@ -43,7 +43,7 @@ script_080101AC: StopBgm _0807E778 0x0004 DoFade5 - WaitFor_2 + WaitForFadeFinish CallWithArg sub_0807F75C, 0x03400378 Call sub_080791BC Call sub_0807FB74 @@ -58,7 +58,7 @@ script_080101AC: EndBlock _0807E778 0x0004 DoFade4 - WaitFor_2 + WaitForFadeFinish PlayBGM Call sub_080A13B4 WaitUntilTextboxCloses diff --git a/data/scripts/hyruleTown/script_BedAtSimons.inc b/data/scripts/hyruleTown/script_BedAtSimons.inc index 8a2c4116..3d37f36d 100644 --- a/data/scripts/hyruleTown/script_BedAtSimons.inc +++ b/data/scripts/hyruleTown/script_BedAtSimons.inc @@ -6,7 +6,7 @@ SCRIPT_START script_BedAtSimons SetIntVariable 0x00000000 DoPostScriptAction 0x0001 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 BeginBlock SetIntVariable 0x00000001 DoPostScriptAction 0x0001 diff --git a/data/scripts/hyruleTown/script_Beedle.inc b/data/scripts/hyruleTown/script_Beedle.inc index acbd42c2..38c53a6c 100644 --- a/data/scripts/hyruleTown/script_Beedle.inc +++ b/data/scripts/hyruleTown/script_Beedle.inc @@ -40,11 +40,11 @@ script_08010570: Call sub_080634EC CallWithArg sub_0807F78C, 0x00000000 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_080105E0 CallWithArg sub_0807F7C4, 0x00000000 JumpIfNot script_080105C4 - _0807E48C 0x0020 + CheckBottleContaining 0x0020 JumpIfNot script_080105CC Call sub_08063504 JumpIf script_080105D4 diff --git a/data/scripts/hyruleTown/script_Carlov.inc b/data/scripts/hyruleTown/script_Carlov.inc index 7192157a..ac6a116b 100644 --- a/data/scripts/hyruleTown/script_Carlov.inc +++ b/data/scripts/hyruleTown/script_Carlov.inc @@ -16,7 +16,7 @@ script_08014462: MessageFromTarget 0x4202 MessageFromTarget 0x4203 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_080144F0 DoPostScriptAction 0x0001 Wait 0x008c diff --git a/data/scripts/hyruleTown/script_Carlov2.inc b/data/scripts/hyruleTown/script_Carlov2.inc index f97b9799..89c39d57 100644 --- a/data/scripts/hyruleTown/script_Carlov2.inc +++ b/data/scripts/hyruleTown/script_Carlov2.inc @@ -13,7 +13,7 @@ script_0801463A: .else JumpIf script_080146A0 .endif - TestBit 0x00000004 + CheckSyncFlagAndClear 0x00000004 JumpIf script_0801477A .ifdef EU CheckPlayerInRegion 0x0078, 0x0078, 0x0810 @@ -26,8 +26,8 @@ script_0801463A: script_0801469A: StartPlayerScript script_PlayerAtCarlov Wait 0x0010 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 _0807E878 Jump script_0801463A script_080146E2: @@ -80,8 +80,8 @@ script_08014672: WaitUntilTextboxCloses StartPlayerScript script_PlayerAtCarlov Wait 0x0010 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 _0807E878 Jump script_0801463A script_080146A0: @@ -146,7 +146,7 @@ script_0801472E: ClearRoomFlag 0x0006 Call sub_08088544 script_0801473C: - _0807E3E8 + CheckTextboxResult JumpIfNot script_08014770 WaitUntilTextboxCloses _0807E3BC 0x0001 @@ -183,7 +183,7 @@ script_0801478A: WaitUntilTextboxCloses Call sub_080885B0 WaitPlayerGetItem - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Jump script_080147CE script_080147A4: _0807E930 0x0009 diff --git a/data/scripts/hyruleTown/script_CarlovChest.inc b/data/scripts/hyruleTown/script_CarlovChest.inc index bb1fe576..88a59859 100644 --- a/data/scripts/hyruleTown/script_CarlovChest.inc +++ b/data/scripts/hyruleTown/script_CarlovChest.inc @@ -9,11 +9,11 @@ script_080148F4: Call sub_0806E140 JumpIfNot script_08014932 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_08014938 _0807E864 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 Call sub_0806E1E0 WaitUntilTextboxCloses Wait 0x0018 @@ -23,8 +23,8 @@ script_08014932: WaitUntilTextboxCloses Jump script_08014938 script_08014938: - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 Call sub_0806E1FC Wait 0x001e Call sub_0807DF50 diff --git a/data/scripts/hyruleTown/script_CarlovGame.inc b/data/scripts/hyruleTown/script_CarlovGame.inc index d13a2afa..f22343fa 100644 --- a/data/scripts/hyruleTown/script_CarlovGame.inc +++ b/data/scripts/hyruleTown/script_CarlovGame.inc @@ -13,9 +13,9 @@ SCRIPT_START script_CarlovGame MessageFromTargetPos 0x4215, 0x000c _0807E878 script_0801482E: - TestBit 0x00000001 + CheckSyncFlagAndClear 0x00000001 JumpIf script_08014862 - TestBit 0x00000004 + CheckSyncFlagAndClear 0x00000004 JumpIf script_08014878 _0807E30C JumpIfNot script_0801482E @@ -30,18 +30,18 @@ script_08014862: _0807E930 0x0008 Wait 0x0020 _0807E930 0x0002 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Jump script_0801482E script_08014878: _0807E930 0x0009 Wait 0x003c _0807E930 0x0002 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Jump script_0801482E script_0801488E: - TestBit 0x00000001 + CheckSyncFlagAndClear 0x00000001 JumpIf script_080148C2 - TestBit 0x00000004 + CheckSyncFlagAndClear 0x00000004 JumpIf script_080148D8 _0807E30C JumpIfNot script_0801488E @@ -57,12 +57,12 @@ script_080148C2: _0807E930 0x0008 Wait 0x0020 _0807E930 0x0002 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Jump script_0801488E script_080148D8: _0807E930 0x0009 Wait 0x003c _0807E930 0x0002 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Jump script_0801488E .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Din.inc b/data/scripts/hyruleTown/script_Din.inc index 5e4efe0e..b78e1802 100644 --- a/data/scripts/hyruleTown/script_Din.inc +++ b/data/scripts/hyruleTown/script_Din.inc @@ -38,7 +38,7 @@ script_08011CC2: DoPostScriptAction 0x0000 MessageNoOverlap 0x3105 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIf script_08011D0E _0807E878 _0807EB44 0x0004 diff --git a/data/scripts/hyruleTown/script_Din2.inc b/data/scripts/hyruleTown/script_Din2.inc index b7740421..31c5c728 100644 --- a/data/scripts/hyruleTown/script_Din2.inc +++ b/data/scripts/hyruleTown/script_Din2.inc @@ -27,7 +27,7 @@ script_08011E96: script_08011ECC: MessageNoOverlap 0x3111 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIf script_08011EF4 script_08011ED8: _0807E878 diff --git a/data/scripts/hyruleTown/script_DinMovedIn.inc b/data/scripts/hyruleTown/script_DinMovedIn.inc index e51fe95b..c0ee74ba 100644 --- a/data/scripts/hyruleTown/script_DinMovedIn.inc +++ b/data/scripts/hyruleTown/script_DinMovedIn.inc @@ -19,7 +19,7 @@ script_0801203A: SetLocalFlag 0x0094 Jump script_0801209E script_0801205E: - _0807E48C 0x0031 + CheckBottleContaining 0x0031 JumpIfNot script_08012070 MessageNoOverlap 0x3123 WaitUntilTextboxCloses @@ -27,13 +27,13 @@ script_0801205E: script_08012070: MessageNoOverlap 0x3124 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_0801209E - _0807E48C 0x0020 + CheckBottleContaining 0x0020 JumpIfNot script_0801209A MessageNoOverlap 0x3125 WaitUntilTextboxCloses - _0807F034 0x0031 + GivePlayerItem 0x0031 WaitPlayerGetItem .ifdef USA Call sub_0807FC24 diff --git a/data/scripts/hyruleTown/script_DrLeftDoor.inc b/data/scripts/hyruleTown/script_DrLeftDoor.inc index 138575a6..9e92d307 100644 --- a/data/scripts/hyruleTown/script_DrLeftDoor.inc +++ b/data/scripts/hyruleTown/script_DrLeftDoor.inc @@ -14,7 +14,7 @@ script_0800EF50: MessageFromTarget 0x4d01 WaitUntilTextboxCloses StartPlayerScript script_PlayerAtDrLeftDoor - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Wait 0x000f _0807E878 Jump script_0800EF50 diff --git a/data/scripts/hyruleTown/script_Farore.inc b/data/scripts/hyruleTown/script_Farore.inc index 6ab0b9c9..23de485b 100644 --- a/data/scripts/hyruleTown/script_Farore.inc +++ b/data/scripts/hyruleTown/script_Farore.inc @@ -38,7 +38,7 @@ script_08011E1A: DoPostScriptAction 0x0000 MessageNoOverlap 0x3104 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIf script_08011E66 _0807E878 _0807EB44 0x0004 diff --git a/data/scripts/hyruleTown/script_Farore2.inc b/data/scripts/hyruleTown/script_Farore2.inc index fcb12dfe..7920be1f 100644 --- a/data/scripts/hyruleTown/script_Farore2.inc +++ b/data/scripts/hyruleTown/script_Farore2.inc @@ -27,7 +27,7 @@ script_08011FAE: script_08011FE4: MessageNoOverlap 0x3110 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIf script_0801200C script_08011FF0: _0807E878 diff --git a/data/scripts/hyruleTown/script_FaroreMovedIn.inc b/data/scripts/hyruleTown/script_FaroreMovedIn.inc index 1d3e38a0..474b8dea 100644 --- a/data/scripts/hyruleTown/script_FaroreMovedIn.inc +++ b/data/scripts/hyruleTown/script_FaroreMovedIn.inc @@ -19,7 +19,7 @@ script_08012152: SetLocalFlag 0x0096 Jump script_080121B6 script_08012176: - _0807E48C 0x0030 + CheckBottleContaining 0x0030 JumpIfNot script_08012188 MessageNoOverlap 0x311d WaitUntilTextboxCloses @@ -27,13 +27,13 @@ script_08012176: script_08012188: MessageNoOverlap 0x311e WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_080121B6 - _0807E48C 0x0020 + CheckBottleContaining 0x0020 JumpIfNot script_080121B2 MessageNoOverlap 0x311f WaitUntilTextboxCloses - _0807F034 0x0030 + GivePlayerItem 0x0030 WaitPlayerGetItem .ifdef USA Call sub_0807FC24 diff --git a/data/scripts/hyruleTown/script_FirstHouseDoor.inc b/data/scripts/hyruleTown/script_FirstHouseDoor.inc index b30659fa..56501984 100644 --- a/data/scripts/hyruleTown/script_FirstHouseDoor.inc +++ b/data/scripts/hyruleTown/script_FirstHouseDoor.inc @@ -17,7 +17,7 @@ script_0801091C: WaitUntilTextboxCloses script_08010942: StartPlayerScript script_PlayerAtInnDoor - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Call sub_0807DF50 _0807E878 Jump script_0801091C diff --git a/data/scripts/hyruleTown/script_GoronMerchant.inc b/data/scripts/hyruleTown/script_GoronMerchant.inc index 014193bf..66d1a451 100644 --- a/data/scripts/hyruleTown/script_GoronMerchant.inc +++ b/data/scripts/hyruleTown/script_GoronMerchant.inc @@ -51,7 +51,7 @@ script_08010860: _0807EB74 Call sub_08069660 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_080108B2 Call GoronMerchant_TryToBuyKinstone JumpIfNot script_080108B2 diff --git a/data/scripts/hyruleTown/script_InnDoor.inc b/data/scripts/hyruleTown/script_InnDoor.inc index b88ef151..931ee30e 100644 --- a/data/scripts/hyruleTown/script_InnDoor.inc +++ b/data/scripts/hyruleTown/script_InnDoor.inc @@ -6,7 +6,7 @@ SCRIPT_START script_InnDoor Call sub_0807F9A4 Call sub_0807DF28 StartPlayerScript script_PlayerAtInnDoor - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 CheckRoomFlag 0x0001 JumpIf script_08010900 _0807EB28 0x0b63 diff --git a/data/scripts/hyruleTown/script_Librari.inc b/data/scripts/hyruleTown/script_Librari.inc index 06bae1ad..8aa1476a 100644 --- a/data/scripts/hyruleTown/script_Librari.inc +++ b/data/scripts/hyruleTown/script_Librari.inc @@ -17,7 +17,7 @@ script_0800E974: WaitUntilTextboxCloses DoPostScriptAction 0x000b StartPlayerScript script_PlayerStepOnTrap - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 DoPostScriptAction 0x000a MessageFromTarget 0x4a24 WaitUntilTextboxCloses @@ -27,7 +27,7 @@ script_0800E974: WaitUntilTextboxCloses _0807E930 0x0000 StartPlayerScript script_PlayerActivatedTrapCard - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 SetLocalFlag 0x0074 PlaySound SFX_SECRET Wait 0x00f0 diff --git a/data/scripts/hyruleTown/script_LibrariLater.inc b/data/scripts/hyruleTown/script_LibrariLater.inc index f6d3c71c..cca9ae05 100644 --- a/data/scripts/hyruleTown/script_LibrariLater.inc +++ b/data/scripts/hyruleTown/script_LibrariLater.inc @@ -17,7 +17,7 @@ script_08012440: CheckLocalFlag 0x00b3 JumpIf script_08012474 SetLocalFlag 0x00b3 - _0807F034 0x0062 + GivePlayerItem 0x0062 WaitPlayerGetItem .ifdef USA SetLocalFlag 0x00d0 diff --git a/data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc b/data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc index f606616c..888e490f 100644 --- a/data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc +++ b/data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc @@ -29,8 +29,8 @@ script_08008BD2: MessageNoOverlap 0x490c WaitUntilTextboxCloses LoadRoomEntityList gUnk_080D6784 - WaitForSomething 0x00000001 - WaitForSomething 0x00000004 + WaitForSyncFlag 0x00000001 + WaitForSyncFlag 0x00000004 Wait 0x000f PlaySound SFX_SECRET _0807E930 0x0004 diff --git a/data/scripts/hyruleTown/script_MalonHyruleTown.inc b/data/scripts/hyruleTown/script_MalonHyruleTown.inc index 3e73e037..6e1f2b13 100644 --- a/data/scripts/hyruleTown/script_MalonHyruleTown.inc +++ b/data/scripts/hyruleTown/script_MalonHyruleTown.inc @@ -19,14 +19,14 @@ script_08014F4A: CallWithArg sub_0807F854, 0x00010064 EndBlock WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_08014FA6 HasRupees 0x0064 JumpIfNot script_08014F9A - _0807E48C 0x0020 + CheckBottleContaining 0x0020 JumpIfNot script_08014FA2 ModRupees 0xff9c - _0807F034 0x0022 + GivePlayerItem 0x0022 WaitPlayerGetItem MessageNoOverlap 0x3b11 Jump script_08014FA6 diff --git a/data/scripts/hyruleTown/script_Marcy.inc b/data/scripts/hyruleTown/script_Marcy.inc index 5cfcb3a4..f54f82fd 100644 --- a/data/scripts/hyruleTown/script_Marcy.inc +++ b/data/scripts/hyruleTown/script_Marcy.inc @@ -16,7 +16,7 @@ script_08010746: JumpIfNot script_08010786 EndBlock WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_08010786 HasRupees 0x00c8 JumpIf script_08010778 diff --git a/data/scripts/hyruleTown/script_Nayru.inc b/data/scripts/hyruleTown/script_Nayru.inc index 383bb3e1..2815c9c5 100644 --- a/data/scripts/hyruleTown/script_Nayru.inc +++ b/data/scripts/hyruleTown/script_Nayru.inc @@ -38,7 +38,7 @@ script_08011D6E: DoPostScriptAction 0x0000 MessageNoOverlap 0x3103 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIf script_08011DBA _0807E878 _0807EB44 0x0004 diff --git a/data/scripts/hyruleTown/script_Nayru2.inc b/data/scripts/hyruleTown/script_Nayru2.inc index a7ee5772..c4ab770d 100644 --- a/data/scripts/hyruleTown/script_Nayru2.inc +++ b/data/scripts/hyruleTown/script_Nayru2.inc @@ -27,7 +27,7 @@ script_08011F22: script_08011F58: MessageNoOverlap 0x310f WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIf script_08011F80 script_08011F64: _0807E878 diff --git a/data/scripts/hyruleTown/script_NayruMovedIn.inc b/data/scripts/hyruleTown/script_NayruMovedIn.inc index e754a9f5..dbef277e 100644 --- a/data/scripts/hyruleTown/script_NayruMovedIn.inc +++ b/data/scripts/hyruleTown/script_NayruMovedIn.inc @@ -19,7 +19,7 @@ script_080120C6: SetLocalFlag 0x0095 Jump script_0801212A script_080120EA: - _0807E48C 0x002f + CheckBottleContaining 0x002f JumpIfNot script_080120FC MessageNoOverlap 0x3117 WaitUntilTextboxCloses @@ -27,13 +27,13 @@ script_080120EA: script_080120FC: MessageNoOverlap 0x3118 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_0801212A - _0807E48C 0x0020 + CheckBottleContaining 0x0020 JumpIfNot script_08012126 MessageNoOverlap 0x3119 WaitUntilTextboxCloses - _0807F034 0x002f + GivePlayerItem 0x002f WaitPlayerGetItem .ifdef USA Call sub_0807FC24 diff --git a/data/scripts/hyruleTown/script_Object69AllBooksCollected.inc b/data/scripts/hyruleTown/script_Object69AllBooksCollected.inc index d45cec4b..dabc4629 100644 --- a/data/scripts/hyruleTown/script_Object69AllBooksCollected.inc +++ b/data/scripts/hyruleTown/script_Object69AllBooksCollected.inc @@ -6,13 +6,13 @@ SCRIPT_START script_Object69AllBooksCollected CameraTargetEntity EndBlock Wait 0x001e - _0807E5F8 0x00000002 - WaitForSomething 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlag 0x00000001 Wait 0x000f _0807F0B4 0x0004 CameraTargetPlayer Wait 0x001e - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Object69SimonsSimulation.inc b/data/scripts/hyruleTown/script_Object69SimonsSimulation.inc index 8601a1a6..00761031 100644 --- a/data/scripts/hyruleTown/script_Object69SimonsSimulation.inc +++ b/data/scripts/hyruleTown/script_Object69SimonsSimulation.inc @@ -4,7 +4,7 @@ SCRIPT_START script_Object69SimonsSimulation _0807E888 EndBlock CallWithArg sub_0806C2A0, 0x00000001 - WaitFor_2 + WaitForFadeFinish Wait 0x003c _0807E878 SetRoomFlag 0x0000 @@ -28,7 +28,7 @@ script_08011C28: WaitPlayerGetItem Wait 0x001e CallWithArg sub_0806C2A0, 0x00000000 - WaitFor_2 + WaitForFadeFinish Wait 0x003c Call sub_0806C280 SCRIPT_END diff --git a/data/scripts/hyruleTown/script_Object6ACarlov2.inc b/data/scripts/hyruleTown/script_Object6ACarlov2.inc index 192e0708..a10f0656 100644 --- a/data/scripts/hyruleTown/script_Object6ACarlov2.inc +++ b/data/scripts/hyruleTown/script_Object6ACarlov2.inc @@ -30,8 +30,8 @@ script_08014632: script_08014642: CheckRoomFlag 0x0009 JumpIf script_08014642 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 Call sub_0807DF50 _0807E878 Jump script_080145F8 @@ -43,8 +43,8 @@ script_08014642: script_08014608: CheckRoomFlag 0x0004 JumpIf script_08014608 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000008 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000008 Call sub_0807DF50 _0807E878 Jump script_080145F8 diff --git a/data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc b/data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc index f688efa6..ad162bf7 100644 --- a/data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc +++ b/data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc @@ -12,8 +12,8 @@ script_0801454C: WaitUntilTextboxCloses StartPlayerScript script_PlayerWhenLeavingCarlovAlreadyPaid Wait 0x0010 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 _0807E878 Jump script_0801454C SCRIPT_END diff --git a/data/scripts/hyruleTown/script_Phonograph.inc b/data/scripts/hyruleTown/script_Phonograph.inc index 6bdd817e..b4cae722 100644 --- a/data/scripts/hyruleTown/script_Phonograph.inc +++ b/data/scripts/hyruleTown/script_Phonograph.inc @@ -10,7 +10,7 @@ script_0800BA46: Call sub_0807DF28 MessageFromTarget 0x3301 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_0800BA6C StopBgm Call sub_0806E964 diff --git a/data/scripts/hyruleTown/script_PhonographDoor.inc b/data/scripts/hyruleTown/script_PhonographDoor.inc index 00f9c7b0..f5de6c5e 100644 --- a/data/scripts/hyruleTown/script_PhonographDoor.inc +++ b/data/scripts/hyruleTown/script_PhonographDoor.inc @@ -23,7 +23,7 @@ SCRIPT_START script_PhonographDoor Call sub_0807F9A4 Call sub_0807DF28 StartPlayerScript script_PlayerCannotEnter - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 CheckRoomFlag 0x0001 JumpIf script_080109DE _0807EB28 0x0b64 diff --git a/data/scripts/hyruleTown/script_Pita.inc b/data/scripts/hyruleTown/script_Pita.inc index d03c5f28..eaa60fe9 100644 --- a/data/scripts/hyruleTown/script_Pita.inc +++ b/data/scripts/hyruleTown/script_Pita.inc @@ -21,7 +21,7 @@ script_080106E0: Call sub_08062EB8 CallWithArg sub_0807F78C, 0x00000000 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_08010726 WaitUntilTextboxCloses BuyItem 0x0000, 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc b/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc index 1ade796e..32ceacb2 100644 --- a/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc +++ b/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc @@ -10,7 +10,7 @@ SCRIPT_START script_PlayerActivatedTrapCard DoPostScriptAction 0x0000 DoPostScriptAction 0x0005 Wait 0x003c - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerAtCarlov.inc b/data/scripts/hyruleTown/script_PlayerAtCarlov.inc index dc9ef22d..68bd0226 100644 --- a/data/scripts/hyruleTown/script_PlayerAtCarlov.inc +++ b/data/scripts/hyruleTown/script_PlayerAtCarlov.inc @@ -1,11 +1,11 @@ @ Player at Carlov SCRIPT_START script_PlayerAtCarlov EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x00e0 _0807EDD4 0x0078, 0x0068 DoPostScriptAction 0x0000 Wait 0x0010 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_0807921C SCRIPT_END diff --git a/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc b/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc index ea4304ac..985483a2 100644 --- a/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc +++ b/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc @@ -6,7 +6,7 @@ SCRIPT_START script_PlayerAtDrLeftDoor _0807EB44 0x0004 DoPostScriptAction 0x0001 _0807ECC4 0x0008 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc b/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc index 87908590..d74971cd 100644 --- a/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc +++ b/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc @@ -6,7 +6,7 @@ SCRIPT_START script_PlayerAtInnDoor _0807ECC4 0x0010 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerAtRem.inc b/data/scripts/hyruleTown/script_PlayerAtRem.inc index c39158d6..14ab94ad 100644 --- a/data/scripts/hyruleTown/script_PlayerAtRem.inc +++ b/data/scripts/hyruleTown/script_PlayerAtRem.inc @@ -10,6 +10,6 @@ SCRIPT_START script_PlayerAtRem Wait 0x0008 DoPostScriptAction 0x0004 Wait 0x000f - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerCannotEnter.inc b/data/scripts/hyruleTown/script_PlayerCannotEnter.inc index 1c1a7c5f..9ae17985 100644 --- a/data/scripts/hyruleTown/script_PlayerCannotEnter.inc +++ b/data/scripts/hyruleTown/script_PlayerCannotEnter.inc @@ -6,7 +6,7 @@ SCRIPT_START script_PlayerCannotEnter _0807EC94 0x0010 _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerSleepingInn.inc b/data/scripts/hyruleTown/script_PlayerSleepingInn.inc index fc76be34..eb09df0a 100644 --- a/data/scripts/hyruleTown/script_PlayerSleepingInn.inc +++ b/data/scripts/hyruleTown/script_PlayerSleepingInn.inc @@ -8,7 +8,7 @@ SCRIPT_START script_PlayerSleepingInn Wait 0x003c _0807E778 0x0004 DoFade4 - WaitFor_2 + WaitForFadeFinish script_08010A78: Call sub_0807F0D8 JumpIfNot script_08010A78 diff --git a/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc b/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc index 3aa0da5a..1666a56b 100644 --- a/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc +++ b/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerStepOnTrap DoPostScriptAction 0x0001 _0807EDD4 0x0078, 0x0080 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/hyruleTown/script_PlayerWakingUpAtSimons.inc b/data/scripts/hyruleTown/script_PlayerWakingUpAtSimons.inc index 45d0c2bd..748c70ef 100644 --- a/data/scripts/hyruleTown/script_PlayerWakingUpAtSimons.inc +++ b/data/scripts/hyruleTown/script_PlayerWakingUpAtSimons.inc @@ -5,10 +5,10 @@ SCRIPT_START script_PlayerWakingUpAtSimons EndBlock Wait 0x003c CallWithArg sub_0806C2A0, 0x00000001 - WaitFor_2 + WaitForFadeFinish Wait 0x003c DoPostScriptAction 0x0014 Wait 0x001e - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerWhenLeavingCarlovAlreadyPaid.inc b/data/scripts/hyruleTown/script_PlayerWhenLeavingCarlovAlreadyPaid.inc index 77d229c6..be67e071 100644 --- a/data/scripts/hyruleTown/script_PlayerWhenLeavingCarlovAlreadyPaid.inc +++ b/data/scripts/hyruleTown/script_PlayerWhenLeavingCarlovAlreadyPaid.inc @@ -1,11 +1,11 @@ @ Player at Carlov when trying to leave when already paid SCRIPT_START script_PlayerWhenLeavingCarlovAlreadyPaid EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 SetEntitySpeed 0x00e0 _0807EDD4 0x0078, 0x0078 DoPostScriptAction 0x0000 Wait 0x0010 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_0807921C SCRIPT_END diff --git a/data/scripts/hyruleTown/script_RemFallingAsleep.inc b/data/scripts/hyruleTown/script_RemFallingAsleep.inc index a94b3e56..b685fd1f 100644 --- a/data/scripts/hyruleTown/script_RemFallingAsleep.inc +++ b/data/scripts/hyruleTown/script_RemFallingAsleep.inc @@ -9,7 +9,7 @@ SCRIPT_START script_RemFallingAsleep SetLocalFlag 0x0060 ClearLocalFlag 0x0061 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 _0807E908 0x0004 Call sub_0806A958 CallWithArg sub_0807F93C, 0x0000f2f4 @@ -61,8 +61,8 @@ script_08013006: Wait 0x00f0 MessageNoOverlap 0x4405 WaitUntilTextboxCloses - _0807E5F8 0x00000200 - _0807F034 0x0015 + SetSyncFlag 0x00000200 + GivePlayerItem 0x0015 WaitPlayerGetItem _0807EB8C MessageNoOverlap 0x4406 diff --git a/data/scripts/hyruleTown/script_Simon.inc b/data/scripts/hyruleTown/script_Simon.inc index 4c5531d3..4eb0c09c 100644 --- a/data/scripts/hyruleTown/script_Simon.inc +++ b/data/scripts/hyruleTown/script_Simon.inc @@ -8,7 +8,7 @@ SCRIPT_START script_Simon EndBlock CheckGlobalFlag 0x0050 JumpIfNot script_08011B84 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 _0807EB44 0x0006 DoPostScriptAction 0x0004 Wait 0x003c @@ -26,7 +26,7 @@ script_08011B84: _0807EB74 MessageNoOverlap 0x3d01 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIf script_08011BA4 script_08011B9A: _0807E878 @@ -45,7 +45,7 @@ script_08011BBC: MessageNoOverlap 0x3d06 WaitUntilTextboxCloses CallWithArg sub_0806C2A0, 0x00000000 - WaitFor_2 + WaitForFadeFinish Wait 0x003c Call sub_0806C224 Jump script_08011B9A diff --git a/data/scripts/hyruleTown/script_SimonsDoor.inc b/data/scripts/hyruleTown/script_SimonsDoor.inc index 96601212..af0ab35f 100644 --- a/data/scripts/hyruleTown/script_SimonsDoor.inc +++ b/data/scripts/hyruleTown/script_SimonsDoor.inc @@ -6,7 +6,7 @@ SCRIPT_START script_SimonsDoor Call sub_0807F9A4 Call sub_0807DF28 StartPlayerScript script_PlayerCannotEnter - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 CheckRoomFlag 0x0001 JumpIf script_08010994 _0807EB28 0x0b63 diff --git a/data/scripts/hyruleTown/script_StockwellBuy.inc b/data/scripts/hyruleTown/script_StockwellBuy.inc index ade623f7..66e1b75f 100644 --- a/data/scripts/hyruleTown/script_StockwellBuy.inc +++ b/data/scripts/hyruleTown/script_StockwellBuy.inc @@ -3,7 +3,7 @@ SCRIPT_START script_StockwellBuy EndBlock _0807E864 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_080143AC Wait 0x001e Call sub_08065370 diff --git a/data/scripts/hyruleTown/script_StockwellDogFood.inc b/data/scripts/hyruleTown/script_StockwellDogFood.inc index bbcb3dd7..ea0f8908 100644 --- a/data/scripts/hyruleTown/script_StockwellDogFood.inc +++ b/data/scripts/hyruleTown/script_StockwellDogFood.inc @@ -9,7 +9,7 @@ SCRIPT_START script_StockwellDogFood Wait 0x003c MessageNoOverlap 0x2c16 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIf script_080143FA SetIntVariable 0x00000002 Call sub_08065528 @@ -22,7 +22,7 @@ script_080143FA: Wait 0x000a SetIntVariable 0x00000000 Call sub_08065528 - _0807F034 0x0036 + GivePlayerItem 0x0036 WaitPlayerGetItem MessageNoOverlap 0x2c19 WaitUntilTextboxCloses diff --git a/data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc b/data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc index e88200b9..a0742182 100644 --- a/data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc +++ b/data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc @@ -8,7 +8,7 @@ SCRIPT_START script_SturgeonAllBooksCollected SetEntitySpeed 0x0300 PlaySound SFX_STAIRS EndBlock - WaitForSomething 0x00000002 + WaitForSyncFlag 0x00000002 MessageNoOverlap 0x490d WaitUntilTextboxCloses DoPostScriptAction 0x0007 @@ -49,7 +49,7 @@ SCRIPT_START script_SturgeonAllBooksCollected _0807EDD4 0x0068, 0x0018 Call sub_08064D10 PlaySound SFX_STAIRS - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_TownMinish1.inc b/data/scripts/hyruleTown/script_TownMinish1.inc index d8004d43..48a4ba7c 100644 --- a/data/scripts/hyruleTown/script_TownMinish1.inc +++ b/data/scripts/hyruleTown/script_TownMinish1.inc @@ -22,7 +22,7 @@ script_0800E708: Jump script_0800E6F4 script_0800E722: WaitUntilTextboxCloses - _0807F034 0x0057 + GivePlayerItem 0x0057 WaitPlayerGetItem WaitUntilTextboxCloses _0807E878 diff --git a/data/scripts/hyruleTown/script_TownMinish4.inc b/data/scripts/hyruleTown/script_TownMinish4.inc index 6925a769..e28d7805 100644 --- a/data/scripts/hyruleTown/script_TownMinish4.inc +++ b/data/scripts/hyruleTown/script_TownMinish4.inc @@ -8,7 +8,7 @@ script_0800ED98: BeginBlock CheckEntityInteractType JumpIf script_0800EDB6 - TestBit 0x00000001 + CheckSyncFlagAndClear 0x00000001 JumpIf script_0800EE12 Call sub_0806AEE4 Jump script_0800ED98 @@ -19,30 +19,30 @@ script_0800EDB6: CheckLocalFlag 0x00ae JumpIf script_0800EE3E Wait 0x000a - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 MessageFromTarget 0x4c07 WaitUntilTextboxCloses - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 MessageFromTarget 0x4c08 WaitUntilTextboxCloses - _0807E5F8 0x00000020 + SetSyncFlag 0x00000020 MessageFromTarget 0x4c09 WaitUntilTextboxCloses SetIntVariable 0x00000503 Call sub_0807F420 - _0807E5F8 0x00000040 + SetSyncFlag 0x00000040 Call sub_0807DF50 _0807E878 SetLocalFlag 0x00ae Jump script_0800ED98 script_0800EE12: EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 _0807EB44 0x0002 CallWithArg sub_0806AF60, 0x00000008 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 Call sub_0806AED8 - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 Jump script_0800ED98 script_0800EE3E: MessageFromTarget 0x4c16 diff --git a/data/scripts/hyruleTown/script_TownMinish5.inc b/data/scripts/hyruleTown/script_TownMinish5.inc index 5eaf7777..e389bbcc 100644 --- a/data/scripts/hyruleTown/script_TownMinish5.inc +++ b/data/scripts/hyruleTown/script_TownMinish5.inc @@ -8,7 +8,7 @@ script_0800EE58: BeginBlock CheckEntityInteractType JumpIf script_0800EE76 - TestBit 0x00000001 + CheckSyncFlagAndClear 0x00000001 JumpIf script_0800EED2 Call sub_0806AEE4 Jump script_0800EE58 @@ -19,30 +19,30 @@ script_0800EE76: CheckLocalFlag 0x00ae JumpIf script_0800EEFE Wait 0x000a - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 MessageFromTarget 0x4c07 WaitUntilTextboxCloses - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 MessageFromTarget 0x4c08 WaitUntilTextboxCloses - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 MessageFromTarget 0x4c09 WaitUntilTextboxCloses SetIntVariable 0x00000503 Call sub_0807F420 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Call sub_0807DF50 _0807E878 SetLocalFlag 0x00ae Jump script_0800EE58 script_0800EED2: EndBlock - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 _0807EB44 0x0006 CallWithArg sub_0806AF60, 0x00000008 - WaitForSomething2 0x00000020 + WaitForSyncFlagAndClear 0x00000020 Call sub_0806AED8 - WaitForSomething2 0x00000040 + WaitForSyncFlagAndClear 0x00000040 Jump script_0800EE58 script_0800EEFE: MessageFromTarget 0x4c15 @@ -52,13 +52,13 @@ script_0800EEFE: Jump script_0800EE58 MessageFromTarget 0x4c07 WaitUntilTextboxCloses - _0807E5F8 0x00000012 + SetSyncFlag 0x00000012 Wait 0x000a MessageFromTarget 0x4c08 WaitUntilTextboxCloses - _0807E5F8 0x00000024 + SetSyncFlag 0x00000024 MessageFromTarget 0x4c09 WaitUntilTextboxCloses - _0807E5F8 0x00000048 + SetSyncFlag 0x00000048 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/kinstoneFusion/script_BigGoronKinstone2.inc b/data/scripts/kinstoneFusion/script_BigGoronKinstone2.inc index bcc6ae9a..527e5cd8 100644 --- a/data/scripts/kinstoneFusion/script_BigGoronKinstone2.inc +++ b/data/scripts/kinstoneFusion/script_BigGoronKinstone2.inc @@ -4,7 +4,7 @@ SCRIPT_START script_BigGoronKinstone2 Call sub_0806D660 SetEntitySpeed 0x0080 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 CallWithArg sub_0807F4F8, 0x00000048 Call sub_0806D66C Wait 0x000f diff --git a/data/scripts/kinstoneFusion/script_BigGoronKinstone3.inc b/data/scripts/kinstoneFusion/script_BigGoronKinstone3.inc index a7ed3fdc..cd1f8fca 100644 --- a/data/scripts/kinstoneFusion/script_BigGoronKinstone3.inc +++ b/data/scripts/kinstoneFusion/script_BigGoronKinstone3.inc @@ -4,7 +4,7 @@ SCRIPT_START script_BigGoronKinstone3 Call sub_0806D660 SetEntitySpeed 0x0080 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 CallWithArg sub_0807F4F8, 0x00000048 Call sub_0806D66C Wait 0x000f @@ -12,6 +12,6 @@ SCRIPT_START script_BigGoronKinstone3 Call sub_0806D67C _0807F0C8 0x001e, 0x0000 PlaySound SFX_10B - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/kinstoneFusion/script_BigGoronKinstone4.inc b/data/scripts/kinstoneFusion/script_BigGoronKinstone4.inc index 76f39ce4..f4a43257 100644 --- a/data/scripts/kinstoneFusion/script_BigGoronKinstone4.inc +++ b/data/scripts/kinstoneFusion/script_BigGoronKinstone4.inc @@ -9,6 +9,6 @@ SCRIPT_START script_BigGoronKinstone4 Wait 0x001e MessageNoOverlap 0x1d00 WaitUntilTextboxCloses - _0807E5F8 0x00000006 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000006 + WaitForSyncFlagAndClear 0x00000001 _0807F0C8 0xffff, 0x0000 diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone2.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone2.inc index 9d560766..2262d29c 100644 --- a/data/scripts/kinstoneFusion/script_Goron1Kinstone2.inc +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone2.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Goron1Kinstone2 _0807E930 0x0008 Call sub_0807F348 EndBlock - WaitFor_2 + WaitForFadeFinish Wait 0x00f0 _0807E930 0x0000 Wait 0x003c @@ -13,26 +13,26 @@ SCRIPT_START script_Goron1Kinstone2 WaitUntilTextboxCloses _0807E930 0x0008 Wait 0x003c - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 script_0800BD1C: CheckRoomFlag 0x00ff JumpIfNot script_0800BD1C - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 _0807E930 0x0000 DoPostScriptAction 0x0004 Wait 0x003c MessageNoOverlap 0x0e0c WaitUntilTextboxCloses - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x000f _0807E930 0x0008 Wait 0x0168 _0807E930 0x0000 Wait 0x003c _0807EB44 0x0002 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 SetEntitySpeed 0x0080 _0807EEF4 0x0000, 0xffe0 SCRIPT_END diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc index 21008023..145f5a99 100644 --- a/data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Goron1Kinstone3 _0807E930 0x0008 Call sub_0807F348 EndBlock - WaitFor_2 + WaitForFadeFinish Wait 0x00f0 _0807E930 0x0000 _0807EB44 0x0002 diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc index 66b724a4..0756ea9e 100644 --- a/data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Goron1Kinstone4 _0807E930 0x0008 Call sub_0807F348 EndBlock - WaitFor_2 + WaitForFadeFinish Wait 0x00f0 _0807E930 0x0000 _0807EB44 0x0002 diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc index fd835e10..d1561411 100644 --- a/data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Goron1Kinstone5 _0807E930 0x0008 Call sub_0807F348 EndBlock - WaitFor_2 + WaitForFadeFinish Wait 0x00f0 _0807E930 0x0000 _0807EB44 0x0002 diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc index 7457449d..6d2ee65f 100644 --- a/data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Goron1Kinstone6 _0807E930 0x0008 Call sub_0807F348 EndBlock - WaitFor_2 + WaitForFadeFinish Wait 0x00f0 _0807E930 0x0000 _0807EB44 0x0002 diff --git a/data/scripts/kinstoneFusion/script_Goron2Kinstone2.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone2.inc index b438f5dd..5aeac45c 100644 --- a/data/scripts/kinstoneFusion/script_Goron2Kinstone2.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone2.inc @@ -7,18 +7,18 @@ SCRIPT_START script_Goron2Kinstone2 SetEntitySpeed 0x0080 Call sub_0807F348 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0007 CallWithArg sub_0807F4F8, 0x00000270 Wait 0x001e MessageNoOverlap 0x0e0b WaitUntilTextboxCloses - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0100 _0807EDD4 0x0088, 0x0228 Wait 0x000f - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 DoPostScriptAction 0x000f _0807E930 0x0008 Wait 0x00b4 @@ -29,7 +29,7 @@ SCRIPT_START script_Goron2Kinstone2 _0807E930 0x0000 Wait 0x003c _0807EB44 0x0006 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 SetEntitySpeed 0x0080 _0807EEF4 0x0000, 0xffe0 Call sub_08054968 diff --git a/data/scripts/kinstoneFusion/script_Goron2Kinstone3.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone3.inc index 0906ab67..99a41fc4 100644 --- a/data/scripts/kinstoneFusion/script_Goron2Kinstone3.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone3.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Goron2Kinstone3 _0807E930 0x0008 Call sub_0807F348 EndBlock - WaitFor_2 + WaitForFadeFinish Wait 0x00f0 _0807E930 0x0000 _0807EB44 0x0006 @@ -13,20 +13,20 @@ SCRIPT_START script_Goron2Kinstone3 WaitUntilTextboxCloses _0807E930 0x0008 Wait 0x003c - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 script_0800BE88: _0807EB44 0x0004 script_0800BE8C: CheckRoomFlag 0x00ff JumpIfNot script_0800BE8C - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_08054F64 _0807E930 0x0000 DoPostScriptAction 0x0004 Wait 0x003c MessageNoOverlap 0x0e0f WaitUntilTextboxCloses - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_08054F64 DoPostScriptAction 0x000f _0807E930 0x0008 diff --git a/data/scripts/kinstoneFusion/script_Goron2Kinstone4.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone4.inc index d0e7f176..c8305e1f 100644 --- a/data/scripts/kinstoneFusion/script_Goron2Kinstone4.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone4.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Goron2Kinstone4 _0807E930 0x0008 Call sub_0807F348 EndBlock - WaitFor_2 + WaitForFadeFinish Wait 0x00f0 _0807E930 0x0000 _0807EB44 0x0006 @@ -13,20 +13,20 @@ SCRIPT_START script_Goron2Kinstone4 WaitUntilTextboxCloses _0807E930 0x0008 Wait 0x003c - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 script_0800BFA4: _0807EB44 0x0004 script_0800BFA8: CheckRoomFlag 0x00ff JumpIfNot script_0800BFA8 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_08054F64 _0807E930 0x0000 DoPostScriptAction 0x0004 Wait 0x003c MessageNoOverlap 0x0e12 WaitUntilTextboxCloses - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_08054F64 DoPostScriptAction 0x000f _0807E930 0x0008 diff --git a/data/scripts/kinstoneFusion/script_Goron2Kinstone5.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone5.inc index 9faaee2b..c82afd3a 100644 --- a/data/scripts/kinstoneFusion/script_Goron2Kinstone5.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone5.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Goron2Kinstone5 _0807E930 0x0008 Call sub_0807F348 EndBlock - WaitFor_2 + WaitForFadeFinish Wait 0x00f0 _0807E930 0x0000 _0807EB44 0x0006 @@ -13,20 +13,20 @@ SCRIPT_START script_Goron2Kinstone5 WaitUntilTextboxCloses _0807E930 0x0008 Wait 0x003c - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 script_0800C11C: _0807EB44 0x0004 script_0800C120: CheckRoomFlag 0x00ff JumpIfNot script_0800C120 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_08054F64 _0807E930 0x0000 DoPostScriptAction 0x0004 Wait 0x003c MessageNoOverlap 0x0e15 WaitUntilTextboxCloses - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_08054F64 DoPostScriptAction 0x000f _0807E930 0x0008 diff --git a/data/scripts/kinstoneFusion/script_Goron2Kinstone6.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone6.inc index bcd34839..87a5b960 100644 --- a/data/scripts/kinstoneFusion/script_Goron2Kinstone6.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone6.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Goron2Kinstone6 _0807E930 0x0008 Call sub_0807F348 EndBlock - WaitFor_2 + WaitForFadeFinish Wait 0x00f0 _0807E930 0x0000 _0807EB44 0x0006 @@ -13,20 +13,20 @@ SCRIPT_START script_Goron2Kinstone6 WaitUntilTextboxCloses _0807E930 0x0008 Wait 0x003c - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 script_0800C244: _0807EB44 0x0004 script_0800C248: CheckRoomFlag 0x00ff JumpIfNot script_0800C248 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_08054F64 _0807E930 0x0000 DoPostScriptAction 0x0004 Wait 0x003c MessageNoOverlap 0x0e18 WaitUntilTextboxCloses - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_08054F64 DoPostScriptAction 0x000f _0807E930 0x0008 diff --git a/data/scripts/kinstoneFusion/script_Goron3Kinstone3.inc b/data/scripts/kinstoneFusion/script_Goron3Kinstone3.inc index 1616c8fc..fc4e637f 100644 --- a/data/scripts/kinstoneFusion/script_Goron3Kinstone3.inc +++ b/data/scripts/kinstoneFusion/script_Goron3Kinstone3.inc @@ -7,18 +7,18 @@ SCRIPT_START script_Goron3Kinstone3 SetEntitySpeed 0x0080 Call sub_0807F348 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0007 CallWithArg sub_0807F4F8, 0x000001b8 Wait 0x001e MessageNoOverlap 0x0e0e WaitUntilTextboxCloses - _0807E5F8 0x0000000c - WaitForSomething2 0x00000002 + SetSyncFlag 0x0000000c + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0100 _0807EDD4 0x0088, 0x0178 Wait 0x000f - _0807E5F8 0x0000000c + SetSyncFlag 0x0000000c DoPostScriptAction 0x000f _0807E930 0x0008 Wait 0x00f0 diff --git a/data/scripts/kinstoneFusion/script_Goron4Kinstone4.inc b/data/scripts/kinstoneFusion/script_Goron4Kinstone4.inc index 29de7389..9d81f728 100644 --- a/data/scripts/kinstoneFusion/script_Goron4Kinstone4.inc +++ b/data/scripts/kinstoneFusion/script_Goron4Kinstone4.inc @@ -7,20 +7,20 @@ SCRIPT_START script_Goron4Kinstone4 SetEntitySpeed 0x0080 Call sub_0807F348 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0007 CallWithArg sub_0807F4F8, 0x000001b8 Wait 0x001e MessageNoOverlap 0x0e11 WaitUntilTextboxCloses - _0807E5F8 0x0000001c - WaitForSomething2 0x00000002 + SetSyncFlag 0x0000001c + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0100 _0807EDD4 0x0088, 0x0188 _0807EDD4 0x00a8, 0x0188 _0807EDD4 0x00a8, 0x0178 Wait 0x000f - _0807E5F8 0x0000001c + SetSyncFlag 0x0000001c DoPostScriptAction 0x000f _0807E930 0x0008 Wait 0x00b4 @@ -30,7 +30,7 @@ SCRIPT_START script_Goron4Kinstone4 _0807EB44 0x0004 _0807E930 0x0000 Wait 0x003c - _0807E5F8 0x0000001c + SetSyncFlag 0x0000001c SetEntitySpeed 0x0080 _0807EEF4 0x0000, 0xffe0 Call sub_08054968 diff --git a/data/scripts/kinstoneFusion/script_Goron5Kinstone5.inc b/data/scripts/kinstoneFusion/script_Goron5Kinstone5.inc index 0b75e7a9..7f86fcd3 100644 --- a/data/scripts/kinstoneFusion/script_Goron5Kinstone5.inc +++ b/data/scripts/kinstoneFusion/script_Goron5Kinstone5.inc @@ -7,20 +7,20 @@ SCRIPT_START script_Goron5Kinstone5 SetEntitySpeed 0x0080 Call sub_0807F348 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0007 CallWithArg sub_0807F4F8, 0x00000128 Wait 0x001e MessageNoOverlap 0x0e14 WaitUntilTextboxCloses - _0807E5F8 0x0000003c - WaitForSomething2 0x00000002 + SetSyncFlag 0x0000003c + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0100 _0807EDD4 0x0098, 0x00e8 _0807EDD4 0x00a8, 0x00e8 _0807EDD4 0x00a8, 0x00d8 Wait 0x000f - _0807E5F8 0x0000003c + SetSyncFlag 0x0000003c DoPostScriptAction 0x000f _0807E930 0x0008 Wait 0x00f0 diff --git a/data/scripts/kinstoneFusion/script_Goron6Kindstone6.inc b/data/scripts/kinstoneFusion/script_Goron6Kindstone6.inc index 1fb61b08..54967407 100644 --- a/data/scripts/kinstoneFusion/script_Goron6Kindstone6.inc +++ b/data/scripts/kinstoneFusion/script_Goron6Kindstone6.inc @@ -7,20 +7,20 @@ SCRIPT_START script_Goron6Kindstone6 SetEntitySpeed 0x0080 Call sub_0807F348 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0007 CallWithArg sub_0807F4F8, 0x00000128 Wait 0x001e MessageNoOverlap 0x0e17 WaitUntilTextboxCloses - _0807E5F8 0x0000007c - WaitForSomething2 0x00000002 + SetSyncFlag 0x0000007c + WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0100 _0807EDD4 0x0098, 0x00e8 _0807EDD4 0x00c8, 0x00e8 _0807EDD4 0x00c8, 0x00d8 Wait 0x000f - _0807E5F8 0x0000007c + SetSyncFlag 0x0000007c DoPostScriptAction 0x000f _0807E930 0x0008 Wait 0x00b4 @@ -30,7 +30,7 @@ SCRIPT_START script_Goron6Kindstone6 _0807EB44 0x0004 _0807E930 0x0000 Wait 0x003c - _0807E5F8 0x0000007c + SetSyncFlag 0x0000007c SetEntitySpeed 0x0080 _0807EEF4 0x0000, 0xffe0 Call sub_08054968 diff --git a/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc index 24f5b296..e6bb438f 100644 --- a/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc +++ b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc @@ -6,7 +6,7 @@ SCRIPT_START script_ObjectB3KinstoneSparkGoron _0807E930 0x0004 DoPostScriptAction 0x0008 EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Wait 0x000a DoPostScriptAction 0x0007 PlaySound SFX_136 diff --git a/data/scripts/lakeHylia/script_KingGustafHologram.inc b/data/scripts/lakeHylia/script_KingGustafHologram.inc index df7f4860..66c576f1 100644 --- a/data/scripts/lakeHylia/script_KingGustafHologram.inc +++ b/data/scripts/lakeHylia/script_KingGustafHologram.inc @@ -15,7 +15,7 @@ script_08012368: DoFade5 _0807E858 0x0080 EndBlock - WaitFor_2 + WaitForFadeFinish PlayBgm BGM_ELEMENTAL_SANCTUARY _0807EB28 0x1401 WaitUntilTextboxCloses @@ -27,7 +27,7 @@ script_08012368: Wait 0x003c _0807E8E4_0 StartPlayerScript script_PlayerAfterToD - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 MessageNoOverlap 0x1402 WaitUntilTextboxCloses StopBgm @@ -39,7 +39,7 @@ script_08012368: DoFade4 _0807E858 0x0080 EndBlock - WaitFor_2 + WaitForFadeFinish PlayBGM _0807EB28 0x1403 WaitUntilTextboxCloses diff --git a/data/scripts/lakeHylia/script_PlayerAfterToD.inc b/data/scripts/lakeHylia/script_PlayerAfterToD.inc index c84c96c6..8ad9a855 100644 --- a/data/scripts/lakeHylia/script_PlayerAfterToD.inc +++ b/data/scripts/lakeHylia/script_PlayerAfterToD.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerAfterToD EndBlock DoPostScriptAction 0x0004 Wait 0x003c - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/lonLonRanch/script_LonLonRanchDoor.inc b/data/scripts/lonLonRanch/script_LonLonRanchDoor.inc index 06147589..6172c951 100644 --- a/data/scripts/lonLonRanch/script_LonLonRanchDoor.inc +++ b/data/scripts/lonLonRanch/script_LonLonRanchDoor.inc @@ -5,16 +5,16 @@ SCRIPT_START script_LonLonRanchDoor CheckGlobalFlag 0x001d JumpIf script_0800B5BC EndBlock - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0008 PlaySound SFX_111 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0007 PlaySound SFX_111 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0008 PlaySound SFX_111 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0007 PlaySound SFX_111 script_0800B5BC: diff --git a/data/scripts/lonLonRanch/script_MalonLostKey.inc b/data/scripts/lonLonRanch/script_MalonLostKey.inc index c9ca75d0..7298bdca 100644 --- a/data/scripts/lonLonRanch/script_MalonLostKey.inc +++ b/data/scripts/lonLonRanch/script_MalonLostKey.inc @@ -10,7 +10,7 @@ script_0800B4BC: BeginBlock CheckEntityInteractType JumpIf script_0800B4D4 - TestBit 0x00000008 + CheckSyncFlagAndClear 0x00000008 JumpIf script_0800B4F0 Jump script_0800B4BC script_0800B4D4: @@ -25,20 +25,20 @@ script_0800B4D4: Jump script_0800B4BC script_0800B4F0: EndBlock - _0807E610 0x00000008 + ClearSyncFlag 0x00000008 _0807EDD4 0x0134, 0x0288 _0807EB44 0x0004 - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 MessageFromTarget 0x2016 WaitUntilTextboxCloses _0807EDD4 0x0158, 0x0288 DoPostScriptAction 0x0000 _0807EB44 0x0000 Wait 0x000a - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 DoPostScriptAction 0x0008 Wait 0x001e - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 SetGlobalFlag 0x001d Call sub_0807921C _0807E878 diff --git a/data/scripts/lonLonRanch/script_PlayerGiveKey.inc b/data/scripts/lonLonRanch/script_PlayerGiveKey.inc index b1559811..2034cd11 100644 --- a/data/scripts/lonLonRanch/script_PlayerGiveKey.inc +++ b/data/scripts/lonLonRanch/script_PlayerGiveKey.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerGiveKey Wait 0x000a _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 SCRIPT_END diff --git a/data/scripts/lonLonRanch/script_TalonGotKey.inc b/data/scripts/lonLonRanch/script_TalonGotKey.inc index abdcc262..1fb43ad5 100644 --- a/data/scripts/lonLonRanch/script_TalonGotKey.inc +++ b/data/scripts/lonLonRanch/script_TalonGotKey.inc @@ -9,11 +9,11 @@ SCRIPT_START script_TalonGotKey EndBlock Wait 0x000a DoPostScriptAction 0x0004 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 StartPlayerScript script_PlayerGiveKey _0807EDD4 0x0140, 0x0298 _0807EB74 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 _0807EB74 Wait 0x003c PlaySound SFX_TASK_COMPLETE @@ -27,11 +27,11 @@ SCRIPT_START script_TalonGotKey Wait 0x000a _0807EDD4 0x0158, 0x0288 Wait 0x0014 - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 _0807EDD4 0x0158, 0x0280 Wait 0x000a DoPostScriptAction 0x0008 - _0807E5F8 0x00000010 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000010 + SetSyncFlag 0x00000008 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/lonLonRanch/script_TalonInside.inc b/data/scripts/lonLonRanch/script_TalonInside.inc index 81a53026..71485a34 100644 --- a/data/scripts/lonLonRanch/script_TalonInside.inc +++ b/data/scripts/lonLonRanch/script_TalonInside.inc @@ -14,11 +14,11 @@ script_08014E64: _0807EB74 CallWithArg sub_0807F78C, 0x00000022 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_08014EBC CallWithArg sub_0807F7C4, 0x00000022 JumpIfNot script_08014EB0 - _0807E48C 0x0020 + CheckBottleContaining 0x0020 JumpIfNot script_08014EB8 CallWithArg sub_0807F800, 0x00000022 WaitPlayerGetItem diff --git a/data/scripts/minishWoods/script_08012D18.inc b/data/scripts/minishWoods/script_08012D18.inc index 8bffc355..9b8be5cf 100644 --- a/data/scripts/minishWoods/script_08012D18.inc +++ b/data/scripts/minishWoods/script_08012D18.inc @@ -15,7 +15,7 @@ SCRIPT_START script_08012D18 _0807EB28 0x111a WaitUntilTextboxCloses StartPlayerScript script_PlayerCannotEnter - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Call sub_0807DF50 _0807E878 Jump script_08012D18 diff --git a/data/scripts/minishWoods/script_BombMinish.inc b/data/scripts/minishWoods/script_BombMinish.inc index a9c6e55c..7a57205d 100644 --- a/data/scripts/minishWoods/script_BombMinish.inc +++ b/data/scripts/minishWoods/script_BombMinish.inc @@ -20,12 +20,12 @@ script_08009F36: Call sub_0807DF28 DoPostScriptAction 0x000b StartPlayerScript script_PlayerAtBombMinish - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 Call sub_0806014C MessageFromTargetPos 0x1f01, 0x0000 WaitUntilTextboxCloses Wait 0x001e - _0807F034 0x0065 + GivePlayerItem 0x0065 WaitPlayerGetItem DoPostScriptAction 0x000a Call sub_0807DF50 @@ -67,13 +67,13 @@ script_08009FDC: _0807E864 MessageNoOverlap 0x1f0e WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIf script_0800A002 _0807E878 Jump script_08009FDC script_0800A002: Wait 0x0008 - _0807F034 0x0008 + GivePlayerItem 0x0008 Call sub_08060318 WaitPlayerGetItem Wait 0x0008 @@ -94,20 +94,20 @@ script_0800A024: JumpIf script_0800A052 MessageNoOverlap 0x1f14 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIf script_0800A002 _0807E878 Jump script_0800A024 script_0800A052: MessageNoOverlap 0x1f11 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIf script_0800A064 _0807E878 Jump script_0800A024 script_0800A064: Wait 0x0008 - _0807F034 0x0007 + GivePlayerItem 0x0007 Call sub_08060318 WaitPlayerGetItem Wait 0x0008 diff --git a/data/scripts/minishWoods/script_Festari.inc b/data/scripts/minishWoods/script_Festari.inc index 2ce99363..ebaca487 100644 --- a/data/scripts/minishWoods/script_Festari.inc +++ b/data/scripts/minishWoods/script_Festari.inc @@ -20,7 +20,7 @@ script_0800C652: DoPostScriptAction 0x000b script_0800C674: StartPlayerScript script_PlayerAtFestari - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 DoPostScriptAction 0x000a script_0800C684: CheckInventory1 0x0040 diff --git a/data/scripts/minishWoods/script_ForestMinish10.inc b/data/scripts/minishWoods/script_ForestMinish10.inc index d1c1c825..cc7dfc2e 100644 --- a/data/scripts/minishWoods/script_ForestMinish10.inc +++ b/data/scripts/minishWoods/script_ForestMinish10.inc @@ -36,22 +36,22 @@ script_0800CDC4: script_0800CDEC: MessageNoOverlap 0x213e WaitUntilTextboxCloses - _0807E48C 0x0023 + CheckBottleContaining 0x0023 JumpIfNot script_0800CE14 MessageNoOverlap 0x214b WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_0800CF40 PlaySound SFX_TASK_COMPLETE _0807F088 0x0023 WaitPlayerGetItem Jump script_0800CE32 script_0800CE14: - _0807E48C 0x0022 + CheckBottleContaining 0x0022 JumpIfNot script_0800CF40 MessageNoOverlap 0x214b WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_0800CF40 PlaySound SFX_TASK_COMPLETE _0807F088 0x0022 @@ -76,11 +76,11 @@ script_0800CE46: script_0800CE6E: MessageNoOverlap 0x2142 WaitUntilTextboxCloses - _0807E48C 0x0027 + CheckBottleContaining 0x0027 JumpIfNot script_0800CF40 MessageNoOverlap 0x214c WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_0800CF40 PlaySound SFX_TASK_COMPLETE _0807F088 0x0027 @@ -104,11 +104,11 @@ script_0800CEA6: script_0800CECE: MessageNoOverlap 0x2146 WaitUntilTextboxCloses - _0807E48C 0x0024 + CheckBottleContaining 0x0024 JumpIfNot script_0800CF40 MessageNoOverlap 0x214d WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_0800CF40 PlaySound SFX_TASK_COMPLETE _0807F088 0x0024 diff --git a/data/scripts/minishWoods/script_Gentari.inc b/data/scripts/minishWoods/script_Gentari.inc index 12570732..4d7c8507 100644 --- a/data/scripts/minishWoods/script_Gentari.inc +++ b/data/scripts/minishWoods/script_Gentari.inc @@ -9,7 +9,7 @@ script_0800C780: _0807E864 Call sub_0807DF28 StartPlayerScript script_PlayerAtGentari - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 CheckInventory1 0x0040 JumpIf script_0800C824 CheckInventory1 0x005b diff --git a/data/scripts/minishWoods/script_Object69PotionBlue.inc b/data/scripts/minishWoods/script_Object69PotionBlue.inc index 324555ce..365530bf 100644 --- a/data/scripts/minishWoods/script_Object69PotionBlue.inc +++ b/data/scripts/minishWoods/script_Object69PotionBlue.inc @@ -9,9 +9,9 @@ script_08016146: _0807E864 GetInventoryValue 0x0025 MessageFromTargetTable 0x2d03, 0x2d02, 0x2d02, 0x2d02 - _0807E3E8 + CheckTextboxResult JumpIfNot script_0801618A - _0807E48C 0x0020 + CheckBottleContaining 0x0020 JumpIf script_08016172 MessageFromTarget 0x2d0c Jump script_0801618A diff --git a/data/scripts/minishWoods/script_Object69PotionRed.inc b/data/scripts/minishWoods/script_Object69PotionRed.inc index edb403c8..6e3ed4a2 100644 --- a/data/scripts/minishWoods/script_Object69PotionRed.inc +++ b/data/scripts/minishWoods/script_Object69PotionRed.inc @@ -9,9 +9,9 @@ script_0801619A: _0807E864 GetInventoryValue 0x0024 MessageFromTargetTable 0x2d05, 0x2d04, 0x2d04, 0x2d04 - _0807E3E8 + CheckTextboxResult JumpIfNot script_080161E2 - _0807E48C 0x0020 + CheckBottleContaining 0x0020 JumpIf script_080161C6 MessageFromTarget 0x2d0c Jump script_080161E2 diff --git a/data/scripts/minishWoods/script_PlayerAtBombMinish.inc b/data/scripts/minishWoods/script_PlayerAtBombMinish.inc index c9508e71..8d5d71c9 100644 --- a/data/scripts/minishWoods/script_PlayerAtBombMinish.inc +++ b/data/scripts/minishWoods/script_PlayerAtBombMinish.inc @@ -8,6 +8,6 @@ SCRIPT_START script_PlayerAtBombMinish _0807EB44 0x0000 Wait 0x000f DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/minishWoods/script_PlayerAtFestari.inc b/data/scripts/minishWoods/script_PlayerAtFestari.inc index 503c9c9a..3f69b969 100644 --- a/data/scripts/minishWoods/script_PlayerAtFestari.inc +++ b/data/scripts/minishWoods/script_PlayerAtFestari.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerAtFestari _0807EB44 0x0000 Wait 0x000f DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/minishWoods/script_PlayerAtGentari.inc b/data/scripts/minishWoods/script_PlayerAtGentari.inc index 343334bd..f53f6f0e 100644 --- a/data/scripts/minishWoods/script_PlayerAtGentari.inc +++ b/data/scripts/minishWoods/script_PlayerAtGentari.inc @@ -8,6 +8,6 @@ SCRIPT_START script_PlayerAtGentari _0807EB44 0x0000 Wait 0x000f DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/minishWoods/script_Syrup.inc b/data/scripts/minishWoods/script_Syrup.inc index 903e18b6..332de656 100644 --- a/data/scripts/minishWoods/script_Syrup.inc +++ b/data/scripts/minishWoods/script_Syrup.inc @@ -8,15 +8,15 @@ script_080160B0: BeginBlock CheckEntityInteractType JumpIf script_080160E0 - TestBit 0x00000008 + CheckSyncFlagAndClear 0x00000008 JumpIf script_080160D2 - TestBit 0x00000010 + CheckSyncFlagAndClear 0x00000010 JumpIf script_080160D2 Jump script_080160B0 script_080160D2: EndBlock _0807EB74 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 Jump script_080160B0 script_080160E0: _0807E864 @@ -26,7 +26,7 @@ script_080160E0: JumpIfNot script_0801611A MessageFromTarget 0x2d07 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_08016132 BuyItem 0x0000, 0x0000 JumpIf script_0801610C diff --git a/data/scripts/mtCrenel/script_GreatFairyBombs.inc b/data/scripts/mtCrenel/script_GreatFairyBombs.inc index 1117dc70..e25eb65f 100644 --- a/data/scripts/mtCrenel/script_GreatFairyBombs.inc +++ b/data/scripts/mtCrenel/script_GreatFairyBombs.inc @@ -10,9 +10,9 @@ script_0800B734: Wait 0x000a Call sub_0807F9A4 StartPlayerScript script_PlayerAtGreatFairy - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 SetRoomFlag 0x0000 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 CheckLocalFlag 0x00a0 JumpIf script_0800B7A2 MessageNoOverlap 0x0580 @@ -25,17 +25,17 @@ script_0800B734: script_0800B794: WaitUntilTextboxCloses SetLocalFlag 0x00a0 - _0807F034 0x0065 + GivePlayerItem 0x0065 Jump script_0800B698 script_0800B7A2: MessageNoOverlap 0x0590 WaitUntilTextboxCloses _0807E778 0x0010 DoFade7 - WaitFor_2 + WaitForFadeFinish ModHealth 0x00a0 DoFade6 - WaitFor_2 + WaitForFadeFinish MessageNoOverlap 0x057f WaitUntilTextboxCloses Jump script_0800B6A6 diff --git a/data/scripts/mtCrenel/script_Melari.inc b/data/scripts/mtCrenel/script_Melari.inc index 082a77c2..ccf1c55a 100644 --- a/data/scripts/mtCrenel/script_Melari.inc +++ b/data/scripts/mtCrenel/script_Melari.inc @@ -16,12 +16,12 @@ script_0800CFD2: JumpIf script_0800CFFA CheckInventory1 0x0041 JumpIfNot script_0800CFEC - _0807E5F8 0x00000020 + SetSyncFlag 0x00000020 Jump script_0800CFFA script_0800CFEC: CheckLocalFlag 0x007e JumpIfNot script_0800CFFA - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 script_0800CFFA: EndBlock BeginBlock @@ -42,21 +42,21 @@ script_0800D032: CheckInventory1 0x0041 JumpIfNot script_0800D098 StartPlayerScript script_PlayerAtMelari - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 _0807EB74 SetIntVariable 0x00000000 Call sub_0806C028 MessageFromTargetPos 0x125c, 0x0002 WaitUntilTextboxCloses StartPlayerScript script_PlayerPlaceBrokenSword - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 _0807EB44 0x0002 SetIntVariable 0x00000000 Call sub_0806C028 Wait 0x000f - _0807E5F8 0x00000020 + SetSyncFlag 0x00000020 StartPlayerScript script_PlayerGetWhiteSword - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 MessageFromTargetPos 0x125d, 0x0002 Jump script_0800D17C script_0800D098: @@ -66,18 +66,18 @@ script_0800D098: Jump script_0800D17C script_0800D0A8: StartPlayerScript script_PlayerAtMelari - WaitForSomething2 0x00000008 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000004 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000008 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000004 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000004 _0807EB74 SetIntVariable 0x00000000 Call sub_0806C028 MessageFromTargetPos 0x123d, 0x0002 WaitUntilTextboxCloses StartPlayerScript script_PlayerPlaceBrokenSword - WaitForSomething2 0x00000008 + WaitForSyncFlagAndClear 0x00000008 _0807EB44 0x0002 SetIntVariable 0x00000000 Call sub_0806C028 @@ -87,23 +87,23 @@ script_0800D108: ComparePlayerAction 0x0008 JumpIf script_0800D108 PlaySound SFX_F8 - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 SetLocalFlag 0x007e MessageFromTargetPos 0x123e, 0x0002 WaitUntilTextboxCloses Wait 0x000f _0807E930 0x0009 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 - _0807E5F8 0x00000002 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000004 Wait 0x001e MessageFromTargetPos 0x123f, 0x0002 WaitUntilTextboxCloses - _0807E5F8 0x00000001 - WaitForSomething2 0x00000004 - _0807E5F8 0x00000001 - WaitForSomething2 0x00000004 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000004 + SetSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000004 _0807E930 0x0008 Wait 0x003c Call sub_08095164 diff --git a/data/scripts/mtCrenel/script_MountainMinish3.inc b/data/scripts/mtCrenel/script_MountainMinish3.inc index 9320c9e1..2fe3f475 100644 --- a/data/scripts/mtCrenel/script_MountainMinish3.inc +++ b/data/scripts/mtCrenel/script_MountainMinish3.inc @@ -11,7 +11,7 @@ script_0800D282: JumpIf script_0800D2EA script_0800D292: BeginBlock - TestBit 0x00000001 + CheckSyncFlagAndClear 0x00000001 JumpIf script_0800D2C6 CheckEntityInteractType JumpIf script_0800D2B0 @@ -28,12 +28,12 @@ script_0800D2B0: Jump script_0800D282 script_0800D2C6: EndBlock - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 + SetSyncFlag 0x00000004 _0807E930 0x000c - WaitForSomething2 0x00000001 - _0807E5F8 0x00000004 + WaitForSyncFlagAndClear 0x00000001 + SetSyncFlag 0x00000004 script_0800D2EA: _0807E930 0x000b script_0800D2EE: diff --git a/data/scripts/mtCrenel/script_MountainMinish4.inc b/data/scripts/mtCrenel/script_MountainMinish4.inc index a3555d08..a953ebfa 100644 --- a/data/scripts/mtCrenel/script_MountainMinish4.inc +++ b/data/scripts/mtCrenel/script_MountainMinish4.inc @@ -26,7 +26,7 @@ script_0800D372: CheckPlayerInRegion 0x0090, 0x0130, 0x0810 JumpIfNot script_0800D3B2 StartPlayerScript script_PlayerAtMountainMinishExit - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 script_0800D3B2: _0807EB44 0x0002 _0807E930 0x0005 diff --git a/data/scripts/mtCrenel/script_Object6ABrokenSword.inc b/data/scripts/mtCrenel/script_Object6ABrokenSword.inc index 33f2b78f..d586f992 100644 --- a/data/scripts/mtCrenel/script_Object6ABrokenSword.inc +++ b/data/scripts/mtCrenel/script_Object6ABrokenSword.inc @@ -7,9 +7,9 @@ SCRIPT_START script_Object6ABrokenSword JumpIf script_0800D242 DoPostScriptAction 0x0008 EndBlock - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0007 - WaitForSomething2 0x00000010 + WaitForSyncFlagAndClear 0x00000010 SCRIPT_END script_0800D242: DoPostScriptAction 0x0007 diff --git a/data/scripts/mtCrenel/script_Object6ARepairedSword.inc b/data/scripts/mtCrenel/script_Object6ARepairedSword.inc index 4c92069f..d857059e 100644 --- a/data/scripts/mtCrenel/script_Object6ARepairedSword.inc +++ b/data/scripts/mtCrenel/script_Object6ARepairedSword.inc @@ -3,9 +3,9 @@ SCRIPT_START script_Object6ARepairedSword BeginBlock DoPostScriptAction 0x0008 EndBlock - WaitForSomething2 0x00000020 + WaitForSyncFlagAndClear 0x00000020 DoPostScriptAction 0x0007 - WaitForSomething2 0x00000020 + WaitForSyncFlagAndClear 0x00000020 DoPostScriptAction 0x0008 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/mtCrenel/script_PlayerAtMelari.inc b/data/scripts/mtCrenel/script_PlayerAtMelari.inc index 9e2afbbe..409ed3cc 100644 --- a/data/scripts/mtCrenel/script_PlayerAtMelari.inc +++ b/data/scripts/mtCrenel/script_PlayerAtMelari.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerAtMelari _0807EDD4 0x0170, 0x0140 _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc b/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc index 31c59aff..0934f626 100644 --- a/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc +++ b/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc @@ -7,7 +7,7 @@ SCRIPT_START script_PlayerAtMountainMinishExit DoPostScriptAction 0x0000 DoPostScriptAction 0x000d _0807ECC4 0x0020 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc b/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc index 08b4550e..d9138b1b 100644 --- a/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc +++ b/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerGetWhiteSword Call sub_0807F304 MessageNoOverlap 0x0502 WaitUntilTextboxCloses - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc b/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc index f9a0b91c..0cda5bcd 100644 --- a/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc +++ b/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc @@ -7,7 +7,7 @@ SCRIPT_START script_PlayerPlaceBrokenSword _0807EDD4 0x01a8, 0x0120 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/npc/script_08012C48.inc b/data/scripts/npc/script_08012C48.inc index 2eb2b3d3..18d2a03d 100644 --- a/data/scripts/npc/script_08012C48.inc +++ b/data/scripts/npc/script_08012C48.inc @@ -5,7 +5,7 @@ SCRIPT_START script_08012C48 SetEntitySpeed 0x0280 EndBlock _0807EDD4 0x0388, 0x0168 - _0807E5F8 0x00000100 + SetSyncFlag 0x00000100 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/npc/script_BladeBrothers.inc b/data/scripts/npc/script_BladeBrothers.inc index 3192f64e..8fec6673 100644 --- a/data/scripts/npc/script_BladeBrothers.inc +++ b/data/scripts/npc/script_BladeBrothers.inc @@ -22,10 +22,10 @@ script_08016204: WaitUntilTextboxCloses Call sub_08068DD0 WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_08016346 StartPlayerScript script_PlayerAtBladeBrothers - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 _0807EB74 Call sub_08068C8C JumpIf script_08016262 diff --git a/data/scripts/npc/script_ForestMinish18.inc b/data/scripts/npc/script_ForestMinish18.inc index 5e70440e..4198e7da 100644 --- a/data/scripts/npc/script_ForestMinish18.inc +++ b/data/scripts/npc/script_ForestMinish18.inc @@ -3,12 +3,12 @@ SCRIPT_START script_ForestMinish18 SetEntitySpeed 0x0100 script_08016700: _0807EC94 0x0030 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Wait 0x000f DoPostScriptAction 0x0000 _0807EB44 0x0004 - WaitForSomething 0x00000001 - _0807E610 0x00000001 + WaitForSyncFlag 0x00000001 + ClearSyncFlag 0x00000001 DoPostScriptAction 0x0003 Wait 0x0002 _0807EB44 0x0006 @@ -18,14 +18,14 @@ script_08016700: _0807EB44 0x0002 Wait 0x0002 _0807EB44 0x0004 - WaitForSomething 0x00000001 - _0807E610 0x00000001 + WaitForSyncFlag 0x00000001 + ClearSyncFlag 0x00000001 _0807ECF4 0x0030 Wait 0x000f DoPostScriptAction 0x0000 _0807EB44 0x0004 Wait 0x001e - _0807E5F8 0x00000006 + SetSyncFlag 0x00000006 DoPostScriptAction 0x0003 Wait 0x0002 _0807EB44 0x0006 diff --git a/data/scripts/npc/script_ForestMinish19.inc b/data/scripts/npc/script_ForestMinish19.inc index ddf9962f..1e5e8056 100644 --- a/data/scripts/npc/script_ForestMinish19.inc +++ b/data/scripts/npc/script_ForestMinish19.inc @@ -2,15 +2,15 @@ SCRIPT_START script_ForestMinish19 SetEntitySpeed 0x0100 script_0801679C: - WaitForSomething 0x00000002 - _0807E610 0x00000002 + WaitForSyncFlag 0x00000002 + ClearSyncFlag 0x00000002 _0807EC94 0x0030 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Wait 0x000f DoPostScriptAction 0x0000 _0807EB44 0x0004 - WaitForSomething 0x00000002 - _0807E610 0x00000002 + WaitForSyncFlag 0x00000002 + ClearSyncFlag 0x00000002 DoPostScriptAction 0x0003 Wait 0x0002 _0807EB44 0x0006 @@ -20,15 +20,15 @@ script_0801679C: _0807EB44 0x0002 Wait 0x0002 _0807EB44 0x0004 - WaitForSomething 0x00000002 - _0807E610 0x00000002 + WaitForSyncFlag 0x00000002 + ClearSyncFlag 0x00000002 _0807ECF4 0x0030 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Wait 0x000f DoPostScriptAction 0x0000 _0807EB44 0x0004 - WaitForSomething 0x00000002 - _0807E610 0x00000002 + WaitForSyncFlag 0x00000002 + ClearSyncFlag 0x00000002 DoPostScriptAction 0x0003 Wait 0x0002 _0807EB44 0x0006 diff --git a/data/scripts/npc/script_ForestMinish20.inc b/data/scripts/npc/script_ForestMinish20.inc index 96cb2c4b..e9aa1833 100644 --- a/data/scripts/npc/script_ForestMinish20.inc +++ b/data/scripts/npc/script_ForestMinish20.inc @@ -2,14 +2,14 @@ SCRIPT_START script_ForestMinish20 SetEntitySpeed 0x0100 script_08016848: - WaitForSomething 0x00000004 - _0807E610 0x00000004 + WaitForSyncFlag 0x00000004 + ClearSyncFlag 0x00000004 _0807EC94 0x0030 Wait 0x000f DoPostScriptAction 0x0000 _0807EB44 0x0004 Wait 0x001e - _0807E5F8 0x00000003 + SetSyncFlag 0x00000003 DoPostScriptAction 0x0003 Wait 0x0002 _0807EB44 0x0006 @@ -21,12 +21,12 @@ script_08016848: _0807EB44 0x0004 Wait 0x003c _0807ECF4 0x0030 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Wait 0x000f DoPostScriptAction 0x0000 _0807EB44 0x0004 - WaitForSomething 0x00000004 - _0807E610 0x00000004 + WaitForSyncFlag 0x00000004 + ClearSyncFlag 0x00000004 DoPostScriptAction 0x0003 Wait 0x0002 _0807EB44 0x0006 diff --git a/data/scripts/npc/script_PlayerAtBladeBrothers.inc b/data/scripts/npc/script_PlayerAtBladeBrothers.inc index 7026967e..7db4fb9c 100644 --- a/data/scripts/npc/script_PlayerAtBladeBrothers.inc +++ b/data/scripts/npc/script_PlayerAtBladeBrothers.inc @@ -4,6 +4,6 @@ SCRIPT_START script_PlayerAtBladeBrothers _0807EDD4 0x0078, 0x0050 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/npc/script_PlayerAtGreatFairy.inc b/data/scripts/npc/script_PlayerAtGreatFairy.inc index cbea15ed..8839a3cb 100644 --- a/data/scripts/npc/script_PlayerAtGreatFairy.inc +++ b/data/scripts/npc/script_PlayerAtGreatFairy.inc @@ -10,7 +10,7 @@ SCRIPT_START script_PlayerAtGreatFairy script_0800B7EE: _0807E8E4_0 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 SCRIPT_END script_0800B7FC: CallWithArg sub_0807F4F8, 0x00000090 diff --git a/data/scripts/npc/script_TingleSiblings.inc b/data/scripts/npc/script_TingleSiblings.inc index 62b59de5..8393ee87 100644 --- a/data/scripts/npc/script_TingleSiblings.inc +++ b/data/scripts/npc/script_TingleSiblings.inc @@ -14,7 +14,7 @@ script_0801690A: Call sub_08064F28 WaitUntilTextboxCloses JumpIfNot script_08016926 - _0807F034 0x003d + GivePlayerItem 0x003d WaitPlayerGetItem script_08016926: _0807E878 diff --git a/data/scripts/sanctuary/script_NPC4EPreventPlayerLeave.inc b/data/scripts/sanctuary/script_NPC4EPreventPlayerLeave.inc index f727cd1a..56929281 100644 --- a/data/scripts/sanctuary/script_NPC4EPreventPlayerLeave.inc +++ b/data/scripts/sanctuary/script_NPC4EPreventPlayerLeave.inc @@ -23,7 +23,7 @@ script_08013FF0: _0807EB28 0x1508 WaitUntilTextboxCloses StartPlayerScript script_PlayerSanctuary - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Call sub_0807DF50 _0807E878 Jump script_08013FF0 diff --git a/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc b/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc index 520a148b..3939de1e 100644 --- a/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc +++ b/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc @@ -8,7 +8,7 @@ SCRIPT_START script_Npc4EFinalSwordRumble CameraTargetEntity Wait 0x003c .endif - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 Wait 0x0078 CallWithArg DeleteManager36, 0x00000001 _0807F0C8 0x0000, 0x0000 diff --git a/data/scripts/sanctuary/script_Npc4EPedestal.inc b/data/scripts/sanctuary/script_Npc4EPedestal.inc index ee6a1058..43bc49a9 100644 --- a/data/scripts/sanctuary/script_Npc4EPedestal.inc +++ b/data/scripts/sanctuary/script_Npc4EPedestal.inc @@ -13,7 +13,7 @@ script_080134F8: _0807E864 Call sub_0807DF28 StartPlayerScript script_PlayerAtPedestal - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 CallWithArg sub_08095A1C, script_Object6ASwordInPedestal PlaySound SFX_ELEMENT_PLACE Wait 0x005a @@ -22,7 +22,7 @@ script_080134F8: CallWithArg sub_08095D54, script_Object6AEarthElementFloating CallWithArg sub_08095D54, script_Object6AFireElementFloating EndBlock - WaitForSomething2 0x18000000 + WaitForSyncFlagAndClear 0x18000000 BeginBlock PlaySound SFX_ELEMENT_CHARGE CallWithArg sub_08095D8C, script_Object6ASwordChange1 @@ -36,22 +36,22 @@ script_080134F8: EndBlock Wait 0x003c CallWithArg CreateManager36, 0x00000000 - _0807E5F8 0x00000200 - WaitForSomething2 0x00002000 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00002000 PlaySound SFX_1D2 CallWithArg sub_08095D8C, script_Object6ASwordCharge9 CallWithArg sub_08095D8C, script_Object6ASwordCharge10 - _0807E5F8 0x00000400 - WaitForSomething2 0x00004000 + SetSyncFlag 0x00000400 + WaitForSyncFlagAndClear 0x00004000 Wait 0x0078 - _0807E5F8 0x00000060 + SetSyncFlag 0x00000060 CallWithArg DeleteManager36, 0x00000000 Wait 0x0078 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000100 Wait 0x003c StartPlayerScript script_PlayerPickUpSword - _0807E5F8 0x00000080 + SetSyncFlag 0x00000080 _0807F078 0x0003, 0x0001 Call sub_0806DC3C Call sub_0806DC58 @@ -60,15 +60,15 @@ script_080134F8: _0807E778 0x0004 DoFade7 PlaySound SFX_EVAPORATE - WaitFor_2 + WaitForFadeFinish Wait 0x003c - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 _0807E778 0x0002 DoFade6 - WaitFor_2 + WaitForFadeFinish PlaySound SFX_109 MessageFromTargetPos 0x0503, 0x000c WaitUntilTextboxCloses - _0807E5F8 0x00040000 + SetSyncFlag 0x00040000 CallWithArg CreateManager36, 0x00000001 _0807F0C8 0xffff, 0x0000 diff --git a/data/scripts/sanctuary/script_Npc4EPreventPlayerLeaving.inc b/data/scripts/sanctuary/script_Npc4EPreventPlayerLeaving.inc index 2f6668f6..d34f479b 100644 --- a/data/scripts/sanctuary/script_Npc4EPreventPlayerLeaving.inc +++ b/data/scripts/sanctuary/script_Npc4EPreventPlayerLeaving.inc @@ -18,7 +18,7 @@ script_08013B1E: _0807EB28 0x1507 WaitUntilTextboxCloses StartPlayerScript script_PlayerSanctuary - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 Call sub_0807DF50 _0807E878 Jump script_08013B1E diff --git a/data/scripts/sanctuary/script_Npc4ESecondSanctuary.inc b/data/scripts/sanctuary/script_Npc4ESecondSanctuary.inc index 982e53f7..e5bef48f 100644 --- a/data/scripts/sanctuary/script_Npc4ESecondSanctuary.inc +++ b/data/scripts/sanctuary/script_Npc4ESecondSanctuary.inc @@ -13,7 +13,7 @@ script_0801373C: _0807E864 Call sub_0807DF28 StartPlayerScript script_PlayerAtPedestal - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 CallWithArg sub_08095A1C, script_Object6ASword2 PlaySound SFX_ELEMENT_PLACE Wait 0x005a @@ -21,7 +21,7 @@ script_0801373C: PlaySound SFX_ELEMENT_FLOAT CallWithArg sub_08095D54, script_Object6AWaterElementFloating EndBlock - WaitForSomething2 0x20000000 + WaitForSyncFlagAndClear 0x20000000 BeginBlock PlaySound SFX_ELEMENT_CHARGE CallWithArg sub_08095D8C, script_Object6ASwordChange1 @@ -37,24 +37,24 @@ script_0801373C: EndBlock Wait 0x003c CallWithArg CreateManager36, 0x00000000 - _0807E5F8 0x00000200 - WaitForSomething2 0x00002000 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00002000 PlaySound SFX_1D2 CallWithArg sub_08095D8C, script_Object6ASwordCharge9 CallWithArg sub_08095D8C, script_Object6ASwordCharge10 - _0807E5F8 0x00000400 - WaitForSomething2 0x00004000 - _0807E5F8 0x00000800 - WaitForSomething2 0x00008000 + SetSyncFlag 0x00000400 + WaitForSyncFlagAndClear 0x00004000 + SetSyncFlag 0x00000800 + WaitForSyncFlagAndClear 0x00008000 Wait 0x0078 - _0807E5F8 0x00000060 + SetSyncFlag 0x00000060 CallWithArg DeleteManager36, 0x00000000 Wait 0x0078 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000100 Wait 0x003c StartPlayerScript script_PlayerPickUpSword - _0807E5F8 0x00000080 + SetSyncFlag 0x00000080 _0807F078 0x0004, 0x0001 Call sub_0806DC3C Call sub_0806DC58 @@ -63,16 +63,16 @@ script_0801373C: _0807E778 0x0004 DoFade7 PlaySound SFX_EVAPORATE - WaitFor_2 + WaitForFadeFinish Wait 0x003c - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 _0807E778 0x0002 DoFade6 - WaitFor_2 + WaitForFadeFinish PlaySound SFX_109 MessageFromTargetPos 0x0504, 0x000c WaitUntilTextboxCloses - _0807E5F8 0x00040000 + SetSyncFlag 0x00040000 SetLocalFlag 0x007b Call sub_08053250 Call sub_0807DF50 diff --git a/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc b/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc index 2cebfed6..24eb4ce1 100644 --- a/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc +++ b/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc @@ -6,12 +6,12 @@ SCRIPT_START script_Npc4ESpawnTextBoard SetEntityPositionRelative 0x00e8, 0x00a8 CameraTargetEntity Wait 0x003c - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Wait 0x0078 CallWithArg DeleteManager36, 0x00000001 _0807F0C8 0x0000, 0x0000 StartPlayerScript script_PlayerTextBoardAppears - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 _0807EB28 0x1501 WaitUntilTextboxCloses _0807F0B4 0x0004 diff --git a/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc b/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc index 5a6acd5a..05e2ccd9 100644 --- a/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc +++ b/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc @@ -13,7 +13,7 @@ script_080138D0: _0807E864 Call sub_0807DF28 StartPlayerScript script_PlayerAtPedestal - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 CallWithArg sub_08095A1C, script_Object6ASword3 PlaySound SFX_ELEMENT_PLACE Wait 0x005a @@ -21,7 +21,7 @@ script_080138D0: PlaySound SFX_ELEMENT_FLOAT CallWithArg sub_08095D54, script_Object6AWindElementFloating EndBlock - WaitForSomething2 0x40000000 + WaitForSyncFlagAndClear 0x40000000 BeginBlock PlaySound SFX_ELEMENT_CHARGE CallWithArg sub_08095D8C, script_Object6ASwordChange1 @@ -39,26 +39,26 @@ script_080138D0: EndBlock Wait 0x003c CallWithArg CreateManager36, 0x00000000 - _0807E5F8 0x00000200 - WaitForSomething2 0x00002000 + SetSyncFlag 0x00000200 + WaitForSyncFlagAndClear 0x00002000 PlaySound SFX_1D2 CallWithArg sub_08095D8C, script_Object6ASwordCharge9 CallWithArg sub_08095D8C, script_Object6ASwordCharge10 - _0807E5F8 0x00000400 - WaitForSomething2 0x00004000 - _0807E5F8 0x00000800 - WaitForSomething2 0x00008000 - _0807E5F8 0x00001000 - WaitForSomething2 0x00010000 + SetSyncFlag 0x00000400 + WaitForSyncFlagAndClear 0x00004000 + SetSyncFlag 0x00000800 + WaitForSyncFlagAndClear 0x00008000 + SetSyncFlag 0x00001000 + WaitForSyncFlagAndClear 0x00010000 Wait 0x0078 - _0807E5F8 0x00000060 + SetSyncFlag 0x00000060 CallWithArg DeleteManager36, 0x00000000 Wait 0x0078 - _0807E5F8 0x00000080 - WaitForSomething2 0x00000100 + SetSyncFlag 0x00000080 + WaitForSyncFlagAndClear 0x00000100 Wait 0x003c StartPlayerScript script_PlayerPickUpFinalSword - _0807E5F8 0x00000080 + SetSyncFlag 0x00000080 _0807F078 0x0006, 0x0001 Call sub_0807AEE4 Call sub_0806DC3C @@ -68,16 +68,16 @@ script_080138D0: _0807E778 0x0004 DoFade7 PlaySound SFX_EVAPORATE - WaitFor_2 + WaitForFadeFinish Wait 0x003c - _0807E5F8 0x00000010 + SetSyncFlag 0x00000010 _0807E778 0x0002 DoFade6 - WaitFor_2 + WaitForFadeFinish PlaySound SFX_109 MessageFromTargetPos 0x0505, 0x000c WaitUntilTextboxCloses - _0807E5F8 0x00040000 + SetSyncFlag 0x00040000 .ifndef EU _0807F0B4 0x0002 SetEntityPositionRelative 0x00e8, 0x00d8 diff --git a/data/scripts/sanctuary/script_Object6AEarthElementFloating.inc b/data/scripts/sanctuary/script_Object6AEarthElementFloating.inc index 554c5cc7..4ab4fd4d 100644 --- a/data/scripts/sanctuary/script_Object6AEarthElementFloating.inc +++ b/data/scripts/sanctuary/script_Object6AEarthElementFloating.inc @@ -7,6 +7,6 @@ SCRIPT_START script_Object6AEarthElementFloating SetEntitySpeed 0x0080 _0807EDD4 0x00b0, 0x00f8 _0807E930 0x0001 - _0807E5F8 0x08000000 + SetSyncFlag 0x08000000 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6AFireElementFloating.inc b/data/scripts/sanctuary/script_Object6AFireElementFloating.inc index f1f623c8..0e1febcc 100644 --- a/data/scripts/sanctuary/script_Object6AFireElementFloating.inc +++ b/data/scripts/sanctuary/script_Object6AFireElementFloating.inc @@ -7,6 +7,6 @@ SCRIPT_START script_Object6AFireElementFloating SetEntitySpeed 0x0080 _0807EDD4 0x0120, 0x00f8 _0807E930 0x0003 - _0807E5F8 0x10000000 + SetSyncFlag 0x10000000 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6ASword2.inc b/data/scripts/sanctuary/script_Object6ASword2.inc index 34de116e..fab7bbba 100644 --- a/data/scripts/sanctuary/script_Object6ASword2.inc +++ b/data/scripts/sanctuary/script_Object6ASword2.inc @@ -4,11 +4,11 @@ SCRIPT_START script_Object6ASword2 DoPostScriptAction 0x0007 _0807E930 0x0009 EndBlock - WaitForSomething2 0x00000080 + WaitForSyncFlagAndClear 0x00000080 _0807E930 0x000c Call sub_0807F2D4 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000080 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6ASword3.inc b/data/scripts/sanctuary/script_Object6ASword3.inc index f44a9697..74a51519 100644 --- a/data/scripts/sanctuary/script_Object6ASword3.inc +++ b/data/scripts/sanctuary/script_Object6ASword3.inc @@ -4,11 +4,11 @@ SCRIPT_START script_Object6ASword3 DoPostScriptAction 0x0007 _0807E930 0x000a EndBlock - WaitForSomething2 0x00000080 + WaitForSyncFlagAndClear 0x00000080 _0807E930 0x000d Call sub_0807F2D4 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000080 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6ASwordChange1.inc b/data/scripts/sanctuary/script_Object6ASwordChange1.inc index 7c41e39c..d17fcb9e 100644 --- a/data/scripts/sanctuary/script_Object6ASwordChange1.inc +++ b/data/scripts/sanctuary/script_Object6ASwordChange1.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6ASwordChange1 _0807E930 0x0000 Call sub_0807F738 EndBlock - WaitForSomething 0x00000040 + WaitForSyncFlag 0x00000040 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge10.inc b/data/scripts/sanctuary/script_Object6ASwordCharge10.inc index 5a3fcf8d..11e22661 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge10.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge10.inc @@ -7,7 +7,7 @@ SCRIPT_START script_Object6ASwordCharge10 Call sub_0807F714 CallWithArg sub_0807F994, 0x0000fffc EndBlock - WaitForSomething 0x00000020 + WaitForSyncFlag 0x00000020 Wait 0x0078 Call sub_0807F2D4 DoPostScriptAction 0x0006 diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge11.inc b/data/scripts/sanctuary/script_Object6ASwordCharge11.inc index 3d2b2cd9..9bc8084e 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge11.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge11.inc @@ -1,6 +1,6 @@ @ Sanctuary third time OBJECT_6A ? SCRIPT_START script_Object6ASwordCharge11 - TestBit 0x00020000 + CheckSyncFlagAndClear 0x00020000 JumpIf script_08014264 Wait 0x0008 CallWithArg sub_08095EAC, 0x00000000 diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge2.inc b/data/scripts/sanctuary/script_Object6ASwordCharge2.inc index d3e23d65..d4ad0786 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge2.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge2.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6ASwordCharge2 _0807E930 0x0001 Call sub_0807F738 EndBlock - WaitForSomething 0x00000040 + WaitForSyncFlag 0x00000040 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge3.inc b/data/scripts/sanctuary/script_Object6ASwordCharge3.inc index 72f35164..dc8c915c 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge3.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge3.inc @@ -6,6 +6,6 @@ SCRIPT_START script_Object6ASwordCharge3 Call sub_0807F738 OffsetEntityPosition 0x0000, 0xfff0 EndBlock - WaitForSomething 0x00000040 + WaitForSyncFlag 0x00000040 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge4.inc b/data/scripts/sanctuary/script_Object6ASwordCharge4.inc index e693e365..55fea219 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge4.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge4.inc @@ -6,6 +6,6 @@ SCRIPT_START script_Object6ASwordCharge4 Call sub_0807F738 OffsetEntityPosition 0x0000, 0xfff0 EndBlock - WaitForSomething 0x00000040 + WaitForSyncFlag 0x00000040 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge5.inc b/data/scripts/sanctuary/script_Object6ASwordCharge5.inc index 22e19902..deba7486 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge5.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge5.inc @@ -4,12 +4,12 @@ SCRIPT_START script_Object6ASwordCharge5 DoPostScriptAction 0x0007 _0807E930 0x0004 EndBlock - WaitForSomething2 0x00000200 + WaitForSyncFlagAndClear 0x00000200 _0807E930 0x0008 Call sub_0807F2D4 _0807E930 0x000c - _0807E5F8 0x00002000 - WaitForSomething 0x00000020 + SetSyncFlag 0x00002000 + WaitForSyncFlag 0x00000020 _0807E930 0x0010 Call sub_0807F2D4 DoPostScriptAction 0x0006 diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge6.inc b/data/scripts/sanctuary/script_Object6ASwordCharge6.inc index e40ad2be..6712fe80 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge6.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge6.inc @@ -4,12 +4,12 @@ SCRIPT_START script_Object6ASwordCharge6 DoPostScriptAction 0x0007 _0807E930 0x0005 EndBlock - WaitForSomething2 0x00000400 + WaitForSyncFlagAndClear 0x00000400 _0807E930 0x0009 Call sub_0807F2D4 _0807E930 0x000d - _0807E5F8 0x00004000 - WaitForSomething 0x00000020 + SetSyncFlag 0x00004000 + WaitForSyncFlag 0x00000020 _0807E930 0x0011 Call sub_0807F2D4 DoPostScriptAction 0x0006 diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge8.inc b/data/scripts/sanctuary/script_Object6ASwordCharge8.inc index 38ad04ca..db235e91 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge8.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge8.inc @@ -5,12 +5,12 @@ SCRIPT_START script_Object6ASwordCharge8 _0807E930 0x0007 OffsetEntityPosition 0x0000, 0xfff0 EndBlock - WaitForSomething2 0x00001000 + WaitForSyncFlagAndClear 0x00001000 _0807E930 0x000b Call sub_0807F2D4 _0807E930 0x000f - _0807E5F8 0x00010000 - WaitForSomething 0x00000020 + SetSyncFlag 0x00010000 + WaitForSyncFlag 0x00000020 _0807E930 0x0013 Call sub_0807F2D4 DoPostScriptAction 0x0006 diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge9.inc b/data/scripts/sanctuary/script_Object6ASwordCharge9.inc index 5c2d7dca..2920f0bc 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge9.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge9.inc @@ -6,7 +6,7 @@ SCRIPT_START script_Object6ASwordCharge9 Call sub_0807F714 CallWithArg sub_0807F994, 0x0000fffc EndBlock - WaitForSomething 0x00000020 + WaitForSyncFlag 0x00000020 Wait 0x0078 Call sub_0807F2D4 DoPostScriptAction 0x0006 diff --git a/data/scripts/sanctuary/script_Object6ASwordInPedestal.inc b/data/scripts/sanctuary/script_Object6ASwordInPedestal.inc index d83de50e..7681251b 100644 --- a/data/scripts/sanctuary/script_Object6ASwordInPedestal.inc +++ b/data/scripts/sanctuary/script_Object6ASwordInPedestal.inc @@ -4,11 +4,11 @@ SCRIPT_START script_Object6ASwordInPedestal DoPostScriptAction 0x0007 _0807E930 0x0008 EndBlock - WaitForSomething2 0x00000080 + WaitForSyncFlagAndClear 0x00000080 _0807E930 0x000b Call sub_0807F2D4 - _0807E5F8 0x00000100 - WaitForSomething2 0x00000080 + SetSyncFlag 0x00000100 + WaitForSyncFlagAndClear 0x00000080 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6ATextBoard.inc b/data/scripts/sanctuary/script_Object6ATextBoard.inc index 0d465a7f..174f0b6d 100644 --- a/data/scripts/sanctuary/script_Object6ATextBoard.inc +++ b/data/scripts/sanctuary/script_Object6ATextBoard.inc @@ -13,7 +13,7 @@ SCRIPT_START script_Object6ATextBoard JumpIfNot script_08013C98 EndBlock DoPostScriptAction 0x0008 - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 _0807E908 0x0002 PlaySound SFX_134 Jump script_08013C32 @@ -33,7 +33,7 @@ script_08013C32: script_08013C58: EndBlock BeginBlock - TestBit 0x00000008 + CheckSyncFlagAndClear 0x00000008 JumpIf script_08013C92 CheckEntityInteractType JumpIfNot script_08013C58 diff --git a/data/scripts/sanctuary/script_Object6AWaterElementFloating.inc b/data/scripts/sanctuary/script_Object6AWaterElementFloating.inc index f325a16c..5571ce4f 100644 --- a/data/scripts/sanctuary/script_Object6AWaterElementFloating.inc +++ b/data/scripts/sanctuary/script_Object6AWaterElementFloating.inc @@ -7,6 +7,6 @@ SCRIPT_START script_Object6AWaterElementFloating SetEntitySpeed 0x0080 _0807EDD4 0x0120, 0x0168 _0807E930 0x0005 - _0807E5F8 0x20000000 + SetSyncFlag 0x20000000 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6AWindElementFloating.inc b/data/scripts/sanctuary/script_Object6AWindElementFloating.inc index d50d3f3f..c88547f6 100644 --- a/data/scripts/sanctuary/script_Object6AWindElementFloating.inc +++ b/data/scripts/sanctuary/script_Object6AWindElementFloating.inc @@ -7,6 +7,6 @@ SCRIPT_START script_Object6AWindElementFloating SetEntitySpeed 0x0080 _0807EDD4 0x00b0, 0x0168 _0807E930 0x0007 - _0807E5F8 0x40000000 + SetSyncFlag 0x40000000 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Objet6ASwordCharge7.inc b/data/scripts/sanctuary/script_Objet6ASwordCharge7.inc index c56f06ee..e56b82e0 100644 --- a/data/scripts/sanctuary/script_Objet6ASwordCharge7.inc +++ b/data/scripts/sanctuary/script_Objet6ASwordCharge7.inc @@ -5,12 +5,12 @@ SCRIPT_START script_Objet6ASwordCharge7 _0807E930 0x0006 OffsetEntityPosition 0x0000, 0xfff0 EndBlock - WaitForSomething2 0x00000800 + WaitForSyncFlagAndClear 0x00000800 _0807E930 0x000a Call sub_0807F2D4 _0807E930 0x000e - _0807E5F8 0x00008000 - WaitForSomething 0x00000020 + SetSyncFlag 0x00008000 + WaitForSyncFlag 0x00000020 _0807E930 0x0012 Call sub_0807F2D4 DoPostScriptAction 0x0006 diff --git a/data/scripts/sanctuary/script_PlayerAtPedestal.inc b/data/scripts/sanctuary/script_PlayerAtPedestal.inc index be558d2e..f67ff329 100644 --- a/data/scripts/sanctuary/script_PlayerAtPedestal.inc +++ b/data/scripts/sanctuary/script_PlayerAtPedestal.inc @@ -13,6 +13,6 @@ script_08013704: _0807EDD4 0x00e8, 0x0124 _0807EB44 0x0004 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc b/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc index b257b2f5..69721bca 100644 --- a/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc +++ b/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerAtSanctuaryEntrance _0807EB44 0x0000 DoPostScriptAction 0x0000 Wait 0x001e - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/sanctuary/script_PlayerGetElement.inc b/data/scripts/sanctuary/script_PlayerGetElement.inc index e834ef9f..c1285a04 100644 --- a/data/scripts/sanctuary/script_PlayerGetElement.inc +++ b/data/scripts/sanctuary/script_PlayerGetElement.inc @@ -14,8 +14,8 @@ script_0800A0D2: _0807E8E4_0 Wait 0x0008 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 - WaitForSomething2 0x00000002 + SetSyncFlag 0x00000004 + WaitForSyncFlagAndClear 0x00000002 Wait 0x003c SetEntitySpeed 0x0080 _0807EC64 0x0030 diff --git a/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc b/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc index bffaefd0..e2e0c734 100644 --- a/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc +++ b/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc @@ -5,9 +5,9 @@ SCRIPT_START script_PlayerPickUpFinalSword CallWithArg sub_0807F238, 0x000008e3 Call sub_08096028 Wait 0x0078 - _0807E5F8 0x00020000 + SetSyncFlag 0x00020000 Call sub_0807F304 Wait 0x0078 - WaitForSomething2 0x00040000 + WaitForSyncFlagAndClear 0x00040000 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/sanctuary/script_PlayerPickUpSword.inc b/data/scripts/sanctuary/script_PlayerPickUpSword.inc index a6e18822..49aea300 100644 --- a/data/scripts/sanctuary/script_PlayerPickUpSword.inc +++ b/data/scripts/sanctuary/script_PlayerPickUpSword.inc @@ -4,10 +4,10 @@ SCRIPT_START script_PlayerPickUpSword CallWithArg sub_0807F238, 0x000008bf Call sub_08096028 Wait 0x003c - _0807E5F8 0x00020000 + SetSyncFlag 0x00020000 Call sub_0807F304 Wait 0x0078 - WaitForSomething2 0x00040000 + WaitForSyncFlagAndClear 0x00040000 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_PlayerSanctuary.inc b/data/scripts/sanctuary/script_PlayerSanctuary.inc index a860cd9c..2548d3a1 100644 --- a/data/scripts/sanctuary/script_PlayerSanctuary.inc +++ b/data/scripts/sanctuary/script_PlayerSanctuary.inc @@ -6,7 +6,7 @@ SCRIPT_START script_PlayerSanctuary _0807EC64 0x0010 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc b/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc index 5fea928d..7ba6faad 100644 --- a/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc +++ b/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc @@ -4,6 +4,6 @@ SCRIPT_START script_PlayerSanctuaryIntro _0807EB44 0x0000 SetEntityPositionRelative 0x0098, 0x0070 EndBlock - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc b/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc index 35c0f79a..29f92dd2 100644 --- a/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc +++ b/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerTextBoardAppears _0807EDD4 0x00e8, 0x00a8 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/southHyruleField/script_BedInLinksRoom.inc b/data/scripts/southHyruleField/script_BedInLinksRoom.inc index 1ce23a20..4300e653 100644 --- a/data/scripts/southHyruleField/script_BedInLinksRoom.inc +++ b/data/scripts/southHyruleField/script_BedInLinksRoom.inc @@ -5,7 +5,7 @@ SCRIPT_START script_BedInLinksRoom SetIntVariable 0x00000002 DoPostScriptAction 0x0001 EndBlock - WaitForSomething2 0x00000004 + WaitForSyncFlagAndClear 0x00000004 BeginBlock SetIntVariable 0x00000003 DoPostScriptAction 0x0001 diff --git a/data/scripts/southHyruleField/script_Object69LinksHouseBed.inc b/data/scripts/southHyruleField/script_Object69LinksHouseBed.inc index a295cc26..7fc77564 100644 --- a/data/scripts/southHyruleField/script_Object69LinksHouseBed.inc +++ b/data/scripts/southHyruleField/script_Object69LinksHouseBed.inc @@ -9,16 +9,16 @@ script_08009DF0: Call sub_0807F9A4 Wait 0x0008 _0807EB28 0x3207 - _0807E3E8 + CheckTextboxResult JumpIfNot script_08009E4E Call sub_0807DF28 _0807E778 0x0002 DoFade5 - WaitFor_2 + WaitForFadeFinish Call sub_0804E864 Wait 0x001e - _0807E5F8 0x00000002 - WaitForSomething2 0x00000001 + SetSyncFlag 0x00000002 + WaitForSyncFlagAndClear 0x00000001 _0807EB28 0x3209 Wait 0x000f WaitUntilTextboxCloses diff --git a/data/scripts/southHyruleField/script_PlayerWakeAfterRest.inc b/data/scripts/southHyruleField/script_PlayerWakeAfterRest.inc index dcd55630..1b74f94c 100644 --- a/data/scripts/southHyruleField/script_PlayerWakeAfterRest.inc +++ b/data/scripts/southHyruleField/script_PlayerWakeAfterRest.inc @@ -3,11 +3,11 @@ SCRIPT_START script_PlayerWakeAfterRest BeginBlock Call sub_0807DF28 EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 _0807E778 0x0002 DoFade4 - WaitFor_2 + WaitForFadeFinish DoPostScriptAction 0x0014 Wait 0x001e - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 SCRIPT_END diff --git a/data/scripts/unused/script_0800FB2C.inc b/data/scripts/unused/script_0800FB2C.inc index fb2209b0..2e11fe58 100644 --- a/data/scripts/unused/script_0800FB2C.inc +++ b/data/scripts/unused/script_0800FB2C.inc @@ -2,7 +2,7 @@ SCRIPT_START script_0800FB2C _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/unused/script_08012B24.inc b/data/scripts/unused/script_08012B24.inc index 9a5df12d..fe88c6a6 100644 --- a/data/scripts/unused/script_08012B24.inc +++ b/data/scripts/unused/script_08012B24.inc @@ -6,7 +6,7 @@ SCRIPT_START script_08012B24 EndBlock DoPostScriptAction 0x0001 _0807ECC4 0x0008 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 CallWithArg sub_0807FB64, 0xffffffe2 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/unused/script_08012B50.inc b/data/scripts/unused/script_08012B50.inc index e83e0540..b97d546b 100644 --- a/data/scripts/unused/script_08012B50.inc +++ b/data/scripts/unused/script_08012B50.inc @@ -6,7 +6,7 @@ SCRIPT_START script_08012B50 EndBlock DoPostScriptAction 0x0001 _0807EC64 0x0008 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 CallWithArg sub_0807FB64, 0xffffffe2 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/unused/script_08012B7C.inc b/data/scripts/unused/script_08012B7C.inc index b6b44f07..d562bd07 100644 --- a/data/scripts/unused/script_08012B7C.inc +++ b/data/scripts/unused/script_08012B7C.inc @@ -6,7 +6,7 @@ SCRIPT_START script_08012B7C EndBlock DoPostScriptAction 0x0001 _0807EC94 0x0008 - _0807E5F8 0x00000002 + SetSyncFlag 0x00000002 CallWithArg sub_0807FB64, 0xffffffe2 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/unused/script_08013D04.inc b/data/scripts/unused/script_08013D04.inc index f53391a3..276d2f05 100644 --- a/data/scripts/unused/script_08013D04.inc +++ b/data/scripts/unused/script_08013D04.inc @@ -10,7 +10,7 @@ script_08013D1C: JumpIfNot script_08013D1C CallWithArg sub_08095D54, 0x00000000 PlaySound SFX_ELEMENT_PLACE - _0807E5F8 0x08000000 + SetSyncFlag 0x08000000 Call sub_080791BC DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/unused/script_08013D44.inc b/data/scripts/unused/script_08013D44.inc index 0c0c832f..e375acd4 100644 --- a/data/scripts/unused/script_08013D44.inc +++ b/data/scripts/unused/script_08013D44.inc @@ -10,7 +10,7 @@ script_08013D5C: JumpIfNot script_08013D5C CallWithArg sub_08095D54, 0x00000001 PlaySound SFX_ELEMENT_PLACE - _0807E5F8 0x10000000 + SetSyncFlag 0x10000000 Call sub_080791BC DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/unused/script_08013D84.inc b/data/scripts/unused/script_08013D84.inc index 7c41421f..53a064ac 100644 --- a/data/scripts/unused/script_08013D84.inc +++ b/data/scripts/unused/script_08013D84.inc @@ -10,7 +10,7 @@ script_08013D9C: JumpIfNot script_08013D9C CallWithArg sub_08095D54, 0x00000002 PlaySound SFX_ELEMENT_PLACE - _0807E5F8 0x20000000 + SetSyncFlag 0x20000000 Call sub_080791BC DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/unused/script_08013DC4.inc b/data/scripts/unused/script_08013DC4.inc index 0d04b036..62c876c7 100644 --- a/data/scripts/unused/script_08013DC4.inc +++ b/data/scripts/unused/script_08013DC4.inc @@ -10,7 +10,7 @@ script_08013DDC: JumpIfNot script_08013DDC CallWithArg sub_08095D54, 0x00000003 PlaySound SFX_ELEMENT_PLACE - _0807E5F8 0x40000000 + SetSyncFlag 0x40000000 Call sub_080791BC DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/unused/script_080155F4.inc b/data/scripts/unused/script_080155F4.inc index ae645fa8..7c934a2a 100644 --- a/data/scripts/unused/script_080155F4.inc +++ b/data/scripts/unused/script_080155F4.inc @@ -1,9 +1,9 @@ @ TODO UNUSED? SCRIPT_START script_080155F4 - WaitForSomething2 0x00000020 + WaitForSyncFlagAndClear 0x00000020 _0807E930 0x0000 Wait 0x0014 - _0807E5F8 0x00000040 + SetSyncFlag 0x00000040 script_08015608: CheckRoomFlag 0x0001 JumpIfNot script_08015608 diff --git a/data/scripts/unused/script_08015A7C.inc b/data/scripts/unused/script_08015A7C.inc index 88c9b653..3034137b 100644 --- a/data/scripts/unused/script_08015A7C.inc +++ b/data/scripts/unused/script_08015A7C.inc @@ -5,7 +5,7 @@ SCRIPT_START script_08015A7C _0807EC64 0x0010 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/unused/script_08015AA0.inc b/data/scripts/unused/script_08015AA0.inc index aaad91f3..e0187879 100644 --- a/data/scripts/unused/script_08015AA0.inc +++ b/data/scripts/unused/script_08015AA0.inc @@ -5,7 +5,7 @@ SCRIPT_START script_08015AA0 _0807EC94 0x0010 _0807EB44 0x0002 DoPostScriptAction 0x0000 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 Call sub_080791BC SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/unused/script_08015F80.inc b/data/scripts/unused/script_08015F80.inc index bf99b59a..af659a4f 100644 --- a/data/scripts/unused/script_08015F80.inc +++ b/data/scripts/unused/script_08015F80.inc @@ -4,9 +4,9 @@ SCRIPT_START script_08015F80 _0807EB44 0x0004 DoPostScriptAction 0x0000 EndBlock - WaitForSomething 0x00000200 + WaitForSyncFlag 0x00000200 DoPostScriptAction 0x0005 - WaitForSomething 0x00000400 + WaitForSyncFlag 0x00000400 DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/unused/script_08016384.inc b/data/scripts/unused/script_08016384.inc index 507b9dcc..8d5b915f 100644 --- a/data/scripts/unused/script_08016384.inc +++ b/data/scripts/unused/script_08016384.inc @@ -13,7 +13,7 @@ SCRIPT_START script_08016384 Call script_08016384 CallWithArg script_08016384, 0x12345678 LoadRoomEntityList script_08016384 - TestBit 0x00000001 + CheckSyncFlagAndClear 0x00000001 CheckInventory1 0x0001 CheckInventory2 0x0001 HasRoomItemForSale @@ -38,10 +38,10 @@ SCRIPT_START script_08016384 CheckEntityInteractType _0807E30C HasRupees 0x00c8 - _0807E3E8 + CheckTextboxResult CheckKinstoneFused 0x0001 BuyItem 0x006c, 0x0000 - _0807E48C 0x0020 + CheckBottleContaining 0x0020 _0807E4CC 0x00000000 _0807E4EC 0x00000000 _0807E514 0x00000000 @@ -50,8 +50,8 @@ SCRIPT_START script_08016384 EntityHasHeight ComparePlayerAction 0x0001 ComparePlayerAnimationState 0x0004 - _0807E5F8 0x00000001 - _0807E610 0x00000002 + SetSyncFlag 0x00000001 + ClearSyncFlag 0x00000002 SetLocalFlag 0x0067 SetLocalFlagByBank 0x0100, 0x0001 ClearLocalFlag 0x0067 @@ -60,11 +60,11 @@ SCRIPT_START script_08016384 SetRoomFlag 0x0000 ClearRoomFlag 0x0000 Wait 0x001e - WaitForSomething 0x00000001 - WaitForSomething2 0x00000002 + WaitForSyncFlag 0x00000001 + WaitForSyncFlagAndClear 0x00000002 WaitPlayerGetItem WaitForPlayerAction0x17 WaitFor_1 - WaitFor_2 + WaitForFadeFinish _0807E778 0x0004 SetFadeMask 0x0000ffff diff --git a/data/scripts/unused/script_08016482.inc b/data/scripts/unused/script_08016482.inc index cbd4b1d4..d7a983b0 100644 --- a/data/scripts/unused/script_08016482.inc +++ b/data/scripts/unused/script_08016482.inc @@ -69,7 +69,7 @@ SCRIPT_START script_08016482 ModHealth 0x0010 IncreaseMaxHealth _0807F050 0x0001 - _0807F034 0x0001 + GivePlayerItem 0x0001 GetInventoryValue 0x0001 _0807F078 0x0001, 0x0002 _0807F088 0x0001 diff --git a/data/scripts/veilFalls/script_BigGoronTalk.inc b/data/scripts/veilFalls/script_BigGoronTalk.inc index cb070bfe..ceb73548 100644 --- a/data/scripts/veilFalls/script_BigGoronTalk.inc +++ b/data/scripts/veilFalls/script_BigGoronTalk.inc @@ -49,7 +49,7 @@ script_080093DA: script_080093EE: MessageNoOverlapVar WaitUntilTextboxCloses - _0807E3E8 + CheckTextboxResult JumpIfNot script_08009376 Wait 0x001e MessageNoOverlap 0x1d08 diff --git a/data/scripts/veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc b/data/scripts/veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc index ae9416fe..9bd85e9f 100644 --- a/data/scripts/veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc +++ b/data/scripts/veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc @@ -1,7 +1,7 @@ @ Veil Falls NPC4E Source of the Flow during opening Kinstone cutscene SCRIPT_START script_NPC4ESouurceOfTheFlowOpening - _0807E5F8 0x00000003 - WaitForSomething2 0x0000000c + SetSyncFlag 0x00000003 + WaitForSyncFlagAndClear 0x0000000c _0807F0C8 0x0000, 0x0000 PlaySound SFX_SECRET _0807EB28 0x0b1f diff --git a/data/scripts/veilFalls/script_Object3ELeftStoneOpening.inc b/data/scripts/veilFalls/script_Object3ELeftStoneOpening.inc index cb69c950..d14749c2 100644 --- a/data/scripts/veilFalls/script_Object3ELeftStoneOpening.inc +++ b/data/scripts/veilFalls/script_Object3ELeftStoneOpening.inc @@ -4,12 +4,12 @@ SCRIPT_START script_Object3ELeftStoneOpening CheckKinstoneFused 0x0009 JumpIf script_Object3ELeftStone EndBlock - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 DoPostScriptAction 0x0010 Wait 0x003c SetEntitySpeed 0x0020 _0807ECF4 0x0080 Wait 0x001e DoPostScriptAction 0x0010 - _0807E5F8 0x00000008 + SetSyncFlag 0x00000008 SCRIPT_END diff --git a/data/scripts/veilFalls/script_Object3ERightStoneOpening.inc b/data/scripts/veilFalls/script_Object3ERightStoneOpening.inc index ef2f0020..b8dfa814 100644 --- a/data/scripts/veilFalls/script_Object3ERightStoneOpening.inc +++ b/data/scripts/veilFalls/script_Object3ERightStoneOpening.inc @@ -4,12 +4,12 @@ SCRIPT_START script_Object3ERightStoneOpening CheckKinstoneFused 0x0009 JumpIf script_Object3ERightStone EndBlock - WaitForSomething2 0x00000002 + WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0010 Wait 0x003c SetEntitySpeed 0x0020 _0807EC94 0x0080 Wait 0x001e DoPostScriptAction 0x0010 - _0807E5F8 0x00000004 + SetSyncFlag 0x00000004 SCRIPT_END diff --git a/data/scripts/westernWood/script_MoblinLady.inc b/data/scripts/westernWood/script_MoblinLady.inc index 05c272db..75d7093e 100644 --- a/data/scripts/westernWood/script_MoblinLady.inc +++ b/data/scripts/westernWood/script_MoblinLady.inc @@ -15,7 +15,7 @@ script_08012338: CheckLocalFlag 0x0042 JumpIf script_0801235A SetLocalFlag 0x0042 - _0807F034 0x0057 + GivePlayerItem 0x0057 WaitPlayerGetItem script_0801235A: _0807E878 diff --git a/data/scripts/windRuins/script_Npc4EWindRuinsTextBoard.inc b/data/scripts/windRuins/script_Npc4EWindRuinsTextBoard.inc index 8b0662a7..3c0338b0 100644 --- a/data/scripts/windRuins/script_Npc4EWindRuinsTextBoard.inc +++ b/data/scripts/windRuins/script_Npc4EWindRuinsTextBoard.inc @@ -14,7 +14,7 @@ script_0800D88E: CheckLocalFlag 0x0045 JumpIf script_0800D8B0 StartPlayerScript script_PlayerAtTextboard - WaitForSomething2 0x00000001 + WaitForSyncFlagAndClear 0x00000001 script_0800D8B0: _0807E8E4_0 MessageNoOverlap 0x1324 diff --git a/data/scripts/windRuins/script_PlayerAtTextboard.inc b/data/scripts/windRuins/script_PlayerAtTextboard.inc index dbee2f6d..a3c2a068 100644 --- a/data/scripts/windRuins/script_PlayerAtTextboard.inc +++ b/data/scripts/windRuins/script_PlayerAtTextboard.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerAtTextboard _0807EDD4 0x00a0, 0x0078 _0807EB44 0x0000 DoPostScriptAction 0x0000 - _0807E5F8 0x00000001 + SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/include/script.h b/include/script.h index 9dd1f116..b59d8916 100644 --- a/include/script.h +++ b/include/script.h @@ -20,13 +20,14 @@ typedef struct ScriptExecutionContext { } ScriptExecutionContext; typedef struct { - u32 unk_00; + // Sync flags are used to synchronize scripts running on different entities + u32 syncFlags; u16 commandIndex; u8 commandSize; u8 flags; u8 unk_08; -} struct_02033280; -extern struct_02033280 gActiveScriptInfo; +} ActiveScriptInfo; +extern ActiveScriptInfo gActiveScriptInfo; void ExecuteScript(Entity* entity, ScriptExecutionContext* context); diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index 41c83e06..7d4f915c 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -17,7 +17,7 @@ typedef struct { extern void sub_08078850(Entity*, u32, u8 /* TODO this is a s8 in beedle.c*/, gUnk_0810C89C_struct*); -extern void script_Object3ELeftStoneOpening; // Cutscene data type? +extern void script_Object3ELeftStoneOpening; // Cutscene data type? extern void script_Object3ERightStoneOpening; // Cutscene data type? const Hitbox gUnk_08114154; diff --git a/src/npc/rem.c b/src/npc/rem.c index 493ce944..2a929f36 100644 --- a/src/npc/rem.c +++ b/src/npc/rem.c @@ -132,7 +132,7 @@ void sub_0806A550(Entity* this) { if (this->frame == 1) { this->frame = 0; sub_08080964(8, 2); - gActiveScriptInfo.unk_00 |= 0x100; + gActiveScriptInfo.syncFlags |= 0x100; SoundReq(SFX_CHEST_OPEN); } if ((this->frame & 0x80) != 0) { @@ -173,7 +173,7 @@ void sub_0806A630(Entity* this) { this->action = 1; InitializeAnimation(this, 0x12); } - if ((gActiveScriptInfo.unk_00 & 0x100) != 0) { + if ((gActiveScriptInfo.syncFlags & 0x100) != 0) { GetNextFrame(this); } if (this->frame == 1) { @@ -192,7 +192,7 @@ void sub_0806A830(Entity* this) { InitializeAnimation(this, 0x14); SetDefaultPriority(this, PRIO_MESSAGE); } - if ((gActiveScriptInfo.unk_00 & 0x200) != 0) { + if ((gActiveScriptInfo.syncFlags & 0x200) != 0) { DeleteThisEntity(); } GetNextFrame(this); diff --git a/src/object/greatFairy.c b/src/object/greatFairy.c index db393026..ccb1adbf 100644 --- a/src/object/greatFairy.c +++ b/src/object/greatFairy.c @@ -183,7 +183,7 @@ void GreatFairy_WingsUpdate(Entity* this) { this->action = 2; sub_0805EC60(this); gRoomVars.animFlags |= 32; - gActiveScriptInfo.unk_00 |= 4; + gActiveScriptInfo.syncFlags |= 4; } else { sub_0805EC9C(this, this->speed, 256, 0); } diff --git a/src/object/object6A.c b/src/object/object6A.c index b1005e1e..9b674aea 100644 --- a/src/object/object6A.c +++ b/src/object/object6A.c @@ -873,7 +873,7 @@ void sub_08095954(Object6AEntity* this) { EnqueueSFX(292); super->frame &= ~1; } else { - gActiveScriptInfo.unk_00 |= 0x100; + gActiveScriptInfo.syncFlags |= 0x100; } } @@ -1069,7 +1069,7 @@ void sub_08095D8C(Object6AEntity* this, ScriptExecutionContext* ctx) { } void sub_08095DBC(Object6AEntity* this) { - if (gActiveScriptInfo.unk_00 & 0x10) + if (gActiveScriptInfo.syncFlags & 0x10) DeleteThisEntity(); if (super->type2 == 0) { if (super->action == 0) { @@ -1085,7 +1085,7 @@ void sub_08095DBC(Object6AEntity* this) { super->spriteRendering.b3 = gUnk_08114F30[super->spriteRendering.b3]; ResolveEntityOnTop(super, super); } - if ((super->type2 & 0x80) == 0 && gActiveScriptInfo.unk_00 & 0x20000) { + if ((super->type2 & 0x80) == 0 && gActiveScriptInfo.syncFlags & 0x20000) { super->type2 = -1; super->zVelocity = 0x40000; super->speed = 0xC000; diff --git a/src/script.c b/src/script.c index a05c3629..e7fcdafb 100644 --- a/src/script.c +++ b/src/script.c @@ -28,7 +28,7 @@ void ScriptCommand_JumpAbsoluteTable(Entity* entity, ScriptExecutionContext* con void ScriptCommand_Call(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CallWithArg(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_LoadRoomEntityList(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_TestBit(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckSyncFlagAndClear(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckInventory1(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckInventory2(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckLocalFlag(Entity* entity, ScriptExecutionContext* context); @@ -41,10 +41,10 @@ void ScriptCommand_CheckEntityInteractType(Entity* entity, ScriptExecutionContex void ScriptCommand_0807E30C(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_HasRupees(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E3BC(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E3E8(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckTextboxResult(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckKinstoneFused(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_BuyItem(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E48C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckBottleContaining(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_HasRoomItemForSale(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E4CC(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E4EC(Entity* entity, ScriptExecutionContext* context); @@ -54,8 +54,8 @@ void ScriptCommand_0807E564(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_EntityHasHeight(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_ComparePlayerAction(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_ComparePlayerAnimationState(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E5F8(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E610(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetSyncFlag(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_ClearSyncFlag(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetLocalFlag(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetLocalFlagByBank(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_ClearLocalFlag(Entity* entity, ScriptExecutionContext* context); @@ -64,12 +64,12 @@ void ScriptCommand_ClearGlobalFlag(Entity* entity, ScriptExecutionContext* conte void ScriptCommand_SetRoomFlag(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_ClearRoomFlag(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_Wait(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_WaitForSomething(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_WaitForSomething2(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WaitForSyncFlag(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WaitForSyncFlagAndClear(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitPlayerGetItem(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitForPlayerAction0x17(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitFor_1(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_WaitFor_2(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WaitForFadeFinish(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E778(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetFadeMask(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E79C(Entity* entity, ScriptExecutionContext* context); @@ -143,7 +143,7 @@ void ScriptCommand_StopBgm(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_ModRupees(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_ModHealth(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_IncreaseMaxHealth(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807F034(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_GivePlayerItem(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807F050(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_GetInventoryValue(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807F078(Entity* entity, ScriptExecutionContext* context); @@ -481,7 +481,7 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { ScriptCommand_Call, ScriptCommand_CallWithArg, ScriptCommand_LoadRoomEntityList, - ScriptCommand_TestBit, + ScriptCommand_CheckSyncFlagAndClear, ScriptCommand_CheckInventory1, ScriptCommand_CheckInventory2, ScriptCommand_HasRoomItemForSale, @@ -495,10 +495,10 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { ScriptCommand_0807E30C, ScriptCommand_HasRupees, ScriptCommand_0807E3BC, - ScriptCommand_0807E3E8, + ScriptCommand_CheckTextboxResult, ScriptCommand_CheckKinstoneFused, ScriptCommand_BuyItem, - ScriptCommand_0807E48C, + ScriptCommand_CheckBottleContaining, ScriptCommand_0807E4CC, ScriptCommand_0807E4EC, ScriptCommand_0807E514, @@ -507,8 +507,8 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { ScriptCommand_EntityHasHeight, ScriptCommand_ComparePlayerAction, ScriptCommand_ComparePlayerAnimationState, - ScriptCommand_0807E5F8, - ScriptCommand_0807E610, + ScriptCommand_SetSyncFlag, + ScriptCommand_ClearSyncFlag, ScriptCommand_SetLocalFlag, ScriptCommand_SetLocalFlagByBank, ScriptCommand_ClearLocalFlag, @@ -517,12 +517,12 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { ScriptCommand_SetRoomFlag, ScriptCommand_ClearRoomFlag, ScriptCommand_Wait, - ScriptCommand_WaitForSomething, - ScriptCommand_WaitForSomething2, + ScriptCommand_WaitForSyncFlag, + ScriptCommand_WaitForSyncFlagAndClear, ScriptCommand_WaitPlayerGetItem, ScriptCommand_WaitForPlayerAction0x17, ScriptCommand_WaitFor_1, - ScriptCommand_WaitFor_2, + ScriptCommand_WaitForFadeFinish, ScriptCommand_0807E778, ScriptCommand_SetFadeMask, ScriptCommand_0807E79C, @@ -597,7 +597,7 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { ScriptCommand_ModRupees, ScriptCommand_ModHealth, ScriptCommand_IncreaseMaxHealth, - ScriptCommand_0807F034, + ScriptCommand_GivePlayerItem, ScriptCommand_0807F050, ScriptCommand_GetInventoryValue, ScriptCommand_0807F078, @@ -613,7 +613,7 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { if (context->wait) { context->wait--; } else { - struct_02033280* activeScriptInfo = &gActiveScriptInfo; + ActiveScriptInfo* activeScriptInfo = &gActiveScriptInfo; activeScriptInfo->flags = 0; do { u32 cmd = GetNextScriptCommandHalfword(context->scriptInstructionPointer); @@ -713,14 +713,14 @@ void ScriptCommand_LoadRoomEntityList(Entity* entity, ScriptExecutionContext* co LoadRoomEntityList((EntityData*)GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer)); } -void ScriptCommand_TestBit(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_CheckSyncFlagAndClear(Entity* entity, ScriptExecutionContext* context) { u32 flag = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); u32 set = 0; - u32 field = gActiveScriptInfo.unk_00; + u32 field = gActiveScriptInfo.syncFlags; if ((field & flag) == flag) set = 1; context->condition = set; - gActiveScriptInfo.unk_00 = field & ~flag; + gActiveScriptInfo.syncFlags = field & ~flag; gActiveScriptInfo.flags |= 1; } @@ -831,7 +831,7 @@ void ScriptCommand_0807E3BC(Entity* entity, ScriptExecutionContext* context) { gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E3E8(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_CheckTextboxResult(Entity* entity, ScriptExecutionContext* context) { context->condition = !gUnk_02000040.unk_01; gActiveScriptInfo.flags |= 1; } @@ -861,7 +861,7 @@ void ScriptCommand_BuyItem(Entity* entity, ScriptExecutionContext* context) { gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E48C(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_CheckBottleContaining(Entity* entity, ScriptExecutionContext* context) { context->condition = GetBottleContaining(context->scriptInstructionPointer[1]); gActiveScriptInfo.flags |= 1; } @@ -914,12 +914,12 @@ void ScriptCommand_ComparePlayerAnimationState(Entity* entity, ScriptExecutionCo gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E5F8(Entity* entity, ScriptExecutionContext* context) { - gActiveScriptInfo.unk_00 |= GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); +void ScriptCommand_SetSyncFlag(Entity* entity, ScriptExecutionContext* context) { + gActiveScriptInfo.syncFlags |= GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } -void ScriptCommand_0807E610(Entity* entity, ScriptExecutionContext* context) { - gActiveScriptInfo.unk_00 &= ~GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); +void ScriptCommand_ClearSyncFlag(Entity* entity, ScriptExecutionContext* context) { + gActiveScriptInfo.syncFlags &= ~GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } void ScriptCommand_SetLocalFlag(Entity* entity, ScriptExecutionContext* context) { @@ -954,19 +954,19 @@ void ScriptCommand_Wait(Entity* entity, ScriptExecutionContext* context) { context->wait = GetNextScriptCommandHalfwordAfterCommandMetadata(context->scriptInstructionPointer); } -void ScriptCommand_WaitForSomething(Entity* entity, ScriptExecutionContext* context) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); - if ((gActiveScriptInfo.unk_00 & tmp) != tmp) { +void ScriptCommand_WaitForSyncFlag(Entity* entity, ScriptExecutionContext* context) { + u32 flag = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); + if ((gActiveScriptInfo.syncFlags & flag) != flag) { gActiveScriptInfo.commandSize = 0; } } -void ScriptCommand_WaitForSomething2(Entity* entity, ScriptExecutionContext* context) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); - if ((gActiveScriptInfo.unk_00 & tmp) != tmp) { +void ScriptCommand_WaitForSyncFlagAndClear(Entity* entity, ScriptExecutionContext* context) { + u32 flag = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); + if ((gActiveScriptInfo.syncFlags & flag) != flag) { gActiveScriptInfo.commandSize = 0; } else { - gActiveScriptInfo.unk_00 &= ~tmp; + gActiveScriptInfo.syncFlags &= ~flag; gActiveScriptInfo.flags |= 1; } } @@ -995,7 +995,7 @@ void ScriptCommand_WaitFor_1(Entity* entity, ScriptExecutionContext* context) { } } -void ScriptCommand_WaitFor_2(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_WaitForFadeFinish(Entity* entity, ScriptExecutionContext* context) { if (gFadeControl.active) { gActiveScriptInfo.commandSize = 0; } @@ -1040,7 +1040,7 @@ void ScriptCommand_0807E80C(Entity* entity, ScriptExecutionContext* context) { sub_0807E818(0x11); } -void sub_0807E818(u32 unk1) { +void sub_0807E818(u32 fadeType) { Entity* cameraTarget = gRoomControls.cameraTarget; u32 x, y; if (cameraTarget) { @@ -1050,7 +1050,7 @@ void sub_0807E818(u32 unk1) { x = 0x78; y = 0x50; } - sub_08050110(x, y, unk1, gActiveScriptInfo.unk_08); + sub_08050110(x, y, fadeType, gActiveScriptInfo.unk_08); } void ScriptCommand_0807E858(Entity* entity, ScriptExecutionContext* context) { @@ -1489,7 +1489,7 @@ void ScriptCommand_IncreaseMaxHealth(Entity* entity, ScriptExecutionContext* con gSave.stats.health = gSave.stats.maxHealth; } -void ScriptCommand_0807F034(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_GivePlayerItem(Entity* entity, ScriptExecutionContext* context) { u32 tmp = 0; if (context->scriptInstructionPointer[1] == 0x3F) { tmp = context->intVariable; From 4241057135a682a66690ecb89e762b2c4ed27cca Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 27 Dec 2021 09:56:55 +0200 Subject: [PATCH 039/168] Work on screenDemo.c --- asm/non_matching/demoScreen/sub_080A3198.inc | 34 ----- include/fileScreen.h | 10 +- include/functions.h | 3 + include/screen.h | 5 +- src/demoScreen.c | 137 ++++++++++++++++++- 5 files changed, 148 insertions(+), 41 deletions(-) delete mode 100644 asm/non_matching/demoScreen/sub_080A3198.inc diff --git a/asm/non_matching/demoScreen/sub_080A3198.inc b/asm/non_matching/demoScreen/sub_080A3198.inc deleted file mode 100644 index 449195ea..00000000 --- a/asm/non_matching/demoScreen/sub_080A3198.inc +++ /dev/null @@ -1,34 +0,0 @@ - .syntax unified - push {r4, r5, lr} - ldr r1, _080A31D0 @ =0x08127CC8 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r4, [r0] - ldr r1, _080A31D4 @ =gChooseFileState - ldrh r0, [r1, #0x12] - cmp r0, r4 - beq _080A31CC - strh r4, [r1, #0x12] - ldr r5, _080A31D8 @ =something2 - ldr r0, [r5] - subs r0, #0x1e - movs r1, #0xc0 - lsls r1, r1, #1 - bl MemClear - cmp r4, #0 - beq _080A31C6DEMO - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0805F46C -_080A31C6DEMO: - ldr r1, _080A31DC @ =gScreen - movs r0, #1 - strh r0, [r1, #0xe] -_080A31CC: - pop {r4, r5, pc} - .align 2, 0 -_080A31D0: .4byte gUnk_08127CC8 -_080A31D4: .4byte gChooseFileState -_080A31D8: .4byte gUnk_08127C98 -_080A31DC: .4byte gScreen - .syntax divided diff --git a/include/fileScreen.h b/include/fileScreen.h index 04cfa4ba..50ea8c82 100644 --- a/include/fileScreen.h +++ b/include/fileScreen.h @@ -6,11 +6,17 @@ #include "save.h" typedef struct { - u8 filler0[0x5]; + u8 unk_0x0; + u8 filler0[0x4]; u8 state; u8 subState; u16 timer; - u8 fillerA[0x26]; + u8 fillerA[0x5]; + s16 unk_0x10; + u16 unk_0x12; + u8 fillerB[0xC]; + u8 unk_0x20; + u8 fillerC[0xF]; } ChooseFileState; static_assert(sizeof(ChooseFileState) == 0x30); diff --git a/include/functions.h b/include/functions.h index 7c875323..105228da 100644 --- a/include/functions.h +++ b/include/functions.h @@ -10,6 +10,7 @@ #include "room.h" #include "structures.h" #include "script.h" +#include "screen.h" // Identified - to be sorted into header files extern u32 CheckKinstoneFused(u32); @@ -223,4 +224,6 @@ extern void sub_080806BC(u32, u32, u32, u32); extern void LoadObjPalette(Entity*, u32); +extern void sub_080ADA04(OAMCommand*, void*); + #endif diff --git a/include/screen.h b/include/screen.h index 18962f80..53f56b89 100644 --- a/include/screen.h +++ b/include/screen.h @@ -70,15 +70,16 @@ typedef struct { /*0x78*/ u32 _78; } Screen; -struct OAMCommand { +typedef struct { u16 x; u16 y; u16 _4; u16 _6; u16 _8; -} extern gOamCmd; +} OAMCommand; extern BgControls gBgControls; extern Screen gScreen; +extern OAMCommand gOamCmd; #endif diff --git a/src/demoScreen.c b/src/demoScreen.c index b10bd35f..af34550a 100644 --- a/src/demoScreen.c +++ b/src/demoScreen.c @@ -21,6 +21,12 @@ extern void gUnk_089FD2F4; extern u8 gUnk_02000006; +extern u16 gUnk_08127CC8[4]; +extern void* gUnk_08127C98; +extern u8 gUnk_08A068BF[129]; + +extern s32 __modsi3(s32, s32); + void HandleChooseDemoScreen(void) { FlushSprites(); demoFunctions[gMain.funcIndex](); @@ -89,8 +95,133 @@ void sub_080A2F8C(void) { } } -ASM_FUNC("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void)) +// The condition on the left dpad is very convuluted for some reason (instead oj just an equality check). +// This causes the entire function heirarchy to change on a whim and I couldn't quite figure out +// the correct conditions/code to make it like the original function. +NONMATCH("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void)) { + u32 tmp; + u32 tmp2; + u32 val; + s32 tmp3; + u32 unk_0x0; + u32 tmp4; + u32 keys; -ASM_FUNC("asm/non_matching/demoScreen/sub_080A30AC.inc", void sub_080A30AC(void)) + if (gFadeControl.active == 0) { + val = 0; + keys = gInput.heldKeys; + if (keys == DPAD_RIGHT) { + if (gChooseFileState.unk_0x0 == 0) { + val = 1; + gChooseFileState.unk_0x20 = 4; + SoundReq(SFX_TEXTBOX_CHOICE); + } + } + else if ((keys) > 0x10) { + if ((keys) != 0x40) { + if ((keys) <= (s16)0x40) { + if (keys == DPAD_LEFT) { + if (gChooseFileState.unk_0x0 == 0) { + val = -1; + gChooseFileState.unk_0x20 = 0xfc; + SoundReq(SFX_TEXTBOX_CHOICE); + } + } + } + } + } + else if ((keys) == 0x1 || (keys) == 0x8) { + if (gChooseFileState.unk_0x0 == 0) { + gMain.screen = 2; + gMain.funcIndex = gChooseFileState.unk_0x0; + SoundReq(SFX_TEXTBOX_SELECT); + } + } + tmp4 = (0x80 << 0x12); + tmp = *(u8*)(tmp4 + 4); + tmp2 = val + 3; + tmp += tmp2; + *(u8*)(tmp4 + 4) = __modsi3(tmp, 3); -ASM_FUNC("asm/non_matching/demoScreen/sub_080A3198.inc", void sub_080A3198(u32 param_1, u32 param_2)) + tmp3 = gChooseFileState.unk_0x10; + + tmp = *(u8*)(tmp4 + 4); + tmp *= 0x68; + + if (tmp != tmp3) { + tmp4 = gChooseFileState.unk_0x20; + tmp4 <<= 18; + tmp4 >>= 18; + tmp4 += tmp3; + gChooseFileState.unk_0x10 = __modsi3(tmp4 + (0x9c << 1), 0x9c << 1); + unk_0x0 = 1; + } + else { + unk_0x0 = 0; + } + + gChooseFileState.unk_0x0 = unk_0x0; + tmp4 = (0x80 << 0x12); + sub_080A3198(*(u8*)(tmp4 + 4), 0); + } +} +END_NONMATCH + +NONMATCH("asm/non_matching/demoScreen/sub_080A30AC.inc", void sub_080A30AC(void)) { + u32 unk_0x10; + u8* ptr; + u8* currentPtr; + u32 offset; + u32 xoffset; + gOamCmd._4 = 0x2000; + gOamCmd._6 = 0; + gOamCmd._8 = 0xc00; + gOamCmd.y = 0x40; + unk_0x10 = gChooseFileState.unk_0x10; + gOamCmd.x = 0xFFFFFED8 - unk_0x10; + offset = *(u32*)gUnk_08A068BF; + ptr = gUnk_08A068BF - 0xc; + sub_080ADA04(&gOamCmd, ptr + offset); + // FIX: original assembly uses r1 for xoffset for no apparent reason. Could not make it compile to do the same. + // Maybe the original code was some sort of loop unrolling. + xoffset = -0xc0; + gOamCmd.x = xoffset - unk_0x10; + sub_080ADA04(&gOamCmd, ptr + *(u32*)(ptr + 4)); + xoffset = -0x58; + gOamCmd.x = xoffset - unk_0x10; + sub_080ADA04(&gOamCmd, ptr + *(u32*)(ptr + 8)); + xoffset = 0x10; + gOamCmd.x = xoffset - unk_0x10; + sub_080ADA04(&gOamCmd, ptr + *(u32*)(gUnk_08A068BF)); + xoffset = 0x78; + gOamCmd.x = xoffset - unk_0x10; + sub_080ADA04(&gOamCmd, ptr + *(u32*)(ptr + 4)); + xoffset = 0xe0; + gOamCmd.x = xoffset - unk_0x10; + sub_080ADA04(&gOamCmd, ptr + *(u32*)(ptr + 8)); + xoffset = 0xa4 << 1; + gOamCmd.x = xoffset - unk_0x10; + sub_080ADA04(&gOamCmd, ptr + *(u32*)(gUnk_08A068BF)); + xoffset = 0xd8 << 1; + gOamCmd.x = xoffset - unk_0x10; + sub_080ADA04(&gOamCmd, ptr + *(u32*)(ptr + 4)); + xoffset = 0x86 << 2; + gOamCmd.x = xoffset - unk_0x10; + sub_080ADA04(&gOamCmd, ptr + *(u32*)(ptr + 8)); +} +END_NONMATCH + +void sub_080A3198(u32 param_1, u32 param_2) { + u16 r4 = gUnk_08127CC8[param_1]; + + if (gChooseFileState.unk_0x12 != r4) { + gChooseFileState.unk_0x12 = r4; + MemClear(gUnk_08127C98 - 0x1e, 0x180); + + if (r4 != 0) { + sub_0805F46C(r4, &gUnk_08127C98); + } + + gScreen.bg0.updated = 1; + } +} From 930979a5cac624cac6cc5ea2385c52d1a532518f Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 27 Dec 2021 10:25:32 +0200 Subject: [PATCH 040/168] clang format --- include/fileScreen.h | 4 ++-- src/demoScreen.c | 13 +++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/include/fileScreen.h b/include/fileScreen.h index 50ea8c82..8d67cf82 100644 --- a/include/fileScreen.h +++ b/include/fileScreen.h @@ -14,9 +14,9 @@ typedef struct { u8 fillerA[0x5]; s16 unk_0x10; u16 unk_0x12; - u8 fillerB[0xC]; + u8 fillerB[0xC]; u8 unk_0x20; - u8 fillerC[0xF]; + u8 fillerC[0xF]; } ChooseFileState; static_assert(sizeof(ChooseFileState) == 0x30); diff --git a/src/demoScreen.c b/src/demoScreen.c index af34550a..a7fa34d9 100644 --- a/src/demoScreen.c +++ b/src/demoScreen.c @@ -116,8 +116,7 @@ NONMATCH("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void) gChooseFileState.unk_0x20 = 4; SoundReq(SFX_TEXTBOX_CHOICE); } - } - else if ((keys) > 0x10) { + } else if ((keys) > 0x10) { if ((keys) != 0x40) { if ((keys) <= (s16)0x40) { if (keys == DPAD_LEFT) { @@ -129,8 +128,7 @@ NONMATCH("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void) } } } - } - else if ((keys) == 0x1 || (keys) == 0x8) { + } else if ((keys) == 0x1 || (keys) == 0x8) { if (gChooseFileState.unk_0x0 == 0) { gMain.screen = 2; gMain.funcIndex = gChooseFileState.unk_0x0; @@ -144,7 +142,7 @@ NONMATCH("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void) *(u8*)(tmp4 + 4) = __modsi3(tmp, 3); tmp3 = gChooseFileState.unk_0x10; - + tmp = *(u8*)(tmp4 + 4); tmp *= 0x68; @@ -155,8 +153,7 @@ NONMATCH("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void) tmp4 += tmp3; gChooseFileState.unk_0x10 = __modsi3(tmp4 + (0x9c << 1), 0x9c << 1); unk_0x0 = 1; - } - else { + } else { unk_0x0 = 0; } @@ -221,7 +218,7 @@ void sub_080A3198(u32 param_1, u32 param_2) { if (r4 != 0) { sub_0805F46C(r4, &gUnk_08127C98); } - + gScreen.bg0.updated = 1; } } From b4bb2df30ad4f0156768735c26912c0c5b9a8359 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 27 Dec 2021 11:31:57 +0200 Subject: [PATCH 041/168] Fix switch and mod --- src/demoScreen.c | 64 ++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/src/demoScreen.c b/src/demoScreen.c index a7fa34d9..c38296e4 100644 --- a/src/demoScreen.c +++ b/src/demoScreen.c @@ -25,8 +25,6 @@ extern u16 gUnk_08127CC8[4]; extern void* gUnk_08127C98; extern u8 gUnk_08A068BF[129]; -extern s32 __modsi3(s32, s32); - void HandleChooseDemoScreen(void) { FlushSprites(); demoFunctions[gMain.funcIndex](); @@ -99,61 +97,63 @@ void sub_080A2F8C(void) { // This causes the entire function heirarchy to change on a whim and I couldn't quite figure out // the correct conditions/code to make it like the original function. NONMATCH("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void)) { - u32 tmp; + s32 tmp; u32 tmp2; u32 val; s32 tmp3; u32 unk_0x0; u32 tmp4; + s32 tmp5; u32 keys; if (gFadeControl.active == 0) { val = 0; keys = gInput.heldKeys; - if (keys == DPAD_RIGHT) { - if (gChooseFileState.unk_0x0 == 0) { - val = 1; - gChooseFileState.unk_0x20 = 4; - SoundReq(SFX_TEXTBOX_CHOICE); - } - } else if ((keys) > 0x10) { - if ((keys) != 0x40) { - if ((keys) <= (s16)0x40) { - if (keys == DPAD_LEFT) { - if (gChooseFileState.unk_0x0 == 0) { - val = -1; - gChooseFileState.unk_0x20 = 0xfc; - SoundReq(SFX_TEXTBOX_CHOICE); - } - } + switch (keys) { + case DPAD_RIGHT: + { + if (gChooseFileState.unk_0x0 == 0) { + val = 1; + gChooseFileState.unk_0x20 = 4; + SoundReq(SFX_TEXTBOX_CHOICE); } } - } else if ((keys) == 0x1 || (keys) == 0x8) { - if (gChooseFileState.unk_0x0 == 0) { - gMain.screen = 2; - gMain.funcIndex = gChooseFileState.unk_0x0; - SoundReq(SFX_TEXTBOX_SELECT); + case DPAD_LEFT: + { + if (gChooseFileState.unk_0x0 == 0) { + val = -1; + gChooseFileState.unk_0x20 = 0xfc; + SoundReq(SFX_TEXTBOX_CHOICE); + } + } + case START_BUTTON: + case A_BUTTON: + { + if (gChooseFileState.unk_0x0 == 0) { + gMain.screen = 2; + gMain.funcIndex = gChooseFileState.unk_0x0; + SoundReq(SFX_TEXTBOX_SELECT); + } } } tmp4 = (0x80 << 0x12); tmp = *(u8*)(tmp4 + 4); tmp2 = val + 3; tmp += tmp2; - *(u8*)(tmp4 + 4) = __modsi3(tmp, 3); + *(u8*)(tmp4 + 4) = tmp % 3; tmp3 = gChooseFileState.unk_0x10; tmp = *(u8*)(tmp4 + 4); tmp *= 0x68; - if (tmp != tmp3) { - tmp4 = gChooseFileState.unk_0x20; - tmp4 <<= 18; - tmp4 >>= 18; - tmp4 += tmp3; - gChooseFileState.unk_0x10 = __modsi3(tmp4 + (0x9c << 1), 0x9c << 1); + if (tmp != tmp3) { + tmp5 = gChooseFileState.unk_0x20; + tmp5 += tmp3; + gChooseFileState.unk_0x10 = (tmp5 + (0x9c << 1)) % (0x9c << 1); unk_0x0 = 1; - } else { + } + else { unk_0x0 = 0; } From 5896ae98313b4530007330773e8335c0f72ab45e Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Mon, 27 Dec 2021 12:05:06 +0100 Subject: [PATCH 042/168] gyorgFemale.c: ok --- asm/gyorgFemale.s | 1093 ----------------- .../gyorg_female/sub_08046518.inc | 84 ++ linker.ld | 2 +- src/enemy/gyorgFemale.c | 371 ++++++ 4 files changed, 456 insertions(+), 1094 deletions(-) delete mode 100644 asm/gyorgFemale.s create mode 100644 asm/non_matching/gyorg_female/sub_08046518.inc create mode 100644 src/enemy/gyorgFemale.c diff --git a/asm/gyorgFemale.s b/asm/gyorgFemale.s deleted file mode 100644 index 3d90df67..00000000 --- a/asm/gyorgFemale.s +++ /dev/null @@ -1,1093 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start GyorgFemale -GyorgFemale: @ 0x08046134 - push {lr} - ldr r2, _08046148 @ =gUnk_080D1A64 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08046148: .4byte gUnk_080D1A64 - - thumb_func_start sub_0804614C -sub_0804614C: @ 0x0804614C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _08046248 @ =gEntCount - ldrb r0, [r0] - cmp r0, #0x3d - bhi _08046244 - movs r0, #0x22 - bl CreateProjectile - adds r1, r0, #0 - movs r4, #0 - strb r4, [r1, #0xa] - str r6, [r1, #0x50] - ldr r0, [r6, #0x64] - str r1, [r0, #0x14] - movs r0, #0x63 - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - ldr r0, [r6, #0x64] - str r1, [r0, #0x10] - movs r0, #0x61 - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #2 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #3 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #4 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #5 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #6 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #7 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #1 - strb r0, [r6, #0xc] - ldrb r2, [r6, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r6, #0x1b] - ldrb r0, [r6, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r6, #0x19] - adds r0, r6, #0 - adds r0, #0x38 - movs r5, #2 - strb r5, [r0] - adds r0, #0x40 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r1, r6, #0 - adds r1, #0x70 - movs r0, #0x3c - strh r0, [r1] - ldr r0, _0804624C @ =gUnk_02019EE0 - movs r4, #0x80 - lsls r4, r4, #8 - adds r1, r4, #0 - bl MemClear - ldr r0, _08046250 @ =gMapDataTopSpecial - adds r1, r4, #0 - bl MemClear - adds r0, r6, #0 - movs r1, #0 - bl sub_0804660C - adds r0, r6, #0 - bl sub_080464C0 - ldr r0, _08046254 @ =gPlayerEntity - adds r1, r0, #0 - adds r1, #0x38 - strb r5, [r1] - bl UpdateSpriteForCollisionLayer - ldr r1, _08046258 @ =sub_08046498 - adds r0, r6, #0 - movs r2, #0 - bl RegisterTransitionManager -_08046244: - pop {r4, r5, r6, pc} - .align 2, 0 -_08046248: .4byte gEntCount -_0804624C: .4byte gUnk_02019EE0 -_08046250: .4byte gMapDataTopSpecial -_08046254: .4byte gPlayerEntity -_08046258: .4byte sub_08046498 - - thumb_func_start sub_0804625C -sub_0804625C: @ 0x0804625C - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x79 - ldrb r2, [r3] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08046286 - movs r1, #0x7f - ands r1, r2 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r3] - movs r0, #3 - ands r1, r0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_0804660C - b _0804629A -_08046286: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _0804629A - movs r0, #0xbf - ands r0, r2 - strb r0, [r3] - adds r0, r4, #0 - bl sub_080464C0 -_0804629A: - bl sub_080465C8 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r3, #0x38 - ands r3, r1 - cmp r3, #0 - beq _080462D6 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x7a - movs r2, #0 - strh r1, [r0] - adds r0, #2 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x70 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - b _0804632A -_080462D6: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08046302 - movs r0, #3 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x70 - movs r1, #0 - movs r0, #0x3c - strh r0, [r2] - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x7a - strh r3, [r0] - adds r0, #2 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - b _0804632A -_08046302: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0804632A - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0804632A - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #1 - bl sub_08046634 -_0804632A: - pop {r4, pc} - - thumb_func_start sub_0804632C -sub_0804632C: @ 0x0804632C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080465C8 - adds r0, r4, #0 - bl sub_080466A8 - adds r3, r4, #0 - adds r3, #0x7a - ldrh r0, [r3] - adds r2, r0, #1 - movs r5, #0 - strh r2, [r3] - lsls r1, r2, #0x10 - ldr r0, _08046360 @ =0x059F0000 - cmp r1, r0 - bls _08046364 - movs r0, #0 - strh r0, [r3] - adds r0, r4, #0 - adds r0, #0x7c - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #3 - b _08046388 - .align 2, 0 -_08046360: .4byte 0x059F0000 -_08046364: - lsls r0, r2, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x78 - bne _08046374 - adds r0, r4, #0 - bl sub_08046668 - b _0804638A -_08046374: - movs r0, #0xa5 - lsls r0, r0, #3 - cmp r1, r0 - bne _0804638A - adds r0, r4, #0 - adds r0, #0x78 -.ifdef EU -_08046388: @TODO fix jump -.endif - strb r5, [r0] -.ifndef EU - adds r0, #5 - strb r5, [r0] - adds r0, #2 -_08046388: - strb r5, [r0] -.endif -_0804638A: - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080463B8 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080463B8 - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_08046634 -_080463B8: - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #0x38 - ands r0, r1 - cmp r0, #0 - bne _080463E0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x70 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 -.ifdef EU - adds r0, #0x80 -.else - adds r0, #0x78 -.endif - strb r2, [r0] -.ifndef EU - adds r0, #8 - strb r2, [r0] -.endif -_080463E0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080463E4 -sub_080463E4: @ 0x080463E4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080465C8 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - movs r5, #0 - strh r0, [r1] - ldr r2, _0804643C @ =0x0000FFFF - adds r6, r2, #0 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08046410 - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #1 - bl sub_08046634 -_08046410: - adds r0, r4, #0 - bl sub_080466A8 - adds r3, r4, #0 - adds r3, #0x7a - ldrh r0, [r3] - adds r2, r0, #1 - strh r2, [r3] - adds r0, r2, #0 - ands r0, r6 - ldr r1, _08046440 @ =0x0000059F - cmp r0, r1 - bls _08046444 - movs r0, #0 - strh r0, [r3] - adds r0, r4, #0 - adds r0, #0x7c - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #3 - b _08046468 - .align 2, 0 -_0804643C: .4byte 0x0000FFFF -_08046440: .4byte 0x0000059F -_08046444: - lsls r0, r2, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x78 - bne _08046454 - adds r0, r4, #0 - bl sub_08046668 - b _0804646A -_08046454: - movs r0, #0xa5 - lsls r0, r0, #3 - cmp r1, r0 - bne _0804646A - adds r0, r4, #0 - adds r0, #0x78 -.ifdef EU -_08046468: -.endif - strb r5, [r0] -.ifndef EU - adds r0, #5 - strb r5, [r0] - adds r0, #2 -_08046468: - strb r5, [r0] -.endif -_0804646A: - adds r0, r4, #0 - adds r0, #0x45 -.ifdef EU - ldrb r1, [r0] - cmp r1, #0 - bne _08046494 -.else - ldrb r0, [r0] - cmp r0, #0 - bne _08046494 -.endif - movs r0, #1 - strb r0, [r4, #0xc] -.ifdef EU - adds r0, r4, #0 - adds r0, #0x78 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x70 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0x0 - adds r0, #0x80 -.else - adds r1, r4, #0 - adds r1, #0x70 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strb r2, [r0] - adds r0, #8 -.endif - strb r2, [r0] - movs r0, #0x94 - lsls r0, r0, #1 - bl SoundReq -_08046494: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08046498 -sub_08046498: @ 0x08046498 -.ifndef EU - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080464B8 @ =gUnk_02019EE0 - movs r4, #0x80 - lsls r4, r4, #8 - adds r1, r4, #0 - bl MemClear - ldr r0, _080464BC @ =gMapDataTopSpecial - adds r1, r4, #0 - bl MemClear - adds r0, r5, #0 - bl sub_080464C0 - pop {r4, r5, pc} - .align 2, 0 -_080464B8: .4byte gUnk_02019EE0 -_080464BC: .4byte gMapDataTopSpecial -.endif - - thumb_func_start sub_080464C0 -sub_080464C0: @ 0x080464C0 - push {r4, r5, r6, lr} - ldr r1, _08046508 @ =gUnk_080D1A74 - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_080197D4 - bl sub_08046518 - movs r6, #0x20 - ldr r4, _0804650C @ =gUnk_02019EE0 - ldr r0, _08046510 @ =0x00003260 - adds r5, r4, r0 -_080464DE: - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x40 - bl MemCopy - movs r0, #0x80 - lsls r0, r0, #1 - adds r5, r5, r0 - adds r4, #0x40 - subs r6, #1 - cmp r6, #0 - bne _080464DE - ldr r0, _0804650C @ =gUnk_02019EE0 - movs r1, #0x80 - lsls r1, r1, #4 - bl MemClear - ldr r1, _08046514 @ =gUpdateVisibleTiles - movs r0, #1 - strb r0, [r1] - pop {r4, r5, r6, pc} - .align 2, 0 -_08046508: .4byte gUnk_080D1A74 -_0804650C: .4byte gUnk_02019EE0 -_08046510: .4byte 0x00003260 -_08046514: .4byte gUpdateVisibleTiles - - thumb_func_start sub_08046518 -sub_08046518: @ 0x08046518 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r1, _080465AC @ =gMetatileTypesTop - ldr r2, _080465B0 @ =0xFFFFBCB0 - adds r0, r1, r2 - ldr r3, _080465B4 @ =0xFFFFECB0 - adds r2, r1, r3 - ldr r7, _080465B8 @ =0x00006658 - adds r7, r1, r7 - str r7, [sp, #4] - ldr r3, _080465BC @ =0xFFFFD658 - adds r6, r1, r3 - movs r1, #0x10 -_0804653A: - movs r5, #0x10 - movs r7, #0x80 - adds r7, r7, r0 - mov sl, r7 - adds r3, r2, #0 - adds r3, #0x80 - str r3, [sp] - ldr r7, [sp, #4] - adds r7, #0x40 - mov r8, r7 - movs r3, #0x40 - adds r3, r3, r6 - mov sb, r3 - subs r1, #1 - mov ip, r1 - adds r3, r0, #0 - adds r3, #0x20 - adds r4, r2, #0 - adds r4, #0x20 -_08046560: - ldrh r0, [r3] - strh r0, [r4] - ldrh r0, [r3] - lsls r0, r0, #1 - ldr r7, _080465AC @ =gMetatileTypesTop - adds r0, r0, r7 - ldrh r1, [r0] - ldr r0, [sp, #4] - adds r2, r0, r5 - ldr r7, _080465C0 @ =gUnk_080B37A0 - adds r0, r1, r7 - ldrb r0, [r0] - strb r0, [r2] - adds r2, r6, r5 - ldr r0, _080465C4 @ =gUnk_080B3E80 - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r2] - subs r3, #2 - subs r4, #2 - subs r5, #1 - cmp r5, #0 - bne _08046560 - mov r0, sl - ldr r2, [sp] - mov r1, r8 - str r1, [sp, #4] - mov r6, sb - mov r1, ip - cmp r1, #0 - bne _0804653A - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080465AC: .4byte gMetatileTypesTop -_080465B0: .4byte 0xFFFFBCB0 -_080465B4: .4byte 0xFFFFECB0 -_080465B8: .4byte 0x00006658 -_080465BC: .4byte 0xFFFFD658 -_080465C0: .4byte gUnk_080B37A0 -_080465C4: .4byte gUnk_080B3E80 - - thumb_func_start sub_080465C8 -sub_080465C8: @ 0x080465C8 - push {r4, lr} - ldr r3, _080465FC @ =gPlayerEntity - movs r0, #0x2e - ldrsh r2, [r3, r0] - ldr r1, _08046600 @ =gRoomControls - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #3 - movs r4, #0x32 - ldrsh r0, [r3, r4] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #3 - ldr r1, _08046604 @ =gUnk_02019EE0 - lsls r0, r0, #7 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080465F8 - ldr r1, _08046608 @ =gPlayerState - movs r0, #1 - strb r0, [r1, #0x14] -_080465F8: - pop {r4, pc} - .align 2, 0 -_080465FC: .4byte gPlayerEntity -_08046600: .4byte gRoomControls -_08046604: .4byte gUnk_02019EE0 -_08046608: .4byte gPlayerState - - thumb_func_start sub_0804660C -sub_0804660C: @ 0x0804660C - push {r4, lr} - strb r1, [r0, #0x14] - lsrs r1, r1, #5 - lsls r1, r1, #1 - ldr r2, _0804662C @ =gUnk_080D1A84 - adds r1, r1, r2 - ldr r3, _08046630 @ =gRoomControls - ldrh r2, [r3, #6] - ldrh r4, [r1] - adds r2, r2, r4 - strh r2, [r0, #0x2e] - ldrh r2, [r3, #8] - ldrh r1, [r1, #2] - adds r2, r2, r1 - strh r2, [r0, #0x32] - pop {r4, pc} - .align 2, 0 -_0804662C: .4byte gUnk_080D1A84 -_08046630: .4byte gRoomControls - - thumb_func_start sub_08046634 -sub_08046634: @ 0x08046634 - push {r4, r5, lr} - adds r5, r0, #0 - cmp r1, #0 - bne _08046650 - ldr r4, _0804664C @ =gUnk_080D1AF4 - bl Random - movs r1, #3 - ands r1, r0 - adds r1, r1, r4 - ldrb r1, [r1] - b _0804665A - .align 2, 0 -_0804664C: .4byte gUnk_080D1AF4 -_08046650: - bl Random - adds r1, r0, #0 - movs r0, #7 - ands r1, r0 -_0804665A: - ldrb r2, [r5, #0x14] - lsrs r2, r2, #3 - adds r0, r1, #0 - movs r1, #0 - bl sub_080A1ED0 - pop {r4, r5, pc} - - thumb_func_start sub_08046668 -sub_08046668: @ 0x08046668 -.ifdef EU - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _08046468EU - bl Random - ldr r2, _0804646C @ =gUnk_080D1AF8 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] - adds r0, r4, #0 - adds r0, #0x78 - movs r2, #0 - strb r1, [r0] - adds r0, #7 - strb r2, [r0] - adds r0, #3 - strb r2, [r0] - adds r0, r4, #0 - bl sub_080467DC -_08046468EU: - pop {r4, pc} - .align 2, 0 -_0804646C: .4byte gUnk_080D1AF8 - -.else - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _080466A0 - adds r5, r4, #0 - adds r5, #0x78 - ldrb r0, [r5] - cmp r0, #0xff - beq _080466A0 - bl Random - ldr r2, _080466A4 @ =gUnk_080D1AF8 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - movs r1, #0 - strb r0, [r5] - adds r0, r4, #0 - adds r0, #0x7f - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - adds r0, r4, #0 - bl sub_080467DC -_080466A0: - pop {r4, r5, pc} - .align 2, 0 -_080466A4: .4byte gUnk_080D1AF8 -.endif - - thumb_func_start sub_080466A8 -sub_080466A8: @ 0x080466A8 -.ifdef EU - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r2, [r0] - cmp r2, #0 - beq _08046514EU - adds r0, #1 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4, #0xe] - adds r5, r0, #0 - cmp r1, #0 - bne _08046498 - subs r0, #5 - ldrb r0, [r0] - cmp r0, #0xff - beq _08046498 - movs r0, #3 - strb r0, [r4, #0xe] -_08046498: - ldrb r0, [r5] - bl sub_08000E62 - cmp r0, #2 - bls _08046514EU - movs r0, #0 - strb r0, [r4, #0xe] - strb r0, [r5] - adds r7, r4, #0 - adds r7, #0x78 - subs r0, #1 - adds r6, r0, #0 - movs r0, #0xff - strb r0, [r7] - adds r0, #0x28 - bl SoundReq - adds r5, r4, #0 - adds r5, #0x45 - ldrb r0, [r5] - cmp r0, #0 - beq _0804650E - movs r0, #8 - movs r1, #0 - bl sub_08080964 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ands r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc - bhi _080464E6 - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] -_080464E6: - ldrb r0, [r5] - cmp r0, #0 - bne _080464F8 - strb r0, [r7] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0xa5 - lsls r0, r0, #3 - b _0804650CEU -_080464F8: - adds r1, r4, #0 - adds r1, #0x7f - ldrb r0, [r1] - cmp r0, #0 - bne _0804650E - movs r0, #1 - strb r0, [r1] - subs r1, #5 - movs r0, #0x87 - lsls r0, r0, #3 -_0804650CEU: - strh r0, [r1] -_0804650E: - adds r0, r4, #0 - bl sub_080467DC -_08046514EU: - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _0804658C - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0xff - beq _0804658C - subs r0, r1, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0804658C - adds r2, r4, #0 - adds r2, #0x80 - adds r3, r4, #0 - adds r3, #0x7d - ldrb r0, [r2] - ldrb r1, [r3] - orrs r0, r1 - strb r0, [r2] - strb r5, [r3] - adds r0, r4, #0 - bl sub_080467DC - ldr r2, _08046598 @ =gPlayerEntity - ldr r0, [r4, #0x64] - adds r0, #0x3c - ldrb r0, [r0] - adds r1, r2, #0 - adds r1, #0x3e - strb r0, [r1] - subs r1, #1 - movs r0, #0xf4 - strb r0, [r1] - adds r1, #5 - movs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - movs r2, #0 - bl CreateFx - adds r2, r0, #0 - cmp r2, #0 - beq _0804658C - ldr r0, [r4, #0x64] - ldrh r0, [r0, #0x38] - strh r0, [r2, #0x2e] - ldr r0, [r4, #0x64] - ldrh r0, [r0, #0x3a] - strh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r2, #0 - bl UpdateSpriteForCollisionLayer -_0804658C: - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0 - strb r0, [r1] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08046598: .4byte gPlayerEntity - - -.else - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r2, [r0] - cmp r2, #0 - beq _0804674C - adds r0, #1 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4, #0xe] - adds r5, r0, #0 - cmp r1, #0 - bne _080466D0 - subs r0, #5 - ldrb r0, [r0] - cmp r0, #0xff - beq _080466D0 - movs r0, #4 - strb r0, [r4, #0xe] -_080466D0: - ldrb r0, [r5] - bl sub_08000E62 - cmp r0, #2 - bls _0804674C - movs r0, #0 - strb r0, [r4, #0xe] - strb r0, [r5] - adds r7, r4, #0 - adds r7, #0x78 - subs r0, #1 - adds r6, r0, #0 - movs r0, #0xff - strb r0, [r7] - adds r0, #0x28 - bl SoundReq - adds r5, r4, #0 - adds r5, #0x45 - ldrb r0, [r5] - cmp r0, #0 - beq _08046746 - movs r0, #8 - movs r1, #0 - bl sub_08080964 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ands r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc - bhi _0804671E - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] -_0804671E: - ldrb r0, [r5] - cmp r0, #0 - bne _08046730 - strb r0, [r7] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0xa5 - lsls r0, r0, #3 - b _08046744 -_08046730: - adds r1, r4, #0 - adds r1, #0x7f - ldrb r0, [r1] - cmp r0, #0 - bne _08046746 - movs r0, #1 - strb r0, [r1] - subs r1, #5 - movs r0, #0x87 - lsls r0, r0, #3 -_08046744: - strh r0, [r1] -_08046746: - adds r0, r4, #0 - bl sub_080467DC -_0804674C: - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _080467CC - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0xff - beq _080467CC - subs r0, r1, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _080467CC - adds r2, r4, #0 - adds r2, #0x80 - adds r3, r4, #0 - adds r3, #0x7d - ldrb r0, [r2] - ldrb r1, [r3] - orrs r0, r1 - strb r0, [r2] - strb r5, [r3] - adds r0, r4, #0 - bl sub_080467DC - ldr r0, [r4, #0x64] - adds r0, #0x3c - ldrb r1, [r0] - adds r0, r1, #0 - cmp r0, #0xff - beq _080467CC - ldr r2, _080467D8 @ =gPlayerEntity - adds r0, r2, #0 - adds r0, #0x3e - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x3d - movs r0, #0xf4 - strb r0, [r1] - adds r1, #5 - movs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - movs r2, #0 - bl CreateFx - adds r2, r0, #0 - cmp r2, #0 - beq _080467CC - ldr r0, [r4, #0x64] - ldrh r0, [r0, #0x38] - strh r0, [r2, #0x2e] - ldr r0, [r4, #0x64] - ldrh r0, [r0, #0x3a] - strh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r2, #0 - bl UpdateSpriteForCollisionLayer -_080467CC: - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0 - strb r0, [r1] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080467D8: .4byte gPlayerEntity -.endif - - thumb_func_start sub_080467DC -sub_080467DC: @ 0x080467DC - push {lr} - movs r1, #0 - ldr r0, [r0, #0x64] - movs r2, #0 - adds r0, #0x18 -_080467E6: - stm r0!, {r2} - adds r1, #1 - cmp r1, #7 - bls _080467E6 - pop {pc} - diff --git a/asm/non_matching/gyorg_female/sub_08046518.inc b/asm/non_matching/gyorg_female/sub_08046518.inc new file mode 100644 index 00000000..c3aa7649 --- /dev/null +++ b/asm/non_matching/gyorg_female/sub_08046518.inc @@ -0,0 +1,84 @@ + push {r4, r5, r6, r7, lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x8 + ldr r1, _data0_0 + ldr r2, _data0_0+0x4 + add r0, r1, r2 + ldr r3, _data0_0+0x8 + add r2, r1, r3 + ldr r7, _data0_0+0xc + add r7, r1, r7 + str r7, [sp, #0x4] + ldr r3, _data0_0+0x10 + add r6, r1, r3 + mov r1, #0x10 +_code0_0: + mov r5, #0x10 + mov r7, #0x80 + add r7, r0 + mov r10, r7 + mov r3, r2 + add r3, #0x80 + str r3, [sp] + ldr r7, [sp, #0x4] + add r7, #0x40 + mov r8, r7 + mov r3, #0x40 + add r3, r6 + mov r9, r3 + sub r1, #0x1 + mov r12, r1 + mov r3, r0 + add r3, #0x20 + mov r4, r2 + add r4, #0x20 +_code0_1: + ldrh r0, [r3] + strh r0, [r4] + ldrh r0, [r3] + lsl r0, #0x1 + ldr r7, _data0_0 + add r0, r7 + ldrh r1, [r0] + ldr r0, [sp, #0x4] + add r2, r0, r5 + ldr r7, _data0_0+0x14 + add r0, r1, r7 + ldrb r0, [r0] + strb r0, [r2] + add r2, r6, r5 + ldr r0, _data0_0+0x18 + add r1, r0 + ldrb r0, [r1] + strb r0, [r2] + sub r3, #0x2 + sub r4, #0x2 + sub r5, #0x1 + cmp r5, #0x0 + bne _code0_1 + mov r0, r10 + ldr r2, [sp] + mov r1, r8 + str r1, [sp, #0x4] + mov r6, r9 + mov r1, r12 + cmp r1, #0x0 + bne _code0_0 + add sp, #0x8 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4, r5, r6, r7, pc} +.align 2, 0 +_data0_0: + .4byte gMetatileTypesTop + .4byte 0xffffbcb0 + .4byte 0xffffecb0 + .4byte 0x6658 + .4byte 0xffffd658 + .4byte gUnk_080B37A0 + .4byte gUnk_080B3E80 diff --git a/linker.ld b/linker.ld index 6e10500c..7f9a26c5 100644 --- a/linker.ld +++ b/linker.ld @@ -461,7 +461,7 @@ SECTIONS { src/enemy/miniFireballGuy.o(.text); src/enemy/vaatiTransfiguredEye.o(.text); asm/businessScrubPrologue.o(.text); - asm/gyorgFemale.o(.text); + src/enemy/gyorgFemale.o(.text); src/enemy/gyorgMale.o(.text); asm/curtain.o(.text); src/enemy/vaatiWrathEye.o(.text); diff --git a/src/enemy/gyorgFemale.c b/src/enemy/gyorgFemale.c new file mode 100644 index 00000000..73f103b8 --- /dev/null +++ b/src/enemy/gyorgFemale.c @@ -0,0 +1,371 @@ +#include "global.h" +#include "entity.h" +#include "enemy.h" +#include "utils.h" +#include "audio.h" +#include "asm.h" +#include "functions.h" + +extern u8 gEntCount; +extern u8 gMapDataTopSpecial[]; + +extern u16 gUnk_02019EE0[]; + +extern void sub_080197D4(u32); + +void sub_08046498(); +void sub_0804660C(Entity*, u32); +void sub_080464C0(Entity*); +void sub_08046634(Entity*, u32); +void sub_080465C8(void); +void sub_080466A8(Entity*); +void sub_08046668(Entity*); +void sub_08046518(void); +void sub_080467DC(Entity*); + +extern u32 sub_08000E62(u32); +extern void RegisterTransitionManager(void*, void (*)(), void (*)()); + +typedef struct { + u8 unk_00[0x18]; + u32 unk_18[0x8]; + u16 unk_38; + u16 unk_3a; + u8 unk_3c; +} GyorgFemaleHeap; + +extern void (*const gUnk_080D1A64[])(Entity*); + +void GyorgFemale(Entity* this) { + gUnk_080D1A64[this->action](this); +} + +void sub_0804614C(Entity* this) { + Entity* tmp; + if (gEntCount > 0x3d) + return; + tmp = CreateProjectile(0x22); + tmp->type = 0; + tmp->parent = this; + ((Entity**)this->myHeap)[5] = tmp; + tmp = CreateEnemy(GYORG_FEMALE_MOUTH, 0); + tmp->parent = this; + ((Entity**)this->myHeap)[4] = tmp; + tmp = CreateEnemy(GYORG_FEMALE_EYE, 0); + tmp->parent = this; + tmp = CreateEnemy(GYORG_FEMALE_EYE, 1); + tmp->parent = this; + tmp = CreateEnemy(GYORG_FEMALE_EYE, 2); + tmp->parent = this; + tmp = CreateEnemy(GYORG_FEMALE_EYE, 3); + tmp->parent = this; + tmp = CreateEnemy(GYORG_FEMALE_EYE, 4); + tmp->parent = this; + tmp = CreateEnemy(GYORG_FEMALE_EYE, 5); + tmp->parent = this; + tmp = CreateEnemy(GYORG_FEMALE_EYE, 6); + tmp->parent = this; + tmp = CreateEnemy(GYORG_FEMALE_EYE, 7); + tmp->parent = this; + this->action = 1; + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + this->collisionLayer = 2; + this->field_0x78.HALF.LO = 0; + this->field_0x78.HALF.HI = 0; + this->field_0x70.HALF.LO = 0x3C; + MemClear(&gUnk_02019EE0, 0x8000); + MemClear(&gMapDataTopSpecial, 0x8000); + sub_0804660C(this, 0); + sub_080464C0(this); + gPlayerEntity.collisionLayer = 2; + UpdateSpriteForCollisionLayer(&gPlayerEntity); +#ifndef EU + RegisterTransitionManager(this, sub_08046498, 0); +#else + RegisterTransitionManager(this, sub_080464C0, 0); +#endif +} + +void sub_0804625C(Entity* this) { + if (this->field_0x78.HALF.HI & 0x80) { + this->field_0x78.HALF.HI &= ~0x80; + this->field_0x78.HALF.HI |= 0x40; + sub_0804660C(this, (this->field_0x78.HALF.HI & 3) << 6); + } else { + if (this->field_0x78.HALF.HI & 0x40) { + this->field_0x78.HALF.HI &= ~0x40; + sub_080464C0(this); + } + } + sub_080465C8(); + if (((Entity**)this->myHeap)[0]->field_0x6c.HWORD & 0x38) { + this->action = 2; + this->actionDelay = 0; + this->field_0x7a.HWORD = 0; + this->field_0x7c.BYTES.byte0 = 0; + this->field_0x7c.BYTES.byte1 = 0; + this->field_0x70.HALF.LO = 0x3c; + this->field_0x80.HALF.LO = 0; + return; + } + if (((Entity**)this->myHeap)[0]->field_0x6c.HWORD & 0x40) { + this->action = 3; + this->field_0x70.HALF.LO = 0x3c; + this->actionDelay = 0; + this->field_0x7a.HWORD = 0; + this->field_0x7c.BYTES.byte0 = 0; + this->field_0x7c.BYTES.byte1 = 0; + this->field_0x80.HALF.LO = 0; + return; + } + if (((Entity**)this->myHeap)[0]->field_0x6c.HWORD & 0x100) { + if (--this->field_0x70.HALF.LO == 0) { + this->field_0x70.HALF.LO = 0x168; + sub_08046634(this, 1); + } + } +} + +void sub_0804632C(Entity* this) { + sub_080465C8(); + sub_080466A8(this); + if (++this->field_0x7a.HWORD > 0x59f) { + this->field_0x7a.HWORD = 0; + this->field_0x7c.BYTES.byte0 = 0; + this->field_0x7c.BYTES.byte1 = 0; + this->field_0x80.HALF.LO = 0; + } else { + if (this->field_0x7a.HWORD == 0x78) { + sub_08046668(this); + } else { + if (this->field_0x7a.HWORD == 0x528) { + this->field_0x78.HALF.LO = 0; +#ifndef EU + this->field_0x7c.BYTES.byte1 = 0; + this->field_0x7c.BYTES.byte3 = 0; +#endif + } + } + } + if (((Entity**)this->myHeap)[0]->field_0x6c.HWORD & 0x80 && --this->field_0x70.HALF.LO == 0) { + this->field_0x70.HALF.LO = 0x168; + sub_08046634(this, 0); + } + if ((((Entity**)this->myHeap)[0]->field_0x6c.HWORD & 0x38) == 0) { + this->action = 1; + this->field_0x70.HALF.LO = 0x3c; +#ifndef EU + this->field_0x78.HALF.LO = 0; +#endif + this->field_0x80.HALF.LO = 0; + } +} + +void sub_080463E4(Entity* this) { + sub_080465C8(); + if (--this->field_0x70.HALF_U.LO == 0) { + this->field_0x70.HALF.LO = 0x168; + sub_08046634(this, 1); + } + sub_080466A8(this); + if (++this->field_0x7a.HWORD > 0x59f) { + this->field_0x7a.HWORD = 0; + this->field_0x7c.BYTES.byte0 = 0; + this->field_0x7c.BYTES.byte1 = 0; + this->field_0x80.HALF.LO = 0; + } else { + if (this->field_0x7a.HWORD == 0x78) { + sub_08046668(this); + } else { + if (this->field_0x7a.HWORD == 0x528) { + this->field_0x78.HALF.LO = 0; +#ifndef EU + this->field_0x7c.BYTES.byte1 = 0; + this->field_0x7c.BYTES.byte3 = 0; +#endif + } + } + } + if (this->health == 0) { + this->action = 1; +#ifdef EU + this->field_0x78.HALF.LO = 0; +#endif + this->field_0x70.HALF.LO = 0x3c; +#ifndef EU + this->field_0x78.HALF.LO = 0; +#endif + this->field_0x80.HALF.LO = 0; + SoundReq(0x128); + } +} + +#ifndef EU +void sub_08046498(Entity* this) { + MemClear(&gUnk_02019EE0, 0x8000); + MemClear(&gMapDataTopSpecial, 0x8000); + sub_080464C0(this); +} +#endif + +extern u32 gUnk_080D1A74[]; +extern u8 gUpdateVisibleTiles; + +void sub_080464C0(Entity* this) { + s32 i; + u8* src; + u8* dst; + sub_080197D4(gUnk_080D1A74[this->animationState >> 6]); + sub_08046518(); + for (i = 0x20, src = ((u8*)&gUnk_02019EE0), dst = ((u8*)&gUnk_02019EE0) + 0x3260; i != 0; i--) { + MemCopy(src, dst, 0x40); + dst += 0x100; + src += 0x40; + } + MemClear(&gUnk_02019EE0, 0x800); + gUpdateVisibleTiles = 1; +} + +extern u8 gUnk_080B3E80[]; +extern u8 gUnk_080B37A0[]; +extern u16 gMetatileTypesTop[]; + +NONMATCH("asm/non_matching/gyorg_female/sub_08046518.inc", void sub_08046518(void)) { + u32 r5; + u16* stack1; + u8* stack2; + u8* r6; + u32 i; + u16* sl; + sl = &gMetatileTypesTop[0xFFFFBCB0]; + stack1 = &gMetatileTypesTop[0xFFFFECB0]; + stack2 = (u8*)&gMetatileTypesTop[0x00006658]; + r6 = (u8*)&gMetatileTypesTop[0xFFFFD658]; + for (i = 0; i < 0x10; i++) { + sl += 0x40; + stack1 += 0x40; + for (r5 = 0; r5 < 0x10; r5++) { + stack1[r5] = sl[r5]; + stack2[r5] = gUnk_080B37A0[gMetatileTypesTop[sl[r5]]]; + r6[r5] = gUnk_080B3E80[gMetatileTypesTop[sl[r5]]]; + } + stack2 = stack2 + 0x40; + r6 = r6 + 0x40; + } +} +END_NONMATCH + +void sub_080465C8(void) { + s32 x, y; + x = (gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX) >> 3; + y = (gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) >> 3; + if (gUnk_02019EE0[(y << 7) + x]) { + gPlayerState.field_0x14 = 1; + } +} + +extern const u16 gUnk_080D1A84[]; + +void sub_0804660C(Entity* this, u32 unk1) { + const u16* p; + this->animationState = unk1; + p = &gUnk_080D1A84[unk1 >> 5]; + this->x.HALF.HI = p[0] + gRoomControls.roomOriginX; + this->y.HALF.HI = p[1] + gRoomControls.roomOriginY; +} + +extern const u8 gUnk_080D1AF4[]; + +void sub_08046634(Entity* this, u32 unk1) { + u32 tmp; + if (unk1 == 0) { + tmp = gUnk_080D1AF4[Random() & 3]; + } else { + tmp = Random() & 7; + } + sub_080A1ED0(tmp, 0, this->animationState >> 3); +} + +extern const u8 gUnk_080D1AF8[]; + +void sub_08046668(Entity* this) { + if (this->health == 0) { + return; + } +#ifndef EU + if (this->field_0x78.HALF.LO == 0xFF) { + return; + } +#endif + this->field_0x78.HALF.LO = gUnk_080D1AF8[Random() & 3]; + this->field_0x7c.BYTES.byte3 = 0; + this->field_0x82.HALF.LO = 0; + sub_080467DC(this); +} + +void sub_080466A8(Entity* this) { + if (this->field_0x7c.BYTES.byte0 != 0) { + this->field_0x7c.BYTES.byte1 |= this->field_0x7c.BYTES.byte0; + if (this->actionDelay == 0 && this->field_0x78.HALF.LO != 0xFF) { +#ifndef EU + this->actionDelay = 4; +#else + this->actionDelay = 3; +#endif + } + if (sub_08000E62(this->field_0x7c.BYTES.byte1) > 2) { + this->actionDelay = 0; + this->field_0x7c.BYTES.byte1 = 0; + this->field_0x78.HALF.LO = 0xFF; + SoundReq(0x127); + if (this->health != 0) { + sub_08080964(8, 0); + if (++this->field_0x82.HALF.LO <= 0xC) { + this->health--; + } + if (this->health == 0) { + this->field_0x78.HALF.LO = 0; + this->field_0x7a.HWORD = 0x528; + } else { + if (this->field_0x7c.BYTES.byte3 == 0) { + this->field_0x7c.BYTES.byte3 = 1; + this->field_0x7a.HWORD = 0x438; + } + } + } + sub_080467DC(this); + } + } + if (this->actionDelay != 0 && this->field_0x78.HALF.LO != 0xFF && --this->actionDelay == 0) { + Entity* tmp; + this->field_0x80.HALF.LO |= this->field_0x7c.BYTES.byte1; + this->field_0x7c.BYTES.byte1 = 0; + sub_080467DC(this); +#ifndef EU + if (((GyorgFemaleHeap*)this->myHeap)->unk_3c != 0xFF) { +#endif + tmp = &gPlayerEntity; + tmp->knockbackDirection = ((GyorgFemaleHeap*)this->myHeap)->unk_3c; + tmp->iframes = 0xF4; + tmp->knockbackDuration = 0xA; + tmp = CreateFx(this, 0x2C, 0); + if (tmp) { + tmp->x.HALF.HI = ((GyorgFemaleHeap*)this->myHeap)->unk_38; + tmp->y.HALF.HI = ((GyorgFemaleHeap*)this->myHeap)->unk_3a; + tmp->collisionLayer = 1; + UpdateSpriteForCollisionLayer(tmp); + } +#ifndef EU + } +#endif + } + this->field_0x7c.BYTES.byte0 = 0; +} + +void sub_080467DC(Entity* this) { + u32 i; + for (i = 0; i < 8; i++) { + ((GyorgFemaleHeap*)this->myHeap)->unk_18[i] = 0; + } +} From f85a48be717ca6f5865321a6060e729afbc8ffd3 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 27 Dec 2021 15:58:45 +0200 Subject: [PATCH 043/168] Decompile MoblinSpear_Action1 --- .../moblinSpear/MoblinSpear_Action1.inc | 73 ------------------- src/projectile/moblinSpear.c | 21 +++--- 2 files changed, 12 insertions(+), 82 deletions(-) delete mode 100644 asm/non_matching/moblinSpear/MoblinSpear_Action1.inc diff --git a/asm/non_matching/moblinSpear/MoblinSpear_Action1.inc b/asm/non_matching/moblinSpear/MoblinSpear_Action1.inc deleted file mode 100644 index e4590708..00000000 --- a/asm/non_matching/moblinSpear/MoblinSpear_Action1.inc +++ /dev/null @@ -1,73 +0,0 @@ - .syntax unified - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A83C2 - bl DeleteThisEntity -_080A83C2: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A83CC - bl DeleteThisEntity -_080A83CC: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x18 - ldr r1, _080A8424 @ =gUnk_0812966C - adds r2, r0, r1 - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r0, r5, #0 - adds r0, #0x5b - ldrb r0, [r0] - cmp r0, #0x40 - bne _080A83F4 - ldr r1, [r4, #0x48] - ldrb r0, [r1] - rsbs r0, r0, #0 - strb r0, [r1] -_080A83F4: - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1, #1] - adds r2, #1 - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1, #6] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #1] - strb r0, [r1, #7] - adds r0, r5, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080A8428 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8438 - movs r0, #0x7f - ands r0, r1 - b _080A8436 - .align 2, 0 -_080A8424: .4byte gUnk_0812966C -_080A8428: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A8438 - movs r0, #0x80 - orrs r0, r1 -_080A8436: - strb r0, [r4, #0x10] -_080A8438: - pop {r4, r5, pc} - .align 2, 0 - .syntax divided diff --git a/src/projectile/moblinSpear.c b/src/projectile/moblinSpear.c index f31459cc..c374a790 100644 --- a/src/projectile/moblinSpear.c +++ b/src/projectile/moblinSpear.c @@ -49,11 +49,16 @@ void MoblinSpear_Init(Entity* this) { } } -NONMATCH("asm/non_matching/moblinSpear/MoblinSpear_Action1.inc", void MoblinSpear_Action1(Entity* this)) { +void MoblinSpear_Action1(Entity* this) { u8 frames; Entity* parent; u32 tmp; - const HitboxChange* a; + + //const HitboxChange* a; + // TODO: Copying a members using HitboxChange members addresses them directly using [r2, 0x1] + // while the assembly increases the pointer after every copy. + // Not sure how to make this more readable. + const u8* a; parent = this->parent; if (parent == NULL) { @@ -63,15 +68,14 @@ NONMATCH("asm/non_matching/moblinSpear/MoblinSpear_Action1.inc", void MoblinSpea DeleteThisEntity(); } frames = parent->frame * 4; - a = &gUnk_0812966C[frames / 4]; - this->hitbox->offset_x = a->offsetX; - // TODO offset used to increase a pointer is already increated here? + a = (u8*) &gUnk_0812966C[frames / 4]; + this->hitbox->offset_x = *a++; if (parent->frameSpriteSettings == 0x40) { this->hitbox->offset_x = -this->hitbox->offset_x; } - this->hitbox->offset_y = a->offsetY; - this->hitbox->width = a->width; - this->hitbox->height = a->height; + this->hitbox->offset_y = *a++; + this->hitbox->width = *a++; + this->hitbox->height = *a++; if (parent->field_0x43 != 0) { if ((this->flags & ENT_COLLIDE) != 0) { COLLISION_OFF(this); @@ -82,7 +86,6 @@ NONMATCH("asm/non_matching/moblinSpear/MoblinSpear_Action1.inc", void MoblinSpea } } } -END_NONMATCH void (*const MoblinSpear_Functions[])(Entity*) = { MoblinSpear_OnTick, sub_080A832C, DeleteEntity, DeleteEntity, DeleteEntity, From 5ddb348cebe6a32e178574b1e7e9392b93ff1b90 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 27 Dec 2021 16:09:31 +0200 Subject: [PATCH 044/168] Use gSaveHeader --- src/demoScreen.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/demoScreen.c b/src/demoScreen.c index c38296e4..2d0ef585 100644 --- a/src/demoScreen.c +++ b/src/demoScreen.c @@ -136,15 +136,14 @@ NONMATCH("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void) } } } - tmp4 = (0x80 << 0x12); - tmp = *(u8*)(tmp4 + 4); + tmp = gSaveHeader->saveFileId; tmp2 = val + 3; tmp += tmp2; - *(u8*)(tmp4 + 4) = tmp % 3; + gSaveHeader->saveFileId = tmp % 3; tmp3 = gChooseFileState.unk_0x10; - tmp = *(u8*)(tmp4 + 4); + tmp = gSaveHeader->saveFileId; tmp *= 0x68; if (tmp != tmp3) { @@ -158,8 +157,7 @@ NONMATCH("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void) } gChooseFileState.unk_0x0 = unk_0x0; - tmp4 = (0x80 << 0x12); - sub_080A3198(*(u8*)(tmp4 + 4), 0); + sub_080A3198(gSaveHeader->saveFileId, 0); } } END_NONMATCH From 167fe1122ea3fcfcc6b46af1ced55b2c7e44c170 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 27 Dec 2021 17:06:51 +0200 Subject: [PATCH 045/168] Fix nonmatching PutItemOnSlot --- asm/non_matching/PutItemOnSlot.inc | 73 ------------------------------ src/code_0805436C.c | 13 +++--- 2 files changed, 6 insertions(+), 80 deletions(-) delete mode 100644 asm/non_matching/PutItemOnSlot.inc diff --git a/asm/non_matching/PutItemOnSlot.inc b/asm/non_matching/PutItemOnSlot.inc deleted file mode 100644 index af483e7b..00000000 --- a/asm/non_matching/PutItemOnSlot.inc +++ /dev/null @@ -1,73 +0,0 @@ - .syntax unified - - .text - - push {r4, r5, lr} - adds r5, r0, #0 - cmp r5, #0x46 - bhi _080543A8 - movs r0, #0 - movs r1, #1 - bl sub_0807CAA0 -_080543A8: - subs r0, r5, #1 - cmp r0, #0x1e - bhi _08054410 - movs r1, #2 - ldr r2, _080543C0 @ =gSave - adds r0, r2, #0 - adds r0, #0xb4 - ldrb r0, [r0] - cmp r0, #0 - bne _080543C4 - movs r1, #0 - b _080543D0 - .align 2, 0 -_080543C0: .4byte gSave -_080543C4: - adds r0, r2, #0 - adds r0, #0xb5 - ldrb r0, [r0] - cmp r0, #0 - bne _080543D0 - movs r1, #1 -_080543D0: - cmp r1, #2 - bne _0805440A - ldr r3, _080543F0 @ =gUnk_080FD5B4 - lsls r0, r5, #3 - adds r0, r0, r3 - ldrb r4, [r0] - adds r0, r2, #0 - adds r0, #0xb4 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r4, r0 - bne _080543F4 - movs r1, #0 - b _08054406 - .align 2, 0 -_080543F0: .4byte gUnk_080FD5B4 -_080543F4: - adds r0, r2, #0 - adds r0, #0xb5 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r4, r0 - bne _08054406 - movs r1, #1 -_08054406: - cmp r1, #2 - beq _08054410 -_0805440A: - adds r0, r5, #0 - bl ForceEquipItem -_08054410: - pop {r4, r5, pc} - .align 2, 0 - - .syntax divided diff --git a/src/code_0805436C.c b/src/code_0805436C.c index a2352185..f463aabb 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -44,13 +44,13 @@ u32 IsItemEquipped(u32 itemID) { return itemSlot; } -NONMATCH("asm/non_matching/PutItemOnSlot.inc", void PutItemOnSlot(u32 itemID)) { - // reg-alloc +void PutItemOnSlot(u32 itemID) { u32 itemSlot; - if (itemID < 0x47) { + register u32 itemID2 asm ("r5") = itemID; + if (itemID2 < 0x47) { sub_0807CAA0(0, 1); } - if (itemID - 1 < 0x1f) { + if (itemID2 - 1 < 0x1f) { itemSlot = 2; if (gSave.stats.itemOnA == 0) { itemSlot = 0; @@ -58,7 +58,7 @@ NONMATCH("asm/non_matching/PutItemOnSlot.inc", void PutItemOnSlot(u32 itemID)) { itemSlot = 1; } if (itemSlot == 2) { - u8 temp = gUnk_080FD5B4[itemID].unk; + u8 temp = gUnk_080FD5B4[itemID2].unk; if (temp == gUnk_080FD5B4[gSave.stats.itemOnA].unk) { itemSlot = 0; } else { @@ -70,10 +70,9 @@ NONMATCH("asm/non_matching/PutItemOnSlot.inc", void PutItemOnSlot(u32 itemID)) { return; } } - ForceEquipItem(itemID, itemSlot); + ForceEquipItem(itemID2, itemSlot); } } -END_NONMATCH ASM_FUNC("asm/non_matching/ForceEquipItem.inc", void ForceEquipItem(u32 itemID, u8 itemSlot)) From 1ace8abbc1a06ca7a6761f8b699c84c428c5a527 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Tue, 28 Dec 2021 00:12:25 +0200 Subject: [PATCH 046/168] clang format --- src/code_0805436C.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/code_0805436C.c b/src/code_0805436C.c index f463aabb..62853444 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -46,7 +46,7 @@ u32 IsItemEquipped(u32 itemID) { void PutItemOnSlot(u32 itemID) { u32 itemSlot; - register u32 itemID2 asm ("r5") = itemID; + register u32 itemID2 asm("r5") = itemID; if (itemID2 < 0x47) { sub_0807CAA0(0, 1); } From 5fa3e5f1fcba867a747f2b8acf344508a8905a46 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Tue, 28 Dec 2021 00:14:45 +0200 Subject: [PATCH 047/168] clang format --- src/projectile/moblinSpear.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/projectile/moblinSpear.c b/src/projectile/moblinSpear.c index c374a790..09decdd6 100644 --- a/src/projectile/moblinSpear.c +++ b/src/projectile/moblinSpear.c @@ -53,8 +53,8 @@ void MoblinSpear_Action1(Entity* this) { u8 frames; Entity* parent; u32 tmp; - - //const HitboxChange* a; + + // const HitboxChange* a; // TODO: Copying a members using HitboxChange members addresses them directly using [r2, 0x1] // while the assembly increases the pointer after every copy. // Not sure how to make this more readable. @@ -68,7 +68,7 @@ void MoblinSpear_Action1(Entity* this) { DeleteThisEntity(); } frames = parent->frame * 4; - a = (u8*) &gUnk_0812966C[frames / 4]; + a = (u8*)&gUnk_0812966C[frames / 4]; this->hitbox->offset_x = *a++; if (parent->frameSpriteSettings == 0x40) { this->hitbox->offset_x = -this->hitbox->offset_x; From 24750a6bb59eebab95a9ef0a020ba612cac908e1 Mon Sep 17 00:00:00 2001 From: theo3 Date: Mon, 27 Dec 2021 17:14:52 -0800 Subject: [PATCH 048/168] finish player.c --- asm/ballChainSoldier.s | 2 +- asm/chuchuBoss.s | 8 +- asm/code_080043E8.s | 4 +- asm/code_0800857C.s | 2 +- asm/code_0801967C.s | 12 +- asm/code_080732D0.s | 4332 ----------------- asm/code_08078778.s | 18 +- asm/crenalBeanSprout.s | 2 +- asm/enemy4D.s | 2 +- asm/enemy50.s | 4 +- asm/enemy62.s | 2 +- asm/ghini.s | 6 +- asm/gleerok.s | 6 +- asm/gyorgBossObject.s | 14 +- asm/gyorgFemale.s | 4 +- asm/hittableLever.s | 2 +- asm/ladderUp.s | 4 +- asm/lilypadLarge.s | 2 +- asm/macroBook.s | 12 +- asm/non_matching/pesto/sub_08024E4C.inc | 2 +- asm/non_matching/player/PlayerNormal.inc | 12 +- asm/non_matching/player/sub_08070DC4.inc | 4 +- asm/non_matching/player/sub_08073584.inc | 280 ++ asm/non_matching/player/sub_080740D8.inc | 123 + asm/non_matching/player/sub_08074678.inc | 146 + asm/non_matching/player/sub_080751E8.inc | 84 + .../playerItemSword/sub_080A7A84.inc | 4 +- asm/non_matching/sub_0804BF38.inc | 2 +- asm/object10.s | 16 +- asm/pressurePlate.s | 4 +- asm/stairsInteract.s | 129 - data/data_0811B9E0.s | 69 - data/data_0811BE38.s | 84 +- include/asm.h | 6 +- include/functions.h | 2 +- include/player.h | 24 +- include/room.h | 2 +- linker.ld | 6 +- src/code_0808091C.c | 2 +- src/collision.c | 35 +- src/enemy/beetle.c | 2 +- src/enemy/gibdo.c | 8 +- src/enemy/helmasaur.c | 2 +- src/enemy/lakituCloud.c | 4 +- src/enemy/mazaalBracelet.c | 14 +- src/enemy/mazaalHead.c | 2 +- src/enemy/mazaalMacro.c | 2 +- src/enemy/moldworm.c | 8 +- src/enemy/octorokBoss.c | 6 +- src/enemy/pesto.c | 10 +- src/enemy/rupeeLike.c | 2 +- src/enemy/vaatiRebornEnemy.c | 2 +- src/enemy/vaatiTransfigured.c | 8 +- src/enemy/vaatiWrath.c | 4 +- src/enemy/wisp.c | 2 +- src/enemyUtils.c | 3 +- src/interrupts.c | 30 +- src/item.c | 4 + src/item/itemBoomerang.c | 4 +- src/item/itemLantern.c | 18 +- src/item/itemOcarina.c | 10 +- src/item/itemPegasusBoots.c | 2 +- src/item/itemSword.c | 10 +- src/manager/manager15.c | 4 +- src/manager/manager1A.c | 2 +- src/manager/manager34.c | 6 +- src/manager/managerA.c | 2 +- src/manager/managerC.c | 2 +- src/npc/carlov.c | 2 +- src/npc/castorWildsStatue.c | 2 +- src/npc/rem.c | 2 +- src/npc/zelda.c | 2 +- src/object/bakerOven.c | 4 +- src/object/bigVortex.c | 2 +- src/object/book.c | 4 +- src/object/button.c | 20 +- src/object/itemOnGround.c | 1 - src/object/jarPortal.c | 2 +- src/object/minecart.c | 23 +- src/object/object6A.c | 2 +- src/object/object86.c | 2 +- src/overworld.c | 6 +- src/player.c | 1700 ++++++- src/projectile/lakituCloudProjectile.c | 4 +- src/projectile/v1DarkMagicProjectile.c | 4 +- src/projectile/v2Projectile.c | 4 +- src/roomInit.c | 4 +- src/script.c | 6 +- src/sub_0807B820.c | 2 +- 89 files changed, 2566 insertions(+), 4879 deletions(-) delete mode 100644 asm/code_080732D0.s create mode 100644 asm/non_matching/player/sub_08073584.inc create mode 100644 asm/non_matching/player/sub_080740D8.inc create mode 100644 asm/non_matching/player/sub_08074678.inc create mode 100644 asm/non_matching/player/sub_080751E8.inc delete mode 100644 asm/stairsInteract.s delete mode 100644 data/data_0811B9E0.s diff --git a/asm/ballChainSoldier.s b/asm/ballChainSoldier.s index 0f897b81..9cec92cf 100644 --- a/asm/ballChainSoldier.s +++ b/asm/ballChainSoldier.s @@ -356,7 +356,7 @@ _0803E7A0: strb r0, [r2, #0xe] movs r0, #8 movs r1, #0 - bl sub_08080964 + bl InitScreenShake _0803E7B0: pop {pc} .align 2, 0 diff --git a/asm/chuchuBoss.s b/asm/chuchuBoss.s index d3f20d5a..b2b3b1d9 100644 --- a/asm/chuchuBoss.s +++ b/asm/chuchuBoss.s @@ -1033,7 +1033,7 @@ sub_0802647C: @ 0x0802647C bne _080264A6 movs r0, #0x10 movs r1, #0 - bl sub_08080964 + bl InitScreenShake ldr r0, _080264A8 @ =0x000001A1 bl SoundReq adds r0, r4, #0 @@ -1561,7 +1561,7 @@ sub_0802686C: @ 0x0802686C _08026888: movs r0, #0x10 movs r1, #0 - bl sub_08080964 + bl InitScreenShake movs r0, #5 strb r0, [r4, #0xd] adds r0, r4, #0 @@ -1852,7 +1852,7 @@ _08026A7C: strh r0, [r1] movs r0, #0x20 movs r1, #0 - bl sub_08080964 + bl InitScreenShake ldr r0, _08026B24 @ =0x0000010B bl SoundReq adds r0, r6, #0 @@ -2126,7 +2126,7 @@ _08026A98: strh r0, [r1] movs r0, #0x20 movs r1, #0 - bl sub_08080964 + bl InitScreenShake ldr r0, _08026B24 @ =0x0000010B bl SoundReq adds r0, r6, #0 diff --git a/asm/code_080043E8.s b/asm/code_080043E8.s index 4a962130..817ddf9a 100644 --- a/asm/code_080043E8.s +++ b/asm/code_080043E8.s @@ -99,8 +99,8 @@ EnqueueSFX: @ 0x08004488 _0800449A: bx lr - thumb_func_start sub_0800449C -sub_0800449C: @ 0x0800449C + thumb_func_start SoundReqClipped +SoundReqClipped: @ 0x0800449C push {r1, lr} bl CheckOnScreen cmp r0, #0 diff --git a/asm/code_0800857C.s b/asm/code_0800857C.s index c4a611b9..cd443b88 100644 --- a/asm/code_0800857C.s +++ b/asm/code_0800857C.s @@ -464,7 +464,7 @@ _0800890C: .byte 0x00, 0xFA, 0x06, 0x00, 0x13, 0x12, 0x12, 0x10, 0x10, 0x11, 0x11, 0x13 _0800891C: push {r0} - bl sub_08078F60 + bl ResetPlayerVelocity pop {r0} _08008924: pop {pc} diff --git a/asm/code_0801967C.s b/asm/code_0801967C.s index 69ea4740..27351a84 100644 --- a/asm/code_0801967C.s +++ b/asm/code_0801967C.s @@ -1260,7 +1260,7 @@ _08019FDA: ands r7, r0 movs r4, #0 movs r6, #0 - ldr r5, _0801A088 @ =gUnk_03004040 + ldr r5, _0801A088 @ =gPlayerClones mov sb, r5 _08019FEC: mov r1, sb @@ -1340,7 +1340,7 @@ _0801A02A: _0801A07C: .4byte gPlayerState _0801A080: .4byte 0x0000FFFF _0801A084: .4byte 0x00000FFF -_0801A088: .4byte gUnk_03004040 +_0801A088: .4byte gPlayerClones _0801A08C: .4byte gPlayerEntity _0801A090: .4byte gRoomControls _0801A094: @@ -1465,7 +1465,7 @@ _0801A166: b _0801A2A4 _0801A174: movs r4, #0 - ldr r5, _0801A194 @ =gUnk_03004040 + ldr r5, _0801A194 @ =gPlayerClones _0801A178: ldr r0, [r5] movs r1, #0 @@ -1481,7 +1481,7 @@ _0801A186: b _0801A2A4 .align 2, 0 _0801A190: .4byte gPlayerState -_0801A194: .4byte gUnk_03004040 +_0801A194: .4byte gPlayerClones _0801A198: subs r7, #0x40 _0801A19A: @@ -1499,7 +1499,7 @@ _0801A1A6: cmp r0, #9 ble _0801A2A4 movs r4, #0 - ldr r5, _0801A1D0 @ =gUnk_03004040 + ldr r5, _0801A1D0 @ =gPlayerClones _0801A1B6: ldr r0, [r5] movs r1, #6 @@ -1513,7 +1513,7 @@ _0801A1B6: b _0801A2A4 .align 2, 0 _0801A1CC: .4byte gPlayerState -_0801A1D0: .4byte gUnk_03004040 +_0801A1D0: .4byte gPlayerClones _0801A1D4: movs r0, #2 ands r0, r1 diff --git a/asm/code_080732D0.s b/asm/code_080732D0.s deleted file mode 100644 index ad91468f..00000000 --- a/asm/code_080732D0.s +++ /dev/null @@ -1,4332 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_080732D0 -sub_080732D0: @ 0x080732D0 - push {r4, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0x28 - beq _080732EE - movs r0, #0 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C - b _08073328 -_080732EE: - ldrb r0, [r4, #0xd] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xd] - strh r1, [r4, #0x30] - adds r0, r4, #0 - movs r1, #0x70 - movs r2, #1 - movs r3, #0 - bl CreateObjectWithParent - ldr r0, _08073318 @ =gPlayerState - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #7 - bne _08073320 - ldr r0, _0807331C @ =0x00000187 - bl SoundReq - b _08073328 - .align 2, 0 -_08073318: .4byte gPlayerState -_0807331C: .4byte 0x00000187 -_08073320: - movs r0, #0xc4 - lsls r0, r0, #1 - bl SoundReq -_08073328: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0807332C -sub_0807332C: @ 0x0807332C - push {r4, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - ldr r0, _08073344 @ =gPlayerState - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #7 - bne _08073348 - movs r0, #0 - b _0807334A - .align 2, 0 -_08073344: .4byte gPlayerState -_08073348: - movs r0, #0x1c -_0807334A: - strb r0, [r4, #0x15] - ldrh r1, [r4, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xf - beq _08073386 - ldr r0, _08073368 @ =gPlayerState - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #7 - bne _0807336C - movs r0, #2 - strb r0, [r4, #0x14] - movs r0, #4 - b _0807337C - .align 2, 0 -_08073368: .4byte gPlayerState -_0807336C: - movs r0, #6 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x15] - cmp r0, #0x18 - bls _0807337E - subs r0, #1 - movs r1, #0x1f - ands r0, r1 -_0807337C: - strb r0, [r4, #0x15] -_0807337E: - adds r0, r4, #0 - bl sub_0806F69C - b _080733B6 -_08073386: - ldr r0, _0807339C @ =gPlayerState - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - beq _080733A4 - ldr r0, _080733A0 @ =gRoomControls - str r4, [r0, #0x30] - bl sub_080791BC - b _080733B6 - .align 2, 0 -_0807339C: .4byte gPlayerState -_080733A0: .4byte gRoomControls -_080733A4: - ldr r0, _080733B8 @ =gMain - movs r1, #3 - strb r1, [r0, #4] - movs r1, #1 - strb r1, [r0, #0xb] - movs r0, #5 - movs r1, #8 - bl DoFade -_080733B6: - pop {r4, pc} - .align 2, 0 -_080733B8: .4byte gMain - - thumb_func_start sub_080733BC -sub_080733BC: @ 0x080733BC - push {r4, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - ldrh r1, [r4, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #8 - bne _080733FC - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #4 - strb r0, [r4, #0x14] - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _080733FC - bl DeleteEntity - movs r0, #0 - str r0, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _080733F6 - adds r0, r4, #0 - bl sub_0807AABC - b _080733FC -_080733F6: - adds r0, r4, #0 - bl sub_0807AA80 -_080733FC: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - adds r0, #0x7e - ldrh r1, [r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08073418 - ldr r0, _0807341C @ =gRoomControls - str r4, [r0, #0x30] - bl sub_0807921C -_08073418: - pop {r4, pc} - .align 2, 0 -_0807341C: .4byte gRoomControls - - thumb_func_start PlayerParachute -PlayerParachute: @ 0x08073420 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078EFC - cmp r0, #0 - bne _0807345E - bl UpdateFloorType - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldr r0, _08073460 @ =gPlayerState - adds r0, #0xa8 - movs r1, #8 - strb r1, [r0] - ldr r1, _08073464 @ =gUnk_0811BC08 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 -_0807345E: - pop {r4, pc} - .align 2, 0 -_08073460: .4byte gPlayerState -_08073464: .4byte gUnk_0811BC08 - - thumb_func_start sub_08073468 -sub_08073468: @ 0x08073468 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080734CC @ =gPlayerState - movs r1, #0 - movs r0, #0xe0 - lsls r0, r0, #3 - strh r0, [r5, #8] - strb r1, [r5, #2] - ldr r0, _080734D0 @ =0xFFFF0000 - str r0, [r4, #0x20] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xf0 - lsls r0, r0, #1 - str r0, [r4, #0x7c] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldr r1, [r5, #0x30] - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - bne _080734AC - orrs r1, r2 - str r1, [r5, #0x30] - adds r0, r4, #0 - movs r1, #0x61 - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent -_080734AC: - bl ResetPlayer - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _080734C0 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _080734C8 -_080734C0: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_080734C8: - pop {r4, r5, pc} - .align 2, 0 -_080734CC: .4byte gPlayerState -_080734D0: .4byte 0xFFFF0000 - - thumb_func_start sub_080734D4 -sub_080734D4: @ 0x080734D4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080734FC @ =0xFFFFF000 - bl GravityUpdate - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _080734EE - ldr r0, _08073500 @ =gPlayerState - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _080734FA -_080734EE: - movs r0, #0x92 - lsls r0, r0, #0xb - str r0, [r4, #0x20] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_080734FA: - pop {r4, pc} - .align 2, 0 -_080734FC: .4byte 0xFFFFF000 -_08073500: .4byte gPlayerState - - thumb_func_start sub_08073504 -sub_08073504: @ 0x08073504 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - movs r1, #0x80 - lsls r1, r1, #7 - cmp r0, #0 - bge _08073516 - movs r1, #0x80 - lsls r1, r1, #4 -_08073516: - adds r0, r4, #0 - bl GravityUpdate - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08073576 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08073576 - ldrb r0, [r4, #0xd] - adds r0, #1 - movs r2, #0 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - str r0, [r1] - adds r0, r4, #0 - adds r0, #0x87 - strb r2, [r0] - subs r0, #1 - strb r2, [r0] - ldr r0, _08073580 @ =gPlayerState - movs r1, #0xe1 - lsls r1, r1, #3 - strh r1, [r0, #8] - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _08073576 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0x10 - strh r0, [r4, #0x24] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0xa9 - lsls r0, r0, #1 - bl SoundReq -_08073576: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 -_08073580: .4byte gPlayerState - - thumb_func_start sub_08073584 -sub_08073584: @ 0x08073584 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r2, _080735DC @ =gPlayerState - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - bne _080735C0 - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bgt _080735C0 - adds r0, r6, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _080735C0 - ldr r0, [r6, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _080735E0 -_080735C0: - ldrb r0, [r6, #2] - movs r1, #0x40 - orrs r1, r0 - strb r1, [r6, #2] - bl sub_0807921C - adds r0, r4, #0 - bl sub_08073904 - movs r0, #0xe6 - lsls r0, r0, #3 - strh r0, [r6, #8] - b _08073794 - .align 2, 0 -_080735DC: .4byte gPlayerState -_080735E0: - ldr r0, _0807360C @ =gUnk_0200AF00 - adds r0, #0x2f - movs r1, #1 - strb r1, [r0] - movs r0, #0 - bl sub_0807A2F8 - cmp r0, #0 - beq _08073610 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x14] - movs r0, #6 - ands r0, r1 - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _08073794 - .align 2, 0 -_0807360C: .4byte gUnk_0200AF00 -_08073610: - ldr r0, _08073620 @ =gArea - ldrb r0, [r0, #1] - cmp r0, #0x10 - bne _08073624 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _08073626 - .align 2, 0 -_08073620: .4byte gArea -_08073624: - strh r5, [r4, #0x24] -_08073626: - ldr r3, _08073650 @ =gPlayerState - ldrb r1, [r3, #0xd] - movs r0, #0x80 - ands r0, r1 - adds r2, r4, #0 - adds r2, #0x80 - cmp r0, #0 - bne _0807365A - ldrb r0, [r4, #0x15] - cmp r0, r1 - beq _0807365A - ldrb r1, [r3, #0xd] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xf - bgt _08073654 - ldr r0, [r2] - subs r0, #0x20 - b _08073658 - .align 2, 0 -_08073650: .4byte gPlayerState -_08073654: - ldr r0, [r2] - adds r0, #0x20 -_08073658: - str r0, [r2] -_0807365A: - ldr r0, [r2] - lsrs r0, r0, #8 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - bl sub_08079E08 - ldrb r2, [r4, #0x14] - lsls r3, r2, #2 - ldrb r1, [r4, #0x15] - cmp r2, #0 - bne _0807367C - adds r3, #8 - movs r0, #0x1f - ands r3, r0 - adds r1, #8 - ands r1, r0 -_0807367C: - subs r0, r3, #7 - cmp r0, r1 - bls _08073686 - subs r3, r2, #2 - b _0807368E -_08073686: - adds r0, r3, #7 - cmp r0, r1 - bhs _08073694 - adds r3, r2, #2 -_0807368E: - movs r0, #7 - ands r3, r0 - b _08073696 -_08073694: - adds r3, r2, #0 -_08073696: - movs r0, #0x87 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r4, #0x14] - cmp r3, r1 - beq _080736A8 - movs r0, #0x14 - mov r2, ip - strb r0, [r2] -_080736A8: - strb r3, [r4, #0x14] - movs r5, #0 - ldr r1, _080736E4 @ =gPlayerState - ldrb r2, [r1, #0xd] - lsrs r3, r2, #2 - mov r6, ip - ldrb r0, [r6] - adds r6, r1, #0 - cmp r0, #0 - beq _080736CA - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08073736 - ldrb r0, [r4, #0x14] - cmp r0, r3 - beq _08073736 -_080736CA: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _080736FA - ldrb r2, [r4, #0x14] - cmp r2, r3 - beq _080736FA - movs r0, #4 - eors r0, r3 - cmp r2, r0 - bne _080736E8 - movs r5, #2 - b _080736FA - .align 2, 0 -_080736E4: .4byte gPlayerState -_080736E8: - movs r0, #6 - ands r0, r3 - adds r0, #2 - movs r1, #7 - ands r0, r1 - movs r5, #3 - cmp r2, r0 - bne _080736FA - movs r5, #1 -_080736FA: - ldr r1, _0807371C @ =gUnk_0811BC28 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6, #8] - cmp r0, r1 - bne _0807372C - ldr r0, _08073720 @ =gArea - ldrb r0, [r0, #1] - cmp r0, #0x10 - bne _08073724 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042BA - b _0807372E - .align 2, 0 -_0807371C: .4byte gUnk_0811BC28 -_08073720: .4byte gArea -_08073724: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - b _0807372E -_0807372C: - strh r0, [r6, #8] -_0807372E: - adds r0, r4, #0 - adds r0, #0x86 - strb r5, [r0] - b _08073762 -_08073736: - mov r2, ip - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - ldr r1, _0807375C @ =gUnk_0811BC30 - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6, #8] - cmp r0, r1 - bne _08073760 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - b _08073762 - .align 2, 0 -_0807375C: .4byte gUnk_0811BC30 -_08073760: - strh r0, [r6, #8] -_08073762: - ldr r0, [r4, #0x7c] - subs r1, r0, #1 - str r1, [r4, #0x7c] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08073784 - ldr r2, _08073780 @ =gPlayerState - ldrb r1, [r2, #2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2, #2] - bl sub_0807921C - b _08073794 - .align 2, 0 -_08073780: .4byte gPlayerState -_08073784: - adds r0, r1, #0 - movs r1, #0x14 - bl __divsi3 - ldr r2, _08073798 @ =0x0000FFF8 - adds r1, r2, #0 - subs r1, r1, r0 - strh r1, [r4, #0x36] -_08073794: - pop {r4, r5, r6, pc} - .align 2, 0 -_08073798: .4byte 0x0000FFF8 - - thumb_func_start sub_0807379C -sub_0807379C: @ 0x0807379C - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x36] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - ble _080737B4 - subs r0, r3, #1 - strh r0, [r2, #0x36] - b _080737BA -_080737B4: - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] -_080737BA: - pop {pc} - - thumb_func_start sub_080737BC -sub_080737BC: @ 0x080737BC - push {r4, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, [r4, #0x34] - movs r1, #0x98 - lsls r1, r1, #7 - adds r0, r0, r1 - str r0, [r4, #0x34] - ldrb r1, [r4, #0x15] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080737E2 - ldrh r1, [r4, #0x2e] - b _080737E4 -_080737E2: - ldrh r1, [r4, #0x32] -_080737E4: - movs r0, #0xf - ands r0, r1 - cmp r0, #8 - bne _08073804 - adds r0, r4, #0 - bl sub_080002D0 - cmp r0, #0 - bne _08073804 - ldr r2, _08073808 @ =gPlayerState - ldrb r1, [r2, #2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2, #2] - bl sub_0807921C -_08073804: - pop {r4, pc} - .align 2, 0 -_08073808: .4byte gPlayerState - - thumb_func_start sub_0807380C -sub_0807380C: @ 0x0807380C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08073854 @ =gScreenTransition - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0807382A - ldrb r0, [r4, #0x14] - adds r0, #2 - movs r1, #6 - ands r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] -_0807382A: - ldr r2, _08073858 @ =gPlayerState - ldr r1, _0807385C @ =gUnk_0811BC38 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #8] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bge _08073860 - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r4, #0 - bl GravityUpdate - b _0807387A - .align 2, 0 -_08073854: .4byte gScreenTransition -_08073858: .4byte gPlayerState -_0807385C: .4byte gUnk_0811BC38 -_08073860: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807387A - movs r0, #7 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] -_0807387A: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08073884 -sub_08073884: @ 0x08073884 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080738DC @ =gScreenTransition - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080738A2 - ldrb r0, [r4, #0x14] - adds r0, #2 - movs r1, #6 - ands r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] -_080738A2: - ldr r2, _080738E0 @ =gPlayerState - ldr r1, _080738E4 @ =gUnk_0811BC40 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #8] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080738F0 - adds r1, r2, #0 - adds r1, #0x39 - ldrb r0, [r1] - cmp r0, #0xff - beq _080738EC - adds r1, r0, #0 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080738E8 @ =gUnk_0813AD88 - adds r0, r0, r1 - bl DoExitTransition - b _080738F0 - .align 2, 0 -_080738DC: .4byte gScreenTransition -_080738E0: .4byte gPlayerState -_080738E4: .4byte gUnk_0811BC40 -_080738E8: .4byte gUnk_0813AD88 -_080738EC: - bl InitParachuteRoom -_080738F0: - ldr r1, _08073900 @ =0xFFFFE800 - adds r0, r4, #0 - bl GravityUpdate - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 -_08073900: .4byte 0xFFFFE800 - - thumb_func_start sub_08073904 -sub_08073904: @ 0x08073904 - push {lr} - ldr r3, _0807391C @ =gUnk_0811BC48 - ldr r1, _08073920 @ =gPlayerState - ldrb r2, [r1, #2] - movs r1, #7 - ands r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807391C: .4byte gUnk_0811BC48 -_08073920: .4byte gPlayerState - - thumb_func_start sub_08073924 -sub_08073924: @ 0x08073924 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08073964 @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - bne _08073962 - movs r1, #0x36 - ldrsh r0, [r4, r1] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08073962 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08073962 - movs r0, #0x40 - strb r0, [r2, #2] - movs r0, #0xff - strb r0, [r2, #0xd] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r4, #0x15] - bl sub_08077B20 - adds r0, r4, #0 - bl sub_08073968 -_08073962: - pop {r4, pc} - .align 2, 0 -_08073964: .4byte gPlayerState - - thumb_func_start sub_08073968 -sub_08073968: @ 0x08073968 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08073998 @ =gPlayerState - ldrb r1, [r4, #2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _0807397C - ldrb r0, [r4, #0xd] - strb r0, [r5, #0x15] -_0807397C: - bl sub_08078F24 - ldrb r1, [r4, #5] - ldrb r0, [r4, #0xb] - orrs r0, r1 - cmp r0, #0 - bne _080739D4 - ldr r1, [r4, #0x30] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080739A0 - ldr r0, _0807399C @ =0x0000041C - b _080739BA - .align 2, 0 -_08073998: .4byte gPlayerState -_0807399C: .4byte 0x0000041C -_080739A0: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080739BC - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _080739B8 - movs r0, #0x81 - lsls r0, r0, #4 - b _080739BA -_080739B8: - ldr r0, _080739E4 @ =0x0000080C -_080739BA: - strh r0, [r4, #8] -_080739BC: - ldr r0, _080739E8 @ =gPlayerState - ldrb r1, [r0, #2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _080739CE - adds r0, r5, #0 - bl sub_0806F948 -_080739CE: - movs r0, #0x7c - bl SoundReq -_080739D4: - ldr r2, _080739E8 @ =gPlayerState - ldrb r1, [r2, #2] - movs r0, #0xf8 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #2] - pop {r4, r5, pc} - .align 2, 0 -_080739E4: .4byte 0x0000080C -_080739E8: .4byte gPlayerState - - thumb_func_start sub_080739EC -sub_080739EC: @ 0x080739EC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08073A14 @ =gPlayerState - ldrb r2, [r1, #2] - movs r0, #0xc0 - ands r0, r2 - adds r5, r1, #0 - cmp r0, #0 - beq _08073A18 - ldrb r0, [r4, #0x15] - strb r0, [r5, #0xd] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08073A0E - movs r0, #0 - strh r0, [r4, #0x2a] -_08073A0E: - movs r2, #0x80 - lsls r2, r2, #6 - b _08073A48 - .align 2, 0 -_08073A14: .4byte gPlayerState -_08073A18: - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806F854 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08073A38 - ldrb r1, [r5, #2] - movs r0, #8 - orrs r0, r1 - strb r0, [r5, #2] - movs r2, #0x80 - lsls r2, r2, #7 - b _08073A48 -_08073A38: - movs r2, #0x80 - lsls r2, r2, #6 - ldrb r1, [r5, #2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08073A48 - lsrs r2, r2, #1 -_08073A48: - ldrb r1, [r5, #2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _08073A7E - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08073A7E - ldr r0, [r4, #0x20] - cmp r0, #0 - bne _08073A7E - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #0xa - strb r0, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0x15] - adds r0, r1, #2 - strb r0, [r5, #2] - movs r0, #0xba - lsls r0, r0, #1 - strh r0, [r5, #8] - bl sub_08078F60 - b _08073A90 -_08073A7E: - adds r0, r4, #0 - adds r1, r2, #0 - bl GravityUpdate - cmp r0, #0 - bne _08073A90 - adds r0, r4, #0 - bl sub_08073AD4 -_08073A90: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08073A94 -sub_08073A94: @ 0x08073A94 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08073AAE - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - beq _08073AB4 -_08073AAE: - adds r0, r4, #0 - bl sub_08073B60 -_08073AB4: - ldr r0, _08073ACC @ =gPlayerEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - beq _08073AC8 - ldr r1, _08073AD0 @ =gPlayerState - movs r0, #0 - strb r0, [r1, #2] - adds r0, r4, #0 - bl sub_08073924 -_08073AC8: - pop {r4, pc} - .align 2, 0 -_08073ACC: .4byte gPlayerEntity -_08073AD0: .4byte gPlayerState - - thumb_func_start sub_08073AD4 -sub_08073AD4: @ 0x08073AD4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x38 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08073AFA - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] -_08073AFA: - ldr r6, _08073B48 @ =gPlayerState - ldrb r5, [r6, #2] - movs r0, #0xc1 - rsbs r0, r0, #0 - ands r5, r0 - ldrb r0, [r4, #0xc] - cmp r0, #0xa - beq _08073B32 - bl sub_0807A2B8 - movs r0, #0 - strb r0, [r6, #2] - bl UpdateFloorType - ldrb r0, [r6, #0xc] - cmp r0, #0 - bne _08073B5C - adds r0, r6, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _08073B5C - ldrb r0, [r6, #4] - cmp r0, #0 - beq _08073B32 - adds r0, r4, #0 - bl sub_08073B60 -_08073B32: - ldr r2, _08073B48 @ =gPlayerState - adds r0, r5, #1 - strb r0, [r2, #2] - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08073B50 - ldr r0, _08073B4C @ =0x00000424 - b _08073B54 - .align 2, 0 -_08073B48: .4byte gPlayerState -_08073B4C: .4byte 0x00000424 -_08073B50: - movs r0, #0x82 - lsls r0, r0, #4 -_08073B54: - strh r0, [r2, #8] - movs r0, #0x7d - bl SoundReq -_08073B5C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08073B60 -sub_08073B60: @ 0x08073B60 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08073B88 @ =gPlayerState - movs r0, #0 - strb r0, [r4, #0x1b] - strb r0, [r4, #4] - strb r0, [r4, #2] - bl sub_08079938 - adds r0, r5, #0 - bl sub_080085B0 - ldr r0, [r4, #0x30] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08073B86 - bl sub_080791BC -_08073B86: - pop {r4, r5, pc} - .align 2, 0 -_08073B88: .4byte gPlayerState - - thumb_func_start sub_08073B8C -sub_08073B8C: @ 0x08073B8C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08073BCC @ =gPlayerState - ldrb r0, [r5, #4] - cmp r0, #0 - beq _08073C04 - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806F854 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08073BB8 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_08073BB8: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08073BD0 - subs r0, #1 - strb r0, [r4, #0xe] - b _08073C28 - .align 2, 0 -_08073BCC: .4byte gPlayerState -_08073BD0: - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r4, #0 - bl GravityUpdate - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - blt _08073C28 - ldrb r0, [r5, #0x14] - cmp r0, #0 - bne _08073C0C - bl sub_0807A2B8 - cmp r0, #0 - bne _08073BFC - bl sub_08079D48 - cmp r0, #0 - bne _08073C0C -_08073BFC: - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08073C04: - adds r0, r4, #0 - bl sub_08073B60 - b _08073C28 -_08073C0C: - ldr r1, _08073C2C @ =gPlayerState - ldrb r0, [r1, #2] - adds r0, #1 - strb r0, [r1, #2] - movs r0, #0xf - strb r0, [r4, #0xe] - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 - movs r0, #0xa6 - lsls r0, r0, #1 - bl SoundReq -_08073C28: - pop {r4, r5, pc} - .align 2, 0 -_08073C2C: .4byte gPlayerState - - thumb_func_start sub_08073C30 -sub_08073C30: @ 0x08073C30 - push {lr} - adds r2, r0, #0 - ldr r0, _08073C54 @ =gPlayerState - ldrb r0, [r0, #4] - cmp r0, #0 - beq _08073C4A - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08073C58 -_08073C4A: - adds r0, r2, #0 - bl sub_08073B60 - b _08073C66 - .align 2, 0 -_08073C54: .4byte gPlayerState -_08073C58: - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - bl UpdateAnimationSingleFrame -_08073C66: - pop {pc} - - thumb_func_start PlayerMinish -PlayerMinish: @ 0x08073C68 - push {lr} - ldr r2, _08073C7C @ =gUnk_0811BC60 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08073C7C: .4byte gUnk_0811BC60 - - thumb_func_start sub_08073C80 -sub_08073C80: @ 0x08073C80 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r2, _08073D00 @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #0x80 - orrs r0, r1 - str r0, [r2, #0x30] - movs r5, #0 - ldr r0, _08073D04 @ =0x00000C18 - strh r0, [r2, #8] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r7, #4 - rsbs r7, r7, #0 - adds r0, r7, #0 - ands r0, r1 - strb r0, [r4, #0x19] - ldr r0, _08073D08 @ =gUnk_0811BC80 - str r0, [r4, #0x48] - strb r5, [r4, #0xe] - movs r6, #2 - strb r6, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x42 - strb r5, [r0] - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #1 - movs r2, #2 - bl LoadSwapGFX - ldr r0, _08073D0C @ =gRoomControls - str r4, [r0, #0x30] - bl sub_080809D4 - ldr r1, _08073D10 @ =gScreenTransition - ldrb r0, [r1, #0xf] - cmp r0, #9 - bne _08073D14 - strb r5, [r1, #0xf] - ldrb r1, [r4, #0x18] - adds r0, r7, #0 - ands r0, r1 - strb r0, [r4, #0x18] - strb r6, [r4, #0xd] - b _08073D1E - .align 2, 0 -_08073D00: .4byte gPlayerState -_08073D04: .4byte 0x00000C18 -_08073D08: .4byte gUnk_0811BC80 -_08073D0C: .4byte gRoomControls -_08073D10: .4byte gScreenTransition -_08073D14: - movs r0, #4 - movs r1, #0 - movs r2, #0 - bl CreateObject -_08073D1E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08073D20 -sub_08073D20: @ 0x08073D20 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r5, _08073D70 @ =gPlayerState - movs r0, #0xa8 - adds r0, r0, r5 - mov r8, r0 - movs r0, #0 - mov r1, r8 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x39 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #1 - strb r0, [r1] - bl sub_08078F60 - adds r7, r5, #0 - adds r7, #0x26 - ldrb r0, [r7] - cmp r0, #0 - bne _08073D60 - movs r0, #0xc0 - strh r0, [r4, #0x24] -_08073D60: - bl sub_08079B24 - cmp r0, #0 - bne _08073D74 - adds r0, r4, #0 - bl sub_08079708 - b _08073EFC - .align 2, 0 -_08073D70: .4byte gPlayerState -_08073D74: - bl sub_08078EFC - adds r6, r0, #0 - cmp r6, #0 - beq _08073D80 - b _08073EFC -_08073D80: - adds r0, r4, #0 - bl sub_08073904 - bl UpdateFloorType - ldrb r0, [r5, #2] - cmp r0, #0 - beq _08073D96 - movs r0, #0x14 - mov r1, r8 - strb r0, [r1] -_08073D96: - ldrb r0, [r5, #0x12] - subs r0, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08073DB0 - strb r6, [r7] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] -_08073DB0: - bl sub_08078EFC - cmp r0, #0 - beq _08073DBA - b _08073EFC -_08073DBA: - ldrb r0, [r4, #0xd] - cmp r0, #2 - bne _08073DC2 - b _08073EFC -_08073DC2: - ldr r0, [r5, #0x30] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08073E10 - adds r0, r4, #0 - bl sub_080085B0 - bl sub_080792D8 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08073DE6 - bl sub_08079550 - cmp r0, #0 - beq _08073DE6 - b _08073EFC -_08073DE6: - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - beq _08073DFA - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r4, #0x15] - b _08073EFC -_08073DFA: - bl sub_080782C0 - cmp r0, #0 - beq _08073E08 - bl sub_08078EFC - b _08073EFC -_08073E08: - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08073E10: - bl sub_08019840 - cmp r0, #0 - bne _08073EFC - adds r0, r4, #0 - bl sub_08077698 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl GravityUpdate - adds r1, r0, #0 - cmp r1, #0 - bne _08073E32 - ldr r0, _08073E74 @ =gPlayerState - strb r1, [r0, #2] -_08073E32: - ldr r2, _08073E74 @ =gPlayerState - ldrb r1, [r2, #7] - movs r3, #0x80 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08073EFC - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08073EFC - adds r0, r4, #0 - adds r0, #0x3d - movs r1, #0 - ldrsb r1, [r0, r1] - adds r6, r0, #0 - cmp r1, #8 - bgt _08073E90 - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08073E78 - adds r1, r2, #0 - adds r1, #0xa8 - movs r0, #7 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807ACCC - bl sub_08079E08 - b _08073E90 - .align 2, 0 -_08073E74: .4byte gPlayerState -_08073E78: - ldrb r1, [r2, #0xd] - strb r1, [r4, #0x15] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08073E90 - adds r1, r2, #0 - adds r1, #0xa8 - movs r0, #1 - strb r0, [r1] - bl sub_08079E08 -_08073E90: - ldr r5, _08073EF0 @ =gPlayerState - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _08073E9E - adds r0, r4, #0 - bl sub_0806F948 -_08073E9E: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - bl sub_0807B068 - movs r0, #0x10 - bl sub_080793E4 - cmp r0, #0 - beq _08073EDC - movs r0, #0x14 - strb r0, [r6] - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #4 - strb r0, [r1] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - movs r0, #0x7a - bl SoundReq -_08073EDC: - ldr r0, [r5, #0x30] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08073EF4 - adds r0, r4, #0 - bl sub_08008AC6 - b _08073EFC - .align 2, 0 -_08073EF0: .4byte gPlayerState -_08073EF4: - adds r1, r5, #0 - adds r1, #0xa8 - movs r0, #0xd - strb r0, [r1] -_08073EFC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08073F04 -sub_08073F04: @ 0x08073F04 - push {lr} - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x10 - orrs r1, r2 - strb r1, [r3] - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0, #0x18] - ldrb r1, [r0, #0xd] - adds r1, #1 - strb r1, [r0, #0xd] - movs r1, #0xa0 - lsls r1, r1, #0xa - str r1, [r0, #0x20] - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0, #0x24] - ldr r2, _08073F48 @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #0x81 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - bl ResetPlayer - pop {pc} - .align 2, 0 -_08073F48: .4byte gPlayerState - - thumb_func_start sub_08073F4C -sub_08073F4C: @ 0x08073F4C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08073F84 @ =gArea - ldrh r3, [r0, #0x12] - ldrh r5, [r0, #0x14] - movs r0, #0x2e - ldrsh r2, [r4, r0] - cmp r2, r3 - bne _08073F66 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, r5 - beq _08073F88 -_08073F66: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r2, #0 - adds r2, r3, #0 - adds r3, r5, #0 - bl sub_080045D4 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0806F69C - b _08073FC6 - .align 2, 0 -_08073F84: .4byte gArea -_08073F88: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x80 - movs r1, #0x90 - lsls r1, r1, #3 - str r1, [r0] - adds r0, #4 - str r1, [r0] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_08074018 - ldr r1, _08073FC8 @ =gPlayerState - ldr r0, _08073FCC @ =0x0000073C - strh r0, [r1, #8] -_08073FC6: - pop {r4, r5, pc} - .align 2, 0 -_08073FC8: .4byte gPlayerState -_08073FCC: .4byte 0x0000073C - - thumb_func_start sub_08073FD0 -sub_08073FD0: @ 0x08073FD0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08073FF8 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08074016 - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - cmp r0, #0 - bne _08073FF8 - movs r0, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x7c - bl SoundReq -_08073FF8: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl GravityUpdate - ldr r0, [r4, #0x20] - cmp r0, #0 - bne _08074016 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xb8 - lsls r0, r0, #1 - bl SoundReq -_08074016: - pop {r4, pc} - - thumb_func_start sub_08074018 -sub_08074018: @ 0x08074018 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x80 - ldr r0, [r1] - movs r3, #0x80 - lsls r3, r3, #1 - cmp r0, r3 - bls _0807402E - subs r0, #0x20 - str r0, [r1] -_0807402E: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r2, r0, #0 - cmp r1, r3 - bls _08074042 - adds r0, r1, #0 - subs r0, #0x20 - str r0, [r2] - b _08074048 -_08074042: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08074048: - adds r0, r4, #0 - adds r0, #0x80 - ldr r1, [r0] - ldr r2, [r2] - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - - thumb_func_start sub_08074060 -sub_08074060: @ 0x08074060 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl GravityUpdate - cmp r0, #0 - bne _080740D0 - ldr r0, _080740C4 @ =gPlayerHitbox - str r0, [r4, #0x48] - movs r3, #0x10 - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #4 - strb r0, [r4, #0x14] - movs r2, #0 - adds r0, #0xfc - strh r0, [r4, #0x24] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - strb r2, [r4, #0xf] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldr r1, _080740C8 @ =gPlayerState - ldr r0, _080740CC @ =0x0000080C - strh r0, [r1, #8] - adds r0, r4, #0 - bl sub_0805EC60 - b _080740D6 - .align 2, 0 -_080740C4: .4byte gPlayerHitbox -_080740C8: .4byte gPlayerState -_080740CC: .4byte 0x0000080C -_080740D0: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_080740D6: - pop {r4, pc} - - thumb_func_start sub_080740D8 -sub_080740D8: @ 0x080740D8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080740EA - ldrb r0, [r4, #0x15] - b _080740F0 -_080740EA: - ldrb r1, [r4, #0x15] - movs r0, #0x10 - eors r0, r1 -_080740F0: - cmp r0, #8 - beq _08074128 - cmp r0, #8 - bhi _080740FE - cmp r0, #0 - beq _08074168 - b _0807418C -_080740FE: - cmp r0, #0x10 - beq _08074148 - cmp r0, #0x18 - bne _0807418C - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, [r4, #0x48] - ldrb r0, [r2, #2] - subs r1, r1, r0 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _08074124 @ =gRoomControls - ldrh r0, [r3, #6] - subs r6, r1, r0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - b _08074182 - .align 2, 0 -_08074124: .4byte gRoomControls -_08074128: - ldr r2, [r4, #0x48] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldrb r1, [r2, #2] - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldr r3, _08074144 @ =gRoomControls - ldrh r1, [r3, #6] - subs r6, r0, r1 - movs r1, #0x32 - ldrsh r0, [r4, r1] - b _08074182 - .align 2, 0 -_08074144: .4byte gRoomControls -_08074148: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, [r4, #0x48] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _08074164 @ =gRoomControls - ldrh r0, [r3, #6] - subs r6, r1, r0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrb r1, [r2, #5] - adds r0, r0, r1 - b _08074182 - .align 2, 0 -_08074164: .4byte gRoomControls -_08074168: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, [r4, #0x48] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _080741A4 @ =gRoomControls - ldrh r0, [r3, #6] - subs r6, r1, r0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrb r1, [r2, #5] - subs r0, r0, r1 -_08074182: - movs r1, #1 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldrh r1, [r3, #8] - subs r5, r0, r1 -_0807418C: - ldr r2, _080741A8 @ =gUnk_080082DC - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080086B4 - cmp r0, #0 - beq _080741AC - adds r0, r4, #0 - bl sub_0806F69C - b _080741B0 - .align 2, 0 -_080741A4: .4byte gRoomControls -_080741A8: .4byte gUnk_080082DC -_080741AC: - movs r0, #1 - strb r0, [r4, #0xf] -_080741B0: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl GravityUpdate - cmp r0, #0 - bne _080741C2 - bl sub_0807921C -_080741C2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080741C4 -sub_080741C4: @ 0x080741C4 - push {lr} - ldr r0, _080741F0 @ =gPlayerState - ldrb r1, [r0, #2] - adds r2, r0, #0 - cmp r1, #0 - beq _080741D8 - movs r0, #7 - ands r0, r1 - cmp r0, #3 - bne _080741E0 -_080741D8: - ldr r0, _080741F4 @ =gPlayerEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - beq _080741F8 -_080741E0: - movs r1, #0 - strb r1, [r2, #0x11] - adds r0, r2, #0 - adds r0, #0x37 - strb r1, [r0] - movs r0, #1 - b _080741FA - .align 2, 0 -_080741F0: .4byte gPlayerState -_080741F4: .4byte gPlayerEntity -_080741F8: - movs r0, #0 -_080741FA: - pop {pc} - - thumb_func_start nullsub_112 -nullsub_112: @ 0x080741FC - bx lr - .align 2, 0 - - thumb_func_start sub_08074200 -sub_08074200: @ 0x08074200 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074226 - adds r0, r4, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08074226 - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _08074226 - bl ResetPlayer - ldr r1, _08074228 @ =gPlayerState - movs r0, #3 - strb r0, [r1, #0xc] -_08074226: - pop {r4, pc} - .align 2, 0 -_08074228: .4byte gPlayerState - - thumb_func_start sub_0807422C -sub_0807422C: @ 0x0807422C - push {lr} - movs r1, #8 - movs r2, #0x18 - bl sub_08074244 - pop {pc} - - thumb_func_start sub_08074238 -sub_08074238: @ 0x08074238 - push {lr} - movs r1, #0 - movs r2, #0x10 - bl sub_08074244 - pop {pc} - - thumb_func_start sub_08074244 -sub_08074244: @ 0x08074244 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - ldr r5, _0807428C @ =gPlayerState - ldrb r0, [r5, #0x12] - subs r0, #0x28 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08074278 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] -_08074278: - bl sub_080741C4 - cmp r0, #0 - bne _080742A6 - ldrb r0, [r5, #0x1e] - cmp r0, #0 - bne _08074290 - ldrb r0, [r5, #0xd] - b _08074294 - .align 2, 0 -_0807428C: .4byte gPlayerState -_08074290: - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 -_08074294: - cmp r6, r0 - bne _0807429C - cmp r7, r0 - beq _080742A6 -_0807429C: - ldr r1, _080742A8 @ =gPlayerState - adds r1, #0x80 - ldrh r0, [r1] - subs r0, #0x50 - strh r0, [r1] -_080742A6: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080742A8: .4byte gPlayerState - - thumb_func_start sub_080742AC -sub_080742AC: @ 0x080742AC - push {lr} - adds r2, r0, #0 - ldr r0, _080742E0 @ =gPlayerState - adds r1, r0, #0 - adds r1, #0x26 - ldrb r0, [r1] - cmp r0, #0 - beq _080742C0 - movs r0, #0 - strb r0, [r1] -_080742C0: - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - pop {pc} - .align 2, 0 -_080742E0: .4byte gPlayerState - - thumb_func_start sub_080742E4 -sub_080742E4: @ 0x080742E4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _0807430E - ldr r2, _08074310 @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807430E - ldrb r0, [r2, #0x11] - cmp r0, #0xf - bne _0807430E - adds r0, r4, #0 - movs r1, #0xe - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent -_0807430E: - pop {r4, pc} - .align 2, 0 -_08074310: .4byte gPlayerState - - thumb_func_start sub_08074314 -sub_08074314: @ 0x08074314 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x32] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xd - bgt _08074330 - movs r0, #0xcc - lsls r0, r0, #7 - strh r0, [r2, #0x2a] - adds r0, r2, #0 - bl sub_080743A4 - b _08074336 -_08074330: - adds r0, r2, #0 - bl sub_0807A298 -_08074336: - pop {pc} - - thumb_func_start sub_08074338 -sub_08074338: @ 0x08074338 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x32] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - ble _08074354 - movs r0, #0xcc - lsls r0, r0, #7 - strh r0, [r2, #0x2a] - adds r0, r2, #0 - bl sub_080743A4 - b _0807435A -_08074354: - adds r0, r2, #0 - bl sub_0807A298 -_0807435A: - pop {pc} - - thumb_func_start sub_0807435C -sub_0807435C: @ 0x0807435C - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xb - bgt _08074376 - movs r0, #0x66 - strh r0, [r2, #0x2a] - adds r0, r2, #0 - bl sub_080743A4 - b _0807437C -_08074376: - adds r0, r2, #0 - bl sub_0807A298 -_0807437C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08074380 -sub_08074380: @ 0x08074380 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #4 - ble _0807439A - movs r0, #0x66 - strh r0, [r2, #0x2a] - adds r0, r2, #0 - bl sub_080743A4 - b _080743A0 -_0807439A: - adds r0, r2, #0 - bl sub_0807A298 -_080743A0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080743A4 -sub_080743A4: @ 0x080743A4 - push {lr} - ldr r3, _080743D0 @ =gPlayerState - ldr r1, [r3, #0x30] - movs r2, #0x40 - orrs r1, r2 - str r1, [r3, #0x30] - movs r3, #0 - movs r1, #0x80 - strb r1, [r0, #0xb] - ldrb r2, [r0, #0x18] - subs r1, #0x84 - ands r1, r2 - strb r1, [r0, #0x18] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - adds r0, #0x42 - strb r3, [r0] - bl ResetPlayer - pop {pc} - .align 2, 0 -_080743D0: .4byte gPlayerState - - thumb_func_start sub_080743D4 -sub_080743D4: @ 0x080743D4 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074416 - adds r0, r5, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08074416 - adds r0, r5, #0 - bl sub_0807AABC - adds r0, r5, #0 - bl sub_08074808 - movs r0, #0x24 - ldrsh r4, [r5, r0] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - movs r0, #0x10 - strb r0, [r5, #0x15] - ldr r2, _08074418 @ =gPlayerState - ldrb r1, [r2, #0xa] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0xa] - adds r0, r5, #0 - bl sub_0806F69C - strh r4, [r5, #0x24] -_08074416: - pop {r4, r5, pc} - .align 2, 0 -_08074418: .4byte gPlayerState - - thumb_func_start sub_0807441C -sub_0807441C: @ 0x0807441C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _08074440 @ =gPlayerState - adds r0, #0xa0 - ldrb r0, [r0] - cmp r0, #4 - bne _08074502 - ldr r6, _08074444 @ =gSave - adds r4, r6, #0 - adds r4, #0xb4 - ldrb r0, [r4] - bl ItemIsSword - cmp r0, #0 - beq _08074448 - ldrb r0, [r4] - b _0807444E - .align 2, 0 -_08074440: .4byte gPlayerState -_08074444: .4byte gSave -_08074448: - adds r0, r6, #0 - adds r0, #0xb5 - ldrb r0, [r0] -_0807444E: - subs r0, #1 - cmp r0, #5 - bhi _0807448A - lsls r0, r0, #2 - ldr r1, _08074460 @ =_08074464 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08074460: .4byte _08074464 -_08074464: @ jump table - .4byte _0807447C @ case 0 - .4byte _0807447C @ case 1 - .4byte _08074480 @ case 2 - .4byte _08074484 @ case 3 - .4byte _0807448A @ case 4 - .4byte _08074488 @ case 5 -_0807447C: - movs r5, #0 - b _0807448A -_08074480: - movs r5, #1 - b _0807448A -_08074484: - movs r5, #2 - b _0807448A -_08074488: - movs r5, #3 -_0807448A: - movs r4, #0 - cmp r4, r5 - bhs _080744A6 - ldr r1, _08074494 @ =gUnk_03004040 - b _080744A0 - .align 2, 0 -_08074494: .4byte gUnk_03004040 -_08074498: - adds r1, #4 - adds r4, #1 - cmp r4, r5 - bhs _080744A6 -_080744A0: - ldr r0, [r1] - cmp r0, #0 - bne _08074498 -_080744A6: - cmp r5, r4 - bls _080744D4 - adds r0, r7, #0 - movs r1, #0x10 - adds r2, r4, #0 - movs r3, #0 - bl CreateObjectWithParent - adds r3, r0, #0 - ldr r1, _080744D0 @ =gUnk_03004040 - lsls r0, r4, #2 - adds r0, r0, r1 - str r3, [r0] - cmp r3, #0 - beq _08074502 - adds r0, r7, #0 - adds r1, r3, #0 - bl CopyPosition - b _08074502 - .align 2, 0 -_080744D0: .4byte gUnk_03004040 -_080744D4: - ldr r2, _08074504 @ =gPlayerState - ldrb r1, [r2, #0x1b] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1b] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r2, #0x30] - ldr r0, [r7, #0x2c] - ldr r2, _08074508 @ =0xFFF00000 - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r7, #0x2c] - ldr r0, [r7, #0x30] - ands r0, r2 - orrs r0, r1 - str r0, [r7, #0x30] - bl sub_08077AEC -_08074502: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08074504: .4byte gPlayerState -_08074508: .4byte 0xFFF00000 - - thumb_func_start sub_0807450C -sub_0807450C: @ 0x0807450C - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _0807457A - ldr r7, _0807457C @ =gPlayerState - ldrb r0, [r7, #0x14] - cmp r0, #0 - bne _0807457A - adds r4, r6, #0 - adds r4, #0x3d - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _08074568 - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - movs r0, #0x7a - bl SoundReq - movs r0, #0x18 - strb r0, [r4] - adds r1, r6, #0 - adds r1, #0x42 - movs r0, #4 - strb r0, [r1] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r5, _08074580 @ =0x0000FFF0 - adds r0, r2, #0 - ands r0, r5 - movs r4, #8 - orrs r0, r4 - movs r1, #0x32 - ldrsh r3, [r6, r1] - adds r1, r3, #0 - ands r1, r5 - orrs r1, r4 - bl sub_080045D4 - adds r1, r6, #0 - adds r1, #0x3e - strb r0, [r1] -_08074568: - ldr r0, [r7, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807457A - adds r0, r6, #0 - movs r1, #7 - bl sub_08008790 -_0807457A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807457C: .4byte gPlayerState -_08074580: .4byte 0x0000FFF0 - - thumb_func_start sub_08074584 -sub_08074584: @ 0x08074584 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _080745AC - ldr r0, _080745B0 @ =gPlayerState - adds r0, #0x35 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080745A8 - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - beq _080745AC -_080745A8: - bl sub_08078F60 -_080745AC: - pop {r4, pc} - .align 2, 0 -_080745B0: .4byte gPlayerState - - thumb_func_start sub_080745B4 -sub_080745B4: @ 0x080745B4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074636 - ldr r0, _080745E4 @ =gPlayerState - mov ip, r0 - ldr r3, [r0, #0x30] - movs r0, #0x80 - ands r3, r0 - cmp r3, #0 - beq _080745E8 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xb9 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0807479C - b _08074636 - .align 2, 0 -_080745E4: .4byte gPlayerState -_080745E8: - mov r5, ip - adds r5, #0x26 - ldrb r0, [r5] - cmp r0, #0 - beq _08074618 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - subs r2, #0x13 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - strb r3, [r5] -_08074618: - mov r0, ip - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08074630 - mov r1, ip - ldrb r0, [r1, #0x11] - cmp r0, #1 - bne _08074636 -_08074630: - movs r0, #0x83 - bl SoundReq -_08074636: - pop {r4, r5, pc} - - thumb_func_start sub_08074638 -sub_08074638: @ 0x08074638 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08074674 @ =gPlayerState - adds r5, r0, #0 - adds r5, #0x26 - ldrb r0, [r5] - cmp r0, #0 - beq _08074670 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - movs r3, #0 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - subs r2, #0x13 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - strb r3, [r5] -_08074670: - pop {r4, r5, pc} - .align 2, 0 -_08074674: .4byte gPlayerState - - thumb_func_start sub_08074678 -sub_08074678: @ 0x08074678 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - beq _08074690 - ldr r0, _0807468C @ =gPlayerState - movs r1, #0 - strb r1, [r0, #0x11] - b _080746CE - .align 2, 0 -_0807468C: .4byte gPlayerState -_08074690: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0807476C - adds r0, r4, #0 - bl sub_08079C30 - adds r1, r0, #0 - cmp r1, #0 - bne _080746B0 - ldr r0, _080746AC @ =gPlayerState - strb r1, [r0, #0x11] - b _080746CE - .align 2, 0 -_080746AC: .4byte gPlayerState -_080746B0: - ldr r3, _080746D4 @ =gPlayerState - ldr r1, [r3, #0x30] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _0807476C - ldrb r2, [r3, #0x1e] - cmp r2, #0 - beq _080746D8 - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _080746DC - strb r1, [r3, #0x11] - adds r0, r3, #0 -_080746CE: - adds r0, #0x37 - strb r1, [r0] - b _08074792 - .align 2, 0 -_080746D4: .4byte gPlayerState -_080746D8: - bl sub_08077B20 -_080746DC: - ldr r1, _08074700 @ =gPlayerState - adds r0, r1, #0 - adds r0, #0x37 - ldrb r0, [r0] - cmp r0, #1 - bne _08074704 - adds r0, r4, #0 - movs r1, #0x70 - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFx - b _08074714 - .align 2, 0 -_08074700: .4byte gPlayerState -_08074704: - adds r0, r1, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08074720 -_08074714: - ldr r0, _0807471C @ =0x00000161 - bl SoundReq - b _08074732 - .align 2, 0 -_0807471C: .4byte 0x00000161 -_08074720: - ldr r0, _08074760 @ =gScreenTransition - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08074732 - ldr r0, _08074764 @ =0x00000161 - bl SoundReq -_08074732: - ldr r2, _08074768 @ =gPlayerState - adds r1, r2, #0 - adds r1, #0x80 - ldrh r0, [r1] - subs r0, #0xf0 - strh r0, [r1] - adds r1, #0x28 - movs r0, #0x1b - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x37 - ldrb r0, [r0] - lsls r3, r0, #0x18 - lsrs r0, r3, #0x18 - cmp r0, #0xef - bhi _0807476C - subs r1, #0x69 - lsrs r0, r3, #0x1d - adds r0, #4 - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - b _08074792 - .align 2, 0 -_08074760: .4byte gScreenTransition -_08074764: .4byte 0x00000161 -_08074768: .4byte gPlayerState -_0807476C: - ldr r2, _08074794 @ =gPlayerState - ldr r0, [r2, #0x30] - ldr r1, _08074798 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r2, #0x30] - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFx - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x20 - strb r0, [r1] - subs r0, #0x24 - bl ModHealth - bl RespawnPlayer -_08074792: - pop {r4, pc} - .align 2, 0 -_08074794: .4byte gPlayerState -_08074798: .4byte 0xFFFBFFFF - - thumb_func_start sub_0807479C -sub_0807479C: @ 0x0807479C - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - adds r2, r0, #0 - cmp r2, #0 - bne _08074804 - ldr r1, _080747C0 @ =gPlayerState - ldrb r0, [r1, #0x14] - adds r3, r1, #0 - cmp r0, #0 - bne _080747C4 - adds r1, #0x3f - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - b _080747E6 - .align 2, 0 -_080747C0: .4byte gPlayerState -_080747C4: - adds r0, r3, #0 - adds r0, #0x26 - strb r2, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r2, #0x13 - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] -_080747E6: - adds r0, r3, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _080747FE - adds r0, r4, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08074804 -_080747FE: - adds r0, r4, #0 - bl sub_08074808 -_08074804: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08074808 -sub_08074808: @ 0x08074808 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - bl sub_08077AEC - movs r0, #0x46 - bl GetInventoryValue - adds r3, r0, #0 - cmp r3, #1 - bne _080748B8 - ldr r1, _08074838 @ =gPlayerState - adds r2, r1, #0 - adds r2, #0x26 - ldrb r0, [r2] - cmp r0, #0 - bne _0807486C - ldr r0, [r1, #0x30] - movs r1, #0x80 - lsls r1, r1, #9 - ands r0, r1 - cmp r0, #0 - beq _0807483C - strb r3, [r2] - b _08074840 - .align 2, 0 -_08074838: .4byte gPlayerState -_0807483C: - movs r0, #8 - strb r0, [r2] -_08074840: - movs r1, #0 - movs r0, #0 - strh r0, [r6, #0x24] - ldr r0, _080748AC @ =gPlayerState - adds r2, r0, #0 - adds r2, #0x89 - strb r1, [r2] - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08074862 - adds r0, r6, #0 - movs r1, #0xb - movs r2, #0 - bl CreateFx -_08074862: - ldr r0, _080748B0 @ =0x000001A5 - bl SoundReq - bl ResetPlayer -_0807486C: - ldr r5, _080748AC @ =gPlayerState - adds r4, r5, #0 - adds r4, #0x26 - ldrb r1, [r4] - movs r7, #0xf - adds r0, r7, #0 - ands r0, r1 - cmp r0, #1 - beq _0807488A - adds r0, r6, #0 - bl sub_08079744 - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] -_0807488A: - ldr r0, [r5, #0x30] - ldr r1, _080748B4 @ =0xFFFFF3FF - ands r0, r1 - str r0, [r5, #0x30] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - beq _080748BE - adds r1, r6, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0xe - bhi _080748BE - strh r7, [r1] - b _080748BE - .align 2, 0 -_080748AC: .4byte gPlayerState -_080748B0: .4byte 0x000001A5 -_080748B4: .4byte 0xFFFFF3FF -_080748B8: - ldr r1, _080748C0 @ =gPlayerState - movs r0, #0x14 - strb r0, [r1, #0xc] -_080748BE: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080748C0: .4byte gPlayerState - - thumb_func_start sub_080748C4 -sub_080748C4: @ 0x080748C4 - ldr r1, _080748D0 @ =gPlayerState - adds r1, #0x3f - ldrb r0, [r1] - subs r0, #2 - strb r0, [r1] - bx lr - .align 2, 0 -_080748D0: .4byte gPlayerState - - thumb_func_start sub_080748D4 -sub_080748D4: @ 0x080748D4 - push {lr} - bl sub_080741C4 - pop {pc} - - thumb_func_start sub_080748DC -sub_080748DC: @ 0x080748DC - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074910 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - beq _0807490A - ldrh r0, [r4, #0x32] - adds r0, #0xc - strh r0, [r4, #0x32] - ldr r0, _08074914 @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807490A - ldrh r0, [r4, #0x36] - subs r0, #0xc - strh r0, [r4, #0x36] -_0807490A: - adds r0, r4, #0 - bl sub_0807AABC -_08074910: - pop {r4, pc} - .align 2, 0 -_08074914: .4byte gPlayerState - - thumb_func_start sub_08074918 -sub_08074918: @ 0x08074918 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074934 - adds r0, r4, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08074934 - ldr r1, _08074938 @ =gPlayerState - movs r0, #0x11 - strb r0, [r1, #0xc] -_08074934: - pop {r4, pc} - .align 2, 0 -_08074938: .4byte gPlayerState - - thumb_func_start sub_0807493C -sub_0807493C: @ 0x0807493C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x44 - bl GetInventoryValue - cmp r0, #1 - bne _08074952 - adds r0, r4, #0 - bl sub_0807496C - b _08074966 -_08074952: - ldrh r1, [r4, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0xf - movs r2, #0 - orrs r0, r1 - strh r0, [r4, #0x32] - ldr r0, _08074968 @ =gPlayerState - strb r2, [r0, #0x12] -_08074966: - pop {r4, pc} - .align 2, 0 -_08074968: .4byte gPlayerState - - thumb_func_start sub_0807496C -sub_0807496C: @ 0x0807496C - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - adds r3, r0, #0 - cmp r3, #0 - bne _080749A2 - ldr r0, _080749A4 @ =gPlayerState - strb r3, [r0, #2] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] - strb r3, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - bl ResetPlayer -_080749A2: - pop {r4, pc} - .align 2, 0 -_080749A4: .4byte gPlayerState - - thumb_func_start sub_080749A8 -sub_080749A8: @ 0x080749A8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x44 - bl GetInventoryValue - cmp r0, #1 - bne _080749BE - adds r0, r4, #0 - bl sub_080749D4 - b _080749CE -_080749BE: - ldrh r1, [r4, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0 - strh r0, [r4, #0x32] - ldr r0, _080749D0 @ =gPlayerState - strb r1, [r0, #0x12] -_080749CE: - pop {r4, pc} - .align 2, 0 -_080749D0: .4byte gPlayerState - - thumb_func_start sub_080749D4 -sub_080749D4: @ 0x080749D4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080741C4 - adds r3, r0, #0 - cmp r3, #0 - bne _08074A40 - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] - strb r3, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldr r5, _08074A2C @ =gPlayerState - adds r0, r5, #0 - adds r0, #0x26 - strb r3, [r0] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - ldrh r1, [r4, #0x32] - movs r0, #0xf - ands r0, r1 - cmp r0, #7 - bgt _08074A34 - ldr r0, _08074A30 @ =0x000002D3 - strh r0, [r5, #8] - movs r0, #0x10 - strb r0, [r4, #0x15] - b _08074A3C - .align 2, 0 -_08074A2C: .4byte gPlayerState -_08074A30: .4byte 0x000002D3 -_08074A34: - movs r1, #0 - ldr r0, _08074A44 @ =0x000002D6 - strh r0, [r5, #8] - strb r1, [r4, #0x15] -_08074A3C: - bl ResetPlayer -_08074A40: - pop {r4, r5, pc} - .align 2, 0 -_08074A44: .4byte 0x000002D6 - - thumb_func_start sub_08074A48 -sub_08074A48: @ 0x08074A48 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08074A90 @ =gPlayerState - adds r0, r5, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08074A86 - ldr r0, _08074A94 @ =gPlayerEntity - movs r1, #0 - movs r2, #0x54 - movs r3, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - cmp r1, #0 - beq _08074A86 - movs r0, #1 - strb r0, [r1, #0xe] - adds r0, r1, #0 - bl UpdateSpriteForCollisionLayer - ldrh r1, [r5, #0x22] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r2, [r0] - movs r0, #0x39 - bl sub_08000152 -_08074A86: - adds r0, r4, #0 - bl sub_0807479C - pop {r4, r5, pc} - .align 2, 0 -_08074A90: .4byte gPlayerState -_08074A94: .4byte gPlayerEntity - - thumb_func_start nullsub_504 -nullsub_504: @ 0x08074A98 - bx lr - .align 2, 0 - - thumb_func_start sub_08074A9C -sub_08074A9C: @ 0x08074A9C - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074AF0 - ldr r2, _08074AE0 @ =gPlayerState - adds r0, r2, #0 - adds r0, #0x80 - ldrh r1, [r0] - subs r1, #0x80 - strh r1, [r0] - ldrb r0, [r2, #0x11] - cmp r0, #1 - beq _08074ACA - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08074AF0 -_08074ACA: - ldrb r0, [r2, #0x12] - cmp r0, #0x25 - bne _08074AE4 - adds r0, r4, #0 - movs r1, #0x21 - movs r2, #1 - movs r3, #0 - bl CreateObjectWithParent - b _08074AF0 - .align 2, 0 -_08074AE0: .4byte gPlayerState -_08074AE4: - adds r0, r4, #0 - movs r1, #0x21 - movs r2, #1 - movs r3, #1 - bl CreateObjectWithParent -_08074AF0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08074AF4 -sub_08074AF4: @ 0x08074AF4 - push {lr} - adds r3, r0, #0 - ldr r1, _08074B04 @ =gPlayerState - ldrb r0, [r1, #0x1e] - cmp r0, #0 - bne _08074B08 - ldrb r2, [r1, #0xd] - b _08074B0C - .align 2, 0 -_08074B04: .4byte gPlayerState -_08074B08: - ldrb r0, [r3, #0x14] - lsls r2, r0, #2 -_08074B0C: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_08074244 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08074B18 -sub_08074B18: @ 0x08074B18 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08074B40 @ =gPlayerState - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _08074B48 - bl sub_080741C4 - cmp r0, #0 - bne _08074B48 - ldr r0, [r4, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08074B44 - adds r0, r5, #0 - bl sub_08074200 - b _08074B48 - .align 2, 0 -_08074B40: .4byte gPlayerState -_08074B44: - movs r0, #0x1a - strb r0, [r4, #0xc] -_08074B48: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08074B4C -sub_08074B4C: @ 0x08074B4C - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074B6E - ldr r0, _08074B70 @ =gPlayerState - ldr r1, [r0, #0x30] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _08074B6E - strb r1, [r4, #0x14] - strb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_08074BF8 -_08074B6E: - pop {r4, pc} - .align 2, 0 -_08074B70: .4byte gPlayerState - - thumb_func_start sub_08074B74 -sub_08074B74: @ 0x08074B74 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074B9A - ldr r0, _08074B9C @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08074B9A - movs r0, #4 - strb r0, [r4, #0x14] - movs r0, #0x10 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08074BF8 -_08074B9A: - pop {r4, pc} - .align 2, 0 -_08074B9C: .4byte gPlayerState - - thumb_func_start sub_08074BA0 -sub_08074BA0: @ 0x08074BA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074BC6 - ldr r0, _08074BC8 @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08074BC6 - movs r0, #6 - strb r0, [r4, #0x14] - movs r0, #0x18 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08074BF8 -_08074BC6: - pop {r4, pc} - .align 2, 0 -_08074BC8: .4byte gPlayerState - - thumb_func_start sub_08074BCC -sub_08074BCC: @ 0x08074BCC - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074BF2 - ldr r0, _08074BF4 @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08074BF2 - movs r0, #2 - strb r0, [r4, #0x14] - movs r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08074BF8 -_08074BF2: - pop {r4, pc} - .align 2, 0 -_08074BF4: .4byte gPlayerState - - thumb_func_start sub_08074BF8 -sub_08074BF8: @ 0x08074BF8 - push {r4, lr} - adds r4, r0, #0 - bl ResetPlayer - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r1, _08074C40 @ =gPlayerState - ldr r0, [r1, #0x30] - movs r2, #0x80 - lsls r2, r2, #0x12 - orrs r0, r2 - str r0, [r1, #0x30] - ldrb r2, [r1, #0xa] - movs r0, #0x80 - orrs r2, r0 - strb r2, [r1, #0xa] - ldrb r2, [r1, #0x1a] - orrs r0, r2 - strb r0, [r1, #0x1a] - adds r1, #0x27 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0806F69C - pop {r4, pc} - .align 2, 0 -_08074C40: .4byte gPlayerState - - thumb_func_start sub_08074C44 -sub_08074C44: @ 0x08074C44 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078EFC - cmp r0, #0 - bne _08074C60 - ldr r0, _08074C64 @ =gUnk_0811BC88 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08074C60: - pop {r4, pc} - .align 2, 0 -_08074C64: .4byte gUnk_0811BC88 - - thumb_func_start sub_08074C68 -sub_08074C68: @ 0x08074C68 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x68 - movs r2, #0 - strb r2, [r6] - ldr r5, _08074CA0 @ =gPlayerState - adds r0, r5, #0 - adds r0, #0x38 - ldrb r3, [r0] - cmp r3, #1 - beq _08074CA8 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldr r0, _08074CA4 @ =gPlayerScriptExecutionContext - cmp r1, r0 - bne _08074CF2 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - bl sub_08074CF8 - b _08074CF2 - .align 2, 0 -_08074CA0: .4byte gPlayerState -_08074CA4: .4byte gPlayerScriptExecutionContext -_08074CA8: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r2, [r4, #0x14] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #2 - strb r0, [r4, #0xd] - strb r3, [r6] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r5, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08074CE4 - ldr r0, _08074CE0 @ =0x0000073A - b _08074CE6 - .align 2, 0 -_08074CE0: .4byte 0x0000073A -_08074CE4: - ldr r0, _08074CF4 @ =0x00000736 -_08074CE6: - strh r0, [r5, #8] - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl DoFade -_08074CF2: - pop {r4, r5, r6, pc} - .align 2, 0 -_08074CF4: .4byte 0x00000736 - - thumb_func_start sub_08074CF8 -sub_08074CF8: @ 0x08074CF8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r6, [r5, #0x14] - adds r4, r5, #0 - adds r4, #0x84 - ldr r1, [r4] - bl ExecuteScript - ldr r1, [r4] - adds r0, r5, #0 - bl sub_08074D34 - adds r0, r5, #0 - adds r0, #0x82 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08074D20 - strb r6, [r5, #0x14] -_08074D20: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl GravityUpdate - adds r0, r5, #0 - bl UpdateAnimationSingleFrame - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08074D34 -sub_08074D34: @ 0x08074D34 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r0, [r6, #8] - cmp r0, #0 - bne _08074D46 - b _08074EF8 -_08074D46: - movs r7, #0x80 - lsls r7, r7, #1 - adds r5, r4, #0 - adds r5, #0x82 -_08074D4E: - ldr r1, [r6, #8] - mvns r0, r1 - adds r2, r0, #1 - ands r2, r1 - eors r1, r2 - str r1, [r6, #8] - cmp r2, r7 - bne _08074D60 - b _08074E82 -_08074D60: - cmp r2, r7 - bhi _08074D90 - cmp r2, #8 - beq _08074E2C - cmp r2, #8 - bhi _08074D7C - cmp r2, #2 - beq _08074E08 - cmp r2, #2 - bls _08074D76 - b _08074EF0 -_08074D76: - cmp r2, #1 - beq _08074DEC - b _08074EF0 -_08074D7C: - cmp r2, #0x20 - beq _08074E62 - cmp r2, #0x20 - bhi _08074D8A - cmp r2, #0x10 - beq _08074E54 - b _08074EF0 -_08074D8A: - cmp r2, #0x80 - beq _08074E70 - b _08074EF0 -_08074D90: - movs r0, #0x80 - lsls r0, r0, #7 - cmp r2, r0 - bne _08074D9A - b _08074EAE -_08074D9A: - cmp r2, r0 - bhi _08074DBE - movs r0, #0x80 - lsls r0, r0, #5 - cmp r2, r0 - beq _08074E96 - cmp r2, r0 - bhi _08074DB4 - movs r0, #0x80 - lsls r0, r0, #2 - cmp r2, r0 - beq _08074E90 - b _08074EF0 -_08074DB4: - movs r0, #0x80 - lsls r0, r0, #6 - cmp r2, r0 - beq _08074EA8 - b _08074EF0 -_08074DBE: - movs r0, #0x80 - lsls r0, r0, #0xa - cmp r2, r0 - bne _08074DC8 - b _08074EBE -_08074DC8: - cmp r2, r0 - bhi _08074DD6 - movs r0, #0x80 - lsls r0, r0, #8 - cmp r2, r0 - beq _08074EB4 - b _08074EF0 -_08074DD6: - movs r0, #0x80 - lsls r0, r0, #0xd - cmp r2, r0 - bne _08074DE0 - b _08074ED8 -_08074DE0: - movs r0, #0x80 - lsls r0, r0, #0xe - cmp r2, r0 - bne _08074DEA - b _08074EE4 -_08074DEA: - b _08074EF0 -_08074DEC: - ldr r2, _08074E00 @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08074E04 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r2, #8] - b _08074EF0 - .align 2, 0 -_08074E00: .4byte gPlayerState -_08074E04: - strh r7, [r2, #8] - b _08074EF0 -_08074E08: - ldr r2, _08074E1C @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08074E24 - ldr r0, _08074E20 @ =0x00000404 - strh r0, [r2, #8] - b _08074EF0 - .align 2, 0 -_08074E1C: .4byte gPlayerState -_08074E20: .4byte 0x00000404 -_08074E24: - movs r0, #0x82 - lsls r0, r0, #1 - strh r0, [r2, #8] - b _08074EF0 -_08074E2C: - ldr r1, _08074E3C @ =gPlayerState - ldr r0, [r1, #0x30] - ands r0, r2 - cmp r0, #0 - beq _08074E44 - ldr r0, _08074E40 @ =0x0000041C - b _08074E46 - .align 2, 0 -_08074E3C: .4byte gPlayerState -_08074E40: .4byte 0x0000041C -_08074E44: - ldr r0, _08074E50 @ =0x0000080C -_08074E46: - strh r0, [r1, #8] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - b _08074EF0 - .align 2, 0 -_08074E50: .4byte 0x0000080C -_08074E54: - adds r0, r4, #0 - movs r1, #8 - movs r2, #0x18 - rsbs r2, r2, #0 - bl CreateSpeechBubbleExclamationMark - b _08074EF0 -_08074E62: - adds r0, r4, #0 - movs r1, #8 - movs r2, #0x18 - rsbs r2, r2, #0 - bl CreateSpeechBubbleQuestionMark - b _08074EF0 -_08074E70: - ldrb r0, [r4, #0x18] - movs r2, #4 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08074EF0 -_08074E82: - ldrb r0, [r4, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _08074EF0 -_08074E90: - movs r0, #0 - strh r0, [r5] - b _08074EF0 -_08074E96: - ldrh r0, [r5] - ldr r2, _08074EA4 @ =0x0000FFFE - adds r1, r2, #0 - ands r0, r1 - strh r0, [r5] - b _08074EF0 - .align 2, 0 -_08074EA4: .4byte 0x0000FFFE -_08074EA8: - ldrh r0, [r5] - movs r1, #1 - b _08074EB8 -_08074EAE: - ldrh r0, [r5] - movs r1, #8 - b _08074EB8 -_08074EB4: - ldrh r0, [r5] - movs r1, #4 -_08074EB8: - orrs r0, r1 - strh r0, [r5] - b _08074EF0 -_08074EBE: - ldrb r2, [r4, #0x18] - lsls r0, r2, #0x19 - lsrs r0, r0, #0x1f - movs r1, #1 - eors r0, r1 - lsls r0, r0, #6 - movs r3, #0x41 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x18] - b _08074EF0 -_08074ED8: - movs r1, #2 - strb r1, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - b _08074EF0 -_08074EE4: - movs r0, #0 - movs r1, #3 - strb r1, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] -_08074EF0: - ldr r0, [r6, #8] - cmp r0, #0 - beq _08074EF8 - b _08074D4E -_08074EF8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08074F00 -sub_08074F00: @ 0x08074F00 - push {lr} - ldr r2, _08074F18 @ =gUnk_0811BC98 - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08074F18: .4byte gUnk_0811BC98 - - thumb_func_start sub_08074F1C -sub_08074F1C: @ 0x08074F1C - adds r2, r0, #0 - adds r2, #0x68 - movs r3, #0 - movs r1, #1 - strb r1, [r2] - strb r3, [r0, #0x14] - bx lr - .align 2, 0 - - thumb_func_start sub_08074F2C -sub_08074F2C: @ 0x08074F2C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x84 - ldr r1, [r5] - bl ExecuteScript - ldr r1, [r5] - adds r0, r4, #0 - bl sub_08074D34 - pop {r4, r5, pc} - - thumb_func_start sub_08074F44 -sub_08074F44: @ 0x08074F44 - push {lr} - adds r0, #0x68 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r0, _08074F74 @ =gPlayerEntity - ldr r0, [r0, #0x6c] - cmp r0, #0 - beq _08074F5A - bl DeleteEntity -_08074F5A: - ldr r2, _08074F78 @ =gPlayerState - adds r0, r2, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08074F80 - ldr r0, _08074F7C @ =0x0000073B - strh r0, [r2, #8] - ldr r0, [r2, #0x30] - movs r1, #8 - orrs r0, r1 - str r0, [r2, #0x30] - b _08074F84 - .align 2, 0 -_08074F74: .4byte gPlayerEntity -_08074F78: .4byte gPlayerState -_08074F7C: .4byte 0x0000073B -_08074F80: - ldr r0, _08074F88 @ =0x00000737 - strh r0, [r2, #8] -_08074F84: - pop {pc} - .align 2, 0 -_08074F88: .4byte 0x00000737 - - thumb_func_start sub_08074F8C -sub_08074F8C: @ 0x08074F8C - push {r4, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - adds r3, r4, #0 - adds r3, #0x5a - ldrb r0, [r3] - cmp r0, #1 - bne _08074FAC - movs r0, #0 - strb r0, [r3] - ldr r2, _08074FDC @ =gActiveScriptInfo - ldr r0, [r2] - movs r1, #4 - orrs r0, r1 - str r0, [r2] -_08074FAC: - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08074FEA - adds r1, r4, #0 - adds r1, #0x68 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0x14] - ldr r1, _08074FE0 @ =gPlayerState - adds r0, r1, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08074FE4 - movs r0, #0x80 - lsls r0, r0, #3 - b _08074FE8 - .align 2, 0 -_08074FDC: .4byte gActiveScriptInfo -_08074FE0: .4byte gPlayerState -_08074FE4: - movs r0, #0x80 - lsls r0, r0, #1 -_08074FE8: - strh r0, [r1, #8] -_08074FEA: - pop {r4, pc} - - thumb_func_start sub_08074FEC -sub_08074FEC: @ 0x08074FEC - push {r4, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08075016 - adds r1, r4, #0 - adds r1, #0x68 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #4 - strb r0, [r4, #0xe] - ldr r0, _08075018 @ =gPlayerState - adds r0, #0x3a - ldrb r0, [r0] - strb r0, [r4, #0x14] -_08075016: - pop {r4, pc} - .align 2, 0 -_08075018: .4byte gPlayerState - - thumb_func_start sub_0807501C -sub_0807501C: @ 0x0807501C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08075086 - ldr r1, _08075044 @ =gPlayerState - adds r0, r1, #0 - adds r0, #0x3a - ldrb r0, [r0] - strb r0, [r2, #0x14] - adds r0, r1, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _0807504C - ldr r0, _08075048 @ =0x0000041C - b _0807504E - .align 2, 0 -_08075044: .4byte gPlayerState -_08075048: .4byte 0x0000041C -_0807504C: - ldr r0, _08075088 @ =0x0000080C -_0807504E: - strh r0, [r1, #8] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - strb r0, [r2, #0x15] - movs r0, #0xc8 - strh r0, [r2, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - movs r0, #8 - strb r0, [r2, #0xe] - adds r1, r2, #0 - adds r1, #0x68 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0x7c - bl SoundReq -_08075086: - pop {pc} - .align 2, 0 -_08075088: .4byte 0x0000080C - - thumb_func_start sub_0807508C -sub_0807508C: @ 0x0807508C - push {r4, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl GravityUpdate - cmp r0, #0 - beq _080750AA - adds r0, r4, #0 - bl sub_0806F69C - b _080750F2 -_080750AA: - ldr r2, _080750BC @ =gPlayerState - adds r0, r2, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _080750C0 - movs r0, #0x80 - lsls r0, r0, #3 - b _080750CE - .align 2, 0 -_080750BC: .4byte gPlayerState -_080750C0: - ldr r0, [r2, #0x30] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #1 -_080750CE: - strh r0, [r2, #8] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080750F2 - movs r0, #4 - strb r0, [r4, #0x14] - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - movs r0, #0x7d - bl SoundReq -_080750F2: - pop {r4, pc} - - thumb_func_start sub_080750F4 -sub_080750F4: @ 0x080750F4 - push {lr} - ldr r2, _0807510C @ =gUnk_0811BCB4 - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807510C: .4byte gUnk_0811BCB4 - - thumb_func_start sub_08075110 -sub_08075110: @ 0x08075110 - adds r2, r0, #0 - adds r2, #0x68 - ldrb r1, [r2] - adds r1, #1 - movs r3, #0 - strb r1, [r2] - ldrb r1, [r0, #0x14] - strb r1, [r0, #0xf] - strb r3, [r0, #0x14] - ldr r2, _08075134 @ =gPlayerState - ldr r0, _08075138 @ =0x00000734 - strh r0, [r2, #8] - ldr r0, [r2, #0x30] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - bx lr - .align 2, 0 -_08075134: .4byte gPlayerState -_08075138: .4byte 0x00000734 - - thumb_func_start sub_0807513C -sub_0807513C: @ 0x0807513C - push {r4, r5, lr} - adds r5, r0, #0 - bl UpdateAnimationSingleFrame - adds r4, r5, #0 - adds r4, #0x5a - ldrb r0, [r4] - cmp r0, #1 - bne _08075158 - movs r0, #0 - strb r0, [r4] - movs r0, #0x7c - bl SoundReq -_08075158: - ldrb r0, [r4] - cmp r0, #2 - bne _0807516E - movs r0, #0 - strb r0, [r4] - ldr r0, _08075188 @ =0x0000014B - bl SoundReq - movs r0, #0x7a - bl SoundReq -_0807516E: - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075186 - adds r0, r5, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - movs r0, #0x3c - strb r0, [r5, #0xe] -_08075186: - pop {r4, r5, pc} - .align 2, 0 -_08075188: .4byte 0x0000014B - - thumb_func_start sub_0807518C -sub_0807518C: @ 0x0807518C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080751AA - adds r1, #0x68 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _080751AC @ =gPlayerState - ldr r0, _080751B0 @ =0x000003C9 - strh r0, [r1, #8] -_080751AA: - pop {pc} - .align 2, 0 -_080751AC: .4byte gPlayerState -_080751B0: .4byte 0x000003C9 - - thumb_func_start sub_080751B4 -sub_080751B4: @ 0x080751B4 - push {r4, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080751E2 - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0x14] - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - ldr r1, _080751E4 @ =gPlayerState - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #8] -_080751E2: - pop {r4, pc} - .align 2, 0 -_080751E4: .4byte gPlayerState - - thumb_func_start sub_080751E8 -sub_080751E8: @ 0x080751E8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r4, _08075230 @ =gPlayerScriptExecutionContext - adds r0, r4, #0 - movs r1, #0x24 - bl MemClear - str r6, [r4] - ldr r0, _08075234 @ =gPlayerEntity - adds r0, #0x84 - str r4, [r0] - ldr r2, _08075238 @ =gPlayerState - movs r1, #0 - movs r0, #0x1c - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x38 - movs r4, #1 - strb r4, [r0] - adds r3, r2, #0 - adds r3, #0x39 - strb r1, [r3] - adds r0, #2 - strb r5, [r0] - ldr r0, [r2, #0x30] - movs r1, #8 - orrs r0, r1 - str r0, [r2, #0x30] - cmp r7, #0 - bne _08075240 - strb r7, [r3] - ldr r6, _0807523C @ =script_08009ECC - b _08075244 - .align 2, 0 -_08075230: .4byte gPlayerScriptExecutionContext -_08075234: .4byte gPlayerEntity -_08075238: .4byte gPlayerState -_0807523C: .4byte script_08009ECC -_08075240: - strb r4, [r3] - ldr r6, _08075290 @ =script_08009EF0 -_08075244: - ldr r0, _08075294 @ =gPlayerState - adds r0, #0x39 - ldrb r0, [r0] - movs r1, #0 - cmp r0, #0 - bne _08075252 - movs r1, #2 -_08075252: - movs r0, #0x5b - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08075270 - ldr r0, _08075298 @ =gPlayerEntity - adds r1, r4, #0 - bl CopyPosition - adds r0, r4, #0 - adds r1, r6, #0 - bl StartCutscene -_08075270: - ldr r4, _08075298 @ =gPlayerEntity - movs r1, #0xe - rsbs r1, r1, #0 - movs r2, #0x1c - rsbs r2, r2, #0 - adds r0, r4, #0 - bl CreateSpeechBubbleSleep - str r0, [r4, #0x6c] - cmp r0, #0 - beq _0807528C - movs r1, #3 - bl SetDefaultPriority -_0807528C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08075290: .4byte script_08009EF0 -_08075294: .4byte gPlayerState -_08075298: .4byte gPlayerEntity - - thumb_func_start sub_0807529C -sub_0807529C: @ 0x0807529C - push {lr} - movs r2, #0x20 - rsbs r2, r2, #0 - movs r1, #8 - bl CreateSpeechBubbleQuestionMark - pop {pc} - .align 2, 0 - - thumb_func_start sub_080752AC -sub_080752AC: @ 0x080752AC - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_0806F69C - ldrb r0, [r4, #0x18] - cmp r0, #0 - bne _080752D0 - adds r0, r5, #0 - bl sub_080002B8 - cmp r0, #0x29 - beq _080752DC - movs r0, #1 - strb r0, [r4, #0x18] - movs r0, #6 - strb r0, [r4, #0x19] - b _080752DC -_080752D0: - ldrb r0, [r4, #0x19] - subs r0, #1 - strb r0, [r4, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080752E2 -_080752DC: - ldr r1, _080752E4 @ =gActiveScriptInfo - movs r0, #0 - strb r0, [r1, #6] -_080752E2: - pop {r4, r5, pc} - .align 2, 0 -_080752E4: .4byte gActiveScriptInfo - - thumb_func_start sub_080752E8 -sub_080752E8: @ 0x080752E8 - push {lr} - ldr r3, _080752FC @ =gItemFunctions - ldrb r2, [r0, #1] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_080752FC: .4byte gItemFunctions diff --git a/asm/code_08078778.s b/asm/code_08078778.s index 973db1ec..61f876d3 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -862,8 +862,8 @@ sub_08078EE4: @ 0x08078EE4 _08078EF4: .4byte gPlayerEntity _08078EF8: .4byte gPlayerState - thumb_func_start sub_08078EFC -sub_08078EFC: @ 0x08078EFC + thumb_func_start RunQueuedAction +RunQueuedAction: @ 0x08078EFC push {lr} ldr r3, _08078F18 @ =gPlayerState ldrb r2, [r3, #0xc] @@ -894,7 +894,7 @@ sub_08078F24: @ 0x08078F24 ands r0, r3 cmp r0, #0 beq _08078F3C - bl sub_08078F60 + bl ResetPlayerVelocity b _08078F5A .align 2, 0 _08078F38: .4byte gPlayerState @@ -919,8 +919,8 @@ _08078F5A: .align 2, 0 _08078F5C: .4byte gSineTable - thumb_func_start sub_08078F60 -sub_08078F60: @ 0x08078F60 + thumb_func_start ResetPlayerVelocity +ResetPlayerVelocity: @ 0x08078F60 ldr r0, _08078F70 @ =gPlayerState adds r1, r0, #0 adds r1, #0x8c @@ -3282,7 +3282,7 @@ _0807A104: thumb_func_start sub_0807A108 sub_0807A108: @ 0x0807A108 push {lr} - ldr r1, _0807A148 @ =gUnk_03004040 + ldr r1, _0807A148 @ =gPlayerClones movs r0, #0 str r0, [r1] str r0, [r1, #4] @@ -3315,7 +3315,7 @@ _0807A130: _0807A144: pop {pc} .align 2, 0 -_0807A148: .4byte gUnk_03004040 +_0807A148: .4byte gPlayerClones _0807A14C: .4byte gPlayerState _0807A150: .4byte 0xFFBFFFFF _0807A154: .4byte gPlayerEntity @@ -3483,8 +3483,8 @@ _0807A28C: .4byte gPlayerEntity _0807A290: .4byte gPlayerState _0807A294: .4byte gUnk_08007CAC - thumb_func_start sub_0807A298 -sub_0807A298: @ 0x0807A298 + thumb_func_start EnablePlayerDraw +EnablePlayerDraw: @ 0x0807A298 movs r1, #0 strb r1, [r0, #0xb] ldrb r1, [r0, #0x18] diff --git a/asm/crenalBeanSprout.s b/asm/crenalBeanSprout.s index 1085ea32..19ed952e 100644 --- a/asm/crenalBeanSprout.s +++ b/asm/crenalBeanSprout.s @@ -535,7 +535,7 @@ sub_08096740: @ 0x08096740 adds r4, r0, #0 movs r0, #0x10 movs r1, #0 - bl sub_08080964 + bl InitScreenShake movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] diff --git a/asm/enemy4D.s b/asm/enemy4D.s index 669274fd..f7b116a9 100644 --- a/asm/enemy4D.s +++ b/asm/enemy4D.s @@ -284,7 +284,7 @@ _0803EDC0: strb r0, [r2, #0xe] movs r0, #8 movs r1, #0 - bl sub_08080964 + bl InitScreenShake _0803EDD0: pop {pc} .align 2, 0 diff --git a/asm/enemy50.s b/asm/enemy50.s index cdab7151..d43aaafe 100644 --- a/asm/enemy50.s +++ b/asm/enemy50.s @@ -854,7 +854,7 @@ sub_08041134: @ 0x08041134 movs r0, #0x25 strb r0, [r1] movs r5, #0 - ldr r0, _08041168 @ =gUnk_03004040 + ldr r0, _08041168 @ =gPlayerClones ldr r0, [r0] cmp r0, #0 beq _08041150 @@ -872,7 +872,7 @@ _08041150: strh r0, [r1] pop {r4, r5, pc} .align 2, 0 -_08041168: .4byte gUnk_03004040 +_08041168: .4byte gPlayerClones _0804116C: .4byte gUnk_080D0E18 thumb_func_start sub_08041170 diff --git a/asm/enemy62.s b/asm/enemy62.s index d9e780b5..17c90185 100644 --- a/asm/enemy62.s +++ b/asm/enemy62.s @@ -105,7 +105,7 @@ _08048E48: bl SoundReq movs r0, #0x28 movs r1, #0 - bl sub_08080964 + bl InitScreenShake _08048E5C: adds r2, r5, #0 adds r2, #0x3d diff --git a/asm/ghini.s b/asm/ghini.s index 2a43603a..5ffffb3e 100644 --- a/asm/ghini.s +++ b/asm/ghini.s @@ -851,7 +851,7 @@ sub_0803F630: @ 0x0803F630 movs r0, #0x25 strb r0, [r1] movs r5, #0 - ldr r0, _0803F664 @ =gUnk_03004040 + ldr r0, _0803F664 @ =gPlayerClones ldr r0, [r0] cmp r0, #0 beq _0803F64C @@ -869,7 +869,7 @@ _0803F64C: strh r0, [r1] pop {r4, r5, pc} .align 2, 0 -_0803F664: .4byte gUnk_03004040 +_0803F664: .4byte gPlayerClones _0803F668: .4byte gUnk_080D0980 thumb_func_start sub_0803F66C @@ -937,7 +937,7 @@ sub_0803F6C0: @ 0x0803F6C0 bl ModHealth adds r0, r4, #0 movs r1, #0x7a - bl sub_0800449C + bl SoundReqClipped pop {r4, pc} .align 2, 0 _0803F6E8: .4byte gPlayerEntity diff --git a/asm/gleerok.s b/asm/gleerok.s index 32779e12..2ba8ead0 100644 --- a/asm/gleerok.s +++ b/asm/gleerok.s @@ -900,7 +900,7 @@ sub_0802D6F0: @ 0x0802D6F0 str r0, [r2, #0x7c] movs r0, #0x96 movs r1, #0 - bl sub_08080964 + bl InitScreenShake _0802D712: pop {pc} @@ -2496,7 +2496,7 @@ _0802E23A: movs r0, #0xf0 strh r0, [r7] movs r1, #0 - bl sub_08080964 + bl InitScreenShake b _0802E2E4 .align 2, 0 _0802E280: .4byte gPlayerEntity @@ -2545,7 +2545,7 @@ _0802E29E: strh r0, [r1] movs r0, #0x1e movs r1, #0 - bl sub_08080964 + bl InitScreenShake _0802E2E4: movs r0, #5 strb r0, [r5, #0xb] diff --git a/asm/gyorgBossObject.s b/asm/gyorgBossObject.s index bf2efd4e..99359f15 100644 --- a/asm/gyorgBossObject.s +++ b/asm/gyorgBossObject.s @@ -399,7 +399,7 @@ sub_080A189C: @ 0x080A189C bl SoundReq movs r0, #0x96 movs r1, #1 - bl sub_08080964 + bl InitScreenShake _080A18E6: ldr r2, _080A1904 @ =gPlayerState ldr r1, _080A1908 @ =gRoomControls @@ -521,7 +521,7 @@ sub_080A1990: @ 0x080A1990 bl SoundReq movs r0, #0x96 movs r1, #1 - bl sub_08080964 + bl InitScreenShake _080A19D6: ldr r2, _080A19F4 @ =gPlayerState ldr r1, _080A19F8 @ =gRoomControls @@ -640,7 +640,7 @@ sub_080A1A80: @ 0x080A1A80 bl SoundReq movs r0, #0x96 movs r1, #1 - bl sub_08080964 + bl InitScreenShake _080A1AC0: ldr r2, _080A1AE0 @ =gPlayerState ldr r1, _080A1AE4 @ =gRoomControls @@ -728,7 +728,7 @@ sub_080A1B4C: @ 0x080A1B4C beq _080A1B80 movs r0, #0x2d movs r1, #1 - bl sub_08080964 + bl InitScreenShake movs r0, #0x94 lsls r0, r0, #1 bl SoundReq @@ -860,7 +860,7 @@ _080A1C76: movs r0, #0xb4 lsls r0, r0, #2 movs r1, #2 - bl sub_08080964 + bl InitScreenShake b _080A1C9A _080A1C8A: movs r0, #0x94 @@ -868,7 +868,7 @@ _080A1C8A: bl SoundReq movs r0, #0x4b movs r1, #1 - bl sub_08080964 + bl InitScreenShake _080A1C9A: pop {r4, pc} @@ -1418,7 +1418,7 @@ _080A20A4: bne _080A20B4 movs r0, #0x1e movs r1, #0 - bl sub_08080964 + bl InitScreenShake b _080A20B4 _080A20B2: strb r0, [r4] diff --git a/asm/gyorgFemale.s b/asm/gyorgFemale.s index 3d90df67..2b113b5c 100644 --- a/asm/gyorgFemale.s +++ b/asm/gyorgFemale.s @@ -813,7 +813,7 @@ _08046498: beq _0804650E movs r0, #8 movs r1, #0 - bl sub_08080964 + bl InitScreenShake adds r1, r4, #0 adds r1, #0x82 ldrb r0, [r1] @@ -965,7 +965,7 @@ _080466D0: beq _08046746 movs r0, #8 movs r1, #0 - bl sub_08080964 + bl InitScreenShake adds r1, r4, #0 adds r1, #0x82 ldrb r0, [r1] diff --git a/asm/hittableLever.s b/asm/hittableLever.s index f3cb73c2..0efb82fb 100644 --- a/asm/hittableLever.s +++ b/asm/hittableLever.s @@ -121,7 +121,7 @@ _0808A7C2: _0808A7C8: ldr r1, _0808A7D4 @ =0x00000117 adds r0, r5, #0 - bl sub_0800449C + bl SoundReqClipped _0808A7D0: pop {r4, r5, pc} .align 2, 0 diff --git a/asm/ladderUp.s b/asm/ladderUp.s index 1eaecf27..cd53a0b7 100644 --- a/asm/ladderUp.s +++ b/asm/ladderUp.s @@ -101,7 +101,7 @@ _0808D4E8: _0808D4FE: movs r0, #0x1e movs r1, #0 - bl sub_08080964 + bl InitScreenShake ldr r0, _0808D514 @ =0x0000010B bl SoundReq movs r0, #2 @@ -358,7 +358,7 @@ _0808DBF8: _0808DC0E: movs r0, #0x1e movs r1, #0 - bl sub_08080964 + bl InitScreenShake ldr r0, _0808DC28 @ =0x0000010B bl SoundReq movs r0, #2 diff --git a/asm/lilypadLarge.s b/asm/lilypadLarge.s index a9158fe8..045a9be9 100644 --- a/asm/lilypadLarge.s +++ b/asm/lilypadLarge.s @@ -1380,7 +1380,7 @@ sub_08085F48: @ 0x08085F48 ldrb r0, [r5, #0x12] cmp r0, #0x17 bne _08085F6A - bl sub_08078F60 + bl ResetPlayerVelocity movs r0, #0x19 strb r0, [r5, #0x12] _08085F6A: diff --git a/asm/macroBook.s b/asm/macroBook.s index 3b3396a4..2e6a0704 100644 --- a/asm/macroBook.s +++ b/asm/macroBook.s @@ -132,7 +132,7 @@ _0809A85C: beq _0809A87C subs r0, #1 strb r0, [r4, #0xe] - ldr r0, _0809A878 @ =gUnk_03004040 + ldr r0, _0809A878 @ =gPlayerClones ldr r1, [r0] cmp r1, #0 bne _0809A8A0 @@ -142,7 +142,7 @@ _0809A870: strb r1, [r4, #0xe] b _0809A8A0 .align 2, 0 -_0809A878: .4byte gUnk_03004040 +_0809A878: .4byte gPlayerClones _0809A87C: adds r0, r4, #0 adds r0, #0x5a @@ -241,7 +241,7 @@ _0809A92A: adds r0, r4, #0 movs r2, #1 bl sub_0809AA9C - ldr r0, _0809A954 @ =gUnk_03004040 + ldr r0, _0809A954 @ =gPlayerClones ldr r1, [r0] cmp r1, #0 beq _0809A94E @@ -252,7 +252,7 @@ _0809A94E: pop {r4, pc} .align 2, 0 _0809A950: .4byte gPlayerEntity -_0809A954: .4byte gUnk_03004040 +_0809A954: .4byte gPlayerClones thumb_func_start sub_0809A958 sub_0809A958: @ 0x0809A958 @@ -408,7 +408,7 @@ _0809AA5C: adds r1, r4, #0 movs r2, #1 bl sub_0809AA9C - ldr r0, _0809AA98 @ =gUnk_03004040 + ldr r0, _0809AA98 @ =gPlayerClones ldr r4, [r0] cmp r4, #0 beq _0809AA8E @@ -422,7 +422,7 @@ _0809AA8E: pop {r4, r5, r6, r7, pc} .align 2, 0 _0809AA94: .4byte gPlayerEntity -_0809AA98: .4byte gUnk_03004040 +_0809AA98: .4byte gPlayerClones thumb_func_start sub_0809AA9C sub_0809AA9C: @ 0x0809AA9C diff --git a/asm/non_matching/pesto/sub_08024E4C.inc b/asm/non_matching/pesto/sub_08024E4C.inc index affeab56..b3d6d0e9 100644 --- a/asm/non_matching/pesto/sub_08024E4C.inc +++ b/asm/non_matching/pesto/sub_08024E4C.inc @@ -123,7 +123,7 @@ _08024ECC: bl ModHealth adds r0, r6, #0 movs r1, #0x7a - bl sub_0800449C + bl SoundReqClipped _08024F46: pop {r4, r5, r6, r7, pc} .align 2, 0 diff --git a/asm/non_matching/player/PlayerNormal.inc b/asm/non_matching/player/PlayerNormal.inc index 17b2e5e8..514075d5 100644 --- a/asm/non_matching/player/PlayerNormal.inc +++ b/asm/non_matching/player/PlayerNormal.inc @@ -99,7 +99,7 @@ _08070852: adds r0, r5, #0 adds r0, #0x40 strb r4, [r0] - bl sub_08078EFC + bl RunQueuedAction cmp r0, #0 beq _08070868 b _08070BE4 @@ -156,7 +156,7 @@ _080708AC: bne _080708C4 bl UpdateFloorType _080708C4: - bl sub_08078EFC + bl RunQueuedAction cmp r0, #0 beq _080708CE b _08070BE4 @@ -195,7 +195,7 @@ _08070902: b _08070BE4 _0807090C: bl UpdateFloorType - bl sub_08078EFC + bl RunQueuedAction b _08070BE4 .align 2, 0 _08070918: .4byte gPlayerState @@ -296,7 +296,7 @@ _080709D8: _080709FC: adds r0, r5, #0 bl sub_08077698 - bl sub_08078EFC + bl RunQueuedAction cmp r0, #0 beq _08070A0C b _08070BE4 @@ -321,7 +321,7 @@ _08070A26: _08070A32: adds r0, r5, #0 bl sub_08073904 - bl sub_08078EFC + bl RunQueuedAction cmp r0, #0 beq _08070A42 b _08070BE4 @@ -432,7 +432,7 @@ _08070B00: _08070B0E: cmp r0, #1 bne _08070B18 - bl sub_08078F60 + bl ResetPlayerVelocity b _08070B1E _08070B18: adds r0, r5, #0 diff --git a/asm/non_matching/player/sub_08070DC4.inc b/asm/non_matching/player/sub_08070DC4.inc index 5f9b8e7e..8d544d6b 100644 --- a/asm/non_matching/player/sub_08070DC4.inc +++ b/asm/non_matching/player/sub_08070DC4.inc @@ -6,7 +6,7 @@ bl sub_080085B0 bl sub_08079E08 bl UpdateFloorType - bl sub_08078EFC + bl RunQueuedAction cmp r0, #0 bne _08070E76 movs r1, #0x80 @@ -17,7 +17,7 @@ bne _08070E76 ldr r6, _08070E18 @ =gPlayerState strb r0, [r6, #2] - bl sub_08078EFC + bl RunQueuedAction adds r5, r0, #0 cmp r5, #0 bne _08070E76 diff --git a/asm/non_matching/player/sub_08073584.inc b/asm/non_matching/player/sub_08073584.inc new file mode 100644 index 00000000..43ee516b --- /dev/null +++ b/asm/non_matching/player/sub_08073584.inc @@ -0,0 +1,280 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r2, _080735DC @ =gPlayerState + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + bne _080735C0 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bgt _080735C0 + adds r0, r6, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _080735C0 + ldr r0, [r6, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _080735E0 +_080735C0: + ldrb r0, [r6, #2] + movs r1, #0x40 + orrs r1, r0 + strb r1, [r6, #2] + bl sub_0807921C + adds r0, r4, #0 + bl sub_08073904 + movs r0, #0xe6 + lsls r0, r0, #3 + strh r0, [r6, #8] + b _08073794 + .align 2, 0 +_080735DC: .4byte gPlayerState +_080735E0: + ldr r0, _0807360C @ =gUnk_0200AF00 + adds r0, #0x2f + movs r1, #1 + strb r1, [r0] + movs r0, #0 + bl sub_0807A2F8 + cmp r0, #0 + beq _08073610 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x14] + movs r0, #6 + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _08073794 + .align 2, 0 +_0807360C: .4byte gUnk_0200AF00 +_08073610: + ldr r0, _08073620 @ =gArea + ldrb r0, [r0, #1] + cmp r0, #0x10 + bne _08073624 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _08073626 + .align 2, 0 +_08073620: .4byte gArea +_08073624: + strh r5, [r4, #0x24] +_08073626: + ldr r3, _08073650 @ =gPlayerState + ldrb r1, [r3, #0xd] + movs r0, #0x80 + ands r0, r1 + adds r2, r4, #0 + adds r2, #0x80 + cmp r0, #0 + bne _0807365A + ldrb r0, [r4, #0x15] + cmp r0, r1 + beq _0807365A + ldrb r1, [r3, #0xd] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xf + bgt _08073654 + ldr r0, [r2] + subs r0, #0x20 + b _08073658 + .align 2, 0 +_08073650: .4byte gPlayerState +_08073654: + ldr r0, [r2] + adds r0, #0x20 +_08073658: + str r0, [r2] +_0807365A: + ldr r0, [r2] + lsrs r0, r0, #8 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + bl sub_08079E08 + ldrb r2, [r4, #0x14] + lsls r3, r2, #2 + ldrb r1, [r4, #0x15] + cmp r2, #0 + bne _0807367C + adds r3, #8 + movs r0, #0x1f + ands r3, r0 + adds r1, #8 + ands r1, r0 +_0807367C: + subs r0, r3, #7 + cmp r0, r1 + bls _08073686 + subs r3, r2, #2 + b _0807368E +_08073686: + adds r0, r3, #7 + cmp r0, r1 + bhs _08073694 + adds r3, r2, #2 +_0807368E: + movs r0, #7 + ands r3, r0 + b _08073696 +_08073694: + adds r3, r2, #0 +_08073696: + movs r0, #0x87 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r4, #0x14] + cmp r3, r1 + beq _080736A8 + movs r0, #0x14 + mov r2, ip + strb r0, [r2] +_080736A8: + strb r3, [r4, #0x14] + movs r5, #0 + ldr r1, _080736E4 @ =gPlayerState + ldrb r2, [r1, #0xd] + lsrs r3, r2, #2 + mov r6, ip + ldrb r0, [r6] + adds r6, r1, #0 + cmp r0, #0 + beq _080736CA + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08073736 + ldrb r0, [r4, #0x14] + cmp r0, r3 + beq _08073736 +_080736CA: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _080736FA + ldrb r2, [r4, #0x14] + cmp r2, r3 + beq _080736FA + movs r0, #4 + eors r0, r3 + cmp r2, r0 + bne _080736E8 + movs r5, #2 + b _080736FA + .align 2, 0 +_080736E4: .4byte gPlayerState +_080736E8: + movs r0, #6 + ands r0, r3 + adds r0, #2 + movs r1, #7 + ands r0, r1 + movs r5, #3 + cmp r2, r0 + bne _080736FA + movs r5, #1 +_080736FA: + ldr r1, _0807371C @ =gUnk_0811BC28 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6, #8] + cmp r0, r1 + bne _0807372C + ldr r0, _08073720 @ =gArea + ldrb r0, [r0, #1] + cmp r0, #0x10 + bne _08073724 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042BA + b _0807372E + .align 2, 0 +_0807371C: .4byte gUnk_0811BC28 +_08073720: .4byte gArea +_08073724: + adds r0, r4, #0 + bl UpdateAnimationSingleFrame + b _0807372E +_0807372C: + strh r0, [r6, #8] +_0807372E: + adds r0, r4, #0 + adds r0, #0x86 + strb r5, [r0] + b _08073762 +_08073736: + mov r2, ip + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + ldr r1, _0807375C @ =gUnk_0811BC30 + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6, #8] + cmp r0, r1 + bne _08073760 + adds r0, r4, #0 + bl UpdateAnimationSingleFrame + b _08073762 + .align 2, 0 +_0807375C: .4byte gUnk_0811BC30 +_08073760: + strh r0, [r6, #8] +_08073762: + ldr r0, [r4, #0x7c] + subs r1, r0, #1 + str r1, [r4, #0x7c] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08073784 + ldr r2, _08073780 @ =gPlayerState + ldrb r1, [r2, #2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2, #2] + bl sub_0807921C + b _08073794 + .align 2, 0 +_08073780: .4byte gPlayerState +_08073784: + adds r0, r1, #0 + movs r1, #0x14 + bl __divsi3 + ldr r2, _08073798 @ =0x0000FFF8 + adds r1, r2, #0 + subs r1, r1, r0 + strh r1, [r4, #0x36] +_08073794: + pop {r4, r5, r6, pc} + .align 2, 0 +_08073798: .4byte 0x0000FFF8 + .syntax divided diff --git a/asm/non_matching/player/sub_080740D8.inc b/asm/non_matching/player/sub_080740D8.inc new file mode 100644 index 00000000..f24b687f --- /dev/null +++ b/asm/non_matching/player/sub_080740D8.inc @@ -0,0 +1,123 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl UpdateAnimationSingleFrame + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080740EA + ldrb r0, [r4, #0x15] + b _080740F0 +_080740EA: + ldrb r1, [r4, #0x15] + movs r0, #0x10 + eors r0, r1 +_080740F0: + cmp r0, #8 + beq _08074128 + cmp r0, #8 + bhi _080740FE + cmp r0, #0 + beq _08074168 + b _0807418C +_080740FE: + cmp r0, #0x10 + beq _08074148 + cmp r0, #0x18 + bne _0807418C + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, [r4, #0x48] + ldrb r0, [r2, #2] + subs r1, r1, r0 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _08074124 @ =gRoomControls + ldrh r0, [r3, #6] + subs r6, r1, r0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + b _08074182 + .align 2, 0 +_08074124: .4byte gRoomControls +_08074128: + ldr r2, [r4, #0x48] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldrb r1, [r2, #2] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r3, _08074144 @ =gRoomControls + ldrh r1, [r3, #6] + subs r6, r0, r1 + movs r1, #0x32 + ldrsh r0, [r4, r1] + b _08074182 + .align 2, 0 +_08074144: .4byte gRoomControls +_08074148: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, [r4, #0x48] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _08074164 @ =gRoomControls + ldrh r0, [r3, #6] + subs r6, r1, r0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrb r1, [r2, #5] + adds r0, r0, r1 + b _08074182 + .align 2, 0 +_08074164: .4byte gRoomControls +_08074168: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, [r4, #0x48] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _080741A4 @ =gRoomControls + ldrh r0, [r3, #6] + subs r6, r1, r0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrb r1, [r2, #5] + subs r0, r0, r1 +_08074182: + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldrh r1, [r3, #8] + subs r5, r0, r1 +_0807418C: + ldr r2, _080741A8 @ =gUnk_080082DC + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080086B4 + cmp r0, #0 + beq _080741AC + adds r0, r4, #0 + bl sub_0806F69C + b _080741B0 + .align 2, 0 +_080741A4: .4byte gRoomControls +_080741A8: .4byte gUnk_080082DC +_080741AC: + movs r0, #1 + strb r0, [r4, #0xf] +_080741B0: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl GravityUpdate + cmp r0, #0 + bne _080741C2 + bl sub_0807921C +_080741C2: + pop {r4, r5, r6, pc} + .syntax divided diff --git a/asm/non_matching/player/sub_08074678.inc b/asm/non_matching/player/sub_08074678.inc new file mode 100644 index 00000000..3a3206b0 --- /dev/null +++ b/asm/non_matching/player/sub_08074678.inc @@ -0,0 +1,146 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + beq _08074690 + ldr r0, _0807468C @ =gPlayerState + movs r1, #0 + strb r1, [r0, #0x11] + b _080746CE + .align 2, 0 +_0807468C: .4byte gPlayerState +_08074690: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0807476C + adds r0, r4, #0 + bl sub_08079C30 + adds r1, r0, #0 + cmp r1, #0 + bne _080746B0 + ldr r0, _080746AC @ =gPlayerState + strb r1, [r0, #0x11] + b _080746CE + .align 2, 0 +_080746AC: .4byte gPlayerState +_080746B0: + ldr r3, _080746D4 @ =gPlayerState + ldr r1, [r3, #0x30] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _0807476C + ldrb r2, [r3, #0x1e] + cmp r2, #0 + beq _080746D8 + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080746DC + strb r1, [r3, #0x11] + adds r0, r3, #0 +_080746CE: + adds r0, #0x37 + strb r1, [r0] + b _08074792 + .align 2, 0 +_080746D4: .4byte gPlayerState +_080746D8: + bl sub_08077B20 +_080746DC: + ldr r1, _08074700 @ =gPlayerState + adds r0, r1, #0 + adds r0, #0x37 + ldrb r0, [r0] + cmp r0, #1 + bne _08074704 + adds r0, r4, #0 + movs r1, #0x70 + movs r2, #0 + movs r3, #0 + bl CreateObjectWithParent + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl CreateFx + b _08074714 + .align 2, 0 +_08074700: .4byte gPlayerState +_08074704: + adds r0, r1, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08074720 +_08074714: + ldr r0, _0807471C @ =0x00000161 + bl SoundReq + b _08074732 + .align 2, 0 +_0807471C: .4byte 0x00000161 +_08074720: + ldr r0, _08074760 @ =gScreenTransition + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08074732 + ldr r0, _08074764 @ =0x00000161 + bl SoundReq +_08074732: + ldr r2, _08074768 @ =gPlayerState + adds r1, r2, #0 + adds r1, #0x80 + ldrh r0, [r1] + subs r0, #0xf0 + strh r0, [r1] + adds r1, #0x28 + movs r0, #0x1b + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x37 + ldrb r0, [r0] + lsls r3, r0, #0x18 + lsrs r0, r3, #0x18 + cmp r0, #0xef + bhi _0807476C + subs r1, #0x69 + lsrs r0, r3, #0x1d + adds r0, #4 + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + b _08074792 + .align 2, 0 +_08074760: .4byte gScreenTransition +_08074764: .4byte 0x00000161 +_08074768: .4byte gPlayerState +_0807476C: + ldr r2, _08074794 @ =gPlayerState + ldr r0, [r2, #0x30] + ldr r1, _08074798 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r2, #0x30] + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl CreateFx + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x20 + strb r0, [r1] + subs r0, #0x24 + bl ModHealth + bl RespawnPlayer +_08074792: + pop {r4, pc} + .align 2, 0 +_08074794: .4byte gPlayerState +_08074798: .4byte 0xFFFBFFFF + .syntax divided diff --git a/asm/non_matching/player/sub_080751E8.inc b/asm/non_matching/player/sub_080751E8.inc new file mode 100644 index 00000000..6140893a --- /dev/null +++ b/asm/non_matching/player/sub_080751E8.inc @@ -0,0 +1,84 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r4, _08075230 @ =gPlayerScriptExecutionContext + adds r0, r4, #0 + movs r1, #0x24 + bl MemClear + str r6, [r4] + ldr r0, _08075234 @ =gPlayerEntity + adds r0, #0x84 + str r4, [r0] + ldr r2, _08075238 @ =gPlayerState + movs r1, #0 + movs r0, #0x1c + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x38 + movs r4, #1 + strb r4, [r0] + adds r3, r2, #0 + adds r3, #0x39 + strb r1, [r3] + adds r0, #2 + strb r5, [r0] + ldr r0, [r2, #0x30] + movs r1, #8 + orrs r0, r1 + str r0, [r2, #0x30] + cmp r7, #0 + bne _08075240 + strb r7, [r3] + ldr r6, _0807523C @ =script_08009ECC + b _08075244 + .align 2, 0 +_08075230: .4byte gPlayerScriptExecutionContext +_08075234: .4byte gPlayerEntity +_08075238: .4byte gPlayerState +_0807523C: .4byte script_08009ECC +_08075240: + strb r4, [r3] + ldr r6, _08075290 @ =script_08009EF0 +_08075244: + ldr r0, _08075294 @ =gPlayerState + adds r0, #0x39 + ldrb r0, [r0] + movs r1, #0 + cmp r0, #0 + bne _08075252 + movs r1, #2 +_08075252: + movs r0, #0x5b + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08075270 + ldr r0, _08075298 @ =gPlayerEntity + adds r1, r4, #0 + bl CopyPosition + adds r0, r4, #0 + adds r1, r6, #0 + bl StartCutscene +_08075270: + ldr r4, _08075298 @ =gPlayerEntity + movs r1, #0xe + rsbs r1, r1, #0 + movs r2, #0x1c + rsbs r2, r2, #0 + adds r0, r4, #0 + bl CreateSpeechBubbleSleep + str r0, [r4, #0x6c] + cmp r0, #0 + beq _0807528C + movs r1, #3 + bl SetDefaultPriority +_0807528C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08075290: .4byte script_08009EF0 +_08075294: .4byte gPlayerState +_08075298: .4byte gPlayerEntity + .syntax divided diff --git a/asm/non_matching/playerItemSword/sub_080A7A84.inc b/asm/non_matching/playerItemSword/sub_080A7A84.inc index b9593ac8..319ab249 100644 --- a/asm/non_matching/playerItemSword/sub_080A7A84.inc +++ b/asm/non_matching/playerItemSword/sub_080A7A84.inc @@ -88,7 +88,7 @@ _080A7AEC: bne _080A7B4C ldr r0, _080A7B44 @ =gPlayerEntity ldr r1, _080A7B48 @ =0x00000119 - bl sub_0800449C + bl SoundReqClipped b _080A7B54 .align 2, 0 _080A7B44: .4byte gPlayerEntity @@ -96,7 +96,7 @@ _080A7B48: .4byte 0x00000119 _080A7B4C: ldr r0, _080A7B90 @ =gPlayerEntity movs r1, #0x74 - bl sub_0800449C + bl SoundReqClipped _080A7B54: movs r0, #0xf movs r1, #0x1a diff --git a/asm/non_matching/sub_0804BF38.inc b/asm/non_matching/sub_0804BF38.inc index 76232201..0072ac3b 100644 --- a/asm/non_matching/sub_0804BF38.inc +++ b/asm/non_matching/sub_0804BF38.inc @@ -96,7 +96,7 @@ _0804BFE0: _0804BFE8: ldrh r0, [r4, #0xa] ldrh r1, [r4, #0xc] - bl sub_08080964 + bl InitScreenShake ldrh r0, [r4, #0xe] bl SoundReq pop {r3, r4, r5} diff --git a/asm/object10.s b/asm/object10.s index b1aad4e8..33333b8e 100644 --- a/asm/object10.s +++ b/asm/object10.s @@ -142,7 +142,7 @@ sub_080848C8: @ 0x080848C8 lsls r0, r1, #0x10 cmp r0, #0 beq _0808493C - ldr r0, _0808498C @ =gUnk_03004040 + ldr r0, _0808498C @ =gPlayerClones ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r1, r1, r0 @@ -182,7 +182,7 @@ _0808496A: _08084980: .4byte gPlayerState _08084984: .4byte gUnk_08120574 _08084988: .4byte gPlayerEntity -_0808498C: .4byte gUnk_03004040 +_0808498C: .4byte gPlayerClones _08084990: .4byte 0x00000315 _08084994: cmp r0, #4 @@ -195,7 +195,7 @@ _08084994: adds r2, #0x38 ldrb r2, [r2] bl sub_08000152 - ldr r1, _080849C0 @ =gUnk_03004040 + ldr r1, _080849C0 @ =gPlayerClones ldrb r0, [r4, #0xa] lsls r0, r0, #2 adds r0, r0, r1 @@ -205,7 +205,7 @@ _08084994: b _080849D6 .align 2, 0 _080849BC: .4byte 0x00000315 -_080849C0: .4byte gUnk_03004040 +_080849C0: .4byte gPlayerClones _080849C4: ldrb r2, [r4, #0x18] lsls r1, r2, #0x1e @@ -246,7 +246,7 @@ _080849F6: beq _08084A04 b _08084AF8 _08084A04: - ldr r0, _08084A40 @ =gUnk_03004040 + ldr r0, _08084A40 @ =gPlayerClones ldrb r1, [r4, #0xa] lsls r1, r1, #2 adds r1, r1, r0 @@ -276,7 +276,7 @@ _08084A04: b _08084AF8 .align 2, 0 _08084A3C: .4byte gPlayerState -_08084A40: .4byte gUnk_03004040 +_08084A40: .4byte gPlayerClones _08084A44: .4byte gPlayerEntity _08084A48: adds r0, r4, #0 @@ -585,7 +585,7 @@ _08084CA8: .4byte gPlayerState sub_08084CAC: @ 0x08084CAC push {r4, r5, r6, r7, lr} adds r5, r0, #0 - ldr r6, _08084D18 @ =gUnk_03004040 + ldr r6, _08084D18 @ =gPlayerClones ldrb r0, [r5, #0xa] lsls r0, r0, #2 adds r0, r0, r6 @@ -636,7 +636,7 @@ sub_08084CAC: @ 0x08084CAC orrs r0, r1 b _08084D30 .align 2, 0 -_08084D18: .4byte gUnk_03004040 +_08084D18: .4byte gPlayerClones _08084D1C: .4byte gUnk_080B4468 _08084D20: .4byte gRoomControls _08084D24: diff --git a/asm/pressurePlate.s b/asm/pressurePlate.s index a001c65a..37a2339d 100644 --- a/asm/pressurePlate.s +++ b/asm/pressurePlate.s @@ -250,7 +250,7 @@ _080889CA: ands r0, r1 cmp r0, #0 beq _08088A3A - ldr r6, _08088A4C @ =gUnk_03004040 + ldr r6, _08088A4C @ =gPlayerClones ldr r1, [r6] adds r0, r4, #0 bl sub_080177A0 @@ -305,4 +305,4 @@ _08088A3A: _08088A40: .4byte gPlayerEntity _08088A44: .4byte gUnk_08120BEC _08088A48: .4byte gPlayerState -_08088A4C: .4byte gUnk_03004040 +_08088A4C: .4byte gPlayerClones diff --git a/asm/stairsInteract.s b/asm/stairsInteract.s deleted file mode 100644 index 025c0ec3..00000000 --- a/asm/stairsInteract.s +++ /dev/null @@ -1,129 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_080731D8 -sub_080731D8: @ 0x080731D8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - movs r2, #0 - strb r0, [r4, #0x10] - movs r1, #0 - movs r0, #0x40 - strh r0, [r4, #0x24] - strb r1, [r4, #0x14] - ldrh r1, [r4, #0x2e] - movs r5, #0x10 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r1 - movs r7, #8 - orrs r0, r7 - strh r0, [r4, #0x2e] - strh r2, [r4, #0x2c] - ldr r6, _08073214 @ =gPlayerState - adds r0, r6, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - bne _08073218 - movs r0, #1 - strb r0, [r4, #0xd] - b _0807329A - .align 2, 0 -_08073214: .4byte gPlayerState -_08073218: - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #3 - strb r0, [r4, #0xd] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x7e - strh r0, [r1] - ldrh r0, [r4, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #0x70 - movs r2, #1 - movs r3, #0 - bl CreateObjectWithParent - str r0, [r4, #0x54] - adds r0, r6, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #7 - bne _08073270 - ldrh r1, [r4, #0x32] - adds r0, r5, #0 - ands r0, r1 - adds r0, #8 - strh r0, [r4, #0x32] - ldrh r1, [r4, #0x2e] - adds r0, r5, #0 - ands r0, r1 - strh r0, [r4, #0x2e] - strb r7, [r4, #0x15] - movs r0, #2 - strb r0, [r4, #0x14] - ldr r0, _0807326C @ =0x00000187 - bl SoundReq - b _08073294 - .align 2, 0 -_0807326C: .4byte 0x00000187 -_08073270: - ldrh r1, [r4, #0x32] - adds r0, r5, #0 - ands r0, r1 - adds r0, #2 - strh r0, [r4, #0x32] - ldrh r1, [r4, #0x2e] - adds r0, r5, #0 - ands r0, r1 - adds r0, #0xf - strh r0, [r4, #0x2e] - movs r0, #0x18 - strb r0, [r4, #0x15] - movs r0, #6 - strb r0, [r4, #0x14] - movs r0, #0xc4 - lsls r0, r0, #1 - bl SoundReq -_08073294: - adds r0, r4, #0 - bl sub_08066DE4 -_0807329A: - ldr r2, _080732AC @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080732B4 - ldr r0, _080732B0 @ =0x00000404 - b _080732B8 - .align 2, 0 -_080732AC: .4byte gPlayerState -_080732B0: .4byte 0x00000404 -_080732B4: - movs r0, #0x82 - lsls r0, r0, #1 -_080732B8: - strh r0, [r2, #8] - ldr r1, _080732CC @ =gRoomControls - movs r0, #0 - str r0, [r1, #0x30] - bl sub_0807A108 - bl ResetPlayer - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080732CC: .4byte gRoomControls diff --git a/data/data_0811B9E0.s b/data/data_0811B9E0.s deleted file mode 100644 index fed89541..00000000 --- a/data/data_0811B9E0.s +++ /dev/null @@ -1,69 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_0811BC08:: @ 0811BC08 - .4byte sub_08073468 - .4byte sub_080734D4 - .4byte sub_08073504 - .4byte sub_08073584 - .4byte sub_0807379C - .4byte sub_080737BC - .4byte sub_0807380C - .4byte sub_08073884 - -gUnk_0811BC28:: @ 0811BC28 - .incbin "data_0811B9E0/gUnk_0811BC28.bin" - -gUnk_0811BC30:: @ 0811BC30 - .incbin "data_0811B9E0/gUnk_0811BC30.bin" - -gUnk_0811BC38:: @ 0811BC38 - .incbin "data_0811B9E0/gUnk_0811BC38.bin" - -gUnk_0811BC40:: @ 0811BC40 - .incbin "data_0811B9E0/gUnk_0811BC40.bin" - -gUnk_0811BC48:: @ 0811BC48 - .4byte sub_08073924 - .4byte sub_08073968 - .4byte sub_080739EC - .4byte sub_08073A94 - .4byte sub_08073B8C - .4byte sub_08073C30 - -gUnk_0811BC60:: @ 0811BC60 - .4byte sub_08073C80 - .4byte sub_08073D20 - .4byte sub_08073F04 - .4byte sub_08073F4C - .4byte sub_08073FD0 - .4byte sub_08074018 - .4byte sub_08074060 - .4byte sub_080740D8 - -gUnk_0811BC80:: @ 0811BC80 - .incbin "data_0811B9E0/gUnk_0811BC80.bin" - -gUnk_0811BC88:: @ 0811BC88 - .4byte sub_08074C68 - .4byte sub_08074CF8 - .4byte sub_08074F00 - .4byte sub_080750F4 - -gUnk_0811BC98:: @ 0811BC98 - .4byte sub_08074F1C - .4byte sub_08074F2C - .4byte sub_08074F44 - .4byte sub_08074F8C - .4byte sub_08074FEC - .4byte sub_0807501C - .4byte sub_0807508C - -gUnk_0811BCB4:: @ 0811BCB4 - .4byte sub_08075110 - .4byte sub_0807513C - .4byte sub_0807518C - .4byte sub_080751B4 diff --git a/data/data_0811BE38.s b/data/data_0811BE38.s index 2dc78e95..5a8aebd2 100644 --- a/data/data_0811BE38.s +++ b/data/data_0811BE38.s @@ -90,52 +90,52 @@ gUnk_0811C118:: @ 0811C118 .incbin "data_0811BE38/gUnk_0811C118.bin" gUnk_0811C120:: @ 0811C120 - .4byte nullsub_112 - .4byte sub_08074200 + .4byte SurfaceAction_DoNothing + .4byte SurfaceAction_Pit .4byte 00000000 .4byte 00000000 - .4byte sub_0807422C - .4byte sub_08074238 - .4byte sub_080742AC - .4byte sub_080742E4 - .4byte sub_08074314 - .4byte sub_08074338 - .4byte sub_0807435C - .4byte sub_08074380 - .4byte sub_08074638 - .4byte sub_08074B4C - .4byte sub_08074B74 - .4byte sub_08074BA0 - .4byte sub_08074BCC - .4byte sub_08074678 - .4byte nullsub_112 - .4byte nullsub_112 - .4byte sub_080743D4 - .4byte sub_0807441C - .4byte sub_0807450C - .4byte sub_08074584 - .4byte sub_080745B4 - .4byte sub_0807479C - .4byte sub_080748C4 - .4byte sub_080748DC - .4byte sub_08074918 + .4byte SurfaceAction_SlopeGndGndVertical + .4byte SurfaceAction_SlopeGndGndHorizontal + .4byte SurfaceAction_6 + .4byte SurfaceAction_7 + .4byte SurfaceAction_MinishDoorFront + .4byte SurfaceAction_MinishDoorBack + .4byte SurfaceAction_A + .4byte SurfaceAction_B + .4byte SurfaceAction_SlopeGndWater + .4byte SurfaceAction_D + .4byte SurfaceAction_E + .4byte SurfaceAction_F + .4byte SurfaceAction_10 + .4byte SurfaceAction_Swamp + .4byte SurfaceAction_DoNothing + .4byte SurfaceAction_DoNothing + .4byte SurfaceAction_14 + .4byte SurfaceAction_CloneTile + .4byte SurfaceAction_16 + .4byte SurfaceAction_Ice + .4byte SurfaceAction_ShallowWater + .4byte SurfaceAction_Water + .4byte SurfaceAction_Button + .4byte SurfaceAction_1B + .4byte SurfaceAction_1C .4byte 00000000 - .4byte sub_0807496C + .4byte SurfaceAction_Ladder .4byte 00000000 - .4byte sub_08074A48 - .4byte sub_0807450C - .4byte nullsub_504 - .4byte sub_080742AC - .4byte sub_080742AC - .4byte sub_08074A9C - .4byte sub_08074AF4 - .4byte sub_08074B18 - .4byte sub_0807422C - .4byte sub_08074238 - .4byte sub_080749D4 - .4byte sub_0807493C - .4byte sub_080749A8 - .4byte sub_08074A9C + .4byte SurfaceAction_20 + .4byte SurfaceAction_16 + .4byte SurfaceAction_22 + .4byte SurfaceAction_6 + .4byte SurfaceAction_6 + .4byte SurfaceAction_Dust + .4byte SurfaceAction_26 + .4byte SurfaceAction_Hole + .4byte SurfaceAction_SlopeGndGndVertical + .4byte SurfaceAction_SlopeGndGndHorizontal + .4byte SurfaceAction_AutoLadder + .4byte SurfaceAction_ClimbWall + .4byte SurfaceAction_2C + .4byte SurfaceAction_Dust gUnk_0811C1D8:: @ 0811C1D8 .4byte gUnk_0811C240 diff --git a/include/asm.h b/include/asm.h index 99ad082a..360c0fb1 100644 --- a/include/asm.h +++ b/include/asm.h @@ -6,8 +6,9 @@ struct Entity_; extern u32 Random(void); -extern void sub_08000152(u32); +extern void sub_08000152(u32, u32, u32); extern void SetTile(u32 index, u32 position, u32 layer); +extern u32 sub_080002D0(struct Entity_*); extern void sub_08001242(struct Entity_*); extern void sub_08001290(struct Entity_*, u32); extern void sub_08001324(struct Entity_*); @@ -15,11 +16,12 @@ extern u32 sub_08002632(struct Entity_*); extern u32 GravityUpdate(struct Entity_*, u32); extern u32 sub_080043E8(struct Entity_*); extern void sub_08004484(struct Entity_*, struct Entity_*); -extern u32 sub_080045D4(s16, s16, u32, u32); +extern u32 sub_080045D4(u32, u32, u32, u32); extern u32 sub_080045DA(s32, s32); extern void sub_08004596(struct Entity_*, u32); extern u32 sub_080045B4(struct Entity_*, u32, u32); extern u32 EntityInRectRadius(struct Entity_*, struct Entity_*, u32, u32); extern void UpdateAnimationVariableFrames(struct Entity_*, u32); +extern u32 sub_080086B4(u32, u32, u8*); #endif // ASM_H diff --git a/include/functions.h b/include/functions.h index 23e0a7cc..536b36ed 100644 --- a/include/functions.h +++ b/include/functions.h @@ -145,7 +145,7 @@ extern bool32 LoadSwapGFX(Entity*, u16, u32); extern u32 sub_08016A30(Entity*); extern void sub_08077728(); extern void sub_0807AEE4(); -extern u32 sub_08078EFC(); +extern u32 RunQueuedAction(); extern void sub_0807921C(); extern void UpdateFloorType(); extern void sub_08079938(); diff --git a/include/player.h b/include/player.h index 943d7f5e..f664b6f3 100644 --- a/include/player.h +++ b/include/player.h @@ -34,7 +34,7 @@ enum PlayerActions { PLAYER_INHOLE, PLAYER_08072C9C, PLAYER_08074C44, - PLAYER_08072F34, + PLAYER_CLIMB, PLAYER_USEENTRANCE, PLAYER_PARACHUTE, }; @@ -99,12 +99,23 @@ enum PlayerFlags { PL_DROWNING = (1 << 2), PL_NO_CAP = (1 << 3), PL_USE_PORTAL = (1 << 5), + PL_HIDDEN = (1 << 6), PL_MINISH = (1 << 7), + PL_FALLING = (1 << 9), PL_BURNING = (1 << 10), + PL_FROZEN = (1 << 11), + PL_DRUGGED = (1 << 14), PL_ROLLING = (1 << 18), + PL_TRAPPED = (1 << 19), PL_IN_HOLE = (1 << 20), + PL_RELEASED = (1 << 21), + PL_CLONING = (1 << 22), PL_USE_LANTERN = (1 << 23), + PL_PARACHUTE = (1 << 24), + PL_MINECART = (1 << 26), + PL_SWORD_THRUST = (1 << 27), PL_USE_OCARINA = (1 << 28), + PL_CLIMBING = (1 << 29), }; enum SurfaceType { @@ -125,7 +136,7 @@ enum SurfaceType { SURFACE_E, SURFACE_F, SURFACE_10, - SURFACE_11, + SURFACE_SWAMP, SURFACE_DOOR, SURFACE_DOOR_13, SURFACE_14, @@ -137,9 +148,9 @@ enum SurfaceType { SURFACE_BUTTON, SURFACE_1B, SURFACE_1C, - SURFACE_1D, + SURFACE_1D, // nulled SURFACE_LADDER, - SURFACE_1F, + SURFACE_1F, // nulled SURFACE_20, SURFACE_21, SURFACE_22, @@ -165,7 +176,7 @@ typedef struct { /*0x08*/ u16 animation; /*0x0a*/ u8 field_0xa; /*0x0b*/ u8 keepFacing; - /*0x0c*/ u8 playerAction; + /*0x0c*/ u8 queued_action; /*0x0d*/ u8 field_0xd; /*0x0e*/ u8 field_0xe; /*0x0f*/ u8 hurtBlinkSpeed; @@ -188,7 +199,8 @@ typedef struct { /*0x2c*/ Entity* item; /*0x30*/ u32 flags; /*0x34*/ u8 field_0x34[2]; - /*0x36*/ s16 field_0x36; + /*0x36*/ u8 field_0x36; + /*0x37*/ u8 field_0x37; /*0x38*/ u8 field_0x38; /*0x39*/ u8 field_0x39; /*0x3a*/ u8 field_0x3a; diff --git a/include/room.h b/include/room.h index 8a837b91..64729622 100644 --- a/include/room.h +++ b/include/room.h @@ -173,7 +173,7 @@ typedef enum { } TileEntityType; extern void SetTileType(u32, u32, u32); -extern void sub_08080964(u32 time, u32 magnitude); // shake screen +extern void InitScreenShake(u32 time, u32 magnitude); extern void* GetCurrentRoomProperty(u32); extern void LoadRoomTileEntities(); diff --git a/linker.ld b/linker.ld index 6e10500c..225731fc 100644 --- a/linker.ld +++ b/linker.ld @@ -225,7 +225,7 @@ SECTIONS { . = 0x00004010; gUnk_03004010 = .; . = 0x00004020; gUnk_03004020 = .; . = 0x00004030; gUnk_03004030 = .; - . = 0x00004040; gUnk_03004040 = .; + . = 0x00004040; gPlayerClones = .; . = 0x0000404C; SoundMainRAM_Buffer = .; . = 0x0000404D; gUnk_0300404D = .; . = 0x000043D0; gSoundInfo = .; @@ -657,8 +657,7 @@ SECTIONS { src/playerItem/playerItemPacciCane.o(.text); asm/code_0807059C.o(.text); src/player.o(.text); - asm/stairsInteract.o(.text); - asm/code_080732D0.o(.text); + src/item.o(.text); src/item/itemDebug.o(.text); src/item/itemSword.o(.text); src/item/itemLantern.o(.text); @@ -1382,7 +1381,6 @@ SECTIONS { data/const/playerItem/playerItem12.o(.rodata); data/const/playerItem/playerItemPacciCane.o(.rodata); src/player.o(.rodata); - data/data_0811B9E0.o(.rodata); src/item.o(.rodata); data/const/item/itemSword.o(.rodata); data/const/item/itemLantern.o(.rodata); diff --git a/src/code_0808091C.c b/src/code_0808091C.c index ab3ceb11..2b4dceb0 100644 --- a/src/code_0808091C.c +++ b/src/code_0808091C.c @@ -55,7 +55,7 @@ u32* GetLayerByIndex(u32 param_1) { } } -void sub_08080964(u32 time, u32 magnitude) { +void InitScreenShake(u32 time, u32 magnitude) { gRoomControls.screenShakeTime = time; gRoomControls.screenShakeMagnitude = magnitude & 7; } diff --git a/src/collision.c b/src/collision.c index 3dac2783..1c22f7d6 100644 --- a/src/collision.c +++ b/src/collision.c @@ -7,6 +7,7 @@ #include "functions.h" #include "enemy.h" #include "effects.h" +#include "object.h" extern u8 gCollidableCount; extern u8 gUnk_080B3740[]; @@ -30,7 +31,7 @@ extern ColSettings gCollisionMtx[173 * 34]; extern void gDoCollision(void); u32 sub_08081420(Entity*); -extern void sub_0800449C(Entity*, u32); +extern void SoundReqClipped(Entity*, u32); s32 sub_08018308(Entity*, Entity*, u32, ColSettings*); void sub_08079D84(void); void sub_080180BC(Entity*, Entity*); @@ -232,7 +233,7 @@ s32 sub_08017874(Entity* a, Entity* b) { if (newDmg <= 0) newDmg = 1; v5 = ModHealth(-newDmg); - sub_0800449C(a, 122); + SoundReqClipped(a, 122); } else { v6 = b->damage; if (b->kind == 8) { @@ -248,9 +249,9 @@ s32 sub_08017874(Entity* a, Entity* b) { v5 = a->health - v6; if (a->kind == 3) { if ((a->field_0x6c.HALF.HI & 1) != 0) - sub_0800449C(a, 295); + SoundReqClipped(a, 295); else - sub_0800449C(a, 254); + SoundReqClipped(a, 254); } } if (v5 <= 0) { @@ -389,11 +390,11 @@ s32 sub_08017B58(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) } s32 sub_08017BBC(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { - if ((gPlayerState.flags & (0x1 | 0x80 | 0x400 | 0x1000)) == 0) { - Entity* e = CreateObject(66, 1, 0); + if ((gPlayerState.flags & (PL_BUSY | PL_MINISH | PL_BURNING | 0x1000)) == 0) { + Entity* e = CreateObject(OBJECT_42, 1, 0); if (e != NULL) { e->child = org; - gPlayerState.flags |= 0x400; + gPlayerState.flags |= PL_BURNING; org->animationState = (direction ^ 0x10) >> 2; } } @@ -408,12 +409,12 @@ s32 sub_08017BBC(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) } s32 sub_08017C40(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { - if ((gPlayerState.flags & (0x1 | 0x80 | 0x800 | 0x1000)) == 0 && gPlayerState.playerAction == 0) { + if ((gPlayerState.flags & (PL_BUSY | PL_MINISH | PL_FROZEN | 0x1000)) == 0 && gPlayerState.queued_action == 0) { if (org->action == 1 || org->action == 24) { tgt->damage = 4; org->health = sub_08017874(org, tgt); - gPlayerState.flags = 0x800; - gPlayerState.playerAction = 13; + gPlayerState.flags = PL_FROZEN; + gPlayerState.queued_action = PLAYER_FROZEN; } } org->knockbackDuration = 12; @@ -533,7 +534,7 @@ s32 sub_08017F40(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) if (org == &gPlayerEntity) { if (sub_08079F8C() && #ifdef EU - (gPlayerState.flags & 0x81) == 0 && + (gPlayerState.flags & (PL_MINISH | PL_BUSY)) == 0 && #else (gPlayerState.flags & PL_MINISH) == 0 && #endif @@ -622,18 +623,18 @@ s32 sub_080180E8(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) s32 sub_08018168(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { if (tgt->field_0x43 == 0) { if (org == &gPlayerEntity) { - if (((sub_08079F8C() != 0) && + if (sub_08079F8C() && #ifdef EU - ((gPlayerState.flags & 0x81) == 0)) && + (gPlayerState.flags & (PL_MINISH | PL_BUSY)) == 0 && #else - ((gPlayerState.flags & 0x40080) == 0)) && + (gPlayerState.flags & (PL_MINISH | PL_ROLLING)) == 0 && #endif - (gPlayerState.swimState == 0)) { + gPlayerState.swimState == 0) { gPlayerState.field_0x1a[0] |= 0x80; gPlayerState.field_0xa |= 0x80; gPlayerState.flags |= 0x100; gPlayerState.jumpStatus = 0; - gPlayerEntity.flags &= ~0x80; + COLLISION_OFF(&gPlayerEntity); gPlayerEntity.spriteRendering.b3 = tgt->spriteRendering.b3; gPlayerEntity.spriteOrientation.flipY = tgt->spriteOrientation.flipY; gPlayerEntity.iframes = 0xff; @@ -749,7 +750,7 @@ s32 sub_08018308(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) } } else if (org->id == 3) { if (settings->_9) { - sub_0800449C(tgt, 254); + SoundReqClipped(tgt, 254); } } else if (org->id == 5) { gPlayerEntity.iframes = 0x80; diff --git a/src/enemy/beetle.c b/src/enemy/beetle.c index b6988f6c..de27657c 100644 --- a/src/enemy/beetle.c +++ b/src/enemy/beetle.c @@ -213,7 +213,7 @@ void sub_08021AD8(Entity* this) { } void sub_08021B64(Entity* this) { - if (gPlayerState.flags & 4) { + if (gPlayerState.flags & PL_DROWNING) { this->action = 3; this->z.WORD = 0; InitializeAnimation(this, 2); diff --git a/src/enemy/gibdo.c b/src/enemy/gibdo.c index 912f0f61..7102f85d 100644 --- a/src/enemy/gibdo.c +++ b/src/enemy/gibdo.c @@ -21,7 +21,7 @@ void sub_08037A14(); extern void sub_0804A4E4(Entity*, Entity*); extern Entity* sub_08049DF4(u32); u32 sub_0804A044(Entity*, Entity*, u32); -extern void sub_0800449C(Entity*, u32); +extern void SoundReqClipped(Entity*, u32); extern void (*const gGibdo[6])(Entity*); extern void (*const gUnk_080CF2AC[9])(Entity*); @@ -347,8 +347,8 @@ void sub_08037A58(Entity* this) { } void sub_08037ACC(Entity* this) { - gPlayerState.flags &= 0xFFFFFEFF; - gPlayerEntity.flags |= 0x80; + gPlayerState.flags &= ~0x100; + COLLISION_ON(&gPlayerEntity); gPlayerEntity.iframes = 0x1e; gPlayerEntity.knockbackDirection = DirectionFromAnimationState(this->animationState); gPlayerEntity.knockbackDuration = 4; @@ -359,7 +359,7 @@ void sub_08037B10(Entity* this) { u32 h; gPlayerEntity.iframes = 0xc; h = ModHealth(-8); - sub_0800449C(&gPlayerEntity, 0x7a); + SoundReqClipped(&gPlayerEntity, 0x7a); if (h == 0) { sub_08037A58(this); this->field_0x76.HALF.LO = 0xf0; diff --git a/src/enemy/helmasaur.c b/src/enemy/helmasaur.c index 494b577b..9539b36d 100644 --- a/src/enemy/helmasaur.c +++ b/src/enemy/helmasaur.c @@ -186,7 +186,7 @@ void sub_0802BE18(Entity* this) { void sub_0802BE48(Entity* this) { if (!sub_080AEFE0(this)) { sub_0802C218(this); - sub_08080964(8, 0); + InitScreenShake(8, 0); } else { GetNextFrame(this); sub_0802C1CC(this); diff --git a/src/enemy/lakituCloud.c b/src/enemy/lakituCloud.c index f391c5ee..bb9e6b76 100644 --- a/src/enemy/lakituCloud.c +++ b/src/enemy/lakituCloud.c @@ -11,7 +11,7 @@ extern void (*const gUnk_080D0418[6])(Entity*); extern void (*const gUnk_080D0430[3])(Entity*); extern void (*const gUnk_080D043C[3])(Entity*); -extern void sub_0800449C(Entity*, u32); +extern void SoundReqClipped(Entity*, u32); extern void sub_0803CE14(Entity*); extern void sub_0803CE3C(Entity*); extern void sub_08079D84(void); @@ -56,7 +56,7 @@ void sub_0803CD40(Entity* this) { ModHealth(-2); - sub_0800449C(&gPlayerEntity, 122); + SoundReqClipped(&gPlayerEntity, 122); sub_08079D84(); sub_0803CE3C(this); diff --git a/src/enemy/mazaalBracelet.c b/src/enemy/mazaalBracelet.c index 2adfed33..584dd185 100644 --- a/src/enemy/mazaalBracelet.c +++ b/src/enemy/mazaalBracelet.c @@ -20,7 +20,7 @@ void sub_0803B798(void); void sub_0803BA8C(Entity*, u32); void sub_0803B724(Entity*); -extern void sub_0800449C(Entity*, u32); +extern void SoundReqClipped(Entity*, u32); void sub_0803A170(Entity*); void sub_0803A188(Entity*); @@ -434,7 +434,7 @@ void sub_0803A740(Entity* this) { this->actionDelay = 10; this->parent->field_0x7c.BYTES.byte1 |= 0x40; sub_0803B8E8(this, 0x13); - sub_08080964(10, 0); + InitScreenShake(10, 0); SoundReq(SFX_158); } } @@ -713,7 +713,7 @@ void sub_0803ACC0(Entity* this) { this->z.HALF.HI = 0; this->actionDelay = 0xc; this->subAction = 3; - sub_08080964(8, 0); + InitScreenShake(8, 0); SoundReq(SFX_158); sub_0803B804(this); } @@ -735,7 +735,7 @@ void sub_0803ACC0(Entity* this) { this->z.HALF.HI = 0; this->action = 0x1a; this->actionDelay = 0x3c; - sub_08080964(0x1e, 0); + InitScreenShake(0x1e, 0); SoundReq(SFX_158); sub_0803B804(this); return; @@ -859,7 +859,7 @@ void sub_0803AFE0(Entity* this) { this->actionDelay = 0xf0; *(u8*)&this->cutsceneBeh = 3; this->z.HALF.HI = 0; - sub_08080964(0xa0, 0); + InitScreenShake(0xa0, 0); SoundReq(SFX_158); } } @@ -931,7 +931,7 @@ void sub_0803B144(Entity* this) { this->action = 0x2a; InitializeAnimation(this, 0x16); sub_0803B8E8(this, 0x14); - sub_08080964(8, 0); + InitScreenShake(8, 0); } } @@ -1238,7 +1238,7 @@ void sub_0803B798(void) { void sub_0803B804(Entity* this) { gPlayerEntity.iframes = 30; ModHealth(-4); - sub_0800449C(&gPlayerEntity, 0x7a); + SoundReqClipped(&gPlayerEntity, 0x7a); } void sub_0803B824(Entity* this) { diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c index 553d5053..2b59e960 100644 --- a/src/enemy/mazaalHead.c +++ b/src/enemy/mazaalHead.c @@ -320,7 +320,7 @@ void sub_080342C8(Entity* this) { this->field_0x7c.HALF.HI = 0x708; this->field_0x7c.BYTES.byte1 = 0; this->field_0x80.HALF.HI = 0; - sub_08080964(0x1e, 0); + InitScreenShake(0x1e, 0); SoundReq(SFX_1A1); } } diff --git a/src/enemy/mazaalMacro.c b/src/enemy/mazaalMacro.c index ed28d6c8..64a25711 100644 --- a/src/enemy/mazaalMacro.c +++ b/src/enemy/mazaalMacro.c @@ -195,7 +195,7 @@ void sub_08034F70(Entity* this) { void sub_08034FA0(Entity* this) { if (0 < this->iframes) { this->child->iframes = this->iframes; - sub_08080964(0xc, 1); + InitScreenShake(0xc, 1); } switch (this->type2) { case 0: diff --git a/src/enemy/moldworm.c b/src/enemy/moldworm.c index 9ffd49fa..3a0425ef 100644 --- a/src/enemy/moldworm.c +++ b/src/enemy/moldworm.c @@ -1,7 +1,7 @@ #include "enemy.h" #include "functions.h" -extern void sub_0800449C(Entity*, u32); +extern void SoundReqClipped(Entity*, u32); extern bool32 sub_08023A38(u32); extern void sub_08023990(Entity*, u32, u32); extern void sub_08023A88(Entity*, u32); @@ -263,7 +263,7 @@ void sub_0802351C(Entity* this) { if (this->field_0x7c.BYTES.byte3 == 0) { if (this->type2 == 0) { gPlayerEntity.animationState = this->animationState & 7; - gPlayerState.flags |= 0x80000; + gPlayerState.flags |= PL_TRAPPED; PositionRelative(this, &gPlayerEntity, 0, gUnk_080CBC90[this->animationState & 7] << 0x10); gPlayerEntity.spriteOffsetY = -gUnk_080CBC90[this->animationState & 7]; } @@ -398,14 +398,14 @@ void sub_08023894(Entity* this) { this->parent->field_0x7c.BYTES.byte3 = 1; InitializeAnimation(this, this->animationState); if (this->parent->type2 == 0) { - gPlayerState.flags |= 0x200000; + gPlayerState.flags |= PL_RELEASED; gPlayerEntity.x.HALF.HI = this->x.HALF.HI; gPlayerEntity.y.HALF.HI = this->y.HALF.HI; gPlayerEntity.direction = DirectionRoundUp(GetFacingDirection(*(Entity**)&this->field_0x74, this)); gPlayerEntity.animationState = gPlayerEntity.direction >> 2; gPlayerEntity.iframes = 12; ModHealth(-0x10); - sub_0800449C(&gPlayerEntity, 0x7a); + SoundReqClipped(&gPlayerEntity, 0x7a); } } } diff --git a/src/enemy/octorokBoss.c b/src/enemy/octorokBoss.c index 23dca6d4..fb16b706 100644 --- a/src/enemy/octorokBoss.c +++ b/src/enemy/octorokBoss.c @@ -811,7 +811,7 @@ void OctorokBoss_Action1_ChargeAttack(Entity* this) { this->knockbackDirection = this->direction ^ 0x10; GET_HELPER(this)->fallingStonesTimer += 0x3c; OctorokBoss_SetAttackTimer(this); - sub_08080964(0x3c, 0); + InitScreenShake(0x3c, 0); SoundReq(SFX_158); SoundReq(SFX_14C); } @@ -946,7 +946,7 @@ void OctorokBoss_ExecuteAttackVacuum(Entity* this) { } } } else { - gPlayerState.flags &= 0xfffff7ff; + gPlayerState.flags &= ~PL_FROZEN; } } } @@ -1077,7 +1077,7 @@ void OctorokBoss_Burning_SubAction1(Entity* this) { this->field_0x46 = 0x200; this->knockbackDirection = this->direction ^ 0x10; GET_HELPER(this)->fallingStonesTimer += 0x1e; - sub_08080964(0x1e, 0); + InitScreenShake(0x1e, 0); SoundReq(SFX_158); SoundReq(SFX_14C); } diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index 54f43381..fc987dd7 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -5,7 +5,7 @@ #include "save.h" extern u32 sub_080002E0(u16, u32); -extern void sub_0800449C(Entity*, u32); +extern void SoundReqClipped(Entity*, u32); extern u32 sub_08049F1C(Entity*, Entity*, u32); extern u32 PlayerInRange(Entity*, u32, u32); extern void sub_080AEFB4(Entity*); @@ -809,7 +809,7 @@ NONMATCH("asm/non_matching/pesto/sub_08024E4C.inc", void sub_08024E4C(Entity* th ResetPlayer(); gPlayerState.flags |= 0x100; gPlayerState.field_0xa |= 0x80; - gPlayerState.playerAction = 0xe; + gPlayerState.queued_action = PLAYER_0807204C; gPlayerState.field_0x38 = 0x14; gPlayerState.field_0x39 = 1; *(u8*)&gPlayerState.field_0x3a = 0; @@ -821,7 +821,7 @@ NONMATCH("asm/non_matching/pesto/sub_08024E4C.inc", void sub_08024E4C(Entity* th this->field_0x86.HALF.HI++; player->iframes = 8; ModHealth(-2); - sub_0800449C(player, 0x7a); + SoundReqClipped(player, 0x7a); } } } @@ -830,10 +830,10 @@ END_NONMATCH void sub_08024F50(Entity* this) { gPlayerState.field_0xa = 0; - gPlayerState.flags &= 0xfffffeff; + gPlayerState.flags &= ~0x100; CopyPosition(this, &gPlayerEntity); gPlayerEntity.action = 1; - gPlayerEntity.flags |= 0x80; + COLLISION_ON(&gPlayerEntity); gPlayerEntity.iframes = -0x3c; gPlayerEntity.direction = gPlayerEntity.animationState << 2; gPlayerEntity.speed = 0; diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c index 926648bf..ee274ac7 100644 --- a/src/enemy/rupeeLike.c +++ b/src/enemy/rupeeLike.c @@ -233,7 +233,7 @@ void sub_080296C8(Entity* this) { void sub_080296D8(Entity* this) { gPlayerState.jumpStatus = 0x41; - gPlayerState.flags &= 0xffffffef; + gPlayerState.flags &= ~0x10; gPlayerEntity.flags |= 0x80; gPlayerEntity.zVelocity = 0x18000; gPlayerEntity.iframes = 0xa6; diff --git a/src/enemy/vaatiRebornEnemy.c b/src/enemy/vaatiRebornEnemy.c index c8f97752..f3ccf3bb 100644 --- a/src/enemy/vaatiRebornEnemy.c +++ b/src/enemy/vaatiRebornEnemy.c @@ -662,7 +662,7 @@ void VaatiRebornEnemyType1PreAction(Entity* this) { } if (0 < this->iframes) { SoundReq(0x127); - sub_08080964(0xc, 1); + InitScreenShake(0xc, 1); if (this->actionDelay == 0) this->actionDelay = 0x48; } diff --git a/src/enemy/vaatiTransfigured.c b/src/enemy/vaatiTransfigured.c index c9198d08..8c80bbbd 100644 --- a/src/enemy/vaatiTransfigured.c +++ b/src/enemy/vaatiTransfigured.c @@ -266,7 +266,7 @@ void VaatiTransfiguredType0Action3(Entity* this) { this->actionDelay = 0xc0; COLLISION_ON(this); SoundReq(SFX_14C); - sub_08080964(0x14, 4); + InitScreenShake(0x14, 4); break; case 1: if (--this->actionDelay == 0) { @@ -321,7 +321,7 @@ void VaatiTransfiguredType0Action3(Entity* this) { this->field_0x86.HALF.LO = 0; sub_080408EC(this); SoundReq(SFX_14C); - sub_08080964(0x1e, 4); + InitScreenShake(0x1e, 4); } else { if (this->field_0xf != 0) { if (--this->field_0xf == 0) { @@ -399,7 +399,7 @@ void VaatiTransfiguredType0Action4(Entity* this) { this->field_0xf = 1; } SoundReq(SFX_14C); - sub_08080964(0x1e, 4); + InitScreenShake(0x1e, 4); break; case 2: if (--this->actionDelay == 0) { @@ -1069,7 +1069,7 @@ void sub_080409B0(Entity* this) { } } else { if (((this->bitfield & 0x80) != 0) && (0 < this->iframes)) { - sub_08080964(0xc, 1); + InitScreenShake(0xc, 1); SoundReq(SFX_BOSS_HIT); } if ((this->bitfield == 0x8a) && (gPlayerState.field_0xa0[0] == 5)) { diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index d216ba7f..eef8e73e 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -475,7 +475,7 @@ void VaatiWrathType0ActionB(Entity* this) { this->actionDelay = 0xf0; this->health = 8; this->hitType = 0x38; - sub_08080964(0x14, 0); + InitScreenShake(0x14, 0); InitAnimationForceUpdate(this, 6); InitializeAnimation(((VaatiWrathHeapStruct*)this->myHeap)->type2, 0x16); } @@ -709,7 +709,7 @@ void sub_08041E78(Entity* this) { fx->x.HALF.HI += *temp++; fx->y.HALF.HI += *temp; fx->spritePriority.b0 = 3; - sub_08080964(4, 0); + InitScreenShake(4, 0); } } } diff --git a/src/enemy/wisp.c b/src/enemy/wisp.c index 111e4f04..6b399d2d 100644 --- a/src/enemy/wisp.c +++ b/src/enemy/wisp.c @@ -32,7 +32,7 @@ void sub_08033564(Entity* this) { this->spriteSettings.draw = FALSE; COLLISION_OFF(this); this->field_0x7c.HALF.LO = 0x27c; - gPlayerState.flags |= 0x4000; + gPlayerState.flags |= PL_DRUGGED; gSave.stats.effect = this->type + 1; gSave.stats.effectTimer = 600; if (this->type == 0) { diff --git a/src/enemyUtils.c b/src/enemyUtils.c index 6d8acd97..956ba639 100644 --- a/src/enemyUtils.c +++ b/src/enemyUtils.c @@ -1,6 +1,7 @@ #include "entity.h" #include "definitions.h" #include "functions.h" +#include "object.h" extern EnemyDefinition gEnemyDefinitions[]; @@ -46,7 +47,7 @@ bool32 EnemyInit(Entity* this) { if ((this->field_0x6c.HALF.HI & 0x20) != 0) { u32 uVar4 = gUnk_080D3E74[this->id >> 3] >> ((this->id & 7) << 1) & 3; if (uVar4 != 0) { - Entity* object = CreateObject(0xa9, uVar4 - 1, 0); + Entity* object = CreateObject(OBJECT_A9, uVar4 - 1, 0); if (object != NULL) { object->actionDelay = this->flags; object->field_0xf = this->spriteSettings.draw; diff --git a/src/interrupts.c b/src/interrupts.c index 0e42d94d..c2855c46 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -21,7 +21,7 @@ extern u16* gUnk_0200B650; extern u8 gUpdateVisibleTiles; extern u8 gUnk_03003DF0[]; extern u8 gUnk_03003BE0; -extern Entity* gUnk_03004040[3]; +extern Entity* gPlayerClones[3]; extern u16 gUnk_080B2CD8[]; extern u32 gUnk_03000FBC; @@ -181,16 +181,16 @@ void WaitForNextFrame(void) { void PlayerUpdate(Entity* this) { if (gSave.stats.effect != 0) - gPlayerState.flags |= 0x4000; + gPlayerState.flags |= PL_DRUGGED; else - gPlayerState.flags &= ~0x4000; + gPlayerState.flags &= ~PL_DRUGGED; if (CheckDontUpdate(this) == 0) { - if ((gPlayerState.flags & 0x80000) != 0) { + if (gPlayerState.flags & PL_TRAPPED) { sub_08077B20(); - if ((gPlayerState.flags & 0x200000) != 0) { - gPlayerState.playerAction = PLAYER_ROLL; - gPlayerState.flags &= ~0x80000; + if (gPlayerState.flags & PL_RELEASED) { + gPlayerState.queued_action = PLAYER_ROLL; + gPlayerState.flags &= ~PL_TRAPPED; gPlayerState.hurtBlinkSpeed = 240; COLLISION_ON(this); } else { @@ -223,10 +223,10 @@ void HandlePlayerLife(Entity* this) { if ((gPlayerEntity.bitfield & 0x80) && (gPlayerEntity.iframes > 0)) SoundReq(SFX_86); - gPlayerState.flags &= ~(0x2000000 | 0x200); + gPlayerState.flags &= ~(0x2000000 | PL_FALLING); if (gPlayerState.flags & PL_BURNING) ResetPlayer(); - if ((gPlayerState.flags & 0x400000) && !gPlayerState.field_0xa0[0]) + if ((gPlayerState.flags & PL_CLONING) && !gPlayerState.field_0xa0[0]) sub_0807A108(); if (sub_08079B24() == 0) sub_08079708(this); @@ -300,7 +300,7 @@ void sub_080171F0(void) { gPlayerState.flags &= ~2; sub_080028E0(&gPlayerEntity); - if (gPlayerState.flags & 0x400000) + if (gPlayerState.flags & PL_CLONING) gUnk_0200AF00.filler25[10] = 1; sub_08078180(); @@ -315,13 +315,13 @@ void sub_080171F0(void) { gPlayerState.field_0x3f = 0; sub_0807B0C8(); - if (gPlayerState.flags & 0x400000) - gUnk_03004040[0]->spriteOffsetY = gUnk_03004040[1]->spriteOffsetY = gUnk_03004040[2]->spriteOffsetY = 0; + if (gPlayerState.flags & PL_CLONING) + gPlayerClones[0]->spriteOffsetY = gPlayerClones[1]->spriteOffsetY = gPlayerClones[2]->spriteOffsetY = 0; - if (gPlayerEntity.action == PLAYER_08072F34) - gPlayerState.flags |= 0x20000000; + if (gPlayerEntity.action == PLAYER_CLIMB) + gPlayerState.flags |= PL_CLIMBING; else - gPlayerState.flags &= ~0x20000000; + gPlayerState.flags &= ~PL_CLIMBING; sub_0807A8D8(&gPlayerEntity); if (gPlayerState.jumpStatus & 0xc0) diff --git a/src/item.c b/src/item.c index 8ba2e848..a88ae226 100644 --- a/src/item.c +++ b/src/item.c @@ -10,3 +10,7 @@ void (*const gItemFunctions[])(ItemBehavior*, u32) = { ItemPegasusBoots, ItemDebug, ItemOcarina, ItemDebug, ItemDebug, ItemDebug, ItemTryPickupObject, ItemJarEmpty, ItemJarEmpty, ItemJarEmpty, ItemJarEmpty, }; + +void sub_080752E8(ItemBehavior* behavior, u32 arg1) { + gItemFunctions[behavior->behaviorID](behavior, arg1); +} diff --git a/src/item/itemBoomerang.c b/src/item/itemBoomerang.c index b443d6fb..a5505136 100644 --- a/src/item/itemBoomerang.c +++ b/src/item/itemBoomerang.c @@ -3,7 +3,7 @@ extern void (*const gUnk_0811BD78[])(ItemBehavior*, u32); -extern void sub_08078F60(void); +extern void ResetPlayerVelocity(void); void ItemBoomerang(ItemBehavior* this, u32 arg1) { gUnk_0811BD78[this->stateID](this, arg1); @@ -24,7 +24,7 @@ void sub_08075D2C(ItemBehavior* this, u32 arg1) { void sub_08075D88(ItemBehavior* this, u32 arg1) { if ((gPlayerState.field_0x3[1] & 0x80) == 0) { if (((this->behaviorID == 0xc) && ((gPlayerState.field_0xa & 0x80) != 0)) && ((this->field_0x5[9] & 2) != 0)) { - sub_08078F60(); + ResetPlayerVelocity(); return; } UpdateItemAnim(this); diff --git a/src/item/itemLantern.c b/src/item/itemLantern.c index 2903b2de..88245ad8 100644 --- a/src/item/itemLantern.c +++ b/src/item/itemLantern.c @@ -1,6 +1,7 @@ #include "item.h" #include "functions.h" #include "audio.h" +#include "object.h" extern void (*const gUnk_0811BD68[])(ItemBehavior*, u32); @@ -20,22 +21,21 @@ void sub_08075A0C(ItemBehavior* this, u32 arg1) { u32 itemSlot; s8* tmp; itemSlot = IsItemEquipped(this->behaviorID); - if (gPlayerState.heldObject != 0 || gPlayerState.playerAction == 0x18 || gPlayerState.jumpStatus != 0 || + if (gPlayerState.heldObject != 0 || gPlayerState.queued_action == PLAYER_ROLL || gPlayerState.jumpStatus != 0 || gPlayerState.item != NULL || (gPlayerState.flags & PL_MINISH) != 0) { ForceEquipItem(0xf, itemSlot); - gPlayerState.flags &= 0xff7fffff; + gPlayerState.flags &= ~PL_USE_LANTERN; ForceEquipItem(0xf, itemSlot); sub_08077E78(this, arg1); } else { - this->field_0x5[4] |= 0x80; sub_08077D38(this, arg1); sub_08077BD4(this); sub_0806F948(&gPlayerEntity); this->behaviorID = 0x10; - ForceEquipItem(0x10, itemSlot); + ForceEquipItem(ITEM_LANTERN_ON, itemSlot); tmp = &gUnk_08126EEC[gPlayerEntity.animationState & 6]; - object = CreateObjectWithParent(&gPlayerEntity, 0x45, 1, 0); + object = CreateObjectWithParent(&gPlayerEntity, OBJECT_45, 1, 0); if (object != NULL) { object->spriteVramOffset = gPlayerEntity.spriteVramOffset; object->x.HALF.HI = tmp[0] + object->x.HALF.HI; @@ -54,7 +54,7 @@ void sub_08075ADC(ItemBehavior* this, u32 arg1) { sub_08079D48() == 0) { this->field_0xf = 0; this->stateID += 1; - gPlayerState.flags |= 0x800000; + gPlayerState.flags |= PL_USE_LANTERN; bVar1 = 8 >> arg1; gPlayerState.field_0x3[1] = gPlayerState.field_0x3[1] & ~((bVar1 << 4) | bVar1); bVar1 = ~bVar1; @@ -77,11 +77,11 @@ void sub_08075B54(ItemBehavior* this, u32 arg1) { itemSlot = IsItemEquipped(this->behaviorID); if (!(((sub_08077F10(this) == 0) && (itemSlot < 2)) || (gPlayerState.jumpStatus != 0))) { ForceEquipItem(0xf, itemSlot); - gPlayerState.flags &= 0xff7fffff; + gPlayerState.flags &= ~PL_USE_LANTERN; sub_08077E78(this, arg1); SoundReq(SFX_ITEM_LANTERN_OFF); } else { - if (((gPlayerState.playerAction != 0x18) && (gPlayerEntity.frameIndex < 0x37)) && + if (((gPlayerState.queued_action != PLAYER_ROLL) && (gPlayerEntity.frameIndex < 0x37)) && ((u16)gPlayerEntity.spriteIndex == 6)) { tmp = &gUnk_08126EEC[gPlayerEntity.animationState & 6]; @@ -91,7 +91,7 @@ void sub_08075B54(ItemBehavior* this, u32 arg1) { this->field_0xf = 0xf; this->stateID += 1; gPlayerEntity.field_0x7a.HWORD = 2; - object = CreateObjectWithParent(&gPlayerEntity, 0x45, 1, 0); + object = CreateObjectWithParent(&gPlayerEntity, OBJECT_45, 1, 0); if (object != NULL) { object->spriteVramOffset = gPlayerEntity.spriteVramOffset; object->x.HALF.HI = tmp[0] + object->x.HALF.HI; diff --git a/src/item/itemOcarina.c b/src/item/itemOcarina.c index 7b705446..1f418627 100644 --- a/src/item/itemOcarina.c +++ b/src/item/itemOcarina.c @@ -4,7 +4,7 @@ extern void (*const gOcarinaStates[4])(ItemBehavior*, u32); -extern void sub_08078F60(void); +extern void ResetPlayerVelocity(void); extern void SetPlayerEventPriority(void); extern void CreateBird(void); @@ -16,7 +16,7 @@ void ItemOcarina(ItemBehavior* this, u32 arg1) { } void OcarinaUse(ItemBehavior* this, u32 arg1) { - if (gPlayerState.playerAction == 0x18) { + if (gPlayerState.queued_action == PLAYER_ROLL) { sub_08077E78(this, arg1); } else { this->field_0x5[4] |= 0xf; @@ -24,12 +24,12 @@ void OcarinaUse(ItemBehavior* this, u32 arg1) { gPlayerEntity.spriteSettings.flipX = 0; gPlayerEntity.flags &= 0x7f; gPlayerEntity.field_0x7a.HWORD = 2; - gPlayerState.flags |= 0x10000000; + gPlayerState.flags |= PL_USE_OCARINA; gPlayerState.field_0x27[0] = -1; gUnk_02034490[0] = 1; gPlayerState.field_0xa = (8 >> arg1) | gPlayerState.field_0xa; gPlayerState.keepFacing = (8 >> arg1) | gPlayerState.keepFacing; - sub_08078F60(); + ResetPlayerVelocity(); sub_08077D38(this, arg1); SoundReq(SFX_216); SetPlayerEventPriority(); @@ -41,7 +41,7 @@ NONMATCH("asm/non_matching/ocarina/OcarinaUpdate.inc", void OcarinaUpdate(ItemBe UpdateItemAnim(this); if ((this->field_0x5[9] & 0x80) != 0) { gPlayerEntity.flags |= 0x80; - gPlayerState.flags &= 0xefffffff; + gPlayerState.flags &= ~PL_USE_OCARINA; gPlayerState.field_0x27[0] = 0; gUnk_02034490[0] = 0; CreateBird(); diff --git a/src/item/itemPegasusBoots.c b/src/item/itemPegasusBoots.c index a12e31f3..e60d820c 100644 --- a/src/item/itemPegasusBoots.c +++ b/src/item/itemPegasusBoots.c @@ -24,7 +24,7 @@ void ItemPegasusBoots(ItemBehavior* this, u32 arg1) { SoundReq(SFX_PLY_LAND); } if (((gPlayerState.flags & PL_MINISH) == 0) && ((this->field_0x5[2] & 7) == 0)) { - if (gPlayerState.floor_type == SURFACE_11) { + if (gPlayerState.floor_type == SURFACE_SWAMP) { if (gPlayerEntity.spriteOffsetY == 0) { CreateFx(&gPlayerEntity, FX_GREEN_SPLASH, 0); } diff --git a/src/item/itemSword.c b/src/item/itemSword.c index 45441f72..37a91ef4 100644 --- a/src/item/itemSword.c +++ b/src/item/itemSword.c @@ -72,9 +72,9 @@ void sub_0807564C(ItemBehavior* this, u32 arg1) { void sub_08075694(ItemBehavior* this, u32 arg1) { this->field_0x5[2] = 1; - if ((gPlayerState.flags & 0x8000000) != 0) { - gPlayerState.flags &= 0xf7ffffff; - gPlayerState.flags &= 0xfffbffff; + if (gPlayerState.flags & PL_SWORD_THRUST) { + gPlayerState.flags &= ~PL_SWORD_THRUST; + gPlayerState.flags &= ~PL_ROLLING; sub_08077DF4(this, 300); } else { gPlayerState.field_0xab = 1; @@ -86,7 +86,7 @@ void sub_08075694(ItemBehavior* this, u32 arg1) { gPlayerEntity.hurtType = 0x1e; gPlayerState.field_0x1a[1] |= 0x40; gPlayerState.field_0x1a[1] &= 0xdf; - if ((gPlayerState.field_0xa0[0] == 0x04) && ((gPlayerState.flags & 0x400000) == 0)) { + if ((gPlayerState.field_0xa0[0] == 0x04) && ((gPlayerState.flags & PL_CLONING) == 0)) { gPlayerState.field_0xa0[0] = 0x01; sub_0807A108(); } @@ -124,7 +124,7 @@ void sub_080759B8(ItemBehavior* this, u32 arg1) { if ((gPlayerState.flags & PL_MINISH) == 0) { gPlayerEntity.hurtType = 0; } - gPlayerState.flags &= 0xf7ffffff; + gPlayerState.flags &= ~PL_SWORD_THRUST; gPlayerState.field_0x1a[1] = 0; gPlayerState.item = NULL; sub_08077E78(this, arg1); diff --git a/src/manager/manager15.c b/src/manager/manager15.c index b73beba0..8dc10a8f 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -315,8 +315,8 @@ void sub_0805A76C(Manager15* this) { } void sub_0805A7E4(Manager15* this) { - if (gPlayerState.playerAction != PLAYER_WARP) { - gPlayerState.playerAction = PLAYER_WARP; + if (gPlayerState.queued_action != PLAYER_WARP) { + gPlayerState.queued_action = PLAYER_WARP; gPlayerState.field_0x38 = 0; gPlayerState.field_0x39 = 0; } diff --git a/src/manager/manager1A.c b/src/manager/manager1A.c index dc09ea5f..b188ef08 100644 --- a/src/manager/manager1A.c +++ b/src/manager/manager1A.c @@ -137,7 +137,7 @@ void sub_0805B168(Manager1A* this) { u32 sub_0805B1CC(Manager1A* this) { u32 re = 0; if (CheckPlayerProximity(this->unk_20, this->unk_22, this->unk_24, this->unk_26)) { - if ((gPlayerState.flags & 0x4) && (gPlayerState.flags & 0x1)) { + if ((gPlayerState.flags & PL_DROWNING) && (gPlayerState.flags & PL_BUSY)) { gPlayerState.flags |= 0x8000; } else if (gPlayerState.flags & 0x8000) { re = 1; diff --git a/src/manager/manager34.c b/src/manager/manager34.c index 6ca4773c..a3f83418 100644 --- a/src/manager/manager34.c +++ b/src/manager/manager34.c @@ -39,11 +39,11 @@ void sub_0805DBF0(Manager34* this) { sub_0805DC70(); } else { if (this->field_0x20 == 0x78) { - sub_08080964(0x78, 2); + InitScreenShake(0x78, 2); } else if (this->field_0x20 == 0xd2) { - sub_08080964(0x5a, 1); + InitScreenShake(0x5a, 1); } else if (this->field_0x20 == 0x12c) { - sub_08080964(0x5a, 0); + InitScreenShake(0x5a, 0); } if (this->field_0x20 < 0x78) { diff --git a/src/manager/managerA.c b/src/manager/managerA.c index fbaf30ff..1d68eadc 100644 --- a/src/manager/managerA.c +++ b/src/manager/managerA.c @@ -117,7 +117,7 @@ static u32 PlayerStateValid(ManagerA* this) { static void sub_08058514(ManagerA* this) { switch (this->manager.unk_0d) { case 1: - if (gPlayerState.flags & (PL_BUSY | PL_DROWNING | PL_USE_PORTAL | 0x1210)) + if (gPlayerState.flags & (PL_BUSY | PL_DROWNING | PL_USE_PORTAL | PL_FALLING | 0x1010)) return; if (gPlayerEntity.z.HALF.HI != 0) return; diff --git a/src/manager/managerC.c b/src/manager/managerC.c index 2583ce98..1dae3225 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -156,7 +156,7 @@ void sub_08058A04(ManagerC* this) { s32 tmp2 = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY; if ((this->unk_20 - 0x118 < 0xDu) && CheckGlobalFlag(LV1TARU_OPEN) && (tmp - 0x6d < 0x17u) && (tmp2 - 0x45 < 0x17u) && (gPlayerEntity.z.HALF.HI == 0)) { - gPlayerState.playerAction = 3; + gPlayerState.queued_action = PLAYER_FALL; gPlayerState.field_0x38 = 0; gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x78; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x50; diff --git a/src/npc/carlov.c b/src/npc/carlov.c index dd25013a..83402406 100644 --- a/src/npc/carlov.c +++ b/src/npc/carlov.c @@ -15,7 +15,7 @@ void Carlov(Entity* this) { if ((this->frame & 0x10) != 0) { this->frame = this->frame & 0xef; EnqueueSFX(0x104); - sub_08080964(0x10, 0); + InitScreenShake(0x10, 0); } if ((this->frame & 0x20) != 0) { this->frame = this->frame & 0xdf; diff --git a/src/npc/castorWildsStatue.c b/src/npc/castorWildsStatue.c index 884a4289..b621b86f 100644 --- a/src/npc/castorWildsStatue.c +++ b/src/npc/castorWildsStatue.c @@ -97,7 +97,7 @@ void sub_08067534(Entity* this) { } } EnqueueSFX(0x14c); - sub_08080964(0x28, 4); + InitScreenShake(0x28, 4); } void sub_0806757C(Entity* this) { diff --git a/src/npc/rem.c b/src/npc/rem.c index d3ab32d0..cef24033 100644 --- a/src/npc/rem.c +++ b/src/npc/rem.c @@ -131,7 +131,7 @@ void sub_0806A550(Entity* this) { } else { if (this->frame == 1) { this->frame = 0; - sub_08080964(8, 2); + InitScreenShake(8, 2); gActiveScriptInfo.unk_00 |= 0x100; SoundReq(SFX_CHEST_OPEN); } diff --git a/src/npc/zelda.c b/src/npc/zelda.c index 4cb5a1ae..4631a31e 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -85,7 +85,7 @@ void sub_08066D94(Entity* this) { DeleteThisEntity(); } -void sub_08066DE4(Entity* this) { +void SetZeldaFollowTarget(Entity* this) { Entity* pEVar1; pEVar1 = DeepFindEntityByID(7, 0x2E); diff --git a/src/object/bakerOven.c b/src/object/bakerOven.c index ffe11cd9..c7f21f7c 100644 --- a/src/object/bakerOven.c +++ b/src/object/bakerOven.c @@ -1,6 +1,6 @@ #include "object.h" -extern void sub_0800449C(Entity*, u32); +extern void SoundReqClipped(Entity*, u32); extern u32 sub_0806FC80(Entity*, Entity*, s32); extern void sub_0809CDF0(Entity*); @@ -61,7 +61,7 @@ void sub_0809CD0C(Entity* this) { sub_0806FC80(this, &gPlayerEntity, 4)) { this->field_0xf++; ModHealth(-2); - sub_0800449C(&gPlayerEntity, 0x7a); + SoundReqClipped(&gPlayerEntity, 0x7a); gPlayerEntity.iframes = 16; gPlayerEntity.knockbackDirection = 16; gPlayerEntity.knockbackDuration = 12; diff --git a/src/object/bigVortex.c b/src/object/bigVortex.c index 5e7f87eb..9118cb67 100644 --- a/src/object/bigVortex.c +++ b/src/object/bigVortex.c @@ -67,7 +67,7 @@ void sub_08098DC4(Entity* this) { sub_08004542(&gPlayerEntity); gPlayerEntity.collisionLayer = 1; ResolveEntityOnTop(this, &gPlayerEntity); - gPlayerState.playerAction = 0x1f; + gPlayerState.queued_action = PLAYER_PARACHUTE; gPlayerState.field_0x34[4] = 1; gPlayerState.field_0x34[5] = this->type2; this->action = 4; diff --git a/src/object/book.c b/src/object/book.c index 9a99b928..25faf3ab 100644 --- a/src/object/book.c +++ b/src/object/book.c @@ -92,8 +92,8 @@ void sub_0809B4A8(Entity* this) { this->direction = 16; gPlayerState.pushedObject = 0x9e; - gPlayerState.playerAction = 5; - gPlayerState.flags |= 1; + gPlayerState.queued_action = PLAYER_PUSH; + gPlayerState.flags |= PL_BUSY; gPlayerEntity.x.HALF.LO = 0; gPlayerEntity.y.HALF.LO = 0; diff --git a/src/object/button.c b/src/object/button.c index 76b48da8..1db2cafb 100644 --- a/src/object/button.c +++ b/src/object/button.c @@ -138,7 +138,7 @@ u32 sub_08081D28(Entity* this) { } extern u32 sub_080002E0(u32, u32); -extern Entity* gUnk_03004040[3]; +extern Entity* gPlayerClones[3]; u32 sub_08081E0C(Entity*); Entity* sub_08081D74(Entity* this) { @@ -152,13 +152,13 @@ Entity* sub_08081D74(Entity* this) { ent = &gPlayerEntity; } } else { - if (gPlayerState.flags & 0x400000) { - if (EntityInRectRadius(this, gUnk_03004040[0], 5, 6)) { - ent = gUnk_03004040[0]; - } else if (EntityInRectRadius(this, gUnk_03004040[1], 5, 6)) { - ent = gUnk_03004040[1]; - } else if (EntityInRectRadius(this, gUnk_03004040[2], 5, 6)) { - ent = gUnk_03004040[2]; + if (gPlayerState.flags & PL_CLONING) { + if (EntityInRectRadius(this, gPlayerClones[0], 5, 6)) { + ent = gPlayerClones[0]; + } else if (EntityInRectRadius(this, gPlayerClones[1], 5, 6)) { + ent = gPlayerClones[1]; + } else if (EntityInRectRadius(this, gPlayerClones[2], 5, 6)) { + ent = gPlayerClones[2]; } } } @@ -272,8 +272,8 @@ void sub_08081FF8(Entity* this) { direction = GetFacingDirection(this->child, this); sub_080044AE(this->child, 0x200, direction); for (i = 0; i < 3; i++) { - if (gUnk_03004040[i]) { - sub_080044AE(gUnk_03004040[i], 0x200, direction); + if (gPlayerClones[i]) { + sub_080044AE(gPlayerClones[i], 0x200, direction); } } } diff --git a/src/object/itemOnGround.c b/src/object/itemOnGround.c index 78d8c881..c062d75b 100644 --- a/src/object/itemOnGround.c +++ b/src/object/itemOnGround.c @@ -17,7 +17,6 @@ void sub_080813BC(Entity*); void sub_080810FC(Entity*); bool32 CheckShouldPlayItemGetCutscene(Entity*); -extern u32 sub_080002D0(Entity*); extern u32 sub_080177A0(Entity*, Entity*); extern void GiveItem(u32, u32); diff --git a/src/object/jarPortal.c b/src/object/jarPortal.c index 8adb45e7..89142cbc 100644 --- a/src/object/jarPortal.c +++ b/src/object/jarPortal.c @@ -108,7 +108,7 @@ void sub_0808C01C(Entity* this, u32 r1) { type = 2; gArea.curPortalType = type; if (r1 == 1) { - if (((gPlayerState.flags & 0x20) != 0) && (gPlayerState.jumpStatus == 0)) { + if ((gPlayerState.flags & PL_USE_PORTAL) && (gPlayerState.jumpStatus == 0)) { gArea.field_0x18 = 2; } else { if (sub_08057810() != 0) { diff --git a/src/object/minecart.c b/src/object/minecart.c index 8f5e9360..619e1a7b 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -55,7 +55,6 @@ void sub_080916EC(Entity* this) { } void sub_080917DC(Entity* this) { - if ((this->bitfield & 0x7f) == 0x1d) { this->zVelocity = 0x2a000; this->action = 7; @@ -63,8 +62,8 @@ void sub_080917DC(Entity* this) { SoundReq(SFX_13B); } else { if (sub_0800445C(this) != 0) { - if (((gPlayerState.flags & 0x40080) == 0) && (gPlayerState.field_0x1c == 0) && - (gPlayerState.heldObject == 0) && (gPlayerState.jumpStatus == 0)) { + if (!((gPlayerState.flags & (PL_MINISH | PL_ROLLING)) || gPlayerState.field_0x1c || + gPlayerState.heldObject || gPlayerState.jumpStatus)) { this->actionDelay++; } else { this->actionDelay = 0; @@ -73,13 +72,13 @@ void sub_080917DC(Entity* this) { this->actionDelay = 0; } if (this->type2 == 0) { - if (8 < this->actionDelay) { - this->action = this->action + 1; + if (this->actionDelay > 8) { + this->action++; gPlayerState.jumpStatus = 0x81; - gPlayerState.flags |= 0x4000000; + gPlayerState.flags |= PL_MINECART; gPlayerEntity.zVelocity = 0x20000; gPlayerEntity.speed = 0x100; - gPlayerEntity.flags &= 0x7f; + gPlayerEntity.flags &= ~PL_MINISH; ResetPlayer(); sub_0807A108(); SoundReq(SFX_PLY_JUMP); @@ -95,11 +94,11 @@ void sub_080918A4(Entity* this) { gPlayerEntity.x.HALF.HI = this->x.HALF.HI; gPlayerEntity.y.HALF.HI = this->y.HALF.HI; if (gPlayerEntity.z.HALF.HI > -0x10) { - if ((s32)gPlayerEntity.zVelocity > -1) { + if (gPlayerEntity.zVelocity >= 0) { return; } gPlayerEntity.animationState = this->animationState << 1; - gPlayerState.flags = (gPlayerState.flags ^ 0x4000000) | 0x1000; + gPlayerState.flags = (gPlayerState.flags ^ PL_MINECART) | 0x1000; this->action++; this->field_0xf = 1; this->flags |= ENT_20; @@ -158,7 +157,7 @@ void sub_080919AC(Entity* this) { gUnk_081223C8[this->animationState * 2 + 1]); iVar2 = sub_08007DD6(uVar3, gUnk_081223D8[this->animationState]); if (iVar2 == 0) { - this->direction = this->direction ^ 0x10; + this->direction = DirectionTurnAround(this->direction); this->animationState = this->animationState ^ 2; } else { switch (uVar3) { @@ -171,12 +170,12 @@ void sub_080919AC(Entity* this) { this->action = 6; sub_08017744(this); gPlayerState.jumpStatus = 0x41; - gPlayerState.flags = (gPlayerState.flags ^ 0x1000) | 0x4000000; + gPlayerState.flags = (gPlayerState.flags ^ 0x1000) | PL_MINECART; gPlayerEntity.zVelocity = 0x20000; gPlayerEntity.speed = 0x200; gPlayerEntity.animationState = this->animationState << 1; gPlayerEntity.direction = this->direction; - gPlayerEntity.flags |= 0x80; + gPlayerEntity.flags |= PL_MINISH; sub_08004168(this); InitAnimationForceUpdate(this, this->animationState + 0xc); SoundReq(SFX_PLY_VO4); diff --git a/src/object/object6A.c b/src/object/object6A.c index d0063f60..11dcfc48 100644 --- a/src/object/object6A.c +++ b/src/object/object6A.c @@ -398,7 +398,7 @@ void sub_08094FA8(Object6AEntity* this) { super->interactType = 0; super->action = 2; sub_080788E0(super); - gPlayerState.playerAction = 12; + gPlayerState.queued_action = PLAYER_EMPTYBOTTLE; gPlayerState.field_0x38 = 54; #ifndef EU SetPlayerControl(2); diff --git a/src/object/object86.c b/src/object/object86.c index b5c9e60b..62d30b6b 100644 --- a/src/object/object86.c +++ b/src/object/object86.c @@ -69,7 +69,7 @@ void nullsub_534(Entity* this) { void sub_08099ECC(Entity* this) { this->subAction = 1; CopyPosition(this, &gPlayerEntity); - gPlayerState.playerAction = 3; + gPlayerState.queued_action = PLAYER_FALL; gPlayerState.field_0x34[4] = 0; gPlayerState.flags |= 0x8000; } diff --git a/src/overworld.c b/src/overworld.c index 997ce29d..ff90afc8 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -351,7 +351,7 @@ void InitializePlayer(void) { pl = &gPlayerEntity; gRoomControls.cameraTarget = pl; - gPlayerState.playerAction = sPlayerSpawnStates[gScreenTransition.player_status.spawn_type]; + gPlayerState.queued_action = sPlayerSpawnStates[gScreenTransition.player_status.spawn_type]; if (!CheckGlobalFlag(EZERO_1ST)) { gPlayerState.flags |= PL_NO_CAP; } @@ -607,7 +607,7 @@ static u32 StairsAreValid(void) { for (i = sStairTypes; i[0] != 0; i += 2) { if (tgt == i[0]) { - gPlayerState.playerAction = 30; + gPlayerState.queued_action = PLAYER_USEENTRANCE; gPlayerState.field_0x38 = 0; gPlayerState.field_0x39 = i[1]; if (!gScreenTransition.player_status.spawn_type) @@ -666,7 +666,7 @@ u32 sub_08052B24(void) { gUnk_0200AF00.filler0[1]) return 0; - if ((gPlayerState.flags & 0x118) || (gPlayerState.framestate_last > tmp) || gPlayerState.item || + if ((gPlayerState.flags & (PL_NO_CAP | 0x110)) || (gPlayerState.framestate_last > tmp) || gPlayerState.item || gPlayerEntity.field_0x7a.HWORD) return 0; diff --git a/src/player.c b/src/player.c index ead93d25..0ead68bc 100644 --- a/src/player.c +++ b/src/player.c @@ -15,11 +15,10 @@ #include "hitbox.h" #include "overworld.h" #include "screen.h" +#include "main.h" typedef void(EntityAction)(Entity*); -static EntityAction* const sPlayerActions[]; - static EntityAction PlayerInit; static EntityAction PlayerNormal; static EntityAction PlayerInit; @@ -29,7 +28,7 @@ static EntityAction PlayerPush; static EntityAction PlayerBounce; static EntityAction sub_08070E9C; static EntityAction PlayerItemGet; -EntityAction PlayerMinish; +static EntityAction PlayerMinish; static EntityAction PlayerMinishDie; static EntityAction sub_08071DB8; static EntityAction PlayerEmptyBottle; @@ -48,10 +47,10 @@ static EntityAction PlayerRoll; static EntityAction sub_080728AC; static EntityAction PlayerInHole; static EntityAction sub_08072C9C; -EntityAction sub_08074C44; -static EntityAction sub_08072F34; +static EntityAction sub_08074C44; +static EntityAction PlayerClimb; static EntityAction PlayerUseEntrance; -EntityAction PlayerParachute; +static EntityAction PlayerParachute; // PLAYER_FALL static EntityAction PlayerFallInit; @@ -163,28 +162,86 @@ static EntityAction sub_08072CFC; static EntityAction sub_08072D54; static EntityAction sub_08072F14; -// PLAYER_08072F34 +// PLAYER_CLIMB static EntityAction sub_08072F94; static EntityAction sub_08073094; // PLAYER_USEENTRANCE -EntityAction sub_080731D8; -EntityAction sub_080732D0; -EntityAction sub_0807332C; -EntityAction sub_080733BC; +static EntityAction sub_080731D8; +static EntityAction sub_080732D0; +static EntityAction sub_0807332C; +static EntityAction sub_080733BC; + +// PLAYER_PARACHUTE +static EntityAction sub_08073468; +static EntityAction sub_080734D4; +static EntityAction sub_08073504; +static EntityAction sub_08073584; +static EntityAction sub_0807379C; +static EntityAction sub_080737BC; +static EntityAction sub_0807380C; +static EntityAction sub_08073884; + +// sub_08073904... ? +static EntityAction sub_08073924; +static EntityAction sub_08073968; +static EntityAction sub_080739EC; +static EntityAction sub_08073A94; +static EntityAction sub_08073B8C; +static EntityAction sub_08073C30; + +// PLAYER_MINISH +static EntityAction sub_08073C80; +static EntityAction sub_08073D20; +static EntityAction sub_08073F04; +static EntityAction sub_08073F4C; +static EntityAction sub_08073FD0; +static EntityAction sub_08074018; +static EntityAction sub_08074060; +static EntityAction sub_080740D8; + +// PLAYER_08074C44 +static EntityAction sub_08074C68; +static EntityAction sub_08074CF8; +static EntityAction sub_08074F00; +static EntityAction sub_080750F4; +// ... +static EntityAction sub_08074F1C; +static EntityAction sub_08074F2C; +static EntityAction sub_08074F44; +static EntityAction sub_08074F8C; +static EntityAction sub_08074FEC; +static EntityAction sub_0807501C; +static EntityAction sub_0807508C; +// ... +static EntityAction sub_08075110; +static EntityAction sub_0807513C; +static EntityAction sub_0807518C; +static EntityAction sub_080751B4; static void sub_080717F8(Entity*); static void ResetPlayerPriority(); static void sub_080728AC(Entity*); static void BreakOut(); +static void sub_08073AD4(); +static void sub_08073B60(Entity*); +static void sub_08074244(Entity*, u32, u32); +static void hide(Entity*); +static void sub_08074BF8(Entity*); +static void sub_08074D34(Entity*, ScriptExecutionContext*); + +// exports +void SurfaceAction_Water(Entity*); +void SurfaceAction_Ladder(Entity*); +void SurfaceAction_AutoLadder(Entity*); extern void RespawnPlayer(); extern void sub_080797EC(); extern void sub_08079E08(); -extern void sub_08078F60(); +extern void ResetPlayerVelocity(); extern void sub_08077698(); extern void sub_08079258(); -extern void sub_0807A298(); +extern void EnablePlayerDraw(); extern u32 sub_08079B24(); extern void sub_08079708(); extern void sub_080792D8(); @@ -208,8 +265,25 @@ extern u32 sub_08007DD6(); extern u32 GetSurfaceCalcType(); extern void sub_08074808(); extern void sub_08073904(Entity*); +extern void SetZeldaFollowTarget(Entity*); +extern u32 ItemIsSword(u32); +extern u32 sub_0807A2B8(); +extern u32 sub_08079550(u32); +extern u32 sub_080782C0(); +extern u32 sub_080793E4(u32); +extern void sub_08008AC6(Entity*); +extern u32 sub_08079C30(Entity*); +extern void sub_08077AEC(); extern ScreenTransitionData gUnk_0813AB58; +extern ScreenTransitionData gUnk_0813AD88[]; +extern u8 gUnk_080082DC[]; + +extern u16 script_08009ECC; +extern u16 script_08009EF0; + +extern Entity* gPlayerClones[]; +extern ScriptExecutionContext gPlayerScriptExecutionContext; void DoPlayerAction(Entity* this) { static void (*const sPlayerActions[])(Entity*) = { @@ -242,7 +316,7 @@ void DoPlayerAction(Entity* this) { [PLAYER_INHOLE] = PlayerInHole, [PLAYER_08072C9C] = sub_08072C9C, [PLAYER_08074C44] = sub_08074C44, - [PLAYER_08072F34] = sub_08072F34, + [PLAYER_CLIMB] = PlayerClimb, [PLAYER_USEENTRANCE] = PlayerUseEntrance, [PLAYER_PARACHUTE] = PlayerParachute, }; @@ -278,7 +352,7 @@ static void PlayerInit(Entity* this) { sub_0807A108(); sub_0807AEE4(); - if (sub_08078EFC() == 0) { + if (RunQueuedAction() == 0) { sub_0807921C(); UpdateFloorType(); if (gPlayerState.swimState != 0) { @@ -329,9 +403,9 @@ static void PlayerFallInit(Entity* this) { gPlayerState.jumpStatus = 0; - if ((gPlayerState.flags & PL_MINISH) != 0) + if (gPlayerState.flags & PL_MINISH) gPlayerState.animation = 0x1ba; - else if ((gPlayerState.flags & 8) != 0) + else if (gPlayerState.flags & PL_NO_CAP) gPlayerState.animation = 0x458; else gPlayerState.animation = 0x1b8; @@ -382,7 +456,7 @@ static void PlayerBounceInit(Entity* this) { if ((gPlayerState.flags & PL_MINISH) == 0) { this->zVelocity = 0x20000; gPlayerState.animation = 0x114; - sub_08080964(16, 0); + InitScreenShake(16, 0); } else { gPlayerState.animation = 0xc18; this->zVelocity = 0x18000; @@ -391,7 +465,7 @@ static void PlayerBounceInit(Entity* this) { gPlayerState.jumpStatus = 0x80; SoundReq(SFX_14C); ResetPlayer(); - sub_08078F60(); + ResetPlayerVelocity(); } // minor regalloc @@ -401,12 +475,12 @@ static NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void PlayerBounceUpd sub_08079E08(); UpdateFloorType(); - if (sub_08078EFC() || GravityUpdate(this, 0x2000)) + if (RunQueuedAction() || GravityUpdate(this, 0x2000)) return; gPlayerState.jumpStatus = 0; - if (sub_08078EFC() || sub_08079D48()) + if (RunQueuedAction() || sub_08079D48()) return; if (gPlayerState.swimState != 0) { @@ -451,7 +525,7 @@ static void sub_08070E9C(Entity* this) { sub_08070f24, }; - if (sub_08078EFC() != 0) { + if (RunQueuedAction() != 0) { MessageClose(); } else { gPlayerState.field_0x27[0] = 4; @@ -531,7 +605,7 @@ static void PlayerItemGetInit(Entity* this) { this->subAction = 1; ResetPlayer(); - sub_08078F60(); + ResetPlayerVelocity(); } static void PlayerItemGetUpdate(Entity* this) { @@ -543,7 +617,7 @@ static void PlayerItemGetUpdate(Entity* this) { static void sub_08071038(Entity* this) { UpdateAnimationSingleFrame(this); - if (sub_08078EFC() || (gMessage.doTextBox & 0x7f)) + if (RunQueuedAction() || (gMessage.doTextBox & 0x7f)) return; if (this->frame & 0x80) { @@ -572,9 +646,9 @@ static void PlayerJumpInit(Entity* this) { this->subAction++; gPlayerState.flags |= PL_BUSY; - gPlayerState.flags &= ~(PL_BURNING | 0x800); + gPlayerState.flags &= ~(PL_BURNING | PL_FROZEN); - gPlayerState.playerAction = 0; + gPlayerState.queued_action = 0; if ((gPlayerState.heldObject | gPlayerState.field_0x1a[1]) == 0) { if ((gPlayerState.flags & PL_MINISH) == 0) { @@ -602,8 +676,7 @@ static void PlayerJumpInit(Entity* this) { } static void sub_08071130(Entity* this) { - - if (sub_08078EFC(this)) + if (RunQueuedAction(this)) return; if (gPlayerState.field_0x1a[1] == 0) { @@ -631,7 +704,7 @@ static void sub_08071130(Entity* this) { UpdateFloorType(); - if (sub_08078EFC()) + if (RunQueuedAction()) return; if ((sub_08079D48() == 0) || (gPlayerState.swimState != 0)) { @@ -652,7 +725,7 @@ static void sub_08071130(Entity* this) { } this->subAction++; - sub_08078F60(); + ResetPlayerVelocity(); this->knockbackDuration = 0; SoundReq(SFX_PLY_LAND); } @@ -940,7 +1013,7 @@ static void PlayerTalkEzlo(Entity* this) { sub_08071A4C, }; - if (sub_08078EFC()) { + if (RunQueuedAction()) { MessageClose(); ResetPlayerPriority(); } else { @@ -1111,7 +1184,7 @@ static void PlayerPushUpdate(Entity* this) { static void sub_08071B60(Entity* this) { gPlayerState.pushedObject = 2; - gPlayerState.flags &= ~0x1; + gPlayerState.flags &= ~PL_BUSY; this->type = 0; this->knockbackDuration = 0; sub_080728AC(this); @@ -1150,11 +1223,11 @@ static void PlayerMinishDieInit(Entity* this) { return; } - gPlayerState.playerAction = 0; + gPlayerState.queued_action = 0; if (gPlayerState.flags & PL_MINISH) { if (gPlayerState.floor_type == SURFACE_MINISH_DOOR_FRONT || gPlayerState.floor_type == SURFACE_MINISH_DOOR_BACK || gPlayerState.floor_type == SURFACE_A) { - sub_0807A298(this); + EnablePlayerDraw(this); RespawnPlayer(); this->action = 10; } @@ -1164,7 +1237,7 @@ static void PlayerMinishDieInit(Entity* this) { } gPlayerState.animation = temp; - gPlayerState.flags &= ~(0x1000000 | 0x200000 | 0x40000 | 0x800 | 0x400 | 0x100 | PL_BUSY); + gPlayerState.flags &= ~(PL_PARACHUTE | PL_RELEASED | PL_ROLLING | PL_FROZEN | PL_BURNING | 0x100 | PL_BUSY); this->subAction = 1; this->animationState = IdleSouth; this->spritePriority.b1 = 1; @@ -1181,7 +1254,7 @@ static void sub_08071CAC(Entity* this) { if (this->frame & 0x80) { u32 temp; if ((gPlayerState.flags & PL_MINISH) == 0) - temp = (gPlayerState.flags & 8) ? 0x45a : 0x2bd; + temp = (gPlayerState.flags & PL_NO_CAP) ? 0x45a : 0x2bd; else temp = 0xc1b; gPlayerState.animation = temp; @@ -1262,7 +1335,7 @@ static void sub_08071E04(Entity* this) { UpdateFloorType(); if (gPlayerState.floor_type == SURFACE_PIT) { gPlayerState.field_0x11 = 7; - gPlayerState.flags |= 0x200; + gPlayerState.flags |= PL_FALLING; sub_080791BC(); return; } @@ -1366,7 +1439,7 @@ static void PlayerFrozenUpdate(Entity* this) { if (sub_08079B24() == 0) { sub_08079708(this); } else { - if (gPlayerState.flags & 0x800) { + if (gPlayerState.flags & PL_FROZEN) { if (sub_0807953C() != 0) { this->actionDelay -= 3; this->spriteOffsetX = 2; @@ -1386,7 +1459,7 @@ static void BreakOut(Entity* this) { this->knockbackDuration = 0; COLLISION_ON(this); this->spriteOffsetX = 0; - gPlayerState.flags &= ~(0x800 | PL_BUSY); + gPlayerState.flags &= ~(PL_FROZEN | PL_BUSY); CreateFx(this, FX_ICE, 0); sub_080791BC(); } @@ -1429,7 +1502,7 @@ static void sub_080720DC(Entity* this) { sub_08072168, }; - if (sub_08078EFC() == 0) + if (RunQueuedAction() == 0) gUnk_0811BB60[this->subAction](this); } @@ -1686,7 +1759,7 @@ static void PlayerRoll(Entity* this) { static void PlayerRollInit(Entity* this) { u32 temp; - if ((gPlayerState.flags & 0x200000) == 0) { + if ((gPlayerState.flags & PL_RELEASED) == 0) { sub_0806F948(&gPlayerEntity); this->direction = Direction8FromAnimationState(this->animationState); } @@ -1715,11 +1788,13 @@ static void PlayerRollInit(Entity* this) { } static void PlayerRollUpdate(Entity* this) { - if (((gPlayerState.flags & (PL_ROLLING | 0x80000)) != PL_ROLLING) || - (!(gPlayerState.flags & 0x200000) && (this->iframes != 0) && (this->bitfield & 0x80))) { + if (((gPlayerState.flags & (PL_ROLLING | PL_TRAPPED)) != PL_ROLLING) || + ((gPlayerState.flags & PL_RELEASED) == 0 && (this->iframes != 0) && (this->bitfield & 0x80))) { gPlayerState.flags &= ~PL_ROLLING; - if (!sub_08078EFC()) - sub_080728AC(this); + if (RunQueuedAction()) + return; + + sub_080728AC(this); return; } @@ -1731,12 +1806,12 @@ static void PlayerRollUpdate(Entity* this) { if ((gPlayerState.flags & 2) == 0) { UpdateFloorType(); } - if (sub_08078EFC()) { + if (RunQueuedAction()) { gPlayerState.flags &= ~PL_ROLLING; return; } - if ((gPlayerState.flags & 0x80000) != 0) { + if (gPlayerState.flags & PL_TRAPPED) { gPlayerState.flags &= ~PL_ROLLING; return; } @@ -1745,7 +1820,7 @@ static void PlayerRollUpdate(Entity* this) { return; } - if (gPlayerState.flags & (0x200 | 0x40 | 0x10)) { + if (gPlayerState.flags & (PL_FALLING | PL_HIDDEN | 0x10)) { gPlayerState.flags &= ~PL_ROLLING; sub_080728AC(this); return; @@ -1778,14 +1853,14 @@ static void PlayerRollUpdate(Entity* this) { // dont take damage this->hurtType = 0; } - if ((this->frame & 0x40) != 0) { + if (this->frame & 0x40) { sub_08077698(this); } - if (((this->frame & 0x80) != 0) || (gPlayerState.field_0x3[1] != 0)) { + if ((this->frame & 0x80) || (gPlayerState.field_0x3[1] != 0)) { sub_080791D0(); } - if ((this->frame & 0x80) != 0) { - gPlayerState.flags &= ~(0x200000 | PL_ROLLING); + if (this->frame & 0x80) { + gPlayerState.flags &= ~(PL_RELEASED | PL_ROLLING); } UpdateAnimationSingleFrame(this); } @@ -1795,17 +1870,17 @@ static void sub_080728AC(Entity* this) { if (gPlayerState.flags & PL_MINISH) sub_0807B068(this); else - sub_08078F60(); + ResetPlayerVelocity(); if (gPlayerState.swimState != 0) this->speed = 0; - if ((gPlayerState.flags & 0x40) == 0) + if ((gPlayerState.flags & PL_HIDDEN) == 0) gPlayerEntity.spriteSettings.draw = 3; if ((gPlayerState.flags & PL_MINISH) == 0) gPlayerEntity.spritePriority.b1 = 1; if ((gRoomControls.unk6 & 4) == 0) { - if (gPlayerState.flags & 0x40) + if (gPlayerState.flags & PL_HIDDEN) COLLISION_ON(this); sub_080791D0(); } @@ -2092,20 +2167,20 @@ static void sub_08072F14(Entity* this) { } } -static void sub_08072F34(Entity* this) { - static EntityAction* const gUnk_0811BBE4[] = { +static void PlayerClimb(Entity* this) { + static EntityAction* const sPlayerClimbStates[] = { sub_08072F94, sub_08073094, }; - if (!sub_08078EFC()) { + if (!RunQueuedAction()) { gPlayerState.framestate = PL_STATE_CLIMB; gPlayerState.floor_type = GetSurfaceCalcType(this, 0, 0); - gUnk_0811BBE4[this->subAction](this); + sPlayerClimbStates[this->subAction](this); if (this->knockbackDuration != 0) { sub_080792D8(); if (this->knockbackDuration == 0) { - this->action = 0x1d; + this->action = PLAYER_CLIMB; this->subAction = 0; this->y.HALF.LO = 0; gPlayerState.animation = 0x2cf; @@ -2183,16 +2258,16 @@ static void sub_08073094(Entity* this) { UpdateFloorType(); } - if (sub_08078EFC() == 0) { + if (RunQueuedAction() == 0) { switch (gPlayerState.floor_type) { case SURFACE_AUTO_LADDER: case SURFACE_2C: this->knockbackDuration = 0; - gPlayerState.flags |= 0x20000000; + gPlayerState.flags |= PL_CLIMBING; UpdateAnimationSingleFrame(this); - if ((this->frame & 0x40) != 0) { + if (this->frame & 0x40) { UpdateFloorType(); - if (!sub_08078EFC()) { + if (!RunQueuedAction()) { this->subAction--; } } @@ -2207,9 +2282,9 @@ static void sub_08073094(Entity* this) { case SURFACE_LADDER: case SURFACE_CLIMB_WALL: UpdateAnimationSingleFrame(this); - if ((this->frame & 0x40) != 0) { + if (this->frame & 0x40) { UpdateFloorType(); - if (!sub_08078EFC()) { + if (!RunQueuedAction()) { this->subAction--; } } @@ -2231,3 +2306,1496 @@ static void PlayerUseEntrance(Entity* this) { RequestPriorityDuration(NULL, 8); sPlayerUseEntranceStates[this->subAction](this); } + +static void sub_080731D8(Entity* this) { + COLLISION_OFF(this); + this->speed = 0x40; + this->animationState = IdleNorth; + this->x.HALF.HI = (this->x.HALF.HI & ~0xF) | 8; + this->x.HALF.LO = 0; + if (gPlayerState.field_0x38 == 0) { + this->subAction = 1; + } else { + this->spriteSettings.draw = 3; + this->subAction = 3; + this->field_0x7c.HALF.HI = this->y.HALF.HI; + this->y.HALF.HI -= 16; + this->child = CreateObjectWithParent(this, OBJECT_70, 1, 0); + if (gPlayerState.field_0x39 == 7) { + this->y.HALF.HI = (this->y.HALF.HI & ~0xF) + 8; + this->x.HALF.HI &= ~0xF; + this->direction = DirectionEast; + this->animationState = IdleEast; + SoundReq(SFX_STAIRS_ASCEND); + } else { + this->y.HALF.HI = (this->y.HALF.HI & ~0xF) + 2; + this->x.HALF.HI = (this->x.HALF.HI & ~0xF) + 15; + this->direction = DirectionWest; + this->animationState = IdleWest; + SoundReq(SFX_STAIRS_DESCEND); + } + SetZeldaFollowTarget(this); + } + if (gPlayerState.flags & PL_NO_CAP) { + gPlayerState.animation = 1028; + } else { + gPlayerState.animation = 260; + } + gRoomControls.cameraTarget = NULL; + sub_0807A108(); + ResetPlayer(); +} + +static void sub_080732D0(Entity* this) { + UpdateAnimationSingleFrame(this); + if (sub_080002B8(this) != 40) { + this->direction = DirectionNorth; + sub_0806F69C(this); + } else { + this->subAction++; + this->y.HALF.LO = 0; + CreateObjectWithParent(this, OBJECT_70, 1, 0); + if (gPlayerState.field_0x39 == 7) { + SoundReq(SFX_STAIRS_ASCEND); + } else { + SoundReq(SFX_STAIRS_DESCEND); + } + } +} + +static void sub_0807332C(Entity* this) { + UpdateAnimationSingleFrame(this); + if (gPlayerState.field_0x39 == 7) { + this->direction = IdleNorth; + } else { + this->direction = 28; + } + if ((this->x.HALF.HI & 0xF) != 0xF) { + if (gPlayerState.field_0x39 == 7) { + this->animationState = IdleEast; + this->direction = 4; + } else { + this->animationState = 6; + if (this->direction <= DirectionWest) { + sub_0806F69C(this); + return; + } + this->direction = (this->direction - 1) & 0x1F; + } + sub_0806F69C(this); + return; + } + if (gPlayerState.field_0x38 != 0) { + gRoomControls.cameraTarget = this; + sub_080791BC(); + } else { + gMain.transition = 3; + *(&gMain.pauseInterval + 1) = 1; + DoFade(5, 8); + } +} + +static void sub_080733BC(Entity* this) { + UpdateAnimationSingleFrame(this); + if ((this->x.HALF.HI & 0xF) == 8) { + Entity* c; + this->direction = DirectionSouth; + this->animationState = IdleSouth; + c = this->child; + if (c != NULL) { + DeleteEntity(c); + this->child = NULL; + if (this->collisionLayer == 1) { + sub_0807AABC(this); + } else { + sub_0807AA80(this); + } + } + } + sub_0806F69C(this); + if (this->field_0x7c.HALF_U.HI == this->y.HALF.HI) { + gRoomControls.cameraTarget = this; + sub_0807921C(); + } +} + +static void PlayerParachute(Entity* this) { + static EntityAction* const sPlayerParachuteStates[] = { + sub_08073468, sub_080734D4, sub_08073504, sub_08073584, sub_0807379C, sub_080737BC, sub_0807380C, sub_08073884, + }; + + if (!RunQueuedAction()) { + UpdateFloorType(); + this->spriteOrientation.flipY = 1; + this->spriteRendering.b3 = 1; + gPlayerState.framestate = PL_STATE_PARACHUTE; + sPlayerParachuteStates[this->subAction](this); + } +} + +static void sub_08073468(Entity* this) { + gPlayerState.animation = 1792; + gPlayerState.jumpStatus = 0; + this->zVelocity = -0x10000; + this->subAction++; + this->field_0x7c.WORD = 480; + this->direction = Direction8FromAnimationState(this->animationState); + if ((gPlayerState.flags & PL_PARACHUTE) == 0) { + gPlayerState.flags |= PL_PARACHUTE; + CreateObjectWithParent(this, OBJECT_61, 0, 0); + } + ResetPlayer(); + if (this->zVelocity > 0 || gPlayerState.field_0x38 == 1) + COLLISION_OFF(this); +} + +static void sub_080734D4(Entity* this) { + GravityUpdate(this, -0x1000); + if (this->zVelocity > 0 || gPlayerState.field_0x38 == 1) { + this->zVelocity = 0x49000; + this->subAction++; + } +} + +static void sub_08073504(Entity* this) { + GravityUpdate(this, this->zVelocity < 0 ? 0x800 : 0x4000); + if (this->zVelocity < 0 && this->z.HALF.HI > -32) { + this->subAction++; + *((u32*)&this->field_0x80.HWORD) = this->direction << 8; + this->field_0x86.HALF.HI = 0; + this->field_0x86.HALF.LO = 0; + gPlayerState.animation = 1800; + if (gPlayerState.field_0x38 == 1) { + COLLISION_OFF(this); + this->subAction = 6; + this->speed = 16; + this->actionDelay = 30; + SoundReq(SFX_NEAR_PORTAL); + } + } + UpdateAnimationSingleFrame(this); +} + +static const u16 gUnk_0811BC28[] = { + 0x0708, + 0x071C, + 0x0718, + 0x0714, +}; + +static const u16 gUnk_0811BC30[] = { + 0x0708, + 0x0728, + 0x0724, + 0x0720, +}; + +static NONMATCH("asm/non_matching/player/sub_08073584.inc", void sub_08073584(Entity* this)) { + u32 state, dir, tmp, tmp2, idx; + + if ((gPlayerState.field_0x90.HALF.HI & 0x80) || this->iframes > 0 || gPlayerState.field_0x3c[0] || + (gPlayerState.flags & PL_PARACHUTE) == 0) { + gPlayerState.jumpStatus |= 0x40; + sub_0807921C(); + sub_08073904(this); + gPlayerState.animation = 1840; + return; + } + gUnk_0200AF00.filler25[10] = 1; + if (sub_0807A2F8(0)) { + this->subAction++; + this->direction = 4 * (this->animationState & 6); + COLLISION_OFF(this); + return; + } + if (gArea.locationIndex == 16) + this->speed = 256; + else + this->speed = 128; + if ((gPlayerState.field_0xd & 0x80) == 0) { + if (this->direction != gPlayerState.field_0xd) { + if (((this->direction - gPlayerState.field_0xd) & 0x1F) <= 0xF) + *(u32*)&this->field_0x80 -= 32; + else + *(u32*)&this->field_0x80 += 32; + } + } + this->direction = (*(u32*)&this->field_0x80 >> 8) & 0x1F; + sub_08079E08(); + state = 4 * this->animationState; + dir = this->direction; + if (this->animationState == 0) { + state = (state + 8) & 0x1F; + dir = (dir + 8) & 0x1F; + } + if (state - 7 > dir) { + tmp = (this->animationState - 2) & 7; + } else if (state + 7 < dir) { + tmp = (this->animationState + 2) & 7; + } else { + tmp = this->animationState; + } + if (tmp != this->animationState) { + this->field_0x86.HALF.HI = 20; + } + this->animationState = tmp; + idx = 0; + tmp2 = gPlayerState.field_0xd >> 2; + if (!this->field_0x86.HALF.HI || ((gPlayerState.field_0xd & 0x80) == 0 && this->animationState != tmp2)) { + if ((gPlayerState.field_0xd & 0x80) == 0) { + if (this->animationState != tmp2) { + if (this->animationState == (tmp2 ^ 4)) { + idx = 2; + } else { + if (this->animationState == (((tmp2 & 6) + 2) & 7)) { + idx = 1; + } else { + idx = 3; + } + } + } + } + if (gUnk_0811BC28[idx] == gPlayerState.animation) { + if (gArea.locationIndex == 16) + sub_080042BA(this, 2); + else + UpdateAnimationSingleFrame(this); + } else { + gPlayerState.animation = gUnk_0811BC28[idx]; + } + this->field_0x86.HALF.LO = idx; + } else { + + this->field_0x86.HALF.HI--; + if (gUnk_0811BC30[this->field_0x86.HALF.LO] == gPlayerState.animation) + UpdateAnimationSingleFrame(this); + else + gPlayerState.animation = gUnk_0811BC30[this->field_0x86.HALF.LO]; + } + if (--this->field_0x7c.WORD == -1) { + gPlayerState.jumpStatus |= 0x40; + sub_0807921C(); + } else { + u32 di = (this->field_0x7c.WORD / 20); + this->z.HALF.HI = -8 - di; + } +} +END_NONMATCH + +static void sub_0807379C(Entity* this) { + if (this->z.HALF.HI > -32) { + this->z.HALF.HI--; + } else { + this->subAction++; + } +} + +static void sub_080737BC(Entity* this) { + u16 pos; + u32 tmp; + + UpdateAnimationSingleFrame(this); + sub_0806F69C(this); + this->z.WORD += 0x4C00; + if (DirectionIsHorizontal(this->direction)) + pos = this->x.HALF.HI; + else + pos = this->y.HALF.HI; + tmp = 0xf; + tmp &= pos; + if (tmp == 8 && !sub_080002D0(this)) { + gPlayerState.jumpStatus |= 0x40; + sub_0807921C(); + } +} + +static void sub_0807380C(Entity* this) { + static const u16 sAnims[] = { + 0x0708, + 0x071C, + 0x0718, + 0x0714, + }; + + if ((gScreenTransition.frameCount & 3) == 0) { + u32 tmp = (this->animationState + 2) & 6; + this->animationState = tmp; + this->direction = 4 * tmp; + } + gPlayerState.animation = sAnims[this->animationState >> 1]; + if (this->z.HALF.HI < -16) { + GravityUpdate(this, 0x200); + } else { + if (--this->actionDelay == 0) { + this->subAction = 7; + this->actionDelay = 60; + this->zVelocity = 0x20000; + } + } + UpdateAnimationSingleFrame(this); +} + +void sub_08073884(Entity* this) { + static const u16 sAnims[] = { + 0x0708, + 0x071C, + 0x0718, + 0x0714, + }; + + if ((gScreenTransition.frameCount & 1) == 0) { + u32 tmp = (this->animationState + 2) & 6; + this->animationState = tmp; + this->direction = 4 * tmp; + } + gPlayerState.animation = sAnims[this->animationState >> 1]; + if (--this->actionDelay == 0) { + if (gPlayerState.field_0x39 != 0xff) + DoExitTransition(&gUnk_0813AD88[gPlayerState.field_0x39]); + else + InitParachuteRoom(); + } + GravityUpdate(this, -0x1800); + UpdateAnimationSingleFrame(this); +} + +void sub_08073904(Entity* this) { + static EntityAction* const sStates[] = { + sub_08073924, sub_08073968, sub_080739EC, sub_08073A94, sub_08073B8C, sub_08073C30, + }; + + sStates[gPlayerState.jumpStatus & 7](this); +} + +void sub_08073924(Entity* this) { + if ((gPlayerState.flags & PL_ROLLING) == 0 && (this->z.HALF.HI & 0x8000) && !gPlayerState.field_0xa) { + gPlayerState.jumpStatus = 0x40; + gPlayerState.field_0xd = 0xff; + this->direction = 0xff; + sub_08077B20(); + sub_08073968(this); + } +} + +static void sub_08073968(Entity* this) { + if ((gPlayerState.jumpStatus & 0xC0) == 0) { + this->direction = gPlayerState.field_0xd; + } + sub_08078F24(); + if ((gPlayerState.heldObject | gPlayerState.keepFacing) == 0) { + if (gPlayerState.flags & PL_NO_CAP) { + gPlayerState.animation = 1052; + } else { + if ((gPlayerState.flags & PL_MINISH) == 0) { + if (gPlayerState.flags & PL_MINECART) { + gPlayerState.animation = 2064; + } else { + gPlayerState.animation = 2060; + } + } + } + if ((gPlayerState.jumpStatus & 0xC0) == 0) { + sub_0806F948(this); + } + SoundReq(SFX_PLY_JUMP); + } + gPlayerState.jumpStatus = (gPlayerState.jumpStatus & ~7) | 2; +} + +static void sub_080739EC(Entity* this) { + u32 v; + + if ((gPlayerState.jumpStatus & 0xC0) != 0) { + gPlayerState.field_0xd = this->direction; + if (gPlayerState.jumpStatus & 0x80) + this->collisions = 0; + v = 0x2000; + } else { + if ((u16)sub_0806F854(this, 0, -12)) { + gPlayerState.jumpStatus |= 8; + v = 0x4000; + } else { + v = 0x2000; + if (gPlayerState.jumpStatus & 0x10) + v /= 2; + } + } + if ((gPlayerState.jumpStatus & 0xC0) == 0) { + if ((gPlayerState.jumpStatus & 0x20) && this->zVelocity == 0) { + this->zVelocity = 0x28000; + this->actionDelay = 10; + this->direction = 0xff; + gPlayerState.jumpStatus += 2; + gPlayerState.animation = 372; + ResetPlayerVelocity(); + return; + } + } + if (!GravityUpdate(this, v)) + sub_08073AD4(this); +} + +void sub_08073A94(Entity* this) { + if ((this->frame & 0x80) || this->knockbackDuration != 0) { + sub_08073B60(this); + } + if (gPlayerEntity.z.WORD != 0) { + gPlayerState.jumpStatus = 0; + sub_08073924(this); + } +} + +static void sub_08073AD4(Entity* this) { + u32 tmp; + + if ((this->collisionLayer & 2) == 0) { + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + } + tmp = (gPlayerState.jumpStatus & ~0xC0); + if (this->action != PLAYER_MINISHDIE) { + sub_0807A2B8(); + gPlayerState.jumpStatus = 0; + UpdateFloorType(); + if (gPlayerState.queued_action != 0 || gPlayerState.swimState != 0) { + return; + } + if (gPlayerState.field_0x3[1]) + sub_08073B60(this); + } + gPlayerState.jumpStatus = tmp + 1; + if (gPlayerState.flags & PL_NO_CAP) + gPlayerState.animation = 1060; + else + gPlayerState.animation = 2080; + SoundReq(SFX_PLY_LAND); +} + +static void sub_08073B60(Entity* this) { + gPlayerState.field_0x1a[1] = 0; + gPlayerState.field_0x3[1] = 0; + gPlayerState.jumpStatus = 0; + sub_08079938(); + sub_080085B0(this); + if ((gPlayerState.flags & PL_USE_PORTAL) == 0) { + sub_080791BC(); + } +} + +void sub_08073B8C(Entity* this) { + if (!gPlayerState.field_0x3[1]) { + sub_08073B60(this); + return; + } + sub_0806F854(this, 0, -12); + if ((this->frame & 1) == 0) + UpdateAnimationSingleFrame(this); + COLLISION_OFF(this); + if (this->actionDelay != 0) { + --this->actionDelay; + return; + } + GravityUpdate(this, 0x4000); + if (this->z.HALF.HI >= -8) { + if (!gPlayerState.field_0x14 && (sub_0807A2B8() || !sub_08079D48())) { + COLLISION_ON(this); + sub_08073B60(this); + return; + } + gPlayerState.jumpStatus++; + this->actionDelay = 15; + InitScreenShake(0x10, 0); + SoundReq(SFX_14C); + } +} + +void sub_08073C30(Entity* this) { + if (!gPlayerState.field_0x3[1] || --this->actionDelay == 0xFF) { + sub_08073B60(this); + } else { + COLLISION_ON(this); + UpdateAnimationSingleFrame(this); + } +} + +static void PlayerMinish(Entity* this) { + static EntityAction* const sPlayerMinishStates[] = { + sub_08073C80, sub_08073D20, sub_08073F04, sub_08073F4C, sub_08073FD0, sub_08074018, sub_08074060, sub_080740D8, + }; + sPlayerMinishStates[this->subAction](this); +} + +extern Hitbox gUnk_0811BC80; + +static void sub_08073C80(Entity* this) { + static const Hitbox sMinishHitbox = { 0, -1, { 3, 2, 2, 3 }, 2, 2 }; + + gPlayerState.flags |= PL_MINISH; + gPlayerState.animation = 3096; + this->spriteSettings.draw = 3; + this->spritePriority.b1 = 3; + this->spriteSettings.shadow = 0; + this->spriteRendering.b0 = 0; + this->hitbox = (Hitbox*)&sMinishHitbox; + this->actionDelay = 0; + this->field_0xf = 2; + this->knockbackDuration = 0; + this->subAction = 1; + LoadSwapGFX(this, 1, 2); + gRoomControls.cameraTarget = this; + sub_080809D4(); + if (gScreenTransition.player_status.spawn_type == PL_SPAWN_9) { + gScreenTransition.player_status.spawn_type = PL_SPAWN_DEFAULT; + this->spriteSettings.draw = 0; + this->subAction = 2; + } else { + CreateObject(MINISH_EMOTICON, 0, 0); + } +} + +static void sub_08073D20(Entity* this) { + gPlayerState.framestate = PL_STATE_IDLE; + this->spritePriority.b1 = 3; + this->hurtType = 1; + ResetPlayerVelocity(); + if (!gPlayerState.swimState) + this->speed = 0xC0; + if (!sub_08079B24()) { + sub_08079708(this); + return; + } + if (!RunQueuedAction()) { + sub_08073904(this); + UpdateFloorType(); + if (gPlayerState.jumpStatus) + gPlayerState.framestate = PL_STATE_CAPE; + if (gPlayerState.floor_type != SURFACE_SHALLOW_WATER && gPlayerState.floor_type != SURFACE_WATER) { + gPlayerState.swimState = 0; + this->field_0x3c &= 0xFBu; + } + if (!RunQueuedAction() && this->subAction != 2) { + if ((gPlayerState.flags & PL_HIDDEN) == 0) { + sub_080085B0(this); + sub_080792D8(); + if (!gPlayerState.field_0xa && sub_08079550(gPlayerState.field_0xa)) + return; + if (this->knockbackDuration) { + this->direction = this->knockbackDirection; + return; + } + if (sub_080782C0()) { + RunQueuedAction(); + return; + } + COLLISION_ON(this); + } + if (!sub_08019840()) { + sub_08077698(this); + if (!GravityUpdate(this, 0x2000)) + gPlayerState.jumpStatus = 0; + if ((gPlayerState.field_0x7 & 0x80) == 0 && !gPlayerState.field_0xa) { + if (this->iframes <= 8) { + if (gPlayerState.swimState) { + gPlayerState.framestate = PL_STATE_SWIM; + sub_0807ACCC(this); + sub_08079E08(); + } else { + this->direction = gPlayerState.field_0xd; + if ((gPlayerState.field_0xd & 0x80) == 0) { + gPlayerState.framestate = PL_STATE_WALK; + sub_08079E08(1); + } + } + } + if (!gPlayerState.keepFacing) + sub_0806F948(this); + UpdateAnimationSingleFrame(this); + sub_0807B068(this); + if (sub_080793E4(16)) { + this->iframes = 20; + this->knockbackDuration = 4; + this->knockbackDirection = + DirectionTurnAround(Direction8FromAnimationState(this->animationState)); + ModHealth(-2); + SoundReq(SFX_PLY_VO6); + } + if ((gPlayerState.flags & PL_HIDDEN) == 0) + sub_08008AC6(this); + else + gPlayerState.framestate = PL_STATE_D; + } + } + } + } +} + +static void sub_08073F04(Entity* this) { + this->spritePriority.b1 = 2; + this->spriteSettings.draw = 0; + this->subAction++; + this->zVelocity = 0x28000; + this->speed = 0x100; + gPlayerState.flags &= ~PL_MINISH; + ResetPlayer(); +} + +static void sub_08073F4C(Entity* this) { + u32 x = gArea.curPortalX; + u32 y = gArea.curPortalY; + if (this->x.HALF.HI != x || this->y.HALF.HI != y) { + this->direction = sub_080045D4(this->x.HALF.HI, this->y.HALF.HI, gArea.curPortalX, gArea.curPortalY); + this->speed = 0x100; + sub_0806F69C(this); + } else { + COLLISION_OFF(this); + this->actionDelay = 30; + this->subAction++; + this->spriteSettings.flipX = 0; + *(u32*)&this->field_0x80.HWORD = 1152; + *(u32*)&this->cutsceneBeh.HWORD = 1152; + this->spriteRendering.b0 = 3; + sub_08074018(this); + gPlayerState.animation = 1852; + } +} + +static void sub_08073FD0(Entity* this) { + if (this->actionDelay != 0) { + if (--this->actionDelay != 0) { + return; + } + if (this->spriteSettings.draw == 0) { + this->spriteSettings.draw = 3; + SoundReq(SFX_PLY_JUMP); + } + } + GravityUpdate(this, 0x2000); + if (this->zVelocity == 0) { + this->subAction++; + SoundReq(SFX_PLY_GROW); + } +} + +static void sub_08074018(Entity* this) { + if (*(u32*)&this->field_0x80 > 0x100) + *(u32*)&this->field_0x80 -= 32; + if (*(u32*)&this->cutsceneBeh > 0x100) + *(u32*)&this->cutsceneBeh -= 32; + else + this->subAction++; + sub_0805EC9C(this, *(u32*)&this->field_0x80, *(u32*)&this->cutsceneBeh, 0); + UpdateAnimationSingleFrame(this); +} + +static void sub_08074060(Entity* this) { + if (!GravityUpdate(this, 0x2000)) { + this->hitbox = (Hitbox*)&gPlayerHitbox; + this->direction = DirectionSouth; + this->animationState = IdleSouth; + this->speed = 0x100; + this->spritePriority.b1 = 1; + this->spriteSettings.shadow = 1; + this->field_0xf = 0; + this->subAction++; + this->zVelocity = 0x20000; + gPlayerState.animation = 2060; + sub_0805EC60(this); + } else { + UpdateAnimationSingleFrame(this); + } +} + +static NONMATCH("asm/non_matching/player/sub_080740D8.inc", void sub_080740D8(Entity* this)) { + int v1; // r5 + int v2; // r6 + unsigned int v4; // r0 + Hitbox* v5; // r2 + int v6; // r0 + + UpdateAnimationSingleFrame(this); + if (!this->field_0xf) + v4 = this->direction; + else + v4 = this->direction ^ 0x10; + switch (v4) { + case 24: + v5 = this->hitbox; + v2 = this->x.HALF.HI - v5->unk2[0] + v5->offset_x - gRoomControls.roomOriginX; + v6 = this->y.HALF.HI; + v1 = v6 + v5->offset_y - gRoomControls.roomOriginY; + break; + case 8: + v5 = this->hitbox; + v2 = this->x.HALF.HI + v5->unk2[0] + v5->offset_x - gRoomControls.roomOriginX; + v6 = this->y.HALF.HI; + v1 = v6 + v5->offset_y - gRoomControls.roomOriginY; + break; + case 16: + v5 = this->hitbox; + v2 = this->x.HALF.HI + v5->offset_x - gRoomControls.roomOriginX; + v6 = this->y.HALF.HI + v5->unk2[3]; + v1 = v6 + v5->offset_y - gRoomControls.roomOriginY; + break; + case 0: + v5 = this->hitbox; + v2 = this->x.HALF.HI + v5->unk2[0] + v5->offset_x - gRoomControls.roomOriginX; + v6 = this->y.HALF.HI; + v1 = v6 + v5->offset_y - gRoomControls.roomOriginY; + break; + } + + if (sub_080086B4(v2, v1, gUnk_080082DC)) + sub_0806F69C(this); + else + this->field_0xf = 1; + if (!GravityUpdate(this, 0x2000)) + sub_0807921C(); +} +END_NONMATCH + +u32 sub_080741C4() { + if ((gPlayerState.jumpStatus && (gPlayerState.jumpStatus & 7) != 3) || gPlayerEntity.z.WORD != 0) { + gPlayerState.field_0x11 = 0; + gPlayerState.field_0x37 = 0; + return 1; + } + return 0; +} + +void SurfaceAction_DoNothing(Entity* this) { +} + +void SurfaceAction_Pit(Entity* this) { + if (!sub_080741C4() && sub_08079C30(this)) { + if (this->action != PLAYER_FALL) { + ResetPlayer(); + gPlayerState.queued_action = PLAYER_FALL; + } + } +} + +void SurfaceAction_SlopeGndGndVertical(Entity* this) { + sub_08074244(this, 8, 0x18); +} + +void SurfaceAction_SlopeGndGndHorizontal(Entity* this) { + sub_08074244(this, 0, 0x10); +} + +static void sub_08074244(Entity* this, u32 a1, u32 a2) { + if (gPlayerState.floor_type != SURFACE_LIGHT_GRADE && gPlayerState.floor_type != SURFACE_29) { + this->collisionLayer = 3; + this->spriteOrientation.flipY = 1; + this->spriteRendering.b3 = 1; + } + if (!sub_080741C4()) { + u32 tmp; + if (gPlayerState.dash_state == 0) { + tmp = gPlayerState.field_0xd; + } else { + tmp = 4 * this->animationState; + } + if (a1 != tmp || a2 != tmp) { + gPlayerState.field_0x80 -= 80; + } + } +} + +void SurfaceAction_6(Entity* this) { + if (gPlayerState.swimState != 0) { + gPlayerState.swimState = 0; + } + this->spritePriority.b0 = 4; + this->field_0x3c &= ~4; +} + +void SurfaceAction_7(Entity* this) { + if (!sub_080741C4() && (gPlayerState.flags & PL_MINISH) == 0 && gPlayerState.field_0x11 == 15) { + CreateObjectWithParent(this, OBJECT_E, 0, 0); + } +} + +void SurfaceAction_MinishDoorFront(Entity* this) { + if ((this->y.HALF.HI & 0xF) <= 0xD) { + this->collisions = 0x6600; + hide(this); + } else { + EnablePlayerDraw(this); + } +} + +void SurfaceAction_MinishDoorBack(Entity* this) { + if ((this->y.HALF.HI & 0xF) > 1) { + this->collisions = 0x6600; + hide(this); + } else { + EnablePlayerDraw(this); + } +} + +void SurfaceAction_A(Entity* this) { + if ((this->x.HALF.HI & 0xF) < 12) { + this->collisions = 0x66; + hide(this); + } else { + EnablePlayerDraw(this); + } +} + +void SurfaceAction_B(Entity* this) { + if ((this->x.HALF.HI & 0xF) > 4) { + this->collisions = 0x66; + hide(this); + } else { + EnablePlayerDraw(this); + } +} + +static void hide(Entity* this) { + gPlayerState.flags |= PL_HIDDEN; + this->type2 = 0x80; + this->spriteSettings.draw = 0; + COLLISION_OFF(this); + this->knockbackDuration = 0; + ResetPlayer(); +} + +void SurfaceAction_14(Entity* this) { + if (!sub_080741C4()) { + if (sub_08079C30(this)) { + u32 spd; + sub_0807AABC(this); + sub_08074808(this); + spd = this->speed; + this->speed = 0x300; + this->direction = 16; + gPlayerState.field_0xa |= 0x80; + sub_0806F69C(this); + this->speed = spd; + } + } +} + +void SurfaceAction_CloneTile(Entity* this) { + if (gPlayerState.field_0xa0[0] == 4) { + u32 item, n, i; + if (ItemIsSword(gSave.stats.itemOnA)) { + item = gSave.stats.itemOnA; + } else { + item = gSave.stats.itemOnB; + } + switch (item) { + case 1: + case 2: + n = 0; + break; + case 3: + n = 1; + break; + case 4: + n = 2; + break; + case 6: + n = 3; + break; + default: + break; + } + for (i = 0; i < n; ++i) { + if (gPlayerClones[i] == 0) + break; + } + if (n > i) { + Entity* e = CreateObjectWithParent(this, 0x10, i, 0); + gPlayerClones[i] = e; + if (e != NULL) { + CopyPosition(this, e); + } + } else { + gPlayerState.field_0x1a[1] |= 0x80; + gPlayerState.flags |= PL_CLONING; + this->x.WORD = (this->x.WORD & ~0xFFFFF) | 0x80000; + this->y.WORD = (this->y.WORD & ~0xFFFFF) | 0x80000; + sub_08077AEC(); + } + } +} + +void SurfaceAction_16(Entity* this) { + if (!sub_080741C4() && !gPlayerState.field_0x14) { + if (this->iframes == 0) { + ModHealth(-2); + SoundReq(SFX_PLY_VO6); + this->iframes = 24; + this->knockbackDuration = 4; + this->knockbackDirection = sub_080045D4((this->x.HALF.HI & 0xFFF0) | 8, (this->y.HALF.HI & 0xFFF0) | 8, + this->x.HALF.HI, this->y.HALF.HI); + } + if ((gPlayerState.flags & PL_MINISH) == 0) + sub_08008790(this, 7); + } +} + +void SurfaceAction_Ice(Entity* this) { + if (!sub_080741C4() && ((gPlayerState.field_0x34[1] & 0x80) == 0 || this->knockbackDuration != 0)) { + ResetPlayerVelocity(); + } +} + +void SurfaceAction_ShallowWater(Entity* this) { + if (!sub_080741C4()) { + if (gPlayerState.flags & PL_MINISH) { + this->spritePriority.b1 = 0; + SurfaceAction_Water(this); + } else { + if (gPlayerState.swimState) { + COLLISION_ON(this); + this->field_0x3c &= ~4; + this->spritePriority.b0 = 4; + gPlayerState.swimState = 0; + } + if ((gPlayerState.field_0x90.HALF.HI & 0xF00) || gPlayerState.field_0x11 == 1) + SoundReq(SFX_WATER_WALK); + } + } +} + +void SurfaceAction_SlopeGndWater(Entity* this) { + if (gPlayerState.swimState) { + COLLISION_ON(this); + this->field_0x3c &= ~4; + this->spritePriority.b0 = 4; + gPlayerState.swimState = 0; + } +} + +ASM_FUNC("asm/non_matching/player/sub_08074678.inc", void SurfaceAction_Swamp(Entity* this)); + +void SurfaceAction_Water(Entity* this) { + if (!sub_080741C4()) { + if (gPlayerState.field_0x14 == 0) { + gPlayerState.field_0x3f += 2; + } else { + gPlayerState.swimState = 0; + this->spritePriority.b0 = 4; + this->field_0x3c &= ~4; + } + if ((gPlayerState.swimState & 0xF) || sub_08079C30(this)) { + sub_08074808(this); + } + } +} + +void sub_08074808(Entity* this) { + sub_08077AEC(this); + if (GetInventoryValue(ITEM_FLIPPERS) == 1) { + if (!gPlayerState.swimState) { + if ((gPlayerState.flags & 0x10000) != 0) + gPlayerState.swimState = 1; + else + gPlayerState.swimState = 8; + this->speed = 0; + gPlayerState.field_0x82[7] = 0; + if ((gPlayerState.flags & PL_MINISH) == 0) + CreateFx(this, FX_WATER_SPLASH, 0); + SoundReq(SFX_1A5); + ResetPlayer(); + } + if ((gPlayerState.swimState & 0xF) != 1) { + sub_08079744(this); + --gPlayerState.swimState; + } + gPlayerState.flags &= ~(PL_BURNING | PL_FROZEN); + if ((gPlayerState.flags & PL_DRUGGED) != 0 && this->field_0x7a.HWORD <= 0xEu) + this->field_0x7a.HWORD = 15; + } else { + gPlayerState.queued_action = PLAYER_DROWN; + } +} + +void SurfaceAction_Button(Entity* this) { + gPlayerState.field_0x3f -= 2; +} + +void sub_080748D4() { + sub_080741C4(); +} + +void SurfaceAction_1B(Entity* this) { + if (!sub_080741C4()) { + if (this->collisionLayer != 1) { + this->y.HALF.HI += 12; + if ((gPlayerState.flags & PL_MINISH) == 0) + this->z.HALF.HI -= 12; + } + sub_0807AABC(this); + } +} + +void SurfaceAction_1C(Entity* this) { + if (!sub_080741C4()) { + if (sub_08079C30(this)) { + gPlayerState.queued_action = PLAYER_LAVA; + } + } +} + +void SurfaceAction_ClimbWall(Entity* this) { + if (GetInventoryValue(ITEM_GRIP_RING) == 1) { + SurfaceAction_Ladder(this); + } else { + this->y.HALF.HI = (this->y.HALF.HI & 0xFFF0) | 0xF; + gPlayerState.floor_type = SURFACE_NORMAL; + } +} + +void SurfaceAction_Ladder(Entity* this) { + if (!sub_080741C4()) { + gPlayerState.jumpStatus = 0; + this->spriteRendering.b3 = 1; + this->spriteOrientation.flipY = 1; + this->animationState = IdleNorth; + this->collisionLayer = 3; + ResetPlayer(); + } +} + +void SurfaceAction_2C(Entity* this) { + if (GetInventoryValue(68) == 1) { + SurfaceAction_AutoLadder(this); + } else { + this->y.HALF.HI &= 0xFFF0; + gPlayerState.floor_type = SURFACE_NORMAL; + } +} + +void SurfaceAction_AutoLadder(Entity* this) { + if (!sub_080741C4()) { + this->spriteRendering.b3 = 1; + this->spriteOrientation.flipY = 1; + this->animationState = IdleNorth; + this->collisionLayer = 3; + gPlayerState.swimState = 0; + this->field_0x3c &= ~4; + if ((this->y.HALF.HI & 0xF) <= 7) { + gPlayerState.animation = 723; + this->direction = DirectionSouth; + } else { + gPlayerState.animation = 726; + this->direction = DirectionNorth; + } + ResetPlayer(); + } +} + +void SurfaceAction_20(Entity* this) { + if (gPlayerState.swimState & 0x80) { + Entity* e = CreateObjectWithParent(&gPlayerEntity, GROUND_ITEM, ITEM_RUPEE1, 0); + if (e != NULL) { + e->actionDelay = 1; + UpdateSpriteForCollisionLayer(e); + sub_08000152(57, gPlayerState.field_0x22[0], this->collisionLayer); + } + } + SurfaceAction_Water(this); +} + +void SurfaceAction_22(Entity* this) { +} + +void SurfaceAction_Dust(Entity* this) { + if (!sub_080741C4()) { + gPlayerState.field_0x80 -= 128; + if (gPlayerState.field_0x11 == 1 || (gPlayerState.field_0x90.HALF.HI & 0xF00) != 0) { + if (gPlayerState.floor_type == SURFACE_DUST) + CreateObjectWithParent(this, OBJECT_21, 1, 0); + else + CreateObjectWithParent(this, OBJECT_21, 1, 1); + } + } +} + +void SurfaceAction_26(Entity* this) { + u32 v1; + + if (gPlayerState.dash_state == 0) + v1 = gPlayerState.field_0xd; + else + v1 = 4 * this->animationState; + sub_08074244(this, v1, v1); +} + +void SurfaceAction_Hole(Entity* this) { + if (!gPlayerState.field_0x14 && !sub_080741C4()) { + if (gPlayerState.flags & PL_MINISH) + SurfaceAction_Pit(this); + else + gPlayerState.queued_action = PLAYER_INHOLE; + } +} + +void SurfaceAction_D(Entity* this) { + if (!sub_080741C4() && (gPlayerState.flags & PL_MINISH) == 0) { + this->animationState = IdleNorth; + this->direction = DirectionNorth; + sub_08074BF8(this); + } +} + +void SurfaceAction_E(Entity* this) { + if (!sub_080741C4() && (gPlayerState.flags & PL_MINISH) == 0) { + this->animationState = IdleSouth; + this->direction = DirectionSouth; + sub_08074BF8(this); + } +} + +void SurfaceAction_F(Entity* this) { + if (!sub_080741C4() && (gPlayerState.flags & PL_MINISH) == 0) { + this->animationState = IdleWest; + this->direction = DirectionWest; + sub_08074BF8(this); + } +} + +void SurfaceAction_10(Entity* this) { + if (!sub_080741C4() && (gPlayerState.flags & PL_MINISH) == 0) { + this->animationState = IdleEast; + this->direction = DirectionEast; + sub_08074BF8(this); + } +} + +static void sub_08074BF8(Entity* this) { + ResetPlayer(); + this->spritePriority.b1 = 0; + this->speed = 320; + gPlayerState.flags |= 0x2000000; + gPlayerState.field_0xa |= 0x80; + gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.field_0x27[0]++; + sub_0806F69C(this); +} + +static void sub_08074C44(Entity* this) { + static EntityAction* const gUnk_0811BC88[] = { + sub_08074C68, + sub_08074CF8, + sub_08074F00, + sub_080750F4, + }; + + if (!RunQueuedAction()) + gUnk_0811BC88[this->subAction](this); +} + +static void sub_08074C68(Entity* this) { + this->field_0x68.HALF.LO = 0; + if (gPlayerState.field_0x38 != 1) { + if (*(ScriptExecutionContext**)&this->cutsceneBeh.HWORD == &gPlayerScriptExecutionContext) { + this->subAction = 1; + sub_0807DD64(this); + sub_08074CF8(this); + } + } else { + this->spriteSettings.draw = 1; + this->animationState = 0; + this->spritePriority.b1 = 0; + this->subAction = 2; + this->field_0x68.HALF.LO = 1; + sub_0807DD64(this); + if (!gPlayerState.field_0x39) + gPlayerState.animation = 1850; + else + gPlayerState.animation = 1846; + DoFade(5, 0x100); + } +} + +static void sub_08074CF8(Entity* this) { + u32 v3; + + v3 = this->animationState; + ExecuteScript(this, *(ScriptExecutionContext**)&this->cutsceneBeh.HWORD); + sub_08074D34(this, *(ScriptExecutionContext**)&this->cutsceneBeh.HWORD); + if ((this->field_0x82.HWORD & 1) != 0) + this->animationState = v3; + GravityUpdate(this, 0x2000); + UpdateAnimationSingleFrame(this); +} + +void sub_08074D34(Entity* this, ScriptExecutionContext* ctx) { + while (ctx->postScriptActions) { + u32 bit = (~ctx->postScriptActions + 1) & ctx->postScriptActions; + ctx->postScriptActions ^= bit; + switch (bit) { + case 0x1: + if (gPlayerState.flags & PL_NO_CAP) + gPlayerState.animation = 0x400; + else + gPlayerState.animation = 0x100; + break; + case 0x2: + if (gPlayerState.flags & PL_NO_CAP) + gPlayerState.animation = 1028; + else + gPlayerState.animation = 260; + break; + case 0x4: + break; + case 0x8: + if (gPlayerState.flags & PL_NO_CAP) + gPlayerState.animation = 1052; + else + gPlayerState.animation = 2060; + this->zVelocity = 0x18000; + break; + case 0x10: + CreateSpeechBubbleExclamationMark(this, 8, -24); + break; + case 0x20: + CreateSpeechBubbleQuestionMark(this, 8, -24); + break; + case 0x80: + this->spriteSettings.draw = 1; + break; + case 0x100: + this->spriteSettings.draw = 0; + break; + case 0x200: + this->field_0x82.HWORD = 0; + break; + case 0x1000: + this->field_0x82.HWORD &= ~1; + break; + case 0x2000: + this->field_0x82.HWORD |= 1; + break; + case 0x4000: + this->field_0x82.HWORD |= 8; + break; + case 0x8000: + this->field_0x82.HWORD |= 4; + break; + case 0x20000: + this->spriteSettings.flipX ^= 1; + break; + case 0x100000: + this->subAction = 2; + this->field_0x68.HALF.LO = 2; + break; + case 0x200000: + this->subAction = 3; + this->field_0x68.HALF.LO = 0; + break; + } + } +} + +static void sub_08074F00(Entity* this) { + static EntityAction* const gUnk_0811BC98[] = { + sub_08074F1C, sub_08074F2C, sub_08074F44, sub_08074F8C, sub_08074FEC, sub_0807501C, sub_0807508C, + }; + + gUnk_0811BC98[this->field_0x68.HALF.LO](this); +} + +void sub_08074F1C(Entity* this) { + this->field_0x68.HALF.LO = 1; + this->animationState = IdleNorth; +} + +void sub_08074F2C(Entity* this) { + ExecuteScript(this, *(ScriptExecutionContext**)&this->cutsceneBeh.HWORD); + sub_08074D34(this, *(ScriptExecutionContext**)&this->cutsceneBeh.HWORD); +} + +void sub_08074F44(Entity* this) { + typedef struct { + u8 fill[0x6c]; + Entity* e; + } fixme; + + this->field_0x68.HALF.LO++; + if (((fixme*)&gPlayerEntity)->e) + DeleteEntity(((fixme*)&gPlayerEntity)->e); + if (!gPlayerState.field_0x39) { + gPlayerState.animation = 1851; + gPlayerState.flags |= PL_NO_CAP; + } else { + gPlayerState.animation = 1847; + } +} + +void sub_08074F8C(Entity* this) { + UpdateAnimationSingleFrame(this); + if (this->frame == 1) { + this->frame = 0; + gActiveScriptInfo.unk_00 |= 4; + } + if (this->frame & 0x80) { + this->field_0x68.HALF.LO++; + this->actionDelay = 8; + this->animationState = IdleSouth; + if (!gPlayerState.field_0x39) { + gPlayerState.animation = 1024; + } else { + gPlayerState.animation = 256; + } + } +} + +void sub_08074FEC(Entity* this) { + UpdateAnimationSingleFrame(this); + if (--this->actionDelay == 0) { + this->field_0x68.HALF.LO++; + this->actionDelay = 4; + this->animationState = gPlayerState.field_0x3a; + } +} + +void sub_0807501C(Entity* this) { + if (--this->actionDelay == 0) { + this->animationState = gPlayerState.field_0x3a; + if (!gPlayerState.field_0x39) { + gPlayerState.animation = 1052; + } else { + gPlayerState.animation = 2060; + } + this->spritePriority.b1 = 1; + this->direction = Direction8FromAnimationState(this->animationState); + this->speed = 200; + this->zVelocity = 0x20000; + this->actionDelay = 8; + this->field_0x68.HALF.LO++; + SoundReq(SFX_PLY_JUMP); + } +} + +void sub_0807508C(Entity* this) { + UpdateAnimationSingleFrame(this); + if (GravityUpdate(this, 0x2000)) { + sub_0806F69C(this); + } else { + if (!gPlayerState.field_0x39) { + gPlayerState.animation = 1024; + } else { + gPlayerState.flags &= ~PL_NO_CAP; + gPlayerState.animation = 256; + } + if (--this->actionDelay == 0) { + this->animationState = IdleSouth; + this->subAction = 1; + this->field_0x68.HALF.LO = 0; + SoundReq(SFX_PLY_LAND); + } + } +} + +void sub_080750F4(Entity* this) { + static EntityAction* const gUnk_0811BCB4[] = { + sub_08075110, + sub_0807513C, + sub_0807518C, + sub_080751B4, + }; + gUnk_0811BCB4[this->field_0x68.HALF.LO](this); +} + +void sub_08075110(Entity* this) { + this->field_0x68.HALF.LO++; + this->field_0xf = this->animationState; + this->animationState = 0; + gPlayerState.animation = 1844; + gPlayerState.flags &= ~PL_NO_CAP; +} + +void sub_0807513C(Entity* this) { + UpdateAnimationSingleFrame(this); + if (this->frame == 1) { + this->frame = 0; + SoundReq(SFX_PLY_JUMP); + } + if (this->frame == 2) { + this->frame = 0; + SoundReq(SFX_14B); + SoundReq(SFX_PLY_VO6); + } + if (this->frame & 0x80) { + this->field_0x68.HALF.LO++; + this->actionDelay = 60; + } +} + +void sub_0807518C(Entity* this) { + if (--this->actionDelay == 0) { + this->field_0x68.HALF.LO++; + gPlayerState.animation = 969; + } +} + +void sub_080751B4(Entity* this) { + UpdateAnimationSingleFrame(this); + if (this->frame & 0x80) { + this->animationState = IdleSouth; + this->subAction = 1; + this->field_0x68.HALF.LO = 0; + gPlayerState.animation = 256; + } +} + +// regalloc +NONMATCH("asm/non_matching/player/sub_080751E8.inc", void sub_080751E8(u32 a1, u32 a2, void* script)) { + void* tmp; + Entity* e; + Entity* e2; + + typedef struct { + u8 filler[0x84]; + ScriptExecutionContext* ctx; + } fixme; + + MemClear(&gPlayerScriptExecutionContext, sizeof(ScriptExecutionContext)); + gPlayerScriptExecutionContext.scriptInstructionPointer = script; + ((fixme*)&gPlayerEntity)->ctx = &gPlayerScriptExecutionContext; + gPlayerState.queued_action = PLAYER_08074C44; + gPlayerState.field_0x38 = 1; + gPlayerState.field_0x39 = 0; + gPlayerState.field_0x3a = a2; + gPlayerState.flags |= 8; + if (!a1) { + gPlayerState.field_0x39 = 0; + tmp = &script_08009ECC; + } else { + gPlayerState.field_0x39 = 1; + tmp = &script_08009EF0; + } + e = CreateObject(0x5B, !gPlayerState.field_0x39 ? 2 : 0, 0); + if (e != NULL) { + CopyPosition(&gPlayerEntity, e); + StartCutscene(e, tmp); + } + e2 = CreateSpeechBubbleSleep(&gPlayerEntity, -14, -28); + *(Entity**)&gPlayerEntity.field_0x6c.HWORD = e2; + if (e2 != NULL) { + SetDefaultPriority(e2, 3); + } +} +END_NONMATCH + +void sub_0807529C(Entity* this) { + CreateSpeechBubbleQuestionMark(this, 8, -32); +} + +void sub_080752AC(Entity* this, ScriptExecutionContext* ctx) { + sub_0806F69C(this); + if (!ctx->unk_18) { + if (sub_080002B8(this) != 41) { + ctx->unk_18 = 1; + ctx->unk_19 = 6; + } + } else if (--ctx->unk_19 == 0) { + return; + } + gActiveScriptInfo.commandSize = 0; +} diff --git a/src/projectile/lakituCloudProjectile.c b/src/projectile/lakituCloudProjectile.c index 39c6f65f..9fff58bd 100644 --- a/src/projectile/lakituCloudProjectile.c +++ b/src/projectile/lakituCloudProjectile.c @@ -4,7 +4,7 @@ #include "player.h" #include "effects.h" -extern void sub_0800449C(Entity*, u32); +extern void SoundReqClipped(Entity*, u32); extern void sub_08079D84(void); extern void (*const LakituCloudProjectile_Functions[])(Entity*); @@ -44,7 +44,7 @@ void LakituCloudProjectile_SubAction2(Entity* this) { if (sub_0806F3E4(this) != 0) { if (this->hitType == 0xa6) { ModHealth(-2); - sub_0800449C(&gPlayerEntity, 0x7a); + SoundReqClipped(&gPlayerEntity, 0x7a); sub_08079D84(); } CreateFx(this, FX_DEATH, 0); diff --git a/src/projectile/v1DarkMagicProjectile.c b/src/projectile/v1DarkMagicProjectile.c index 76097b4d..2cbc6dd2 100644 --- a/src/projectile/v1DarkMagicProjectile.c +++ b/src/projectile/v1DarkMagicProjectile.c @@ -6,7 +6,7 @@ #include "functions.h" #include "asm.h" -extern void sub_0800449C(Entity*, u32); +extern void SoundReqClipped(Entity*, u32); extern void (*const V1DarkMagicProjectile_Functions[])(Entity*); extern void (*const V1DarkMagicProjectile_Actions[])(Entity*); @@ -173,7 +173,7 @@ void sub_080AAF74(Entity* this) { this->actionDelay = 0x1e; gPlayerEntity.iframes = 8; ModHealth(-4); - sub_0800449C(&gPlayerEntity, 0x7a); + SoundReqClipped(&gPlayerEntity, 0x7a); if (gPlayerEntity.health == 0) { this->health = 0; } diff --git a/src/projectile/v2Projectile.c b/src/projectile/v2Projectile.c index b3574211..0ed8e9cf 100644 --- a/src/projectile/v2Projectile.c +++ b/src/projectile/v2Projectile.c @@ -12,7 +12,7 @@ extern void (*const gUnk_0812A7F8[])(Entity*); extern void (*const gUnk_0812A800[])(Entity*); extern void (*const gUnk_0812A808[])(Entity*); -extern void sub_0800449C(Entity*, u32); +extern void SoundReqClipped(Entity*, u32); extern void sub_08079D84(void); extern s32 sub_080AF090(Entity*); @@ -43,7 +43,7 @@ void nullsub_542(Entity* this) { void sub_080ABC90(Entity* this) { if (sub_0806F3E4(this) != 0) { ModHealth(-2); - sub_0800449C(&gPlayerEntity, 0x7a); + SoundReqClipped(&gPlayerEntity, 0x7a); sub_08079D84(); CreateFx(this, FX_DEATH, 0); DeleteThisEntity(); diff --git a/src/roomInit.c b/src/roomInit.c index e553a20f..fc0a2ff2 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -1010,7 +1010,7 @@ void sub_0804BF38(u32 arg0, struct_0804BF38* arg1) } } - sub_08080964(gUnk_080D8E50[iVar3].shakeTime, gUnk_080D8E50[iVar3].shakeMag); + InitScreenShake(gUnk_080D8E50[iVar3].shakeTime, gUnk_080D8E50[iVar3].shakeMag); SoundReq(gUnk_080D8E50[iVar2].sfx); } #else @@ -4819,7 +4819,7 @@ void sub_StateChange_HouseInteriors2_LinksHouseBedroom(void) { gArea.musicIndex = gArea.pMusicIndex; SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); } - if ((gPlayerState.flags & 8) == 0) { + if ((gPlayerState.flags & PL_NO_CAP) == 0) { LoadRoomEntityList(&gUnk_080F31D8); } } diff --git a/src/script.c b/src/script.c index 2a28188e..c771df3e 100644 --- a/src/script.c +++ b/src/script.c @@ -223,7 +223,7 @@ void StartPlayerScript(u16* script) { gPlayerScriptExecutionContext.scriptInstructionPointer = script; player = &gPlayerEntity; *(ScriptExecutionContext**)&player->cutsceneBeh = &gPlayerScriptExecutionContext; - gPlayerState.playerAction = 0x1c; + gPlayerState.queued_action = PLAYER_08074C44; gPlayerState.field_0x3a = 0; gPlayerState.field_0x39 = 0; gPlayerState.field_0x38 = 0; @@ -1072,7 +1072,7 @@ void ScriptCommand_0807E888(Entity* entity, ScriptExecutionContext* context) { void ScriptCommand_SetPlayerAction(Entity* entity, ScriptExecutionContext* context) { u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); - gPlayerState.playerAction = tmp; + gPlayerState.queued_action = tmp; gPlayerState.field_0x38 = tmp >> 8; gPlayerState.field_0x39 = tmp >> 0x10; gPlayerState.field_0x3a = tmp >> 0x18; @@ -1527,7 +1527,7 @@ void ScriptCommand_0807F0B4(Entity* entity, ScriptExecutionContext* context) { } void ScriptCommand_0807F0C8(Entity* entity, ScriptExecutionContext* context) { - sub_08080964(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]); + InitScreenShake(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]); } extern u8 gUnk_0811E750[]; diff --git a/src/sub_0807B820.c b/src/sub_0807B820.c index 7d2441c3..6d3f516b 100644 --- a/src/sub_0807B820.c +++ b/src/sub_0807B820.c @@ -5,7 +5,7 @@ extern void sub_0807B778(u32, u32); void sub_0807B7D8(u32 param_1, u32 param_2, u32 param_3) { if (param_1 == 53) { - sub_08000152(53); + sub_08000152(53, param_2, param_3); sub_0807B778(param_2, param_3); sub_0807B778(param_2 + 1, param_3); sub_0807B778(param_2 - 1, param_3); From dc8bcb32e0db99420b35b4254c5218711bc1e3a0 Mon Sep 17 00:00:00 2001 From: theo3 Date: Mon, 27 Dec 2021 18:19:47 -0800 Subject: [PATCH 049/168] dungeon stuff --- asm/code_08018500.s | 4 +-- asm/code_08049D30.s | 4 +-- asm/code_08077B98.s | 8 ++--- include/player.h | 3 +- include/room.h | 16 ++++----- src/code_08077B98.c | 4 +-- src/collision.c | 4 +-- src/enemy/octorokBoss.c | 4 +-- src/enemy/vaatiTransfigured.c | 2 +- src/item/itemSword.c | 3 +- src/manager/manager17.c | 3 +- src/manager/manager24.c | 4 +-- src/manager/managerF.c | 14 ++++---- src/npc/npc4E.c | 4 +-- src/npc/picolyteBottle.c | 3 +- src/npc/postman.c | 2 +- src/object/houseDoorExterior.c | 2 +- src/object/minishSizedEntrance.c | 2 +- src/object/object6A.c | 60 ++++++++++++++++---------------- src/object/warpPoint.c | 2 +- src/overworld.c | 48 ++++++++++++------------- src/player.c | 10 +++--- src/playerItem/playerItem10.c | 5 +-- src/projectile/removableDust.c | 3 +- src/room.c | 2 +- src/roomInit.c | 4 +-- 26 files changed, 114 insertions(+), 106 deletions(-) diff --git a/asm/code_08018500.s b/asm/code_08018500.s index b12aa134..0e2026d7 100644 --- a/asm/code_08018500.s +++ b/asm/code_08018500.s @@ -160,8 +160,8 @@ _08018620: _08018624: .4byte gUnk_02033AB8 _08018628: .4byte gUnk_080B3D20 - thumb_func_start sub_0801862C -sub_0801862C: @ 0x0801862C + thumb_func_start GenerateAreaHint +GenerateAreaHint: @ 0x0801862C push {r4, r5, lr} ldr r1, _0801864C @ =gPlayerState movs r2, #0 diff --git a/asm/code_08049D30.s b/asm/code_08049D30.s index 95661e64..77b661aa 100644 --- a/asm/code_08049D30.s +++ b/asm/code_08049D30.s @@ -6,8 +6,8 @@ .text - thumb_func_start sub_08049D30 -sub_08049D30: @ 0x08049D30 + thumb_func_start UpdateRoomTracker +UpdateRoomTracker: @ 0x08049D30 push {r4, r5, r6, lr} ldr r1, _08049D58 @ =gUnk_020354B0 ldr r0, _08049D5C @ =gUnk_02024050 diff --git a/asm/code_08077B98.s b/asm/code_08077B98.s index 8f480ce5..6143589a 100644 --- a/asm/code_08077B98.s +++ b/asm/code_08077B98.s @@ -221,8 +221,8 @@ _0807815C: pop {pc} .align 2, 0 - thumb_func_start sub_08078160 -sub_08078160: @ 0x08078160 + thumb_func_start ForceSetPlayerState +ForceSetPlayerState: @ 0x08078160 push {lr} ldr r1, _08078178 @ =gPlayerState adds r1, #0xa8 @@ -558,7 +558,7 @@ _08078418: bl CreateEzloHint _08078420: movs r0, #0x13 - bl sub_08078160 + bl ForceSetPlayerState b _080784C4 .align 2, 0 _08078428: .4byte 0x00000B65 @@ -599,7 +599,7 @@ _08078484: movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x13 - bl sub_08078160 + bl ForceSetPlayerState _0807848E: adds r1, r6, #0 adds r1, #0x39 diff --git a/include/player.h b/include/player.h index f664b6f3..7d29812c 100644 --- a/include/player.h +++ b/include/player.h @@ -216,7 +216,8 @@ typedef struct { /*0x8b*/ u8 controlMode; /*0x8c*/ u16 vel_x; /*0x8e*/ u16 vel_y; - /*0x90*/ union SplitWord field_0x90; + /*0x90*/ u16 field_0x90; + /*0x92*/ u16 field_0x92; /*0x94*/ u32 field_0x94; /*0x98*/ u16 field_0x98; /*0x9a*/ u16 field_0x9a; diff --git a/include/room.h b/include/room.h index 64729622..5e603926 100644 --- a/include/room.h +++ b/include/room.h @@ -101,14 +101,14 @@ typedef struct { Coords start_pos; u8 layer; u8 field_0x15; - u8 field_0x16; - u8 field_0x17; - s16 field_0x18; - s16 field_0x1a; - s16 field_0x1c; - s16 field_0x1e; - s16 field_0x20; - s16 field_0x22; + u8 dungeon_area; + u8 dungeon_room; + s16 dungeon_x; + s16 dungeon_y; + s16 dungeon_map_x; + s16 dungeon_map_y; + s16 overworld_map_x; + s16 overworld_map_y; u8 field_0x24[0x8]; } PlayerWorldStatus; static_assert(sizeof(PlayerWorldStatus) == 0x20); diff --git a/src/code_08077B98.c b/src/code_08077B98.c index ca1863f7..fddfcace 100644 --- a/src/code_08077B98.c +++ b/src/code_08077B98.c @@ -195,11 +195,11 @@ u32 sub_08077EC8(ItemBehavior* beh) { } bool32 sub_08077EFC(ItemBehavior* arg0) { - return sub_08077F24(arg0, (u16)gPlayerState.field_0x90.HALF.LO); + return sub_08077F24(arg0, (u16)gPlayerState.field_0x90); } bool32 sub_08077F10(ItemBehavior* arg0) { - return sub_08077F24(arg0, (u16)gPlayerState.field_0x90.HALF.HI); + return sub_08077F24(arg0, (u16)gPlayerState.field_0x92); } ASM_FUNC("asm/non_matching/sub_08077F24.inc", bool32 sub_08077F24(ItemBehavior* beh, u32 arg1)) diff --git a/src/collision.c b/src/collision.c index 1c22f7d6..43ffe8d8 100644 --- a/src/collision.c +++ b/src/collision.c @@ -60,7 +60,7 @@ void CollisionMain(void) { if (gPriorityHandler.sys_priority <= gPriorityHandler.ent_priority) prio = gPriorityHandler.ent_priority; - // if any min priority is set, dont do collision + // if any priority is set, dont do collision if (prio) return; @@ -303,7 +303,7 @@ void sub_080179EC(Entity* a1, Entity* a2) { Entity* sub_08017A90(Entity* a1, Entity* parent) { Entity* e; - e = (Entity*)CreateObject(153, 0, 0); + e = (Entity*)CreateObject(OBJECT_99, 0, 0); if (e != NULL) { e->animationState = (a1->direction >> 3) & 3; e->spriteOffsetX = a1->x.HALF.HI - parent->x.HALF.HI; diff --git a/src/enemy/octorokBoss.c b/src/enemy/octorokBoss.c index fb16b706..0730b642 100644 --- a/src/enemy/octorokBoss.c +++ b/src/enemy/octorokBoss.c @@ -343,9 +343,9 @@ void OctorokBoss_Hit_SubAction6(Entity* this) { if (GET_TIMER(this) == 0) { if ((gScreenTransition.frameCount & 0xfU) == 0) { // Explosion in the center - CreateFx(this, 0x48, 0); + CreateFx(this, FX_GIANT_EXPLOSION3, 0); // Explosion at the front right leg - CreateFx(GET_HELPER(this)->legObjects[0], 0x48, 0); + CreateFx(GET_HELPER(this)->legObjects[0], FX_GIANT_EXPLOSION3, 0); } if (++this->field_0x82.HALF.LO == 0x79) { GET_HELPER(this)->mouthObject->health = 1; diff --git a/src/enemy/vaatiTransfigured.c b/src/enemy/vaatiTransfigured.c index 8c80bbbd..bd462e33 100644 --- a/src/enemy/vaatiTransfigured.c +++ b/src/enemy/vaatiTransfigured.c @@ -341,7 +341,7 @@ void VaatiTransfiguredType0Action3(Entity* this) { this->field_0x86.HALF.LO = 0; sub_080408EC(this); } else { - if (((this->actionDelay & 1) != 0) && (pEVar3 = CreateObject(0x9b, 1, 0xff), pEVar3 != NULL)) { + if (((this->actionDelay & 1) != 0) && (pEVar3 = CreateObject(OBJECT_9B, 1, 0xff), pEVar3 != NULL)) { pEVar3->parent = this; CopyPosition(this, pEVar3); pEVar3->x.HALF.HI += (Random() & 0xf) - 7; diff --git a/src/item/itemSword.c b/src/item/itemSword.c index 37a91ef4..4b9f1605 100644 --- a/src/item/itemSword.c +++ b/src/item/itemSword.c @@ -1,6 +1,7 @@ #include "item.h" #include "functions.h" #include "audio.h" +#include "object.h" extern void (*const gUnk_0811BD44[])(ItemBehavior*, u32); @@ -36,7 +37,7 @@ void sub_08075580(ItemBehavior* this, u32 arg1) { this->field_0x5[2] = 0x50; } sub_08077DF4(this, 0x168); - CreateObject(0x43, 0, 0); + CreateObject(OBJECT_43, 0, 0); return; } sub_080759B8(this, arg1); diff --git a/src/manager/manager17.c b/src/manager/manager17.c index d19440b0..139c4c2f 100644 --- a/src/manager/manager17.c +++ b/src/manager/manager17.c @@ -1,6 +1,7 @@ #include "manager.h" #include "flags.h" #include "room.h" +#include "object.h" typedef struct { Manager manager; @@ -32,7 +33,7 @@ void sub_0805AD60(Manager17* manager) { void sub_0805AD80(Manager17* manager) { if (CheckFlags(manager->field_0x3e) != 0) { - Entity* object = CreateObject(0, manager->manager.unk_0a, manager->manager.unk_0b); + Entity* object = CreateObject(GROUND_ITEM, manager->manager.unk_0a, manager->manager.unk_0b); if (object != NULL) { object->actionDelay = manager->field_0x35; object->collisionLayer = manager->field_0x36; diff --git a/src/manager/manager24.c b/src/manager/manager24.c index 7b3f2d19..532fdfd0 100644 --- a/src/manager/manager24.c +++ b/src/manager/manager24.c @@ -178,7 +178,7 @@ void sub_0805C294(u32 pos, u32 layer) { SetTileType(0xd7, pos + 0x41, layer); if (layer == 1) { if (CheckIsInteriorWithEnemies() != 0) { - object = CreateObject(0x4f, 0xe, 2); + object = CreateObject(ARCHWAY, 0xe, 2); if (object != NULL) { object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 0x20 + gRoomControls.roomOriginY; @@ -199,7 +199,7 @@ void sub_0805C294(u32 pos, u32 layer) { if (CheckIsDungeon() == 0) { return; } - object = CreateObject(0x4f, sub_0805C608(), 8); + object = CreateObject(ARCHWAY, sub_0805C608(), 8); if (object == NULL) { return; } diff --git a/src/manager/managerF.c b/src/manager/managerF.c index cc7b7692..70c810ac 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -10,6 +10,8 @@ #include "script.h" #include "utils.h" #include "tiles.h" +#include "object.h" +#include "item.h" void sub_08058ECC(ManagerF*); @@ -125,7 +127,7 @@ void sub_08058F44(u32 unk0, u32 unk1, u32 unk2) { void sub_08058F84(u32 unk0, u32 unk1) { Entity* tmp; - tmp = CreateObject(0x21, 0, 0); + tmp = CreateObject(OBJECT_21, 0, 0); if (!tmp) return; tmp->x.HALF.HI = gRoomControls.roomOriginX + unk0; @@ -177,7 +179,7 @@ void sub_08058FB0(ManagerF* this) { void sub_08059064(ManagerF* this) { Entity* tmp; - tmp = CreateObject(0, 0x53, 0); + tmp = CreateObject(GROUND_ITEM, ITEM_SMALL_KEY, 0); if (!tmp) return; tmp->actionDelay = 2; @@ -324,9 +326,9 @@ void sub_080592EC(ManagerF* this) { void sub_0805930C(ManagerF* this) { Entity* tmp; #ifdef EU - tmp = CreateObject(0xF, 0x43, 0x0); + tmp = CreateObject(SPECIAL_FX, FX_BIG_EXPLOSION2, 0x0); #else - tmp = CreateObject(0xF, 0x43, 0x40); + tmp = CreateObject(SPECIAL_FX, FX_BIG_EXPLOSION2, 0x40); #endif if (!tmp) return; @@ -361,7 +363,7 @@ void sub_0805938C(ManagerF* this) { u32 sub_080593CC(ManagerF* this) { if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.swimState != 0 && gPlayerEntity.animationState == 0 && - (gPlayerState.field_0x90.HALF.LO & 0xF00) == 0x400) { + (gPlayerState.field_0x90 & 0xF00) == 0x400) { return sub_0806FCB8(&gPlayerEntity, this->unk_38, this->unk_3a + 0xC, 6); } return 0; @@ -374,7 +376,7 @@ void sub_08059424(ManagerF* this) { } if (!CheckFlags(this->unk_3c)) return; - tmp = CreateObject(0xF, 0x35, 0); + tmp = CreateObject(SPECIAL_FX, FX_BIG_EXPLOSION, 0); if (!tmp) return; tmp->collisionLayer = 2; diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index 84d18da1..0f79c152 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -206,8 +206,8 @@ void sub_0806DCA0() { } void sub_0806DCC0() { - gScreenTransition.player_status.field_0x20 = 0x7c8; - gScreenTransition.player_status.field_0x22 = 0xf8; + gScreenTransition.player_status.overworld_map_x = 0x7c8; + gScreenTransition.player_status.overworld_map_y = 0xf8; } void NPC4E_Fusion(Entity* this) { diff --git a/src/npc/picolyteBottle.c b/src/npc/picolyteBottle.c index 25d56034..fa39f1b9 100644 --- a/src/npc/picolyteBottle.c +++ b/src/npc/picolyteBottle.c @@ -3,6 +3,7 @@ #include "structures.h" #include "functions.h" #include "textbox.h" +#include "object.h" extern ScreenTransitionData gUnk_0813AD4C; @@ -60,7 +61,7 @@ void sub_0806DFB4(Entity* this) { } else { if (this->actionDelay != 0) { this->actionDelay = 0; - obj = CreateObject(0x35, 2, this->field_0xf); + obj = CreateObject(OBJECT_35, 2, this->field_0xf); if (obj != NULL) { obj->parent = this; this->child = obj; diff --git a/src/npc/postman.c b/src/npc/postman.c index 9e643e8e..d8cdb5aa 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -99,7 +99,7 @@ void sub_080604DC(Entity* this) { if (this->spriteSettings.draw == 1 && CheckOnScreen(this)) { if ((this->frame & 1) != 0) { this->frame &= 0xfe; - ent = CreateFx(this, 17, 0x40); + ent = CreateFx(this, FX_DASH, 0x40); if (ent != NULL) { ent->y.HALF.HI++; SetDefaultPriority(ent, 3); diff --git a/src/object/houseDoorExterior.c b/src/object/houseDoorExterior.c index 79b8425c..137b19a5 100644 --- a/src/object/houseDoorExterior.c +++ b/src/object/houseDoorExterior.c @@ -168,7 +168,7 @@ void sub_0808692C(Entity* this) { static u8 sub_08086954(Entity* this) { if (sub_0800445C(this)) { if (sub_0806ED9C(this, 6, 20) >= 0 && gPlayerEntity.animationState == 0 && - (u16)gPlayerState.field_0x90.HALF.LO == 0x400 && gPlayerState.jumpStatus == 0) { + (u16)gPlayerState.field_0x90 == 0x400 && gPlayerState.jumpStatus == 0) { this->actionDelay--; } } else { diff --git a/src/object/minishSizedEntrance.c b/src/object/minishSizedEntrance.c index a92a887c..5b891dd0 100644 --- a/src/object/minishSizedEntrance.c +++ b/src/object/minishSizedEntrance.c @@ -30,7 +30,7 @@ void sub_08090F00(Entity* this) { } } if ((gPlayerState.flags & PL_MINISH) && EntityInRectRadius(this, &gPlayerEntity, 4, 4) && - (gPlayerEntity.z.HALF.HI == 0) && (((u16)gPlayerState.field_0x90.HALF.LO) & gUnk_0812225C[this->type2])) { + (gPlayerEntity.z.HALF.HI == 0) && (((u16)gPlayerState.field_0x90) & gUnk_0812225C[this->type2])) { DoExitTransition(GetCurrentRoomProperty(this->actionDelay)); } } diff --git a/src/object/object6A.c b/src/object/object6A.c index 11dcfc48..c1b065a8 100644 --- a/src/object/object6A.c +++ b/src/object/object6A.c @@ -152,7 +152,7 @@ void sub_08094A90(Object6AEntity* this) { } void sub_08094AE8(Entity* this, ScriptExecutionContext* ctx) { - Object6AEntity* e = (Object6AEntity*)CreateObject(0x6A, 1, 0); + Object6AEntity* e = (Object6AEntity*)CreateObject(OBJECT_6A, 1, 0); if (e != NULL) { e->ctx = StartCutscene(&e->base, (void*)ctx->intVariable); } @@ -182,7 +182,7 @@ void sub_08094B80(Object6AEntity* this) { } void sub_08094B94(Object6AEntity* this) { - Entity* e = CreateObject(0x6A, 0x22, 0); + Entity* e = CreateObject(OBJECT_6A, 0x22, 0); if (e != NULL) { CopyPosition(&gPlayerEntity, e); e->z.HALF.HI = -48; @@ -194,7 +194,7 @@ void sub_08094B94(Object6AEntity* this) { } void sub_08094BE0(Entity* this) { - Entity* e = FindEntity(6, 0x6A, 6, 0x22, 0); + Entity* e = FindEntity(6, OBJECT_6A, 6, 0x22, 0); if (e != NULL) { CopyPosition(&gPlayerEntity, e); e->z.HALF.HI = -12; @@ -382,7 +382,7 @@ void sub_08094E30(Object6AEntity* this) { } void sub_08094F98(Object6AEntity* this) { - CreateObject(0x6A, 5, 0); + CreateObject(OBJECT_6A, 5, 0); } void sub_08094FA8(Object6AEntity* this) { @@ -531,7 +531,7 @@ void sub_080951C4(Object6AEntity* this) { void sub_08095244(Object6AEntity* this) { if (super->type == 0) { - Entity* e = CreateObject(0x6A, 0xA, 0); + Entity* e = CreateObject(OBJECT_6A, 0xA, 0); if (e != NULL) { e->parent = super; PositionRelative(super, e, 0x100000, -0x100000); @@ -575,7 +575,7 @@ void sub_08095288(Object6AEntity* this) { } void sub_08095330(Object6AEntity* this) { - Entity* e = CreateObject(0x6A, 0xB, 0); + Entity* e = CreateObject(OBJECT_6A, 0xB, 0); if (e != NULL) { super->child = e; e->child = super; @@ -622,7 +622,7 @@ void sub_080953A4(Object6AEntity* this) { } void sub_08095420(Object6AEntity* this, ScriptExecutionContext* ctx) { - Entity* e = CreateObject(0x6A, 0xC, 0); + Entity* e = CreateObject(OBJECT_6A, 0xC, 0); if (e != NULL) { PositionRelative(super, e, 0, -0x100000); ((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable); @@ -633,12 +633,12 @@ void nullsub_527(Object6AEntity* this) { } void sub_0809545C(Object6AEntity* this, ScriptExecutionContext* ctx) { - Entity* p = CreateObject(0x6A, 0xD, 0); + Entity* p = CreateObject(OBJECT_6A, 0xD, 0); Entity* e; if (p != NULL) { PositionRelative(super, p, 0, -0x100000); ((Object6AEntity*)p)->ctx = StartCutscene(p, (u16*)ctx->intVariable); - e = CreateObject(0x6A, 2, 0); + e = CreateObject(OBJECT_6A, 2, 0); if (e != NULL) { CopyPosition(p, e); e->parent = p; @@ -647,7 +647,7 @@ void sub_0809545C(Object6AEntity* this, ScriptExecutionContext* ctx) { } void sub_080954AC(Object6AEntity* this) { - Entity* e = CreateObject(0x6A, 0x1A, 0); + Entity* e = CreateObject(OBJECT_6A, 0x1A, 0); if (e != NULL) { CopyPosition(super, e); ((Object6AEntity*)e)->ctx = StartCutscene(e, &script_08015B14); @@ -759,7 +759,7 @@ void sub_080956B4(Object6AEntity* this) { } void sub_08095754(Object6AEntity* this) { - Entity* e = CreateObject(0x6A, 0xF, super->type2); + Entity* e = CreateObject(OBJECT_6A, 0xF, super->type2); if (e != NULL) { e->parent = super; CopyPosition(super, e); @@ -779,7 +779,7 @@ void sub_0809577C(Object6AEntity* this) { } void sub_080957B4(Object6AEntity* this) { - Entity* e = CreateObject(0x6A, 0x10, 0); + Entity* e = CreateObject(OBJECT_6A, 0x10, 0); if (e != NULL) { e->parent = super; CopyPosition(super, e); @@ -799,7 +799,7 @@ void sub_080957DC(Object6AEntity* this) { } void sub_08095810(Object6AEntity* this) { - Entity* e = CreateObject(0x6A, 0x11, 0); + Entity* e = CreateObject(OBJECT_6A, 0x11, 0); if (e != NULL) { e->parent = super; CopyPosition(super, e); @@ -860,7 +860,7 @@ void sub_08095954(Object6AEntity* this) { s8 x, y; } s8XY; - Entity* e = CreateObject(0x6A, 0x14, 0); + Entity* e = CreateObject(OBJECT_6A, 0x14, 0); if (e != NULL) { u32 tmp, x, y; e->parent = super; @@ -891,7 +891,7 @@ void sub_080959CC(Object6AEntity* this) { } void sub_08095A1C(Object6AEntity* this, ScriptExecutionContext* ctx) { - Entity* e = CreateObject(0x6A, 0x16, 0); + Entity* e = CreateObject(OBJECT_6A, 0x16, 0); if (e != NULL) { e->x.HALF.HI = gRoomControls.roomOriginX + 232; e->y.HALF.HI = gRoomControls.roomOriginY + 312; @@ -902,7 +902,7 @@ void sub_08095A1C(Object6AEntity* this, ScriptExecutionContext* ctx) { } void sub_08095A68(Object6AEntity* this) { - Entity* e = FindEntity(6, 0x6A, 6, 0x16, 0); + Entity* e = FindEntity(6, OBJECT_6A, 6, 0x16, 0); if (e != NULL) { e->action = 0xFF; } @@ -974,7 +974,7 @@ void sub_08095B48(Object6AEntity* this) { } void sub_08095BE0(Object6AEntity* this, u32 val) { - Entity* e = CreateObject(0x6A, 0x18, val); + Entity* e = CreateObject(OBJECT_6A, 0x18, val); if (e != NULL) { e->parent = super; CopyPosition(super, e); @@ -997,7 +997,7 @@ void sub_08095C00(Object6AEntity* this) { } void sub_08095C48(Object6AEntity* this) { - Entity* e = CreateObject(0x6A, 0x19, 0); + Entity* e = CreateObject(OBJECT_6A, 0x19, 0); if (e != NULL) { super->child = e; e->parent = super; @@ -1022,7 +1022,7 @@ void sub_08095C68(Object6AEntity* this) { } void sub_08095CB0(Object6AEntity* this) { - Entity* e = CreateObject(0x6A, 0x1B, 0); + Entity* e = CreateObject(OBJECT_6A, 0x1B, 0); if (e != NULL) { super->child = e; e->parent = super; @@ -1052,7 +1052,7 @@ void sub_08095D30(Object6AEntity* this, u32 a2) { } void sub_08095D54(Object6AEntity* this, ScriptExecutionContext* ctx) { - Entity* e = CreateObject(0x6A, 0x1C, 0); + Entity* e = CreateObject(OBJECT_6A, 0x1C, 0); if (e != NULL) { CopyPosition(&gPlayerEntity, e); e->collisionLayer = 2; @@ -1061,7 +1061,7 @@ void sub_08095D54(Object6AEntity* this, ScriptExecutionContext* ctx) { } void sub_08095D8C(Object6AEntity* this, ScriptExecutionContext* ctx) { - Entity* e = CreateObject(0x6A, 0x1D, 0); + Entity* e = CreateObject(OBJECT_6A, 0x1D, 0); if (e != NULL) { CopyPosition(super, e); ((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable); @@ -1098,7 +1098,7 @@ void sub_08095DBC(Object6AEntity* this) { } void sub_08095E7C(Object6AEntity* this, ScriptExecutionContext* ctx) { - Entity* e = CreateObject(0x6A, 0x1E, 0); + Entity* e = CreateObject(OBJECT_6A, 0x1E, 0); if (e != NULL) { CopyPosition(super, e); ((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable); @@ -1107,7 +1107,7 @@ void sub_08095E7C(Object6AEntity* this, ScriptExecutionContext* ctx) { NONMATCH("asm/non_matching/object6A/sub_08095EAC.inc", void sub_08095EAC(Object6AEntity* this, ScriptExecutionContext* ctx)) { - Entity* e = CreateObject(0x6A, 0x1E, 1); + Entity* e = CreateObject(OBJECT_6A, 0x1E, 1); s32 x, y; if (e != NULL) { @@ -1186,7 +1186,7 @@ void sub_08096028(Object6AEntity* this) { type2 = 4; if (!CheckLocalFlagByBank(768, 122)) type2 = 3; - CreateObject(0x6A, 0x1F, type2); + CreateObject(OBJECT_6A, 0x1F, type2); } void sub_08096058(Object6AEntity* this) { @@ -1214,7 +1214,7 @@ void sub_08096084(Object6AEntity* this) { } void sub_080960C4(Object6AEntity* this, ScriptExecutionContext* ctx) { - Entity* e = CreateObject(0x6A, 0x23, 0x49); + Entity* e = CreateObject(OBJECT_6A, 0x23, 0x49); if (e != NULL) { e->parent = super; CopyPosition(super, e); @@ -1222,7 +1222,7 @@ void sub_080960C4(Object6AEntity* this, ScriptExecutionContext* ctx) { ResolveEntityBelow(super, e); ((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable); } - e = CreateObject(0x6A, 0x24, 0x4A); + e = CreateObject(OBJECT_6A, 0x24, 0x4A); if (e != NULL) { e->parent = super; CopyPosition(super, e); @@ -1248,7 +1248,7 @@ void sub_08096168(Object6AEntity* this) { void sub_080961B0(Object6AEntity* this) { int i; for (i = 0; i < 8; ++i) { - Entity* e = CreateObject(0x6A, 0x25, 0); + Entity* e = CreateObject(OBJECT_6A, 0x25, 0); if (e != NULL) { CopyPosition(super, e); e->direction = 32 * i; @@ -1264,21 +1264,21 @@ void sub_080961F4(Object6AEntity* this) { void sub_08096208(Object6AEntity* this, u32 x) { s8* p = &gUnk_08122B2E[x * 2]; - Entity* e = CreateObject(0x6A, 0x26, 0); + Entity* e = CreateObject(OBJECT_6A, 0x26, 0); if (e != NULL) { PositionRelative(super, e, p[0] << 16, p[1] << 16); } } void sub_0809623C(Object6AEntity* this) { - Entity* e = CreateObject(0x6A, 0x27, 0); + Entity* e = CreateObject(OBJECT_6A, 0x27, 0); if (e != NULL) { PositionRelative(super, e, 0, -0x100000); } } void sub_08096260(Object6AEntity* this) { - Entity* e = CreateObject(0x6A, 0x28, 0); + Entity* e = CreateObject(OBJECT_6A, 0x28, 0); if (e != NULL) { PositionRelative(super, e, 0, -0x100000); } diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index df5a9ba2..bd5fc8cf 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -224,7 +224,7 @@ void sub_0808B830(Entity* this) { this->action = 3; this->actionDelay = 0; this->spriteSettings.draw = 1; - tmp = CreateObject(0x34, 0, 0); + tmp = CreateObject(WARP_POINT, 0, 0); if (tmp) { tmp->field_0x70.BYTES.byte0 = 1; tmp->parent = this; diff --git a/src/overworld.c b/src/overworld.c index ff90afc8..fdd22b3e 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -41,11 +41,11 @@ void CleanUpGFXSlots(); void sub_080ADE24(); void sub_0801C370(u32); void sub_0801AE44(u32); -void sub_0801862C(void); -void sub_08078160(u32); +void GenerateAreaHint(void); +void ForceSetPlayerState(u32); void SetPlayerEventPriority(void); RoomResInfo* GetCurrentRoomInfo(void); -void sub_08049D30(void); +void UpdateRoomTracker(void); void InitScriptData(void); void sub_08054524(void); void sub_080186D4(void); @@ -673,8 +673,8 @@ u32 sub_08052B24(void) { if ((gPlayerEntity.z.HALF.HI & 0x8000) && !gPlayerState.field_0xa) return 0; - sub_0801862C(); - sub_08078160(19); + GenerateAreaHint(); + ForceSetPlayerState(PL_STATE_TALKEZLO); SetPlayerEventPriority(); return 1; } @@ -728,25 +728,25 @@ void sub_08052C3C(void) { void sub_08052C5C(void) { if (!CheckIsInteriorNoEnemies()) { if (CheckIsOverworld()) { - gScreenTransition.player_status.field_0x20 = gPlayerEntity.x.HALF_U.HI; - gScreenTransition.player_status.field_0x22 = gPlayerEntity.y.HALF_U.HI; + gScreenTransition.player_status.overworld_map_x = gPlayerEntity.x.HALF_U.HI; + gScreenTransition.player_status.overworld_map_y = gPlayerEntity.y.HALF_U.HI; } else if (CheckIsDungeon()) { - gScreenTransition.player_status.field_0x1c = gPlayerEntity.x.HALF.HI; - gScreenTransition.player_status.field_0x1e = gPlayerEntity.y.HALF.HI; + gScreenTransition.player_status.dungeon_map_x = gPlayerEntity.x.HALF.HI; + gScreenTransition.player_status.dungeon_map_y = gPlayerEntity.y.HALF.HI; } } } void sub_08052CA4(u32 area, u32 room, u32 x, u32 y) { RoomHeader* hdr = gAreaRoomHeaders[area] + room; - gScreenTransition.player_status.field_0x20 = hdr->map_x + x; - gScreenTransition.player_status.field_0x22 = hdr->map_y + y; + gScreenTransition.player_status.overworld_map_x = hdr->map_x + x; + gScreenTransition.player_status.overworld_map_y = hdr->map_y + y; } void sub_08052CD0(u32 area, u32 room, u32 x, u32 y) { RoomHeader* hdr = gAreaRoomHeaders[area] + room; - gScreenTransition.player_status.field_0x1c = hdr->map_x + x; - gScreenTransition.player_status.field_0x1e = hdr->map_y + y; + gScreenTransition.player_status.dungeon_map_x = hdr->map_x + x; + gScreenTransition.player_status.dungeon_map_y = hdr->map_y + y; } void sub_08052CFC(void) { @@ -817,7 +817,7 @@ void sub_08052EA0(void) { gRoomVars.unk_10[3] = gRoomVars.unk_10[0]; gRoomVars.lightLevel = 256; gArea.locationIndex = gAreaMetadata[gRoomControls.areaID].location; - sub_08049D30(); + UpdateRoomTracker(); InitScriptData(); sub_08054524(); sub_080186D4(); @@ -979,10 +979,10 @@ void sub_080531F8(void) { if (sub_08053144()) { MemCopy(&gScreenTransition.player_status, &gSave.saved_status, sizeof gScreenTransition.player_status); if (CheckIsDungeon()) { - gScreenTransition.player_status.field_0x16 = gRoomControls.areaID; - gScreenTransition.player_status.field_0x17 = gRoomControls.roomID; - gScreenTransition.player_status.field_0x18 = gPlayerEntity.x.HALF.HI; - gScreenTransition.player_status.field_0x1a = gPlayerEntity.y.HALF.HI; + gScreenTransition.player_status.dungeon_area = gRoomControls.areaID; + gScreenTransition.player_status.dungeon_room = gRoomControls.roomID; + gScreenTransition.player_status.dungeon_x = gPlayerEntity.x.HALF.HI; + gScreenTransition.player_status.dungeon_y = gPlayerEntity.y.HALF.HI; } } } @@ -1022,13 +1022,13 @@ static void sub_080532E4(void) { RoomHeader* r_hdr = gAreaRoomHeaders[AREA_FORTRESS_OF_WINDS] + 33; - gScreenTransition.player_status.field_0x16 = AREA_FORTRESS_OF_WINDS; - gScreenTransition.player_status.field_0x17 = 33; + gScreenTransition.player_status.dungeon_area = AREA_FORTRESS_OF_WINDS; + gScreenTransition.player_status.dungeon_room = 33; - gScreenTransition.player_status.field_0x18 = r_hdr->map_x + r_hdr->pixel_width / 2; - gScreenTransition.player_status.field_0x1c = gScreenTransition.player_status.field_0x18; - gScreenTransition.player_status.field_0x1a = r_hdr->map_y + r_hdr->pixel_height + 0xa0; - gScreenTransition.player_status.field_0x1e = gScreenTransition.player_status.field_0x1a; + gScreenTransition.player_status.dungeon_x = r_hdr->map_x + r_hdr->pixel_width / 2; + gScreenTransition.player_status.dungeon_map_x = gScreenTransition.player_status.dungeon_x; + gScreenTransition.player_status.dungeon_y = r_hdr->map_y + r_hdr->pixel_height + 0xa0; + gScreenTransition.player_status.dungeon_map_y = gScreenTransition.player_status.dungeon_y; } void sub_08053320(void) { diff --git a/src/player.c b/src/player.c index 0ead68bc..3cde33dd 100644 --- a/src/player.c +++ b/src/player.c @@ -2493,7 +2493,7 @@ static const u16 gUnk_0811BC30[] = { static NONMATCH("asm/non_matching/player/sub_08073584.inc", void sub_08073584(Entity* this)) { u32 state, dir, tmp, tmp2, idx; - if ((gPlayerState.field_0x90.HALF.HI & 0x80) || this->iframes > 0 || gPlayerState.field_0x3c[0] || + if ((gPlayerState.field_0x92 & 0x80) || this->iframes > 0 || gPlayerState.field_0x3c[0] || (gPlayerState.flags & PL_PARACHUTE) == 0) { gPlayerState.jumpStatus |= 0x40; sub_0807921C(); @@ -2871,7 +2871,7 @@ static void sub_08073D20(Entity* this) { gPlayerState.framestate = PL_STATE_CAPE; if (gPlayerState.floor_type != SURFACE_SHALLOW_WATER && gPlayerState.floor_type != SURFACE_WATER) { gPlayerState.swimState = 0; - this->field_0x3c &= 0xFBu; + this->field_0x3c &= ~4; } if (!RunQueuedAction() && this->subAction != 2) { if ((gPlayerState.flags & PL_HIDDEN) == 0) { @@ -3254,7 +3254,7 @@ void SurfaceAction_ShallowWater(Entity* this) { this->spritePriority.b0 = 4; gPlayerState.swimState = 0; } - if ((gPlayerState.field_0x90.HALF.HI & 0xF00) || gPlayerState.field_0x11 == 1) + if ((gPlayerState.field_0x92 & 0xF00) || gPlayerState.field_0x11 == 1) SoundReq(SFX_WATER_WALK); } } @@ -3406,7 +3406,7 @@ void SurfaceAction_22(Entity* this) { void SurfaceAction_Dust(Entity* this) { if (!sub_080741C4()) { gPlayerState.field_0x80 -= 128; - if (gPlayerState.field_0x11 == 1 || (gPlayerState.field_0x90.HALF.HI & 0xF00) != 0) { + if (gPlayerState.field_0x11 == 1 || (gPlayerState.field_0x92 & 0xF00) != 0) { if (gPlayerState.floor_type == SURFACE_DUST) CreateObjectWithParent(this, OBJECT_21, 1, 0); else @@ -3770,7 +3770,7 @@ NONMATCH("asm/non_matching/player/sub_080751E8.inc", void sub_080751E8(u32 a1, u gPlayerState.field_0x39 = 1; tmp = &script_08009EF0; } - e = CreateObject(0x5B, !gPlayerState.field_0x39 ? 2 : 0, 0); + e = CreateObject(OBJECT_5B, !gPlayerState.field_0x39 ? 2 : 0, 0); if (e != NULL) { CopyPosition(&gPlayerEntity, e); StartCutscene(e, tmp); diff --git a/src/playerItem/playerItem10.c b/src/playerItem/playerItem10.c index 02ff1fb6..b0a495bb 100644 --- a/src/playerItem/playerItem10.c +++ b/src/playerItem/playerItem10.c @@ -2,6 +2,7 @@ #include "player.h" #include "functions.h" #include "asm.h" +#include "object.h" extern void (*const gUnk_0812AA80[])(Entity*); @@ -115,7 +116,7 @@ void sub_080ACC78(Entity* this) { } o = sub_08008782(this, 0xe, puVar8[*(u32*)&this->field_0x74], puVar8[*(u32*)&this->field_0x74 + 1]); if (o != NULL) { - child = CreateObject(0x11, o->type, o->type2); + child = CreateObject(OBJECT_11, o->type, o->type2); if (child != NULL) { child->actionDelay = o->actionDelay; child->x.HALF.HI = puVar8[*(u32*)&this->field_0x74] + this->x.HALF.HI; @@ -136,7 +137,7 @@ void sub_080ACC78(Entity* this) { } else { this->field_0x70.WORD = gUnk_0812AABC[this->type]; } - child = CreateObject(0x17, 0, 0); + child = CreateObject(OBJECT_17, 0, 0); if (child == NULL) { return; } diff --git a/src/projectile/removableDust.c b/src/projectile/removableDust.c index f6bc3346..5fbf3c76 100644 --- a/src/projectile/removableDust.c +++ b/src/projectile/removableDust.c @@ -4,6 +4,7 @@ #include "functions.h" #include "flags.h" #include "utils.h" +#include "object.h" extern u32 sub_080002C8(u16, u8); extern Entity* LoadRoomEntity(EntityData*); @@ -50,7 +51,7 @@ void sub_080AA464(Entity* this) { if (this->type == 0) { sub_080AA544(this); } - entity = CreateObject(0x21, 3, 0); + entity = CreateObject(OBJECT_21, 3, 0); if (entity != NULL) { CopyPosition(this, entity); } diff --git a/src/room.c b/src/room.c index f685c833..629e05e6 100644 --- a/src/room.c +++ b/src/room.c @@ -366,7 +366,7 @@ static void LoadDestructibleTile(TileEntity* tile) { void sub_0804B388(u32 a1, u32 a2) { Entity* e; SetTileType(a2 == 1 ? 38 : 52, a1, a2); - e = CreateObject(0xF, 2, 0); + e = CreateObject(SPECIAL_FX, 2, 0); if (e != NULL) { e->collisionLayer = a2; sub_0806F704(e, a1); diff --git a/src/roomInit.c b/src/roomInit.c index fc0a2ff2..80ff8a1c 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -4901,8 +4901,8 @@ void sub_StateChange_HouseInteriors4_Mayor(void) { if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(ITEM_QST_BOOK3)) { LoadRoomEntityList(&gUnk_080F3A48); } - gScreenTransition.player_status.field_0x20 = 0xf28; - gScreenTransition.player_status.field_0x22 = 0x82d; + gScreenTransition.player_status.overworld_map_x = 0xf28; + gScreenTransition.player_status.overworld_map_y = 0x82d; } extern u32 Enemies_LakeHylia_Main; From 9efd8da10499ae493d12af382fcba6089d653ee1 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Tue, 28 Dec 2021 05:27:27 +0200 Subject: [PATCH 050/168] Improve nonmatching state in collision.c --- asm/non_matching/arm_proxy/sub_0801766C.inc | 68 ------------------- asm/non_matching/arm_proxy/sub_080176E4.inc | 54 --------------- asm/non_matching/collision/sub_08017CBC.inc | 57 ---------------- asm/non_matching/collision/sub_0801802C.inc | 75 --------------------- include/entity.h | 7 +- src/collision.c | 56 ++++++++------- 6 files changed, 34 insertions(+), 283 deletions(-) delete mode 100644 asm/non_matching/arm_proxy/sub_0801766C.inc delete mode 100644 asm/non_matching/arm_proxy/sub_080176E4.inc delete mode 100644 asm/non_matching/collision/sub_08017CBC.inc delete mode 100644 asm/non_matching/collision/sub_0801802C.inc diff --git a/asm/non_matching/arm_proxy/sub_0801766C.inc b/asm/non_matching/arm_proxy/sub_0801766C.inc deleted file mode 100644 index 239a6506..00000000 --- a/asm/non_matching/arm_proxy/sub_0801766C.inc +++ /dev/null @@ -1,68 +0,0 @@ - .syntax unified - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08017682 -_0801767E: - movs r0, #1 - b _080176DE -_08017682: - ldr r2, _080176C0 @ =gUnk_03003C70 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r2, r0 - cmp r1, r2 - bls _080176DC -_0801768E: - ldr r0, [r2, #8] - cmp r0, #0 - bne _080176D6 - str r4, [r2, #8] - strb r0, [r2, #0xc] - ldrb r0, [r3] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r3] - ldr r3, _080176C4 @ =gUnk_02018EA0 - ldr r1, [r3] - ldrb r0, [r1, #0xc] - cmp r0, #0 - beq _080176C8 -_080176AA: - ldr r1, [r1, #4] - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _080176AA - str r1, [r2, #4] - ldr r0, [r1] - str r0, [r2] - str r2, [r0, #4] - str r2, [r1] - b _0801767E - .align 2, 0 -_080176C0: .4byte gUnk_03003C70 -_080176C4: .4byte gUnk_02018EA0 -_080176C8: - str r1, [r2, #4] - ldr r0, [r1] - str r0, [r2] - str r2, [r0, #4] - str r2, [r1] - str r2, [r3] - b _0801767E -_080176D6: - adds r2, #0x10 - cmp r1, r2 - bhi _0801768E -_080176DC: - movs r0, #0 -_080176DE: - pop {r4} - pop {r1} - bx r1 - .syntax divided diff --git a/asm/non_matching/arm_proxy/sub_080176E4.inc b/asm/non_matching/arm_proxy/sub_080176E4.inc deleted file mode 100644 index e8a48278..00000000 --- a/asm/non_matching/arm_proxy/sub_080176E4.inc +++ /dev/null @@ -1,54 +0,0 @@ - .syntax unified - push {lr} - adds r2, r0, #0 - adds r0, #0x29 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08017720 - movs r0, #1 - b _0801773A -_080176F8: - str r2, [r3, #8] - movs r0, #1 - strb r0, [r3, #0xc] - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - ldr r2, _0801771C @ =gUnk_02018EA0 - ldr r0, [r2] - str r0, [r3, #4] - ldr r1, [r0] - str r1, [r3] - str r3, [r1, #4] - str r3, [r0] - str r3, [r2] - movs r0, #1 - b _0801773A - .align 2, 0 -_0801771C: .4byte gUnk_02018EA0 -_08017720: - ldr r3, _08017740 @ =gUnk_03003C70 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r3, r0 - cmp r1, r3 - bls _08017738 -_0801772C: - ldr r0, [r3, #8] - cmp r0, #0 - beq _080176F8 - adds r3, #0x10 - cmp r1, r3 - bhi _0801772C -_08017738: - movs r0, #0 -_0801773A: - pop {r1} - bx r1 - .align 2, 0 -_08017740: .4byte gUnk_03003C70 - .syntax divided diff --git a/asm/non_matching/collision/sub_08017CBC.inc b/asm/non_matching/collision/sub_08017CBC.inc deleted file mode 100644 index 470a013e..00000000 --- a/asm/non_matching/collision/sub_08017CBC.inc +++ /dev/null @@ -1,57 +0,0 @@ - .syntax unified - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - movs r5, #0x10 - eors r2, r5 - adds r0, r2, #0 - subs r0, #0xc - movs r2, #0x1f - ands r0, r2 - ldrb r1, [r3, #0x15] - subs r1, r1, r0 - ands r1, r2 - cmp r1, #0x18 - bhi _08017CF0 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xf4 - strb r0, [r1] - adds r1, r3, #0 - adds r1, #0x3d - strb r0, [r1] - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_08017940 - b _08017D1E -_08017CF0: - adds r1, r3, #0 - adds r1, #0x42 - movs r0, #0xc - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x3d - strb r5, [r0] - adds r1, #1 - movs r0, #0xf0 - strb r0, [r1] - adds r1, #3 - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r1] - adds r1, r4, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08017D1E - movs r0, #0xff - strb r0, [r1] -_08017D1E: - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - .syntax divided diff --git a/asm/non_matching/collision/sub_0801802C.inc b/asm/non_matching/collision/sub_0801802C.inc deleted file mode 100644 index 2e766839..00000000 --- a/asm/non_matching/collision/sub_0801802C.inc +++ /dev/null @@ -1,75 +0,0 @@ - .syntax unified - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldrb r0, [r4, #8] - cmp r0, #1 - bne _08018058 - bl sub_08079F8C - cmp r0, #0 - beq _08018090 - movs r0, #0x10 - eors r0, r6 - ldrb r1, [r5, #0x14] - lsls r1, r1, #2 - subs r0, r0, r1 - adds r0, #5 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xa - bhi _08018090 - b _0801807A -_08018058: - cmp r0, #8 - bne _08018086 - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r1, r0 - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - subs r1, r1, r0 - adds r1, #5 - movs r0, #0x1f - ands r1, r0 - cmp r1, #0xa - bgt _08018090 - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] -_0801807A: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080180BC - movs r0, #1 - b _080180AE -_08018086: - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] - b _080180AE -_08018090: - adds r0, r4, #0 - adds r0, #0x40 - ldrb r0, [r0] - ldr r1, _080180B4 @ =0x000011AA - adds r0, r0, r1 - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - ldr r0, _080180B8 @ =gCollisionMtx - adds r3, r3, r0 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_08018308 -_080180AE: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080180B4: .4byte 0x000011AA -_080180B8: .4byte gCollisionMtx - .syntax divided diff --git a/include/entity.h b/include/entity.h index 43c3b721..ef7ae85f 100644 --- a/include/entity.h +++ b/include/entity.h @@ -94,9 +94,10 @@ typedef struct Entity_ { /*0x24*/ s16 speed; /*0x26*/ u8 spriteAnimation[3]; /*0x29*/ struct { - /* */ u8 b0 : 3; // 1-4 - /* */ u8 b1 : 3; // 8 - /* */ u8 b2 : 2; //0x40 + /* */ u8 b0 : 3; // 0-2 + /* */ u8 b1 : 3; // 3-5 + /* */ u8 b2 : 1; // 6 + /* */ u8 b3 : 1; // 7 /* */ } PACKED spritePriority; /*0x2a*/ u16 collisions; /*0x2c*/ union SplitWord x; diff --git a/src/collision.c b/src/collision.c index 3dac2783..7c3fc4d0 100644 --- a/src/collision.c +++ b/src/collision.c @@ -83,19 +83,19 @@ void RegisterPlayerHitbox(void) { gUnk_03003C70[0].node = &gPlayerEntity; } -// Loop declaration seems wrong -NONMATCH("asm/non_matching/arm_proxy/sub_0801766C.inc", u32 sub_0801766C(Entity* this)) { +u32 sub_0801766C(Entity* this) { u32 uVar1; LinkedList2* puVar3; LinkedList2* puVar2; LinkedList2* pLVar2; LinkedList2* i; + LinkedList2* end; u8* pbVar4; if (this->spritePriority.b2 != 0) { return 1; } else { - for (i = &gUnk_03003C70[0]; i < &gUnk_03003C70[16]; ++i) { + for (i = gUnk_03003C70, end = gUnk_03003C70 + 16; end > i; ++i) { if (i->node == NULL) { i->node = this; i->flags = 0; @@ -124,19 +124,18 @@ NONMATCH("asm/non_matching/arm_proxy/sub_0801766C.inc", u32 sub_0801766C(Entity* return 0; } } -END_NONMATCH -// same loop issue -NONMATCH("asm/non_matching/arm_proxy/sub_080176E4.inc", u32 sub_080176E4(Entity* this)) { +u32 sub_080176E4(Entity* this) { u32 uVar1; LinkedList2* j; LinkedList2* i; + LinkedList2* end; u8* pbVar4; if (this->spritePriority.b2 != 0) { return 1; } else { - for (i = &gUnk_03003C70[0]; i < &gUnk_03003C70[16]; ++i) { + for (i = gUnk_03003C70, end = gUnk_03003C70 + 16; end > i; ++i) { if (i->node == NULL) { i->node = this; i->flags = 1; @@ -153,12 +152,15 @@ NONMATCH("asm/non_matching/arm_proxy/sub_080176E4.inc", u32 sub_080176E4(Entity* return 0; } } -END_NONMATCH -// you guessed it +// Several issues: +// 1. b2 mask value is set before the loop even begins +// 2. data is allocated mid function +// 3. regalloc NONMATCH("asm/non_matching/arm_proxy/sub_08017744.inc", void sub_08017744(Entity* this)) { LinkedList2* i; - for (i = &gUnk_03003C70[0]; i < &gUnk_03003C70[16]; ++i) { + LinkedList2* end; + for (i = gUnk_03003C70, end = gUnk_03003C70 + 16; end > i; ++i) { if (i->node == this) { if (this->spritePriority.b2 != 0) { this->spritePriority.b2 = 0; @@ -179,17 +181,17 @@ NONMATCH("asm/non_matching/arm_proxy/sub_080177A0.inc", bool32 sub_080177A0(Enti u32 this_d; u32 depth; - if ((that->collisionLayer & this->collisionLayer) != 0) { + if ((this->collisionLayer & that->collisionLayer) != 0) { Hitbox* bb_this = this->hitbox; Hitbox* bb_that = that->hitbox; u32 this_w = bb_this->width; u32 that_w = bb_that->width; - if ((((this->x.HALF.HI - that->x.HALF.HI) + bb_this->offset_x) - bb_that->offset_x) + this_w + that_w <= - (this_w + that_w) * 2) { + u32 sumw = this_w + that_w; + if ((((this->x.HALF.HI - that->x.HALF.HI) + bb_this->offset_x) - bb_that->offset_x) + sumw <= (sumw)*2) { u32 this_h = bb_this->height; u32 that_h = bb_that->height; - if ((((this->y.HALF.HI - that->y.HALF.HI) + bb_this->offset_y) - bb_that->offset_y) + this_h + that_h <= - (this_h + that_h) * 2) { + u32 sumh = this_h + that_h; + if ((((this->y.HALF.HI - that->y.HALF.HI) + bb_this->offset_y) - bb_that->offset_y) + sumh <= (sumh)*2) { if ((this->field_0x3c & 0x10) != 0) this_d = ((Hitbox3D*)bb_this)->depth; else @@ -424,9 +426,9 @@ s32 sub_08017C40(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) return 1; } -NONMATCH("asm/non_matching/collision/sub_08017CBC.inc", - s32 sub_08017CBC(Entity* org, Entity* tgt, u32 direction, ColSettings* settings)) { - if (((-(((direction ^ 0x10) - 0xc) & 0x1f) + tgt->direction) & 0x1f) < 0x19) { +s32 sub_08017CBC(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { + direction = ((direction ^ 0x10) - 0xc) & 0x1f; + if (((-direction + tgt->direction) & 0x1f) < 0x19) { org->iframes = -12; tgt->iframes = -12; sub_08017940(org, tgt); @@ -440,7 +442,6 @@ NONMATCH("asm/non_matching/collision/sub_08017CBC.inc", } return 1; } -END_NONMATCH s32 sub_08017D28(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { gPlayerState.field_0x1a[0] = 1; @@ -565,19 +566,22 @@ s32 sub_08017F40(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) return 0; } -// inverted branch -NONMATCH("asm/non_matching/collision/sub_0801802C.inc", - s32 sub_0801802C(Entity* org, Entity* tgt, u32 direction, ColSettings* settings)) { +s32 sub_0801802C(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { int kind; ColSettings* p; u32 x; kind = org->kind; if (kind == 1) { - if (sub_08079F8C() && (((direction ^ 0x10) - 4 * tgt->animationState + 5) & 0x1Fu) <= 0xA) - goto _0801807A; + if (sub_08079F8C()) { + if (((((direction ^ 0x10) - 4 * tgt->animationState + 5) & 0x1F)) > 0xA) { + goto _08018090; + } else { + goto _0801807A; + } + } } else if (kind == 8) { - if ((((org->direction ^ 0x10) - 4 * tgt->animationState + 5) & 0x1Fu) <= 0xA) { + if ((((org->direction ^ 0x10) - 4 * tgt->animationState + 5) & 0x1F) <= 0xA) { org->health = 0; _0801807A: sub_080180BC(org, tgt); @@ -587,10 +591,10 @@ NONMATCH("asm/non_matching/collision/sub_0801802C.inc", org->health = 0; return 0; } +_08018090: x = 0x11aa; return sub_08018308(org, tgt, direction, &gCollisionMtx[x + org->hurtType]); } -END_NONMATCH void sub_080180BC(Entity* org, Entity* tgt) { if (org->iframes == 0) From f4b261415c39a1803c8bf089d047736c4b763b33 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Tue, 28 Dec 2021 05:41:26 +0200 Subject: [PATCH 051/168] Move sub_080ADA04 to screen.h --- include/functions.h | 2 -- include/screen.h | 2 ++ src/demoScreen.c | 14 +++++--------- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/include/functions.h b/include/functions.h index 105228da..77def4f0 100644 --- a/include/functions.h +++ b/include/functions.h @@ -224,6 +224,4 @@ extern void sub_080806BC(u32, u32, u32, u32); extern void LoadObjPalette(Entity*, u32); -extern void sub_080ADA04(OAMCommand*, void*); - #endif diff --git a/include/screen.h b/include/screen.h index 53f56b89..e057442a 100644 --- a/include/screen.h +++ b/include/screen.h @@ -82,4 +82,6 @@ extern BgControls gBgControls; extern Screen gScreen; extern OAMCommand gOamCmd; +extern void sub_080ADA04(OAMCommand*, void*); + #endif diff --git a/src/demoScreen.c b/src/demoScreen.c index 2d0ef585..efc3368d 100644 --- a/src/demoScreen.c +++ b/src/demoScreen.c @@ -110,16 +110,14 @@ NONMATCH("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void) val = 0; keys = gInput.heldKeys; switch (keys) { - case DPAD_RIGHT: - { + case DPAD_RIGHT: { if (gChooseFileState.unk_0x0 == 0) { val = 1; gChooseFileState.unk_0x20 = 4; SoundReq(SFX_TEXTBOX_CHOICE); } } - case DPAD_LEFT: - { + case DPAD_LEFT: { if (gChooseFileState.unk_0x0 == 0) { val = -1; gChooseFileState.unk_0x20 = 0xfc; @@ -127,8 +125,7 @@ NONMATCH("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void) } } case START_BUTTON: - case A_BUTTON: - { + case A_BUTTON: { if (gChooseFileState.unk_0x0 == 0) { gMain.screen = 2; gMain.funcIndex = gChooseFileState.unk_0x0; @@ -146,13 +143,12 @@ NONMATCH("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void) tmp = gSaveHeader->saveFileId; tmp *= 0x68; - if (tmp != tmp3) { + if (tmp != tmp3) { tmp5 = gChooseFileState.unk_0x20; tmp5 += tmp3; gChooseFileState.unk_0x10 = (tmp5 + (0x9c << 1)) % (0x9c << 1); unk_0x0 = 1; - } - else { + } else { unk_0x0 = 0; } From 2fcf0b0a82e009652d6d158b00420c5da7994c8d Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Tue, 28 Dec 2021 05:42:53 +0200 Subject: [PATCH 052/168] Remove screen.h include from function.h --- include/functions.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/functions.h b/include/functions.h index 77def4f0..7c875323 100644 --- a/include/functions.h +++ b/include/functions.h @@ -10,7 +10,6 @@ #include "room.h" #include "structures.h" #include "script.h" -#include "screen.h" // Identified - to be sorted into header files extern u32 CheckKinstoneFused(u32); From 9dac4f766060ff430c84966e0e5f874d1c2d1bbd Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Tue, 28 Dec 2021 05:54:56 +0200 Subject: [PATCH 053/168] Marked bitfield with masks like all the rest --- include/entity.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/entity.h b/include/entity.h index ef7ae85f..ecea4a9d 100644 --- a/include/entity.h +++ b/include/entity.h @@ -94,10 +94,10 @@ typedef struct Entity_ { /*0x24*/ s16 speed; /*0x26*/ u8 spriteAnimation[3]; /*0x29*/ struct { - /* */ u8 b0 : 3; // 0-2 - /* */ u8 b1 : 3; // 3-5 - /* */ u8 b2 : 1; // 6 - /* */ u8 b3 : 1; // 7 + /* */ u8 b0 : 3; // 1-4 + /* */ u8 b1 : 3; // 8 + /* */ u8 b2 : 1; // 0x40 + /* */ u8 b3 : 1; // 0x80 /* */ } PACKED spritePriority; /*0x2a*/ u16 collisions; /*0x2c*/ union SplitWord x; From c4f2efe13278c5aeb094be914513d19f5ddbce2b Mon Sep 17 00:00:00 2001 From: theo3 Date: Mon, 27 Dec 2021 21:26:32 -0800 Subject: [PATCH 054/168] label script functions --- asm/macros/scripts.inc | 56 ++-- .../script_CastorWildsStatueLeft.inc | 6 +- .../script_CastorWildsStatueMiddle.inc | 6 +- .../script_CastorWildsStatueRight.inc | 8 +- .../castorWilds/script_GreatFairyRupees.inc | 6 +- .../castorWilds/script_MalonAtRanch.inc | 8 +- data/scripts/castorWilds/script_Object69.inc | 2 +- .../script_Object69DarknutFight.inc | 8 +- data/scripts/cloudTops/script_EzloTalkPoW.inc | 6 +- .../cloudTops/script_GregalHealthy.inc | 14 +- data/scripts/cloudTops/script_GregalSick.inc | 20 +- .../cloudTops/script_Npc4EFirstCloud.inc | 6 +- .../cloudTops/script_Npc4EKinstoneFused.inc | 2 +- .../script_Object69GreatWhirlwindRevealed.inc | 4 +- .../script_Object6AMysteriousCloud.inc | 2 +- .../cloudTops/script_PlayerAtSiroc.inc | 2 +- data/scripts/cloudTops/script_Siroc.inc | 10 +- .../cloudTops/script_WindTribespeople1.inc | 10 +- .../cloudTops/script_WindTribespeople2.inc | 8 +- .../cloudTops/script_WindTribespeople3.inc | 10 +- .../cloudTops/script_WindTribespeople4.inc | 8 +- .../cloudTops/script_WindTribespeople5.inc | 8 +- .../cloudTops/script_WindTribespeople6.inc | 10 +- .../cloudTops/script_WindTribespeople7.inc | 8 +- ...indTribespeopleGreatWhirlwindRevealed1.inc | 8 +- ...indTribespeopleGreatWhirlwindRevealed2.inc | 8 +- data/scripts/cutscene/ezlo/script_EzloCap.inc | 126 +++---- .../ezlo/script_Npc4EEzloCutscene.inc | 30 +- .../script_Object6ALeftBullyingOctorok.inc | 12 +- .../script_Object6ARightBullyingOctorok.inc | 12 +- .../ezlo/script_PlayerAtFirstLookAtEzlo.inc | 4 +- .../ezlo/script_PlayerDefeatedOctoroks.inc | 2 +- .../ezlo/script_PlayerEzloBeingBullied.inc | 2 +- .../cutscene/intro/script_HouseDoorIntro.inc | 2 +- .../intro/script_IntroCameraTarget.inc | 2 +- .../intro/script_Npc4EOutsideLinksHouse.inc | 8 +- .../cutscene/intro/script_Object69Intro.inc | 4 +- .../cutscene/intro/script_PlayerIntro.inc | 4 +- .../cutscene/intro/script_SmithIntro.inc | 20 +- .../cutscene/intro/script_SmithIntro2.inc | 20 +- .../cutscene/intro/script_ZeldaIntro.inc | 4 +- .../intro/script_ZeldaLeaveLinksHouse.inc | 4 +- .../intro/script_ZeldaOutsideLinksHouse.inc | 30 +- .../intro/script_ZeldaTalkToSmith.inc | 20 +- .../introAssembly/script_GuardAtAssembly.inc | 12 +- .../script_KingDaltusAtAssembly.inc | 32 +- .../script_MinisterPothoAtAssembly.inc | 6 +- .../script_Npc4EIntroAssembly.inc | 10 +- .../introAssembly/script_PlayerEnters.inc | 4 +- .../introAssembly/script_PlayerGetSword.inc | 6 +- .../script_PlayerWakingUpInHyruleCastle.inc | 8 +- .../introAssembly/script_SmithAtAssembly.inc | 16 +- .../introBusinessScrub/script_080157AC.inc | 20 +- .../introBusinessScrub/script_08015B14.inc | 2 +- .../introBusinessScrub/script_08015B34.inc | 6 +- .../script_BusinessScrubIntro.inc | 8 +- .../script_PlayerAtIntroBusinessScrub4.inc | 4 +- .../script_PlayerIntroBusinessScrub1.inc | 2 +- .../script_PlayerIntroBusinessScrub2.inc | 2 +- .../script_PlayerIntroBusinessScrub3.inc | 2 +- .../script_ZeldaIntroBusinessScrub.inc | 24 +- .../introCeremony/script_08011890.inc | 2 +- .../introCeremony/script_GuardBottomRight.inc | 20 +- .../script_GuardCarryingChest.inc | 32 +- .../introCeremony/script_GuardEntryLeft.inc | 10 +- .../introCeremony/script_GuardEntryRight.inc | 10 +- .../introCeremony/script_GuardTopLeft.inc | 28 +- .../introCeremony/script_GuardTopRight.inc | 28 +- .../script_KingDaltusIntroCeremony.inc | 6 +- .../script_MinisterPothoIntroCastle.inc | 12 +- .../introCeremony/script_Npc4EMonsters.inc | 6 +- .../script_Npc4EVaatiAttacking.inc | 2 +- .../script_Object6ASwordInChest.inc | 2 +- .../script_PlayerAtIntroCeremony.inc | 2 +- .../introCeremony/script_PlayerFainting.inc | 6 +- .../script_PlayerIntroCastle.inc | 2 +- .../script_PlayerProtectingZelda.inc | 2 +- .../introCeremony/script_VaatiDarkMagic.inc | 2 +- .../script_VaatiIntroCeremony.inc | 32 +- .../introCeremony/script_ZeldaIntroCastle.inc | 8 +- .../cutscene/introTown/script_BeedleIntro.inc | 12 +- .../cutscene/introTown/script_GuardIntro.inc | 8 +- .../cutscene/introTown/script_KidIntro1.inc | 6 +- .../cutscene/introTown/script_KidIntro2.inc | 6 +- .../introTown/script_Npc4EIntroCastle.inc | 8 +- .../introTown/script_Npc4EIntroTown.inc | 32 +- .../introTown/script_Object69IntroTown.inc | 12 +- .../cutscene/introTown/script_PercyIntro.inc | 8 +- .../cutscene/introTown/script_PinaIntro.inc | 12 +- .../introTown/script_PlayerIntro1.inc | 2 +- .../introTown/script_PlayerIntro2.inc | 2 +- .../introTown/script_PlayerIntro3.inc | 2 +- .../introTown/script_PlayerIntro4.inc | 2 +- .../introTown/script_PlayerIntro5.inc | 4 +- .../introTown/script_PlayerIntroTown.inc | 4 +- .../introTown/script_TownsperonIntro.inc | 6 +- .../script_WindtribespeopleIntro.inc | 8 +- .../introTown/script_ZeldaIntroTown.inc | 32 +- .../script_HurdyGurdyManFirstKinstone.inc | 58 ++-- .../kinstones/script_KidKinstone1.inc | 14 +- .../kinstones/script_KidKinstone2.inc | 16 +- .../kinstones/script_KidKinstone3.inc | 14 +- .../kinstones/script_Npc4EFirstKinstone.inc | 10 +- .../script_PlayerAtFirstKinstone.inc | 4 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone1.inc | 2 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone2.inc | 2 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone3.inc | 2 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone4.inc | 2 +- .../minishVillage/script_ForestMinish5.inc | 4 +- .../minishVillage/script_ForestMinish6.inc | 6 +- .../minishVillage/script_ForestMinish7.inc | 4 +- .../minishVillage/script_ForestMinish8.inc | 4 +- .../minishVillage/script_ForestMinish9.inc | 4 +- .../script_Object69VillageIntro.inc | 14 +- .../script_EzloCapExplainingOriginStory.inc | 8 +- .../originStory/script_MinishEzlo.inc | 14 +- .../script_Object69CameraTarget.inc | 2 +- .../script_Object69MinishVaati.inc | 2 +- .../script_Object69VaatiAppears.inc | 34 +- .../originStory/script_Object6ADarkMagic.inc | 2 +- .../originStory/script_Object6AMinishCap.inc | 4 +- .../script_PlayerAtVaatisAppearance.inc | 2 +- .../script_PlayerDefeatedMoblins.inc | 2 +- .../script_PlayerSeenOriginStory.inc | 2 +- .../script_PlayerStoneWallsAppear.inc | 10 +- .../script_PlayerTryToFollowVaati.inc | 2 +- .../cutscene/originStory/script_Vaati.inc | 18 +- .../originStory/script_VaatiAppearsAgain.inc | 10 +- .../cutscene/outro/script_EzloCapOutro.inc | 12 +- .../cutscene/outro/script_EzloZeldaMagic.inc | 2 +- .../outro/script_GuardStoneOutro1.inc | 10 +- .../outro/script_GuardStoneOutro2.inc | 10 +- .../outro/script_GuardStoneOutro3.inc | 10 +- .../cutscene/outro/script_MaidStoneOutro1.inc | 8 +- .../cutscene/outro/script_MaidStoneOutro2.inc | 8 +- .../outro/script_MinishEzloGoodbye.inc | 22 +- .../cutscene/outro/script_MinishEzloOutro.inc | 18 +- .../outro/script_Npc4EDHCEntrance.inc | 2 +- .../cutscene/outro/script_Npc4EDHCThrone.inc | 2 +- .../outro/script_Npc4EFixedEverything.inc | 8 +- .../script_Npc4EHyruleCastleEntrance.inc | 2 +- .../outro/script_Npc4EHyruleCastleThrone.inc | 2 +- .../outro/script_Npc4EMinishPortalClosing.inc | 10 +- .../outro/script_Npc4EMinishWoods.inc | 2 +- .../cutscene/outro/script_Npc4EMtCrenel.inc | 2 +- .../cutscene/outro/script_Npc4EOutro.inc | 6 +- .../outro/script_Npc4ESanctuaryEntrance.inc | 2 +- .../outro/script_Npc4EUnfreezeCastleStaff.inc | 6 +- .../outro/script_Object6AEzloDismounting.inc | 2 +- .../outro/script_Object6AEzloFinalMagic.inc | 2 +- .../outro/script_Object6AMinishCapOutro.inc | 8 +- .../outro/script_Object6AOctorok1.inc | 4 +- .../outro/script_Object6AOctorok2.inc | 4 +- .../outro/script_Object6AOctorok3.inc | 4 +- .../outro/script_Object6AOctorok4.inc | 4 +- .../outro/script_Object6ATektite1.inc | 4 +- .../outro/script_Object6ATektite2.inc | 4 +- .../outro/script_Object6ATektite3.inc | 4 +- .../outro/script_Object6ATektite4.inc | 4 +- .../outro/script_Object6ATheLittleHat.inc | 2 +- .../outro/script_Object6AZeldaMagic.inc | 2 +- .../cutscene/outro/script_PlayerAtEzlo.inc | 2 +- .../cutscene/outro/script_PlayerAtOutro.inc | 8 +- .../outro/script_PlayerGetGreenCap.inc | 16 +- .../outro/script_PlayerSayGoodbye.inc | 4 +- .../cutscene/outro/script_ZeldaGoodbye.inc | 4 +- .../cutscene/outro/script_ZeldaOutro.inc | 12 +- .../cutscene/reveal/script_08013494.inc | 2 +- .../cutscene/reveal/script_FakeKingDaltus.inc | 4 +- .../reveal/script_Object3EPictureBackRoom.inc | 20 +- .../reveal/script_PlayerAtPicture.inc | 2 +- .../reveal/script_PlayerDistanceFromVaati.inc | 2 +- .../reveal/script_PlayerFaintAgain.inc | 6 +- .../reveal/script_PlayerMoveToPicture.inc | 2 +- .../cutscene/reveal/script_VaatiSanctuary.inc | 6 +- .../takeover/script_GuardTakeover.inc | 10 +- .../takeover/script_KingDaltusTakeover.inc | 2 +- .../takeover/script_MinisterPothoTakeover.inc | 2 +- .../takeover/script_Object69Takeover.inc | 16 +- .../script_Object69TakeoverCutscene.inc | 8 +- .../takeover/script_PlayerAtTakeover.inc | 12 +- .../takeover/script_VaatiTakeover.inc | 6 +- data/scripts/dhc/script_GuardCellLeft.inc | 8 +- data/scripts/dhc/script_GuardCellRight.inc | 8 +- data/scripts/dhc/script_GuardStone1.inc | 20 +- data/scripts/dhc/script_GuardStone2.inc | 34 +- data/scripts/dhc/script_KingDaltusStone.inc | 26 +- .../dhc/script_MinishterPothoStone.inc | 20 +- data/scripts/dhc/script_MinisterPothoCell.inc | 8 +- .../dhc/script_Npc4EAfterDefeatingV2.inc | 20 +- .../dhc/script_Npc4ECastleCollapsing.inc | 6 +- data/scripts/dhc/script_Npc4EV3Defeated.inc | 6 +- ...script_Object69BallAndChainSoldierRoom.inc | 10 +- .../dhc/script_Object69CastleEscape.inc | 8 +- .../dhc/script_Object69DarkNutsRoom.inc | 8 +- .../dhc/script_Object69KeatonsRoom.inc | 8 +- .../dhc/script_Object69KillDarkNut.inc | 6 +- .../scripts/dhc/script_Object69V1Defeated.inc | 4 +- .../scripts/dhc/script_Object69V2Defeated.inc | 6 +- data/scripts/dhc/script_Object69V2Intro.inc | 8 +- .../dhc/script_Object69VaatiWithZelda.inc | 18 +- .../script_Object6AV3DefeatedMinishCap.inc | 6 +- .../script_Object6AV3DefeatedMinishCap2.inc | 2 +- .../dhc/script_PlayerAfterDefeatingV2.inc | 4 +- data/scripts/dhc/script_PlayerAtDarkNut1.inc | 8 +- data/scripts/dhc/script_PlayerAtDarkNut2.inc | 8 +- data/scripts/dhc/script_PlayerAtDarkNut3.inc | 8 +- .../dhc/script_PlayerCastleCollapsing.inc | 2 +- .../scripts/dhc/script_PlayerCastleEscape.inc | 2 +- .../scripts/dhc/script_PlayerRescuedZelda.inc | 2 +- data/scripts/dhc/script_PlayerStonesFall.inc | 6 +- data/scripts/dhc/script_Vaati1Intro.inc | 16 +- data/scripts/dhc/script_VaatiWithZelda.inc | 8 +- .../dhc/script_ZeldaAfterDefeatingV2.inc | 26 +- data/scripts/dhc/script_ZeldaCastleEscape.inc | 4 +- data/scripts/dhc/script_ZeldaStoneDHC.inc | 2 +- .../fow/script_MazaalMacroDefeated.inc | 6 +- data/scripts/fow/script_Object89Mazaal.inc | 6 +- data/scripts/fow/script_PlayerAtMazaal.inc | 2 +- .../fow/script_PlayerDefeatedMazaal.inc | 10 +- data/scripts/graveyard/script_DampeInside.inc | 6 +- data/scripts/graveyard/script_DampeOuside.inc | 6 +- .../graveyard/script_GhostBrothers.inc | 8 +- data/scripts/graveyard/script_Gina.inc | 14 +- .../graveyard/script_GraveyardHouseDoor.inc | 6 +- .../graveyard/script_GreatFairyArrows.inc | 12 +- data/scripts/graveyard/script_KingGustav.inc | 18 +- .../script_Object69CrowStealingKey.inc | 10 +- .../graveyard/script_Object69GetKeyBack.inc | 8 +- .../graveyard/script_Object97FirstCrow.inc | 4 +- .../graveyard/script_Object97SecondCrow.inc | 4 +- .../script_PlayerAtGraveyardHouseDoor.inc | 4 +- .../graveyard/script_PlayerAtKingGustav.inc | 2 +- .../graveyard/script_PlayerGetKeyStolen.inc | 6 +- .../hyruleCastle/script_CastleMaid.inc | 2 +- .../hyruleCastle/script_GuardAtEntry.inc | 10 +- .../hyruleCastle/script_KingDaltus.inc | 2 +- .../hyruleCastle/script_MinisterPotho.inc | 8 +- .../script_Object69SanctuaryEntrance.inc | 8 +- .../hyruleCastle/script_SmithAtCastle.inc | 8 +- .../hyruleCastle/script_StoneZelda.inc | 6 +- .../hyruleCastleGarden/script_GardGarden5.inc | 2 +- .../hyruleCastleGarden/script_GuardEntry1.inc | 8 +- .../hyruleCastleGarden/script_GuardEntry2.inc | 8 +- .../hyruleCastleGarden/script_GuardEntry3.inc | 16 +- .../script_GuardGarden1.inc | 2 +- .../script_GuardGarden2.inc | 2 +- .../script_GuardGarden3.inc | 8 +- .../script_GuardGarden4.inc | 2 +- .../script_GuardGarden6.inc | 2 +- .../script_GuardGarden7.inc | 6 +- .../script_GuardGarden8.inc | 4 +- data/scripts/hyruleTown/script_Anju.inc | 20 +- data/scripts/hyruleTown/script_AnjuInside.inc | 8 +- data/scripts/hyruleTown/script_Beedle.inc | 22 +- data/scripts/hyruleTown/script_Brocco.inc | 12 +- data/scripts/hyruleTown/script_CafeGuy.inc | 28 +- data/scripts/hyruleTown/script_Carlov.inc | 16 +- data/scripts/hyruleTown/script_Carlov2.inc | 48 +-- .../scripts/hyruleTown/script_CarlovChest.inc | 4 +- data/scripts/hyruleTown/script_CarlovGame.inc | 42 +-- data/scripts/hyruleTown/script_CarlovWon.inc | 4 +- data/scripts/hyruleTown/script_Carpenter.inc | 10 +- data/scripts/hyruleTown/script_CatPerson.inc | 8 +- .../script_CatPersonTalkingToDogPerson.inc | 10 +- data/scripts/hyruleTown/script_Din.inc | 26 +- data/scripts/hyruleTown/script_Din2.inc | 18 +- data/scripts/hyruleTown/script_DinAlone.inc | 10 +- data/scripts/hyruleTown/script_DinMovedIn.inc | 10 +- .../hyruleTown/script_DogPersonInCatHouse.inc | 12 +- data/scripts/hyruleTown/script_DrLeft.inc | 14 +- data/scripts/hyruleTown/script_DrLeftDoor.inc | 6 +- data/scripts/hyruleTown/script_Emma.inc | 6 +- .../hyruleTown/script_EmmaNotEnoughRupees.inc | 4 +- data/scripts/hyruleTown/script_Farore.inc | 26 +- data/scripts/hyruleTown/script_Farore2.inc | 18 +- .../scripts/hyruleTown/script_FaroreAlone.inc | 10 +- .../hyruleTown/script_FaroreMovedIn.inc | 10 +- .../hyruleTown/script_FirstHouseDoor.inc | 8 +- .../hyruleTown/script_ForestMinish11.inc | 4 +- data/scripts/hyruleTown/script_Ghost.inc | 8 +- data/scripts/hyruleTown/script_GormanCats.inc | 10 +- .../hyruleTown/script_GormanFirstHouse.inc | 8 +- .../hyruleTown/script_GormanSecondHouse.inc | 10 +- .../hyruleTown/script_GoronMerchant.inc | 18 +- data/scripts/hyruleTown/script_GuardEast.inc | 8 +- .../hyruleTown/script_GuardLibrary.inc | 8 +- data/scripts/hyruleTown/script_GuardNorth.inc | 8 +- .../hyruleTown/script_GuardPatrolling.inc | 2 +- data/scripts/hyruleTown/script_GuardWest.inc | 30 +- .../hyruleTown/script_HurdyGurdyMan.inc | 12 +- data/scripts/hyruleTown/script_InnDoor.inc | 8 +- data/scripts/hyruleTown/script_Kid1.inc | 12 +- data/scripts/hyruleTown/script_Kid2.inc | 6 +- data/scripts/hyruleTown/script_Kid3.inc | 2 +- data/scripts/hyruleTown/script_Kid5.inc | 6 +- data/scripts/hyruleTown/script_Kid6.inc | 2 +- data/scripts/hyruleTown/script_Kid7.inc | 6 +- data/scripts/hyruleTown/script_KidInn.inc | 2 +- data/scripts/hyruleTown/script_Librari.inc | 20 +- .../hyruleTown/script_LibrariLater.inc | 16 +- .../hyruleTown/script_LibrarianLeft.inc | 16 +- .../script_LibrarianLeftWithQuest.inc | 26 +- .../hyruleTown/script_LibrarianRight.inc | 16 +- .../hyruleTown/script_LibraryVisitor.inc | 6 +- data/scripts/hyruleTown/script_MaidTown.inc | 2 +- .../hyruleTown/script_MalonHyruleTown.inc | 14 +- data/scripts/hyruleTown/script_Mama.inc | 14 +- data/scripts/hyruleTown/script_Marcy.inc | 10 +- data/scripts/hyruleTown/script_Mayor.inc | 20 +- .../scripts/hyruleTown/script_MutohInMill.inc | 10 +- data/scripts/hyruleTown/script_Nayru.inc | 26 +- data/scripts/hyruleTown/script_Nayru2.inc | 18 +- data/scripts/hyruleTown/script_NayruAlone.inc | 10 +- .../hyruleTown/script_NayruMovedIn.inc | 10 +- .../script_Object69SimonsSimulation.inc | 10 +- .../hyruleTown/script_Object6ACarlov.inc | 8 +- .../hyruleTown/script_Object6ACarlov2.inc | 16 +- ...cript_Object6APreventPlayerLeaveCarlov.inc | 6 +- .../hyruleTown/script_OldLadyCatHouse1.inc | 2 +- .../hyruleTown/script_OldLadyCatHouse2.inc | 8 +- data/scripts/hyruleTown/script_Phonograph.inc | 4 +- .../hyruleTown/script_PhonographDoor.inc | 8 +- data/scripts/hyruleTown/script_Pina.inc | 12 +- data/scripts/hyruleTown/script_Pita.inc | 10 +- .../script_PlayerActivatedTrapCard.inc | 6 +- .../hyruleTown/script_PlayerAtDrLeftDoor.inc | 4 +- .../hyruleTown/script_PlayerAtInnDoor.inc | 4 +- .../scripts/hyruleTown/script_PlayerAtRem.inc | 2 +- .../hyruleTown/script_PlayerCannotEnter.inc | 4 +- .../hyruleTown/script_PlayerSleepingInn.inc | 8 +- .../hyruleTown/script_PlayerStepOnTrap.inc | 2 +- .../script_PlayerWakingUpAtSimons.inc | 2 +- data/scripts/hyruleTown/script_Postman.inc | 6 +- data/scripts/hyruleTown/script_Rem.inc | 12 +- .../hyruleTown/script_RemFallingAsleep.inc | 36 +- .../hyruleTown/script_RemTownMinish.inc | 12 +- data/scripts/hyruleTown/script_Simon.inc | 18 +- data/scripts/hyruleTown/script_SimonsDoor.inc | 8 +- .../hyruleTown/script_SittingPerson.inc | 8 +- .../hyruleTown/script_SmallTownMinish.inc | 12 +- data/scripts/hyruleTown/script_Stamp.inc | 8 +- data/scripts/hyruleTown/script_Stockwell.inc | 36 +- .../hyruleTown/script_StockwellBuy.inc | 10 +- .../hyruleTown/script_StockwellDogFood.inc | 14 +- data/scripts/hyruleTown/script_Sturgeon.inc | 12 +- .../script_SturgeonAllBooksCollected.inc | 20 +- data/scripts/hyruleTown/script_Teachers.inc | 10 +- .../scripts/hyruleTown/script_TownMinish1.inc | 6 +- .../scripts/hyruleTown/script_TownMinish2.inc | 6 +- .../scripts/hyruleTown/script_TownMinish3.inc | 6 +- .../scripts/hyruleTown/script_TownMinish4.inc | 10 +- .../scripts/hyruleTown/script_TownMinish5.inc | 10 +- .../scripts/hyruleTown/script_TownMinish6.inc | 16 +- .../hyruleTown/script_Townsperson1.inc | 6 +- .../script_TownspersonInDogHouse.inc | 8 +- data/scripts/hyruleTown/script_Wheaton.inc | 12 +- .../script_WindTribespeopleVisitor.inc | 12 +- .../script_BombMinishKinstone.inc | 4 +- .../kinstoneFusion/script_CarlovKinstone.inc | 2 +- .../script_GhostBrotherKinstone.inc | 6 +- .../script_GormanFirstAppearance.inc | 6 +- .../kinstoneFusion/script_Goron1Kinstone2.inc | 18 +- .../kinstoneFusion/script_Goron1Kinstone3.inc | 12 +- .../kinstoneFusion/script_Goron1Kinstone4.inc | 12 +- .../kinstoneFusion/script_Goron1Kinstone5.inc | 12 +- .../kinstoneFusion/script_Goron1Kinstone6.inc | 12 +- .../kinstoneFusion/script_Goron2Kinstone2.inc | 14 +- .../kinstoneFusion/script_Goron2Kinstone3.inc | 18 +- .../kinstoneFusion/script_Goron2Kinstone4.inc | 22 +- .../kinstoneFusion/script_Goron2Kinstone5.inc | 18 +- .../kinstoneFusion/script_Goron2Kinstone6.inc | 22 +- .../kinstoneFusion/script_Goron3Kinstone3.inc | 8 +- .../kinstoneFusion/script_Goron4Kinstone4.inc | 12 +- .../kinstoneFusion/script_Goron5Kinstone5.inc | 8 +- .../script_Goron6Kindstone6.inc | 12 +- .../kinstoneFusion/script_GoronKinstone.inc | 14 +- .../script_GoronMerchantArriving.inc | 4 +- .../kinstoneFusion/script_MutohKinstone.inc | 4 +- .../script_ObjectB3KinstoneSpark.inc | 4 +- ...script_ObjectB3KinstoneSparkFromBottom.inc | 4 +- .../script_ObjectB3KinstoneSparkGoron.inc | 4 +- ...ipt_ObjectB3KinstoneSparkGoronMerchang.inc | 4 +- .../kinstoneFusion/script_StampKinstone.inc | 4 +- .../lakeHylia/script_EzloTalkOcarina.inc | 8 +- .../lakeHylia/script_ForestMinish3.inc | 4 +- .../lakeHylia/script_KingGustafHologram.inc | 20 +- .../lakeHylia/script_Object69AfterToD.inc | 6 +- .../scripts/lakeHylia/script_ShopwellsDog.inc | 2 +- .../scripts/lonLonRanch/scriptMalonInside.inc | 14 +- .../lonLonRanch/script_GoronPunching.inc | 16 +- .../lonLonRanch/script_MalonLostKey.inc | 14 +- .../lonLonRanch/script_PlayerGiveKey.inc | 2 +- .../lonLonRanch/script_TalonGotKey.inc | 10 +- .../lonLonRanch/script_TalonInside.inc | 8 +- .../lonLonRanch/script_TalonInside2.inc | 8 +- .../lonLonRanch/script_TalonLostKey.inc | 6 +- data/scripts/minishWoods/script_08012C98.inc | 8 +- data/scripts/minishWoods/script_08012D18.inc | 8 +- .../scripts/minishWoods/script_BombMinish.inc | 32 +- .../minishWoods/script_EzloTalkDWS.inc | 6 +- .../script_EzloTalkMinishPortal.inc | 8 +- data/scripts/minishWoods/script_Festari.inc | 22 +- .../minishWoods/script_ForestMinish10.inc | 16 +- .../minishWoods/script_ForestMinish4.inc | 4 +- data/scripts/minishWoods/script_Gentari.inc | 46 +-- .../minishWoods/script_Object69PotionBlue.inc | 4 +- .../minishWoods/script_Object69PotionRed.inc | 6 +- .../minishWoods/script_PlayerAtBombMinish.inc | 4 +- .../minishWoods/script_PlayerAtFestari.inc | 2 +- .../minishWoods/script_PlayerAtGentari.inc | 4 +- .../script_PlayerAtMadderpillar.inc | 8 +- data/scripts/minishWoods/script_Syrup.inc | 14 +- data/scripts/mtCrenel/script_CrenelHermit.inc | 8 +- data/scripts/mtCrenel/script_EzloTalkCoF.inc | 6 +- .../mtCrenel/script_GreatFairyBombs.inc | 8 +- data/scripts/mtCrenel/script_Melari.inc | 26 +- data/scripts/mtCrenel/script_MelariInRoom.inc | 10 +- .../mtCrenel/script_MountainMinish1.inc | 4 +- .../mtCrenel/script_MountainMinish2.inc | 6 +- .../mtCrenel/script_MountainMinish3.inc | 12 +- .../mtCrenel/script_MountainMinish4.inc | 12 +- .../mtCrenel/script_MountainMinish5.inc | 26 +- .../mtCrenel/script_Object6ABrokenSword.inc | 2 +- .../mtCrenel/script_PlayerAtMelari.inc | 2 +- .../script_PlayerAtMountainMinishExit.inc | 4 +- .../mtCrenel/script_PlayerGetWhiteSword.inc | 6 +- .../script_PlayerPlaceBrokenSword.inc | 2 +- .../script_CarpenterOutsideTown.inc | 10 +- .../script_GuardNorthHyruleField.inc | 8 +- .../script_MutohOutsideTown.inc | 10 +- .../script_Object69FixBridge.inc | 6 +- data/scripts/npc/script_BladeBrothers.inc | 30 +- data/scripts/npc/script_Farmer.inc | 16 +- data/scripts/npc/script_ForestMinish12.inc | 2 +- data/scripts/npc/script_ForestMinish13.inc | 6 +- data/scripts/npc/script_ForestMinish14.inc | 8 +- data/scripts/npc/script_ForestMinish15.inc | 8 +- data/scripts/npc/script_ForestMinish18.inc | 24 +- data/scripts/npc/script_ForestMinish19.inc | 24 +- data/scripts/npc/script_ForestMinish20.inc | 24 +- data/scripts/npc/script_ForestMinish21.inc | 6 +- data/scripts/npc/script_MysteriousWall.inc | 4 +- .../npc/script_PlayerAtBladeBrothers.inc | 2 +- .../scripts/npc/script_PlayerAtGreatFairy.inc | 4 +- data/scripts/npc/script_TingleSiblings.inc | 28 +- data/scripts/npc/script_Windcrest.inc | 10 +- data/scripts/sanctuary/script_08013F94.inc | 8 +- .../script_NPC4EPreventPlayerLeave.inc | 8 +- .../script_Npc4EFinalSwordRumble.inc | 6 +- .../script_Npc4ELookAtPictureAgain.inc | 4 +- .../sanctuary/script_Npc4EPedestal.inc | 8 +- .../script_Npc4EPreventPlayerLeaving.inc | 8 +- .../sanctuary/script_Npc4ESanctuaryIntro.inc | 14 +- .../sanctuary/script_Npc4ESecondSanctuary.inc | 10 +- .../sanctuary/script_Npc4ESpawnTextBoard.inc | 6 +- .../sanctuary/script_Npc4EThirdSanctuary.inc | 10 +- .../sanctuary/script_Object6AEarthElement.inc | 4 +- .../script_Object6AEarthElementFloating.inc | 4 +- .../sanctuary/script_Object6AFireElement.inc | 4 +- .../script_Object6AFireElementFloating.inc | 4 +- .../sanctuary/script_Object6ASword2.inc | 6 +- .../sanctuary/script_Object6ASword3.inc | 6 +- .../sanctuary/script_Object6ASwordChange1.inc | 2 +- .../script_Object6ASwordCharge10.inc | 6 +- .../sanctuary/script_Object6ASwordCharge2.inc | 2 +- .../sanctuary/script_Object6ASwordCharge3.inc | 2 +- .../sanctuary/script_Object6ASwordCharge4.inc | 2 +- .../sanctuary/script_Object6ASwordCharge5.inc | 12 +- .../sanctuary/script_Object6ASwordCharge6.inc | 12 +- .../sanctuary/script_Object6ASwordCharge8.inc | 12 +- .../sanctuary/script_Object6ASwordCharge9.inc | 6 +- .../script_Object6ASwordInPedestal.inc | 6 +- .../sanctuary/script_Object6ATextBoard.inc | 14 +- .../sanctuary/script_Object6AWaterElement.inc | 4 +- .../script_Object6AWaterElementFloating.inc | 4 +- .../sanctuary/script_Object6AWindElement.inc | 4 +- .../script_Object6AWindElementFloating.inc | 4 +- .../sanctuary/script_Objet6ASwordCharge7.inc | 12 +- .../sanctuary/script_PlayerAtPedestal.inc | 4 +- .../script_PlayerAtSanctuaryEntrance.inc | 2 +- .../sanctuary/script_PlayerGetElement.inc | 4 +- .../script_PlayerPickUpFinalSword.inc | 4 +- .../sanctuary/script_PlayerPickUpSword.inc | 4 +- .../sanctuary/script_PlayerSanctuary.inc | 4 +- .../sanctuary/script_PlayerSanctuaryIntro.inc | 2 +- .../script_PlayerTextBoardAppears.inc | 2 +- .../southHyruleField/script_ForestMinish2.inc | 4 +- .../script_Object69LinksHouseBed.inc | 14 +- .../script_PlayerWakeAfterRest.inc | 2 +- .../script_SmithAtLinksHouse.inc | 14 +- data/scripts/unused/script_0800B828.inc | 22 +- data/scripts/unused/script_0800D84C.inc | 4 +- data/scripts/unused/script_0800FB2C.inc | 2 +- data/scripts/unused/script_08012B24.inc | 4 +- data/scripts/unused/script_08012B50.inc | 4 +- data/scripts/unused/script_08012B7C.inc | 4 +- data/scripts/unused/script_08012C68.inc | 4 +- data/scripts/unused/script_080155F4.inc | 2 +- data/scripts/unused/script_08015A7C.inc | 4 +- data/scripts/unused/script_08015AA0.inc | 4 +- data/scripts/unused/script_08015F80.inc | 2 +- data/scripts/unused/script_08016384.inc | 14 +- data/scripts/unused/script_08016482.inc | 40 +-- data/scripts/unused/script_080165A4.inc | 2 +- data/scripts/veilFalls/script_BigGoron3.inc | 4 +- .../veilFalls/script_BigGoronMirrorShield.inc | 2 +- .../scripts/veilFalls/script_BigGoronTalk.inc | 2 +- .../veilFalls/script_NPC4ESourceOfTheFlow.inc | 4 +- .../script_NPC4ESouurceOfTheFlowOpening.inc | 4 +- .../script_Object3ELeftStoneOpening.inc | 2 +- .../script_Object3ERightStoneOpening.inc | 2 +- .../veilFalls/script_Object6AMirrorShield.inc | 2 +- .../veilFalls/script_Object6AVeilFallsTop.inc | 2 +- .../westernWood/script_ForestMinish1.inc | 4 +- .../scripts/westernWood/script_MoblinLady.inc | 8 +- .../script_MoblinLadyDisguised.inc | 20 +- .../westernWood/script_PercyInside.inc | 8 +- .../westernWood/script_PercyOutside.inc | 8 +- data/scripts/windRuins/script_EzloTalkFoW.inc | 6 +- .../windRuins/script_Npc4EReceiveOcarina.inc | 6 +- .../script_Npc4EWindRuinsTextBoard.inc | 4 +- .../windRuins/script_PlayerAtTextboard.inc | 2 +- src/player.c | 2 +- src/script.c | 316 +++++++++--------- 525 files changed, 2621 insertions(+), 2625 deletions(-) diff --git a/asm/macros/scripts.inc b/asm/macros/scripts.inc index 1c6bc83d..145b24d1 100644 --- a/asm/macros/scripts.inc +++ b/asm/macros/scripts.inc @@ -171,7 +171,7 @@ .2byte 0x0418 .endm -.macro _0807E30C +.macro FacePlayerAndCheckDist .2byte 0x0419 .endm @@ -180,7 +180,7 @@ .2byte \amount .endm -.macro _0807E3BC s:req +.macro HasShells s:req .2byte 0x081b .2byte \s .endm @@ -209,17 +209,17 @@ .2byte \s .endm -.macro _0807E4CC w:req +.macro VariableBitSet w:req .2byte 0x0c20 .4byte \w .endm -.macro _0807E4EC w:req +.macro VariableOnlyBitSet w:req .2byte 0x0c21 .4byte \w .endm -.macro _0807E514 w:req +.macro VariableEqual w:req .2byte 0x0c22 .4byte \w .endm @@ -229,7 +229,7 @@ .4byte \w .endm -.macro _0807E564 +.macro CheckPlayerMinish .2byte 0x0424 .endm @@ -312,7 +312,7 @@ .2byte 0x0434 .endm -.macro WaitForPlayerAction0x17 +.macro WaitForPlayerEnterRoom .2byte 0x0435 .endm @@ -324,7 +324,7 @@ .2byte 0x0437 .endm -.macro _0807E778 s:req +.macro SetFadeTime s:req .2byte 0x0838 .2byte \s .endm @@ -334,7 +334,7 @@ .4byte \w .endm -.macro _0807E79C +.macro FadeInvert .2byte 0x043a .endm @@ -378,15 +378,15 @@ .2byte 0x0442 .endm -.macro _0807E864 +.macro SetPlayerIdle .2byte 0x0443 .endm -.macro _0807E878 +.macro EnablePlayerControl .2byte 0x0444 .endm -.macro _0807E888 +.macro DisablePlayerControl .2byte 0x0445 .endm @@ -400,7 +400,7 @@ .4byte \script .endm -.macro _0807E8D4 s:req +.macro SetPlayerAnimation s:req .2byte 0x0848 .2byte \s .endm @@ -421,7 +421,7 @@ .2byte 0x044c .endm -.macro _0807E908 s:req +.macro SetAction s:req .2byte 0x084d .2byte \s .endm @@ -431,16 +431,16 @@ .4byte \value .endm -.macro _0807E924 +.macro SetVariableToFrame .2byte 0x044f .endm -.macro _0807E930 s:req +.macro SetAnimation s:req .2byte 0x0850 .2byte \s .endm -.macro _0807E944 +.macro TriggerInteract .2byte 0x0451 .endm @@ -509,7 +509,7 @@ .2byte 0x045e .endm -.macro _0807EB28 s:req +.macro EzloMessage s:req .2byte 0x085f .2byte \s .endm @@ -518,7 +518,7 @@ .2byte 0x0460 .endm -.macro _0807EB44 s:req +.macro SetAnimationState s:req .2byte 0x0861 .2byte \s .endm @@ -529,11 +529,11 @@ .2byte \b .endm -.macro _0807EB74 +.macro FacePlayer .2byte 0x0463 .endm -.macro _0807EB8C +.macro FaceAwayFromPlayer .2byte 0x0464 .endm @@ -552,7 +552,7 @@ .2byte \speed .endm -.macro SetEntity0x20 value:req +.macro SetEntityVelocity value:req .2byte 0x0c68 .4byte \value .endm @@ -577,27 +577,27 @@ .2byte 0x046c .endm -.macro _0807EC1C s:req +.macro WalkForward s:req .2byte 0x086d .2byte \s .endm -.macro _0807EC64 s:req +.macro WalkNorth s:req .2byte 0x086e .2byte \s .endm -.macro _0807EC94 s:req +.macro WalkEast s:req .2byte 0x086f .2byte \s .endm -.macro _0807ECC4 s:req +.macro WalkSouth s:req .2byte 0x0870 .2byte \s .endm -.macro _0807ECF4 s:req +.macro WalkWest s:req .2byte 0x0871 .2byte \s .endm @@ -695,7 +695,7 @@ .2byte \s .endm -.macro _0807F050 s:req +.macro GiveKinstone s:req .2byte 0x0883 .2byte \s .endm diff --git a/data/scripts/castorWilds/script_CastorWildsStatueLeft.inc b/data/scripts/castorWilds/script_CastorWildsStatueLeft.inc index b8055c03..ffb45054 100644 --- a/data/scripts/castorWilds/script_CastorWildsStatueLeft.inc +++ b/data/scripts/castorWilds/script_CastorWildsStatueLeft.inc @@ -4,15 +4,15 @@ SCRIPT_START script_CastorWildsStatueLeft CheckKinstoneFused 0x0006 JumpIf script_0800B302 _0807EA88 0x0006 - _0807EB44 0x0002 + SetAnimationState 0x0002 EndBlock script_0800B268: _0807EA4C _0807E9F0 - _0807E864 + SetPlayerIdle CheckKinstoneFused 0x0006 JumpIf script_0800B2E2 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800B268 .2byte 0x0000 diff --git a/data/scripts/castorWilds/script_CastorWildsStatueMiddle.inc b/data/scripts/castorWilds/script_CastorWildsStatueMiddle.inc index 19b2defb..ef5548f6 100644 --- a/data/scripts/castorWilds/script_CastorWildsStatueMiddle.inc +++ b/data/scripts/castorWilds/script_CastorWildsStatueMiddle.inc @@ -4,15 +4,15 @@ SCRIPT_START script_CastorWildsStatueMiddle CheckKinstoneFused 0x0007 JumpIf script_0800B302 _0807EA88 0x0007 - _0807EB44 0x0002 + SetAnimationState 0x0002 EndBlock script_0800B298: _0807EA4C _0807E9F0 - _0807E864 + SetPlayerIdle CheckKinstoneFused 0x0007 JumpIf script_0800B2E2 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800B298 .2byte 0x0000 diff --git a/data/scripts/castorWilds/script_CastorWildsStatueRight.inc b/data/scripts/castorWilds/script_CastorWildsStatueRight.inc index e5553e6f..3c9c3c4f 100644 --- a/data/scripts/castorWilds/script_CastorWildsStatueRight.inc +++ b/data/scripts/castorWilds/script_CastorWildsStatueRight.inc @@ -4,20 +4,20 @@ SCRIPT_START script_CastorWildsStatueRight CheckKinstoneFused 0x0008 JumpIf script_0800B302 _0807EA88 0x0008 - _0807EB44 0x0002 + SetAnimationState 0x0002 EndBlock script_0800B2C8: _0807EA4C _0807E9F0 - _0807E864 + SetPlayerIdle CheckKinstoneFused 0x0008 JumpIf script_0800B2E2 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800B2C8 script_0800B2E2: DoPostScriptAction 0x0013 - _0807EB44 0x0004 + SetAnimationState 0x0004 _0807E9DC Call sub_080676E0 Call sub_08067534 diff --git a/data/scripts/castorWilds/script_GreatFairyRupees.inc b/data/scripts/castorWilds/script_GreatFairyRupees.inc index 2385d474..9ab8427f 100644 --- a/data/scripts/castorWilds/script_GreatFairyRupees.inc +++ b/data/scripts/castorWilds/script_GreatFairyRupees.inc @@ -9,8 +9,8 @@ script_0800B6D4: CheckPlayerInRegion 0x0078, 0x00b8, 0x1060 JumpIfNot script_0800B6D4 Call sub_08079184 - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal StartPlayerScript script_PlayerAtGreatFairy WaitForSyncFlagAndClear 0x00000004 SetRoomFlag 0x0000 @@ -19,7 +19,7 @@ script_0800B6D4: JumpIf script_0800B7A2 MessageNoOverlap 0x057b WaitUntilTextboxCloses - CallWithArg sub_0807F970, 0x0000057d + CallWithArg CheckMessageEqual, 0x0000057d JumpIf script_0800B6A6 WaitUntilTextboxCloses SetLocalFlag 0x009f diff --git a/data/scripts/castorWilds/script_MalonAtRanch.inc b/data/scripts/castorWilds/script_MalonAtRanch.inc index 640be984..91a5b4b2 100644 --- a/data/scripts/castorWilds/script_MalonAtRanch.inc +++ b/data/scripts/castorWilds/script_MalonAtRanch.inc @@ -8,10 +8,10 @@ SCRIPT_START script_MalonAtRanch script_0800B5FA: CheckEntityInteractType JumpIfNot script_0800B5FA - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x2009 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 Jump script_0800B5FA diff --git a/data/scripts/castorWilds/script_Object69.inc b/data/scripts/castorWilds/script_Object69.inc index 0bb907d2..399f5c77 100644 --- a/data/scripts/castorWilds/script_Object69.inc +++ b/data/scripts/castorWilds/script_Object69.inc @@ -30,7 +30,7 @@ script_0800B216: Wait 0x000c CameraTargetPlayer Wait 0x0008 - _0807E878 + EnablePlayerControl .ifdef JP CheckLocalFlag 0x001e .else diff --git a/data/scripts/castorWilds/script_Object69DarknutFight.inc b/data/scripts/castorWilds/script_Object69DarknutFight.inc index c62e659d..cfa00564 100644 --- a/data/scripts/castorWilds/script_Object69DarknutFight.inc +++ b/data/scripts/castorWilds/script_Object69DarknutFight.inc @@ -3,9 +3,9 @@ SCRIPT_START script_Object69DarknutFight BeginBlock Call sub_0807DF28 SetLocalFlag 0x0039 - _0807E864 + SetPlayerIdle EndBlock - WaitForPlayerAction0x17 + WaitForPlayerEnterRoom StartPlayerScript script_PlayerAtDarknutFight Wait 0x0018 SetSyncFlag 0x00000002 @@ -13,8 +13,8 @@ SCRIPT_START script_Object69DarknutFight SetRoomFlag 0x0000 Wait 0x0010 PlayBgm BGM_FIGHT_THEME - _0807EB28 0x2701 - _0807E878 + EzloMessage 0x2701 + EnablePlayerControl Call sub_0807DF50 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_EzloTalkPoW.inc b/data/scripts/cloudTops/script_EzloTalkPoW.inc index bba202e7..a8980ffa 100644 --- a/data/scripts/cloudTops/script_EzloTalkPoW.inc +++ b/data/scripts/cloudTops/script_EzloTalkPoW.inc @@ -1,12 +1,12 @@ @ Ezlo talk after getting wind element SCRIPT_START script_EzloTalkPoW - _0807E864 + SetPlayerIdle Call sub_0807DF28 - _0807EB28 0x1c05 + EzloMessage 0x1c05 WaitUntilTextboxCloses SetLocalFlagByBank 0x0100, 0x0005 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_GregalHealthy.inc b/data/scripts/cloudTops/script_GregalHealthy.inc index 646b5d39..8f96aa4f 100644 --- a/data/scripts/cloudTops/script_GregalHealthy.inc +++ b/data/scripts/cloudTops/script_GregalHealthy.inc @@ -3,14 +3,14 @@ SCRIPT_START script_GregalHealthy BeginBlock Call sub_0806CD58 DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0006 + SetAnimationState 0x0004 + SetAnimation 0x0006 EndBlock script_08014C42: CheckEntityInteractType JumpIfNot script_08014C42 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer script_08014C4C: Call sub_0806CCD0 JumpIfNot script_08014C4C @@ -30,7 +30,7 @@ script_08014C7C: WaitUntilTextboxCloses script_08014C82: Wait 0x000f - _0807E878 - _0807EB44 0x0004 - _0807E930 0x0006 + EnablePlayerControl + SetAnimationState 0x0004 + SetAnimation 0x0006 Jump script_08014C42 diff --git a/data/scripts/cloudTops/script_GregalSick.inc b/data/scripts/cloudTops/script_GregalSick.inc index dac29473..038c7f29 100644 --- a/data/scripts/cloudTops/script_GregalSick.inc +++ b/data/scripts/cloudTops/script_GregalSick.inc @@ -2,7 +2,7 @@ SCRIPT_START script_GregalSick BeginBlock DoPostScriptAction 0x000a - _0807E930 0x0000 + SetAnimation 0x0000 EndBlock CheckLocalFlag 0x0063 JumpIf script_08014BE8 @@ -14,21 +14,21 @@ script_08014B48: CheckEntityInteractType JumpIfNot script_08014B48 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x2f01 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_08014B48 script_08014B70: EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetSyncFlag 0x00000001 DoPostScriptAction 0x0004 WaitForSyncFlagAndClear 0x00000002 - _0807E930 0x0010 + SetAnimation 0x0010 Call sub_0806CCF8 Wait 0x0014 Call sub_0806CD04 @@ -46,14 +46,14 @@ script_08014B70: SetSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000002 Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_08014BE8: - _0807E930 0x0010 + SetAnimation 0x0010 Call sub_0806CD4C script_08014BF2: CheckEntityInteractType JumpIfNot script_08014BF2 - _0807E864 + SetPlayerIdle CheckLocalFlag 0x0065 JumpIf script_08014C1C SetLocalFlag 0x0065 @@ -68,5 +68,5 @@ script_08014C1C: WaitUntilTextboxCloses script_08014C22: Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_08014BF2 diff --git a/data/scripts/cloudTops/script_Npc4EFirstCloud.inc b/data/scripts/cloudTops/script_Npc4EFirstCloud.inc index 14cce552..bec3df8e 100644 --- a/data/scripts/cloudTops/script_Npc4EFirstCloud.inc +++ b/data/scripts/cloudTops/script_Npc4EFirstCloud.inc @@ -2,7 +2,7 @@ @ Reponsible for Kinstone cutscenes SCRIPT_START script_Npc4EFirstCloud BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x000b DoPostScriptAction 0x0008 Call sub_0806DAAC @@ -16,10 +16,10 @@ script_0800D636: Call sub_0806DAAC JumpIf script_0800D650 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800D636 script_0800D650: - _0807E864 + SetPlayerIdle Call sub_0807DF28 Call sub_0807FBC4 Call sub_0807FBA0 diff --git a/data/scripts/cloudTops/script_Npc4EKinstoneFused.inc b/data/scripts/cloudTops/script_Npc4EKinstoneFused.inc index 91d9eae4..8f86a3a7 100644 --- a/data/scripts/cloudTops/script_Npc4EKinstoneFused.inc +++ b/data/scripts/cloudTops/script_Npc4EKinstoneFused.inc @@ -4,7 +4,7 @@ SCRIPT_START script_Npc4EKinstoneFused _0807F0B4 0x0004 CameraTargetPlayer Call sub_0807FBCC - _0807E878 + EnablePlayerControl Call sub_0807DF50 script_0800D6AE: DoPostScriptAction 0x0006 diff --git a/data/scripts/cloudTops/script_Object69GreatWhirlwindRevealed.inc b/data/scripts/cloudTops/script_Object69GreatWhirlwindRevealed.inc index c2d465d4..8053cca1 100644 --- a/data/scripts/cloudTops/script_Object69GreatWhirlwindRevealed.inc +++ b/data/scripts/cloudTops/script_Object69GreatWhirlwindRevealed.inc @@ -1,7 +1,7 @@ @ Cloud Tops OBJECT_69 great whirlwind revealed SCRIPT_START script_Object69GreatWhirlwindRevealed BeginBlock - Call sub_0807F360 + Call SetPriorityHighest SetEntitySpeed 0x0700 _0807F0B4 0x0007 CameraTargetEntity @@ -17,7 +17,7 @@ SCRIPT_START script_Object69GreatWhirlwindRevealed _0807F0B4 0x0004 CameraTargetPlayer Call sub_0807FBCC - _0807E878 + EnablePlayerControl Call sub_0807DF50 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cloudTops/script_Object6AMysteriousCloud.inc b/data/scripts/cloudTops/script_Object6AMysteriousCloud.inc index f2c812eb..686d63dd 100644 --- a/data/scripts/cloudTops/script_Object6AMysteriousCloud.inc +++ b/data/scripts/cloudTops/script_Object6AMysteriousCloud.inc @@ -3,7 +3,7 @@ SCRIPT_START script_Object6AMysteriousCloud BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x0011 - Call sub_0807F158 + Call SetCollisionLayer1 Call sub_0807F738 EndBlock SCRIPT_END diff --git a/data/scripts/cloudTops/script_PlayerAtSiroc.inc b/data/scripts/cloudTops/script_PlayerAtSiroc.inc index 5dd59161..ceeed89f 100644 --- a/data/scripts/cloudTops/script_PlayerAtSiroc.inc +++ b/data/scripts/cloudTops/script_PlayerAtSiroc.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerAtSiroc SetEntitySpeed 0x0100 EndBlock _0807EDD4 0x0078, 0x0040 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cloudTops/script_Siroc.inc b/data/scripts/cloudTops/script_Siroc.inc index 679d1966..94c1d72c 100644 --- a/data/scripts/cloudTops/script_Siroc.inc +++ b/data/scripts/cloudTops/script_Siroc.inc @@ -5,13 +5,13 @@ SCRIPT_START script_Siroc DoPostScriptAction 0x000a EndBlock script_08014AD2: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_08014AD2 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer StartPlayerScript script_PlayerAtSiroc WaitForSyncFlagAndClear 0x00000001 - _0807EB74 + FacePlayer CheckLocalFlag 0x0064 JumpIf script_08014AFE SetLocalFlag 0x0064 @@ -22,6 +22,6 @@ script_08014AFE: script_08014B02: WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_08014AD2 .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_WindTribespeople1.inc b/data/scripts/cloudTops/script_WindTribespeople1.inc index 987d6b13..94a6feb5 100644 --- a/data/scripts/cloudTops/script_WindTribespeople1.inc +++ b/data/scripts/cloudTops/script_WindTribespeople1.inc @@ -5,17 +5,17 @@ SCRIPT_START script_WindTribespeople1 DoPostScriptAction 0x000a CheckGlobalFlag 0x0058 JumpIf script_08014976 - _0807EB44 0x0004 + SetAnimationState 0x0004 SetEntityPositionRelative 0x0078, 0x0128 script_08014976: EndBlock script_08014978: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_08014978 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806C90C WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_08014978 diff --git a/data/scripts/cloudTops/script_WindTribespeople2.inc b/data/scripts/cloudTops/script_WindTribespeople2.inc index 6cf49d01..f8fa2804 100644 --- a/data/scripts/cloudTops/script_WindTribespeople2.inc +++ b/data/scripts/cloudTops/script_WindTribespeople2.inc @@ -7,14 +7,14 @@ SCRIPT_START script_WindTribespeople2 JumpIfNot script_080149C6 EndBlock script_080149AA: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_080149AA - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806C90C WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_080149AA script_080149C6: DoPostScriptAction 0x0006 diff --git a/data/scripts/cloudTops/script_WindTribespeople3.inc b/data/scripts/cloudTops/script_WindTribespeople3.inc index 01977684..84c60935 100644 --- a/data/scripts/cloudTops/script_WindTribespeople3.inc +++ b/data/scripts/cloudTops/script_WindTribespeople3.inc @@ -6,10 +6,10 @@ SCRIPT_START script_WindTribespeople3 DoPostScriptAction 0x000a EndBlock script_080149DE: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_080149DE - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806C90C WaitUntilTextboxCloses CheckLocalFlag 0x0064 @@ -21,10 +21,10 @@ script_080149DE: DoPostScriptAction 0x0001 _0807EDD4 0x0068, 0x00f8 PlaySound SFX_SECRET - _0807EB74 + FacePlayer DoPostScriptAction 0x0000 DoPostScriptAction 0x000a script_08014A20: - _0807E878 + EnablePlayerControl Jump script_080149DE .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_WindTribespeople4.inc b/data/scripts/cloudTops/script_WindTribespeople4.inc index 31e036e3..ba6fb854 100644 --- a/data/scripts/cloudTops/script_WindTribespeople4.inc +++ b/data/scripts/cloudTops/script_WindTribespeople4.inc @@ -5,13 +5,13 @@ SCRIPT_START script_WindTribespeople4 DoPostScriptAction 0x000a EndBlock script_08014A36: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_08014A36 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806C90C WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_08014A36 .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_WindTribespeople5.inc b/data/scripts/cloudTops/script_WindTribespeople5.inc index cf3a995e..698f9bb2 100644 --- a/data/scripts/cloudTops/script_WindTribespeople5.inc +++ b/data/scripts/cloudTops/script_WindTribespeople5.inc @@ -5,13 +5,13 @@ SCRIPT_START script_WindTribespeople5 DoPostScriptAction 0x000a EndBlock script_08014A62: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_08014A62 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806C90C WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_08014A62 .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_WindTribespeople6.inc b/data/scripts/cloudTops/script_WindTribespeople6.inc index fea83201..0633f743 100644 --- a/data/scripts/cloudTops/script_WindTribespeople6.inc +++ b/data/scripts/cloudTops/script_WindTribespeople6.inc @@ -4,7 +4,7 @@ SCRIPT_START script_WindTribespeople6 DoPostScriptAction 0x000a EndBlock WaitForSyncFlagAndClear 0x00000001 - _0807EB74 + FacePlayer DoPostScriptAction 0x0004 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 @@ -12,12 +12,12 @@ SCRIPT_START script_WindTribespeople6 WaitUntilTextboxCloses SetSyncFlag 0x00000002 script_08014AAC: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_08014AAC - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x2f0a WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08014AAC .2byte 0x0000 diff --git a/data/scripts/cloudTops/script_WindTribespeople7.inc b/data/scripts/cloudTops/script_WindTribespeople7.inc index a4c71788..72962d45 100644 --- a/data/scripts/cloudTops/script_WindTribespeople7.inc +++ b/data/scripts/cloudTops/script_WindTribespeople7.inc @@ -12,14 +12,14 @@ script_08014CAE: BeginBlock CheckGlobalFlag 0x0024 JumpIf script_08014CD4 - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_08014CAE EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806C90C WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08014CAE script_08014CD4: DoPostScriptAction 0x0006 diff --git a/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc b/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc index 0561a0fb..c5d77432 100644 --- a/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc +++ b/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed1.inc @@ -1,10 +1,10 @@ @ Cloud Tops WindTribespeople great whirlwind revealed 2 SCRIPT_START script_WindTribespeopleGreatWhirlwindRevealed1 BeginBlock - Call sub_0807F360 + Call SetPriorityHighest DoPostScriptAction 0x000b SetEntitySpeed 0x0200 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000008 @@ -13,14 +13,14 @@ SCRIPT_START script_WindTribespeopleGreatWhirlwindRevealed1 PlaySound SFX_123 CallWithArg sub_0807F464, 0x000001e0 _0807EDD4 0x01e0, 0x01d8 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000010 PlaySound SFX_PLY_JUMP _0807EF3C 0x0180, 0x0030 PlaySound SFX_PLY_JUMP _0807EF3C 0x0180, 0x0030 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0001 WaitForSyncFlagAndClear 0x00000008 Jump script_0800D80C diff --git a/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc b/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc index 53f64c9b..1bdc67f5 100644 --- a/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc +++ b/data/scripts/cloudTops/script_WindTribespeopleGreatWhirlwindRevealed2.inc @@ -1,7 +1,7 @@ @ Cloud Tops WindTribespeople great whirlwind revealed SCRIPT_START script_WindTribespeopleGreatWhirlwindRevealed2 BeginBlock - Call sub_0807F360 + Call SetPriorityHighest DoPostScriptAction 0x000b SetEntityPositionRelative 0x0268, 0x01d8 SetEntitySpeed 0x0100 @@ -15,11 +15,11 @@ script_0800D80C: _0807EEF4 0x0000, 0xffe0 DoPostScriptAction 0x000e Call sub_0806CA5C - SetEntity0x20 0x00040000 + SetEntityVelocity 0x00040000 PlaySound SFX_F5 script_0800D82A: - CallWithArg sub_0807F8D0, 0xffffe000 - Call sub_0807F8BC + CallWithArg DoGravity, 0xffffe000 + Call CheckEntityOnScreen JumpIf script_0800D82A SetSyncFlag 0x00000004 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/ezlo/script_EzloCap.inc b/data/scripts/cutscene/ezlo/script_EzloCap.inc index 29b94ee9..f13702bc 100644 --- a/data/scripts/cutscene/ezlo/script_EzloCap.inc +++ b/data/scripts/cutscene/ezlo/script_EzloCap.inc @@ -4,20 +4,20 @@ SCRIPT_START script_EzloCap SetEntitySpeed 0x0040 DoPostScriptAction 0x0007 EndBlock - _0807E930 0x0020 + SetAnimation 0x0020 WaitForSyncFlagAndClear 0x00000004 - _0807E930 0x0022 + SetAnimation 0x0022 Call sub_0807F3C8 MessageFromTargetPos 0x1102, 0x000c WaitUntilTextboxCloses - _0807E930 0x0020 + SetAnimation 0x0020 SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 - _0807E930 0x0021 + SetAnimation 0x0021 Call sub_0807F3C8 MessageFromTargetPos 0x1103, 0x000c WaitUntilTextboxCloses - _0807E930 0x0020 + SetAnimation 0x0020 SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0004 @@ -25,32 +25,32 @@ SCRIPT_START script_EzloCap SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0011 - _0807E930 0x001c + SetAnimation 0x001c MessageFromTargetPos 0x1105, 0x000c WaitUntilTextboxCloses - _0807E930 0x0020 + SetAnimation 0x0020 SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 - _0807E930 0x0022 + SetAnimation 0x0022 Call sub_0807F3C8 MessageFromTargetPos 0x1106, 0x000c WaitUntilTextboxCloses - _0807E930 0x001c + SetAnimation 0x001c Call sub_0806D96C MessageFromTargetPos 0x1107, 0x000c WaitUntilTextboxCloses - _0807E930 0x0020 + SetAnimation 0x0020 SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 - _0807E930 0x0021 + SetAnimation 0x0021 Call sub_0807F3C8 MessageFromTargetPos 0x1108, 0x000c WaitUntilTextboxCloses - _0807E930 0x001c + SetAnimation 0x001c Call sub_0806D96C MessageFromTargetPos 0x1109, 0x000c WaitUntilTextboxCloses - _0807E930 0x0020 + SetAnimation 0x0020 DoPostScriptAction 0x000a _0807E9D4 SetSyncFlag 0x00000008 @@ -62,16 +62,16 @@ script_080127F2: CheckEntityInteractType JumpIfNot script_080127F2 EndBlock - _0807E864 + SetPlayerIdle Call sub_0806D944 - _0807E930 0x0010 + SetAnimation 0x0010 MessageFromTargetPos 0x1114, 0x000c WaitUntilTextboxCloses - _0807E930 0x0020 - _0807E878 + SetAnimation 0x0020 + EnablePlayerControl Jump script_080127F2 script_08012824: - _0807E864 + SetPlayerIdle _0807E9DC CallWithArg sub_0807F5B0, 0x0000003c Call sub_080791D0 @@ -82,39 +82,39 @@ script_08012824: SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 Call sub_0806D944 - _0807E930 0x0010 + SetAnimation 0x0010 MessageFromTargetPos 0x110a, 0x000c WaitUntilTextboxCloses - _0807E930 0x001f + SetAnimation 0x001f SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 - _0807E930 0x0010 + SetAnimation 0x0010 MessageFromTargetPos 0x110b, 0x000c WaitUntilTextboxCloses - _0807E930 0x001f + SetAnimation 0x001f SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0004 Wait 0x003c - _0807E930 0x0010 + SetAnimation 0x0010 MessageFromTargetPos 0x110c, 0x000c WaitUntilTextboxCloses - _0807E930 0x001f + SetAnimation 0x001f SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 - _0807E930 0x0010 + SetAnimation 0x0010 MessageFromTargetPos 0x110d, 0x000c WaitUntilTextboxCloses - _0807E930 0x001f + SetAnimation 0x001f SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 - _0807E930 0x0010 + SetAnimation 0x0010 MessageFromTargetPos 0x110e, 0x000c WaitUntilTextboxCloses - _0807E930 0x0018 + SetAnimation 0x0018 SetEntitySpeed 0x0080 Call sub_0806D908 - _0807EC1C 0x0010 + WalkForward 0x0010 DoPostScriptAction 0x000a _0807E9D4 SetSyncFlag 0x00000008 @@ -129,30 +129,30 @@ script_08012904: JumpIfNot script_0801293A Jump script_08012904 script_08012920: - _0807E864 - _0807E930 0x0010 + SetPlayerIdle + SetAnimation 0x0010 EndBlock MessageFromTargetPos 0x1115, 0x000c WaitUntilTextboxCloses - _0807E930 0x0018 - _0807E878 + SetAnimation 0x0018 + EnablePlayerControl Jump script_08012904 script_0801293A: EndBlock - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 - _0807EB8C + FaceAwayFromPlayer Call sub_0806D944 - _0807E930 0x0010 + SetAnimation 0x0010 MessageFromTargetPos 0x110f, 0x000c - _0807E930 0x0018 + SetAnimation 0x0018 SetEntitySpeed 0x0080 Call sub_0806D908 - _0807EC1C 0x0050 + WalkForward 0x0050 WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 script_08012984: @@ -165,31 +165,31 @@ script_08012984: JumpIfNot script_080129BA Jump script_08012984 script_080129A0: - _0807E864 - _0807E930 0x0010 + SetPlayerIdle + SetAnimation 0x0010 EndBlock MessageFromTargetPos 0x1115, 0x000c WaitUntilTextboxCloses - _0807E930 0x0018 - _0807E878 + SetAnimation 0x0018 + EnablePlayerControl Jump script_08012984 script_080129BA: EndBlock - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 - _0807EB8C + FaceAwayFromPlayer Call sub_0806D944 - _0807E930 0x0010 + SetAnimation 0x0010 MessageFromTargetPos 0x1110, 0x000c - _0807E930 0x0018 + SetAnimation 0x0018 SetEntitySpeed 0x0080 Call sub_0806D908 - _0807EC1C 0x0050 - _0807E930 0x0018 + WalkForward 0x0050 + SetAnimation 0x0018 WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 script_08012A08: @@ -202,32 +202,32 @@ script_08012A08: JumpIfNot script_08012A3E Jump script_08012A08 script_08012A24: - _0807E864 - _0807E930 0x0010 + SetPlayerIdle + SetAnimation 0x0010 EndBlock MessageFromTargetPos 0x1115, 0x000c WaitUntilTextboxCloses - _0807E930 0x0018 - _0807E878 + SetAnimation 0x0018 + EnablePlayerControl Jump script_08012A08 script_08012A3E: EndBlock - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StopBgm DoPostScriptAction 0x000b - _0807EB8C + FaceAwayFromPlayer Call sub_0806D944 - _0807E930 0x0010 + SetAnimation 0x0010 MessageFromTargetPos 0x1111, 0x000c - _0807E930 0x0018 + SetAnimation 0x0018 SetEntitySpeed 0x0080 Call sub_0806D8A0 script_08012A74: _0807EE30 JumpIfNot script_08012A74 - _0807E930 0x001f + SetAnimation 0x001f WaitUntilTextboxCloses StartPlayerScript script_PlayerGetEzloCap Call sub_0806D9A4 @@ -236,7 +236,7 @@ script_08012A74: PlayBgm BGM_EZLO_THEME BeginBlock _0807E8E4_2 - _0807EB28 0x1112 + EzloMessage 0x1112 EndBlock WaitUntilTextboxCloses SetSyncFlag 0x00000008 diff --git a/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc b/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc index f059f75b..f9350061 100644 --- a/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc +++ b/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc @@ -7,14 +7,14 @@ script_0801248A: CheckPlayerInRegion 0x0208, 0x02c8, 0x4020 JumpIfNot script_0801248A StopBgm - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StartPlayerScript script_PlayerAtFirstLookAtEzlo MessageFromTargetPos 0x1101, 0x0007 WaitUntilTextboxCloses CameraTargetPlayer - _0807E778 0x0004 + SetFadeTime 0x0004 _0807E80C 0x00000000 WaitForFadeFinish _0807E858 0x0000 @@ -23,7 +23,7 @@ script_0801248A: Call DeleteAllEnemies SetEntityPositionRelative 0x0388, 0x0168 Call sub_0807F844 - _0807E778 0x0004 + SetFadeTime 0x0004 _0807E800 0x00000000 WaitForFadeFinish PlayBgm BGM_EZLO_THEME @@ -38,24 +38,24 @@ script_0801248A: SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000008 StopBgm - _0807E778 0x0004 + SetFadeTime 0x0004 _0807E80C 0x00000000 WaitForFadeFinish MoveEntityToPlayer Call sub_0807F844 CameraTargetPlayer SetFadeMask 0xffffffff - _0807E778 0x0004 + SetFadeTime 0x0004 _0807E800 0x00000000 WaitForFadeFinish Call sub_0807DF50 - _0807E878 + EnablePlayerControl PlayBGM script_08012566: CheckPlayerInRegion 0x03a0, 0x01a0, 0x1020 JumpIfNot script_08012566 - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 Call sub_0806DC7C StopBgm @@ -83,12 +83,12 @@ script_08012566: StopBgm PlayBgm BGM_FIGHT_THEME2 Call sub_0807DF50 - _0807E878 + EnablePlayerControl SetSyncFlag 0x00000050 LoadRoomEntityList gUnk_080F51D0 WaitForSyncFlagAndClear 0x00000008 - _0807E864 - Call sub_0807FA40 + SetPlayerIdle + Call WaitForPlayerNormalOrTalkEzlo Call sub_0807DF28 PlaySound SFX_SECRET StopBgm @@ -116,7 +116,7 @@ script_08012566: _0807F0B4 0x0004 CameraTargetPlayer Call sub_0807DF50 - _0807E878 + EnablePlayerControl SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000008 SetSyncFlag 0x00000004 @@ -128,8 +128,8 @@ script_08012566: PlayBGM Call sub_08054570 SetGlobalFlag 0x0014 - CallWithArg sub_0807F6F8, 0x00000008 + CallWithArg ResetPlayerFlag, 0x00000008 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc b/data/scripts/cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc index 4528f6df..3a0fb547 100644 --- a/data/scripts/cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc +++ b/data/scripts/cutscene/ezlo/script_Object6ALeftBullyingOctorok.inc @@ -1,20 +1,20 @@ @ First look at Ezlo OBJECT_6A left octorok SCRIPT_START script_Object6ALeftBullyingOctorok BeginBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0007 - _0807E930 0x0001 + SetAnimation 0x0001 EndBlock WaitForSyncFlagAndClear 0x00000040 - _0807E930 0x0005 + SetAnimation 0x0005 Wait 0x001e SetSyncFlag 0x00000080 - _0807E930 0x0001 + SetAnimation 0x0001 WaitForSyncFlagAndClear 0x00000040 - _0807E930 0x0005 + SetAnimation 0x0005 Wait 0x001e SetSyncFlag 0x00000080 - _0807E930 0x0001 + SetAnimation 0x0001 WaitForSyncFlagAndClear 0x00000040 Wait 0x0001 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/ezlo/script_Object6ARightBullyingOctorok.inc b/data/scripts/cutscene/ezlo/script_Object6ARightBullyingOctorok.inc index 8051b6b5..c64fa666 100644 --- a/data/scripts/cutscene/ezlo/script_Object6ARightBullyingOctorok.inc +++ b/data/scripts/cutscene/ezlo/script_Object6ARightBullyingOctorok.inc @@ -1,20 +1,20 @@ @ First look at Ezlo OBJECT_6A right octorok SCRIPT_START script_Object6ARightBullyingOctorok BeginBlock - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0007 - _0807E930 0x0003 + SetAnimation 0x0003 EndBlock WaitForSyncFlagAndClear 0x00000010 - _0807E930 0x0007 + SetAnimation 0x0007 Wait 0x001e SetSyncFlag 0x00000020 - _0807E930 0x0003 + SetAnimation 0x0003 WaitForSyncFlagAndClear 0x00000010 - _0807E930 0x0007 + SetAnimation 0x0007 Wait 0x001e SetSyncFlag 0x00000020 - _0807E930 0x0003 + SetAnimation 0x0003 WaitForSyncFlagAndClear 0x00000010 Wait 0x0001 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/ezlo/script_PlayerAtFirstLookAtEzlo.inc b/data/scripts/cutscene/ezlo/script_PlayerAtFirstLookAtEzlo.inc index 1330fd87..f2dc81c9 100644 --- a/data/scripts/cutscene/ezlo/script_PlayerAtFirstLookAtEzlo.inc +++ b/data/scripts/cutscene/ezlo/script_PlayerAtFirstLookAtEzlo.inc @@ -2,9 +2,9 @@ SCRIPT_START script_PlayerAtFirstLookAtEzlo EndBlock script_08012AB2: - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x000a - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x000a Jump script_08012AB2 .2byte 0x0000 diff --git a/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc b/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc index f53814e1..017b7111 100644 --- a/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc +++ b/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerDefeatedOctoroks EndBlock DoPostScriptAction 0x0001 _0807EDD4 0x0388, 0x0180 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc b/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc index edf2a936..1082a4b1 100644 --- a/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc +++ b/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc @@ -3,7 +3,7 @@ SCRIPT_START script_PlayerEzloBeingBullied BeginBlock SetEntitySpeed 0x0080 EndBlock - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 DoPostScriptAction 0x0004 Wait 0x003c diff --git a/data/scripts/cutscene/intro/script_HouseDoorIntro.inc b/data/scripts/cutscene/intro/script_HouseDoorIntro.inc index 45d64e58..089a2992 100644 --- a/data/scripts/cutscene/intro/script_HouseDoorIntro.inc +++ b/data/scripts/cutscene/intro/script_HouseDoorIntro.inc @@ -11,7 +11,7 @@ SCRIPT_START script_HouseDoorIntro PlaySound SFX_F1 DoPostScriptAction 0x0007 Wait 0x005a - _0807E778 0x0004 + SetFadeTime 0x0004 @ Circle transition _0807E80C 0x00000000 WaitForFadeFinish @ Wait for end of transition diff --git a/data/scripts/cutscene/intro/script_IntroCameraTarget.inc b/data/scripts/cutscene/intro/script_IntroCameraTarget.inc index 1df4f5a3..764464ad 100644 --- a/data/scripts/cutscene/intro/script_IntroCameraTarget.inc +++ b/data/scripts/cutscene/intro/script_IntroCameraTarget.inc @@ -5,7 +5,7 @@ SCRIPT_START script_IntroCameraTarget SetEntitySpeed 0x0080 Wait 0x0078 PlayBgm BGM_MINISH_CAP - _0807E778 0x0002 + SetFadeTime 0x0002 @ Fade in DoFade4 WaitForFadeFinish @ TODO wait for fade to be finished diff --git a/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc b/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc index 4fe5b4ae..9acf2548 100644 --- a/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc +++ b/data/scripts/cutscene/intro/script_Npc4EOutsideLinksHouse.inc @@ -3,11 +3,11 @@ SCRIPT_START script_Npc4EOutsideLinksHouse BeginBlock SetEntityPositionRelative 0x0238, 0x01a8 Call sub_0807F844 - Call sub_0807F348 - _0807E864 + Call SetPriorityMessage + SetPlayerIdle Call sub_0807DF28 EndBlock - _0807E778 0x0010 + SetFadeTime 0x0010 DoFade6 WaitForFadeFinish SetSyncFlag 0x00000001 @@ -15,7 +15,7 @@ SCRIPT_START script_Npc4EOutsideLinksHouse _0807F0B4 0x0004 CameraTargetPlayer Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/intro/script_Object69Intro.inc b/data/scripts/cutscene/intro/script_Object69Intro.inc index 059bb9f7..1e643580 100644 --- a/data/scripts/cutscene/intro/script_Object69Intro.inc +++ b/data/scripts/cutscene/intro/script_Object69Intro.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Object69Intro BeginBlock Call sub_0807DF28 - _0807E864 + SetPlayerIdle SetSyncFlag 0x00000000 EndBlock WaitForFadeFinish @@ -11,6 +11,6 @@ SCRIPT_START script_Object69Intro WaitForSyncFlagAndClear 0x00000001 SetGlobalFlag 0x001c Call sub_0807DF50 - _0807E878 + EnablePlayerControl Call sub_0807921C SCRIPT_END diff --git a/data/scripts/cutscene/intro/script_PlayerIntro.inc b/data/scripts/cutscene/intro/script_PlayerIntro.inc index e89495c8..5f06f18e 100644 --- a/data/scripts/cutscene/intro/script_PlayerIntro.inc +++ b/data/scripts/cutscene/intro/script_PlayerIntro.inc @@ -2,7 +2,7 @@ SCRIPT_START script_PlayerIntro BeginBlock Call sub_0807DF28 - _0807E864 + SetPlayerIdle SetLocalFlag 0x0046 EndBlock WaitForFadeFinish @@ -18,7 +18,7 @@ SCRIPT_START script_PlayerIntro Wait 0x001e @ Give control to the player? Call sub_08053250 - _0807E878 + EnablePlayerControl Call sub_0807DF50 Call sub_080791D0 SCRIPT_END diff --git a/data/scripts/cutscene/intro/script_SmithIntro.inc b/data/scripts/cutscene/intro/script_SmithIntro.inc index d26a3683..ae998135 100644 --- a/data/scripts/cutscene/intro/script_SmithIntro.inc +++ b/data/scripts/cutscene/intro/script_SmithIntro.inc @@ -1,37 +1,37 @@ @ Intro Smith 1 SCRIPT_START script_SmithIntro BeginBlock - Call sub_0807F348 + Call SetPriorityMessage SetEntitySpeed 0x0040 - _0807EB44 0x0004 - _0807E930 0x000c - _0807E908 0x0003 + SetAnimationState 0x0004 + SetAnimation 0x000c + SetAction 0x0003 EndBlock Wait 0x001e CameraTargetEntity - _0807E778 0x0004 + SetFadeTime 0x0004 _0807E800 0x00000000 WaitForFadeFinish WaitForSyncFlagAndClear 0x00000008 DoPostScriptAction 0x0004 Wait 0x001e - _0807E930 0x000b + SetAnimation 0x000b Wait 0x001e MessageFromTarget 0x1002 WaitUntilTextboxCloses DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000008 - _0807E908 0x0001 - _0807EB44 0x0004 + SetAction 0x0001 + SetAnimationState 0x0004 _0807EDD4 0x00b8, 0x005c - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0001 MessageFromTarget 0x1004 WaitUntilTextboxCloses DoPostScriptAction 0x0000 Wait 0x001e - _0807E778 0x0002 + SetFadeTime 0x0002 DoFade5 WaitForFadeFinish Call sub_08053634 diff --git a/data/scripts/cutscene/intro/script_SmithIntro2.inc b/data/scripts/cutscene/intro/script_SmithIntro2.inc index fff723fa..b9760692 100644 --- a/data/scripts/cutscene/intro/script_SmithIntro2.inc +++ b/data/scripts/cutscene/intro/script_SmithIntro2.inc @@ -1,21 +1,21 @@ @ Intro Smith 2 SCRIPT_START script_SmithIntro2 BeginBlock - _0807EB44 0x0006 + SetAnimationState 0x0006 SetEntitySpeed 0x0080 _0807E9D4 - Call sub_0807F348 + Call SetPriorityMessage EndBlock CheckGlobalFlag 0x0013 JumpIf script_08009C4C - _0807E888 + DisablePlayerControl Wait 0x000a - _0807E864 + SetPlayerIdle StartPlayerScript script_PlayerMoveToSmith Call sub_0807DF28 WaitForSyncFlagAndClear 0x00000008 _0807EDD4 0x0080, 0x005c - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 Wait 0x000f DoPostScriptAction 0x0001 @@ -25,7 +25,7 @@ SCRIPT_START script_SmithIntro2 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000008 - _0807EB8C + FaceAwayFromPlayer DoPostScriptAction 0x0001 MessageFromTargetPos 0x100b, 0x0000 WaitUntilTextboxCloses @@ -36,7 +36,7 @@ SCRIPT_START script_SmithIntro2 Wait 0x000f DoPostScriptAction 0x000d _0807EDD4 0x0084, 0x005c - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x000c DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 @@ -57,10 +57,10 @@ script_08009C4C: script_08009C50: CheckEntityInteractType JumpIfNot script_08009C50 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x100e - _0807E878 + EnablePlayerControl Jump script_08009C50 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/intro/script_ZeldaIntro.inc b/data/scripts/cutscene/intro/script_ZeldaIntro.inc index 6f2c28ec..f9dd8999 100644 --- a/data/scripts/cutscene/intro/script_ZeldaIntro.inc +++ b/data/scripts/cutscene/intro/script_ZeldaIntro.inc @@ -1,9 +1,9 @@ @ Intro Zelda at Smith SCRIPT_START script_ZeldaIntro BeginBlock - Call sub_0807F348 + Call SetPriorityMessage SetEntitySpeed 0x00c0 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0008 EndBlock WaitForSyncFlagAndClear 0x00000004 diff --git a/data/scripts/cutscene/intro/script_ZeldaLeaveLinksHouse.inc b/data/scripts/cutscene/intro/script_ZeldaLeaveLinksHouse.inc index 7386e1cf..164293e8 100644 --- a/data/scripts/cutscene/intro/script_ZeldaLeaveLinksHouse.inc +++ b/data/scripts/cutscene/intro/script_ZeldaLeaveLinksHouse.inc @@ -2,7 +2,7 @@ SCRIPT_START script_ZeldaLeaveLinksHouse BeginBlock SetEntitySpeed 0x0100 - _0807EB44 0x0006 + SetAnimationState 0x0006 EndBlock _0807EDD4 0x0078, 0x0060 _0807EDD4 0x0078, 0x007c @@ -11,7 +11,7 @@ SCRIPT_START script_ZeldaLeaveLinksHouse Wait 0x0008 _0807EDD4 0x0078, 0x0098 DoPostScriptAction 0x0008 - _0807E778 0x0010 + SetFadeTime 0x0010 DoFade5 WaitForFadeFinish Call sub_08053634 diff --git a/data/scripts/cutscene/intro/script_ZeldaOutsideLinksHouse.inc b/data/scripts/cutscene/intro/script_ZeldaOutsideLinksHouse.inc index 9a200b2f..dfd487d0 100644 --- a/data/scripts/cutscene/intro/script_ZeldaOutsideLinksHouse.inc +++ b/data/scripts/cutscene/intro/script_ZeldaOutsideLinksHouse.inc @@ -6,12 +6,12 @@ SCRIPT_START script_ZeldaOutsideLinksHouse Call sub_08066D04 Call sub_08066D14 SetEntityPositionRelative 0x01e8, 0x0180 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000001 Call sub_08066E08 - _0807E864 + SetPlayerIdle MessageFromTargetPos 0x1010, 0x000c WaitUntilTextboxCloses SetSyncFlag 0x00000002 @@ -22,41 +22,41 @@ script_08014D1E: CheckPlayerInRegion 0x01d8, 0x0160, 0x3050 JumpIfNot script_08014D1E EndBlock - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 MessageNoOverlap 0x1012 WaitUntilTextboxCloses - _0807EC64 0x0040 - _0807EB44 0x0004 + WalkNorth 0x0040 + SetAnimationState 0x0004 Call sub_08066E08 SetEntityPositionRelative 0x01f8, 0x00c8 Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_08014D60: @ Between trees CallWithArg sub_0807F6B4, 0x000000e8 JumpIf script_08014D60 - _0807E864 + SetPlayerIdle Call sub_0807DF28 MessageNoOverlap 0x1013 WaitUntilTextboxCloses - _0807EC64 0x0040 - _0807EB44 0x0004 + WalkNorth 0x0040 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetEntityPositionRelative 0x01e8, 0x0028 Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_08014D96: @ Before hyrule town entry CheckPlayerInRegion 0x01f8, 0x0028, 0x2040 JumpIfNot script_08014D96 - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 MessageNoOverlap 0x1014 WaitUntilTextboxCloses - _0807EC64 0x0018 + WalkNorth 0x0018 .ifdef JP SetLocalFlag 0x006b .else @@ -71,6 +71,6 @@ script_08014D96: .endif .endif Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc b/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc index 282bbec0..31780509 100644 --- a/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc +++ b/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc @@ -1,28 +1,28 @@ @ Intro Zelda at Smith 2 SCRIPT_START script_ZeldaTalkToSmith BeginBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 SetEntitySpeed 0x0100 - Call sub_0807F348 + Call SetPriorityMessage EndBlock WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0004 - _0807EB74 + FacePlayer WaitForSyncFlagAndClear 0x00000004 - _0807EB74 + FacePlayer WaitForSyncFlagAndClear 0x00000004 - _0807EB74 - _0807EB8C + FacePlayer + FaceAwayFromPlayer DoPostScriptAction 0x0001 MessageFromTargetPos 0x100a, 0x0000 WaitUntilTextboxCloses DoPostScriptAction 0x0000 SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 - _0807EB8C + FaceAwayFromPlayer DoPostScriptAction 0x0001 - _0807EB8C - _0807EB44 0x0002 + FaceAwayFromPlayer + SetAnimationState 0x0002 MessageFromTargetPos 0x100d, 0x0000 WaitUntilTextboxCloses DoPostScriptAction 0x0000 @@ -35,7 +35,7 @@ SCRIPT_START script_ZeldaTalkToSmith SetGlobalFlag 0x0013 Call sub_0807DF50 Call sub_080791D0 - _0807E878 + EnablePlayerControl EndBlock SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introAssembly/script_GuardAtAssembly.inc b/data/scripts/cutscene/introAssembly/script_GuardAtAssembly.inc index 804be255..1c324e64 100644 --- a/data/scripts/cutscene/introAssembly/script_GuardAtAssembly.inc +++ b/data/scripts/cutscene/introAssembly/script_GuardAtAssembly.inc @@ -1,19 +1,19 @@ @ Intro Assembly Guard SCRIPT_START script_GuardAtAssembly BeginBlock - _0807EB44 0x0000 - _0807E930 0x0000 + SetAnimationState 0x0000 + SetAnimation 0x0000 EndBlock WaitForSyncFlag 0x00000010 PlaySound SFX_11C - _0807E930 0x0001 + SetAnimation 0x0001 Wait 0x0010 PlaySound SFX_11C - _0807EB44 0x0004 - _0807E930 0x0006 + SetAnimationState 0x0004 + SetAnimation 0x0006 Wait 0x0010 DoPostScriptAction 0x000f SetEntitySpeed 0x0200 - _0807ECC4 0x1c20 + WalkSouth 0x1c20 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc b/data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc index 5ea4ba26..fe73a920 100644 --- a/data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc +++ b/data/scripts/cutscene/introAssembly/script_KingDaltusAtAssembly.inc @@ -1,57 +1,57 @@ @ Intro Assembly King Daltus SCRIPT_START script_KingDaltusAtAssembly BeginBlock - Call sub_0807F348 + Call SetPriorityMessage SetEntitySpeed 0x0100 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 _0807E9D4 DoPostScriptAction 0x000a EndBlock WaitForSyncFlagAndClear 0x00000080 - _0807EB44 0x0004 - _0807ECC4 0x0008 - _0807E930 0x0004 + SetAnimationState 0x0004 + WalkSouth 0x0008 + SetAnimation 0x0004 MessageFromTargetPos 0x1050, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 SetSyncFlag 0x00000100 WaitForSyncFlagAndClear 0x00000080 - _0807E930 0x0004 + SetAnimation 0x0004 MessageFromTargetPos 0x1052, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 SetSyncFlag 0x00000100 WaitForSyncFlagAndClear 0x00000080 - _0807EB44 0x0006 - _0807E930 0x0005 + SetAnimationState 0x0006 + SetAnimation 0x0005 MessageFromTargetPos 0x1054, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 SetSyncFlag 0x00000100 WaitForSyncFlagAndClear 0x00000080 - _0807EB44 0x0004 + SetAnimationState 0x0004 SetSyncFlag 0x00000100 WaitForSyncFlagAndClear 0x00000080 - _0807E930 0x0004 + SetAnimation 0x0004 MessageFromTargetPos 0x1056, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 SetSyncFlag 0x00000100 WaitForSyncFlagAndClear 0x00000080 - _0807E930 0x0004 + SetAnimation 0x0004 MessageFromTargetPos 0x1057, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 SetSyncFlag 0x00000100 WaitForSyncFlagAndClear 0x00000080 - _0807E930 0x0004 + SetAnimation 0x0004 MessageFromTargetPos 0x1058, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 SetSyncFlag 0x00000100 WaitForSyncFlagAndClear 0x00000080 - _0807E930 0x0004 + SetAnimation 0x0004 MessageFromTargetPos 0x105c, 0x000e WaitUntilTextboxCloses DoPostScriptAction 0x0000 @@ -59,10 +59,10 @@ SCRIPT_START script_KingDaltusAtAssembly script_0800917C: CheckEntityInteractType JumpIfNot script_0800917C - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806673C WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800917C diff --git a/data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc b/data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc index fe1106ed..1ea38210 100644 --- a/data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc +++ b/data/scripts/cutscene/introAssembly/script_MinisterPothoAtAssembly.inc @@ -1,16 +1,16 @@ @ Intro Assembly Minister Potho SCRIPT_START script_MinisterPothoAtAssembly BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000004 PlaySound SFX_PLY_JUMP _0807EF3C 0x0180, 0x0030 - _0807EB44 0x0002 + SetAnimationState 0x0002 SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 - _0807EB44 0x0004 + SetAnimationState 0x0004 SetSyncFlag 0x00000008 BeginBlock _0807E9D4 diff --git a/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc b/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc index e871a204..ca9a741d 100644 --- a/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc +++ b/data/scripts/cutscene/introAssembly/script_Npc4EIntroAssembly.inc @@ -6,12 +6,12 @@ SCRIPT_START script_Npc4EIntroAssembly script_08008E12: CheckPlayerInRegion 0x00d8, 0x0098, 0x4020 JumpIfNot script_08008E12 - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 _0807F0B4 0x0001 CameraTargetEntity - WaitForPlayerAction0x17 + WaitForPlayerEnterRoom Wait 0x003c StartPlayerScript script_PlayerEnters WaitForSyncFlagAndClear 0x00000020 @@ -62,7 +62,7 @@ script_08008E12: GivePlayerItem 0x0047 WaitPlayerGetItem SetIntVariable 0x00000003 - Call sub_0807F420 + Call LoadMenu _0807E8E4_0 SetSyncFlag 0x00000080 WaitForSyncFlagAndClear 0x00000100 @@ -71,7 +71,7 @@ script_08008E12: SetGlobalFlag 0x0015 Call sub_0806DCC0 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc b/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc index c2b49497..b5bf75ce 100644 --- a/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc +++ b/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc @@ -5,13 +5,13 @@ SCRIPT_START script_PlayerEnters EndBlock DoPostScriptAction 0x0001 _0807EDD4 0x00b8, 0x0090 - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000020 WaitForSyncFlagAndClear 0x00000040 DoPostScriptAction 0x0001 _0807EDD4 0x0088, 0x0078 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 Wait 0x000f SetSyncFlag 0x00000020 diff --git a/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc b/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc index af4e4dd7..e2fd2766 100644 --- a/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc +++ b/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc @@ -1,10 +1,10 @@ @ Intro Assembly Player gets Sword SCRIPT_START script_PlayerGetSword _0807F078 0x0001, 0x0001 - CallWithArg sub_0807F918, 0x00000001 + CallWithArg PutItemAnySlot, 0x00000001 PlaySound SFX_109 - CallWithArg sub_0807F238, 0x0000045f - Call sub_0807F304 + CallWithArg SetPlayerAnimation2, 0x0000045f + Call WaitForPlayerFrameHiBit MessageFromTargetPos 0x0501, 0x000e WaitUntilTextboxCloses SetSyncFlag 0x00000020 diff --git a/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc b/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc index 931c03f4..862275c2 100644 --- a/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc +++ b/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc @@ -2,7 +2,7 @@ SCRIPT_START script_PlayerWakingUpInHyruleCastle BeginBlock Call sub_0807DF28 - _0807E864 + SetPlayerIdle .ifdef JP SetLocalFlag 0x009e .else @@ -18,16 +18,16 @@ SCRIPT_START script_PlayerWakingUpInHyruleCastle .endif EndBlock Wait 0x003c - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade4 WaitForFadeFinish script_08009EA4: - Call sub_0807F0D8 + Call CheckAnyKeyPressed JumpIfNot script_08009EA4 DoPostScriptAction 0x0014 Wait 0x000a Call sub_08053250 - _0807E878 + EnablePlayerControl Call sub_0807DF50 Call sub_080791D0 SCRIPT_END diff --git a/data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc b/data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc index 56c32d55..63184c10 100644 --- a/data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc +++ b/data/scripts/cutscene/introAssembly/script_SmithAtAssembly.inc @@ -1,19 +1,19 @@ @ Intro Assembly Smith SCRIPT_START script_SmithAtAssembly BeginBlock - Call sub_0807F348 - _0807EB44 0x0006 + Call SetPriorityMessage + SetAnimationState 0x0006 DoPostScriptAction 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000001 - _0807EB74 + FacePlayer DoPostScriptAction 0x0001 MessageFromTargetPos 0x105b, 0x0000 WaitUntilTextboxCloses DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 @@ -27,21 +27,21 @@ SCRIPT_START script_SmithAtAssembly WaitForSyncFlagAndClear 0x00000001 DoPostScriptAction 0x0004 Wait 0x003c - _0807EB74 - _0807EB8C + FacePlayer + FaceAwayFromPlayer DoPostScriptAction 0x0001 MessageFromTargetPos 0x1055, 0x0000 WaitUntilTextboxCloses DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 - _0807EB74 + FacePlayer SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 SetEntitySpeed 0x0080 DoPostScriptAction 0x0001 _0807EDD4 0x0098, 0x0078 - _0807EB74 + FacePlayer DoPostScriptAction 0x0000 DoPostScriptAction 0x0001 MessageFromTargetPos 0x1059, 0x0000 diff --git a/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc b/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc index 6771b682..2a9be68c 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_080157AC.inc @@ -2,20 +2,20 @@ SCRIPT_START script_080157AC CheckPlayerInRegion 0x01f8, 0x0310, 0x2020 JumpIfNot script_080157AC - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 SetSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000002 Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_080157DA: CheckPlayerInRegion 0x0250, 0x0230, 0x3040 JumpIfNot script_080157DA - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c SetSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000002 @@ -23,7 +23,7 @@ script_080157DA: _0807F0B4 0x0001 SetEntityPositionRelative 0x0248, 0x0218 CameraTargetEntity - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder WaitForSyncFlagAndClear 0x00000010 SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000020 @@ -38,7 +38,7 @@ script_080157DA: SetSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000002 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Call sub_08066F94 SetSyncFlag 0x00000008 script_08015880: @@ -48,7 +48,7 @@ script_08015888: WaitUntilTextboxCloses ComparePlayerAction 0x001c JumpIf script_08015888 - _0807E864 + SetPlayerIdle Call sub_0807DF28 _0807F0B4 0x0002 SetEntityPositionRelative 0x0248, 0x0208 @@ -79,7 +79,7 @@ script_08015888: .endif Call sub_08066FB8 Call sub_0807DF50 - _0807E878 + EnablePlayerControl _0807F0B4 0x0004 CameraTargetPlayer DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/introBusinessScrub/script_08015B14.inc b/data/scripts/cutscene/introBusinessScrub/script_08015B14.inc index 0ec77806..f56416aa 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_08015B14.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_08015B14.inc @@ -1,7 +1,7 @@ @ OBJECT_6A in sub_080954AC ? businessScrubPrologue? SCRIPT_START script_08015B14 BeginBlock - _0807E930 0x0018 + SetAnimation 0x0018 SetEntitySpeed 0x0300 EndBlock _0807EDD4 0x0248, 0x0218 diff --git a/data/scripts/cutscene/introBusinessScrub/script_08015B34.inc b/data/scripts/cutscene/introBusinessScrub/script_08015B34.inc index d93ccb08..f58c6a2e 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_08015B34.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_08015B34.inc @@ -20,15 +20,15 @@ SCRIPT_START script_08015B34 CallWithArg sub_0807F6B4, 0x00000318 JumpIfNot script_08015B34 EndBlock - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 MessageFromTargetPos 0x2506, 0x0002 WaitUntilTextboxCloses StartPlayerScript script_PlayerAtIntroBusinessScrub4 WaitForSyncFlagAndClear 0x00000004 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_08015B34 script_08015B7E: DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/introBusinessScrub/script_BusinessScrubIntro.inc b/data/scripts/cutscene/introBusinessScrub/script_BusinessScrubIntro.inc index 52ceeee2..e81470fa 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_BusinessScrubIntro.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_BusinessScrubIntro.inc @@ -3,15 +3,15 @@ SCRIPT_START script_BusinessScrubIntro BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000008 - _0807E908 0x0007 + SetAction 0x0007 WaitForSyncFlagAndClear 0x00000008 - _0807E908 0x0006 + SetAction 0x0006 SetRoomFlag 0x0000 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 WaitForSyncFlagAndClear 0x00000008 Wait 0x003c diff --git a/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc index 02806a81..605ee80e 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc @@ -2,8 +2,8 @@ SCRIPT_START script_PlayerAtIntroBusinessScrub4 SetEntitySpeed 0x0100 DoPostScriptAction 0x0001 - _0807EC64 0x0010 - _0807EB44 0x0000 + WalkNorth 0x0010 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 Call sub_080791BC diff --git a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc index a83e7979..36e3e08b 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc @@ -2,7 +2,7 @@ SCRIPT_START script_PlayerIntroBusinessScrub1 SetEntitySpeed 0x0100 _0807EDD4 0x0218, 0x0238 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000010 Call sub_080791BC diff --git a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc index ca673adf..d5c30e2a 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc @@ -2,7 +2,7 @@ SCRIPT_START script_PlayerIntroBusinessScrub2 SetEntitySpeed 0x0100 _0807EDD4 0x0238, 0x0228 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000010 Call sub_080791BC diff --git a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc index d9bb7e36..deea175d 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc @@ -2,7 +2,7 @@ SCRIPT_START script_PlayerIntroBusinessScrub3 SetEntitySpeed 0x0100 _0807EDD4 0x0248, 0x0208 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000010 Call sub_080791BC diff --git a/data/scripts/cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc b/data/scripts/cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc index 1d91c7f0..ae7c5633 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_ZeldaIntroBusinessScrub.inc @@ -12,39 +12,39 @@ SCRIPT_START script_ZeldaIntroBusinessScrub MoveEntityToPlayer EndBlock DoPostScriptAction 0x0007 - _0807EB74 + FacePlayer _0807EDD4 0x01f8, 0x02f8 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 MessageFromTargetPos 0x1011, 0x0002 WaitUntilTextboxCloses _0807EDD4 0x01f8, 0x0268 SetEntityPositionRelative 0x0248, 0x0218 - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 Call sub_0807F3C8 PlaySound SFX_VO_ZELDA3 SetEntitySpeed 0x0200 - _0807ECC4 0x0008 - _0807E930 0x0040 - Call sub_0807F2D4 - _0807EB44 0x0006 + WalkSouth 0x0008 + SetAnimation 0x0040 + Call WaitForFrameHiBit + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 SetEntitySpeed 0x0100 _0807EDD4 0x0238, 0x0238 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a _0807E9D4 @@ -52,7 +52,7 @@ SCRIPT_START script_ZeldaIntroBusinessScrub script_08015A32: EndBlock BeginBlock - _0807EB74 + FacePlayer CheckRoomFlag 0x0000 JumpIf script_08015A54 CheckEntityInteractType @@ -64,7 +64,7 @@ script_08015A32: script_08015A54: EndBlock DoPostScriptAction 0x000b - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 WaitForSyncFlagAndClear 0x00000001 Call sub_08066D4C diff --git a/data/scripts/cutscene/introCeremony/script_08011890.inc b/data/scripts/cutscene/introCeremony/script_08011890.inc index 9ccc9bc5..b6f22f79 100644 --- a/data/scripts/cutscene/introCeremony/script_08011890.inc +++ b/data/scripts/cutscene/introCeremony/script_08011890.inc @@ -1,7 +1,7 @@ @ Something during Intro Ceremony? Called via script_VaatiIntroCeremony SCRIPT_START script_08011890 BeginBlock - _0807E930 0x0000 + SetAnimation 0x0000 SetEntitySpeed 0x0200 Call nullsub_527 Call sub_08094B80 diff --git a/data/scripts/cutscene/introCeremony/script_GuardBottomRight.inc b/data/scripts/cutscene/introCeremony/script_GuardBottomRight.inc index 59b81dea..826ad37f 100644 --- a/data/scripts/cutscene/introCeremony/script_GuardBottomRight.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardBottomRight.inc @@ -3,33 +3,33 @@ SCRIPT_START script_GuardBottomRight ClearSyncFlag 0x00002000 SetSyncFlag 0x00004000 WaitForSyncFlagAndClear 0x00002000 - _0807E930 0x0005 - _0807EB44 0x0002 - _0807EC94 0x0010 - _0807EB44 0x0004 - _0807E930 0x0002 + SetAnimation 0x0005 + SetAnimationState 0x0002 + WalkEast 0x0010 + SetAnimationState 0x0004 + SetAnimation 0x0002 SetSyncFlag 0x00004000 WaitForSyncFlagAndClear 0x00002000 DoPostScriptAction 0x0004 Wait 0x003c - _0807E930 0x0012 + SetAnimation 0x0012 PlaySound SFX_EM_MOBLIN_SPEAR Wait 0x003c - _0807E930 0x0014 + SetAnimation 0x0014 SetEntitySpeed 0x0100 _0807EDD4 0x0200, 0x0098 _0807EDD4 0x0200, 0x00c8 - _0807E930 0x0013 + SetAnimation 0x0013 SetSyncFlag 0x00004000 WaitForSyncFlagAndClear 0x00002000 DoPostScriptAction 0x0010 Wait 0x000a DoPostScriptAction 0x0010 Call sub_0807F3C8 - _0807E930 0x0014 + SetAnimation 0x0014 SetEntitySpeed 0x0400 SetEntityDirection 0x0002 - _0807EC1C 0x003c + WalkForward 0x003c SetSyncFlag 0x00004000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_GuardCarryingChest.inc b/data/scripts/cutscene/introCeremony/script_GuardCarryingChest.inc index 33d049b7..a2cdf5ff 100644 --- a/data/scripts/cutscene/introCeremony/script_GuardCarryingChest.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardCarryingChest.inc @@ -5,17 +5,17 @@ SCRIPT_START script_GuardCarryingChest DoPostScriptAction 0x0008 SetEntitySpeed 0x0100 Call sub_08095244 - Call sub_0807F338 + Call DeleteHitbox EndBlock WaitForSyncFlag 0x0002a800 DoPostScriptAction 0x0007 - _0807E930 0x0006 - _0807ECC4 0x0010 + SetAnimation 0x0006 + WalkSouth 0x0010 Wait 0x003c - _0807ECC4 0x0010 + WalkSouth 0x0010 Wait 0x003c - _0807ECC4 0x0010 - _0807E930 0x0002 + WalkSouth 0x0010 + SetAnimation 0x0002 Call sub_08064050 JumpTable script_08011312, script_GuardBottomRight, script_GuardTopLeft, script_GuardTopRight @ Guard bottom left: @@ -23,33 +23,33 @@ script_08011312: ClearSyncFlag 0x00000800 SetSyncFlag 0x00001000 WaitForSyncFlagAndClear 0x00000800 - _0807E930 0x0007 - _0807EB44 0x0006 - _0807ECF4 0x0010 - _0807EB44 0x0004 - _0807E930 0x0002 + SetAnimation 0x0007 + SetAnimationState 0x0006 + WalkWest 0x0010 + SetAnimationState 0x0004 + SetAnimation 0x0002 SetSyncFlag 0x00001000 WaitForSyncFlagAndClear 0x00000800 DoPostScriptAction 0x0004 Wait 0x003c - _0807E930 0x0012 + SetAnimation 0x0012 PlaySound SFX_EM_MOBLIN_SPEAR Wait 0x003c - _0807E930 0x0014 + SetAnimation 0x0014 SetEntitySpeed 0x0100 _0807EDD4 0x01f0, 0x0098 _0807EDD4 0x01f0, 0x00c8 - _0807E930 0x0013 + SetAnimation 0x0013 SetSyncFlag 0x00001000 WaitForSyncFlagAndClear 0x00000800 DoPostScriptAction 0x0010 Wait 0x000a DoPostScriptAction 0x0010 Call sub_0807F3C8 - _0807E930 0x0014 + SetAnimation 0x0014 SetEntitySpeed 0x0400 SetEntityDirection 0x001e - _0807EC1C 0x003c + WalkForward 0x003c SetSyncFlag 0x00001000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_GuardEntryLeft.inc b/data/scripts/cutscene/introCeremony/script_GuardEntryLeft.inc index c826ed27..297a4f5c 100644 --- a/data/scripts/cutscene/introCeremony/script_GuardEntryLeft.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardEntryLeft.inc @@ -2,14 +2,14 @@ SCRIPT_START script_GuardEntryLeft BeginBlock SetEntitySpeed 0x0100 - _0807EB44 0x0002 - _0807E930 0x0001 + SetAnimationState 0x0002 + SetAnimation 0x0001 EndBlock WaitForSyncFlagAndClear 0x00080000 - _0807E930 0x0005 + SetAnimation 0x0005 PlaySound SFX_11C - _0807ECF4 0x0010 - _0807E930 0x0001 + WalkWest 0x0010 + SetAnimation 0x0001 SetSyncFlag 0x00100000 WaitForSyncFlagAndClear 0x00080000 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/introCeremony/script_GuardEntryRight.inc b/data/scripts/cutscene/introCeremony/script_GuardEntryRight.inc index 3a132ca8..20ab6b1b 100644 --- a/data/scripts/cutscene/introCeremony/script_GuardEntryRight.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardEntryRight.inc @@ -2,14 +2,14 @@ SCRIPT_START script_GuardEntryRight BeginBlock SetEntitySpeed 0x0100 - _0807EB44 0x0006 - _0807E930 0x0003 + SetAnimationState 0x0006 + SetAnimation 0x0003 EndBlock WaitForSyncFlagAndClear 0x00200000 - _0807E930 0x0007 + SetAnimation 0x0007 PlaySound SFX_11C - _0807EC94 0x0010 - _0807E930 0x0003 + WalkEast 0x0010 + SetAnimation 0x0003 SetSyncFlag 0x00400000 WaitForSyncFlagAndClear 0x00200000 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/introCeremony/script_GuardTopLeft.inc b/data/scripts/cutscene/introCeremony/script_GuardTopLeft.inc index d8dd17d9..b92edbd5 100644 --- a/data/scripts/cutscene/introCeremony/script_GuardTopLeft.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardTopLeft.inc @@ -3,42 +3,42 @@ SCRIPT_START script_GuardTopLeft ClearSyncFlag 0x00008000 SetSyncFlag 0x00010000 WaitForSyncFlagAndClear 0x00008000 - _0807E930 0x0007 - _0807EB44 0x0006 - _0807ECF4 0x0020 - _0807EB44 0x0004 - _0807E930 0x0006 - _0807ECC4 0x0010 - _0807E930 0x0002 + SetAnimation 0x0007 + SetAnimationState 0x0006 + WalkWest 0x0020 + SetAnimationState 0x0004 + SetAnimation 0x0006 + WalkSouth 0x0010 + SetAnimation 0x0002 SetSyncFlag 0x00010000 WaitForSyncFlagAndClear 0x00008000 DoPostScriptAction 0x0004 Wait 0x003c - _0807E930 0x0012 + SetAnimation 0x0012 PlaySound SFX_EM_MOBLIN_SPEAR SetSyncFlag 0x00010000 WaitForSyncFlagAndClear 0x00008000 - _0807E930 0x0014 + SetAnimation 0x0014 SetEntitySpeed 0x0100 _0807EDD4 0x01e8, 0x0098 SetEntitySpeed 0x0040 _0807EEF4 0x0000, 0x0010 - _0807E930 0x0013 + SetAnimation 0x0013 SetSyncFlag 0x00010000 WaitForSyncFlagAndClear 0x00008000 DoPostScriptAction 0x000d - _0807E930 0x0014 + SetAnimation 0x0014 SetEntitySpeed 0x0020 _0807EEF4 0x0000, 0xfff0 - _0807E930 0x0013 + SetAnimation 0x0013 DoPostScriptAction 0x0010 SetSyncFlag 0x00010000 WaitForSyncFlagAndClear 0x00008000 Call sub_0807F3C8 - _0807E930 0x0014 + SetAnimation 0x0014 SetEntitySpeed 0x0400 SetEntityDirection 0x001e - _0807EC1C 0x003c + WalkForward 0x003c SetSyncFlag 0x00010000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_GuardTopRight.inc b/data/scripts/cutscene/introCeremony/script_GuardTopRight.inc index 1a5b8eb3..5a29854c 100644 --- a/data/scripts/cutscene/introCeremony/script_GuardTopRight.inc +++ b/data/scripts/cutscene/introCeremony/script_GuardTopRight.inc @@ -3,42 +3,42 @@ SCRIPT_START script_GuardTopRight ClearSyncFlag 0x00020000 SetSyncFlag 0x00040000 WaitForSyncFlagAndClear 0x00020000 - _0807E930 0x0005 - _0807EB44 0x0002 - _0807EC94 0x0020 - _0807EB44 0x0004 - _0807E930 0x0006 - _0807ECC4 0x0010 - _0807E930 0x0002 + SetAnimation 0x0005 + SetAnimationState 0x0002 + WalkEast 0x0020 + SetAnimationState 0x0004 + SetAnimation 0x0006 + WalkSouth 0x0010 + SetAnimation 0x0002 SetSyncFlag 0x00040000 WaitForSyncFlagAndClear 0x00020000 DoPostScriptAction 0x0004 Wait 0x003c - _0807E930 0x0012 + SetAnimation 0x0012 PlaySound SFX_EM_MOBLIN_SPEAR SetSyncFlag 0x00040000 WaitForSyncFlagAndClear 0x00020000 - _0807E930 0x0014 + SetAnimation 0x0014 SetEntitySpeed 0x0100 _0807EDD4 0x0208, 0x0098 SetEntitySpeed 0x0040 _0807EEF4 0x0000, 0x0010 - _0807E930 0x0013 + SetAnimation 0x0013 SetSyncFlag 0x00040000 WaitForSyncFlagAndClear 0x00020000 DoPostScriptAction 0x000d - _0807E930 0x0014 + SetAnimation 0x0014 SetEntitySpeed 0x0020 _0807EEF4 0x0000, 0xfff0 - _0807E930 0x0013 + SetAnimation 0x0013 DoPostScriptAction 0x0010 SetSyncFlag 0x00040000 WaitForSyncFlagAndClear 0x00020000 Call sub_0807F3C8 - _0807E930 0x0014 + SetAnimation 0x0014 SetEntitySpeed 0x0400 SetEntityDirection 0x0002 - _0807EC1C 0x003c + WalkForward 0x003c SetSyncFlag 0x00040000 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_KingDaltusIntroCeremony.inc b/data/scripts/cutscene/introCeremony/script_KingDaltusIntroCeremony.inc index cab32512..afefc1f7 100644 --- a/data/scripts/cutscene/introCeremony/script_KingDaltusIntroCeremony.inc +++ b/data/scripts/cutscene/introCeremony/script_KingDaltusIntroCeremony.inc @@ -2,10 +2,10 @@ SCRIPT_START script_KingDaltusIntroCeremony BeginBlock DoPostScriptAction 0x0008 - _0807EB44 0x0004 + SetAnimationState 0x0004 SetEntitySpeed 0x0100 EndBlock - Call sub_0807F338 + Call DeleteHitbox WaitForSyncFlagAndClear 0x00000040 DoPostScriptAction 0x0007 DoPostScriptAction 0x0001 @@ -20,7 +20,7 @@ SCRIPT_START script_KingDaltusIntroCeremony Call sub_0807F3C8 SetEntitySpeed 0x0400 SetEntityDirection 0x0008 - _0807EC1C 0x003c + WalkForward 0x003c SetSyncFlag 0x00000080 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_MinisterPothoIntroCastle.inc b/data/scripts/cutscene/introCeremony/script_MinisterPothoIntroCastle.inc index 0af3031f..3cf08be1 100644 --- a/data/scripts/cutscene/introCeremony/script_MinisterPothoIntroCastle.inc +++ b/data/scripts/cutscene/introCeremony/script_MinisterPothoIntroCastle.inc @@ -1,7 +1,7 @@ @ Intro Hyrule Castle Minister Potho SCRIPT_START script_MinisterPothoIntroCastle BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 .ifdef JP .ifndef DEMO_JP @@ -22,18 +22,18 @@ script_08011134: DoPostScriptAction 0x000b WaitForSyncFlagAndClear 0x00000004 SetEntityPositionRelative 0x01b8, 0x0058 - _0807EB44 0x0004 + SetAnimationState 0x0004 SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 - _0807EB44 0x0006 + SetAnimationState 0x0006 SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 - _0807EB44 0x0004 + SetAnimationState 0x0004 SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 SetEntitySpeed 0x0100 DoPostScriptAction 0x0001 - _0807ECC4 0x0010 + WalkSouth 0x0010 DoPostScriptAction 0x0000 SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 @@ -43,7 +43,7 @@ script_08011134: Call sub_0807F3C8 SetEntitySpeed 0x0400 SetEntityDirection 0x001c - _0807EC1C 0x003c + WalkForward 0x003c SetSyncFlag 0x00000008 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc b/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc index f64d4428..4385bb7b 100644 --- a/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc +++ b/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc @@ -13,7 +13,7 @@ SCRIPT_START script_Npc4EMonsters PlaySound SFX_12C SetSyncFlag 0x00800000 WaitForSyncFlagAndClear 0x01000000 - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade7 WaitForFadeFinish Wait 0x003c @@ -22,14 +22,14 @@ SCRIPT_START script_Npc4EMonsters LoadRoomEntityList gUnk_080F0770 SetSyncFlag 0x00000010 WaitForSyncFlagAndClear 0x00000020 - _0807E778 0x0002 + SetFadeTime 0x0002 DoFade6 WaitForFadeFinish CallWithArg DeleteManager36, 0x00000002 _0807F0C8 0x0000, 0x0000 Call sub_0806DC3C Call sub_080791BC - CallWithArg sub_0807F244, 0x0000000d + CallWithArg EquipItem, 0x0000000d CallWithArg sub_0807F29C, gUnk_080049F6 _0807F0B4 0x0001 SetEntityPositionRelative 0x01f8, 0x0068 diff --git a/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc b/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc index 69a6d693..54bd0c43 100644 --- a/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc +++ b/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc @@ -9,7 +9,7 @@ SCRIPT_START script_Npc4EVaatiAttacking WaitUntilTextboxCloses Call sub_0806DC3C Call sub_080791BC - CallWithArg sub_0807F244, 0x0000000d + CallWithArg EquipItem, 0x0000000d CallWithArg sub_0807F29C, gUnk_080049F6 Wait 0x001e SetSyncFlag 0x00000100 diff --git a/data/scripts/cutscene/introCeremony/script_Object6ASwordInChest.inc b/data/scripts/cutscene/introCeremony/script_Object6ASwordInChest.inc index 3b4b91f2..2932134e 100644 --- a/data/scripts/cutscene/introCeremony/script_Object6ASwordInChest.inc +++ b/data/scripts/cutscene/introCeremony/script_Object6ASwordInChest.inc @@ -12,7 +12,7 @@ SCRIPT_START script_Object6ASwordInChest Wait 0x003c SetSyncFlag 0x01000000 WaitForSyncFlagAndClear 0x00800000 - _0807E930 0x0002 + SetAnimation 0x0002 SetSyncFlag 0x01000000 WaitForSyncFlagAndClear 0x00800000 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc b/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc index 0d800ec9..33d0784c 100644 --- a/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc @@ -1,7 +1,7 @@ @ Intro Ceremony Player SCRIPT_START script_PlayerAtIntroCeremony SetEntityPositionRelative 0x01a8, 0x0058 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000400 ClearSyncFlag 0x00000002 diff --git a/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc b/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc index 386826af..880c2d9e 100644 --- a/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc @@ -1,17 +1,17 @@ @ Intro Ceremony Player fainting SCRIPT_START script_PlayerFainting PlaySound SFX_PLY_VO6 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x000d PlaySound SFX_86 Call sub_0807F36C SetEntitySpeed 0x0400 - _0807ECF4 0x0008 + WalkWest 0x0008 BeginBlock Call sub_0807F1E8 DoPostScriptAction 0x0011 EndBlock - Call sub_0807F2D4 + Call WaitForFrameHiBit WaitForSyncFlag 0x80000000 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc b/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc index f3d1557d..78be94a1 100644 --- a/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerIntroCastle SetEntitySpeed 0x0080 EndBlock _0807EDD4 0x01e8, 0x0050 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000400 Call sub_080791BC diff --git a/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc b/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc index e0c26443..dc4e414f 100644 --- a/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc @@ -6,7 +6,7 @@ SCRIPT_START script_PlayerProtectingZelda SetEntitySpeed 0x0200 DoPostScriptAction 0x0001 _0807EDD4 0x01d8, 0x0068 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000400 Call sub_080791BC diff --git a/data/scripts/cutscene/introCeremony/script_VaatiDarkMagic.inc b/data/scripts/cutscene/introCeremony/script_VaatiDarkMagic.inc index c00eb537..24b9f903 100644 --- a/data/scripts/cutscene/introCeremony/script_VaatiDarkMagic.inc +++ b/data/scripts/cutscene/introCeremony/script_VaatiDarkMagic.inc @@ -1,7 +1,7 @@ @ Intro Ceremony Vaati Dark magic? SCRIPT_START script_VaatiDarkMagic BeginBlock - _0807E930 0x0000 + SetAnimation 0x0000 SetEntitySpeed 0x0200 Call nullsub_527 Call sub_08094B80 diff --git a/data/scripts/cutscene/introCeremony/script_VaatiIntroCeremony.inc b/data/scripts/cutscene/introCeremony/script_VaatiIntroCeremony.inc index 2557a4c2..13d6fa8c 100644 --- a/data/scripts/cutscene/introCeremony/script_VaatiIntroCeremony.inc +++ b/data/scripts/cutscene/introCeremony/script_VaatiIntroCeremony.inc @@ -1,37 +1,37 @@ @ Intro Ceremony Vaati SCRIPT_START script_VaatiIntroCeremony BeginBlock - _0807EB44 0x0000 + SetAnimationState 0x0000 SetEntitySpeed 0x0100 EndBlock - Call sub_0807F338 + Call DeleteHitbox WaitForSyncFlagAndClear 0x00000100 DoPostScriptAction 0x0001 _0807EDD4 0x01f8, 0x00d0 DoPostScriptAction 0x0000 SetSyncFlag 0x00000200 WaitForSyncFlagAndClear 0x00000100 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x001c - Call sub_0807F2D4 - _0807EB44 0x0004 + Call WaitForFrameHiBit + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000200 WaitForSyncFlagAndClear 0x00000100 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x001c - Call sub_0807F2D4 - _0807EB44 0x0000 + Call WaitForFrameHiBit + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000200 WaitForSyncFlagAndClear 0x00000100 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x001a - Call sub_0807F2D4 + Call WaitForFrameHiBit DoPostScriptAction 0x0000 SetSyncFlag 0x00000200 WaitForSyncFlagAndClear 0x00000100 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0014 PlaySound SFX_CHARGING_UP CallWithArg sub_08095420, script_08011890 @@ -45,7 +45,7 @@ SCRIPT_START script_VaatiIntroCeremony SetEntitySpeed 0x0080 DoPostScriptAction 0x0001 _0807EDD4 0x01d8, 0x00a8 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000200 WaitForSyncFlagAndClear 0x00000100 @@ -65,14 +65,14 @@ SCRIPT_START script_VaatiIntroCeremony SetEntitySpeed 0x0100 DoPostScriptAction 0x0001 _0807EDD4 0x01f8, 0x0098 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 DoPostScriptAction 0x0004 Wait 0x005a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x001c - Call sub_0807F2D4 - _0807EB44 0x0004 + Call WaitForFrameHiBit + SetAnimationState 0x0004 DoPostScriptAction 0x0000 Wait 0x001e SetSyncFlag 0x00000200 diff --git a/data/scripts/cutscene/introCeremony/script_ZeldaIntroCastle.inc b/data/scripts/cutscene/introCeremony/script_ZeldaIntroCastle.inc index b0554ed0..cfe741b1 100644 --- a/data/scripts/cutscene/introCeremony/script_ZeldaIntroCastle.inc +++ b/data/scripts/cutscene/introCeremony/script_ZeldaIntroCastle.inc @@ -5,20 +5,20 @@ SCRIPT_START script_ZeldaIntroCastle SetEntitySpeed 0x0100 Call sub_08066D04 EndBlock - Call sub_0807F338 + Call DeleteHitbox WaitForSyncFlagAndClear 0x00000010 Call sub_08066D14 JumpIf script_080111F6 MoveEntityToPlayer script_080111F6: - Call sub_0807F8BC + Call CheckEntityOnScreen JumpIf script_08011206 SetEntityPositionRelative 0x01f8, 0x00b8 script_08011206: DoPostScriptAction 0x0007 DoPostScriptAction 0x0001 _0807EDD4 0x01f8, 0x0050 - _0807EB74 + FacePlayer DoPostScriptAction 0x0000 SetSyncFlag 0x00000020 WaitForSyncFlagAndClear 0x00000010 @@ -48,7 +48,7 @@ script_08011206: Call sub_08066E20 Wait 0x0014 DoPostScriptAction 0x0010 - Call sub_0807F2D4 + Call WaitForFrameHiBit PlaySound SFX_1CA SetSyncFlag 0x00000020 WaitForSyncFlagAndClear 0x00000010 diff --git a/data/scripts/cutscene/introTown/script_BeedleIntro.inc b/data/scripts/cutscene/introTown/script_BeedleIntro.inc index e0e1359b..743a6c56 100644 --- a/data/scripts/cutscene/introTown/script_BeedleIntro.inc +++ b/data/scripts/cutscene/introTown/script_BeedleIntro.inc @@ -1,20 +1,20 @@ @ Intro Hyrule Town Beedle SCRIPT_START script_BeedleIntro BeginBlock - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 _0807E9D4 DoPostScriptAction 0x000a - Call sub_0807F348 + Call SetPriorityMessage EndBlock script_0800F604: CheckEntityInteractType JumpIfNot script_0800F604 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000008 MessageNoOverlap 0x2511 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800F604 diff --git a/data/scripts/cutscene/introTown/script_GuardIntro.inc b/data/scripts/cutscene/introTown/script_GuardIntro.inc index 9424bff8..e35ab50f 100644 --- a/data/scripts/cutscene/introTown/script_GuardIntro.inc +++ b/data/scripts/cutscene/introTown/script_GuardIntro.inc @@ -1,7 +1,7 @@ @ Intro Hyrule Town Guard SCRIPT_START script_GuardIntro BeginBlock - _0807EB44 0x0006 + SetAnimationState 0x0006 _0807E9D4 DoPostScriptAction 0x000a CallWithArg sub_0807F3D8, 0x00000008 @@ -9,11 +9,11 @@ SCRIPT_START script_GuardIntro script_0800F5C8: CheckEntityInteractType JumpIfNot script_0800F5C8 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000008 Call sub_08064428 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800F5C8 .2byte 0x0000 diff --git a/data/scripts/cutscene/introTown/script_KidIntro1.inc b/data/scripts/cutscene/introTown/script_KidIntro1.inc index c705c186..e3ccdb3a 100644 --- a/data/scripts/cutscene/introTown/script_KidIntro1.inc +++ b/data/scripts/cutscene/introTown/script_KidIntro1.inc @@ -8,11 +8,11 @@ SCRIPT_START script_KidIntro1 script_0800F592: CheckEntityInteractType JumpIfNot script_0800F592 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806265C WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0001 Jump script_0800F592 .2byte 0x0000 diff --git a/data/scripts/cutscene/introTown/script_KidIntro2.inc b/data/scripts/cutscene/introTown/script_KidIntro2.inc index 008ef2e8..dfc9c3ce 100644 --- a/data/scripts/cutscene/introTown/script_KidIntro2.inc +++ b/data/scripts/cutscene/introTown/script_KidIntro2.inc @@ -23,11 +23,11 @@ script_0800F6F4: JumpIf script_0800F718 CheckEntityInteractType JumpIfNot script_0800F6F4 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806265C WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0001 Jump script_0800F6F4 script_0800F718: diff --git a/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc b/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc index ea3471c4..722006a3 100644 --- a/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc +++ b/data/scripts/cutscene/introTown/script_Npc4EIntroCastle.inc @@ -1,7 +1,7 @@ @ Intro Hyrule Castle NPC4E SCRIPT_START script_Npc4EIntroCastle - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StartPlayerScript script_PlayerIntroCastle WaitForSyncFlagAndClear 0x00000400 @@ -17,7 +17,7 @@ SCRIPT_START script_Npc4EIntroCastle MessageFromTargetPos 0x1038, 0x000c WaitUntilTextboxCloses StopBgm - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade5 WaitForFadeFinish Call sub_08064180 @@ -38,7 +38,7 @@ SCRIPT_START script_Npc4EIntroCastle CameraTargetEntity Wait 0x000a _0807F0B4 0x0001 - _0807E778 0x0001 + SetFadeTime 0x0001 DoFade4 SetSyncFlag 0x0002a800 WaitForSyncFlagAndClear 0x00055000 diff --git a/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc b/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc index 67df44fd..409387ac 100644 --- a/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc +++ b/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc @@ -14,23 +14,23 @@ SCRIPT_START script_Npc4EIntroTown .endif .endif JumpIf script_0800FA4C - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetEntityPositionRelative 0x00c8, 0x0148 Call sub_0807F844 - _0807E778 0x0002 + SetFadeTime 0x0002 DoFade6 WaitForFadeFinish StartPlayerScript script_PlayerIntro1 SetSyncFlag 0x00000002 _0807F0B4 0x0001 SetEntityPositionRelative 0x00c8, 0x0218 - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder Wait 0x0064 @ Camera reaches center of town square _0807F0B4 0x0002 SetEntityPositionRelative 0x00c8, 0x0368 - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder WaitForSyncFlagAndClear 0x00000001 WaitForSyncFlagAndClear 0x00000004 @ First message from Zelda @@ -42,10 +42,10 @@ SCRIPT_START script_Npc4EIntroTown _0807F0B4 0x0004 CameraTargetPlayer Call sub_0807DF50 - _0807E878 + EnablePlayerControl SetSyncFlag 0x00000010 WaitForSyncFlagAndClear 0x00000004 - _0807E864 + SetPlayerIdle Call sub_0807DF28 StartPlayerScript script_PlayerIntro2 WaitForSyncFlagAndClear 0x00000001 @@ -56,9 +56,9 @@ SCRIPT_START script_Npc4EIntroTown SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 Call sub_0807DF50 - _0807E878 + EnablePlayerControl WaitForSyncFlagAndClear 0x00000004 - _0807E864 + SetPlayerIdle Call sub_0807DF28 StartPlayerScript script_PlayerIntro3 WaitForSyncFlagAndClear 0x00000001 @@ -69,9 +69,9 @@ SCRIPT_START script_Npc4EIntroTown SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 Call sub_0807DF50 - _0807E878 + EnablePlayerControl WaitForSyncFlagAndClear 0x00000004 - _0807E864 + SetPlayerIdle Call sub_0807DF28 StartPlayerScript script_PlayerIntro4 WaitForSyncFlagAndClear 0x00000001 @@ -82,16 +82,16 @@ SCRIPT_START script_Npc4EIntroTown SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 Call sub_0807DF50 - _0807E878 + EnablePlayerControl @ Wait for Link at Pina WaitForSyncFlagAndClear 0x00000004 - _0807E864 + SetPlayerIdle Call sub_0807DF28 Call sub_08063C5C PlaySound SFX_CUCCO_MINIGAME_BELL Wait 0x001e _0807E8E4_0 - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c MessageFromTargetPos 0x1021, 0x000e WaitUntilTextboxCloses @@ -152,7 +152,7 @@ SCRIPT_START script_Npc4EIntroTown Call sub_08094E0C Wait 0x001e _0807E8E4_1 - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c MessageFromTargetPos 0x102b, 0x0000 WaitUntilTextboxCloses @@ -161,7 +161,7 @@ SCRIPT_START script_Npc4EIntroTown WaitPlayerGetItem Call sub_0806DC3C Call sub_080791BC - CallWithArg sub_0807F244, 0x0000000d + CallWithArg EquipItem, 0x0000000d SetIntVariable 0x000000ff Call sub_0807F5B0 CallWithArg sub_0807F29C, gUnk_080049D6 @@ -192,7 +192,7 @@ SCRIPT_START script_Npc4EIntroTown .endif .endif Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_0800FA4C: DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_Object69IntroTown.inc b/data/scripts/cutscene/introTown/script_Object69IntroTown.inc index ff9f8d27..a2710b62 100644 --- a/data/scripts/cutscene/introTown/script_Object69IntroTown.inc +++ b/data/scripts/cutscene/introTown/script_Object69IntroTown.inc @@ -33,24 +33,24 @@ script_0800FD1A: .endif .endif JumpIf script_0800FD5C - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal MessageFromTargetPos 0x2506, 0x0000 WaitUntilTextboxCloses StartPlayerScript script_PlayerIntroTown WaitForSyncFlagAndClear 0x00000008 - _0807E878 + EnablePlayerControl Jump script_0800FD1A script_0800FD50: CheckPlayerInRegion 0x00c8, 0x03c0, 0x1040 JumpIfNot script_0800FD50 script_0800FD5C: - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal MessageFromTargetPos 0x106c, 0x0000 WaitUntilTextboxCloses StartPlayerScript script_PlayerIntroTown WaitForSyncFlagAndClear 0x00000008 - _0807E878 + EnablePlayerControl Jump script_0800FD50 .2byte 0x0000 diff --git a/data/scripts/cutscene/introTown/script_PercyIntro.inc b/data/scripts/cutscene/introTown/script_PercyIntro.inc index a8fda42a..5904f8a8 100644 --- a/data/scripts/cutscene/introTown/script_PercyIntro.inc +++ b/data/scripts/cutscene/introTown/script_PercyIntro.inc @@ -1,7 +1,7 @@ @ Intro Hyrule Town Percy SCRIPT_START script_PercyIntro BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a _0807E9D4 @@ -9,13 +9,13 @@ SCRIPT_START script_PercyIntro script_0800F662: CheckEntityInteractType JumpIfNot script_0800F662 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0001 Call sub_0806B4F0 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0000 Jump script_0800F662 .2byte 0x0000 diff --git a/data/scripts/cutscene/introTown/script_PinaIntro.inc b/data/scripts/cutscene/introTown/script_PinaIntro.inc index bfe9dcf9..bc9ec670 100644 --- a/data/scripts/cutscene/introTown/script_PinaIntro.inc +++ b/data/scripts/cutscene/introTown/script_PinaIntro.inc @@ -1,17 +1,17 @@ @ Intro Hyrule Town Pina SCRIPT_START script_PinaIntro BeginBlock - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 _0807E9D4 DoPostScriptAction 0x000a - Call sub_0807F348 + Call SetPriorityMessage EndBlock script_0800F6A0: CheckEntityInteractType JumpIfNot script_0800F6A0 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000004 .ifdef JP CheckLocalFlag 0x00ca @@ -34,7 +34,7 @@ script_0800F6C4: script_0800F6C8: WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl CallWithArg sub_0807F3D8, 0x00000000 Jump script_0800F6A0 .2byte 0x0000 diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro1.inc b/data/scripts/cutscene/introTown/script_PlayerIntro1.inc index 4732932e..d5a09109 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro1.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro1.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerIntro1 SetEntitySpeed 0x0100 EndBlock SetEntityPositionRelative 0x00d8, 0x0398 - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro2.inc b/data/scripts/cutscene/introTown/script_PlayerIntro2.inc index 94540b8a..986893df 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro2.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro2.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerIntro2 SetEntitySpeed 0x0100 EndBlock _0807EDD4 0x00a0, 0x0278 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro3.inc b/data/scripts/cutscene/introTown/script_PlayerIntro3.inc index 4f48ea8c..d2eda272 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro3.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro3.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerIntro3 SetEntitySpeed 0x0100 EndBlock _0807EDD4 0x0078, 0x01c0 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro4.inc b/data/scripts/cutscene/introTown/script_PlayerIntro4.inc index 9d304aea..33307f8c 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro4.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro4.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerIntro4 SetEntitySpeed 0x0100 EndBlock _0807EDD4 0x0108, 0x01c8 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro5.inc b/data/scripts/cutscene/introTown/script_PlayerIntro5.inc index ce887cd2..e90538d7 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro5.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro5.inc @@ -3,7 +3,7 @@ SCRIPT_START script_PlayerIntro5 BeginBlock SetEntitySpeed 0x0100 EndBlock - Call sub_0807F584 + Call ReadPlayerAnimationState JumpTable script_0800FB06, script_0800FB10, script_0800FB06, script_0800FAFC script_0800FAFC: CallWithArg sub_0807F4F8, 0x0000027c @@ -11,7 +11,7 @@ script_0800FB06: CallWithArg sub_0807F464, 0x000000e8 script_0800FB10: _0807EDD4 0x00e8, 0x0270 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc b/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc index a15642df..453e2bbe 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc @@ -1,8 +1,8 @@ @ Hyrule Town Intro Player SCRIPT_START script_PlayerIntroTown SetEntitySpeed 0x0080 - _0807EC64 0x0020 - _0807EB44 0x0000 + WalkNorth 0x0020 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000008 Call sub_080791BC diff --git a/data/scripts/cutscene/introTown/script_TownsperonIntro.inc b/data/scripts/cutscene/introTown/script_TownsperonIntro.inc index 27ae1e54..7db70671 100644 --- a/data/scripts/cutscene/introTown/script_TownsperonIntro.inc +++ b/data/scripts/cutscene/introTown/script_TownsperonIntro.inc @@ -8,11 +8,11 @@ SCRIPT_START script_TownsperonIntro script_0800F564: CheckEntityInteractType JumpIfNot script_0800F564 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08061FE4 Call sub_08061FF4 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800F564 .2byte 0x0000 diff --git a/data/scripts/cutscene/introTown/script_WindtribespeopleIntro.inc b/data/scripts/cutscene/introTown/script_WindtribespeopleIntro.inc index 14a141fe..20a998f3 100644 --- a/data/scripts/cutscene/introTown/script_WindtribespeopleIntro.inc +++ b/data/scripts/cutscene/introTown/script_WindtribespeopleIntro.inc @@ -6,12 +6,12 @@ SCRIPT_START script_WindtribespeopleIntro DoPostScriptAction 0x0001 EndBlock script_0800F636: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_0800F636 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806C90C WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800F636 .2byte 0x0000 diff --git a/data/scripts/cutscene/introTown/script_ZeldaIntroTown.inc b/data/scripts/cutscene/introTown/script_ZeldaIntroTown.inc index 6cda5954..a9d511f9 100644 --- a/data/scripts/cutscene/introTown/script_ZeldaIntroTown.inc +++ b/data/scripts/cutscene/introTown/script_ZeldaIntroTown.inc @@ -13,25 +13,25 @@ SCRIPT_START script_ZeldaIntroTown script_0800FB6C: DoPostScriptAction 0x0007 SetEntityPositionRelative 0x00b8, 0x0398 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0200 _0807EDD4 0x00b8, 0x0318 SetEntityPositionRelative 0x00a0, 0x0260 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0001 SetSyncFlag 0x00000004 DoPostScriptAction 0x000a _0807E9D4 script_0800FBAE: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_0800FBAE DoPostScriptAction 0x000b SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 @@ -40,41 +40,41 @@ script_0800FBAE: _0807EDD4 0x0070, 0x0268 _0807EDD4 0x0070, 0x0208 SetEntityPositionRelative 0x0078, 0x01a8 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0001 SetSyncFlag 0x00000004 DoPostScriptAction 0x000a script_0800FC06: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_0800FC06 DoPostScriptAction 0x000b SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0200 _0807EDD4 0x00f8, 0x01a8 SetEntityPositionRelative 0x0118, 0x01c8 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0001 SetSyncFlag 0x00000004 DoPostScriptAction 0x000a script_0800FC52: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_0800FC52 DoPostScriptAction 0x000b SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0200 _0807EDD4 0x0118, 0x0260 SetEntityPositionRelative 0x00f8, 0x0270 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0001 SetSyncFlag 0x00000004 DoPostScriptAction 0x000a @@ -83,22 +83,22 @@ script_0800FC9E: CheckEntityInteractType JumpIfNot script_0800FC9E DoPostScriptAction 0x000b - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 DoPostScriptAction 0x0004 WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x000d SetEntitySpeed 0x0040 - _0807EC94 0x0020 - _0807EB44 0x0000 + WalkEast 0x0020 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x000c SetEntitySpeed 0x0040 - _0807ECF4 0x0020 - _0807EB44 0x0006 + WalkWest 0x0020 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 diff --git a/data/scripts/cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc b/data/scripts/cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc index 2f96db73..b09e0dbf 100644 --- a/data/scripts/cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc +++ b/data/scripts/cutscene/kinstones/script_HurdyGurdyManFirstKinstone.inc @@ -5,15 +5,15 @@ SCRIPT_START script_HurdyGurdyManFirstKinstone DoPostScriptAction 0x0008 DoPostScriptAction 0x000a EndBlock - Call sub_0807F348 - _0807EB44 0x0002 + Call SetPriorityMessage + SetAnimationState 0x0002 WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0007 _0807EDD4 0x01b8, 0x0328 SetSyncFlag 0x00000040 _0807EDD4 0x01f8, 0x0328 - _0807EB44 0x0004 - _0807E930 0x0008 + SetAnimationState 0x0004 + SetAnimation 0x0008 _0807E8E4_0 SetSyncFlag 0x00000040 WaitForSyncFlagAndClear 0x00000002 @@ -27,65 +27,65 @@ script_0800F1E6: CallWithArg sub_0807F680, 0x000001c0 JumpIf script_0800F22A EndBlock - _0807E864 - Call sub_0807F9A4 - _0807EB74 - _0807E930 0x0008 + SetPlayerIdle + Call WaitForPlayerNormal + FacePlayer + SetAnimation 0x0008 DoPostScriptAction 0x0004 Wait 0x003c MessageFromTargetPos 0x1206, 0x000c WaitUntilTextboxCloses StartPlayerScript script_PlayerAtHurdyGurdyManFirstKinstone1 WaitForSyncFlagAndClear 0x00000400 - _0807E878 + EnablePlayerControl Jump script_0800F1E6 script_0800F22A: CallWithArg sub_0807F680, 0x00000230 JumpIfNot script_0800F26A EndBlock - _0807E864 - Call sub_0807F9A4 - _0807EB74 - _0807E930 0x0008 + SetPlayerIdle + Call WaitForPlayerNormal + FacePlayer + SetAnimation 0x0008 DoPostScriptAction 0x0004 Wait 0x003c MessageFromTargetPos 0x1206, 0x000c WaitUntilTextboxCloses StartPlayerScript script_PlayerAtHurdyGurdyManFirstKinstone2 WaitForSyncFlagAndClear 0x00000400 - _0807E878 + EnablePlayerControl Jump script_0800F1E6 script_0800F26A: CallWithArg sub_0807F6B4, 0x00000310 JumpIf script_0800F2AA EndBlock - _0807E864 - Call sub_0807F9A4 - _0807EB74 - _0807E930 0x0008 + SetPlayerIdle + Call WaitForPlayerNormal + FacePlayer + SetAnimation 0x0008 DoPostScriptAction 0x0004 Wait 0x003c MessageFromTargetPos 0x1206, 0x000c WaitUntilTextboxCloses StartPlayerScript script_PlayerAtHurdyGurdyManFirstKinstone3 WaitForSyncFlagAndClear 0x00000400 - _0807E878 + EnablePlayerControl Jump script_0800F1E6 script_0800F2AA: CallWithArg sub_0807F6B4, 0x00000340 JumpIfNot script_0800F2EA EndBlock - _0807E864 - Call sub_0807F9A4 - _0807EB74 - _0807E930 0x0008 + SetPlayerIdle + Call WaitForPlayerNormal + FacePlayer + SetAnimation 0x0008 DoPostScriptAction 0x0004 Wait 0x003c MessageFromTargetPos 0x1206, 0x000c WaitUntilTextboxCloses StartPlayerScript script_PlayerAtHurdyGurdyManFirstKinstone4 WaitForSyncFlagAndClear 0x00000400 - _0807E878 + EnablePlayerControl Jump script_0800F1E6 script_0800F2EA: EndBlock @@ -95,19 +95,19 @@ script_0800F2EA: CheckEntityInteractType JumpIfNot script_0800F2EA EndBlock - _0807E864 - _0807EB74 - _0807E930 0x0008 + SetPlayerIdle + FacePlayer + SetAnimation 0x0008 MessageFromTargetPos 0x1208, 0x000c WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800F1E6 script_0800F314: EndBlock SetSyncFlag 0x00000040 WaitForSyncFlagAndClear 0x00000002 SetEntitySpeed 0x0100 - _0807EB44 0x0002 + SetAnimationState 0x0002 _0807EEF4 0x00c0, 0x0000 SetSyncFlag 0x00000040 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/kinstones/script_KidKinstone1.inc b/data/scripts/cutscene/kinstones/script_KidKinstone1.inc index 21c9883d..c4eae773 100644 --- a/data/scripts/cutscene/kinstones/script_KidKinstone1.inc +++ b/data/scripts/cutscene/kinstones/script_KidKinstone1.inc @@ -2,19 +2,19 @@ SCRIPT_START script_KidKinstone1 BeginBlock _0807E9D4 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0001 DoPostScriptAction 0x0008 SetEntitySpeed 0x0080 DoPostScriptAction 0x000b EndBlock - Call sub_0807F348 + Call SetPriorityMessage WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0007 _0807EDD4 0x01f8, 0x0318 _0807EDD4 0x0208, 0x0318 _0807EDD4 0x0208, 0x0338 - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a SetSyncFlag 0x00000080 @@ -24,11 +24,11 @@ script_0800F3EA: CheckEntityInteractType JumpIfNot script_0800F402 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x1237 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl script_0800F402: CheckSyncFlagAndClear 0x00000004 JumpIfNot script_0800F3EA @@ -36,7 +36,7 @@ script_0800F402: DoPostScriptAction 0x000b Wait 0x0010 SetEntitySpeed 0x0100 - _0807EC64 0x0010 + WalkNorth 0x0010 _0807EDD4 0x0288, 0x0328 SetSyncFlag 0x00000080 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/kinstones/script_KidKinstone2.inc b/data/scripts/cutscene/kinstones/script_KidKinstone2.inc index d3cdd400..16f69917 100644 --- a/data/scripts/cutscene/kinstones/script_KidKinstone2.inc +++ b/data/scripts/cutscene/kinstones/script_KidKinstone2.inc @@ -2,18 +2,18 @@ SCRIPT_START script_KidKinstone2 BeginBlock _0807E9D4 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0001 DoPostScriptAction 0x0008 SetEntitySpeed 0x0080 DoPostScriptAction 0x000b EndBlock - Call sub_0807F348 + Call SetPriorityMessage WaitForSyncFlagAndClear 0x00000008 DoPostScriptAction 0x0007 _0807EDD4 0x01d8, 0x0328 _0807EDD4 0x01f8, 0x0348 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a SetSyncFlag 0x00000100 @@ -23,11 +23,11 @@ script_0800F478: CheckEntityInteractType JumpIfNot script_0800F490 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x1238 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl script_0800F490: CheckSyncFlagAndClear 0x00000008 JumpIfNot script_0800F478 @@ -35,8 +35,8 @@ script_0800F490: DoPostScriptAction 0x000b Wait 0x0018 SetEntitySpeed 0x0100 - _0807EC94 0x0010 - _0807EC64 0x0020 + WalkEast 0x0010 + WalkNorth 0x0020 _0807EDD4 0x0288, 0x0328 SetSyncFlag 0x00000100 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/kinstones/script_KidKinstone3.inc b/data/scripts/cutscene/kinstones/script_KidKinstone3.inc index 1039e878..04145775 100644 --- a/data/scripts/cutscene/kinstones/script_KidKinstone3.inc +++ b/data/scripts/cutscene/kinstones/script_KidKinstone3.inc @@ -2,18 +2,18 @@ SCRIPT_START script_KidKinstone3 BeginBlock _0807E9D4 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0001 DoPostScriptAction 0x0008 SetEntitySpeed 0x0080 DoPostScriptAction 0x000b EndBlock - Call sub_0807F348 + Call SetPriorityMessage WaitForSyncFlagAndClear 0x00000010 DoPostScriptAction 0x0007 _0807EDD4 0x01c8, 0x0328 _0807EDD4 0x01e8, 0x0338 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a SetSyncFlag 0x00000200 @@ -23,11 +23,11 @@ script_0800F50C: CheckEntityInteractType JumpIfNot script_0800F524 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x1239 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl script_0800F524: CheckSyncFlagAndClear 0x00000010 JumpIfNot script_0800F50C @@ -35,7 +35,7 @@ script_0800F524: DoPostScriptAction 0x000b Wait 0x0028 SetEntitySpeed 0x0100 - _0807EC64 0x0010 + WalkNorth 0x0010 _0807EDD4 0x0288, 0x0328 SetSyncFlag 0x00000200 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc b/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc index 80a76584..b3afd418 100644 --- a/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc +++ b/data/scripts/cutscene/kinstones/script_Npc4EFirstKinstone.inc @@ -7,8 +7,8 @@ SCRIPT_START script_Npc4EFirstKinstone script_0800F09A: CheckPlayerInRegion 0x01f8, 0x0338, 0x1030 JumpIfNot script_0800F09A - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 LoadRoomEntityList gUnk_080EE8AC StartPlayerScript script_PlayerAtFirstKinstone @@ -30,19 +30,19 @@ script_0800F09A: WaitUntilTextboxCloses SetSyncFlag 0x00000002 Call sub_0807DF50 - _0807E878 + EnablePlayerControl WaitForSyncFlagAndClear 0x00000040 script_0800F11A: CheckKinstoneFused 0x0032 JumpIfNot script_0800F11A - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetSyncFlag 0x0000001e Wait 0x003c _0807E8E4_1 WaitForSyncFlagAndClear 0x000003c0 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc b/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc index d039a201..58479b51 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc @@ -4,12 +4,12 @@ SCRIPT_START script_PlayerAtFirstKinstone SetEntitySpeed 0x0080 EndBlock DoPostScriptAction 0x0000 - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0004 Wait 0x003c DoPostScriptAction 0x0001 _0807EDD4 0x01f8, 0x0338 - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc index 941d969d..7d7223dc 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc @@ -1,7 +1,7 @@ @ Player at Hyrule Town Kinstone cutscene HurdyGurdyMan SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone1 SetEntitySpeed 0x0100 - _0807EC94 0x0008 + WalkEast 0x0008 SetSyncFlag 0x00000400 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc index 8bcc7ac1..86076092 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc @@ -1,7 +1,7 @@ @ Player at Hyrule Town Kinstone cutscene HurdyGurdyMan 2 SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone2 SetEntitySpeed 0x0100 - _0807ECF4 0x0008 + WalkWest 0x0008 SetSyncFlag 0x00000400 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc index a86cda57..c64ab60a 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc @@ -1,7 +1,7 @@ @ Player at Hyrule Town Kinstone cutscene HurdyGurdyMan 3 SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone3 SetEntitySpeed 0x0100 - _0807ECC4 0x0008 + WalkSouth 0x0008 SetSyncFlag 0x00000400 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc index 01316111..5b436fa5 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc @@ -1,7 +1,7 @@ @ Player at Hyrule Town Kinstone cutscene HurdyGurdyMan 4 SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone4 SetEntitySpeed 0x0100 - _0807EC64 0x0008 + WalkNorth 0x0008 SetSyncFlag 0x00000400 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/minishVillage/script_ForestMinish5.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish5.inc index c1d7b3bb..f0e29084 100644 --- a/data/scripts/cutscene/minishVillage/script_ForestMinish5.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish5.inc @@ -5,12 +5,12 @@ SCRIPT_START script_ForestMinish5 DoPostScriptAction 0x0008 SetEntitySpeed 0x0100 DoPostScriptAction 0x000f - Call sub_0807F338 + Call DeleteHitbox EndBlock WaitForSyncFlagAndClear 0x00000200 DoPostScriptAction 0x0007 _0807EDD4 0x0208, 0x0308 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000400 WaitForSyncFlagAndClear 0x00000200 diff --git a/data/scripts/cutscene/minishVillage/script_ForestMinish6.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish6.inc index 06076fd2..ea9e43fd 100644 --- a/data/scripts/cutscene/minishVillage/script_ForestMinish6.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish6.inc @@ -5,14 +5,14 @@ SCRIPT_START script_ForestMinish6 DoPostScriptAction 0x0008 SetEntitySpeed 0x0100 DoPostScriptAction 0x000f - Call sub_0807F338 + Call DeleteHitbox EndBlock WaitForSyncFlagAndClear 0x00000800 DoPostScriptAction 0x0007 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0001 _0807EDD4 0x01a8, 0x0330 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00001000 WaitForSyncFlagAndClear 0x00000800 diff --git a/data/scripts/cutscene/minishVillage/script_ForestMinish7.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish7.inc index 4e862a77..db6366f1 100644 --- a/data/scripts/cutscene/minishVillage/script_ForestMinish7.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish7.inc @@ -5,12 +5,12 @@ SCRIPT_START script_ForestMinish7 DoPostScriptAction 0x0008 SetEntitySpeed 0x0100 DoPostScriptAction 0x000f - Call sub_0807F338 + Call DeleteHitbox EndBlock WaitForSyncFlagAndClear 0x00002000 DoPostScriptAction 0x0007 _0807EDD4 0x0258, 0x0330 - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00004000 WaitForSyncFlagAndClear 0x00002000 diff --git a/data/scripts/cutscene/minishVillage/script_ForestMinish8.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish8.inc index 945415dc..302f4367 100644 --- a/data/scripts/cutscene/minishVillage/script_ForestMinish8.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish8.inc @@ -5,12 +5,12 @@ SCRIPT_START script_ForestMinish8 DoPostScriptAction 0x0000 SetEntitySpeed 0x0100 DoPostScriptAction 0x000f - Call sub_0807F338 + Call DeleteHitbox EndBlock WaitForSyncFlagAndClear 0x00008000 DoPostScriptAction 0x0007 _0807EDD4 0x01b8, 0x0320 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00010000 WaitForSyncFlagAndClear 0x00008000 diff --git a/data/scripts/cutscene/minishVillage/script_ForestMinish9.inc b/data/scripts/cutscene/minishVillage/script_ForestMinish9.inc index 4b350a06..38805f14 100644 --- a/data/scripts/cutscene/minishVillage/script_ForestMinish9.inc +++ b/data/scripts/cutscene/minishVillage/script_ForestMinish9.inc @@ -5,12 +5,12 @@ SCRIPT_START script_ForestMinish9 DoPostScriptAction 0x0008 SetEntitySpeed 0x0100 DoPostScriptAction 0x000f - Call sub_0807F338 + Call DeleteHitbox EndBlock WaitForSyncFlagAndClear 0x00020000 DoPostScriptAction 0x0007 _0807EDD4 0x0268, 0x0338 - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00040000 WaitForSyncFlagAndClear 0x00020000 diff --git a/data/scripts/cutscene/minishVillage/script_Object69VillageIntro.inc b/data/scripts/cutscene/minishVillage/script_Object69VillageIntro.inc index 6419dba0..045da40d 100644 --- a/data/scripts/cutscene/minishVillage/script_Object69VillageIntro.inc +++ b/data/scripts/cutscene/minishVillage/script_Object69VillageIntro.inc @@ -1,19 +1,19 @@ @ Minish Village OBJECT_69 Intro Cutscene? SCRIPT_START script_Object69VillageIntro BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 SetEntitySpeed 0x0300 EndBlock script_0800C928: CheckPlayerInRegion 0x0208, 0x0360, 0x2040 JumpIfNot script_0800C928 - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StartPlayerScript script_PlayerAtVillageIntro WaitForSyncFlagAndClear 0x00000002 Wait 0x003c - _0807EB28 0x1125 + EzloMessage 0x1125 WaitUntilTextboxCloses SetSyncFlag 0x00000800 _0807E8E4_3 @@ -41,7 +41,7 @@ script_0800C928: WaitForSyncFlagAndClear 0x00000400 _0807E8E4_0 MessageFromTarget 0x1126 - Call sub_0807F40C + Call CreatePlayerQuestionMark WaitUntilTextboxCloses SetSyncFlag 0x00000200 SetSyncFlag 0x00000800 @@ -74,10 +74,10 @@ script_0800C928: WaitForSyncFlagAndClear 0x00010000 WaitForSyncFlagAndClear 0x00040000 _0807E8E4_0 - _0807EB28 0x1129 + EzloMessage 0x1129 WaitUntilTextboxCloses SetLocalFlag 0x008d Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_EzloCapExplainingOriginStory.inc b/data/scripts/cutscene/originStory/script_EzloCapExplainingOriginStory.inc index 5931fc5e..d0c52080 100644 --- a/data/scripts/cutscene/originStory/script_EzloCapExplainingOriginStory.inc +++ b/data/scripts/cutscene/originStory/script_EzloCapExplainingOriginStory.inc @@ -4,18 +4,18 @@ SCRIPT_START script_EzloCapExplainingOriginStory SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 EndBlock - _0807E930 0x001f + SetAnimation 0x001f Call sub_0806D944 WaitForSyncFlagAndClear 0x00000008 - _0807E930 0x0010 + SetAnimation 0x0010 MessageFromTargetPos 0x1314, 0x000c WaitUntilTextboxCloses - _0807E930 0x0018 + SetAnimation 0x0018 Call sub_0806D8A0 script_080153C2: _0807EE30 JumpIfNot script_080153C2 - _0807E930 0x001f + SetAnimation 0x001f StartPlayerScript script_PlayerReceivedExposition Call sub_0806D9A4 DoPostScriptAction 0x0008 diff --git a/data/scripts/cutscene/originStory/script_MinishEzlo.inc b/data/scripts/cutscene/originStory/script_MinishEzlo.inc index bd1ee7c1..5acc0d71 100644 --- a/data/scripts/cutscene/originStory/script_MinishEzlo.inc +++ b/data/scripts/cutscene/originStory/script_MinishEzlo.inc @@ -3,24 +3,24 @@ SCRIPT_START script_MinishEzlo BeginBlock SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 - _0807EB44 0x0000 - Call sub_0807F338 + SetAnimationState 0x0000 + Call DeleteHitbox EndBlock CallWithArg sub_0806AF60, 0x00000000 WaitForSyncFlagAndClear 0x00008000 CallWithArg sub_0806AF60, 0x00000004 _0807EDD4 0x0078, 0x00b8 - _0807EB44 0x0000 + SetAnimationState 0x0000 CallWithArg sub_0806AF60, 0x00000000 SetSyncFlag 0x00010000 WaitForSyncFlagAndClear 0x00008000 DoPostScriptAction 0x000d - _0807EB44 0x0000 + SetAnimationState 0x0000 CallWithArg sub_0806AF60, 0x00000004 _0807EDD4 0x0078, 0x00c8 SetSyncFlag 0x00010000 WaitForSyncFlagAndClear 0x00008000 - _0807EB44 0x0000 + SetAnimationState 0x0000 CallWithArg sub_0806AF60, 0x00000000 DoPostScriptAction 0x0010 Wait 0x0028 @@ -33,8 +33,8 @@ SCRIPT_START script_MinishEzlo DoPostScriptAction 0x0010 SetSyncFlag 0x00010000 WaitForSyncFlagAndClear 0x00008000 - _0807E930 0x000d - Call sub_0807F2D4 + SetAnimation 0x000d + Call WaitForFrameHiBit SetSyncFlag 0x00010000 Wait 0x003c DoPostScriptAction 0x0005 diff --git a/data/scripts/cutscene/originStory/script_Object69CameraTarget.inc b/data/scripts/cutscene/originStory/script_Object69CameraTarget.inc index c505a57d..b6217240 100644 --- a/data/scripts/cutscene/originStory/script_Object69CameraTarget.inc +++ b/data/scripts/cutscene/originStory/script_Object69CameraTarget.inc @@ -19,7 +19,7 @@ SCRIPT_START script_Object69CameraTarget SetSyncFlag 0x00000800 WaitForSyncFlagAndClear 0x00001000 StopBgm - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade5 WaitForFadeFinish SetRoomFlag 0x0001 diff --git a/data/scripts/cutscene/originStory/script_Object69MinishVaati.inc b/data/scripts/cutscene/originStory/script_Object69MinishVaati.inc index 2ad51bff..8f2e5cee 100644 --- a/data/scripts/cutscene/originStory/script_Object69MinishVaati.inc +++ b/data/scripts/cutscene/originStory/script_Object69MinishVaati.inc @@ -6,7 +6,7 @@ SCRIPT_START script_Object69MinishVaati CameraTargetEntity EndBlock PlayBgm BGM_EZLO_STORY - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade4 WaitForFadeFinish Wait 0x003c diff --git a/data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc b/data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc index b1f37aad..411aae34 100644 --- a/data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc +++ b/data/scripts/cutscene/originStory/script_Object69VaatiAppears.inc @@ -7,8 +7,8 @@ SCRIPT_START script_Object69VaatiAppears script_08014FCC: CheckPlayerInRegion 0x01f8, 0x00a0, 0x2040 JumpIfNot script_08014FCC - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StopBgm _0807F0B4 0x0001 @@ -17,24 +17,24 @@ script_08014FCC: WaitForSyncFlagAndClear 0x00000001 MessageFromTargetPos 0x1301, 0x0002 WaitUntilTextboxCloses - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 PlayBgm BGM_VAATI_THEME - _0807EB28 0x1302 + EzloMessage 0x1302 WaitUntilTextboxCloses MessageFromTargetPos 0x1303, 0x0002 WaitUntilTextboxCloses - _0807EB28 0x1304 + EzloMessage 0x1304 WaitUntilTextboxCloses MessageFromTargetPos 0x1305, 0x0002 WaitUntilTextboxCloses SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 - _0807EB28 0x1306 + EzloMessage 0x1306 WaitUntilTextboxCloses StopBgm StartPlayerScript script_PlayerTryToFollowVaati @@ -71,13 +71,13 @@ script_08014FCC: LoadRoomEntityList gUnk_080F7FC0 PlayBgm BGM_FIGHT_THEME Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_08015104: CheckRoomFlag 0x0000 JumpIfNot script_08015104 @ Defeated Moblins - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StopBgm StartPlayerScript script_PlayerDefeatedMoblins @@ -120,35 +120,35 @@ script_08015104: .endif .endif .endif - _0807EB28 0x130c + EzloMessage 0x130c WaitUntilTextboxCloses @ Ezlo cutscene starts CameraTargetPlayer - _0807E778 0x0004 + SetFadeTime 0x0004 _0807E80C 0x00000000 WaitForFadeFinish Call sub_08053B3C BeginBlock - _0807E864 - CallWithArg sub_0807F6E8, 0x00000008 + SetPlayerIdle + CallWithArg SetPlayerFlag, 0x00000008 MoveEntityToPlayer _0807F0B4 0x0004 CameraTargetEntity - _0807E778 0x0100 + SetFadeTime 0x0100 DoFade4 _0807E80C 0x00000000 EndBlock StartPlayerScript script_PlayerSeenOriginStory WaitForSyncFlagAndClear 0x00000001 LoadRoomEntityList gUnk_080F7CB0 - _0807E778 0x0004 + SetFadeTime 0x0004 _0807E800 0x00000000 WaitForFadeFinish SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000010 BeginBlock _0807E8E4_2 - _0807EB28 0x1315 + EzloMessage 0x1315 EndBlock WaitUntilTextboxCloses _0807F0B4 0x0004 @@ -156,6 +156,6 @@ script_08015104: Call sub_08054570 PlayBGM Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_Object6ADarkMagic.inc b/data/scripts/cutscene/originStory/script_Object6ADarkMagic.inc index 8b914690..786b7314 100644 --- a/data/scripts/cutscene/originStory/script_Object6ADarkMagic.inc +++ b/data/scripts/cutscene/originStory/script_Object6ADarkMagic.inc @@ -1,7 +1,7 @@ @ Ezlo Cutscene OBJECT_6A dark magic SCRIPT_START script_Object6ADarkMagic BeginBlock - _0807E930 0x0000 + SetAnimation 0x0000 SetEntitySpeed 0x0200 Call sub_08094B80 EndBlock diff --git a/data/scripts/cutscene/originStory/script_Object6AMinishCap.inc b/data/scripts/cutscene/originStory/script_Object6AMinishCap.inc index 93cafa90..75e76a5b 100644 --- a/data/scripts/cutscene/originStory/script_Object6AMinishCap.inc +++ b/data/scripts/cutscene/originStory/script_Object6AMinishCap.inc @@ -16,8 +16,8 @@ SCRIPT_START script_Object6AMinishCap Wait 0x003c SetSyncFlag 0x00000100 WaitForSyncFlagAndClear 0x00000080 - _0807E930 0x0001 - Call sub_0807F2D4 + SetAnimation 0x0001 + Call WaitForFrameHiBit DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc b/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc index 39c0de0c..429a13fd 100644 --- a/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc +++ b/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerAtVaatisAppearance EndBlock DoPostScriptAction 0x0001 _0807EDD4 0x01f8, 0x00b8 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc b/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc index 76d0f7dc..253e6517 100644 --- a/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc +++ b/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerDefeatedMoblins EndBlock DoPostScriptAction 0x0001 _0807EDD4 0x01f8, 0x0148 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc b/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc index 0445fe14..1418123b 100644 --- a/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc +++ b/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerSeenOriginStory SetEntitySpeed 0x0100 SetEntityPositionRelative 0x0208, 0x0148 EndBlock - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc b/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc index 4f30a21d..26d0e170 100644 --- a/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc +++ b/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc @@ -1,14 +1,14 @@ @ Player Outside Castle when stones appear before Moblin Fight SCRIPT_START script_PlayerStoneWallsAppear - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x000a - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x000a - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x000a - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc b/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc index 50664ad7..f6eb5063 100644 --- a/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc +++ b/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerTryToFollowVaati EndBlock DoPostScriptAction 0x0001 _0807EDD4 0x01f8, 0x0148 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/originStory/script_Vaati.inc b/data/scripts/cutscene/originStory/script_Vaati.inc index fd727120..3a48e430 100644 --- a/data/scripts/cutscene/originStory/script_Vaati.inc +++ b/data/scripts/cutscene/originStory/script_Vaati.inc @@ -3,17 +3,17 @@ SCRIPT_START script_Vaati BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0017 - Call sub_0807F180 + Call SetCollisionLayer2 EndBlock WaitForSyncFlagAndClear 0x00000800 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0017 Wait 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0017 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x001b SetSyncFlag 0x00001000 WaitForSyncFlagAndClear 0x00000800 @@ -23,19 +23,19 @@ SCRIPT_START script_Vaati SetSyncFlag 0x00001000 WaitForSyncFlagAndClear 0x00000800 DoPostScriptAction 0x0018 - Call sub_0807F2D4 - _0807EB44 0x0004 + Call WaitForFrameHiBit + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00001000 WaitForSyncFlagAndClear 0x00000800 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0014 CallWithArg sub_0809545C, script_Object6ADarkMagic PlaySound SFX_1C4 Wait 0x0078 DoPostScriptAction 0x0016 WaitForSyncFlagAndClear 0x00020000 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00001000 WaitForSyncFlagAndClear 0x00000800 diff --git a/data/scripts/cutscene/originStory/script_VaatiAppearsAgain.inc b/data/scripts/cutscene/originStory/script_VaatiAppearsAgain.inc index 26990404..8e9cce5d 100644 --- a/data/scripts/cutscene/originStory/script_VaatiAppearsAgain.inc +++ b/data/scripts/cutscene/originStory/script_VaatiAppearsAgain.inc @@ -2,9 +2,9 @@ SCRIPT_START script_VaatiAppearsAgain BeginBlock DoPostScriptAction 0x0008 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 - Call sub_0807F354 + Call SetPriorityPlayerEvent EndBlock WaitForSyncFlagAndClear 0x00000002 Call sub_08066C94 @@ -14,9 +14,9 @@ SCRIPT_START script_VaatiAppearsAgain SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 Wait 0x0014 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x001c - Call sub_0807F2D4 + Call WaitForFrameHiBit DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 @@ -25,7 +25,7 @@ SCRIPT_START script_VaatiAppearsAgain SetEntitySpeed 0x0200 DoPostScriptAction 0x000d DoPostScriptAction 0x0000 - _0807ECC4 0x0030 + WalkSouth 0x0030 SetSyncFlag 0x00000004 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_EzloCapOutro.inc b/data/scripts/cutscene/outro/script_EzloCapOutro.inc index a923e5cc..e2b67e76 100644 --- a/data/scripts/cutscene/outro/script_EzloCapOutro.inc +++ b/data/scripts/cutscene/outro/script_EzloCapOutro.inc @@ -2,16 +2,16 @@ SCRIPT_START script_EzloCapOutro BeginBlock SetEntitySpeed 0x0080 - SetEntity0x20 0x00000000 + SetEntityVelocity 0x00000000 DoPostScriptAction 0x0008 - _0807EB44 0x0000 + SetAnimationState 0x0000 Call sub_0807F714 MoveEntityToPlayer - CallWithArg sub_0807F98C, 0xfff00000 + CallWithArg SetEntityHeight, 0xfff00000 EndBlock - _0807E930 0x0023 + SetAnimation 0x0023 WaitForSyncFlagAndClear 0x00000010 - CallWithArg sub_0807F6E8, 0x00000008 + CallWithArg SetPlayerFlag, 0x00000008 DoPostScriptAction 0x0007 PlaySound SFX_SPARKLES ClearSyncFlag 0x00000800 @@ -22,7 +22,7 @@ SCRIPT_START script_EzloCapOutro SetSyncFlag 0x00000800 PlaySound SFX_143 _0807EF3C 0x0000, 0x0020 - _0807E930 0x001f + SetAnimation 0x001f SetSyncFlag 0x00000200 WaitForSyncFlagAndClear 0x00000010 Wait 0x0078 diff --git a/data/scripts/cutscene/outro/script_EzloZeldaMagic.inc b/data/scripts/cutscene/outro/script_EzloZeldaMagic.inc index e7707cc8..59336b95 100644 --- a/data/scripts/cutscene/outro/script_EzloZeldaMagic.inc +++ b/data/scripts/cutscene/outro/script_EzloZeldaMagic.inc @@ -3,7 +3,7 @@ SCRIPT_START script_EzloZeldaMagic BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - CallWithArg sub_0807F994, 0x0000fff8 + CallWithArg SetSpriteOffset, 0x0000fff8 EndBlock WaitForSyncFlag 0x00000020 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/outro/script_GuardStoneOutro1.inc b/data/scripts/cutscene/outro/script_GuardStoneOutro1.inc index bdfb1c15..fbd46660 100644 --- a/data/scripts/cutscene/outro/script_GuardStoneOutro1.inc +++ b/data/scripts/cutscene/outro/script_GuardStoneOutro1.inc @@ -2,17 +2,17 @@ SCRIPT_START script_GuardStoneOutro1 BeginBlock DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x0010 + SetAnimationState 0x0004 + SetAnimation 0x0010 EndBlock WaitForSyncFlag 0x00000001 - _0807E930 0x0002 + SetAnimation 0x0002 WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0004 Wait 0x003c script_0800A80C: - _0807E930 0x0001 + SetAnimation 0x0001 Wait 0x001e - _0807E930 0x0003 + SetAnimation 0x0003 Wait 0x001e Jump script_0800A80C diff --git a/data/scripts/cutscene/outro/script_GuardStoneOutro2.inc b/data/scripts/cutscene/outro/script_GuardStoneOutro2.inc index 59f06757..02015418 100644 --- a/data/scripts/cutscene/outro/script_GuardStoneOutro2.inc +++ b/data/scripts/cutscene/outro/script_GuardStoneOutro2.inc @@ -2,17 +2,17 @@ SCRIPT_START script_GuardStoneOutro2 BeginBlock DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x0010 + SetAnimationState 0x0004 + SetAnimation 0x0010 EndBlock WaitForSyncFlag 0x00000001 - _0807E930 0x0002 + SetAnimation 0x0002 WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x0004 Wait 0x003c script_0800A848: - _0807E930 0x0001 + SetAnimation 0x0001 Wait 0x0014 - _0807E930 0x0003 + SetAnimation 0x0003 Wait 0x0014 Jump script_0800A848 diff --git a/data/scripts/cutscene/outro/script_GuardStoneOutro3.inc b/data/scripts/cutscene/outro/script_GuardStoneOutro3.inc index f7d9c800..e65ac209 100644 --- a/data/scripts/cutscene/outro/script_GuardStoneOutro3.inc +++ b/data/scripts/cutscene/outro/script_GuardStoneOutro3.inc @@ -2,17 +2,17 @@ SCRIPT_START script_GuardStoneOutro3 BeginBlock DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x0010 + SetAnimationState 0x0004 + SetAnimation 0x0010 EndBlock WaitForSyncFlag 0x00000001 - _0807E930 0x0002 + SetAnimation 0x0002 WaitForSyncFlagAndClear 0x00000008 DoPostScriptAction 0x0004 Wait 0x003c script_0800A884: - _0807E930 0x0001 + SetAnimation 0x0001 Wait 0x000a - _0807E930 0x0003 + SetAnimation 0x0003 Wait 0x000a Jump script_0800A884 diff --git a/data/scripts/cutscene/outro/script_MaidStoneOutro1.inc b/data/scripts/cutscene/outro/script_MaidStoneOutro1.inc index 46f28809..74ac7962 100644 --- a/data/scripts/cutscene/outro/script_MaidStoneOutro1.inc +++ b/data/scripts/cutscene/outro/script_MaidStoneOutro1.inc @@ -2,8 +2,8 @@ SCRIPT_START script_MaidStoneOutro1 BeginBlock DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x0008 + SetAnimationState 0x0004 + SetAnimation 0x0008 EndBlock WaitForSyncFlag 0x00000001 DoPostScriptAction 0x0000 @@ -11,8 +11,8 @@ SCRIPT_START script_MaidStoneOutro1 DoPostScriptAction 0x0004 Wait 0x003c script_0800A8C0: - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x0019 - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x0019 Jump script_0800A8C0 diff --git a/data/scripts/cutscene/outro/script_MaidStoneOutro2.inc b/data/scripts/cutscene/outro/script_MaidStoneOutro2.inc index f25c8c27..c4143c26 100644 --- a/data/scripts/cutscene/outro/script_MaidStoneOutro2.inc +++ b/data/scripts/cutscene/outro/script_MaidStoneOutro2.inc @@ -2,8 +2,8 @@ SCRIPT_START script_MaidStoneOutro2 BeginBlock DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x0008 + SetAnimationState 0x0004 + SetAnimation 0x0008 EndBlock WaitForSyncFlag 0x00000001 DoPostScriptAction 0x0000 @@ -11,8 +11,8 @@ SCRIPT_START script_MaidStoneOutro2 DoPostScriptAction 0x0004 Wait 0x003c script_0800A8FC: - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x000f - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x000f Jump script_0800A8FC diff --git a/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc b/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc index 83ef8867..ba35737d 100644 --- a/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc +++ b/data/scripts/cutscene/outro/script_MinishEzloGoodbye.inc @@ -4,38 +4,38 @@ SCRIPT_START script_MinishEzloGoodbye SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - _0807EB44 0x0004 + SetAnimationState 0x0004 CallWithArg sub_0807F3D8, 0x00000000 EndBlock WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0004 Wait 0x001e - _0807EB44 0x0002 + SetAnimationState 0x0002 CallWithArg sub_0807F3D8, 0x00000000 Wait 0x0006 - _0807EB44 0x0000 + SetAnimationState 0x0000 CallWithArg sub_0807F3D8, 0x00000000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 - _0807EB44 0x0002 + SetAnimationState 0x0002 CallWithArg sub_0807F3D8, 0x00000000 Wait 0x0014 - _0807EB44 0x0004 + SetAnimationState 0x0004 CallWithArg sub_0807F3D8, 0x00000000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 - _0807E930 0x000c - Call sub_0807F2D4 + SetAnimation 0x000c + Call WaitForFrameHiBit Call sub_08094B94 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 - _0807E930 0x000f - Call sub_0807F2D4 + SetAnimation 0x000f + Call WaitForFrameHiBit SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 CallWithArg sub_080960C4, script_Object6AEzloFinalMagic - _0807E930 0x0012 - Call sub_0807F2D4 + SetAnimation 0x0012 + Call WaitForFrameHiBit Wait 0x001e SetSyncFlag 0x00000020 StopBgm diff --git a/data/scripts/cutscene/outro/script_MinishEzloOutro.inc b/data/scripts/cutscene/outro/script_MinishEzloOutro.inc index 55f29440..b82f4618 100644 --- a/data/scripts/cutscene/outro/script_MinishEzloOutro.inc +++ b/data/scripts/cutscene/outro/script_MinishEzloOutro.inc @@ -4,26 +4,26 @@ SCRIPT_START script_MinishEzloOutro DoPostScriptAction 0x0008 SetEntitySpeed 0x0080 DoPostScriptAction 0x000b - _0807EB44 0x0004 + SetAnimationState 0x0004 CallWithArg sub_0807F3D8, 0x00000000 EndBlock WaitForSyncFlagAndClear 0x00000002 - _0807E930 0x000e + SetAnimation 0x000e DoPostScriptAction 0x0007 - Call sub_0807F2D4 + Call WaitForFrameHiBit DoPostScriptAction 0x0004 SetSyncFlag 0x00000040 WaitForSyncFlagAndClear 0x00000002 - _0807E930 0x000c - Call sub_0807F2D4 + SetAnimation 0x000c + Call WaitForFrameHiBit SetSyncFlag 0x00000040 WaitForSyncFlagAndClear 0x00000002 - _0807E930 0x000f - Call sub_0807F2D4 + SetAnimation 0x000f + Call WaitForFrameHiBit SetSyncFlag 0x00000040 WaitForSyncFlagAndClear 0x00000002 - _0807E930 0x000c - Call sub_0807F2D4 + SetAnimation 0x000c + Call WaitForFrameHiBit SetSyncFlag 0x00000040 WaitForSyncFlagAndClear 0x00000002 CallWithArg sub_080960C4, script_EzloZeldaMagic diff --git a/data/scripts/cutscene/outro/script_Npc4EDHCEntrance.inc b/data/scripts/cutscene/outro/script_Npc4EDHCEntrance.inc index 3f04796f..0b71e502 100644 --- a/data/scripts/cutscene/outro/script_Npc4EDHCEntrance.inc +++ b/data/scripts/cutscene/outro/script_Npc4EDHCEntrance.inc @@ -1,7 +1,7 @@ @ Outro NPC4E Fix DHC Entrance SCRIPT_START script_Npc4EDHCEntrance BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetEntityPositionRelative 0x0198, 0x01c8 Call sub_0807F844 diff --git a/data/scripts/cutscene/outro/script_Npc4EDHCThrone.inc b/data/scripts/cutscene/outro/script_Npc4EDHCThrone.inc index 4349136f..793d59c2 100644 --- a/data/scripts/cutscene/outro/script_Npc4EDHCThrone.inc +++ b/data/scripts/cutscene/outro/script_Npc4EDHCThrone.inc @@ -1,7 +1,7 @@ @ Outro NPC4E Fix DHC Throne SCRIPT_START script_Npc4EDHCThrone BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetEntityPositionRelative 0x0088, 0x0068 Call sub_0807F844 diff --git a/data/scripts/cutscene/outro/script_Npc4EFixedEverything.inc b/data/scripts/cutscene/outro/script_Npc4EFixedEverything.inc index f92b36db..e1e7e5fb 100644 --- a/data/scripts/cutscene/outro/script_Npc4EFixedEverything.inc +++ b/data/scripts/cutscene/outro/script_Npc4EFixedEverything.inc @@ -1,19 +1,19 @@ @ Outro NPC4E Fixed everything SCRIPT_START script_Npc4EFixedEverything BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetEntityPositionRelative 0x0088, 0x0148 Call sub_0807F844 _0807E8E4_3 - CallWithArg sub_0807F6E8, 0x00000008 - CallWithArg sub_0807F75C, 0x00a80088 + CallWithArg SetPlayerFlag, 0x00000008 + CallWithArg SetPlayerPos, 0x00a80088 PlaySound SFX_APPARATE EndBlock Wait 0x0078 _0807F0B4 0x0001 SetEntityPositionRelative 0x0088, 0x0078 - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder MessageFromTargetPos 0x1664, 0x0000 WaitUntilTextboxCloses MessageFromTargetPos 0x165e, 0x000e diff --git a/data/scripts/cutscene/outro/script_Npc4EHyruleCastleEntrance.inc b/data/scripts/cutscene/outro/script_Npc4EHyruleCastleEntrance.inc index 97e8bc47..e974cfe8 100644 --- a/data/scripts/cutscene/outro/script_Npc4EHyruleCastleEntrance.inc +++ b/data/scripts/cutscene/outro/script_Npc4EHyruleCastleEntrance.inc @@ -1,7 +1,7 @@ @ Outro NPC4E Fix Hyrule Castle Entrance SCRIPT_START script_Npc4EHyruleCastleEntrance BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetEntityPositionRelative 0x00d8, 0x01c8 Call sub_0807F844 diff --git a/data/scripts/cutscene/outro/script_Npc4EHyruleCastleThrone.inc b/data/scripts/cutscene/outro/script_Npc4EHyruleCastleThrone.inc index 890d3814..9509aee2 100644 --- a/data/scripts/cutscene/outro/script_Npc4EHyruleCastleThrone.inc +++ b/data/scripts/cutscene/outro/script_Npc4EHyruleCastleThrone.inc @@ -1,7 +1,7 @@ @ Outro NPC4E Fix Hyrule Castle Throne SCRIPT_START script_Npc4EHyruleCastleThrone BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetEntityPositionRelative 0x0088, 0x0070 Call sub_0807F844 diff --git a/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc b/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc index 06f842dd..75cd30d5 100644 --- a/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc +++ b/data/scripts/cutscene/outro/script_Npc4EMinishPortalClosing.inc @@ -7,7 +7,7 @@ SCRIPT_START script_Npc4EMinishPortalClosing SetSyncFlag 0x00000040 WaitForSyncFlagAndClear 0x00000080 OffsetEntityPosition 0x0000, 0xffe0 - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder Wait 0x003c CallWithArg DeleteManager36, 0x00000001 _0807F0C8 0x0000, 0x0000 @@ -28,7 +28,7 @@ SCRIPT_START script_Npc4EMinishPortalClosing SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 OffsetEntityPosition 0x0000, 0x0020 - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder WaitForSyncFlagAndClear 0x00000010 StartPlayerScript script_PlayerGetGreenCap WaitForSyncFlagAndClear 0x00000001 @@ -38,7 +38,7 @@ SCRIPT_START script_Npc4EMinishPortalClosing MessageFromTargetPos 0x1663, 0x000e WaitUntilTextboxCloses OffsetEntityPosition 0x0000, 0xffe0 - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 SetSyncFlag 0x00000002 @@ -53,7 +53,7 @@ SCRIPT_START script_Npc4EMinishPortalClosing Wait 0x0078 Call sub_0808D280 Wait 0x0078 - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade5 WaitForFadeFinish Call sub_0807FB94 @ Roll Credits @@ -65,6 +65,6 @@ SCRIPT_START script_Npc4EMinishPortalClosing DoFade4 WaitForFadeFinish Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc b/data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc index 83c7004d..1e34a26f 100644 --- a/data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc +++ b/data/scripts/cutscene/outro/script_Npc4EMinishWoods.inc @@ -1,7 +1,7 @@ @ Outro NPC4E Minish Woods SCRIPT_START script_Npc4EMinishWoods BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetEntityPositionRelative 0x0378, 0x0178 Call sub_0807F844 diff --git a/data/scripts/cutscene/outro/script_Npc4EMtCrenel.inc b/data/scripts/cutscene/outro/script_Npc4EMtCrenel.inc index 22d244b2..91889416 100644 --- a/data/scripts/cutscene/outro/script_Npc4EMtCrenel.inc +++ b/data/scripts/cutscene/outro/script_Npc4EMtCrenel.inc @@ -1,7 +1,7 @@ @ Outro NPC4E Mt. Crenel SCRIPT_START script_Npc4EMtCrenel BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetEntityPositionRelative 0x0128, 0x0058 Call sub_0807F844 diff --git a/data/scripts/cutscene/outro/script_Npc4EOutro.inc b/data/scripts/cutscene/outro/script_Npc4EOutro.inc index 844ac95f..9dfe61d8 100644 --- a/data/scripts/cutscene/outro/script_Npc4EOutro.inc +++ b/data/scripts/cutscene/outro/script_Npc4EOutro.inc @@ -1,12 +1,12 @@ @ Outro NPC4E SCRIPT_START script_Npc4EOutro BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetEntityPositionRelative 0x0088, 0x0080 Call sub_0807F844 _0807E8E4_3 - CallWithArg sub_0807F75C, 0x00a80088 + CallWithArg SetPlayerPos, 0x00a80088 EndBlock Wait 0x003c StartPlayerScript script_PlayerAtOutro @@ -26,7 +26,7 @@ SCRIPT_START script_Npc4EOutro SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000040 SetSyncFlag 0x00000004 - Call sub_0807F3F8 + Call CreatePlayerExclamationMark WaitForSyncFlagAndClear 0x00000080 MessageFromTargetPos 0x165a, 0x000e WaitUntilTextboxCloses diff --git a/data/scripts/cutscene/outro/script_Npc4ESanctuaryEntrance.inc b/data/scripts/cutscene/outro/script_Npc4ESanctuaryEntrance.inc index a9f2a329..2b2e2bb6 100644 --- a/data/scripts/cutscene/outro/script_Npc4ESanctuaryEntrance.inc +++ b/data/scripts/cutscene/outro/script_Npc4ESanctuaryEntrance.inc @@ -1,7 +1,7 @@ @ Outro NPC4E DHC Fix Sanctuary entrance SCRIPT_START script_Npc4ESanctuaryEntrance BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetEntityPositionRelative 0x0088, 0x0148 Call sub_0807F844 diff --git a/data/scripts/cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc b/data/scripts/cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc index 9cbea7ad..0430d9ce 100644 --- a/data/scripts/cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc +++ b/data/scripts/cutscene/outro/script_Npc4EUnfreezeCastleStaff.inc @@ -1,19 +1,19 @@ @ Outro NPC4E Unfreeze castle staff SCRIPT_START script_Npc4EUnfreezeCastleStaff BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetEntityPositionRelative 0x00f8, 0x01b8 Call sub_0807F844 EndBlock Wait 0x003c PlaySound SFX_EVAPORATE - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade7 WaitForFadeFinish SetSyncFlag 0x00000001 PlaySound SFX_APPARATE - _0807E778 0x0002 + SetFadeTime 0x0002 DoFade6 WaitForFadeFinish Wait 0x001e diff --git a/data/scripts/cutscene/outro/script_Object6AEzloDismounting.inc b/data/scripts/cutscene/outro/script_Object6AEzloDismounting.inc index e97a4de3..322badb2 100644 --- a/data/scripts/cutscene/outro/script_Object6AEzloDismounting.inc +++ b/data/scripts/cutscene/outro/script_Object6AEzloDismounting.inc @@ -3,7 +3,7 @@ SCRIPT_START script_Object6AEzloDismounting BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - CallWithArg sub_0807F994, 0x0000fff8 + CallWithArg SetSpriteOffset, 0x0000fff8 EndBlock WaitForSyncFlag 0x00000800 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/outro/script_Object6AEzloFinalMagic.inc b/data/scripts/cutscene/outro/script_Object6AEzloFinalMagic.inc index 93468e3d..1ec52e42 100644 --- a/data/scripts/cutscene/outro/script_Object6AEzloFinalMagic.inc +++ b/data/scripts/cutscene/outro/script_Object6AEzloFinalMagic.inc @@ -3,7 +3,7 @@ SCRIPT_START script_Object6AEzloFinalMagic BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - CallWithArg sub_0807F994, 0x0000fff8 + CallWithArg SetSpriteOffset, 0x0000fff8 PlaySound SFX_SPARKLES EndBlock WaitForSyncFlag 0x00000020 diff --git a/data/scripts/cutscene/outro/script_Object6AMinishCapOutro.inc b/data/scripts/cutscene/outro/script_Object6AMinishCapOutro.inc index 3b5704d0..b9e0c5ff 100644 --- a/data/scripts/cutscene/outro/script_Object6AMinishCapOutro.inc +++ b/data/scripts/cutscene/outro/script_Object6AMinishCapOutro.inc @@ -4,21 +4,21 @@ SCRIPT_START script_Object6AMinishCapOutro SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - _0807E930 0x0005 - Call sub_0807F348 + SetAnimation 0x0005 + Call SetPriorityMessage EndBlock WaitForSyncFlagAndClear 0x00000008 PlaySound SFX_SPARKLES ClearSyncFlag 0x00000800 CallWithArg sub_080960C4, script_Object6AEzloDismounting - _0807E930 0x0002 + SetAnimation 0x0002 Call sub_08094B0C _0807EDD4 0x0068, 0x0088 Call sub_08094B80 SetSyncFlag 0x00000100 WaitForSyncFlagAndClear 0x00000008 Call sub_08094B3C - _0807E930 0x0004 + SetAnimation 0x0004 SetSyncFlag 0x00000800 PlaySound SFX_143 SetSyncFlag 0x00000100 diff --git a/data/scripts/cutscene/outro/script_Object6AOctorok1.inc b/data/scripts/cutscene/outro/script_Object6AOctorok1.inc index 71af9ff5..4ee080a3 100644 --- a/data/scripts/cutscene/outro/script_Object6AOctorok1.inc +++ b/data/scripts/cutscene/outro/script_Object6AOctorok1.inc @@ -1,9 +1,9 @@ @ Outro OBJECT_6A Octorok 1 SCRIPT_START script_Object6AOctorok1 BeginBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0007 - _0807E930 0x0001 + SetAnimation 0x0001 EndBlock WaitForSyncFlagAndClear 0x00000001 Call CreateDust diff --git a/data/scripts/cutscene/outro/script_Object6AOctorok2.inc b/data/scripts/cutscene/outro/script_Object6AOctorok2.inc index 1a823f2d..83c0bd16 100644 --- a/data/scripts/cutscene/outro/script_Object6AOctorok2.inc +++ b/data/scripts/cutscene/outro/script_Object6AOctorok2.inc @@ -1,9 +1,9 @@ @ Outro OBJECT_6A Octorok 2 SCRIPT_START script_Object6AOctorok2 BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0007 - _0807E930 0x0002 + SetAnimation 0x0002 EndBlock WaitForSyncFlagAndClear 0x00000002 Call CreateDust diff --git a/data/scripts/cutscene/outro/script_Object6AOctorok3.inc b/data/scripts/cutscene/outro/script_Object6AOctorok3.inc index 9e970232..abacdb6f 100644 --- a/data/scripts/cutscene/outro/script_Object6AOctorok3.inc +++ b/data/scripts/cutscene/outro/script_Object6AOctorok3.inc @@ -1,9 +1,9 @@ @ Outro OBJECT_6A Octorok 3 SCRIPT_START script_Object6AOctorok3 BeginBlock - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0007 - _0807E930 0x0000 + SetAnimation 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000004 Call CreateDust diff --git a/data/scripts/cutscene/outro/script_Object6AOctorok4.inc b/data/scripts/cutscene/outro/script_Object6AOctorok4.inc index ce4e0e15..f52e72f8 100644 --- a/data/scripts/cutscene/outro/script_Object6AOctorok4.inc +++ b/data/scripts/cutscene/outro/script_Object6AOctorok4.inc @@ -1,9 +1,9 @@ @ Outro OBJECT_6A Octorok 4 SCRIPT_START script_Object6AOctorok4 BeginBlock - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0007 - _0807E930 0x0003 + SetAnimation 0x0003 EndBlock WaitForSyncFlagAndClear 0x00000008 Call CreateDust diff --git a/data/scripts/cutscene/outro/script_Object6ATektite1.inc b/data/scripts/cutscene/outro/script_Object6ATektite1.inc index a8599488..9a83a445 100644 --- a/data/scripts/cutscene/outro/script_Object6ATektite1.inc +++ b/data/scripts/cutscene/outro/script_Object6ATektite1.inc @@ -1,9 +1,9 @@ @ Outro OBJECT_6A Tektite 1 SCRIPT_START script_Object6ATektite1 BeginBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0007 - _0807E930 0x0000 + SetAnimation 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000001 Call CreateDust diff --git a/data/scripts/cutscene/outro/script_Object6ATektite2.inc b/data/scripts/cutscene/outro/script_Object6ATektite2.inc index 3f666062..417ac068 100644 --- a/data/scripts/cutscene/outro/script_Object6ATektite2.inc +++ b/data/scripts/cutscene/outro/script_Object6ATektite2.inc @@ -1,9 +1,9 @@ @ Outro OBJECT_6A Tektite 2 SCRIPT_START script_Object6ATektite2 BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0007 - _0807E930 0x0000 + SetAnimation 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000002 Call CreateDust diff --git a/data/scripts/cutscene/outro/script_Object6ATektite3.inc b/data/scripts/cutscene/outro/script_Object6ATektite3.inc index c088f9cf..6f877941 100644 --- a/data/scripts/cutscene/outro/script_Object6ATektite3.inc +++ b/data/scripts/cutscene/outro/script_Object6ATektite3.inc @@ -1,9 +1,9 @@ @ Outro OBJECT_6A Tektite 3 SCRIPT_START script_Object6ATektite3 BeginBlock - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0007 - _0807E930 0x0000 + SetAnimation 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000004 Call CreateDust diff --git a/data/scripts/cutscene/outro/script_Object6ATektite4.inc b/data/scripts/cutscene/outro/script_Object6ATektite4.inc index 68f9a905..94669abf 100644 --- a/data/scripts/cutscene/outro/script_Object6ATektite4.inc +++ b/data/scripts/cutscene/outro/script_Object6ATektite4.inc @@ -1,9 +1,9 @@ @ Outro OBJECT_6A Tektite 4 SCRIPT_START script_Object6ATektite4 BeginBlock - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0007 - _0807E930 0x0000 + SetAnimation 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000008 Call CreateDust diff --git a/data/scripts/cutscene/outro/script_Object6ATheLittleHat.inc b/data/scripts/cutscene/outro/script_Object6ATheLittleHat.inc index da1e3fab..248601ee 100644 --- a/data/scripts/cutscene/outro/script_Object6ATheLittleHat.inc +++ b/data/scripts/cutscene/outro/script_Object6ATheLittleHat.inc @@ -4,7 +4,7 @@ SCRIPT_START script_Object6ATheLittleHat SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - _0807E930 0x0000 + SetAnimation 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000008 Call sub_08094B80 diff --git a/data/scripts/cutscene/outro/script_Object6AZeldaMagic.inc b/data/scripts/cutscene/outro/script_Object6AZeldaMagic.inc index b4456a55..612c3676 100644 --- a/data/scripts/cutscene/outro/script_Object6AZeldaMagic.inc +++ b/data/scripts/cutscene/outro/script_Object6AZeldaMagic.inc @@ -3,7 +3,7 @@ SCRIPT_START script_Object6AZeldaMagic BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - CallWithArg sub_0807F994, 0x0000fff8 + CallWithArg SetSpriteOffset, 0x0000fff8 EndBlock WaitForSyncFlag 0x00001000 DoPostScriptAction 0x0006 diff --git a/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc b/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc index c04735bc..8c2918ff 100644 --- a/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc +++ b/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerAtEzlo SetEntitySpeed 0x0100 EndBlock _0807EDD4 0x0088, 0x0080 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/outro/script_PlayerAtOutro.inc b/data/scripts/cutscene/outro/script_PlayerAtOutro.inc index 3aef29f7..fc956c5a 100644 --- a/data/scripts/cutscene/outro/script_PlayerAtOutro.inc +++ b/data/scripts/cutscene/outro/script_PlayerAtOutro.inc @@ -1,13 +1,13 @@ @ Player at Outro SCRIPT_START script_PlayerAtOutro EndBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x000a - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x000a - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x000a - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x000a SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc b/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc index 9b99fff7..96af6e03 100644 --- a/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc +++ b/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc @@ -2,24 +2,24 @@ SCRIPT_START script_PlayerGetGreenCap BeginBlock Call sub_08094BE0 - CallWithArg sub_0807F238, 0x0000045b + CallWithArg SetPlayerAnimation2, 0x0000045b PlaySound SFX_109 EndBlock - Call sub_0807F304 + Call WaitForPlayerFrameHiBit Wait 0x005a SetSyncFlag 0x00000008 BeginBlock - CallWithArg sub_0807F6F8, 0x00000008 - CallWithArg sub_0807F238, 0x000008e4 + CallWithArg ResetPlayerFlag, 0x00000008 + CallWithArg SetPlayerAnimation2, 0x000008e4 EndBlock - Call sub_0807F304 - _0807EB44 0x0004 + Call WaitForPlayerFrameHiBit + SetAnimationState 0x0004 DoPostScriptAction 0x0000 Wait 0x003c - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 Wait 0x0004 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc b/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc index a209c670..b10a0ba5 100644 --- a/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc +++ b/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc @@ -3,8 +3,8 @@ SCRIPT_START script_PlayerSayGoodbye BeginBlock SetEntitySpeed 0x0080 EndBlock - _0807EC64 0x0020 - _0807EB44 0x0000 + WalkNorth 0x0020 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/cutscene/outro/script_ZeldaGoodbye.inc b/data/scripts/cutscene/outro/script_ZeldaGoodbye.inc index 470bddb0..3fb8ff81 100644 --- a/data/scripts/cutscene/outro/script_ZeldaGoodbye.inc +++ b/data/scripts/cutscene/outro/script_ZeldaGoodbye.inc @@ -4,11 +4,11 @@ SCRIPT_START script_ZeldaGoodbye SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000040 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000080 WaitForSyncFlagAndClear 0x80000000 diff --git a/data/scripts/cutscene/outro/script_ZeldaOutro.inc b/data/scripts/cutscene/outro/script_ZeldaOutro.inc index d639a25a..92bbcf27 100644 --- a/data/scripts/cutscene/outro/script_ZeldaOutro.inc +++ b/data/scripts/cutscene/outro/script_ZeldaOutro.inc @@ -4,21 +4,21 @@ SCRIPT_START script_ZeldaOutro SetEntitySpeed 0x0100 DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000004 BeginBlock DoPostScriptAction 0x0004 - Call sub_0807F3F8 + Call CreatePlayerExclamationMark EndBlock Wait 0x003c - _0807EC94 0x0010 - _0807EB44 0x0002 + WalkEast 0x0010 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000080 WaitForSyncFlagAndClear 0x00000004 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000080 WaitForSyncFlagAndClear 0x00000004 @@ -26,7 +26,7 @@ SCRIPT_START script_ZeldaOutro Wait 0x003c SetSyncFlag 0x00000080 WaitForSyncFlagAndClear 0x00000004 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 PlaySound SFX_SPARKLES CallWithArg sub_080960C4, script_Object6AZeldaMagic diff --git a/data/scripts/cutscene/reveal/script_08013494.inc b/data/scripts/cutscene/reveal/script_08013494.inc index fb3b1606..9eb632de 100644 --- a/data/scripts/cutscene/reveal/script_08013494.inc +++ b/data/scripts/cutscene/reveal/script_08013494.inc @@ -1,7 +1,7 @@ @ Something during Sanctuary Vaati cutscene? Called from script_VaatiSanctuary SCRIPT_START script_08013494 BeginBlock - _0807E930 0x0000 + SetAnimation 0x0000 SetEntitySpeed 0x0200 Call nullsub_527 Call sub_08094B80 diff --git a/data/scripts/cutscene/reveal/script_FakeKingDaltus.inc b/data/scripts/cutscene/reveal/script_FakeKingDaltus.inc index 4f9e3683..82f50ec8 100644 --- a/data/scripts/cutscene/reveal/script_FakeKingDaltus.inc +++ b/data/scripts/cutscene/reveal/script_FakeKingDaltus.inc @@ -1,10 +1,10 @@ @ Sanctuary King Daltus SCRIPT_START script_FakeKingDaltus BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - Call sub_0807F338 + Call DeleteHitbox EndBlock WaitForSyncFlagAndClear 0x00000008 Call sub_08061F94 diff --git a/data/scripts/cutscene/reveal/script_Object3EPictureBackRoom.inc b/data/scripts/cutscene/reveal/script_Object3EPictureBackRoom.inc index 9d81e3fb..a0dc7eb6 100644 --- a/data/scripts/cutscene/reveal/script_Object3EPictureBackRoom.inc +++ b/data/scripts/cutscene/reveal/script_Object3EPictureBackRoom.inc @@ -2,16 +2,16 @@ SCRIPT_START script_Object3EPictureBackRoom CheckPlayerInRegion 0x0098, 0x0038, 0x2060 JumpIfNot script_Object3EPictureBackRoom - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StartPlayerScript script_PlayerAtPicture WaitForSyncFlagAndClear 0x00000002 - _0807EB28 0x1601 + EzloMessage 0x1601 WaitUntilTextboxCloses StartPlayerScript script_PlayerMoveToPicture WaitForSyncFlagAndClear 0x00000002 - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade5 WaitForFadeFinish LoadRoomEntityList gUnk_080F5680 @@ -22,7 +22,7 @@ SCRIPT_START script_Object3EPictureBackRoom Call sub_0807F844 CameraTargetEntity Call sub_080536B8 - _0807E864 + SetPlayerIdle Call sub_0807DF28 WaitForFadeFinish MessageFromTargetPos 0x1602, 0x000c @@ -44,29 +44,29 @@ SCRIPT_START script_Object3EPictureBackRoom SetSyncFlag 0x00000020 WaitForSyncFlagAndClear 0x00000040 SetFadeMask 0xffff7fff - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade5 WaitForFadeFinish StopBgm _0807E858 0x0000 Wait 0x003c CameraTargetPlayer - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder MessageFromTargetPos 0x1604, 0x0007 WaitUntilTextboxCloses SetFadeMask 0xffffffff - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade4 WaitForFadeFinish SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 - _0807EB28 0x1605 + EzloMessage 0x1605 WaitUntilTextboxCloses SetLocalFlag 0x0078 PlayBgm BGM_CASTLE_COLLAPSE SetGlobalFlag 0x005d Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc b/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc index 69a76452..f7760051 100644 --- a/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc +++ b/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerAtPicture EndBlock DoPostScriptAction 0x0001 _0807EDD4 0x0098, 0x0058 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 Call sub_080791BC diff --git a/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc b/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc index ed636572..c44f1f6c 100644 --- a/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc +++ b/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerDistanceFromVaati DoPostScriptAction 0x000d EndBlock DoPostScriptAction 0x0001 - _0807ECC4 0x0020 + WalkSouth 0x0020 DoPostScriptAction 0x0000 DoPostScriptAction 0x000c SetSyncFlag 0x00000002 diff --git a/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc b/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc index 91f9285d..b40b2b9e 100644 --- a/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc +++ b/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc @@ -1,13 +1,13 @@ @ Sanctuary Player faint from Vaati attack SCRIPT_START script_PlayerFaintAgain Call sub_0807F1C4 - Call sub_0807F2D4 + Call WaitForFrameHiBit Call sub_0807F1E8 - Call sub_0807F2D4 + Call WaitForFrameHiBit SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 PlaySound SFX_PLY_JUMP - _0807EB44 0x0004 + SetAnimationState 0x0004 Call sub_0807F210 _0807EF3C 0x0200, 0x0020 DoPostScriptAction 0x0000 diff --git a/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc b/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc index 76237d60..b2af1dd9 100644 --- a/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc +++ b/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerMoveToPicture SetEntitySpeed 0x0080 EndBlock DoPostScriptAction 0x0001 - _0807EC64 0x0020 + WalkNorth 0x0020 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 Call sub_080791BC diff --git a/data/scripts/cutscene/reveal/script_VaatiSanctuary.inc b/data/scripts/cutscene/reveal/script_VaatiSanctuary.inc index ca88188c..7619f004 100644 --- a/data/scripts/cutscene/reveal/script_VaatiSanctuary.inc +++ b/data/scripts/cutscene/reveal/script_VaatiSanctuary.inc @@ -1,10 +1,10 @@ @ Sanctuary Vaati SCRIPT_START script_VaatiSanctuary BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0008 DoPostScriptAction 0x000b - Call sub_0807F338 + Call DeleteHitbox EndBlock WaitForSyncFlagAndClear 0x00000020 SetEntityPositionRelative 0x0098, 0x0048 @@ -22,7 +22,7 @@ SCRIPT_START script_VaatiSanctuary WaitForSyncFlagAndClear 0x00000080 SetSyncFlag 0x00000040 WaitForSyncFlagAndClear 0x00000020 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000040 WaitForSyncFlagAndClear 0x00000020 diff --git a/data/scripts/cutscene/takeover/script_GuardTakeover.inc b/data/scripts/cutscene/takeover/script_GuardTakeover.inc index 42af6737..edb5e826 100644 --- a/data/scripts/cutscene/takeover/script_GuardTakeover.inc +++ b/data/scripts/cutscene/takeover/script_GuardTakeover.inc @@ -2,13 +2,13 @@ SCRIPT_START script_GuardTakeover BeginBlock SetEntitySpeed 0x0080 - _0807EB44 0x0000 - _0807E930 0x0000 + SetAnimationState 0x0000 + SetAnimation 0x0000 EndBlock WaitForSyncFlag 0x00000040 - _0807E930 0x0004 - _0807EC64 0x00c0 - _0807E930 0x0000 + SetAnimation 0x0004 + WalkNorth 0x00c0 + SetAnimation 0x0000 Wait 0x003c SetSyncFlag 0x00000080 WaitForSyncFlag 0x00000200 diff --git a/data/scripts/cutscene/takeover/script_KingDaltusTakeover.inc b/data/scripts/cutscene/takeover/script_KingDaltusTakeover.inc index f4263027..3f76d704 100644 --- a/data/scripts/cutscene/takeover/script_KingDaltusTakeover.inc +++ b/data/scripts/cutscene/takeover/script_KingDaltusTakeover.inc @@ -1,7 +1,7 @@ @ Western Wood Cutscene King Daltus SCRIPT_START script_KingDaltusTakeover BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000004 diff --git a/data/scripts/cutscene/takeover/script_MinisterPothoTakeover.inc b/data/scripts/cutscene/takeover/script_MinisterPothoTakeover.inc index c3f81281..83d69479 100644 --- a/data/scripts/cutscene/takeover/script_MinisterPothoTakeover.inc +++ b/data/scripts/cutscene/takeover/script_MinisterPothoTakeover.inc @@ -1,7 +1,7 @@ @ Western Wood Cutscene Minister Potho SCRIPT_START script_MinisterPothoTakeover BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock WaitForSyncFlagAndClear 0x00000001 diff --git a/data/scripts/cutscene/takeover/script_Object69Takeover.inc b/data/scripts/cutscene/takeover/script_Object69Takeover.inc index d8ff3cae..773a0fef 100644 --- a/data/scripts/cutscene/takeover/script_Object69Takeover.inc +++ b/data/scripts/cutscene/takeover/script_Object69Takeover.inc @@ -6,31 +6,31 @@ SCRIPT_START script_Object69Takeover script_08015BF0: CheckPlayerInRegion 0x0160, 0x0020, 0x3040 JumpIfNot script_08015BF0 - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 Call sub_0807FBC4 StartPlayerScript script_PlayerAtTakeover WaitForSyncFlagAndClear 0x00000100 CameraTargetPlayer - _0807E778 0x0004 + SetFadeTime 0x0004 _0807E80C 0x00000000 WaitForFadeFinish StopBgm Call sub_08053BE8 BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807FBC4 CameraTargetPlayer - _0807E778 0x0100 + SetFadeTime 0x0100 DoFade4 _0807E80C 0x00000000 EndBlock - _0807E778 0x0004 + SetFadeTime 0x0004 _0807E800 0x00000000 WaitForFadeFinish PlayBGM - _0807EB28 0x131f + EzloMessage 0x131f WaitUntilTextboxCloses .ifdef JP SetLocalFlag 0x009b @@ -47,7 +47,7 @@ script_08015BF0: .endif Call sub_0807FBCC Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/takeover/script_Object69TakeoverCutscene.inc b/data/scripts/cutscene/takeover/script_Object69TakeoverCutscene.inc index 10feed63..dea65804 100644 --- a/data/scripts/cutscene/takeover/script_Object69TakeoverCutscene.inc +++ b/data/scripts/cutscene/takeover/script_Object69TakeoverCutscene.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object69TakeoverCutscene SetEntityPositionRelative 0x0088, 0x0068 CameraTargetEntity EndBlock - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade4 WaitForFadeFinish Wait 0x003c @@ -38,14 +38,14 @@ SCRIPT_START script_Object69TakeoverCutscene WaitForSyncFlagAndClear 0x00000008 SetSyncFlag 0x00000010 WaitForSyncFlagAndClear 0x00000020 - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade5 WaitForFadeFinish SetSyncFlag 0x00000010 LoadRoomEntityList gUnk_080FCE30 StopBgm Wait 0x0078 - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade4 WaitForFadeFinish PlayBgm BGM_DIGGING_CAVE @@ -59,7 +59,7 @@ SCRIPT_START script_Object69TakeoverCutscene Wait 0x003c SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000008 - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade5 WaitForFadeFinish StopBgm diff --git a/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc b/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc index 551025aa..034b3197 100644 --- a/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc +++ b/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc @@ -5,15 +5,15 @@ SCRIPT_START script_PlayerAtTakeover EndBlock DoPostScriptAction 0x0001 _0807EDD4 0x0168, 0x0058 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 - CallWithArg sub_0807F238, 0x000003c5 - Call sub_0807F304 + CallWithArg SetPlayerAnimation2, 0x000003c5 + Call WaitForPlayerFrameHiBit MessageFromTargetPos 0x1318, 0x000c WaitUntilTextboxCloses - CallWithArg sub_0807F238, 0x000003c9 - Call sub_0807F304 - _0807EB44 0x0004 + CallWithArg SetPlayerAnimation2, 0x000003c9 + Call WaitForPlayerFrameHiBit + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000100 Call sub_080791BC diff --git a/data/scripts/cutscene/takeover/script_VaatiTakeover.inc b/data/scripts/cutscene/takeover/script_VaatiTakeover.inc index 14796d93..efd31a2b 100644 --- a/data/scripts/cutscene/takeover/script_VaatiTakeover.inc +++ b/data/scripts/cutscene/takeover/script_VaatiTakeover.inc @@ -2,7 +2,7 @@ SCRIPT_START script_VaatiTakeover BeginBlock DoPostScriptAction 0x0008 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x001d EndBlock @@ -12,9 +12,9 @@ SCRIPT_START script_VaatiTakeover DoPostScriptAction 0x0007 DoPostScriptAction 0x001e Wait 0x0014 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x001c - Call sub_0807F2D4 + Call WaitForFrameHiBit DoPostScriptAction 0x0000 SetSyncFlag 0x00000020 WaitForSyncFlagAndClear 0x00000010 diff --git a/data/scripts/dhc/script_GuardCellLeft.inc b/data/scripts/dhc/script_GuardCellLeft.inc index a44c7ed5..58efe5f0 100644 --- a/data/scripts/dhc/script_GuardCellLeft.inc +++ b/data/scripts/dhc/script_GuardCellLeft.inc @@ -1,7 +1,7 @@ @ DHC left Guard at King cell SCRIPT_START script_GuardCellLeft BeginBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 CallWithArg sub_0807F3D8, 0x00000000 DoPostScriptAction 0x000a _0807E9D4 @@ -9,10 +9,10 @@ SCRIPT_START script_GuardCellLeft script_0800E44C: CheckEntityInteractType JumpIfNot script_0800E44C - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 MessageNoOverlap 0x2405 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800E44C diff --git a/data/scripts/dhc/script_GuardCellRight.inc b/data/scripts/dhc/script_GuardCellRight.inc index 9f85273b..83ddbacf 100644 --- a/data/scripts/dhc/script_GuardCellRight.inc +++ b/data/scripts/dhc/script_GuardCellRight.inc @@ -1,7 +1,7 @@ @ DHC right Guard at King cell SCRIPT_START script_GuardCellRight BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 CallWithArg sub_0807F3D8, 0x00000000 DoPostScriptAction 0x000a _0807E9D4 @@ -9,12 +9,12 @@ SCRIPT_START script_GuardCellRight script_0800E484: CheckEntityInteractType JumpIfNot script_0800E484 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 MessageNoOverlap 0x2407 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800E484 diff --git a/data/scripts/dhc/script_GuardStone1.inc b/data/scripts/dhc/script_GuardStone1.inc index 506abd38..ae42371d 100644 --- a/data/scripts/dhc/script_GuardStone1.inc +++ b/data/scripts/dhc/script_GuardStone1.inc @@ -1,21 +1,21 @@ @ DHC Guard stone SCRIPT_START script_GuardStone1 BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x000a CheckLocalFlag 0x0094 JumpIf script_0800E1D0 - _0807E930 0x0010 + SetAnimation 0x0010 CallWithArg sub_0807F8E8, 0x00000001 EndBlock script_0800E176: CheckRoomFlag 0x0001 JumpIfNot script_0800E176 - _0807E864 + SetPlayerIdle Wait 0x001e DoPostScriptAction 0x0010 PlaySound SFX_1C9 - _0807E930 0x0015 + SetAnimation 0x0015 Wait 0x003c PlaySound SFX_1CA DoPostScriptAction 0x0010 @@ -25,8 +25,8 @@ script_0800E176: DoPostScriptAction 0x0004 Wait 0x001e DoPostScriptAction 0x0000 - _0807EB8C - _0807EB74 + FaceAwayFromPlayer + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 Wait 0x000a MessageNoOverlap 0x2401 @@ -35,15 +35,15 @@ script_0800E176: script_0800E1D0: CallWithArg sub_0807F3D8, 0x00000000 _0807E9D4 - _0807E878 + EnablePlayerControl EndBlock script_0800E1E0: CheckEntityInteractType JumpIfNot script_0800E1E0 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 MessageNoOverlap 0x2401 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800E1E0 diff --git a/data/scripts/dhc/script_GuardStone2.inc b/data/scripts/dhc/script_GuardStone2.inc index d7e613af..71483148 100644 --- a/data/scripts/dhc/script_GuardStone2.inc +++ b/data/scripts/dhc/script_GuardStone2.inc @@ -2,30 +2,30 @@ SCRIPT_START script_GuardStone2 BeginBlock SetEntitySpeed 0x0100 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x000a CheckLocalFlag 0x0073 JumpIfNot script_0800E232 _0807E9D4 SetEntityPositionRelative 0x0070, 0x0168 - _0807EB44 0x0002 + SetAnimationState 0x0002 CallWithArg sub_0807F3D8, 0x00000000 EndBlock Jump script_0800E32E script_0800E232: CheckLocalFlag 0x0095 JumpIf script_0800E29A - _0807E930 0x0010 + SetAnimation 0x0010 CallWithArg sub_0807F8E8, 0x00000002 EndBlock script_0800E24A: CheckRoomFlag 0x0002 JumpIfNot script_0800E24A - _0807E864 + SetPlayerIdle Wait 0x001e DoPostScriptAction 0x0010 PlaySound SFX_1C9 - _0807E930 0x0015 + SetAnimation 0x0015 Wait 0x003c PlaySound SFX_1CA DoPostScriptAction 0x0010 @@ -35,15 +35,15 @@ script_0800E24A: DoPostScriptAction 0x0004 Wait 0x001e DoPostScriptAction 0x0000 - _0807EB8C - _0807EB74 + FaceAwayFromPlayer + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 SetLocalFlag 0x0095 script_0800E29A: DoPostScriptAction 0x0000 CallWithArg sub_0807F3D8, 0x00000000 _0807E9D4 - _0807E878 + EnablePlayerControl EndBlock script_0800E2AE: EndBlock @@ -59,33 +59,33 @@ script_0800E2AE: _0807E9DC SetLocalFlag 0x0073 EndBlock - _0807EB44 0x0000 + SetAnimationState 0x0000 CallWithArg sub_0807F3D8, 0x00000004 _0807EDD4 0x0088, 0x0168 - _0807EB44 0x0006 + SetAnimationState 0x0006 CallWithArg sub_0807F3D8, 0x00000004 _0807EDD4 0x0070, 0x0168 - _0807EB74 + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 _0807E9D4 Jump script_0800E32E script_0800E312: - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 EndBlock MessageNoOverlap 0x2404 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800E2AE script_0800E32E: CheckEntityInteractType JumpIfNot script_0800E32E - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 MessageNoOverlap 0x2403 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800E32E .2byte 0x0000 diff --git a/data/scripts/dhc/script_KingDaltusStone.inc b/data/scripts/dhc/script_KingDaltusStone.inc index ee83a886..23e38f64 100644 --- a/data/scripts/dhc/script_KingDaltusStone.inc +++ b/data/scripts/dhc/script_KingDaltusStone.inc @@ -1,23 +1,23 @@ @ DHC King Daltus stone SCRIPT_START script_KingDaltusStone BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x000a CheckLocalFlag 0x0071 JumpIf script_0800E3E8 CheckLocalFlag 0x0096 JumpIf script_0800E3BE - _0807E930 0x000c + SetAnimation 0x000c CallWithArg sub_0807F8E8, 0x00000000 EndBlock script_0800E37A: CheckRoomFlag 0x0000 JumpIfNot script_0800E37A - _0807E864 + SetPlayerIdle Wait 0x001e DoPostScriptAction 0x0010 PlaySound SFX_1C9 - _0807E930 0x000d + SetAnimation 0x000d Wait 0x003c PlaySound SFX_1CA DoPostScriptAction 0x0010 @@ -27,36 +27,36 @@ script_0800E37A: DoPostScriptAction 0x0004 Wait 0x001e DoPostScriptAction 0x0000 - _0807EB74 + FacePlayer SetLocalFlag 0x0096 script_0800E3BE: DoPostScriptAction 0x0000 _0807E9D4 - _0807E878 + EnablePlayerControl EndBlock script_0800E3C8: CheckEntityInteractType JumpIfNot script_0800E3C8 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x240c WaitUntilTextboxCloses Wait 0x000f GivePlayerItem 0x0053 WaitPlayerGetItem SetLocalFlag 0x0071 - _0807E878 + EnablePlayerControl script_0800E3E8: _0807E9D4 - _0807E878 + EnablePlayerControl EndBlock script_0800E3EE: CheckEntityInteractType JumpIfNot script_0800E3EE - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x240d WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800E3EE diff --git a/data/scripts/dhc/script_MinishterPothoStone.inc b/data/scripts/dhc/script_MinishterPothoStone.inc index b01fa4fa..caf8f250 100644 --- a/data/scripts/dhc/script_MinishterPothoStone.inc +++ b/data/scripts/dhc/script_MinishterPothoStone.inc @@ -1,21 +1,21 @@ @ DHC Minister Potho stone SCRIPT_START script_MinishterPothoStone BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x000a CheckLocalFlag 0x0093 JumpIf script_0800E12E - _0807E930 0x0008 + SetAnimation 0x0008 CallWithArg sub_0807F8E8, 0x00000000 EndBlock script_0800E0DE: CheckRoomFlag 0x0000 JumpIfNot script_0800E0DE - _0807E864 + SetPlayerIdle Wait 0x001e DoPostScriptAction 0x0010 PlaySound SFX_1C9 - _0807E930 0x0009 + SetAnimation 0x0009 Wait 0x003c PlaySound SFX_1CA DoPostScriptAction 0x0010 @@ -25,24 +25,24 @@ script_0800E0DE: DoPostScriptAction 0x0004 Wait 0x001e DoPostScriptAction 0x0000 - _0807EB8C - _0807EB74 + FaceAwayFromPlayer + FacePlayer Wait 0x000a MessageNoOverlap 0x2402 WaitUntilTextboxCloses SetLocalFlag 0x0093 script_0800E12E: Call sub_080668F0 - _0807E878 + EnablePlayerControl EndBlock script_0800E138: CheckEntityInteractType JumpIfNot script_0800E138 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x2402 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800E138 .2byte 0x0000 diff --git a/data/scripts/dhc/script_MinisterPothoCell.inc b/data/scripts/dhc/script_MinisterPothoCell.inc index 92639487..bbb05921 100644 --- a/data/scripts/dhc/script_MinisterPothoCell.inc +++ b/data/scripts/dhc/script_MinisterPothoCell.inc @@ -1,17 +1,17 @@ @ DHC Minister Potho in King cell SCRIPT_START script_MinisterPothoCell BeginBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x000a Call sub_080668F0 EndBlock script_0800E41A: CheckEntityInteractType JumpIfNot script_0800E41A - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x2406 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800E41A diff --git a/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc b/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc index 7862193e..67c2d035 100644 --- a/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc +++ b/data/scripts/dhc/script_Npc4EAfterDefeatingV2.inc @@ -5,28 +5,28 @@ SCRIPT_START script_Npc4EAfterDefeatingV2 script_0800DB7C: CallWithArg sub_0807F6B4, 0x000000a0 JumpIf script_0800DB7C - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 _0807F0B4 0x0001 SetEntityPositionRelative 0x0078, 0x0078 CameraTargetEntity - Call sub_0807F5C0 - _0807EB28 0x1648 + Call WaitForCameraTouchRoomBorder + EzloMessage 0x1648 WaitUntilTextboxCloses Call sub_0804D7EC SetSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000002 Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_0800DBCA: CheckRoomFlag 0x0000 JumpIfNot script_0800DBCA - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 Call sub_0804D810 - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c StartPlayerScript script_PlayerRescuedZelda WaitForSyncFlagAndClear 0x00000004 @@ -37,9 +37,9 @@ script_0800DBCA: WaitForSyncFlagAndClear 0x00000006 MessageFromTargetPos 0x1643, 0x0002 WaitUntilTextboxCloses - _0807EB28 0x1645 + EzloMessage 0x1645 WaitUntilTextboxCloses - Call sub_0807F3F8 + Call CreatePlayerExclamationMark SetSyncFlag 0x00000001 StopBgm Call sub_08094F98 diff --git a/data/scripts/dhc/script_Npc4ECastleCollapsing.inc b/data/scripts/dhc/script_Npc4ECastleCollapsing.inc index 901ce247..1f2ae59d 100644 --- a/data/scripts/dhc/script_Npc4ECastleCollapsing.inc +++ b/data/scripts/dhc/script_Npc4ECastleCollapsing.inc @@ -4,12 +4,12 @@ SCRIPT_START script_Npc4ECastleCollapsing PlayBgm BGM_CASTLE_COLLAPSE StartPlayerScript script_PlayerStonesFall WaitForSyncFlagAndClear 0x00000006 - _0807EB28 0x1646 + EzloMessage 0x1646 WaitUntilTextboxCloses SetSyncFlag 0x00000001 StartPlayerScript script_PlayerCastleCollapsing CameraTargetPlayer - _0807E778 0x0004 + SetFadeTime 0x0004 _0807E80C 0x00000000 WaitForFadeFinish CallWithArg DeleteManager36, 0x00000001 @@ -17,6 +17,6 @@ SCRIPT_START script_Npc4ECastleCollapsing SetLocalFlag 0x0079 CallWithArg sub_0806DA1C, 0x00000002 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/dhc/script_Npc4EV3Defeated.inc b/data/scripts/dhc/script_Npc4EV3Defeated.inc index c2f60ee1..09f214d5 100644 --- a/data/scripts/dhc/script_Npc4EV3Defeated.inc +++ b/data/scripts/dhc/script_Npc4EV3Defeated.inc @@ -5,7 +5,7 @@ script_0800A0FE: CheckGlobalFlag 0x0051 JumpIfNot script_0800A0FE BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 StopBgm .ifndef EU @@ -14,10 +14,10 @@ script_0800A0FE: SetEntityPositionRelative 0x00b0, 0x0058 Call sub_0807F844 _0807E8E4_3 - CallWithArg sub_0807F75C, 0x00d00060 + CallWithArg SetPlayerPos, 0x00d00060 CallWithArg sub_08094AE8, script_Object6AV3DefeatedMinishCap PlaySound SFX_APPARATE - _0807E778 0x0002 + SetFadeTime 0x0002 DoFade6 EndBlock WaitForFadeFinish diff --git a/data/scripts/dhc/script_Object69BallAndChainSoldierRoom.inc b/data/scripts/dhc/script_Object69BallAndChainSoldierRoom.inc index b583efe7..4bdf7ea5 100644 --- a/data/scripts/dhc/script_Object69BallAndChainSoldierRoom.inc +++ b/data/scripts/dhc/script_Object69BallAndChainSoldierRoom.inc @@ -1,7 +1,7 @@ @ DHC OBJECT_69 Towards Vaati in room with Ball&Chain soldier SCRIPT_START script_Object69BallAndChainSoldierRoom BeginBlock - Call sub_0807F354 + Call SetPriorityPlayerEvent EndBlock CheckLocalFlag 0x007c JumpIf script_0800E4FA @@ -17,7 +17,7 @@ script_0800E4B6: .endif JumpIfNot script_0800E4B6 BeginBlock - _0807E864 + SetPlayerIdle .ifdef JP .ifndef DEMO_JP Call SetPlayerEventPriority @@ -28,7 +28,7 @@ script_0800E4B6: .endif .endif EndBlock - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c MessageFromTarget 0x160c WaitUntilTextboxCloses @@ -36,7 +36,7 @@ script_0800E4B6: MessageFromTarget 0x160d WaitUntilTextboxCloses Wait 0x001e - _0807EB28 0x160e + EzloMessage 0x160e Wait 0x003c WaitUntilTextboxCloses BeginBlock @@ -52,7 +52,7 @@ script_0800E4B6: .endif .endif script_0800E4FA: - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 EndBlock SCRIPT_END diff --git a/data/scripts/dhc/script_Object69CastleEscape.inc b/data/scripts/dhc/script_Object69CastleEscape.inc index ffd72119..f75e5bc4 100644 --- a/data/scripts/dhc/script_Object69CastleEscape.inc +++ b/data/scripts/dhc/script_Object69CastleEscape.inc @@ -1,15 +1,15 @@ @ DHC OBJECT_69 trying to escape the collapsing castle SCRIPT_START script_Object69CastleEscape - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StartPlayerScript script_PlayerCastleEscape WaitForSyncFlagAndClear 0x00000001 WaitForSyncFlagAndClear 0x00000002 - _0807EB28 0x1647 + EzloMessage 0x1647 WaitUntilTextboxCloses SetLocalFlag 0x007a Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/dhc/script_Object69DarkNutsRoom.inc b/data/scripts/dhc/script_Object69DarkNutsRoom.inc index 44712e30..c2f30cae 100644 --- a/data/scripts/dhc/script_Object69DarkNutsRoom.inc +++ b/data/scripts/dhc/script_Object69DarkNutsRoom.inc @@ -7,17 +7,17 @@ SCRIPT_START script_Object69DarkNutsRoom script_0800E550: CheckPlayerInRegion 0x00a8, 0x00c0, 0x0880 JumpIfNot script_0800E550 - _0807E864 + SetPlayerIdle Wait 0x001e - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c PlaySound SFX_105 Wait 0x001e - _0807EB28 0x1622 + EzloMessage 0x1622 Call sub_08053494 SetLocalFlag 0x007e script_0800E582: - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_Object69KeatonsRoom.inc b/data/scripts/dhc/script_Object69KeatonsRoom.inc index ef855c7e..902cf230 100644 --- a/data/scripts/dhc/script_Object69KeatonsRoom.inc +++ b/data/scripts/dhc/script_Object69KeatonsRoom.inc @@ -7,15 +7,15 @@ SCRIPT_START script_Object69KeatonsRoom script_0800E510: CheckPlayerInRegion 0x00a8, 0x0178, 0x1080 JumpIfNot script_0800E510 - _0807E864 + SetPlayerIdle Wait 0x001e - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c PlaySound SFX_105 Wait 0x001e - _0807EB28 0x1617 + EzloMessage 0x1617 SetLocalFlag 0x007d script_0800E53C: - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/dhc/script_Object69KillDarkNut.inc b/data/scripts/dhc/script_Object69KillDarkNut.inc index 24b83cb0..23a85ddd 100644 --- a/data/scripts/dhc/script_Object69KillDarkNut.inc +++ b/data/scripts/dhc/script_Object69KillDarkNut.inc @@ -4,12 +4,12 @@ SCRIPT_START script_Object69KillDarkNut script_0800E5D8: CheckLocalFlag 0x0086 JumpIfNot script_0800E5D8 - _0807E864 + SetPlayerIdle Wait 0x003c SetIntVariable 0x00000905 - Call sub_0807F420 + Call LoadMenu SetRoomFlag 0x0001 Wait 0x001e - _0807E878 + EnablePlayerControl SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_Object69V1Defeated.inc b/data/scripts/dhc/script_Object69V1Defeated.inc index 5acee128..0fe8da38 100644 --- a/data/scripts/dhc/script_Object69V1Defeated.inc +++ b/data/scripts/dhc/script_Object69V1Defeated.inc @@ -5,11 +5,11 @@ script_0800DFB6: CheckRoomFlag 0x0001 JumpIfNot script_0800DFB6 StopBgm - _0807E864 + SetPlayerIdle Call sub_0807DF28 PlaySound SFX_EVAPORATE CallWithArg sub_0806DA1C, 0x00000004 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/dhc/script_Object69V2Defeated.inc b/data/scripts/dhc/script_Object69V2Defeated.inc index 9d356a54..ddd5df46 100644 --- a/data/scripts/dhc/script_Object69V2Defeated.inc +++ b/data/scripts/dhc/script_Object69V2Defeated.inc @@ -2,12 +2,12 @@ SCRIPT_START script_Object69V2Defeated BeginBlock Call sub_0807DF28 - _0807E864 + SetPlayerIdle EndBlock StopBgm StopBgm Wait 0x0078 - _0807EB28 0x1638 + EzloMessage 0x1638 WaitUntilTextboxCloses SetRoomFlag 0x0000 Wait 0x001e @@ -15,7 +15,7 @@ SCRIPT_START script_Object69V2Defeated StartPlayerScript script_PlayerV2Defeated WaitForSyncFlagAndClear 0x00000002 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_Object69V2Intro.inc b/data/scripts/dhc/script_Object69V2Intro.inc index a485ffb9..1e779703 100644 --- a/data/scripts/dhc/script_Object69V2Intro.inc +++ b/data/scripts/dhc/script_Object69V2Intro.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Object69V2Intro BeginBlock Call sub_0807DF28 - _0807E864 + SetPlayerIdle EndBlock StopBgm MessageFromTargetPos 0x1632, 0x0002 @@ -13,12 +13,12 @@ script_0800DFFE: JumpIfNot script_0800DFFE PlayBgm BGM_VAATI_TRANSFIGURED Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_0800E012: @ Defeated CheckRoomFlag 0x0002 JumpIfNot script_0800E012 - _0807E864 + SetPlayerIdle Call sub_0807DF28 SetLocalFlag 0x007b MessageFromTargetPos 0x1639, 0x000c @@ -27,7 +27,7 @@ script_0800E012: PlaySound SFX_EVAPORATE CallWithArg sub_0806DA1C, 0x00000005 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_Object69VaatiWithZelda.inc b/data/scripts/dhc/script_Object69VaatiWithZelda.inc index e66a3b15..930fbcf2 100644 --- a/data/scripts/dhc/script_Object69VaatiWithZelda.inc +++ b/data/scripts/dhc/script_Object69VaatiWithZelda.inc @@ -5,16 +5,16 @@ SCRIPT_START script_Object69VaatiWithZelda script_0800DA64: CheckPlayerInRegion 0x0078, 0x0148, 0x4040 JumpIfNot script_0800DA64 - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 _0807E8E4_0 - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c _0807F0B4 0x0004 SetEntityPositionRelative 0x0078, 0x0080 CameraTargetEntity - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder SetSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000002 MessageFromTargetPos 0x162d, 0x0002 @@ -24,24 +24,24 @@ script_0800DA64: MessageFromTargetPos 0x162e, 0x0002 WaitUntilTextboxCloses _0807E8E4_0 - CallWithArg sub_0807F75C, 0x00780138 + CallWithArg SetPlayerPos, 0x00780138 _0807F0B4 0x0004 CameraTargetPlayer - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder SetRoomFlag 0x0000 - Call sub_0807F40C + Call CreatePlayerQuestionMark Wait 0x001e _0807E8E4_1 Wait 0x000a _0807E8E4_3 Wait 0x000a _0807E8E4_2 - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c SetRoomFlag 0x0001 SetLocalFlag 0x0077 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_Object6AV3DefeatedMinishCap.inc b/data/scripts/dhc/script_Object6AV3DefeatedMinishCap.inc index 77dc7aaa..384e441c 100644 --- a/data/scripts/dhc/script_Object6AV3DefeatedMinishCap.inc +++ b/data/scripts/dhc/script_Object6AV3DefeatedMinishCap.inc @@ -4,15 +4,15 @@ SCRIPT_START script_Object6AV3DefeatedMinishCap SetEntitySpeed 0x0080 DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - _0807E930 0x0002 + SetAnimation 0x0002 SetEntityPositionRelative 0x00b0, 0x0080 - CallWithArg sub_0807F98C, 0xff800000 + CallWithArg SetEntityHeight, 0xff800000 CallWithArg sub_080960C4, script_Object6AV3DefeatedMinishCap2 EndBlock PlaySound SFX_SPARKLES _0807EF3C 0xff80, 0x0000 PlaySound SFX_143 - _0807E930 0x0004 + SetAnimation 0x0004 SetSyncFlag 0x00000002 Wait 0x003c SetSyncFlag 0x00000004 diff --git a/data/scripts/dhc/script_Object6AV3DefeatedMinishCap2.inc b/data/scripts/dhc/script_Object6AV3DefeatedMinishCap2.inc index 093a1833..200517d3 100644 --- a/data/scripts/dhc/script_Object6AV3DefeatedMinishCap2.inc +++ b/data/scripts/dhc/script_Object6AV3DefeatedMinishCap2.inc @@ -3,7 +3,7 @@ SCRIPT_START script_Object6AV3DefeatedMinishCap2 BeginBlock DoPostScriptAction 0x0007 DoPostScriptAction 0x000b - CallWithArg sub_0807F994, 0x0000fff8 + CallWithArg SetSpriteOffset, 0x0000fff8 EndBlock WaitForSyncFlag 0x00000002 DoPostScriptAction 0x0006 diff --git a/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc b/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc index 8c72e4c3..ee4b78c3 100644 --- a/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc +++ b/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc @@ -3,10 +3,10 @@ SCRIPT_START script_PlayerAfterDefeatingV2 BeginBlock SetEntitySpeed 0x0100 EndBlock - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x000d DoPostScriptAction 0x0000 - _0807ECC4 0x0010 + WalkSouth 0x0010 DoPostScriptAction 0x000c SetSyncFlag 0x00000004 Call sub_080791BC diff --git a/data/scripts/dhc/script_PlayerAtDarkNut1.inc b/data/scripts/dhc/script_PlayerAtDarkNut1.inc index fd697e62..e37bcc9a 100644 --- a/data/scripts/dhc/script_PlayerAtDarkNut1.inc +++ b/data/scripts/dhc/script_PlayerAtDarkNut1.inc @@ -3,13 +3,13 @@ SCRIPT_START script_PlayerAtDarkNut1 BeginBlock SetEntitySpeed 0x0140 SetEntityDirection 0x0000 - _0807E864 - Call sub_0807F354 + SetPlayerIdle + Call SetPriorityPlayerEvent EndBlock - WaitForPlayerAction0x17 + WaitForPlayerEnterRoom _0807E8E4_0 DoPostScriptAction 0x0001 Call sub_080752AC - _0807E878 + EnablePlayerControl Call sub_080791D0 SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerAtDarkNut2.inc b/data/scripts/dhc/script_PlayerAtDarkNut2.inc index 274f6746..60ee6ace 100644 --- a/data/scripts/dhc/script_PlayerAtDarkNut2.inc +++ b/data/scripts/dhc/script_PlayerAtDarkNut2.inc @@ -3,13 +3,13 @@ SCRIPT_START script_PlayerAtDarkNut2 BeginBlock SetEntitySpeed 0x0140 SetEntityDirection 0x0008 - _0807E864 - Call sub_0807F354 + SetPlayerIdle + Call SetPriorityPlayerEvent EndBlock - WaitForPlayerAction0x17 + WaitForPlayerEnterRoom _0807E8E4_1 DoPostScriptAction 0x0001 Call sub_080752AC - _0807E878 + EnablePlayerControl Call sub_080791D0 SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerAtDarkNut3.inc b/data/scripts/dhc/script_PlayerAtDarkNut3.inc index 8cd1c2c9..b092a4c7 100644 --- a/data/scripts/dhc/script_PlayerAtDarkNut3.inc +++ b/data/scripts/dhc/script_PlayerAtDarkNut3.inc @@ -3,13 +3,13 @@ SCRIPT_START script_PlayerAtDarkNut3 BeginBlock SetEntitySpeed 0x0140 SetEntityDirection 0x0010 - _0807E864 - Call sub_0807F354 + SetPlayerIdle + Call SetPriorityPlayerEvent EndBlock - WaitForPlayerAction0x17 + WaitForPlayerEnterRoom _0807E8E4_2 DoPostScriptAction 0x0001 Call sub_080752AC - _0807E878 + EnablePlayerControl Call sub_080791D0 SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerCastleCollapsing.inc b/data/scripts/dhc/script_PlayerCastleCollapsing.inc index dff8b0a0..509a5e68 100644 --- a/data/scripts/dhc/script_PlayerCastleCollapsing.inc +++ b/data/scripts/dhc/script_PlayerCastleCollapsing.inc @@ -3,7 +3,7 @@ SCRIPT_START script_PlayerCastleCollapsing BeginBlock SetEntitySpeed 0x0100 EndBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 _0807EEF4 0x0000, 0x0080 SetSyncFlag 0x00000004 diff --git a/data/scripts/dhc/script_PlayerCastleEscape.inc b/data/scripts/dhc/script_PlayerCastleEscape.inc index 997799ad..5f57f7d8 100644 --- a/data/scripts/dhc/script_PlayerCastleEscape.inc +++ b/data/scripts/dhc/script_PlayerCastleEscape.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerCastleEscape SetEntitySpeed 0x0100 EndBlock _0807EDD4 0x0198, 0x01c8 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/dhc/script_PlayerRescuedZelda.inc b/data/scripts/dhc/script_PlayerRescuedZelda.inc index 23a6112c..66d6d108 100644 --- a/data/scripts/dhc/script_PlayerRescuedZelda.inc +++ b/data/scripts/dhc/script_PlayerRescuedZelda.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerRescuedZelda EndBlock CallWithArg sub_0807F4F8, 0x000000a0 _0807EDD4 0x0078, 0x00a0 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 Call sub_080791BC diff --git a/data/scripts/dhc/script_PlayerStonesFall.inc b/data/scripts/dhc/script_PlayerStonesFall.inc index 5f9e57d1..12ba8a9d 100644 --- a/data/scripts/dhc/script_PlayerStonesFall.inc +++ b/data/scripts/dhc/script_PlayerStonesFall.inc @@ -1,10 +1,10 @@ @ Player after turning Zelda when stones fall SCRIPT_START script_PlayerStonesFall EndBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 - CallWithArg sub_0807F238, 0x000003c5 - Call sub_0807F304 + CallWithArg SetPlayerAnimation2, 0x000003c5 + Call WaitForPlayerFrameHiBit SetSyncFlag 0x00000004 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/dhc/script_Vaati1Intro.inc b/data/scripts/dhc/script_Vaati1Intro.inc index cbf2d189..3255d880 100644 --- a/data/scripts/dhc/script_Vaati1Intro.inc +++ b/data/scripts/dhc/script_Vaati1Intro.inc @@ -2,21 +2,21 @@ SCRIPT_START script_Vaati1Intro BeginBlock DoPostScriptAction 0x0008 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StopBgm _0807E8E4_2 Wait 0x005a - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c _0807E8E4_0 _0807F0B4 0x0001 CameraTargetEntity - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder Call sub_08066C94 Wait 0x00e9 DoPostScriptAction 0x0007 @@ -25,15 +25,15 @@ SCRIPT_START script_Vaati1Intro PlayBgm BGM_VAATI_REBORN DoPostScriptAction 0x0019 PlaySound SFX_198 - Call sub_0807F2D4 + Call WaitForFrameHiBit SetRoomFlag 0x0000 DoPostScriptAction 0x0008 Wait 0x0080 _0807F0B4 0x0004 CameraTargetPlayer - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder SetLocalFlag 0x0078 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/dhc/script_VaatiWithZelda.inc b/data/scripts/dhc/script_VaatiWithZelda.inc index 252052f3..1464b9a8 100644 --- a/data/scripts/dhc/script_VaatiWithZelda.inc +++ b/data/scripts/dhc/script_VaatiWithZelda.inc @@ -2,21 +2,21 @@ SCRIPT_START script_VaatiWithZelda BeginBlock DoPostScriptAction 0x0007 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0014 EndBlock WaitForSyncFlagAndClear 0x00000001 Wait 0x003c DoPostScriptAction 0x0004 Wait 0x003c - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x001c - Call sub_0807F2D4 + Call WaitForFrameHiBit DoPostScriptAction 0x0000 Wait 0x003c SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0014 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_ZeldaAfterDefeatingV2.inc b/data/scripts/dhc/script_ZeldaAfterDefeatingV2.inc index c52b1a81..8c2d1161 100644 --- a/data/scripts/dhc/script_ZeldaAfterDefeatingV2.inc +++ b/data/scripts/dhc/script_ZeldaAfterDefeatingV2.inc @@ -18,48 +18,48 @@ script_0800DCD0: StopBgm Call sub_08066E50 PlaySound SFX_1C9 - Call sub_0807F2D4 + Call WaitForFrameHiBit PlaySound SFX_1CA Wait 0x003c DoPostScriptAction 0x0004 PlayBgm BGM_SAVING_ZELDA Wait 0x0078 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 Wait 0x000a - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x000a - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x000a - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 Wait 0x003c SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 SetEntitySpeed 0x0100 _0807EEF4 0x0000, 0x0008 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 Wait 0x001e Call sub_08066E80 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 DoPostScriptAction 0x0004 Wait 0x003c - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 Wait 0x000a - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x000a - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x000a - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 diff --git a/data/scripts/dhc/script_ZeldaCastleEscape.inc b/data/scripts/dhc/script_ZeldaCastleEscape.inc index 83fd2afd..f8150ad9 100644 --- a/data/scripts/dhc/script_ZeldaCastleEscape.inc +++ b/data/scripts/dhc/script_ZeldaCastleEscape.inc @@ -1,7 +1,7 @@ @ DHC Zelda trying to escape the collapsing castle SCRIPT_START script_ZeldaCastleEscape BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetEntitySpeed 0x0100 DoPostScriptAction 0x000b @@ -13,7 +13,7 @@ SCRIPT_START script_ZeldaCastleEscape DoPostScriptAction 0x0007 EndBlock _0807EDD4 0x0198, 0x01a8 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 Call sub_08066D4C diff --git a/data/scripts/dhc/script_ZeldaStoneDHC.inc b/data/scripts/dhc/script_ZeldaStoneDHC.inc index 04ab862d..ae2bc504 100644 --- a/data/scripts/dhc/script_ZeldaStoneDHC.inc +++ b/data/scripts/dhc/script_ZeldaStoneDHC.inc @@ -2,7 +2,7 @@ SCRIPT_START script_ZeldaStoneDHC BeginBlock DoPostScriptAction 0x0007 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0014 EndBlock Wait 0x003c diff --git a/data/scripts/fow/script_MazaalMacroDefeated.inc b/data/scripts/fow/script_MazaalMacroDefeated.inc index 624a5513..694d5d25 100644 --- a/data/scripts/fow/script_MazaalMacroDefeated.inc +++ b/data/scripts/fow/script_MazaalMacroDefeated.inc @@ -1,12 +1,12 @@ @ Mazaal Macro when defeated SCRIPT_START script_MazaalMacroDefeated BeginBlock - _0807E864 + SetPlayerIdle EndBlock Wait 0x0078 - _0807E908 0x0004 + SetAction 0x0004 StartPlayerScript script_PlayerDefeatedMazaal WaitForSyncFlagAndClear 0x00000002 Wait 0x000c - _0807E908 0x0005 + SetAction 0x0005 SCRIPT_END diff --git a/data/scripts/fow/script_Object89Mazaal.inc b/data/scripts/fow/script_Object89Mazaal.inc index b5c522c0..75e0eb0b 100644 --- a/data/scripts/fow/script_Object89Mazaal.inc +++ b/data/scripts/fow/script_Object89Mazaal.inc @@ -2,11 +2,11 @@ SCRIPT_START script_Object89Mazaal BeginBlock EndBlock - _0807E888 + DisablePlayerControl Wait 0x0018 - _0807E864 + SetPlayerIdle StartPlayerScript script_PlayerAtMazaal WaitForSyncFlagAndClear 0x00000001 - _0807E908 0x0002 + SetAction 0x0002 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/fow/script_PlayerAtMazaal.inc b/data/scripts/fow/script_PlayerAtMazaal.inc index 75086071..d71de158 100644 --- a/data/scripts/fow/script_PlayerAtMazaal.inc +++ b/data/scripts/fow/script_PlayerAtMazaal.inc @@ -1,7 +1,7 @@ @ Player entering Mazaal SCRIPT_START script_PlayerAtMazaal BeginBlock - _0807EB44 0x0000 + SetAnimationState 0x0000 SetEntitySpeed 0x0140 EndBlock _0807EDD4 0x00b8, 0x0094 diff --git a/data/scripts/fow/script_PlayerDefeatedMazaal.inc b/data/scripts/fow/script_PlayerDefeatedMazaal.inc index 0f6d278a..89fb8ba8 100644 --- a/data/scripts/fow/script_PlayerDefeatedMazaal.inc +++ b/data/scripts/fow/script_PlayerDefeatedMazaal.inc @@ -4,15 +4,15 @@ SCRIPT_START script_PlayerDefeatedMazaal SetEntitySpeed 0x0140 EndBlock Wait 0x003c - _0807EB44 0x0004 + SetAnimationState 0x0004 Wait 0x000f - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x0012 - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x000c - _0807EB44 0x0000 + SetAnimationState 0x0000 Wait 0x0015 - _0807EB44 0x0004 + SetAnimationState 0x0004 Wait 0x0008 SetSyncFlag 0x00000002 _0807EDD4 0x0088, 0x0158 diff --git a/data/scripts/graveyard/script_DampeInside.inc b/data/scripts/graveyard/script_DampeInside.inc index 4f7b7f6f..c722ae55 100644 --- a/data/scripts/graveyard/script_DampeInside.inc +++ b/data/scripts/graveyard/script_DampeInside.inc @@ -2,8 +2,8 @@ SCRIPT_START script_DampeInside CheckEntityInteractType JumpIfNot script_080095DE - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0001 Call sub_0806BE84 WaitUntilTextboxCloses @@ -15,6 +15,6 @@ SCRIPT_START script_DampeInside WaitUntilTextboxCloses _0807F078 0x003c, 0x0001 script_08009622: - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0000 Jump script_080095DE diff --git a/data/scripts/graveyard/script_DampeOuside.inc b/data/scripts/graveyard/script_DampeOuside.inc index fd0d90a2..653e1ee5 100644 --- a/data/scripts/graveyard/script_DampeOuside.inc +++ b/data/scripts/graveyard/script_DampeOuside.inc @@ -20,8 +20,8 @@ script_08009646: script_08009660: CheckEntityInteractType JumpIfNot script_08009660 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0001 Call sub_0806BEC8 WaitUntilTextboxCloses @@ -31,6 +31,6 @@ script_08009660: _0807F078 0x003c, 0x0002 Call sub_0806BEFC script_0800968E: - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0000 Jump script_08009660 diff --git a/data/scripts/graveyard/script_GhostBrothers.inc b/data/scripts/graveyard/script_GhostBrothers.inc index 4f734e51..b9fed2f1 100644 --- a/data/scripts/graveyard/script_GhostBrothers.inc +++ b/data/scripts/graveyard/script_GhostBrothers.inc @@ -2,7 +2,7 @@ SCRIPT_START script_GhostBrothers BeginBlock Call sub_08065D00 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a DoPostScriptAction 0x0007 @@ -10,11 +10,11 @@ SCRIPT_START script_GhostBrothers script_0800975A: CheckEntityInteractType JumpIfNot script_0800975A - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 Call sub_08065F64 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800975A .2byte 0x0000 diff --git a/data/scripts/graveyard/script_Gina.inc b/data/scripts/graveyard/script_Gina.inc index 2f0422c7..bb427371 100644 --- a/data/scripts/graveyard/script_Gina.inc +++ b/data/scripts/graveyard/script_Gina.inc @@ -1,7 +1,7 @@ @ Graveyard Gina SCRIPT_START script_Gina BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a EndBlock @@ -10,19 +10,19 @@ SCRIPT_START script_Gina script_0800B934: CheckEntityInteractType JumpIfNot script_0800B934 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageFromTarget 0x3f19 WaitUntilTextboxCloses SetLocalFlag 0x005f - _0807E878 + EnablePlayerControl Jump script_0800B934 script_0800B94E: CheckEntityInteractType JumpIfNot script_0800B94E - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageFromTarget 0x3f1a WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800B94E diff --git a/data/scripts/graveyard/script_GraveyardHouseDoor.inc b/data/scripts/graveyard/script_GraveyardHouseDoor.inc index 631a1c19..c310b55e 100644 --- a/data/scripts/graveyard/script_GraveyardHouseDoor.inc +++ b/data/scripts/graveyard/script_GraveyardHouseDoor.inc @@ -9,8 +9,8 @@ SCRIPT_START script_GraveyardHouseDoor script_080096AC: CheckPlayerInRegion 0x0188, 0x01c0, 0x1020 JumpIfNot script_080096AC - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StartPlayerScript script_PlayerAtGraveyardHouseDoor WaitForSyncFlagAndClear 0x00000001 @@ -24,7 +24,7 @@ script_080096EC: CheckGlobalFlag 0x0020 JumpIfNot script_080096EC Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_080096FC: Call sub_0808692C SCRIPT_END diff --git a/data/scripts/graveyard/script_GreatFairyArrows.inc b/data/scripts/graveyard/script_GreatFairyArrows.inc index e43be1bd..9979e761 100644 --- a/data/scripts/graveyard/script_GreatFairyArrows.inc +++ b/data/scripts/graveyard/script_GreatFairyArrows.inc @@ -6,8 +6,8 @@ script_0800B618: CheckPlayerInRegion 0x0078, 0x00b8, 0x1060 JumpIfNot script_0800B618 Call sub_08079184 - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal StartPlayerScript script_PlayerAtGreatFairy WaitForSyncFlagAndClear 0x00000004 SetRoomFlag 0x0000 @@ -20,7 +20,7 @@ script_0800B618: JumpIfNot script_0800B684 Wait 0x000f MessageNoOverlap 0x0584 - CallWithArg sub_0807F970, 0x0000058b + CallWithArg CheckMessageEqual, 0x0000058b JumpIf script_0800B68E CallWithArg sub_08087424, 0x00000000 Wait 0x00b4 @@ -35,12 +35,12 @@ script_0800B68E: GivePlayerItem 0x0066 script_0800B698: WaitPlayerGetItem - _0807EB8C + FaceAwayFromPlayer Wait 0x001e MessageNoOverlap 0x057f WaitUntilTextboxCloses script_0800B6A6: - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade7 WaitForFadeFinish Call sub_080873FC @@ -49,5 +49,5 @@ script_0800B6A6: CameraTargetPlayer Wait 0x001e Call sub_0807DF50 - _0807E878 + EnablePlayerControl SCRIPT_END diff --git a/data/scripts/graveyard/script_KingGustav.inc b/data/scripts/graveyard/script_KingGustav.inc index f1b2e0fc..fc690dc8 100644 --- a/data/scripts/graveyard/script_KingGustav.inc +++ b/data/scripts/graveyard/script_KingGustav.inc @@ -2,34 +2,34 @@ SCRIPT_START script_KingGustav BeginBlock DoPostScriptAction 0x0008 - Call sub_0807F180 + Call SetCollisionLayer2 EndBlock script_0800D962: CheckPlayerInRegion 0x0118, 0x0038, 0x3050 JumpIfNot script_0800D962 - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StartPlayerScript script_PlayerAtKingGustav WaitForSyncFlagAndClear 0x00000001 Wait 0x003c - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x0007 PlaySound SFX_ELEMENT_FLOAT - SetEntity0x20 0xffff8000 + SetEntityVelocity 0xffff8000 MessageNoOverlap 0x1701 WaitUntilTextboxCloses SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 MessageNoOverlap 0x1702 WaitUntilTextboxCloses - SetEntity0x20 0x00010000 + SetEntityVelocity 0x00010000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 - _0807F050 0x006d + GiveKinstone 0x006d WaitPlayerGetItem - _0807EB28 0x1703 + EzloMessage 0x1703 WaitUntilTextboxCloses Wait 0x003c SetLocalFlag 0x0032 @@ -37,7 +37,7 @@ script_0800D962: SetIntVariable 0x00000001 Call sub_0806DA1C Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/graveyard/script_Object69CrowStealingKey.inc b/data/scripts/graveyard/script_Object69CrowStealingKey.inc index 9c0bf816..47cf61f9 100644 --- a/data/scripts/graveyard/script_Object69CrowStealingKey.inc +++ b/data/scripts/graveyard/script_Object69CrowStealingKey.inc @@ -1,10 +1,10 @@ @ Graveyard OBJECT_69 Crow stealing key cutscene SCRIPT_START script_Object69CrowStealingKey - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 PlaySound SFX_1F3 - Call sub_0807F40C + Call CreatePlayerQuestionMark _0807E8E4_1 Wait 0x000a _0807E8E4_3 @@ -21,9 +21,9 @@ SCRIPT_START script_Object69CrowStealingKey SetGlobalFlag 0x0020 _0807E8E4_3 Wait 0x001e - _0807EB28 0x2809 + EzloMessage 0x2809 WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/graveyard/script_Object69GetKeyBack.inc b/data/scripts/graveyard/script_Object69GetKeyBack.inc index 7c9b1a25..b6e1073b 100644 --- a/data/scripts/graveyard/script_Object69GetKeyBack.inc +++ b/data/scripts/graveyard/script_Object69GetKeyBack.inc @@ -35,13 +35,13 @@ script_080098E0: .endif .endif .endif - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 - _0807EB28 0x280a + EzloMessage 0x280a WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_08009910: DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/graveyard/script_Object97FirstCrow.inc b/data/scripts/graveyard/script_Object97FirstCrow.inc index 4c5e2c80..0c997c0f 100644 --- a/data/scripts/graveyard/script_Object97FirstCrow.inc +++ b/data/scripts/graveyard/script_Object97FirstCrow.inc @@ -1,10 +1,10 @@ @ Graveyard OBJECT_97 Crow stealing the key? first crow that makes link loose the key SCRIPT_START script_Object97FirstCrow BeginBlock - _0807E930 0x0003 + SetAnimation 0x0003 DoPostScriptAction 0x0007 SetEntitySpeed 0x0300 - Call sub_0807F348 + Call SetPriorityMessage EndBlock WaitForSyncFlagAndClear 0x00000002 PlaySound SFX_123 diff --git a/data/scripts/graveyard/script_Object97SecondCrow.inc b/data/scripts/graveyard/script_Object97SecondCrow.inc index 131fe158..169a3ff5 100644 --- a/data/scripts/graveyard/script_Object97SecondCrow.inc +++ b/data/scripts/graveyard/script_Object97SecondCrow.inc @@ -1,10 +1,10 @@ @ Graveyard OBJECT_97 Crow stealing the key? Second crow that picks up the key SCRIPT_START script_Object97SecondCrow BeginBlock - _0807E930 0x0003 + SetAnimation 0x0003 DoPostScriptAction 0x0007 SetEntitySpeed 0x0300 - Call sub_0807F348 + Call SetPriorityMessage EndBlock WaitForSyncFlagAndClear 0x00000008 Call sub_0809E0A0 diff --git a/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc b/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc index 5d193069..cbb2b2d3 100644 --- a/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc +++ b/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc @@ -3,7 +3,7 @@ SCRIPT_START script_PlayerAtGraveyardHouseDoor SetEntitySpeed 0x0080 DoPostScriptAction 0x0001 _0807EDD4 0x01a0, 0x01b0 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 Wait 0x000a DoPostScriptAction 0x0004 @@ -11,6 +11,6 @@ SCRIPT_START script_PlayerAtGraveyardHouseDoor SetSyncFlag 0x00000001 DoPostScriptAction 0x000d SetEntitySpeed 0x0100 - _0807ECC4 0x0010 + WalkSouth 0x0010 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/graveyard/script_PlayerAtKingGustav.inc b/data/scripts/graveyard/script_PlayerAtKingGustav.inc index d1214171..d2f7d3bd 100644 --- a/data/scripts/graveyard/script_PlayerAtKingGustav.inc +++ b/data/scripts/graveyard/script_PlayerAtKingGustav.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerAtKingGustav EndBlock DoPostScriptAction 0x0001 _0807EDD4 0x0118, 0x0060 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/graveyard/script_PlayerGetKeyStolen.inc b/data/scripts/graveyard/script_PlayerGetKeyStolen.inc index c805299a..6133e319 100644 --- a/data/scripts/graveyard/script_PlayerGetKeyStolen.inc +++ b/data/scripts/graveyard/script_PlayerGetKeyStolen.inc @@ -1,17 +1,17 @@ @ Player when crow steals key SCRIPT_START script_PlayerGetKeyStolen PlaySound SFX_PLY_VO6 - _0807EB44 0x0004 + SetAnimationState 0x0004 PlaySound SFX_86 Call sub_0807F36C SetEntitySpeed 0x0400 - _0807ECF4 0x0004 + WalkWest 0x0004 Call sub_0807F1E8 Wait 0x001e SetSyncFlag 0x00000040 WaitForSyncFlagAndClear 0x00000020 PlaySound SFX_PLY_JUMP - _0807EB44 0x0004 + SetAnimationState 0x0004 Call sub_0807F210 _0807EF3C 0x0200, 0x0020 DoPostScriptAction 0x0000 diff --git a/data/scripts/hyruleCastle/script_CastleMaid.inc b/data/scripts/hyruleCastle/script_CastleMaid.inc index 8e3726ba..90f05aed 100644 --- a/data/scripts/hyruleCastle/script_CastleMaid.inc +++ b/data/scripts/hyruleCastle/script_CastleMaid.inc @@ -2,7 +2,7 @@ SCRIPT_START script_CastleMaid BeginBlock _0807E9D4 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a CallWithArg sub_08064644, sub_0806464C diff --git a/data/scripts/hyruleCastle/script_GuardAtEntry.inc b/data/scripts/hyruleCastle/script_GuardAtEntry.inc index 9fa561fc..a7161461 100644 --- a/data/scripts/hyruleCastle/script_GuardAtEntry.inc +++ b/data/scripts/hyruleCastle/script_GuardAtEntry.inc @@ -3,18 +3,18 @@ SCRIPT_START script_GuardAtEntry BeginBlock _0807E9D4 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 CallWithArg sub_0807F3D8, 0x00000000 EndBlock script_08008DD8: CheckEntityInteractType JumpIfNot script_08008DD8 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 Call sub_080643D8 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 CallWithArg sub_0807F3D8, 0x00000000 Jump script_08008DD8 diff --git a/data/scripts/hyruleCastle/script_KingDaltus.inc b/data/scripts/hyruleCastle/script_KingDaltus.inc index 9c47505b..09965292 100644 --- a/data/scripts/hyruleCastle/script_KingDaltus.inc +++ b/data/scripts/hyruleCastle/script_KingDaltus.inc @@ -1,7 +1,7 @@ @ Hyrule Castle King Daltus SCRIPT_START script_KingDaltus BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 Call sub_0806672C DoPostScriptAction 0x000a diff --git a/data/scripts/hyruleCastle/script_MinisterPotho.inc b/data/scripts/hyruleCastle/script_MinisterPotho.inc index 7cea778c..6bd64932 100644 --- a/data/scripts/hyruleCastle/script_MinisterPotho.inc +++ b/data/scripts/hyruleCastle/script_MinisterPotho.inc @@ -1,7 +1,7 @@ @ Hyrule Castle Minister Potho SCRIPT_START script_MinisterPotho BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 script_0800927E: Call sub_080668F0 @@ -10,11 +10,11 @@ script_0800927E: script_0800928A: CheckEntityInteractType JumpIfNot script_0800928A - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08066904 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800928A .2byte 0x0000 diff --git a/data/scripts/hyruleCastle/script_Object69SanctuaryEntrance.inc b/data/scripts/hyruleCastle/script_Object69SanctuaryEntrance.inc index 9f2a3cd7..fa317824 100644 --- a/data/scripts/hyruleCastle/script_Object69SanctuaryEntrance.inc +++ b/data/scripts/hyruleCastle/script_Object69SanctuaryEntrance.inc @@ -2,12 +2,12 @@ SCRIPT_START script_Object69SanctuaryEntrance CheckPlayerInRegion 0x0088, 0x0048, 0x3030 JumpIfNot script_Object69SanctuaryEntrance - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StartPlayerScript script_PlayerAtSanctuaryEntrance WaitForSyncFlagAndClear 0x00000001 - _0807EB28 0x132d + EzloMessage 0x132d WaitUntilTextboxCloses .ifdef JP SetLocalFlag 0x0015 @@ -23,7 +23,7 @@ SCRIPT_START script_Object69SanctuaryEntrance .endif .endif Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleCastle/script_SmithAtCastle.inc b/data/scripts/hyruleCastle/script_SmithAtCastle.inc index 5aa10b08..2e354751 100644 --- a/data/scripts/hyruleCastle/script_SmithAtCastle.inc +++ b/data/scripts/hyruleCastle/script_SmithAtCastle.inc @@ -1,7 +1,7 @@ @ Hyrule Castle Smith SCRIPT_START script_SmithAtCastle BeginBlock - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 script_080092B2: _0807E9D4 @@ -10,10 +10,10 @@ script_080092B2: script_080092BA: CheckEntityInteractType JumpIfNot script_080092BA - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x105e WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_080092BA diff --git a/data/scripts/hyruleCastle/script_StoneZelda.inc b/data/scripts/hyruleCastle/script_StoneZelda.inc index 7c9cacd8..d17e0023 100644 --- a/data/scripts/hyruleCastle/script_StoneZelda.inc +++ b/data/scripts/hyruleCastle/script_StoneZelda.inc @@ -8,10 +8,10 @@ SCRIPT_START script_StoneZelda script_08009300: CheckEntityInteractType JumpIfNot script_08009300 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x1071 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08009300 .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GardGarden5.inc b/data/scripts/hyruleCastleGarden/script_GardGarden5.inc index 4d280b98..e12c1665 100644 --- a/data/scripts/hyruleCastleGarden/script_GardGarden5.inc +++ b/data/scripts/hyruleCastleGarden/script_GardGarden5.inc @@ -1,6 +1,6 @@ @ Guard in Castle garden? SCRIPT_START script_GardGarden5 BeginBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 Jump script_080119F6 .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GuardEntry1.inc b/data/scripts/hyruleCastleGarden/script_GuardEntry1.inc index 36724e50..3a6d1e8d 100644 --- a/data/scripts/hyruleCastleGarden/script_GuardEntry1.inc +++ b/data/scripts/hyruleCastleGarden/script_GuardEntry1.inc @@ -1,7 +1,7 @@ @ Intro Hyrule Castle Entrance Guard SCRIPT_START script_GuardEntry1 BeginBlock - _0807EB44 0x0006 + SetAnimationState 0x0006 script_080119F6: _0807E9D4 DoPostScriptAction 0x000a @@ -10,11 +10,11 @@ script_080119F6: script_08011A08: CheckEntityInteractType JumpIfNot script_08011A08 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 Call sub_08064428 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08011A08 .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GuardEntry2.inc b/data/scripts/hyruleCastleGarden/script_GuardEntry2.inc index 061b8cb7..53bfb506 100644 --- a/data/scripts/hyruleCastleGarden/script_GuardEntry2.inc +++ b/data/scripts/hyruleCastleGarden/script_GuardEntry2.inc @@ -1,7 +1,7 @@ @ Hyrule Castle Guard guarding entry to castle SCRIPT_START script_GuardEntry2 BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 _0807E9D4 DoPostScriptAction 0x000a CallWithArg sub_0807F3D8, 0x00000000 @@ -9,10 +9,10 @@ SCRIPT_START script_GuardEntry2 script_08011A44: CheckEntityInteractType JumpIfNot script_08011A44 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 MessageFromTarget 0x1320 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08011A44 diff --git a/data/scripts/hyruleCastleGarden/script_GuardEntry3.inc b/data/scripts/hyruleCastleGarden/script_GuardEntry3.inc index c1b2985d..af4c3020 100644 --- a/data/scripts/hyruleCastleGarden/script_GuardEntry3.inc +++ b/data/scripts/hyruleCastleGarden/script_GuardEntry3.inc @@ -1,7 +1,7 @@ @ Hyrule Castle Guard guarding entry to garden SCRIPT_START script_GuardEntry3 BeginBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 _0807E9D4 DoPostScriptAction 0x000a CallWithArg sub_0807F3D8, 0x00000000 @@ -9,18 +9,18 @@ SCRIPT_START script_GuardEntry3 script_08011A7C: CheckEntityInteractType JumpIfNot script_08011A7C - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 CallWithArg sub_080644B4, 0x00000006 JumpIf script_08011AFA MessageFromTarget 0x1320 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08011A7C .2byte 0x0000 BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 _0807E9D4 DoPostScriptAction 0x000a CallWithArg sub_0807F3D8, 0x00000000 @@ -28,11 +28,11 @@ script_08011A7C: script_08011AC4: CheckEntityInteractType JumpIfNot script_08011AC4 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 MessageFromTarget 0x1322 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08011AC4 diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden1.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden1.inc index ac2385f2..f623a1c7 100644 --- a/data/scripts/hyruleCastleGarden/script_GuardGarden1.inc +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden1.inc @@ -1,6 +1,6 @@ @ Guard in Castle garden? SCRIPT_START script_GuardGarden1 BeginBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 Jump script_0801196A .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden2.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden2.inc index 72a8627b..fb2c48b0 100644 --- a/data/scripts/hyruleCastleGarden/script_GuardGarden2.inc +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden2.inc @@ -1,6 +1,6 @@ @ Guard in Castle garden? SCRIPT_START script_GuardGarden2 BeginBlock - _0807EB44 0x0006 + SetAnimationState 0x0006 Jump script_0801196A .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden3.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden3.inc index c59e34cc..7f7dc3a1 100644 --- a/data/scripts/hyruleCastleGarden/script_GuardGarden3.inc +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden3.inc @@ -1,7 +1,7 @@ @ Intro Hyrule Castle Garden Guard SCRIPT_START script_GuardGarden3 BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 script_0801196A: _0807E9D4 DoPostScriptAction 0x000a @@ -10,8 +10,8 @@ script_0801196A: script_0801197C: CheckEntityInteractType JumpIfNot script_0801197C - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 CheckGlobalFlag 0x0015 JumpIf script_080119A0 @@ -22,5 +22,5 @@ script_080119A0: script_080119A4: WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0801197C diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden4.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden4.inc index ce7e7680..92b48937 100644 --- a/data/scripts/hyruleCastleGarden/script_GuardGarden4.inc +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden4.inc @@ -2,7 +2,7 @@ SCRIPT_START script_GuardGarden4 BeginBlock _0807E9D4 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x000a CallWithArg sub_0807F3D8, 0x0000000c EndBlock diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden6.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden6.inc index 244345f9..a9947ae2 100644 --- a/data/scripts/hyruleCastleGarden/script_GuardGarden6.inc +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden6.inc @@ -1,6 +1,6 @@ @ Guard in Castle garden? SCRIPT_START script_GuardGarden6 BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 Jump script_080119F6 .2byte 0x0000 diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden7.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden7.inc index 0dd6ee73..66a5123a 100644 --- a/data/scripts/hyruleCastleGarden/script_GuardGarden7.inc +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden7.inc @@ -2,8 +2,8 @@ SCRIPT_START script_GuardGarden7 CheckRoomFlag 0x000f JumpIfNot script_GuardGarden7 - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 script_08011AFA: MessageFromTargetPos 0x1321, 0x0007 @@ -22,7 +22,7 @@ script_08011AFA: .endif .endif CallWithArg sub_0806DA1C, 0x00000003 - _0807E878 + EnablePlayerControl Call sub_0807DF50 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/hyruleCastleGarden/script_GuardGarden8.inc b/data/scripts/hyruleCastleGarden/script_GuardGarden8.inc index beff4e16..67ecb871 100644 --- a/data/scripts/hyruleCastleGarden/script_GuardGarden8.inc +++ b/data/scripts/hyruleCastleGarden/script_GuardGarden8.inc @@ -1,10 +1,10 @@ @ Hyrule Castle Guard kicking Link out of garden SCRIPT_START script_GuardGarden8 - _0807E864 + SetPlayerIdle Call sub_0807DF28 MessageFromTargetPos 0x1320, 0x000c WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Call sub_0807DF50 DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/hyruleTown/script_Anju.inc b/data/scripts/hyruleTown/script_Anju.inc index 827726c2..96b1b07b 100644 --- a/data/scripts/hyruleTown/script_Anju.inc +++ b/data/scripts/hyruleTown/script_Anju.inc @@ -8,8 +8,8 @@ SCRIPT_START script_Anju script_0801015A: CheckEntityInteractType JumpIfNot script_0801015A - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CheckRoomFlag 0x0001 JumpIf script_0801019E MessageFromTargetPos 0x3001, 0x0000 @@ -18,7 +18,7 @@ script_0801015A: JumpIfNot script_080101A6 Call sub_080A1608 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl CallWithArg sub_080A1550, script_080101AC JumpIfNot script_0801015A PlayBgm BGM_CUCCO_MINIGAME @@ -28,7 +28,7 @@ script_0801019E: Call sub_080A1608 WaitUntilTextboxCloses script_080101A6: - _0807E878 + EnablePlayerControl Jump script_0801015A script_080101AC: BeginBlock @@ -36,19 +36,19 @@ script_080101AC: Call sub_080A1648 EndBlock Call sub_080A1270 - _0807E864 + SetPlayerIdle Call sub_0807DF28 MessageFromTargetPos 0x3004, 0x0007 WaitUntilTextboxCloses StopBgm - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade5 WaitForFadeFinish - CallWithArg sub_0807F75C, 0x03400378 + CallWithArg SetPlayerPos, 0x03400378 Call sub_080791BC Call sub_0807FB74 _0807E8E4_1 - Call sub_0807F168 + Call SetPlayerCollisionLayer1 Call sub_080A1388 Call sub_0806EC38 BeginBlock @@ -56,7 +56,7 @@ script_080101AC: Call sub_0807F844 CameraTargetPlayer EndBlock - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade4 WaitForFadeFinish PlayBGM @@ -70,7 +70,7 @@ script_080101AC: Call sub_080A14A8 script_08010240: Call sub_0807DF50 - _0807E878 + EnablePlayerControl CallWithArg sub_0807F5B0, 0x00000000 ClearRoomFlag 0x0001 Call sub_080A169C diff --git a/data/scripts/hyruleTown/script_AnjuInside.inc b/data/scripts/hyruleTown/script_AnjuInside.inc index 7494a7a3..6253c544 100644 --- a/data/scripts/hyruleTown/script_AnjuInside.inc +++ b/data/scripts/hyruleTown/script_AnjuInside.inc @@ -2,16 +2,16 @@ SCRIPT_START script_AnjuInside BeginBlock _0807E9D4 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a EndBlock script_08010132: CheckEntityInteractType JumpIfNot script_08010132 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageFromTarget 0x4f22 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08010132 diff --git a/data/scripts/hyruleTown/script_Beedle.inc b/data/scripts/hyruleTown/script_Beedle.inc index 38c53a6c..e265823a 100644 --- a/data/scripts/hyruleTown/script_Beedle.inc +++ b/data/scripts/hyruleTown/script_Beedle.inc @@ -1,17 +1,17 @@ @ Hyrule Town Beedle SCRIPT_START script_Beedle BeginBlock - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 DoPostScriptAction 0x000a - Call sub_0807F348 + Call SetPriorityMessage EndBlock script_08010502: CheckEntityInteractType JumpIfNot script_08010502 - _0807E864 + SetPlayerIdle Call sub_0807DF28 - _0807EB74 + FacePlayer CallWithArg sub_0807F3D8, 0x00000008 CheckRoomFlag 0x000e JumpIf script_0801052E @@ -69,22 +69,22 @@ script_080105DC: script_080105E0: WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_08010502 .2byte 0x0000 BeginBlock _0807E9D4 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock script_08010602: CheckEntityInteractType JumpIfNot script_08010602 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageFromTarget 0x0a01 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 Jump script_08010602 diff --git a/data/scripts/hyruleTown/script_Brocco.inc b/data/scripts/hyruleTown/script_Brocco.inc index 58b41e24..f01bc951 100644 --- a/data/scripts/hyruleTown/script_Brocco.inc +++ b/data/scripts/hyruleTown/script_Brocco.inc @@ -1,21 +1,21 @@ @ (Intro) Hyrule Town Brocco SCRIPT_START script_Brocco BeginBlock - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 Call sub_080636F4 DoPostScriptAction 0x000a - Call sub_0807F348 + Call SetPriorityMessage EndBlock script_08010470: CheckEntityInteractType JumpIfNot script_08010470 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000004 Call sub_080636D8 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl CallWithArg sub_0807F3D8, 0x00000000 Jump script_08010470 diff --git a/data/scripts/hyruleTown/script_CafeGuy.inc b/data/scripts/hyruleTown/script_CafeGuy.inc index 32473eb5..751e6e01 100644 --- a/data/scripts/hyruleTown/script_CafeGuy.inc +++ b/data/scripts/hyruleTown/script_CafeGuy.inc @@ -5,28 +5,28 @@ SCRIPT_START script_CafeGuy CallWithArg sub_08061FB8, 0x00000001 SetEntitySpeed 0x0040 DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0002 + SetAnimationState 0x0004 + SetAnimation 0x0002 EndBlock script_0800ECAC: - _0807EB44 0x0006 - _0807E930 0x0007 + SetAnimationState 0x0006 + SetAnimation 0x0007 _0807EDD4 0x0028, 0x0050 Wait 0x001e - _0807EB44 0x0004 - _0807E930 0x0002 + SetAnimationState 0x0004 + SetAnimation 0x0002 Wait 0x001e - _0807EB44 0x0002 - _0807E930 0x0001 + SetAnimationState 0x0002 + SetAnimation 0x0001 Wait 0x001e - _0807EB44 0x0002 - _0807E930 0x0005 + SetAnimationState 0x0002 + SetAnimation 0x0005 _0807EDD4 0x0048, 0x0050 Wait 0x001e - _0807EB44 0x0004 - _0807E930 0x0002 + SetAnimationState 0x0004 + SetAnimation 0x0002 Wait 0x001e - _0807EB44 0x0006 - _0807E930 0x0003 + SetAnimationState 0x0006 + SetAnimation 0x0003 Wait 0x001e Jump script_0800ECAC diff --git a/data/scripts/hyruleTown/script_Carlov.inc b/data/scripts/hyruleTown/script_Carlov.inc index ac6a116b..8a925f4d 100644 --- a/data/scripts/hyruleTown/script_Carlov.inc +++ b/data/scripts/hyruleTown/script_Carlov.inc @@ -2,17 +2,17 @@ SCRIPT_START script_Carlov BeginBlock _0807E9D4 - _0807EB44 0x0000 + SetAnimationState 0x0000 SetEntitySpeed 0x01c0 DoPostScriptAction 0x000a EndBlock script_08014462: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_08014462 - _0807E864 - _0807E930 0x0008 + SetPlayerIdle + SetAnimation 0x0008 Wait 0x0020 - _0807E930 0x0002 + SetAnimation 0x0002 MessageFromTarget 0x4202 MessageFromTarget 0x4203 WaitUntilTextboxCloses @@ -54,11 +54,11 @@ script_080144C8: Call sub_0807DF38 Jump script_080144FC script_080144F0: - _0807E930 0x0009 + SetAnimation 0x0009 Wait 0x003c - _0807E930 0x0002 + SetAnimation 0x0002 script_080144FC: - _0807E878 + EnablePlayerControl CheckRoomFlag 0x0000 JumpIfNot script_08014462 .ifdef USA diff --git a/data/scripts/hyruleTown/script_Carlov2.inc b/data/scripts/hyruleTown/script_Carlov2.inc index 89c39d57..dcb9aa02 100644 --- a/data/scripts/hyruleTown/script_Carlov2.inc +++ b/data/scripts/hyruleTown/script_Carlov2.inc @@ -2,12 +2,12 @@ SCRIPT_START script_Carlov2 BeginBlock _0807E9D4 - _0807EB44 0x0004 + SetAnimationState 0x0004 SetEntityDirection 0x0000 DoPostScriptAction 0x000a EndBlock script_0801463A: - _0807E30C + FacePlayerAndCheckDist .ifdef EU JumpIf script_080146E2 .else @@ -20,21 +20,21 @@ script_0801463A: JumpIfNot script_0801463A CheckRoomFlag 0x0009 JumpIfNot script_0801463A - _0807E864 - _0807EB28 0x431f + SetPlayerIdle + EzloMessage 0x431f WaitUntilTextboxCloses script_0801469A: StartPlayerScript script_PlayerAtCarlov Wait 0x0010 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 - _0807E878 + EnablePlayerControl Jump script_0801463A script_080146E2: - _0807E864 - _0807E930 0x0008 + SetPlayerIdle + SetAnimation 0x0008 Wait 0x0020 - _0807E930 0x0002 + SetAnimation 0x0002 CheckGlobalFlag 0x0059 JumpIf script_0801472E_2 CheckRoomFlag 0x0009 @@ -60,8 +60,8 @@ script_0801472E_2: JumpIfNot script_0801463A CheckLocalFlag 0x005e JumpIf script_080146A0 - _0807E864 - _0807EB8C + SetPlayerIdle + FaceAwayFromPlayer MessageFromTargetPos 0x432b, 0x000c Jump script_080147CE script_08014672: @@ -75,22 +75,22 @@ script_08014672: .endif .endif JumpIfNot script_0801463A - _0807E864 - _0807EB28 0x431f + SetPlayerIdle + EzloMessage 0x431f WaitUntilTextboxCloses StartPlayerScript script_PlayerAtCarlov Wait 0x0010 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 - _0807E878 + EnablePlayerControl Jump script_0801463A script_080146A0: - _0807E864 - _0807E930 0x0008 + SetPlayerIdle + SetAnimation 0x0008 Wait 0x0010 - _0807EB8C + FaceAwayFromPlayer Wait 0x0010 - _0807E930 0x0002 + SetAnimation 0x0002 CheckGlobalFlag 0x0059 JumpIfNot script_080146C6 MessageFromTargetPos 0x432f, 0x000c @@ -125,7 +125,7 @@ script_0801474A: .endif MessageFromTargetPos 0x4305, 0x000c WaitUntilTextboxCloses - _0807E3BC 0x0001 + HasShells 0x0001 JumpIfNot script_080147C4 MessageFromTargetPos 0x4306, 0x000c Jump script_0801473C @@ -149,7 +149,7 @@ script_0801473C: CheckTextboxResult JumpIfNot script_08014770 WaitUntilTextboxCloses - _0807E3BC 0x0001 + HasShells 0x0001 JumpIfNot script_080147C4 SetRoomFlag 0x0001 Wait 0x0014 @@ -186,14 +186,14 @@ script_0801478A: SetSyncFlag 0x00000008 Jump script_080147CE script_080147A4: - _0807E930 0x0009 + SetAnimation 0x0009 Wait 0x003c - _0807E930 0x0002 + SetAnimation 0x0002 Jump script_0801478A script_080147B4: - _0807E930 0x000a + SetAnimation 0x000a Wait 0x008c - _0807E930 0x0002 + SetAnimation 0x0002 Jump script_0801478A script_080147C4: .ifdef EU @@ -209,6 +209,6 @@ script_080147CE: .else Wait 0x0004 .endif - _0807E878 + EnablePlayerControl Jump script_0801463A .align 2, 0 diff --git a/data/scripts/hyruleTown/script_CarlovChest.inc b/data/scripts/hyruleTown/script_CarlovChest.inc index 88a59859..00c7e8a0 100644 --- a/data/scripts/hyruleTown/script_CarlovChest.inc +++ b/data/scripts/hyruleTown/script_CarlovChest.inc @@ -11,13 +11,13 @@ script_080148F4: WaitUntilTextboxCloses CheckTextboxResult JumpIfNot script_08014938 - _0807E864 + SetPlayerIdle SetSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000002 Call sub_0806E1E0 WaitUntilTextboxCloses Wait 0x0018 - _0807E878 + EnablePlayerControl Jump script_080148F4 script_08014932: WaitUntilTextboxCloses diff --git a/data/scripts/hyruleTown/script_CarlovGame.inc b/data/scripts/hyruleTown/script_CarlovGame.inc index f22343fa..a43af767 100644 --- a/data/scripts/hyruleTown/script_CarlovGame.inc +++ b/data/scripts/hyruleTown/script_CarlovGame.inc @@ -2,40 +2,40 @@ SCRIPT_START script_CarlovGame BeginBlock _0807E9D4 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x000a EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF38 Wait 0x0010 CheckLocalFlag 0x0093 JumpIf script_080148B6 MessageFromTargetPos 0x4215, 0x000c - _0807E878 + EnablePlayerControl script_0801482E: CheckSyncFlagAndClear 0x00000001 JumpIf script_08014862 CheckSyncFlagAndClear 0x00000004 JumpIf script_08014878 - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_0801482E - _0807E864 - _0807E930 0x0008 + SetPlayerIdle + SetAnimation 0x0008 Wait 0x0020 - _0807E930 0x0002 + SetAnimation 0x0002 MessageFromTargetPos 0x4215, 0x000c - _0807E878 + EnablePlayerControl Jump script_0801482E script_08014862: - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x0020 - _0807E930 0x0002 + SetAnimation 0x0002 SetSyncFlag 0x00000002 Jump script_0801482E script_08014878: - _0807E930 0x0009 + SetAnimation 0x0009 Wait 0x003c - _0807E930 0x0002 + SetAnimation 0x0002 SetSyncFlag 0x00000008 Jump script_0801482E script_0801488E: @@ -43,26 +43,26 @@ script_0801488E: JumpIf script_080148C2 CheckSyncFlagAndClear 0x00000004 JumpIf script_080148D8 - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_0801488E - _0807E864 - _0807E930 0x0008 + SetPlayerIdle + SetAnimation 0x0008 Wait 0x0020 - _0807E930 0x0002 + SetAnimation 0x0002 script_080148B6: MessageFromTargetPos 0x4216, 0x000c - _0807E878 + EnablePlayerControl Jump script_0801488E script_080148C2: - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x0020 - _0807E930 0x0002 + SetAnimation 0x0002 SetSyncFlag 0x00000002 Jump script_0801488E script_080148D8: - _0807E930 0x0009 + SetAnimation 0x0009 Wait 0x003c - _0807E930 0x0002 + SetAnimation 0x0002 SetSyncFlag 0x00000008 Jump script_0801488E .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_CarlovWon.inc b/data/scripts/hyruleTown/script_CarlovWon.inc index b8c535ca..4a65f5ea 100644 --- a/data/scripts/hyruleTown/script_CarlovWon.inc +++ b/data/scripts/hyruleTown/script_CarlovWon.inc @@ -2,11 +2,11 @@ SCRIPT_START script_CarlovWon BeginBlock _0807E9D4 - _0807EB44 0x0000 + SetAnimationState 0x0000 SetEntitySpeed 0x01c0 DoPostScriptAction 0x000a EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 Call sub_0806E20C WaitUntilTextboxCloses diff --git a/data/scripts/hyruleTown/script_Carpenter.inc b/data/scripts/hyruleTown/script_Carpenter.inc index 2ea50d73..9a29615b 100644 --- a/data/scripts/hyruleTown/script_Carpenter.inc +++ b/data/scripts/hyruleTown/script_Carpenter.inc @@ -1,7 +1,7 @@ @ Hyrule Town carpeter next to post SCRIPT_START script_Carpenter BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 CallWithArg sub_080672B0, 0x00000000 DoPostScriptAction 0x000a Call sub_08067314 @@ -9,12 +9,12 @@ SCRIPT_START script_Carpenter script_08010AB4: CheckEntityInteractType JumpIfNot script_08010AB4 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_080672B0, 0x00000004 Call sub_08067304 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 CallWithArg sub_080672B0, 0x00000000 Jump script_08010AB4 diff --git a/data/scripts/hyruleTown/script_CatPerson.inc b/data/scripts/hyruleTown/script_CatPerson.inc index 18c982e8..73cfba96 100644 --- a/data/scripts/hyruleTown/script_CatPerson.inc +++ b/data/scripts/hyruleTown/script_CatPerson.inc @@ -3,17 +3,17 @@ SCRIPT_START script_CatPerson BeginBlock Call sub_08061E70 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 Call sub_08061FD8 EndBlock script_0800EC6C: CheckEntityInteractType JumpIfNot script_0800EC6C - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08061FD8 Call sub_08062048 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800EC6C .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_CatPersonTalkingToDogPerson.inc b/data/scripts/hyruleTown/script_CatPersonTalkingToDogPerson.inc index 4b8a69e0..f81c9e64 100644 --- a/data/scripts/hyruleTown/script_CatPersonTalkingToDogPerson.inc +++ b/data/scripts/hyruleTown/script_CatPersonTalkingToDogPerson.inc @@ -3,18 +3,18 @@ SCRIPT_START script_CatPersonTalkingToDogPerson BeginBlock Call sub_08061E70 DoPostScriptAction 0x000a - _0807EB44 0x0002 + SetAnimationState 0x0002 Call sub_08061FD8 EndBlock script_0800EC2C: CheckEntityInteractType JumpIfNot script_0800EC2C - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08061FD8 Call sub_08062048 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0002 + EnablePlayerControl + SetAnimationState 0x0002 Call sub_08061FD8 Jump script_0800EC2C diff --git a/data/scripts/hyruleTown/script_Din.inc b/data/scripts/hyruleTown/script_Din.inc index b78e1802..4b0c3e8c 100644 --- a/data/scripts/hyruleTown/script_Din.inc +++ b/data/scripts/hyruleTown/script_Din.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Din BeginBlock Call sub_08064828 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 DoPostScriptAction 0x000a CheckGlobalFlag 0x0047 @@ -14,13 +14,13 @@ script_08011C9A: CheckEntityInteractType JumpIfNot script_08011C9A EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 MessageNoOverlap 0x4515 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011C9A script_08011CC2: @@ -33,29 +33,29 @@ script_08011CC2: CheckEntityInteractType JumpIfNot script_08011CC2 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 MessageNoOverlap 0x3105 WaitUntilTextboxCloses CheckTextboxResult JumpIf script_08011D0E - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011CC2 script_08011D00: CheckEntityInteractType JumpIfNot script_08011D00 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 script_08011D0E: MessageNoOverlap 0x3108 WaitUntilTextboxCloses SetGlobalFlag 0x002b - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011D00 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Din2.inc b/data/scripts/hyruleTown/script_Din2.inc index 31c5c728..95f9d5d8 100644 --- a/data/scripts/hyruleTown/script_Din2.inc +++ b/data/scripts/hyruleTown/script_Din2.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Din2 BeginBlock Call sub_08064828 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 DoPostScriptAction 0x000a EndBlock @@ -16,8 +16,8 @@ script_08011E96: CheckEntityInteractType JumpIfNot script_08011E96 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 CheckGlobalFlag 0x0048 JumpIf script_08011ECC @@ -30,21 +30,21 @@ script_08011ECC: CheckTextboxResult JumpIf script_08011EF4 script_08011ED8: - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011E96 script_08011EE6: CheckEntityInteractType JumpIfNot script_08011EE6 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 script_08011EF4: MessageNoOverlap 0x3114 WaitUntilTextboxCloses SetGlobalFlag 0x002e - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011EE6 diff --git a/data/scripts/hyruleTown/script_DinAlone.inc b/data/scripts/hyruleTown/script_DinAlone.inc index 0a722830..60ae00b5 100644 --- a/data/scripts/hyruleTown/script_DinAlone.inc +++ b/data/scripts/hyruleTown/script_DinAlone.inc @@ -2,19 +2,19 @@ SCRIPT_START script_DinAlone BeginBlock Call sub_08064828 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 DoPostScriptAction 0x000a EndBlock script_080121DE: CheckEntityInteractType JumpIfNot script_080121DE - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 MessageNoOverlap 0x4527 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_080121DE diff --git a/data/scripts/hyruleTown/script_DinMovedIn.inc b/data/scripts/hyruleTown/script_DinMovedIn.inc index c0ee74ba..16ba4b27 100644 --- a/data/scripts/hyruleTown/script_DinMovedIn.inc +++ b/data/scripts/hyruleTown/script_DinMovedIn.inc @@ -2,15 +2,15 @@ SCRIPT_START script_DinMovedIn BeginBlock Call sub_08064828 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 DoPostScriptAction 0x000a EndBlock script_0801203A: CheckEntityInteractType JumpIfNot script_0801203A - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 CheckLocalFlag 0x0094 JumpIf script_0801205E @@ -51,8 +51,8 @@ script_0801209A: MessageNoOverlap 0x3127 script_0801209E: WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_0801203A .align 2, 0 diff --git a/data/scripts/hyruleTown/script_DogPersonInCatHouse.inc b/data/scripts/hyruleTown/script_DogPersonInCatHouse.inc index a26f16c7..2cc56734 100644 --- a/data/scripts/hyruleTown/script_DogPersonInCatHouse.inc +++ b/data/scripts/hyruleTown/script_DogPersonInCatHouse.inc @@ -3,25 +3,25 @@ SCRIPT_START script_DogPersonInCatHouse BeginBlock Call sub_08061E70 DoPostScriptAction 0x000a - _0807EB44 0x0006 + SetAnimationState 0x0006 Call sub_08061FD8 EndBlock script_0800EB7C: CheckEntityInteractType JumpIfNot script_0800EB7C - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08061FD8 Call sub_08062048 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0006 + EnablePlayerControl + SetAnimationState 0x0006 Call sub_08061FD8 Jump script_0800EB7C BeginBlock Call sub_08061E70 DoPostScriptAction 0x000a - _0807EB44 0x0002 + SetAnimationState 0x0002 Call sub_08061FD8 EndBlock Jump script_0800EBF4 diff --git a/data/scripts/hyruleTown/script_DrLeft.inc b/data/scripts/hyruleTown/script_DrLeft.inc index ae71d84b..ad325fa1 100644 --- a/data/scripts/hyruleTown/script_DrLeft.inc +++ b/data/scripts/hyruleTown/script_DrLeft.inc @@ -4,24 +4,24 @@ SCRIPT_START script_DrLeft _0807E9D4 Call sub_0806C09C DoPostScriptAction 0x000a - _0807E930 0x0000 - _0807EB44 0x0004 + SetAnimation 0x0000 + SetAnimationState 0x0004 EndBlock script_0800EABC: CheckEntityInteractType JumpIfNot script_0800EABC BeginBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0806C028, 0x00000004 EndBlock script_0800EAD4: Call sub_0806C00C JumpIfNot script_0800EAD4 - _0807E930 0x0008 + SetAnimation 0x0008 Call sub_0806C038 WaitUntilTextboxCloses Wait 0x000f - _0807E878 - _0807E930 0x0000 + EnablePlayerControl + SetAnimation 0x0000 Jump script_0800EABC diff --git a/data/scripts/hyruleTown/script_DrLeftDoor.inc b/data/scripts/hyruleTown/script_DrLeftDoor.inc index 9e92d307..73a86b68 100644 --- a/data/scripts/hyruleTown/script_DrLeftDoor.inc +++ b/data/scripts/hyruleTown/script_DrLeftDoor.inc @@ -8,7 +8,7 @@ SCRIPT_START script_DrLeftDoor script_0800EF50: Call sub_080869A4 JumpIfNot script_0800EF50 - _0807E864 + SetPlayerIdle CheckLocalFlagByBank 0x0200, 0x006d JumpIf script_0800EF82 MessageFromTarget 0x4d01 @@ -16,14 +16,14 @@ script_0800EF50: StartPlayerScript script_PlayerAtDrLeftDoor WaitForSyncFlagAndClear 0x00000001 Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800EF50 script_0800EF82: SetGlobalFlag 0x001f MessageFromTarget 0x4d02 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl script_0800EF92: Call sub_0808692C SCRIPT_END diff --git a/data/scripts/hyruleTown/script_Emma.inc b/data/scripts/hyruleTown/script_Emma.inc index 8e842540..5f058f79 100644 --- a/data/scripts/hyruleTown/script_Emma.inc +++ b/data/scripts/hyruleTown/script_Emma.inc @@ -3,13 +3,13 @@ SCRIPT_START script_Emma BeginBlock _0807E9D4 DoPostScriptAction 0x000a - _0807EB44 0x0000 + SetAnimationState 0x0000 EndBlock script_0800E832: CheckEntityInteractType JumpIfNot script_0800E832 - _0807E864 - _0807EB44 0x0004 + SetPlayerIdle + SetAnimationState 0x0004 BeginBlock MessageFromTarget 0x4501 CallWithArg sub_0807F854, 0x00010032 diff --git a/data/scripts/hyruleTown/script_EmmaNotEnoughRupees.inc b/data/scripts/hyruleTown/script_EmmaNotEnoughRupees.inc index c3a59c92..45bece10 100644 --- a/data/scripts/hyruleTown/script_EmmaNotEnoughRupees.inc +++ b/data/scripts/hyruleTown/script_EmmaNotEnoughRupees.inc @@ -6,6 +6,6 @@ script_0800E910: @ Rent no room MessageFromTarget 0x4509 script_0800E914: WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0000 + EnablePlayerControl + SetAnimationState 0x0000 Jump script_0800E832 diff --git a/data/scripts/hyruleTown/script_Farore.inc b/data/scripts/hyruleTown/script_Farore.inc index 23de485b..013522a1 100644 --- a/data/scripts/hyruleTown/script_Farore.inc +++ b/data/scripts/hyruleTown/script_Farore.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Farore BeginBlock Call sub_08064A28 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 DoPostScriptAction 0x000a CheckGlobalFlag 0x0047 @@ -14,13 +14,13 @@ script_08011DF2: CheckEntityInteractType JumpIfNot script_08011DF2 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 MessageNoOverlap 0x4514 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011DF2 script_08011E1A: @@ -33,29 +33,29 @@ script_08011E1A: CheckEntityInteractType JumpIfNot script_08011E1A EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 MessageNoOverlap 0x3104 WaitUntilTextboxCloses CheckTextboxResult JumpIf script_08011E66 - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011E1A script_08011E58: CheckEntityInteractType JumpIfNot script_08011E58 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 script_08011E66: MessageNoOverlap 0x3107 WaitUntilTextboxCloses SetGlobalFlag 0x002d - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011E58 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Farore2.inc b/data/scripts/hyruleTown/script_Farore2.inc index 7920be1f..568120b7 100644 --- a/data/scripts/hyruleTown/script_Farore2.inc +++ b/data/scripts/hyruleTown/script_Farore2.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Farore2 BeginBlock Call sub_08064A28 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 DoPostScriptAction 0x000a EndBlock @@ -16,8 +16,8 @@ script_08011FAE: CheckEntityInteractType JumpIfNot script_08011FAE EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 CheckGlobalFlag 0x0048 JumpIf script_08011FE4 @@ -30,22 +30,22 @@ script_08011FE4: CheckTextboxResult JumpIf script_0801200C script_08011FF0: - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011FAE script_08011FFE: CheckEntityInteractType JumpIfNot script_08011FFE - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 script_0801200C: MessageNoOverlap 0x3113 WaitUntilTextboxCloses SetGlobalFlag 0x0030 - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011FFE diff --git a/data/scripts/hyruleTown/script_FaroreAlone.inc b/data/scripts/hyruleTown/script_FaroreAlone.inc index 294915d9..4bfaf3df 100644 --- a/data/scripts/hyruleTown/script_FaroreAlone.inc +++ b/data/scripts/hyruleTown/script_FaroreAlone.inc @@ -2,19 +2,19 @@ SCRIPT_START script_FaroreAlone BeginBlock Call sub_08064A28 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 DoPostScriptAction 0x000a EndBlock script_0801224E: CheckEntityInteractType JumpIfNot script_0801224E - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 MessageNoOverlap 0x4526 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_0801224E diff --git a/data/scripts/hyruleTown/script_FaroreMovedIn.inc b/data/scripts/hyruleTown/script_FaroreMovedIn.inc index 474b8dea..370126a4 100644 --- a/data/scripts/hyruleTown/script_FaroreMovedIn.inc +++ b/data/scripts/hyruleTown/script_FaroreMovedIn.inc @@ -2,15 +2,15 @@ SCRIPT_START script_FaroreMovedIn BeginBlock Call sub_08064A28 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 DoPostScriptAction 0x000a EndBlock script_08012152: CheckEntityInteractType JumpIfNot script_08012152 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 CheckLocalFlag 0x0096 JumpIf script_08012176 @@ -51,8 +51,8 @@ script_080121B2: MessageNoOverlap 0x3121 script_080121B6: WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08012152 .align 2, 0 diff --git a/data/scripts/hyruleTown/script_FirstHouseDoor.inc b/data/scripts/hyruleTown/script_FirstHouseDoor.inc index 56501984..63b89955 100644 --- a/data/scripts/hyruleTown/script_FirstHouseDoor.inc +++ b/data/scripts/hyruleTown/script_FirstHouseDoor.inc @@ -8,18 +8,18 @@ SCRIPT_START script_FirstHouseDoor script_0801091C: Call sub_080869A4 JumpIfNot script_0801091C - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 CheckRoomFlag 0x0001 JumpIf script_08010942 - _0807EB28 0x0b62 + EzloMessage 0x0b62 WaitUntilTextboxCloses script_08010942: StartPlayerScript script_PlayerAtInnDoor WaitForSyncFlagAndClear 0x00000001 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0801091C Call sub_0808692C SCRIPT_END diff --git a/data/scripts/hyruleTown/script_ForestMinish11.inc b/data/scripts/hyruleTown/script_ForestMinish11.inc index 7cbb90db..9d5214c7 100644 --- a/data/scripts/hyruleTown/script_ForestMinish11.inc +++ b/data/scripts/hyruleTown/script_ForestMinish11.inc @@ -13,9 +13,9 @@ script_0800E6BE: Jump script_0800E6BE script_0800E6D2: EndBlock - _0807E864 + SetPlayerIdle Call sub_0806025C WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800E6BE diff --git a/data/scripts/hyruleTown/script_Ghost.inc b/data/scripts/hyruleTown/script_Ghost.inc index d8e0119a..99fc400e 100644 --- a/data/scripts/hyruleTown/script_Ghost.inc +++ b/data/scripts/hyruleTown/script_Ghost.inc @@ -4,16 +4,16 @@ SCRIPT_START script_Ghost DoPostScriptAction 0x0007 _0807E9D4 DoPostScriptAction 0x000a - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 EndBlock script_0801027A: CheckEntityInteractType JumpIfNot script_0801027A - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08065F64 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0801027A .align 2 diff --git a/data/scripts/hyruleTown/script_GormanCats.inc b/data/scripts/hyruleTown/script_GormanCats.inc index c8d96d9e..cad4d713 100644 --- a/data/scripts/hyruleTown/script_GormanCats.inc +++ b/data/scripts/hyruleTown/script_GormanCats.inc @@ -1,7 +1,7 @@ @ Gorman at third house SCRIPT_START script_GormanCats BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a _0807E9D4 @@ -21,16 +21,16 @@ script_0800FE66: Jump script_0800FE5A script_0800FE7E: EndBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 Wait 0x001e - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 Wait 0x001e - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 Wait 0x001e - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 Wait 0x003c Call sub_08069A84 diff --git a/data/scripts/hyruleTown/script_GormanFirstHouse.inc b/data/scripts/hyruleTown/script_GormanFirstHouse.inc index 013e6afe..26447047 100644 --- a/data/scripts/hyruleTown/script_GormanFirstHouse.inc +++ b/data/scripts/hyruleTown/script_GormanFirstHouse.inc @@ -2,7 +2,7 @@ @ and at second house when ready to sell SCRIPT_START script_GormanFirstHouse BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a _0807E9D4 @@ -10,10 +10,10 @@ SCRIPT_START script_GormanFirstHouse script_0800FDB2: CheckEntityInteractType JumpIfNot script_0800FDB2 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08069888 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800FDB2 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_GormanSecondHouse.inc b/data/scripts/hyruleTown/script_GormanSecondHouse.inc index f75d0452..f223d84c 100644 --- a/data/scripts/hyruleTown/script_GormanSecondHouse.inc +++ b/data/scripts/hyruleTown/script_GormanSecondHouse.inc @@ -1,7 +1,7 @@ @ Hyrule Town Gorman at second house SCRIPT_START script_GormanSecondHouse BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a _0807E9D4 @@ -21,16 +21,16 @@ script_0800FDEE: Jump script_0800FDE2 script_0800FE06: EndBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 Wait 0x001e - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 Wait 0x001e - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 Wait 0x001e - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 Wait 0x003c Call sub_08069A3C diff --git a/data/scripts/hyruleTown/script_GoronMerchant.inc b/data/scripts/hyruleTown/script_GoronMerchant.inc index 66d1a451..8d32cbd0 100644 --- a/data/scripts/hyruleTown/script_GoronMerchant.inc +++ b/data/scripts/hyruleTown/script_GoronMerchant.inc @@ -1,12 +1,12 @@ @ Hyrule Town Goron Merchant SCRIPT_START script_GoronMerchant BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a DoPostScriptAction 0x0007 _0807E9D4 - Call sub_0807F348 + Call SetPriorityMessage Call sub_08069684 EndBlock script_080107F2: @@ -25,9 +25,9 @@ script_08010804: CheckEntityInteractType JumpIfNot script_08010804 EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 - _0807EB74 + FacePlayer CheckGlobalFlag 0x0042 JumpIfNot script_08010858 CheckGlobalFlag 0x0043 @@ -46,9 +46,9 @@ script_08010858: Jump script_080108BA script_08010860: EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF38 - _0807EB74 + FacePlayer Call sub_08069660 WaitUntilTextboxCloses CheckTextboxResult @@ -57,7 +57,7 @@ script_08010860: JumpIfNot script_080108B2 WaitPlayerGetItem WaitUntilTextboxCloses - _0807EB8C + FaceAwayFromPlayer CheckGlobalFlag 0x0042 JumpIfNot script_080108AA CheckGlobalFlag 0x0043 @@ -81,7 +81,7 @@ script_080108B2: script_080108BA: WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0000 Jump script_08010804 diff --git a/data/scripts/hyruleTown/script_GuardEast.inc b/data/scripts/hyruleTown/script_GuardEast.inc index 9bf0316a..cf3f5d2e 100644 --- a/data/scripts/hyruleTown/script_GuardEast.inc +++ b/data/scripts/hyruleTown/script_GuardEast.inc @@ -3,7 +3,7 @@ SCRIPT_START script_GuardEast BeginBlock CheckInventory1 0x0012 JumpIf script_0800FF6A - _0807EB44 0x0006 + SetAnimationState 0x0006 _0807E9D4 CallWithArg sub_0807F3D8, 0x00000008 EndBlock @@ -15,13 +15,13 @@ script_0800FF34: CheckEntityInteractType JumpIfNot script_0800FF34 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000008 Call sub_08064428 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800FF34 script_0800FF6A: DoPostScriptAction 0x0008 diff --git a/data/scripts/hyruleTown/script_GuardLibrary.inc b/data/scripts/hyruleTown/script_GuardLibrary.inc index 7944844b..870c90b5 100644 --- a/data/scripts/hyruleTown/script_GuardLibrary.inc +++ b/data/scripts/hyruleTown/script_GuardLibrary.inc @@ -2,16 +2,16 @@ SCRIPT_START script_GuardLibrary BeginBlock _0807E9D4 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x000a CallWithArg sub_0807F3D8, 0x00000000 EndBlock script_08010410: CheckEntityInteractType JumpIfNot script_08010410 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08064428 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08010410 diff --git a/data/scripts/hyruleTown/script_GuardNorth.inc b/data/scripts/hyruleTown/script_GuardNorth.inc index 81e2d9af..603439eb 100644 --- a/data/scripts/hyruleTown/script_GuardNorth.inc +++ b/data/scripts/hyruleTown/script_GuardNorth.inc @@ -3,7 +3,7 @@ SCRIPT_START script_GuardNorth BeginBlock CheckInventory1 0x0012 JumpIf script_0800FF0E - _0807EB44 0x0006 + SetAnimationState 0x0006 _0807E9D4 CallWithArg sub_0807F3D8, 0x00000008 EndBlock @@ -15,13 +15,13 @@ script_0800FED8: CheckEntityInteractType JumpIfNot script_0800FED8 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000008 Call sub_08064428 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800FED8 script_0800FF0E: DoPostScriptAction 0x0008 diff --git a/data/scripts/hyruleTown/script_GuardPatrolling.inc b/data/scripts/hyruleTown/script_GuardPatrolling.inc index df0a7b81..891de121 100644 --- a/data/scripts/hyruleTown/script_GuardPatrolling.inc +++ b/data/scripts/hyruleTown/script_GuardPatrolling.inc @@ -2,7 +2,7 @@ SCRIPT_START script_GuardPatrolling BeginBlock _0807E9D4 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x000a CallWithArg sub_0807F3D8, 0x00000004 EndBlock diff --git a/data/scripts/hyruleTown/script_GuardWest.inc b/data/scripts/hyruleTown/script_GuardWest.inc index 3792ad68..a8538ddd 100644 --- a/data/scripts/hyruleTown/script_GuardWest.inc +++ b/data/scripts/hyruleTown/script_GuardWest.inc @@ -1,7 +1,7 @@ @ Hyrule Town Guard west SCRIPT_START script_GuardWest BeginBlock - _0807EB44 0x0002 + SetAnimationState 0x0002 _0807E9D4 CallWithArg sub_0807F3D8, 0x00000008 Call sub_080644A4 @@ -73,8 +73,8 @@ script_0800FFCC: .endif .endif .endif - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000008 CheckInventory1 0x0048 JumpIf script_0800FFF8 @@ -105,19 +105,19 @@ script_0801000A: Jump script_08010060 script_08010014: EndBlock - _0807E888 - Call sub_0807F594 - _0807E864 - _0807EB74 + DisablePlayerControl + Call WaitForPlayerIdle + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000008 PlaySound SFX_TASK_COMPLETE MessageNoOverlap 0x340a WaitUntilTextboxCloses - _0807EB44 0x0004 + SetAnimationState 0x0004 CallWithArg sub_0807F3D8, 0x0000000c SetEntitySpeed 0x0100 _0807EDD4 0x0018, 0x0108 - _0807EB44 0x0002 + SetAnimationState 0x0002 CallWithArg sub_0807F3D8, 0x00000008 .ifdef JP SetLocalFlag 0x00cb @@ -135,26 +135,26 @@ script_08010014: script_08010060: Call sub_080644A4 CallWithArg sub_0807F5B0, 0x0000000a - _0807E878 + EnablePlayerControl Jump script_0800FF92 .2byte 0x0000 BeginBlock _0807E9D4 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 CallWithArg sub_080672B0, 0x00000000 EndBlock script_08010090: CheckEntityInteractType JumpIfNot script_08010090 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_080672B0, 0x00000004 MessageFromTarget 0x0a01 WaitUntilTextboxCloses Wait 0x000f - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 CallWithArg sub_080672B0, 0x00000000 Jump script_08010090 DoPostScriptAction 0x0006 diff --git a/data/scripts/hyruleTown/script_HurdyGurdyMan.inc b/data/scripts/hyruleTown/script_HurdyGurdyMan.inc index 0c01f429..7daf6e2c 100644 --- a/data/scripts/hyruleTown/script_HurdyGurdyMan.inc +++ b/data/scripts/hyruleTown/script_HurdyGurdyMan.inc @@ -2,19 +2,19 @@ SCRIPT_START script_HurdyGurdyMan BeginBlock DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0008 + SetAnimationState 0x0004 + SetAnimation 0x0008 Call sub_0806E440 EndBlock script_08010BCA: CheckEntityInteractType JumpIfNot script_08010BCA - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 Call sub_0806E418 WaitUntilTextboxCloses - _0807E878 - _0807E930 0x0008 + EnablePlayerControl + SetAnimation 0x0008 Jump script_08010BCA .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_InnDoor.inc b/data/scripts/hyruleTown/script_InnDoor.inc index 931ee30e..ea001419 100644 --- a/data/scripts/hyruleTown/script_InnDoor.inc +++ b/data/scripts/hyruleTown/script_InnDoor.inc @@ -2,16 +2,16 @@ SCRIPT_START script_InnDoor CheckPlayerInRegion2 0x0808 JumpIfNot script_InnDoor - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StartPlayerScript script_PlayerAtInnDoor WaitForSyncFlagAndClear 0x00000001 CheckRoomFlag 0x0001 JumpIf script_08010900 - _0807EB28 0x0b63 + EzloMessage 0x0b63 WaitUntilTextboxCloses script_08010900: Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_InnDoor diff --git a/data/scripts/hyruleTown/script_Kid1.inc b/data/scripts/hyruleTown/script_Kid1.inc index dffebca2..732289b5 100644 --- a/data/scripts/hyruleTown/script_Kid1.inc +++ b/data/scripts/hyruleTown/script_Kid1.inc @@ -10,18 +10,18 @@ script_080102A6: JumpIfNot script_080102A6 CheckRoomFlag 0x0009 JumpIfNot script_080102CC - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806265C WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Call sub_08062500 Jump script_080102A6 script_080102CC: - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806265C WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_080102A6 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Kid2.inc b/data/scripts/hyruleTown/script_Kid2.inc index c5dc472e..65a9125b 100644 --- a/data/scripts/hyruleTown/script_Kid2.inc +++ b/data/scripts/hyruleTown/script_Kid2.inc @@ -8,10 +8,10 @@ SCRIPT_START script_Kid2 script_080102F2: CheckEntityInteractType JumpIfNot script_080102F2 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806265C WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_080102F2 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Kid3.inc b/data/scripts/hyruleTown/script_Kid3.inc index 5147a331..99f6a116 100644 --- a/data/scripts/hyruleTown/script_Kid3.inc +++ b/data/scripts/hyruleTown/script_Kid3.inc @@ -7,7 +7,7 @@ script_08010314: EndBlock Call sub_08062698 Call sub_080626AC - CallWithArg sub_0807F0EC, 0x00000009 + CallWithArg GetRandomInt, 0x00000009 JumpTable script_08010340, script_0801034A, script_08010354, script_0801035E, script_08010368, script_08010372, script_0801037C, script_08010386, script_08010390 script_08010340: _0807EE04 0x0358, 0x0078 diff --git a/data/scripts/hyruleTown/script_Kid5.inc b/data/scripts/hyruleTown/script_Kid5.inc index 84453c61..4465b197 100644 --- a/data/scripts/hyruleTown/script_Kid5.inc +++ b/data/scripts/hyruleTown/script_Kid5.inc @@ -1,7 +1,7 @@ @ Hyrule Town Kid in school SCRIPT_START script_Kid5 BeginBlock - _0807E930 0x0008 + SetAnimation 0x0008 script_08010622: Call sub_08062A48 DoPostScriptAction 0x000a @@ -9,8 +9,8 @@ script_08010622: script_0801062E: CheckEntityInteractType JumpIfNot script_0801062E - _0807E864 + SetPlayerIdle Call sub_0806265C WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0801062E diff --git a/data/scripts/hyruleTown/script_Kid6.inc b/data/scripts/hyruleTown/script_Kid6.inc index 58553883..c4c6e86d 100644 --- a/data/scripts/hyruleTown/script_Kid6.inc +++ b/data/scripts/hyruleTown/script_Kid6.inc @@ -1,6 +1,6 @@ @ Hyrule Town Kid in school 2? SCRIPT_START script_Kid6 BeginBlock - _0807E930 0x0009 + SetAnimation 0x0009 Jump script_08010622 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Kid7.inc b/data/scripts/hyruleTown/script_Kid7.inc index 599ee869..1d2fd690 100644 --- a/data/scripts/hyruleTown/script_Kid7.inc +++ b/data/scripts/hyruleTown/script_Kid7.inc @@ -1,14 +1,14 @@ @ Hyrule Town Kid in school 3? SCRIPT_START script_Kid7 BeginBlock - _0807E930 0x000b + SetAnimation 0x000b Jump script_08010622 .2byte 0x0000 BeginBlock - _0807E930 0x000c + SetAnimation 0x000c Jump script_08010622 .2byte 0x0000 BeginBlock - _0807E930 0x000d + SetAnimation 0x000d Jump script_08010622 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_KidInn.inc b/data/scripts/hyruleTown/script_KidInn.inc index f3de7eb9..43a709a2 100644 --- a/data/scripts/hyruleTown/script_KidInn.inc +++ b/data/scripts/hyruleTown/script_KidInn.inc @@ -8,7 +8,7 @@ script_0800D5AC: EndBlock Call sub_08062698 Call sub_080626AC - CallWithArg sub_0807F0EC, 0x00000004 + CallWithArg GetRandomInt, 0x00000004 JumpTable script_0800D5CE, script_0800D5D8, script_0800D5E2, script_0800D5EC script_0800D5CE: _0807EE04 0x0038, 0x0098 diff --git a/data/scripts/hyruleTown/script_Librari.inc b/data/scripts/hyruleTown/script_Librari.inc index 8aa1476a..759b102e 100644 --- a/data/scripts/hyruleTown/script_Librari.inc +++ b/data/scripts/hyruleTown/script_Librari.inc @@ -2,16 +2,16 @@ SCRIPT_START script_Librari BeginBlock DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 EndBlock script_0800E974: CheckEntityInteractType JumpIfNot script_0800E974 - _0807E864 - _0807E930 0x0008 - Call sub_0807F2D4 - _0807E930 0x0009 + SetPlayerIdle + SetAnimation 0x0008 + Call WaitForFrameHiBit + SetAnimation 0x0009 Call sub_0806B260 JumpIfNot script_0800E9E4 WaitUntilTextboxCloses @@ -21,11 +21,11 @@ script_0800E974: DoPostScriptAction 0x000a MessageFromTarget 0x4a24 WaitUntilTextboxCloses - _0807E930 0x000a + SetAnimation 0x000a Wait 0x0014 MessageFromTarget 0x4a25 WaitUntilTextboxCloses - _0807E930 0x0000 + SetAnimation 0x0000 StartPlayerScript script_PlayerActivatedTrapCard WaitForSyncFlagAndClear 0x00000001 SetLocalFlag 0x0074 @@ -37,6 +37,6 @@ script_0800E974: script_0800E9E4: WaitUntilTextboxCloses Wait 0x000f - _0807E878 - _0807E930 0x0000 + EnablePlayerControl + SetAnimation 0x0000 Jump script_0800E974 diff --git a/data/scripts/hyruleTown/script_LibrariLater.inc b/data/scripts/hyruleTown/script_LibrariLater.inc index cca9ae05..cc4fda75 100644 --- a/data/scripts/hyruleTown/script_LibrariLater.inc +++ b/data/scripts/hyruleTown/script_LibrariLater.inc @@ -2,16 +2,16 @@ SCRIPT_START script_LibrariLater BeginBlock DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 EndBlock script_08012440: CheckEntityInteractType JumpIfNot script_08012440 - _0807E864 - _0807E930 0x0008 - Call sub_0807F2D4 - _0807E930 0x0009 + SetPlayerIdle + SetAnimation 0x0008 + Call WaitForFrameHiBit + SetAnimation 0x0009 Call sub_0806B2B4 WaitUntilTextboxCloses CheckLocalFlag 0x00b3 @@ -27,8 +27,8 @@ script_08012440: .endif .endif script_08012474: - _0807E878 - _0807E930 0x0000 + EnablePlayerControl + SetAnimation 0x0000 Jump script_08012440 .align 2, 0 diff --git a/data/scripts/hyruleTown/script_LibrarianLeft.inc b/data/scripts/hyruleTown/script_LibrarianLeft.inc index 89861977..2cda1ba0 100644 --- a/data/scripts/hyruleTown/script_LibrarianLeft.inc +++ b/data/scripts/hyruleTown/script_LibrarianLeft.inc @@ -2,17 +2,17 @@ SCRIPT_START script_LibrarianLeft BeginBlock _0807E9D4 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x000a - _0807E930 0x0000 + SetAnimation 0x0000 EndBlock script_08008BA2: - _0807E944 - _0807E864 - _0807E930 0x0004 - Call sub_0807F2D4 + TriggerInteract + SetPlayerIdle + SetAnimation 0x0004 + Call WaitForFrameHiBit MessageFromTarget 0x4912 WaitUntilTextboxCloses - _0807E930 0x0008 - _0807E878 + SetAnimation 0x0008 + EnablePlayerControl Jump script_08008BA2 diff --git a/data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc b/data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc index 888e490f..6fbcd584 100644 --- a/data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc +++ b/data/scripts/hyruleTown/script_LibrarianLeftWithQuest.inc @@ -2,27 +2,27 @@ SCRIPT_START script_LibrarianLeftWithQuest BeginBlock _0807E9D4 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x000a - _0807E930 0x0000 + SetAnimation 0x0000 .ifdef EU SetGlobalFlag 0x0061 .endif EndBlock script_08008BD2: - _0807E944 - _0807E864 + TriggerInteract + SetPlayerIdle .ifndef EU SetGlobalFlag 0x0061 .endif - _0807E930 0x0004 - Call sub_0807F2D4 + SetAnimation 0x0004 + Call WaitForFrameHiBit WaitUntilTextboxCloses Call sub_0806BA34 JumpIfNot script_08008C54 WaitUntilTextboxCloses CallWithArg sub_0806BB1C, 0x00000000 - Call sub_0807F2D4 + Call WaitForFrameHiBit CallWithArg sub_0806BB1C, 0x00000001 Call sub_0806BB7C JumpIfNot script_08008C5C @@ -33,17 +33,17 @@ script_08008BD2: WaitForSyncFlag 0x00000004 Wait 0x000f PlaySound SFX_SECRET - _0807E930 0x0004 - Call sub_0807F2D4 + SetAnimation 0x0004 + Call WaitForFrameHiBit MessageNoOverlap 0x4913 WaitUntilTextboxCloses - _0807E930 0x0008 - Call sub_0807F2D4 + SetAnimation 0x0008 + Call WaitForFrameHiBit Jump script_08008C5C script_08008C54: - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x000f script_08008C5C: WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08008BD2 diff --git a/data/scripts/hyruleTown/script_LibrarianRight.inc b/data/scripts/hyruleTown/script_LibrarianRight.inc index b5af0dfc..df64ef65 100644 --- a/data/scripts/hyruleTown/script_LibrarianRight.inc +++ b/data/scripts/hyruleTown/script_LibrarianRight.inc @@ -2,18 +2,18 @@ SCRIPT_START script_LibrarianRight BeginBlock _0807E9D4 - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 DoPostScriptAction 0x000a EndBlock script_08008B6E: - _0807E944 - _0807E864 - _0807E930 0x0004 - Call sub_0807F2D4 + TriggerInteract + SetPlayerIdle + SetAnimation 0x0004 + Call WaitForFrameHiBit Call sub_0806BBB0 WaitUntilTextboxCloses - _0807E930 0x0008 - _0807E878 + SetAnimation 0x0008 + EnablePlayerControl Jump script_08008B6E .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_LibraryVisitor.inc b/data/scripts/hyruleTown/script_LibraryVisitor.inc index 1a5015fe..1d0d7132 100644 --- a/data/scripts/hyruleTown/script_LibraryVisitor.inc +++ b/data/scripts/hyruleTown/script_LibraryVisitor.inc @@ -8,11 +8,11 @@ SCRIPT_START script_LibraryVisitor script_08008DA0: CheckEntityInteractType JumpIfNot script_08008DA0 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08061FD8 Call sub_08062048 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08008DA0 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_MaidTown.inc b/data/scripts/hyruleTown/script_MaidTown.inc index c75426d4..bc708306 100644 --- a/data/scripts/hyruleTown/script_MaidTown.inc +++ b/data/scripts/hyruleTown/script_MaidTown.inc @@ -2,7 +2,7 @@ SCRIPT_START script_MaidTown BeginBlock _0807E9D4 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a SetIntVariable sub_08064688 diff --git a/data/scripts/hyruleTown/script_MalonHyruleTown.inc b/data/scripts/hyruleTown/script_MalonHyruleTown.inc index 6e1f2b13..f9607b9c 100644 --- a/data/scripts/hyruleTown/script_MalonHyruleTown.inc +++ b/data/scripts/hyruleTown/script_MalonHyruleTown.inc @@ -3,16 +3,16 @@ SCRIPT_START script_MalonHyruleTown BeginBlock DoPostScriptAction 0x000a DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x000e + SetAnimationState 0x0004 + SetAnimation 0x000e EndBlock Call sub_08065914 script_08014F4A: CheckEntityInteractType JumpIfNot script_08014F4A - _0807E864 + SetPlayerIdle Call sub_0807DF28 - _0807EB74 + FacePlayer DoPostScriptAction 0x0000 BeginBlock MessageNoOverlap 0x3b0b @@ -38,7 +38,7 @@ script_08014FA2: script_08014FA6: WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 - _0807EB44 0x0004 - _0807E930 0x000e + EnablePlayerControl + SetAnimationState 0x0004 + SetAnimation 0x000e Jump script_08014F4A diff --git a/data/scripts/hyruleTown/script_Mama.inc b/data/scripts/hyruleTown/script_Mama.inc index c7a31761..c286a0d2 100644 --- a/data/scripts/hyruleTown/script_Mama.inc +++ b/data/scripts/hyruleTown/script_Mama.inc @@ -3,21 +3,21 @@ SCRIPT_START script_Mama BeginBlock Call sub_0806C4F8 DoPostScriptAction 0x000a - _0807EB44 0x0000 + SetAnimationState 0x0000 EndBlock script_0800E932: CheckEntityInteractType JumpIfNot script_0800E932 - _0807E864 - _0807EB44 0x0004 - _0807E930 0x0004 + SetPlayerIdle + SetAnimationState 0x0004 + SetAnimation 0x0004 script_0800E942: Call sub_0806C4A8 JumpIfNot script_0800E942 Call sub_0806C4DC WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0000 - _0807E930 0x0000 + EnablePlayerControl + SetAnimationState 0x0000 + SetAnimation 0x0000 Jump script_0800E932 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Marcy.inc b/data/scripts/hyruleTown/script_Marcy.inc index f54f82fd..24c437a9 100644 --- a/data/scripts/hyruleTown/script_Marcy.inc +++ b/data/scripts/hyruleTown/script_Marcy.inc @@ -4,13 +4,13 @@ SCRIPT_START script_Marcy DoPostScriptAction 0x0007 _0807E9D4 DoPostScriptAction 0x000a - _0807E930 0x0000 + SetAnimation 0x0000 EndBlock script_08010746: CheckEntityInteractType JumpIfNot script_08010746 - _0807E864 - _0807E930 0x0004 + SetPlayerIdle + SetAnimation 0x0004 BeginBlock Call sub_08062D18 JumpIfNot script_08010786 @@ -29,6 +29,6 @@ script_08010778: script_08010786: EndBlock WaitUntilTextboxCloses - _0807E878 - _0807E930 0x0008 + EnablePlayerControl + SetAnimation 0x0008 Jump script_08010746 diff --git a/data/scripts/hyruleTown/script_Mayor.inc b/data/scripts/hyruleTown/script_Mayor.inc index 53885de4..83a6c6a5 100644 --- a/data/scripts/hyruleTown/script_Mayor.inc +++ b/data/scripts/hyruleTown/script_Mayor.inc @@ -3,21 +3,21 @@ SCRIPT_START script_Mayor BeginBlock Call sub_0806CE5C DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0008 + SetAnimationState 0x0004 + SetAnimation 0x0008 EndBlock script_0800EA6A: CheckEntityInteractType JumpIfNot script_0800EA6A - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000004 - Call sub_0807F2D4 - _0807E930 0x0009 + Call WaitForFrameHiBit + SetAnimation 0x0009 Call sub_0806CE80 WaitUntilTextboxCloses - _0807E878 - _0807E930 0x000a - Call sub_0807F2D4 - _0807E930 0x0008 + EnablePlayerControl + SetAnimation 0x000a + Call WaitForFrameHiBit + SetAnimation 0x0008 Jump script_0800EA6A diff --git a/data/scripts/hyruleTown/script_MutohInMill.inc b/data/scripts/hyruleTown/script_MutohInMill.inc index fdefdeb9..ee10eeba 100644 --- a/data/scripts/hyruleTown/script_MutohInMill.inc +++ b/data/scripts/hyruleTown/script_MutohInMill.inc @@ -3,19 +3,19 @@ SCRIPT_START script_MutohInMill BeginBlock Call sub_08067100 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock script_0800954E: CheckEntityInteractType JumpIfNot script_0800954E - _0807E864 + SetPlayerIdle DoPostScriptAction 0x0001 - _0807EB74 + FacePlayer Call sub_080670E4 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0000 Jump script_0800954E .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Nayru.inc b/data/scripts/hyruleTown/script_Nayru.inc index 2815c9c5..571e2bef 100644 --- a/data/scripts/hyruleTown/script_Nayru.inc +++ b/data/scripts/hyruleTown/script_Nayru.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Nayru BeginBlock Call sub_08064928 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 DoPostScriptAction 0x000a CheckGlobalFlag 0x0047 @@ -14,13 +14,13 @@ script_08011D46: CheckEntityInteractType JumpIfNot script_08011D46 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 MessageNoOverlap 0x4513 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011D46 script_08011D6E: @@ -33,29 +33,29 @@ script_08011D6E: CheckEntityInteractType JumpIfNot script_08011D6E EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 MessageNoOverlap 0x3103 WaitUntilTextboxCloses CheckTextboxResult JumpIf script_08011DBA - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011D6E script_08011DAC: CheckEntityInteractType JumpIfNot script_08011DAC - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 script_08011DBA: MessageNoOverlap 0x3106 WaitUntilTextboxCloses SetGlobalFlag 0x002c - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011DAC .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Nayru2.inc b/data/scripts/hyruleTown/script_Nayru2.inc index c4ab770d..dadf8cb8 100644 --- a/data/scripts/hyruleTown/script_Nayru2.inc +++ b/data/scripts/hyruleTown/script_Nayru2.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Nayru2 BeginBlock Call sub_08064928 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 DoPostScriptAction 0x000a EndBlock @@ -16,8 +16,8 @@ script_08011F22: CheckEntityInteractType JumpIfNot script_08011F22 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 CheckGlobalFlag 0x0048 JumpIf script_08011F58 @@ -30,21 +30,21 @@ script_08011F58: CheckTextboxResult JumpIf script_08011F80 script_08011F64: - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011F22 script_08011F72: CheckEntityInteractType JumpIfNot script_08011F72 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 script_08011F80: MessageNoOverlap 0x3112 WaitUntilTextboxCloses SetGlobalFlag 0x002f - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08011F72 diff --git a/data/scripts/hyruleTown/script_NayruAlone.inc b/data/scripts/hyruleTown/script_NayruAlone.inc index 7436a2c2..c1e75c7d 100644 --- a/data/scripts/hyruleTown/script_NayruAlone.inc +++ b/data/scripts/hyruleTown/script_NayruAlone.inc @@ -2,19 +2,19 @@ SCRIPT_START script_NayruAlone BeginBlock Call sub_08064928 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 DoPostScriptAction 0x000a EndBlock script_08012216: CheckEntityInteractType JumpIfNot script_08012216 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 MessageNoOverlap 0x4525 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_08012216 diff --git a/data/scripts/hyruleTown/script_NayruMovedIn.inc b/data/scripts/hyruleTown/script_NayruMovedIn.inc index dbef277e..ab975772 100644 --- a/data/scripts/hyruleTown/script_NayruMovedIn.inc +++ b/data/scripts/hyruleTown/script_NayruMovedIn.inc @@ -2,15 +2,15 @@ SCRIPT_START script_NayruMovedIn BeginBlock Call sub_08064928 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 DoPostScriptAction 0x000a EndBlock script_080120C6: CheckEntityInteractType JumpIfNot script_080120C6 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 CheckLocalFlag 0x0095 JumpIf script_080120EA @@ -51,8 +51,8 @@ script_08012126: MessageNoOverlap 0x311b script_0801212A: WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_080120C6 .align 2, 0 diff --git a/data/scripts/hyruleTown/script_Object69SimonsSimulation.inc b/data/scripts/hyruleTown/script_Object69SimonsSimulation.inc index 00761031..0a1a958a 100644 --- a/data/scripts/hyruleTown/script_Object69SimonsSimulation.inc +++ b/data/scripts/hyruleTown/script_Object69SimonsSimulation.inc @@ -1,30 +1,30 @@ @ Simons Simulation OBJECT_69 SCRIPT_START script_Object69SimonsSimulation BeginBlock - _0807E888 + DisablePlayerControl EndBlock CallWithArg sub_0806C2A0, 0x00000001 WaitForFadeFinish Wait 0x003c - _0807E878 + EnablePlayerControl SetRoomFlag 0x0000 PlayBgm BGM_FIGHT_THEME2 script_08011C04: CheckRoomFlag 0x0064 JumpIfNot script_08011C04 StopBgm - _0807E864 + SetPlayerIdle Wait 0x003c CameraTargetEntity Wait 0x003c Call Simon_CreateChest Wait 0x003c CameraTargetPlayer - _0807E878 + EnablePlayerControl script_08011C28: CheckLocalFlag 0x0001 JumpIfNot script_08011C28 - _0807E888 + DisablePlayerControl WaitPlayerGetItem Wait 0x001e CallWithArg sub_0806C2A0, 0x00000000 diff --git a/data/scripts/hyruleTown/script_Object6ACarlov.inc b/data/scripts/hyruleTown/script_Object6ACarlov.inc index b4987e83..6ba8d7a9 100644 --- a/data/scripts/hyruleTown/script_Object6ACarlov.inc +++ b/data/scripts/hyruleTown/script_Object6ACarlov.inc @@ -8,22 +8,22 @@ SCRIPT_START script_Object6ACarlov script_080145C2: CheckRoomFlag 0x0005 JumpIfNot script_080145C2 - _0807E864 + SetPlayerIdle ClearRoomFlag 0x0005 .ifdef EU Wait 0x0018 _0807E8E4_1 - _0807EB44 0x0006 + SetAnimationState 0x0006 .else Wait 0x000c - _0807EB8C + FaceAwayFromPlayer .endif MessageFromTargetPos 0x432e, 0x000c WaitUntilTextboxCloses .ifdef EU Wait 0x0018 .endif - _0807E878 + EnablePlayerControl Jump script_080145C2 script_080145E4: EndBlock diff --git a/data/scripts/hyruleTown/script_Object6ACarlov2.inc b/data/scripts/hyruleTown/script_Object6ACarlov2.inc index a10f0656..37ed8f5f 100644 --- a/data/scripts/hyruleTown/script_Object6ACarlov2.inc +++ b/data/scripts/hyruleTown/script_Object6ACarlov2.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Object6ACarlov2 BeginBlock DoPostScriptAction 0x0008 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock script_080145F8: @@ -13,19 +13,19 @@ script_080145F8: JumpIfNot script_080145F8 CheckRoomFlag 0x0009 JumpIf script_08014632 - _0807E864 + SetPlayerIdle Wait 0x0018 _0807E8E4_3 - _0807EB44 0x0002 + SetAnimationState 0x0002 MessageFromTargetPos 0x432b, 0x000c WaitUntilTextboxCloses Wait 0x0018 - _0807E878 + EnablePlayerControl Jump script_080145F8 script_08014632: CheckRoomFlag 0x0000 JumpIfNot script_08014632 - _0807E864 + SetPlayerIdle Call sub_0807DF28 script_08014642: CheckRoomFlag 0x0009 @@ -33,12 +33,12 @@ script_08014642: SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000008 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_080145F8 .else CheckRoomFlag 0x0000 JumpIfNot script_080145F8 - _0807E864 + SetPlayerIdle Call sub_0807DF28 script_08014608: CheckRoomFlag 0x0004 @@ -46,7 +46,7 @@ script_08014608: SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000008 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_080145F8 .endif .align 2, 0 diff --git a/data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc b/data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc index ad162bf7..853106e8 100644 --- a/data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc +++ b/data/scripts/hyruleTown/script_Object6APreventPlayerLeaveCarlov.inc @@ -7,14 +7,14 @@ script_0801454C: JumpIfNot script_0801454C CheckRoomFlag 0x0000 JumpIfNot script_0801454C - _0807E864 - _0807EB28 0x4217 + SetPlayerIdle + EzloMessage 0x4217 WaitUntilTextboxCloses StartPlayerScript script_PlayerWhenLeavingCarlovAlreadyPaid Wait 0x0010 SetSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000002 - _0807E878 + EnablePlayerControl Jump script_0801454C SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_OldLadyCatHouse1.inc b/data/scripts/hyruleTown/script_OldLadyCatHouse1.inc index cfd7bef0..c5905a83 100644 --- a/data/scripts/hyruleTown/script_OldLadyCatHouse1.inc +++ b/data/scripts/hyruleTown/script_OldLadyCatHouse1.inc @@ -3,7 +3,7 @@ SCRIPT_START script_OldLadyCatHouse1 BeginBlock Call sub_08061E70 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 Call sub_08061FD8 EndBlock Jump script_0800EBF4 diff --git a/data/scripts/hyruleTown/script_OldLadyCatHouse2.inc b/data/scripts/hyruleTown/script_OldLadyCatHouse2.inc index a2b33563..edaf3a11 100644 --- a/data/scripts/hyruleTown/script_OldLadyCatHouse2.inc +++ b/data/scripts/hyruleTown/script_OldLadyCatHouse2.inc @@ -3,18 +3,18 @@ SCRIPT_START script_OldLadyCatHouse2 BeginBlock Call sub_08061E70 DoPostScriptAction 0x000a - _0807EB44 0x0006 + SetAnimationState 0x0006 Call sub_08061FD8 EndBlock @ Common end code for Townspersons? script_0800EBF4: CheckEntityInteractType JumpIfNot script_0800EBF4 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08061FD8 Call sub_08062048 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800EBF4 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Phonograph.inc b/data/scripts/hyruleTown/script_Phonograph.inc index b4cae722..9dae4972 100644 --- a/data/scripts/hyruleTown/script_Phonograph.inc +++ b/data/scripts/hyruleTown/script_Phonograph.inc @@ -6,7 +6,7 @@ SCRIPT_START script_Phonograph script_0800BA46: CheckEntityInteractType JumpIfNot script_0800BA46 - _0807E864 + SetPlayerIdle Call sub_0807DF28 MessageFromTarget 0x3301 WaitUntilTextboxCloses @@ -17,5 +17,5 @@ script_0800BA46: PlayBGM script_0800BA6C: Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800BA46 diff --git a/data/scripts/hyruleTown/script_PhonographDoor.inc b/data/scripts/hyruleTown/script_PhonographDoor.inc index f5de6c5e..163dfdae 100644 --- a/data/scripts/hyruleTown/script_PhonographDoor.inc +++ b/data/scripts/hyruleTown/script_PhonographDoor.inc @@ -19,18 +19,18 @@ SCRIPT_START script_PhonographDoor CheckPlayerInRegion2 0x0808 JumpIfNot script_PhonographDoor EndBlock - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StartPlayerScript script_PlayerCannotEnter WaitForSyncFlagAndClear 0x00000001 CheckRoomFlag 0x0001 JumpIf script_080109DE - _0807EB28 0x0b64 + EzloMessage 0x0b64 WaitUntilTextboxCloses script_080109DE: Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_PhonographDoor script_080109EA: DoPostScriptAction 0x0006 diff --git a/data/scripts/hyruleTown/script_Pina.inc b/data/scripts/hyruleTown/script_Pina.inc index 2218ed8d..866ef334 100644 --- a/data/scripts/hyruleTown/script_Pina.inc +++ b/data/scripts/hyruleTown/script_Pina.inc @@ -1,21 +1,21 @@ @ Hyrule Town Pina SCRIPT_START script_Pina BeginBlock - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 Call sub_08063CAC DoPostScriptAction 0x000a - Call sub_0807F348 + Call SetPriorityMessage EndBlock script_080104BC: CheckEntityInteractType JumpIfNot script_080104BC - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000004 Call sub_08063C90 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl CallWithArg sub_0807F3D8, 0x00000000 Jump script_080104BC diff --git a/data/scripts/hyruleTown/script_Pita.inc b/data/scripts/hyruleTown/script_Pita.inc index eaa60fe9..5732755d 100644 --- a/data/scripts/hyruleTown/script_Pita.inc +++ b/data/scripts/hyruleTown/script_Pita.inc @@ -3,15 +3,15 @@ SCRIPT_START script_Pita BeginBlock _0807E9D4 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock script_080106BE: CheckEntityInteractType JumpIfNot script_080106BE - _0807E864 - _0807EB74 - Call sub_0807F2D4 + SetPlayerIdle + FacePlayer + Call WaitForFrameHiBit DoPostScriptAction 0x0000 HasRoomItemForSale JumpIf script_080106E0 @@ -39,7 +39,7 @@ script_08010724: WaitPlayerGetItem script_08010726: WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0001 Jump script_080106BE .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc b/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc index 32ceacb2..da2b3e4f 100644 --- a/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc +++ b/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc @@ -1,12 +1,12 @@ @ Player at Library fall through trap SCRIPT_START script_PlayerActivatedTrapCard - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 Wait 0x0014 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 Wait 0x0014 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x0005 Wait 0x003c diff --git a/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc b/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc index 985483a2..bcc539a8 100644 --- a/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc +++ b/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc @@ -3,9 +3,9 @@ SCRIPT_START script_PlayerAtDrLeftDoor BeginBlock SetEntitySpeed 0x0100 EndBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0001 - _0807ECC4 0x0008 + WalkSouth 0x0008 SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc b/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc index d74971cd..25411c1b 100644 --- a/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc +++ b/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc @@ -3,8 +3,8 @@ SCRIPT_START script_PlayerAtInnDoor BeginBlock SetEntitySpeed 0x0100 EndBlock - _0807ECC4 0x0010 - _0807EB44 0x0004 + WalkSouth 0x0010 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/hyruleTown/script_PlayerAtRem.inc b/data/scripts/hyruleTown/script_PlayerAtRem.inc index 14ab94ad..3dab6b77 100644 --- a/data/scripts/hyruleTown/script_PlayerAtRem.inc +++ b/data/scripts/hyruleTown/script_PlayerAtRem.inc @@ -1,7 +1,7 @@ @ Player at Rem SCRIPT_START script_PlayerAtRem BeginBlock - _0807EB44 0x0006 + SetAnimationState 0x0006 SetEntitySpeed 0x0140 EndBlock _0807EDD4 0x00a8, 0x0060 diff --git a/data/scripts/hyruleTown/script_PlayerCannotEnter.inc b/data/scripts/hyruleTown/script_PlayerCannotEnter.inc index 9ae17985..e7ef3883 100644 --- a/data/scripts/hyruleTown/script_PlayerCannotEnter.inc +++ b/data/scripts/hyruleTown/script_PlayerCannotEnter.inc @@ -3,8 +3,8 @@ SCRIPT_START script_PlayerCannotEnter BeginBlock SetEntitySpeed 0x0100 EndBlock - _0807EC94 0x0010 - _0807EB44 0x0002 + WalkEast 0x0010 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/hyruleTown/script_PlayerSleepingInn.inc b/data/scripts/hyruleTown/script_PlayerSleepingInn.inc index eb09df0a..53d68d84 100644 --- a/data/scripts/hyruleTown/script_PlayerSleepingInn.inc +++ b/data/scripts/hyruleTown/script_PlayerSleepingInn.inc @@ -2,18 +2,18 @@ SCRIPT_START script_PlayerSleepingInn BeginBlock Call sub_0807DF28 - _0807E864 + SetPlayerIdle ModHealth 0x00a0 EndBlock Wait 0x003c - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade4 WaitForFadeFinish script_08010A78: - Call sub_0807F0D8 + Call CheckAnyKeyPressed JumpIfNot script_08010A78 DoPostScriptAction 0x0014 - _0807E878 + EnablePlayerControl Call sub_0807DF50 Call sub_080791D0 SCRIPT_END diff --git a/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc b/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc index 1666a56b..261a7afb 100644 --- a/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc +++ b/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc @@ -1,7 +1,7 @@ @ Player at Librari move on trap SCRIPT_START script_PlayerStepOnTrap BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 SetEntitySpeed 0x0100 EndBlock DoPostScriptAction 0x0001 diff --git a/data/scripts/hyruleTown/script_PlayerWakingUpAtSimons.inc b/data/scripts/hyruleTown/script_PlayerWakingUpAtSimons.inc index 748c70ef..8f68ac3c 100644 --- a/data/scripts/hyruleTown/script_PlayerWakingUpAtSimons.inc +++ b/data/scripts/hyruleTown/script_PlayerWakingUpAtSimons.inc @@ -1,7 +1,7 @@ @ Player waking up after Simons Simulation SCRIPT_START script_PlayerWakingUpAtSimons BeginBlock - _0807E864 + SetPlayerIdle EndBlock Wait 0x003c CallWithArg sub_0806C2A0, 0x00000001 diff --git a/data/scripts/hyruleTown/script_Postman.inc b/data/scripts/hyruleTown/script_Postman.inc index 01b75b3f..5f12cb8d 100644 --- a/data/scripts/hyruleTown/script_Postman.inc +++ b/data/scripts/hyruleTown/script_Postman.inc @@ -3,10 +3,10 @@ SCRIPT_START script_Postman BeginBlock CheckInventory1 0x0067 JumpIfNot script_08010B62 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetEntitySpeed 0x0180 - CallWithArg sub_0807F348 + CallWithArg SetPriorityMessage Call sub_0806075C EndBlock WaitUntilTextboxCloses @@ -20,7 +20,7 @@ script_08010B1C: script_08010B22: EndBlock BeginBlock - _0807E564 + CheckPlayerMinish JumpIf script_08010B3A CallWithArg sub_080608E4, 0x00000000 JumpIf script_08010B44 diff --git a/data/scripts/hyruleTown/script_Rem.inc b/data/scripts/hyruleTown/script_Rem.inc index 85487b0e..7fb0f0c8 100644 --- a/data/scripts/hyruleTown/script_Rem.inc +++ b/data/scripts/hyruleTown/script_Rem.inc @@ -2,8 +2,8 @@ SCRIPT_START script_Rem BeginBlock CallWithArg sub_0806A93C, 0x12345678 - _0807EB44 0x0004 - _0807E930 0x0002 + SetAnimationState 0x0004 + SetAnimation 0x0002 CheckInventory1 0x0015 JumpIf script_080130B6 CheckLocalFlag 0x0060 @@ -20,17 +20,17 @@ script_08012F48: script_08012F50: Call sub_0806A96C JumpIfNot script_08012F50 - _0807E864 + SetPlayerIdle MessageNoOverlap 0x4401 WaitUntilTextboxCloses SetLocalFlag 0x0061 - _0807E878 - _0807E908 0x0001 + EnablePlayerControl + SetAction 0x0001 script_08012F6C: Call sub_0806A96C JumpIfNot script_08012F6C MessageNoOverlap 0x4402 WaitUntilTextboxCloses - _0807E908 0x0001 + SetAction 0x0001 Jump script_08012F6C SCRIPT_END diff --git a/data/scripts/hyruleTown/script_RemFallingAsleep.inc b/data/scripts/hyruleTown/script_RemFallingAsleep.inc index b685fd1f..996ea20f 100644 --- a/data/scripts/hyruleTown/script_RemFallingAsleep.inc +++ b/data/scripts/hyruleTown/script_RemFallingAsleep.inc @@ -3,24 +3,24 @@ SCRIPT_START script_RemFallingAsleep BeginBlock CheckLocalFlag 0x0060 JumpIf script_08012FD2 - _0807E864 + SetPlayerIdle Call sub_0807DF28 StartPlayerScript script_PlayerAtRem SetLocalFlag 0x0060 ClearLocalFlag 0x0061 EndBlock WaitForSyncFlagAndClear 0x00000004 - _0807E908 0x0004 + SetAction 0x0004 Call sub_0806A958 CallWithArg sub_0807F93C, 0x0000f2f4 Call sub_0807DF50 - _0807E878 + EnablePlayerControl SetLocalFlag 0x0062 Jump script_08012FFA script_08012FD2: BeginBlock - _0807E930 0x000d - _0807E908 0x0005 + SetAnimation 0x000d + SetAction 0x0005 SetLocalFlag 0x0062 CallWithArg sub_0807F93C, 0x0000f2f4 Call sub_0806AA10 @@ -28,14 +28,14 @@ script_08012FD2: CheckInventory1 0x0038 JumpIf script_08013006 script_08012FFA: - _0807E944 + TriggerInteract MessageNoOverlap 0x4403 WaitUntilTextboxCloses Jump script_08012FFA script_08013006: - _0807E944 + TriggerInteract BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 EndBlock PlaySound SFX_TASK_COMPLETE @@ -44,7 +44,7 @@ script_08013006: Wait 0x001e _0807E8E4_0 Call sub_0806AB9C - _0807E930 0x000b + SetAnimation 0x000b Wait 0x003c DoPostScriptAction 0x0004 Wait 0x003c @@ -57,31 +57,31 @@ script_08013006: WaitUntilTextboxCloses Wait 0x001e Call sub_0806A9E8 - _0807E930 0x000f + SetAnimation 0x000f Wait 0x00f0 MessageNoOverlap 0x4405 WaitUntilTextboxCloses SetSyncFlag 0x00000200 GivePlayerItem 0x0015 WaitPlayerGetItem - _0807EB8C + FaceAwayFromPlayer MessageNoOverlap 0x4406 WaitUntilTextboxCloses - _0807E908 0x0001 + SetAction 0x0001 Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_0801308A: Call sub_0806A96C JumpIfNot script_0801308A MessageNoOverlap 0x4407 WaitUntilTextboxCloses - _0807E908 0x0001 + SetAction 0x0001 script_0801309E: Call sub_0806A96C JumpIfNot script_0801309E MessageNoOverlap 0x440d WaitUntilTextboxCloses - _0807E908 0x0001 + SetAction 0x0001 Jump script_0801308A script_080130B6: CheckLocalFlag 0x0062 @@ -92,9 +92,9 @@ script_080130C4: script_080130C6: Call sub_0806A96C JumpIfNot script_080130C6 - _0807E864 + SetPlayerIdle Call sub_0806AA18 WaitUntilTextboxCloses - _0807E878 - _0807E908 0x0001 + EnablePlayerControl + SetAction 0x0001 Jump script_080130C6 diff --git a/data/scripts/hyruleTown/script_RemTownMinish.inc b/data/scripts/hyruleTown/script_RemTownMinish.inc index d7f649b8..fb5e9ec6 100644 --- a/data/scripts/hyruleTown/script_RemTownMinish.inc +++ b/data/scripts/hyruleTown/script_RemTownMinish.inc @@ -4,7 +4,7 @@ SCRIPT_START script_RemTownMinish _0807E9D4 DoPostScriptAction 0x000a DoPostScriptAction 0x0012 - Call sub_0807F348 + Call SetPriorityMessage EndBlock script_08013128: EndBlock @@ -14,9 +14,9 @@ script_08013128: Call sub_0806AEE4 Jump script_08013128 script_0801313C: - _0807E864 + SetPlayerIdle EndBlock - _0807EB74 + FacePlayer Call sub_0806AED8 CallWithArg sub_0806AA50, 0x00000000 WaitUntilTextboxCloses @@ -25,10 +25,10 @@ script_0801313C: CallWithArg sub_0806AA50, 0x00000002 WaitUntilTextboxCloses JumpIf script_08013176 - _0807E878 + EnablePlayerControl Jump script_08013128 script_08013176: SetIntVariable 0x00000403 - Call sub_0807F420 - _0807E878 + Call LoadMenu + EnablePlayerControl Jump script_08013128 diff --git a/data/scripts/hyruleTown/script_Simon.inc b/data/scripts/hyruleTown/script_Simon.inc index 4eb0c09c..44bd59b5 100644 --- a/data/scripts/hyruleTown/script_Simon.inc +++ b/data/scripts/hyruleTown/script_Simon.inc @@ -3,34 +3,34 @@ SCRIPT_START script_Simon BeginBlock _0807E9D4 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock CheckGlobalFlag 0x0050 JumpIfNot script_08011B84 WaitForSyncFlagAndClear 0x00000004 - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0004 Wait 0x003c - _0807EB8C + FaceAwayFromPlayer MessageNoOverlap 0x3d07 WaitUntilTextboxCloses - _0807EB44 0x0004 + SetAnimationState 0x0004 ClearGlobalFlag 0x0050 Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_08011B84: CheckEntityInteractType JumpIfNot script_08011B84 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x3d01 WaitUntilTextboxCloses CheckTextboxResult JumpIf script_08011BA4 script_08011B9A: - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 Jump script_08011B84 script_08011BA4: HasRupees 0x000a diff --git a/data/scripts/hyruleTown/script_SimonsDoor.inc b/data/scripts/hyruleTown/script_SimonsDoor.inc index af0ab35f..4e9b8ba0 100644 --- a/data/scripts/hyruleTown/script_SimonsDoor.inc +++ b/data/scripts/hyruleTown/script_SimonsDoor.inc @@ -2,18 +2,18 @@ SCRIPT_START script_SimonsDoor CheckPlayerInRegion2 0x0808 JumpIfNot script_SimonsDoor - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 StartPlayerScript script_PlayerCannotEnter WaitForSyncFlagAndClear 0x00000001 CheckRoomFlag 0x0001 JumpIf script_08010994 - _0807EB28 0x0b63 + EzloMessage 0x0b63 WaitUntilTextboxCloses script_08010994: Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_SimonsDoor diff --git a/data/scripts/hyruleTown/script_SittingPerson.inc b/data/scripts/hyruleTown/script_SittingPerson.inc index de9aafde..0dc70fbc 100644 --- a/data/scripts/hyruleTown/script_SittingPerson.inc +++ b/data/scripts/hyruleTown/script_SittingPerson.inc @@ -10,16 +10,16 @@ SCRIPT_START script_SittingPerson script_0800ED20: CheckEntityInteractType JumpIfNot script_0800ED20 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_08063850, 0x00000000 Call sub_08063944 WaitUntilTextboxCloses JumpIfNot script_0800ED46 - _0807F050 0x0070 + GiveKinstone 0x0070 WaitPlayerGetItem script_0800ED46: - _0807E878 + EnablePlayerControl Call sub_08063874 CallWithArg sub_08063850, 0x00000000 Jump script_0800ED20 diff --git a/data/scripts/hyruleTown/script_SmallTownMinish.inc b/data/scripts/hyruleTown/script_SmallTownMinish.inc index 7438f1cd..d97d0801 100644 --- a/data/scripts/hyruleTown/script_SmallTownMinish.inc +++ b/data/scripts/hyruleTown/script_SmallTownMinish.inc @@ -1,10 +1,10 @@ @ Hyrule Town SmallTownMinish SCRIPT_START script_SmallTownMinish BeginBlock - _0807E564 + CheckPlayerMinish JumpIfNot script_08010BAC Call sub_0807F924 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x0007 DoPostScriptAction 0x000a @@ -12,16 +12,16 @@ SCRIPT_START script_SmallTownMinish script_08010B88: EndBlock BeginBlock - _0807E564 + CheckPlayerMinish JumpIfNot script_08010BAC CheckEntityInteractType JumpIfNot script_08010B88 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806E2DC WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08010B88 script_08010BAC: DoPostScriptAction 0x0006 diff --git a/data/scripts/hyruleTown/script_Stamp.inc b/data/scripts/hyruleTown/script_Stamp.inc index c26672bc..c478adeb 100644 --- a/data/scripts/hyruleTown/script_Stamp.inc +++ b/data/scripts/hyruleTown/script_Stamp.inc @@ -4,18 +4,18 @@ SCRIPT_START script_Stamp DoPostScriptAction 0x0007 _0807E9D4 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock script_080107AA: CheckEntityInteractType JumpIfNot script_080107AA - _0807E864 - Call sub_0807F2D4 + SetPlayerIdle + Call WaitForFrameHiBit DoPostScriptAction 0x0001 Call sub_08062CBC WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0000 Jump script_080107AA .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Stockwell.inc b/data/scripts/hyruleTown/script_Stockwell.inc index c079da2b..b59499cf 100644 --- a/data/scripts/hyruleTown/script_Stockwell.inc +++ b/data/scripts/hyruleTown/script_Stockwell.inc @@ -9,56 +9,56 @@ SCRIPT_START script_Stockwell script_080142C4: EndBlock BeginBlock - _0807E564 + CheckPlayerMinish JumpIfNot script_080142C4 CheckPlayerInRegion 0x0098, 0x0058, 0x1818 JumpIfNot script_080142C4 EndBlock - _0807E864 + SetPlayerIdle SetLocalFlag 0x0053 Wait 0x0014 - _0807E908 0x0004 + SetAction 0x0004 Call sub_080654DC Wait 0x001e - _0807E930 0x0001 + SetAnimation 0x0001 Wait 0x000a - _0807E930 0x0003 + SetAnimation 0x0003 Wait 0x000a - _0807E930 0x0001 + SetAnimation 0x0001 Wait 0x000a - _0807E930 0x0003 + SetAnimation 0x0003 Wait 0x000a - _0807E930 0x0002 + SetAnimation 0x0002 Wait 0x001e MessageNoOverlap 0x2c12 WaitUntilTextboxCloses Wait 0x0014 - _0807E930 0x0004 - _0807E878 - _0807E908 0x0001 + SetAnimation 0x0004 + EnablePlayerControl + SetAction 0x0001 script_08014330: EndBlock BeginBlock - _0807E564 + CheckPlayerMinish JumpIf script_08014330 EntityHasHeight JumpIf script_08014330 CheckPlayerInRegion 0x00c0, 0x0068, 0x1010 JumpIfNot script_08014330 EndBlock - _0807E864 + SetPlayerIdle SetLocalFlag 0x0054 Wait 0x005a - _0807E908 0x0004 + SetAction 0x0004 Call sub_080654EC Wait 0x001e - _0807E930 0x0001 + SetAnimation 0x0001 Wait 0x001e MessageNoOverlap 0x2c13 WaitUntilTextboxCloses Wait 0x0014 - _0807E930 0x0004 - _0807E908 0x0001 - _0807E878 + SetAnimation 0x0004 + SetAction 0x0001 + EnablePlayerControl script_08014382: SCRIPT_END diff --git a/data/scripts/hyruleTown/script_StockwellBuy.inc b/data/scripts/hyruleTown/script_StockwellBuy.inc index 66e1b75f..436ae4dd 100644 --- a/data/scripts/hyruleTown/script_StockwellBuy.inc +++ b/data/scripts/hyruleTown/script_StockwellBuy.inc @@ -1,7 +1,7 @@ @ Hyrule Town Stockwell do you want to buy? SCRIPT_START script_StockwellBuy EndBlock - _0807E864 + SetPlayerIdle WaitUntilTextboxCloses CheckTextboxResult JumpIfNot script_080143AC @@ -10,14 +10,14 @@ SCRIPT_START script_StockwellBuy JumpIfNot script_080143AC Wait 0x003c WaitUntilTextboxCloses - _0807EB8C + FaceAwayFromPlayer Wait 0x001e MessageNoOverlapVar script_080143AC: WaitUntilTextboxCloses Wait 0x001e - _0807E930 0x0004 - _0807E908 0x0001 - _0807E878 + SetAnimation 0x0004 + SetAction 0x0001 + EnablePlayerControl SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_StockwellDogFood.inc b/data/scripts/hyruleTown/script_StockwellDogFood.inc index ea0f8908..90b56fc7 100644 --- a/data/scripts/hyruleTown/script_StockwellDogFood.inc +++ b/data/scripts/hyruleTown/script_StockwellDogFood.inc @@ -1,10 +1,10 @@ @ Stockwell pick up dog food SCRIPT_START script_StockwellDogFood EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 Call sub_080654FC - _0807E930 0x0001 + SetAnimation 0x0001 Call sub_080654EC Wait 0x003c MessageNoOverlap 0x2c16 @@ -27,16 +27,16 @@ script_080143FA: MessageNoOverlap 0x2c19 WaitUntilTextboxCloses SetIntVariable 0x00000303 - Call sub_0807F420 + Call LoadMenu .ifndef EU Wait 0x001e - _0807EB8C + FaceAwayFromPlayer MessageNoOverlap 0x2c22 WaitUntilTextboxCloses .endif script_0801443E: - _0807E930 0x0004 - _0807E908 0x0001 + SetAnimation 0x0004 + SetAction 0x0001 Call sub_0807DF50 - _0807E878 + EnablePlayerControl SCRIPT_END diff --git a/data/scripts/hyruleTown/script_Sturgeon.inc b/data/scripts/hyruleTown/script_Sturgeon.inc index 69be9796..db91eb49 100644 --- a/data/scripts/hyruleTown/script_Sturgeon.inc +++ b/data/scripts/hyruleTown/script_Sturgeon.inc @@ -4,16 +4,16 @@ SCRIPT_START script_Sturgeon Call sub_08064CC0 DoPostScriptAction 0x000a DoPostScriptAction 0x0007 - _0807EB44 0x0002 - _0807E930 0x0000 + SetAnimationState 0x0002 + SetAnimation 0x0000 EndBlock script_0800ED76: - _0807E944 - _0807E864 - _0807EB74 + TriggerInteract + SetPlayerIdle + FacePlayer Call sub_08064CD8 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800ED76 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc b/data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc index a0742182..ac3c3aab 100644 --- a/data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc +++ b/data/scripts/hyruleTown/script_SturgeonAllBooksCollected.inc @@ -3,8 +3,8 @@ SCRIPT_START script_SturgeonAllBooksCollected BeginBlock SetEntityPositionRelative 0x0068, 0x0018 DoPostScriptAction 0x000f - _0807EB44 0x0004 - _0807E930 0x0004 + SetAnimationState 0x0004 + SetAnimation 0x0004 SetEntitySpeed 0x0300 PlaySound SFX_STAIRS EndBlock @@ -16,34 +16,34 @@ SCRIPT_START script_SturgeonAllBooksCollected _0807EDD4 0x0068, 0x0078 Call sub_08064D10 Wait 0x000f - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x000f Call sub_08064D08 _0807EDD4 0x0098, 0x0078 Call sub_08064D10 Wait 0x000f - _0807EB44 0x0004 + SetAnimationState 0x0004 PlaySound SFX_PLY_LIFT Wait 0x000f - _0807EB44 0x0002 + SetAnimationState 0x0002 _0807EDD4 0x00ac, 0x0078 Wait 0x000f - _0807EB44 0x0004 + SetAnimationState 0x0004 PlaySound SFX_PLY_LIFT Wait 0x000f - _0807EB44 0x0002 + SetAnimationState 0x0002 _0807EDD4 0x00c0, 0x0078 Wait 0x000f - _0807EB44 0x0004 + SetAnimationState 0x0004 PlaySound SFX_PLY_LIFT Wait 0x000f - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x001e Call sub_08064D08 _0807EDD4 0x0068, 0x0078 Call sub_08064D10 Wait 0x000f - _0807EB44 0x0000 + SetAnimationState 0x0000 Wait 0x000f Call sub_08064D08 _0807EDD4 0x0068, 0x0018 diff --git a/data/scripts/hyruleTown/script_Teachers.inc b/data/scripts/hyruleTown/script_Teachers.inc index 5a9dfd9f..b7898239 100644 --- a/data/scripts/hyruleTown/script_Teachers.inc +++ b/data/scripts/hyruleTown/script_Teachers.inc @@ -3,16 +3,16 @@ SCRIPT_START script_Teachers BeginBlock Call sub_0806C674 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 EndBlock script_0800E806: CheckEntityInteractType JumpIfNot script_0800E806 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806C70C WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 Jump script_0800E806 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_TownMinish1.inc b/data/scripts/hyruleTown/script_TownMinish1.inc index 48a4ba7c..10db1da0 100644 --- a/data/scripts/hyruleTown/script_TownMinish1.inc +++ b/data/scripts/hyruleTown/script_TownMinish1.inc @@ -13,18 +13,18 @@ script_0800E6F4: Jump script_0800E6F4 script_0800E708: EndBlock - _0807E864 + SetPlayerIdle Call sub_0806AFE8 JumpIf script_0800E722 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800E6F4 script_0800E722: WaitUntilTextboxCloses GivePlayerItem 0x0057 WaitPlayerGetItem WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800E6F4 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_TownMinish2.inc b/data/scripts/hyruleTown/script_TownMinish2.inc index 14f1a7ea..30167de3 100644 --- a/data/scripts/hyruleTown/script_TownMinish2.inc +++ b/data/scripts/hyruleTown/script_TownMinish2.inc @@ -7,10 +7,10 @@ SCRIPT_START script_TownMinish2 script_0800E73E: CheckEntityInteractType JumpIfNot script_0800E73E - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0806AF60, 0x00000000 Call sub_0806AFE8 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800E73E diff --git a/data/scripts/hyruleTown/script_TownMinish3.inc b/data/scripts/hyruleTown/script_TownMinish3.inc index 468a7163..072ace66 100644 --- a/data/scripts/hyruleTown/script_TownMinish3.inc +++ b/data/scripts/hyruleTown/script_TownMinish3.inc @@ -24,15 +24,15 @@ script_0800E788: Jump script_0800E788 script_0800E7A4: EndBlock - _0807E864 + SetPlayerIdle Call sub_0806AFE8 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800E788 script_0800E7BA: DoPostScriptAction 0x000f - _0807EB44 0x0002 + SetAnimationState 0x0002 CallWithArg sub_0806AF60, 0x00000004 Call sub_0806AF70 _0807EE04 0x0188, 0x0058 diff --git a/data/scripts/hyruleTown/script_TownMinish4.inc b/data/scripts/hyruleTown/script_TownMinish4.inc index e28d7805..79c063e0 100644 --- a/data/scripts/hyruleTown/script_TownMinish4.inc +++ b/data/scripts/hyruleTown/script_TownMinish4.inc @@ -14,7 +14,7 @@ script_0800ED98: Jump script_0800ED98 script_0800EDB6: EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 CheckLocalFlag 0x00ae JumpIf script_0800EE3E @@ -29,16 +29,16 @@ script_0800EDB6: MessageFromTarget 0x4c09 WaitUntilTextboxCloses SetIntVariable 0x00000503 - Call sub_0807F420 + Call LoadMenu SetSyncFlag 0x00000040 Call sub_0807DF50 - _0807E878 + EnablePlayerControl SetLocalFlag 0x00ae Jump script_0800ED98 script_0800EE12: EndBlock WaitForSyncFlagAndClear 0x00000002 - _0807EB44 0x0002 + SetAnimationState 0x0002 CallWithArg sub_0806AF60, 0x00000008 WaitForSyncFlagAndClear 0x00000004 Call sub_0806AED8 @@ -48,5 +48,5 @@ script_0800EE3E: MessageFromTarget 0x4c16 WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800ED98 diff --git a/data/scripts/hyruleTown/script_TownMinish5.inc b/data/scripts/hyruleTown/script_TownMinish5.inc index e389bbcc..b69a9b3b 100644 --- a/data/scripts/hyruleTown/script_TownMinish5.inc +++ b/data/scripts/hyruleTown/script_TownMinish5.inc @@ -14,7 +14,7 @@ script_0800EE58: Jump script_0800EE58 script_0800EE76: EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 CheckLocalFlag 0x00ae JumpIf script_0800EEFE @@ -29,16 +29,16 @@ script_0800EE76: MessageFromTarget 0x4c09 WaitUntilTextboxCloses SetIntVariable 0x00000503 - Call sub_0807F420 + Call LoadMenu SetSyncFlag 0x00000008 Call sub_0807DF50 - _0807E878 + EnablePlayerControl SetLocalFlag 0x00ae Jump script_0800EE58 script_0800EED2: EndBlock WaitForSyncFlagAndClear 0x00000010 - _0807EB44 0x0006 + SetAnimationState 0x0006 CallWithArg sub_0806AF60, 0x00000008 WaitForSyncFlagAndClear 0x00000020 Call sub_0806AED8 @@ -48,7 +48,7 @@ script_0800EEFE: MessageFromTarget 0x4c15 WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800EE58 MessageFromTarget 0x4c07 WaitUntilTextboxCloses diff --git a/data/scripts/hyruleTown/script_TownMinish6.inc b/data/scripts/hyruleTown/script_TownMinish6.inc index 40da66be..c02ceb81 100644 --- a/data/scripts/hyruleTown/script_TownMinish6.inc +++ b/data/scripts/hyruleTown/script_TownMinish6.inc @@ -9,30 +9,30 @@ SCRIPT_START script_TownMinish6 EndBlock Jump script_0800EFFE script_0800EFDA: - _0807EB44 0x0006 + SetAnimationState 0x0006 CallWithArg sub_0806AF60, 0x00000008 Wait 0x0004 - _0807EB44 0x0004 + SetAnimationState 0x0004 CallWithArg sub_0806AF60, 0x00000008 Wait 0x0004 script_0800EFFE: - _0807EB44 0x0002 + SetAnimationState 0x0002 CallWithArg sub_0806AF60, 0x00000008 Wait 0x0004 - _0807EB44 0x0002 + SetAnimationState 0x0002 CallWithArg sub_0806AF60, 0x00000004 _0807EDD4 0x0088, 0x0040 DoPostScriptAction 0x000a - _0807EB44 0x0002 + SetAnimationState 0x0002 CallWithArg sub_0806AF60, 0x00000008 Wait 0x0004 - _0807EB44 0x0004 + SetAnimationState 0x0004 CallWithArg sub_0806AF60, 0x00000008 Wait 0x0004 - _0807EB44 0x0006 + SetAnimationState 0x0006 CallWithArg sub_0806AF60, 0x00000008 Wait 0x0004 - _0807EB44 0x0006 + SetAnimationState 0x0006 CallWithArg sub_0806AF60, 0x00000004 _0807EDD4 0x0068, 0x0040 DoPostScriptAction 0x000a diff --git a/data/scripts/hyruleTown/script_Townsperson1.inc b/data/scripts/hyruleTown/script_Townsperson1.inc index a3e3fa02..259d47b4 100644 --- a/data/scripts/hyruleTown/script_Townsperson1.inc +++ b/data/scripts/hyruleTown/script_Townsperson1.inc @@ -8,11 +8,11 @@ SCRIPT_START script_Townsperson1 script_080100DC: CheckEntityInteractType JumpIfNot script_080100DC - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08061FE4 Call sub_08062048 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_080100DC .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_TownspersonInDogHouse.inc b/data/scripts/hyruleTown/script_TownspersonInDogHouse.inc index b9db7e3c..7be84de5 100644 --- a/data/scripts/hyruleTown/script_TownspersonInDogHouse.inc +++ b/data/scripts/hyruleTown/script_TownspersonInDogHouse.inc @@ -3,17 +3,17 @@ SCRIPT_START script_TownspersonInDogHouse BeginBlock Call sub_08061E70 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 Call sub_08061FD8 EndBlock script_0800EB44: CheckEntityInteractType JumpIfNot script_0800EB44 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08061FD8 Call sub_08062048 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800EB44 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Wheaton.inc b/data/scripts/hyruleTown/script_Wheaton.inc index 277fcf4d..0eb0c98d 100644 --- a/data/scripts/hyruleTown/script_Wheaton.inc +++ b/data/scripts/hyruleTown/script_Wheaton.inc @@ -3,19 +3,19 @@ SCRIPT_START script_Wheaton BeginBlock _0807E9D4 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock script_08010686: CheckEntityInteractType JumpIfNot script_08010686 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer HasRoomItemForSale - Call sub_0807F77C + Call GetConditionSet MessageFromTargetTable 0x3c08, 0x3c09 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 Jump script_08010686 .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_WindTribespeopleVisitor.inc b/data/scripts/hyruleTown/script_WindTribespeopleVisitor.inc index c9cc110b..ce39d48f 100644 --- a/data/scripts/hyruleTown/script_WindTribespeopleVisitor.inc +++ b/data/scripts/hyruleTown/script_WindTribespeopleVisitor.inc @@ -3,17 +3,17 @@ SCRIPT_START script_WindTribespeopleVisitor BeginBlock Call sub_0806C870 DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 EndBlock script_0800EB0E: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_0800EB0E - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806C90C WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800EB0E .2byte 0x0000 diff --git a/data/scripts/kinstoneFusion/script_BombMinishKinstone.inc b/data/scripts/kinstoneFusion/script_BombMinishKinstone.inc index b72d6684..1094d83a 100644 --- a/data/scripts/kinstoneFusion/script_BombMinishKinstone.inc +++ b/data/scripts/kinstoneFusion/script_BombMinishKinstone.inc @@ -1,9 +1,9 @@ @ Bomb Forest Minish during Kinstone cutscene SCRIPT_START script_BombMinishKinstone BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 - Call sub_0807F348 + Call SetPriorityMessage EndBlock script_0800BB42: CheckRoomFlag 0x00ff diff --git a/data/scripts/kinstoneFusion/script_CarlovKinstone.inc b/data/scripts/kinstoneFusion/script_CarlovKinstone.inc index 93101d5e..a808530c 100644 --- a/data/scripts/kinstoneFusion/script_CarlovKinstone.inc +++ b/data/scripts/kinstoneFusion/script_CarlovKinstone.inc @@ -1,7 +1,7 @@ @ Kinstone Cutscene for Carlov SCRIPT_START script_CarlovKinstone BeginBlock - _0807E930 0x0000 + SetAnimation 0x0000 EndBlock script_0800BBE4: CheckRoomFlag 0x00ff diff --git a/data/scripts/kinstoneFusion/script_GhostBrotherKinstone.inc b/data/scripts/kinstoneFusion/script_GhostBrotherKinstone.inc index ffa2b0be..edff4065 100644 --- a/data/scripts/kinstoneFusion/script_GhostBrotherKinstone.inc +++ b/data/scripts/kinstoneFusion/script_GhostBrotherKinstone.inc @@ -2,7 +2,7 @@ SCRIPT_START script_GhostBrotherKinstone BeginBlock DoPostScriptAction 0x0007 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock script_0800BC18: @@ -13,8 +13,8 @@ script_0800BC18: MessageNoOverlap 0x0e07 WaitUntilTextboxCloses BeginBlock - _0807EB44 0x0000 - _0807E930 0x0004 + SetAnimationState 0x0000 + SetAnimation 0x0004 EndBlock Wait 0x003c Call sub_08065CCC diff --git a/data/scripts/kinstoneFusion/script_GormanFirstAppearance.inc b/data/scripts/kinstoneFusion/script_GormanFirstAppearance.inc index ea1e2150..091c269b 100644 --- a/data/scripts/kinstoneFusion/script_GormanFirstAppearance.inc +++ b/data/scripts/kinstoneFusion/script_GormanFirstAppearance.inc @@ -1,10 +1,10 @@ @ Hyrule Town Gorman during Kinstone cutscene for first empty house SCRIPT_START script_GormanFirstAppearance BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetEntitySpeed 0x0040 - Call sub_0807F348 + Call SetPriorityMessage EndBlock script_0800BA8E: CheckRoomFlag 0x00ff @@ -13,7 +13,7 @@ script_0800BA8E: Wait 0x001e DoPostScriptAction 0x0004 Wait 0x003c - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x001e _0807EDD4 0x02f0, 0x0350 Wait 0x001e diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone2.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone2.inc index 2262d29c..19b4002a 100644 --- a/data/scripts/kinstoneFusion/script_Goron1Kinstone2.inc +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone2.inc @@ -1,17 +1,17 @@ @ 1st Goron during Kinstone cutscene for 2nd Goron SCRIPT_START script_Goron1Kinstone2 BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 + SetAnimationState 0x0004 + SetAnimation 0x0008 + Call SetPriorityMessage EndBlock WaitForFadeFinish Wait 0x00f0 - _0807E930 0x0000 + SetAnimation 0x0000 Wait 0x003c MessageNoOverlap 0x0e0a WaitUntilTextboxCloses - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x003c SetSyncFlag 0x00000001 script_0800BD1C: @@ -19,7 +19,7 @@ script_0800BD1C: JumpIfNot script_0800BD1C SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 - _0807E930 0x0000 + SetAnimation 0x0000 DoPostScriptAction 0x0004 Wait 0x003c MessageNoOverlap 0x0e0c @@ -27,11 +27,11 @@ script_0800BD1C: SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 DoPostScriptAction 0x000f - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x0168 - _0807E930 0x0000 + SetAnimation 0x0000 Wait 0x003c - _0807EB44 0x0002 + SetAnimationState 0x0002 WaitForSyncFlagAndClear 0x00000004 SetEntitySpeed 0x0080 _0807EEF4 0x0000, 0xffe0 diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc index 145f5a99..743de7f4 100644 --- a/data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone3.inc @@ -1,18 +1,18 @@ @ 1st Goron during 3rd Goron Kinstone cutscene SCRIPT_START script_Goron1Kinstone3 BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 + SetAnimationState 0x0004 + SetAnimation 0x0008 + Call SetPriorityMessage EndBlock WaitForFadeFinish Wait 0x00f0 - _0807E930 0x0000 - _0807EB44 0x0002 + SetAnimation 0x0000 + SetAnimationState 0x0002 Wait 0x003c MessageNoOverlap 0x0e0d WaitUntilTextboxCloses - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x003c Jump script_0800BE88 .2byte 0x0000 diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc index 0756ea9e..08f4eb7f 100644 --- a/data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone4.inc @@ -1,18 +1,18 @@ @ 1st Goron during 4th Goron cutscene SCRIPT_START script_Goron1Kinstone4 BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 + SetAnimationState 0x0004 + SetAnimation 0x0008 + Call SetPriorityMessage EndBlock WaitForFadeFinish Wait 0x00f0 - _0807E930 0x0000 - _0807EB44 0x0002 + SetAnimation 0x0000 + SetAnimationState 0x0002 Wait 0x003c MessageNoOverlap 0x0e10 WaitUntilTextboxCloses - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x003c Jump script_0800BFA4 .2byte 0x0000 diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc index d1561411..9fbadfcc 100644 --- a/data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone5.inc @@ -1,18 +1,18 @@ @ 1st Goron during 5th Goron cutscene SCRIPT_START script_Goron1Kinstone5 BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 + SetAnimationState 0x0004 + SetAnimation 0x0008 + Call SetPriorityMessage EndBlock WaitForFadeFinish Wait 0x00f0 - _0807E930 0x0000 - _0807EB44 0x0002 + SetAnimation 0x0000 + SetAnimationState 0x0002 Wait 0x003c MessageNoOverlap 0x0e13 WaitUntilTextboxCloses - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x003c Jump script_0800C11C .2byte 0x0000 diff --git a/data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc b/data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc index 6d2ee65f..ef803f64 100644 --- a/data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc +++ b/data/scripts/kinstoneFusion/script_Goron1Kinstone6.inc @@ -1,18 +1,18 @@ @ 1st Goron in 6th Goron cutscene SCRIPT_START script_Goron1Kinstone6 BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 + SetAnimationState 0x0004 + SetAnimation 0x0008 + Call SetPriorityMessage EndBlock WaitForFadeFinish Wait 0x00f0 - _0807E930 0x0000 - _0807EB44 0x0002 + SetAnimation 0x0000 + SetAnimationState 0x0002 Wait 0x003c MessageNoOverlap 0x0e16 WaitUntilTextboxCloses - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x003c Jump script_0800C244 .2byte 0x0000 diff --git a/data/scripts/kinstoneFusion/script_Goron2Kinstone2.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone2.inc index 5aeac45c..4d2762d7 100644 --- a/data/scripts/kinstoneFusion/script_Goron2Kinstone2.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone2.inc @@ -1,11 +1,11 @@ @ 2nd Goron during Kinstone cutscene for 2nd Goron SCRIPT_START script_Goron2Kinstone2 BeginBlock - _0807EB44 0x0000 - _0807E930 0x0000 + SetAnimationState 0x0000 + SetAnimation 0x0000 DoPostScriptAction 0x0008 SetEntitySpeed 0x0080 - Call sub_0807F348 + Call SetPriorityMessage EndBlock WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0007 @@ -20,15 +20,15 @@ SCRIPT_START script_Goron2Kinstone2 Wait 0x000f SetSyncFlag 0x00000004 DoPostScriptAction 0x000f - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x00b4 CallWithArg sub_0804BF38, 0x00000000 Wait 0x00b4 CallWithArg sub_0804BF38, 0x00000003 - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 Wait 0x003c - _0807EB44 0x0006 + SetAnimationState 0x0006 SetSyncFlag 0x00000004 SetEntitySpeed 0x0080 _0807EEF4 0x0000, 0xffe0 diff --git a/data/scripts/kinstoneFusion/script_Goron2Kinstone3.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone3.inc index 99a41fc4..c78e43ba 100644 --- a/data/scripts/kinstoneFusion/script_Goron2Kinstone3.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone3.inc @@ -1,27 +1,27 @@ @ 2nd Goron during 3rd Goron cutscene SCRIPT_START script_Goron2Kinstone3 BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 + SetAnimationState 0x0004 + SetAnimation 0x0008 + Call SetPriorityMessage EndBlock WaitForFadeFinish Wait 0x00f0 - _0807E930 0x0000 - _0807EB44 0x0006 + SetAnimation 0x0000 + SetAnimationState 0x0006 Wait 0x003c WaitUntilTextboxCloses - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x003c SetSyncFlag 0x00000001 script_0800BE88: - _0807EB44 0x0004 + SetAnimationState 0x0004 script_0800BE8C: CheckRoomFlag 0x00ff JumpIfNot script_0800BE8C SetSyncFlag 0x00000002 Call sub_08054F64 - _0807E930 0x0000 + SetAnimation 0x0000 DoPostScriptAction 0x0004 Wait 0x003c MessageNoOverlap 0x0e0f @@ -29,6 +29,6 @@ script_0800BE8C: SetSyncFlag 0x00000002 Call sub_08054F64 DoPostScriptAction 0x000f - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x00f0 SCRIPT_END diff --git a/data/scripts/kinstoneFusion/script_Goron2Kinstone4.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone4.inc index c8305e1f..6809441e 100644 --- a/data/scripts/kinstoneFusion/script_Goron2Kinstone4.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone4.inc @@ -1,27 +1,27 @@ @ 2nd and 3rd Goron during 4th Goron cutscene SCRIPT_START script_Goron2Kinstone4 BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 + SetAnimationState 0x0004 + SetAnimation 0x0008 + Call SetPriorityMessage EndBlock WaitForFadeFinish Wait 0x00f0 - _0807E930 0x0000 - _0807EB44 0x0006 + SetAnimation 0x0000 + SetAnimationState 0x0006 Wait 0x003c WaitUntilTextboxCloses - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x003c SetSyncFlag 0x00000001 script_0800BFA4: - _0807EB44 0x0004 + SetAnimationState 0x0004 script_0800BFA8: CheckRoomFlag 0x00ff JumpIfNot script_0800BFA8 SetSyncFlag 0x00000002 Call sub_08054F64 - _0807E930 0x0000 + SetAnimation 0x0000 DoPostScriptAction 0x0004 Wait 0x003c MessageNoOverlap 0x0e12 @@ -29,10 +29,10 @@ script_0800BFA8: SetSyncFlag 0x00000002 Call sub_08054F64 DoPostScriptAction 0x000f - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x0168 - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 Wait 0x003c Call sub_08054F64 SetEntitySpeed 0x0080 diff --git a/data/scripts/kinstoneFusion/script_Goron2Kinstone5.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone5.inc index c82afd3a..829f8f8c 100644 --- a/data/scripts/kinstoneFusion/script_Goron2Kinstone5.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone5.inc @@ -1,27 +1,27 @@ @ 2nd, 3rd and 4th Goron during 5th Goron cutscene SCRIPT_START script_Goron2Kinstone5 BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 + SetAnimationState 0x0004 + SetAnimation 0x0008 + Call SetPriorityMessage EndBlock WaitForFadeFinish Wait 0x00f0 - _0807E930 0x0000 - _0807EB44 0x0006 + SetAnimation 0x0000 + SetAnimationState 0x0006 Wait 0x003c WaitUntilTextboxCloses - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x003c SetSyncFlag 0x00000001 script_0800C11C: - _0807EB44 0x0004 + SetAnimationState 0x0004 script_0800C120: CheckRoomFlag 0x00ff JumpIfNot script_0800C120 SetSyncFlag 0x00000002 Call sub_08054F64 - _0807E930 0x0000 + SetAnimation 0x0000 DoPostScriptAction 0x0004 Wait 0x003c MessageNoOverlap 0x0e15 @@ -29,6 +29,6 @@ script_0800C120: SetSyncFlag 0x00000002 Call sub_08054F64 DoPostScriptAction 0x000f - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x00f0 SCRIPT_END diff --git a/data/scripts/kinstoneFusion/script_Goron2Kinstone6.inc b/data/scripts/kinstoneFusion/script_Goron2Kinstone6.inc index 87a5b960..88e1cb91 100644 --- a/data/scripts/kinstoneFusion/script_Goron2Kinstone6.inc +++ b/data/scripts/kinstoneFusion/script_Goron2Kinstone6.inc @@ -1,27 +1,27 @@ @ 2nd to 5th Goron in 6th Goron cutscene SCRIPT_START script_Goron2Kinstone6 BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 - Call sub_0807F348 + SetAnimationState 0x0004 + SetAnimation 0x0008 + Call SetPriorityMessage EndBlock WaitForFadeFinish Wait 0x00f0 - _0807E930 0x0000 - _0807EB44 0x0006 + SetAnimation 0x0000 + SetAnimationState 0x0006 Wait 0x003c WaitUntilTextboxCloses - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x003c SetSyncFlag 0x00000001 script_0800C244: - _0807EB44 0x0004 + SetAnimationState 0x0004 script_0800C248: CheckRoomFlag 0x00ff JumpIfNot script_0800C248 SetSyncFlag 0x00000002 Call sub_08054F64 - _0807E930 0x0000 + SetAnimation 0x0000 DoPostScriptAction 0x0004 Wait 0x003c MessageNoOverlap 0x0e18 @@ -29,10 +29,10 @@ script_0800C248: SetSyncFlag 0x00000002 Call sub_08054F64 DoPostScriptAction 0x000f - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x0168 - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 Wait 0x003c Call sub_08054F64 SetEntitySpeed 0x0080 diff --git a/data/scripts/kinstoneFusion/script_Goron3Kinstone3.inc b/data/scripts/kinstoneFusion/script_Goron3Kinstone3.inc index fc4e637f..14b13031 100644 --- a/data/scripts/kinstoneFusion/script_Goron3Kinstone3.inc +++ b/data/scripts/kinstoneFusion/script_Goron3Kinstone3.inc @@ -1,11 +1,11 @@ @ 3rd Goron during 3rd Goron cutscene SCRIPT_START script_Goron3Kinstone3 BeginBlock - _0807EB44 0x0000 - _0807E930 0x0000 + SetAnimationState 0x0000 + SetAnimation 0x0000 DoPostScriptAction 0x0008 SetEntitySpeed 0x0080 - Call sub_0807F348 + Call SetPriorityMessage EndBlock WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0007 @@ -20,7 +20,7 @@ SCRIPT_START script_Goron3Kinstone3 Wait 0x000f SetSyncFlag 0x0000000c DoPostScriptAction 0x000f - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x00f0 Call sub_08054968 SCRIPT_END diff --git a/data/scripts/kinstoneFusion/script_Goron4Kinstone4.inc b/data/scripts/kinstoneFusion/script_Goron4Kinstone4.inc index 9d81f728..940147da 100644 --- a/data/scripts/kinstoneFusion/script_Goron4Kinstone4.inc +++ b/data/scripts/kinstoneFusion/script_Goron4Kinstone4.inc @@ -1,11 +1,11 @@ @ 4th Goron during 4th Goron cutscene SCRIPT_START script_Goron4Kinstone4 BeginBlock - _0807EB44 0x0000 - _0807E930 0x0000 + SetAnimationState 0x0000 + SetAnimation 0x0000 DoPostScriptAction 0x0008 SetEntitySpeed 0x0080 - Call sub_0807F348 + Call SetPriorityMessage EndBlock WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0007 @@ -22,13 +22,13 @@ SCRIPT_START script_Goron4Kinstone4 Wait 0x000f SetSyncFlag 0x0000001c DoPostScriptAction 0x000f - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x00b4 CallWithArg sub_0804BF38, 0x00000001 Wait 0x00b4 CallWithArg sub_0804BF38, 0x00000004 - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 Wait 0x003c SetSyncFlag 0x0000001c SetEntitySpeed 0x0080 diff --git a/data/scripts/kinstoneFusion/script_Goron5Kinstone5.inc b/data/scripts/kinstoneFusion/script_Goron5Kinstone5.inc index 7f86fcd3..2a561509 100644 --- a/data/scripts/kinstoneFusion/script_Goron5Kinstone5.inc +++ b/data/scripts/kinstoneFusion/script_Goron5Kinstone5.inc @@ -1,11 +1,11 @@ @ 5th Goron during 5th Goron cutscene SCRIPT_START script_Goron5Kinstone5 BeginBlock - _0807EB44 0x0000 - _0807E930 0x0000 + SetAnimationState 0x0000 + SetAnimation 0x0000 DoPostScriptAction 0x0008 SetEntitySpeed 0x0080 - Call sub_0807F348 + Call SetPriorityMessage EndBlock WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0007 @@ -22,7 +22,7 @@ SCRIPT_START script_Goron5Kinstone5 Wait 0x000f SetSyncFlag 0x0000003c DoPostScriptAction 0x000f - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x00f0 Call sub_08054968 SCRIPT_END diff --git a/data/scripts/kinstoneFusion/script_Goron6Kindstone6.inc b/data/scripts/kinstoneFusion/script_Goron6Kindstone6.inc index 54967407..db5c8677 100644 --- a/data/scripts/kinstoneFusion/script_Goron6Kindstone6.inc +++ b/data/scripts/kinstoneFusion/script_Goron6Kindstone6.inc @@ -1,11 +1,11 @@ @ 6th Goron in 6th Goron cutscene SCRIPT_START script_Goron6Kindstone6 BeginBlock - _0807EB44 0x0000 - _0807E930 0x0000 + SetAnimationState 0x0000 + SetAnimation 0x0000 DoPostScriptAction 0x0008 SetEntitySpeed 0x0080 - Call sub_0807F348 + Call SetPriorityMessage EndBlock WaitForSyncFlagAndClear 0x00000002 DoPostScriptAction 0x0007 @@ -22,13 +22,13 @@ SCRIPT_START script_Goron6Kindstone6 Wait 0x000f SetSyncFlag 0x0000007c DoPostScriptAction 0x000f - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x00b4 CallWithArg sub_0804BF38, 0x00000002 Wait 0x00b4 CallWithArg sub_0804BF38, 0x00000005 - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 Wait 0x003c SetSyncFlag 0x0000007c SetEntitySpeed 0x0080 diff --git a/data/scripts/kinstoneFusion/script_GoronKinstone.inc b/data/scripts/kinstoneFusion/script_GoronKinstone.inc index 3c4e7716..88fd97d3 100644 --- a/data/scripts/kinstoneFusion/script_GoronKinstone.inc +++ b/data/scripts/kinstoneFusion/script_GoronKinstone.inc @@ -1,25 +1,25 @@ @ Goron in fusing kinstone cutscene SCRIPT_START script_GoronKinstone BeginBlock - _0807EB44 0x0004 - _0807E930 0x0008 + SetAnimationState 0x0004 + SetAnimation 0x0008 Call sub_08054EB8 EndBlock script_0800BC62: CheckRoomFlag 0x00ff JumpIfNot script_0800BC62 - _0807E930 0x0000 + SetAnimation 0x0000 Wait 0x001e DoPostScriptAction 0x0004 Wait 0x003c MessageNoOverlap 0x0e08 WaitUntilTextboxCloses DoPostScriptAction 0x000f - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x00f0 Call sub_08054EFC - _0807EB44 0x0000 - _0807E930 0x0000 + SetAnimationState 0x0000 + SetAnimation 0x0000 SetEntitySpeed 0x0040 DoPostScriptAction 0x000d CallWithArg sub_0807F4F8, 0x00000378 @@ -28,7 +28,7 @@ script_0800BC62: Wait 0x003c MessageNoOverlap 0x0e09 WaitUntilTextboxCloses - Call sub_0807F158 + Call SetCollisionLayer1 CallWithArg sub_0807F4F8, 0x0000035c Wait 0x001e PlaySound SFX_STAIRS_DESCEND diff --git a/data/scripts/kinstoneFusion/script_GoronMerchantArriving.inc b/data/scripts/kinstoneFusion/script_GoronMerchantArriving.inc index 7787515f..2e4588c5 100644 --- a/data/scripts/kinstoneFusion/script_GoronMerchantArriving.inc +++ b/data/scripts/kinstoneFusion/script_GoronMerchantArriving.inc @@ -1,10 +1,10 @@ @ Goron Merchant in arriving Kinstone cutscene SCRIPT_START script_GoronMerchantArriving BeginBlock - _0807EB44 0x0006 + SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetEntitySpeed 0x0040 - Call sub_0807F348 + Call SetPriorityMessage EndBlock script_0800BB7A: CheckRoomFlag 0x00ff diff --git a/data/scripts/kinstoneFusion/script_MutohKinstone.inc b/data/scripts/kinstoneFusion/script_MutohKinstone.inc index ecc3f65b..c6a48c7f 100644 --- a/data/scripts/kinstoneFusion/script_MutohKinstone.inc +++ b/data/scripts/kinstoneFusion/script_MutohKinstone.inc @@ -1,9 +1,9 @@ @ Hyrule Town Mutoh in Kinstone cutscene SCRIPT_START script_MutohKinstone BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 - Call sub_0807F348 + Call SetPriorityMessage EndBlock script_0800BADE: CheckRoomFlag 0x00ff diff --git a/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSpark.inc b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSpark.inc index bc194636..a227cebc 100644 --- a/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSpark.inc +++ b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSpark.inc @@ -2,7 +2,7 @@ SCRIPT_START script_ObjectB3KinstoneSpark BeginBlock SetEntitySpeed 0x0180 - _0807E930 0x0004 + SetAnimation 0x0004 Call sub_080A0B28 EndBlock Wait 0x000a @@ -13,7 +13,7 @@ script_0800C47A: JumpIfNot script_0800C47A Wait 0x003c SetRoomFlag 0x00ff - _0807E930 0x0005 + SetAnimation 0x0005 Wait 0x000f SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkFromBottom.inc b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkFromBottom.inc index 6b6cfe46..44d5e43f 100644 --- a/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkFromBottom.inc +++ b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkFromBottom.inc @@ -2,7 +2,7 @@ SCRIPT_START script_ObjectB3KinstoneSparkFromBottom BeginBlock SetEntitySpeed 0x0120 - _0807E930 0x0004 + SetAnimation 0x0004 EndBlock Wait 0x000a DoPostScriptAction 0x0007 @@ -12,7 +12,7 @@ SCRIPT_START script_ObjectB3KinstoneSparkFromBottom _0807EEF4 0x0000, 0xffb0 Wait 0x003c SetRoomFlag 0x00ff - _0807E930 0x0005 + SetAnimation 0x0005 Wait 0x000f SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc index e6bb438f..e77f34d3 100644 --- a/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc +++ b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoron.inc @@ -3,7 +3,7 @@ SCRIPT_START script_ObjectB3KinstoneSparkGoron BeginBlock SetEntitySpeed 0x0100 - _0807E930 0x0004 + SetAnimation 0x0004 DoPostScriptAction 0x0008 EndBlock WaitForSyncFlagAndClear 0x00000001 @@ -15,6 +15,6 @@ SCRIPT_START script_ObjectB3KinstoneSparkGoron _0807EEF4 0x0000, 0x0060 Wait 0x001e SetRoomFlag 0x00ff - _0807E930 0x0005 + SetAnimation 0x0005 Wait 0x000f SCRIPT_END diff --git a/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoronMerchang.inc b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoronMerchang.inc index 24ef7101..3a35b424 100644 --- a/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoronMerchang.inc +++ b/data/scripts/kinstoneFusion/script_ObjectB3KinstoneSparkGoronMerchang.inc @@ -3,7 +3,7 @@ SCRIPT_START script_ObjectB3KinstoneSparkGoronMerchang BeginBlock SetEntitySpeed 0x0180 - _0807E930 0x0004 + SetAnimation 0x0004 EndBlock Wait 0x000a DoPostScriptAction 0x0007 @@ -13,7 +13,7 @@ SCRIPT_START script_ObjectB3KinstoneSparkGoronMerchang _0807EEF4 0x0070, 0x0000 Wait 0x003c SetRoomFlag 0x00ff - _0807E930 0x0005 + SetAnimation 0x0005 Wait 0x000f SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/kinstoneFusion/script_StampKinstone.inc b/data/scripts/kinstoneFusion/script_StampKinstone.inc index 2e026161..6940cc83 100644 --- a/data/scripts/kinstoneFusion/script_StampKinstone.inc +++ b/data/scripts/kinstoneFusion/script_StampKinstone.inc @@ -2,9 +2,9 @@ SCRIPT_START script_StampKinstone BeginBlock DoPostScriptAction 0x0007 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 - Call sub_0807F348 + Call SetPriorityMessage EndBlock script_0800BBBA: CheckRoomFlag 0x00ff diff --git a/data/scripts/lakeHylia/script_EzloTalkOcarina.inc b/data/scripts/lakeHylia/script_EzloTalkOcarina.inc index 0846a9a4..0233ac50 100644 --- a/data/scripts/lakeHylia/script_EzloTalkOcarina.inc +++ b/data/scripts/lakeHylia/script_EzloTalkOcarina.inc @@ -1,12 +1,12 @@ @ Ezlo talk after first ocarina travel SCRIPT_START script_EzloTalkOcarina EndBlock - _0807E864 - Call sub_0807FA40 + SetPlayerIdle + Call WaitForPlayerNormalOrTalkEzlo Call sub_0807DF28 - _0807EB28 0x0b5f + EzloMessage 0x0b5f WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/lakeHylia/script_ForestMinish3.inc b/data/scripts/lakeHylia/script_ForestMinish3.inc index 583eeaa9..26ad3f5a 100644 --- a/data/scripts/lakeHylia/script_ForestMinish3.inc +++ b/data/scripts/lakeHylia/script_ForestMinish3.inc @@ -13,8 +13,8 @@ script_0800C5D6: Jump script_0800C5D6 script_0800C5EA: EndBlock - _0807E864 + SetPlayerIdle Call sub_08060270 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800C5D6 diff --git a/data/scripts/lakeHylia/script_KingGustafHologram.inc b/data/scripts/lakeHylia/script_KingGustafHologram.inc index 66c576f1..295cd219 100644 --- a/data/scripts/lakeHylia/script_KingGustafHologram.inc +++ b/data/scripts/lakeHylia/script_KingGustafHologram.inc @@ -7,23 +7,23 @@ script_08012368: CheckLocalFlag 0x0004 JumpIfNot script_08012368 Call sub_0807DF28 - _0807E864 + SetPlayerIdle StopBgm BeginBlock - _0807E778 0x0004 + SetFadeTime 0x0004 SetFadeMask 0x00007fff DoFade5 _0807E858 0x0080 EndBlock WaitForFadeFinish PlayBgm BGM_ELEMENTAL_SANCTUARY - _0807EB28 0x1401 + EzloMessage 0x1401 WaitUntilTextboxCloses - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x0007 PlaySound SFX_ELEMENT_FLOAT - SetEntity0x20 0xffff8000 + SetEntityVelocity 0xffff8000 Wait 0x003c _0807E8E4_0 StartPlayerScript script_PlayerAfterToD @@ -31,22 +31,22 @@ script_08012368: MessageNoOverlap 0x1402 WaitUntilTextboxCloses StopBgm - SetEntity0x20 0x00010000 + SetEntityVelocity 0x00010000 Wait 0x003c BeginBlock - _0807E778 0x0004 + SetFadeTime 0x0004 SetFadeMask 0xffffffff DoFade4 _0807E858 0x0080 EndBlock WaitForFadeFinish PlayBGM - _0807EB28 0x1403 + EzloMessage 0x1403 WaitUntilTextboxCloses SetIntVariable 0x00000203 - Call sub_0807F420 + Call LoadMenu Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/lakeHylia/script_Object69AfterToD.inc b/data/scripts/lakeHylia/script_Object69AfterToD.inc index 2ec33ffe..2a5c6a62 100644 --- a/data/scripts/lakeHylia/script_Object69AfterToD.inc +++ b/data/scripts/lakeHylia/script_Object69AfterToD.inc @@ -1,6 +1,6 @@ @ After ToD OBJECT_69 Cutscene SCRIPT_START script_Object69AfterToD - _0807E864 + SetPlayerIdle script_0800AFB2: EndBlock BeginBlock @@ -9,11 +9,11 @@ script_0800AFB2: JumpIfNot script_0800AFB2 EndBlock Call sub_0807DF28 - _0807EB28 0x1c04 + EzloMessage 0x1c04 WaitUntilTextboxCloses SetLocalFlagByBank 0x0100, 0x0004 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/lakeHylia/script_ShopwellsDog.inc b/data/scripts/lakeHylia/script_ShopwellsDog.inc index fbf22a4f..eaa7c31e 100644 --- a/data/scripts/lakeHylia/script_ShopwellsDog.inc +++ b/data/scripts/lakeHylia/script_ShopwellsDog.inc @@ -2,7 +2,7 @@ SCRIPT_START script_ShopwellsDog BeginBlock SetEntitySpeed 0x0100 - _0807EB44 0x0004 + SetAnimationState 0x0004 EndBlock Wait 0x001e PlaySound SFX_VO_DOG diff --git a/data/scripts/lonLonRanch/scriptMalonInside.inc b/data/scripts/lonLonRanch/scriptMalonInside.inc index 6cbe0145..f573b3f3 100644 --- a/data/scripts/lonLonRanch/scriptMalonInside.inc +++ b/data/scripts/lonLonRanch/scriptMalonInside.inc @@ -3,19 +3,19 @@ SCRIPT_START scriptMalonInside BeginBlock DoPostScriptAction 0x000a DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x000a + SetAnimationState 0x0004 + SetAnimation 0x000a EndBlock script_08014F0C: CheckEntityInteractType JumpIfNot script_08014F0C - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 MessageNoOverlap 0x200e WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 - _0807E930 0x000a + EnablePlayerControl + SetAnimationState 0x0004 + SetAnimation 0x000a Jump script_08014F0C .2byte 0x0000 diff --git a/data/scripts/lonLonRanch/script_GoronPunching.inc b/data/scripts/lonLonRanch/script_GoronPunching.inc index 77b616b6..44c7f7b2 100644 --- a/data/scripts/lonLonRanch/script_GoronPunching.inc +++ b/data/scripts/lonLonRanch/script_GoronPunching.inc @@ -10,27 +10,27 @@ script_0800B9CA: Call sub_0807F434 JumpTable script_0800B9CA, script_0800B9D8, script_0800B9F4 script_0800B9D8: - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 Call sub_080694D8 WaitUntilTextboxCloses Call sub_080694EC - _0807E878 + EnablePlayerControl Jump script_0800B9CA script_0800B9F4: - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 Call sub_0807F650 _0807E9F0 - _0807E864 + SetPlayerIdle Call sub_0806948C JumpIf script_0800BA24 WaitUntilTextboxCloses Call sub_080694EC Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800B9CA script_0800BA24: WaitUntilTextboxCloses @@ -38,5 +38,5 @@ script_0800BA24: _0807E9D4 Call sub_080694EC Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800B9CA diff --git a/data/scripts/lonLonRanch/script_MalonLostKey.inc b/data/scripts/lonLonRanch/script_MalonLostKey.inc index 7298bdca..664c68c2 100644 --- a/data/scripts/lonLonRanch/script_MalonLostKey.inc +++ b/data/scripts/lonLonRanch/script_MalonLostKey.inc @@ -14,26 +14,26 @@ script_0800B4BC: JumpIf script_0800B4F0 Jump script_0800B4BC script_0800B4D4: - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0000 MessageFromTarget 0x200b EndBlock - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0001 Jump script_0800B4BC script_0800B4F0: EndBlock ClearSyncFlag 0x00000008 _0807EDD4 0x0134, 0x0288 - _0807EB44 0x0004 + SetAnimationState 0x0004 WaitForSyncFlagAndClear 0x00000008 MessageFromTarget 0x2016 WaitUntilTextboxCloses _0807EDD4 0x0158, 0x0288 DoPostScriptAction 0x0000 - _0807EB44 0x0000 + SetAnimationState 0x0000 Wait 0x000a SetSyncFlag 0x00000010 DoPostScriptAction 0x0008 @@ -41,7 +41,7 @@ script_0800B4F0: SetSyncFlag 0x00000010 SetGlobalFlag 0x001d Call sub_0807921C - _0807E878 + EnablePlayerControl Call sub_0807FBCC DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/lonLonRanch/script_PlayerGiveKey.inc b/data/scripts/lonLonRanch/script_PlayerGiveKey.inc index 2034cd11..5ca5f8f0 100644 --- a/data/scripts/lonLonRanch/script_PlayerGiveKey.inc +++ b/data/scripts/lonLonRanch/script_PlayerGiveKey.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerGiveKey EndBlock _0807EDD4 0x0128, 0x0298 Wait 0x000a - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 diff --git a/data/scripts/lonLonRanch/script_TalonGotKey.inc b/data/scripts/lonLonRanch/script_TalonGotKey.inc index 1fb43ad5..ac25fc74 100644 --- a/data/scripts/lonLonRanch/script_TalonGotKey.inc +++ b/data/scripts/lonLonRanch/script_TalonGotKey.inc @@ -2,9 +2,9 @@ SCRIPT_START script_TalonGotKey BeginBlock SetEntitySpeed 0x00c0 - _0807E908 0x0001 + SetAction 0x0001 DoPostScriptAction 0x000b - _0807E864 + SetPlayerIdle Call sub_0807FBC4 EndBlock Wait 0x000a @@ -12,14 +12,14 @@ SCRIPT_START script_TalonGotKey SetSyncFlag 0x00000008 StartPlayerScript script_PlayerGiveKey _0807EDD4 0x0140, 0x0298 - _0807EB74 + FacePlayer WaitForSyncFlagAndClear 0x00000004 - _0807EB74 + FacePlayer Wait 0x003c PlaySound SFX_TASK_COMPLETE _0807F088 0x0037 WaitPlayerGetItem - _0807EB8C + FaceAwayFromPlayer MessageFromTarget 0x200c WaitUntilTextboxCloses Wait 0x0014 diff --git a/data/scripts/lonLonRanch/script_TalonInside.inc b/data/scripts/lonLonRanch/script_TalonInside.inc index 71485a34..ce0469db 100644 --- a/data/scripts/lonLonRanch/script_TalonInside.inc +++ b/data/scripts/lonLonRanch/script_TalonInside.inc @@ -3,15 +3,15 @@ SCRIPT_START script_TalonInside BeginBlock DoPostScriptAction 0x000a DoPostScriptAction 0x0007 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock script_08014E64: CheckEntityInteractType JumpIfNot script_08014E64 - _0807E864 + SetPlayerIdle Call sub_0807DF28 - _0807EB74 + FacePlayer CallWithArg sub_0807F78C, 0x00000022 WaitUntilTextboxCloses CheckTextboxResult @@ -32,6 +32,6 @@ script_08014EB8: script_08014EBC: WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_08014E64 .2byte 0x0000 diff --git a/data/scripts/lonLonRanch/script_TalonInside2.inc b/data/scripts/lonLonRanch/script_TalonInside2.inc index ff3fcf53..27c19f50 100644 --- a/data/scripts/lonLonRanch/script_TalonInside2.inc +++ b/data/scripts/lonLonRanch/script_TalonInside2.inc @@ -3,16 +3,16 @@ SCRIPT_START script_TalonInside2 BeginBlock DoPostScriptAction 0x000a DoPostScriptAction 0x0007 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock script_08014EE0: CheckEntityInteractType JumpIfNot script_08014EE0 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageNoOverlap 0x200d WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08014EE0 .2byte 0x0000 diff --git a/data/scripts/lonLonRanch/script_TalonLostKey.inc b/data/scripts/lonLonRanch/script_TalonLostKey.inc index 244d7435..0a5463c6 100644 --- a/data/scripts/lonLonRanch/script_TalonLostKey.inc +++ b/data/scripts/lonLonRanch/script_TalonLostKey.inc @@ -2,10 +2,10 @@ SCRIPT_START script_TalonLostKey BeginBlock DoPostScriptAction 0x000a - Call sub_0807F158 + Call SetCollisionLayer1 SetEntitySpeed 0x0120 - _0807EB44 0x0004 - _0807E908 0x0002 + SetAnimationState 0x0004 + SetAction 0x0002 SetIntVariable 0x0000200a EndBlock script_0800B3C4: diff --git a/data/scripts/minishWoods/script_08012C98.inc b/data/scripts/minishWoods/script_08012C98.inc index 64ddd7ac..c6ea3050 100644 --- a/data/scripts/minishWoods/script_08012C98.inc +++ b/data/scripts/minishWoods/script_08012C98.inc @@ -8,12 +8,12 @@ script_08012CA0: BeginBlock CheckPlayerInRegion 0x0398, 0x03b0, 0x2040 JumpIfNot script_08012CA0 - _0807E564 + CheckPlayerMinish JumpIf script_08012CD2 EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 - _0807EB28 0x2202 + EzloMessage 0x2202 WaitUntilTextboxCloses .ifdef JP SetLocalFlag 0x003a @@ -29,7 +29,7 @@ script_08012CA0: .endif .endif Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_08012CD2: DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/minishWoods/script_08012D18.inc b/data/scripts/minishWoods/script_08012D18.inc index 9b8be5cf..c8dbcadb 100644 --- a/data/scripts/minishWoods/script_08012D18.inc +++ b/data/scripts/minishWoods/script_08012D18.inc @@ -9,15 +9,15 @@ SCRIPT_START script_08012D18 CheckPlayerInRegion 0x0000, 0x01a8, 0x2010 JumpIfNot script_08012D18 EndBlock - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 - _0807EB28 0x111a + EzloMessage 0x111a WaitUntilTextboxCloses StartPlayerScript script_PlayerCannotEnter WaitForSyncFlagAndClear 0x00000001 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_08012D18 script_08012D68: DoPostScriptAction 0x0006 diff --git a/data/scripts/minishWoods/script_BombMinish.inc b/data/scripts/minishWoods/script_BombMinish.inc index 7a57205d..ce58873e 100644 --- a/data/scripts/minishWoods/script_BombMinish.inc +++ b/data/scripts/minishWoods/script_BombMinish.inc @@ -1,7 +1,7 @@ @ Minish Woods Bomb Minish SCRIPT_START script_BombMinish BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 Call sub_08060090 DoPostScriptAction 0x000a CheckKinstoneFused 0x001c @@ -16,7 +16,7 @@ script_08009F36: CheckEntityInteractType JumpIfNot script_08009F36 EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 DoPostScriptAction 0x000b StartPlayerScript script_PlayerAtBombMinish @@ -29,7 +29,7 @@ script_08009F36: WaitPlayerGetItem DoPostScriptAction 0x000a Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_08009F84: EndBlock script_08009F86: @@ -39,19 +39,19 @@ script_08009F86: CheckEntityInteractType JumpIfNot script_08009F86 EndBlock - _0807E864 + SetPlayerIdle Call sub_080602BC WaitUntilTextboxCloses - CallWithArg sub_0807F970, 0x00001f03 + CallWithArg CheckMessageEqual, 0x00001f03 JumpIf script_08009FB6 - _0807E878 + EnablePlayerControl Jump script_08009F86 script_08009FB6: Wait 0x0008 PlaySound SFX_103 CallWithArg sub_0806030C, 0x00000063 Wait 0x0008 - _0807E878 + EnablePlayerControl Jump script_08009F86 script_08009FD2: EndBlock @@ -64,12 +64,12 @@ script_08009FDC: CheckEntityInteractType JumpIfNot script_08009FDC EndBlock - _0807E864 + SetPlayerIdle MessageNoOverlap 0x1f0e WaitUntilTextboxCloses CheckTextboxResult JumpIf script_0800A002 - _0807E878 + EnablePlayerControl Jump script_08009FDC script_0800A002: Wait 0x0008 @@ -77,11 +77,11 @@ script_0800A002: Call sub_08060318 WaitPlayerGetItem Wait 0x0008 - _0807EB8C + FaceAwayFromPlayer MessageFromTarget 0x1f13 WaitUntilTextboxCloses SetLocalFlag 0x00b0 - _0807E878 + EnablePlayerControl script_0800A024: EndBlock BeginBlock @@ -89,21 +89,21 @@ script_0800A024: CheckEntityInteractType JumpIfNot script_0800A024 EndBlock - _0807E864 + SetPlayerIdle CheckInventory1 0x0008 JumpIf script_0800A052 MessageNoOverlap 0x1f14 WaitUntilTextboxCloses CheckTextboxResult JumpIf script_0800A002 - _0807E878 + EnablePlayerControl Jump script_0800A024 script_0800A052: MessageNoOverlap 0x1f11 WaitUntilTextboxCloses CheckTextboxResult JumpIf script_0800A064 - _0807E878 + EnablePlayerControl Jump script_0800A024 script_0800A064: Wait 0x0008 @@ -111,9 +111,9 @@ script_0800A064: Call sub_08060318 WaitPlayerGetItem Wait 0x0008 - _0807EB8C + FaceAwayFromPlayer MessageFromTarget 0x1f10 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800A024 .2byte 0x0000 diff --git a/data/scripts/minishWoods/script_EzloTalkDWS.inc b/data/scripts/minishWoods/script_EzloTalkDWS.inc index 942b81bf..72455e32 100644 --- a/data/scripts/minishWoods/script_EzloTalkDWS.inc +++ b/data/scripts/minishWoods/script_EzloTalkDWS.inc @@ -1,12 +1,12 @@ @ Minish Woods Ezlo talks after finishing earth temple SCRIPT_START script_EzloTalkDWS - _0807E864 + SetPlayerIdle Call sub_0807DF28 - _0807EB28 0x1c01 + EzloMessage 0x1c01 WaitUntilTextboxCloses SetLocalFlagByBank 0x0100, 0x0001 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/minishWoods/script_EzloTalkMinishPortal.inc b/data/scripts/minishWoods/script_EzloTalkMinishPortal.inc index b97e943e..b7f9c3b4 100644 --- a/data/scripts/minishWoods/script_EzloTalkMinishPortal.inc +++ b/data/scripts/minishWoods/script_EzloTalkMinishPortal.inc @@ -2,16 +2,16 @@ SCRIPT_START script_EzloTalkMinishPortal EndBlock BeginBlock - _0807E564 + CheckPlayerMinish JumpIfNot script_EzloTalkMinishPortal CheckPlayerInRegion 0x0380, 0x03b0, 0x4040 JumpIfNot script_EzloTalkMinishPortal ComparePlayerAction 0x0015 JumpIf script_EzloTalkMinishPortal - _0807E864 + SetPlayerIdle Call sub_0807DF28 EndBlock - _0807EB28 0x2203 + EzloMessage 0x2203 WaitUntilTextboxCloses .ifdef JP SetLocalFlag 0x003d @@ -27,6 +27,6 @@ SCRIPT_START script_EzloTalkMinishPortal .endif .endif Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/minishWoods/script_Festari.inc b/data/scripts/minishWoods/script_Festari.inc index ebaca487..0a79dea6 100644 --- a/data/scripts/minishWoods/script_Festari.inc +++ b/data/scripts/minishWoods/script_Festari.inc @@ -3,15 +3,15 @@ SCRIPT_START script_Festari BeginBlock DoPostScriptAction 0x000a SetEntitySpeed 0x0080 - _0807EB44 0x0004 + SetAnimationState 0x0004 CheckLocalFlag 0x0082 JumpIfNot script_0800C650 OffsetEntityPosition 0x0010, 0x0000 script_0800C650: EndBlock script_0800C652: - _0807E944 - _0807E864 + TriggerInteract + SetPlayerIdle Call sub_0807DF28 CheckLocalFlag 0x0082 JumpIf script_0800C684 @@ -34,7 +34,7 @@ script_0800C684: Wait 0x000a SetLocalFlag 0x0080 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800C652 script_0800C6B6: CheckLocalFlag 0x0081 @@ -45,7 +45,7 @@ script_0800C6B6: DoPostScriptAction 0x0015 Wait 0x000a Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800C652 script_0800C6DC: CheckLocalFlag 0x0082 @@ -55,10 +55,10 @@ script_0800C6DC: WaitUntilTextboxCloses DoPostScriptAction 0x0015 Wait 0x000a - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0001 - _0807EC94 0x0020 - _0807EB44 0x0004 + WalkEast 0x0020 + SetAnimationState 0x0004 Wait 0x000f PlaySound SFX_SECRET SetLocalFlag 0x0082 @@ -69,7 +69,7 @@ script_0800C712: DoPostScriptAction 0x0015 Wait 0x000a Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800C652 script_0800C730: CheckLocalFlag 0x0083 @@ -80,7 +80,7 @@ script_0800C730: DoPostScriptAction 0x0015 Wait 0x000a Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800C652 script_0800C756: DoPostScriptAction 0x0002 @@ -89,5 +89,5 @@ script_0800C756: DoPostScriptAction 0x0015 Wait 0x000a Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800C652 diff --git a/data/scripts/minishWoods/script_ForestMinish10.inc b/data/scripts/minishWoods/script_ForestMinish10.inc index cc7dfc2e..f7c4ebe6 100644 --- a/data/scripts/minishWoods/script_ForestMinish10.inc +++ b/data/scripts/minishWoods/script_ForestMinish10.inc @@ -15,7 +15,7 @@ script_0800CD92: Jump script_0800CD92 script_0800CDA6: EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 CheckLocalFlag 0x009d JumpIf script_0800CDC4 @@ -57,7 +57,7 @@ script_0800CE14: _0807F088 0x0022 WaitPlayerGetItem script_0800CE32: - _0807EB8C + FaceAwayFromPlayer SetGlobalFlag 0x0054 Call sub_08060340 MessageNoOverlap 0x213f @@ -85,7 +85,7 @@ script_0800CE6E: PlaySound SFX_TASK_COMPLETE _0807F088 0x0027 WaitPlayerGetItem - _0807EB8C + FaceAwayFromPlayer SetGlobalFlag 0x0054 Call sub_08060340 MessageNoOverlap 0x2143 @@ -113,14 +113,14 @@ script_0800CECE: PlaySound SFX_TASK_COMPLETE _0807F088 0x0024 WaitPlayerGetItem - _0807EB8C + FaceAwayFromPlayer SetGlobalFlag 0x0054 Call sub_08060340 MessageNoOverlap 0x2147 script_0800CF02: WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_0800CF0C: EndBlock BeginBlock @@ -130,19 +130,19 @@ script_0800CF0C: Jump script_0800CF0C script_0800CF20: EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 script_0800CF2A: MessageNoOverlap 0x2140 WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800CF0C script_0800CF3C: MessageNoOverlap 0x214a script_0800CF40: WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800CD92 .2byte 0x0000 diff --git a/data/scripts/minishWoods/script_ForestMinish4.inc b/data/scripts/minishWoods/script_ForestMinish4.inc index 792f37d0..2663d585 100644 --- a/data/scripts/minishWoods/script_ForestMinish4.inc +++ b/data/scripts/minishWoods/script_ForestMinish4.inc @@ -14,9 +14,9 @@ script_0800C60A: Jump script_0800C60A script_0800C61E: EndBlock - _0807E864 + SetPlayerIdle Call sub_0806021C WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800C60A diff --git a/data/scripts/minishWoods/script_Gentari.inc b/data/scripts/minishWoods/script_Gentari.inc index 4d7c8507..e032bf03 100644 --- a/data/scripts/minishWoods/script_Gentari.inc +++ b/data/scripts/minishWoods/script_Gentari.inc @@ -2,11 +2,11 @@ SCRIPT_START script_Gentari BeginBlock DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 EndBlock script_0800C780: - _0807E944 - _0807E864 + TriggerInteract + SetPlayerIdle Call sub_0807DF28 StartPlayerScript script_PlayerAtGentari WaitForSyncFlagAndClear 0x00000001 @@ -14,44 +14,44 @@ script_0800C780: JumpIf script_0800C824 CheckInventory1 0x005b JumpIf script_0800C7C0 - _0807E930 0x0008 + SetAnimation 0x0008 MessageFromTarget 0x2122 WaitUntilTextboxCloses DoPostScriptAction 0x0000 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800C780 script_0800C7C0: - _0807E930 0x0008 + SetAnimation 0x0008 CheckLocalFlag 0x0081 JumpIf script_0800C80A MessageFromTarget 0x1130 WaitUntilTextboxCloses - _0807EB28 0x1131 + EzloMessage 0x1131 WaitUntilTextboxCloses - _0807EB8C + FaceAwayFromPlayer MessageFromTarget 0x1132 WaitUntilTextboxCloses SetIntVariable 0x00000103 - Call sub_0807F420 + Call LoadMenu MessageFromTarget 0x1133 WaitUntilTextboxCloses Wait 0x000a DoPostScriptAction 0x0000 SetLocalFlag 0x0081 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800C780 script_0800C80A: MessageFromTarget 0x1133 WaitUntilTextboxCloses Wait 0x000a - _0807E930 0x0000 + SetAnimation 0x0000 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800C780 script_0800C824: - _0807E930 0x0008 + SetAnimation 0x0008 CheckLocalFlag 0x0083 JumpIf script_0800C8AE MessageFromTarget 0x1135 @@ -64,22 +64,22 @@ script_0800C824: Wait 0x003c PlaySound SFX_SECRET Wait 0x003c - _0807EB74 - _0807EB8C + FacePlayer + FaceAwayFromPlayer MessageFromTarget 0x1136 WaitUntilTextboxCloses - _0807EB28 0x1137 + EzloMessage 0x1137 WaitUntilTextboxCloses Wait 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_0800C87C: - _0807E944 - _0807E864 + TriggerInteract + SetPlayerIdle Call sub_0807DF28 - _0807EB74 + FacePlayer SetIntVariable 0x00000008 Call sub_0807F3D8 MessageFromTarget 0x1136 @@ -87,7 +87,7 @@ script_0800C87C: Wait 0x000a DoPostScriptAction 0x0000 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800C87C script_0800C8AE: MessageFromTarget 0x1136 @@ -95,5 +95,5 @@ script_0800C8AE: Wait 0x000a DoPostScriptAction 0x0000 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800C780 diff --git a/data/scripts/minishWoods/script_Object69PotionBlue.inc b/data/scripts/minishWoods/script_Object69PotionBlue.inc index 365530bf..6f865f7f 100644 --- a/data/scripts/minishWoods/script_Object69PotionBlue.inc +++ b/data/scripts/minishWoods/script_Object69PotionBlue.inc @@ -6,7 +6,7 @@ SCRIPT_START script_Object69PotionBlue script_08016146: CheckEntityInteractType JumpIfNot script_08016146 - _0807E864 + SetPlayerIdle GetInventoryValue 0x0025 MessageFromTargetTable 0x2d03, 0x2d02, 0x2d02, 0x2d02 CheckTextboxResult @@ -24,7 +24,7 @@ script_08016184: WaitPlayerGetItem MessageFromTarget 0x2d06 script_0801618A: - _0807E878 + EnablePlayerControl Jump script_08016146 .align 2, 0 diff --git a/data/scripts/minishWoods/script_Object69PotionRed.inc b/data/scripts/minishWoods/script_Object69PotionRed.inc index 6e3ed4a2..7bd47121 100644 --- a/data/scripts/minishWoods/script_Object69PotionRed.inc +++ b/data/scripts/minishWoods/script_Object69PotionRed.inc @@ -6,7 +6,7 @@ SCRIPT_START script_Object69PotionRed script_0801619A: CheckEntityInteractType JumpIfNot script_0801619A - _0807E864 + SetPlayerIdle GetInventoryValue 0x0024 MessageFromTargetTable 0x2d05, 0x2d04, 0x2d04, 0x2d04 CheckTextboxResult @@ -24,13 +24,13 @@ script_080161D8: .ifndef EU WaitPlayerGetItem WaitUntilTextboxCloses - _0807EB8C + FaceAwayFromPlayer MessageNoOverlap 0x2d06 .else MessageFromTarget 0x2d06 .endif script_080161E2: - _0807E878 + EnablePlayerControl Jump script_0801619A .align 2, 0 diff --git a/data/scripts/minishWoods/script_PlayerAtBombMinish.inc b/data/scripts/minishWoods/script_PlayerAtBombMinish.inc index 8d5d71c9..aa830e48 100644 --- a/data/scripts/minishWoods/script_PlayerAtBombMinish.inc +++ b/data/scripts/minishWoods/script_PlayerAtBombMinish.inc @@ -3,9 +3,9 @@ SCRIPT_START script_PlayerAtBombMinish BeginBlock SetEntitySpeed 0x0100 EndBlock - _0807ECC4 0x0010 + WalkSouth 0x0010 _0807EDD4 0x0078, 0x0060 - _0807EB44 0x0000 + SetAnimationState 0x0000 Wait 0x000f DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 diff --git a/data/scripts/minishWoods/script_PlayerAtFestari.inc b/data/scripts/minishWoods/script_PlayerAtFestari.inc index 3f69b969..90ad2c76 100644 --- a/data/scripts/minishWoods/script_PlayerAtFestari.inc +++ b/data/scripts/minishWoods/script_PlayerAtFestari.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerAtFestari SetEntitySpeed 0x0100 EndBlock _0807EDD4 0x00e8, 0x0068 - _0807EB44 0x0000 + SetAnimationState 0x0000 Wait 0x000f DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 diff --git a/data/scripts/minishWoods/script_PlayerAtGentari.inc b/data/scripts/minishWoods/script_PlayerAtGentari.inc index f53f6f0e..9e6468d3 100644 --- a/data/scripts/minishWoods/script_PlayerAtGentari.inc +++ b/data/scripts/minishWoods/script_PlayerAtGentari.inc @@ -3,9 +3,9 @@ SCRIPT_START script_PlayerAtGentari BeginBlock SetEntitySpeed 0x0100 EndBlock - _0807ECC4 0x0010 + WalkSouth 0x0010 _0807EDD4 0x0078, 0x0058 - _0807EB44 0x0000 + SetAnimationState 0x0000 Wait 0x000f DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 diff --git a/data/scripts/minishWoods/script_PlayerAtMadderpillar.inc b/data/scripts/minishWoods/script_PlayerAtMadderpillar.inc index 8a0c171a..4c48cc9f 100644 --- a/data/scripts/minishWoods/script_PlayerAtMadderpillar.inc +++ b/data/scripts/minishWoods/script_PlayerAtMadderpillar.inc @@ -4,13 +4,13 @@ SCRIPT_START script_PlayerAtMadderpillar BeginBlock SetEntitySpeed 0x0140 SetEntityDirection 0x0018 - _0807E864 - Call sub_0807F354 + SetPlayerIdle + Call SetPriorityPlayerEvent EndBlock - WaitForPlayerAction0x17 + WaitForPlayerEnterRoom _0807E8E4_3 DoPostScriptAction 0x0001 Call sub_080752AC - _0807E878 + EnablePlayerControl Call sub_080791D0 SCRIPT_END diff --git a/data/scripts/minishWoods/script_Syrup.inc b/data/scripts/minishWoods/script_Syrup.inc index 332de656..0f6d46a5 100644 --- a/data/scripts/minishWoods/script_Syrup.inc +++ b/data/scripts/minishWoods/script_Syrup.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Syrup BeginBlock _0807E9D4 - _0807E930 0x0008 + SetAnimation 0x0008 script_080160B0: EndBlock BeginBlock @@ -15,12 +15,12 @@ script_080160B0: Jump script_080160B0 script_080160D2: EndBlock - _0807EB74 + FacePlayer WaitForSyncFlagAndClear 0x00000004 Jump script_080160B0 script_080160E0: - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer EndBlock HasRoomItemForSale JumpIfNot script_0801611A @@ -36,7 +36,7 @@ script_080160E0: script_0801610C: WaitPlayerGetItem .ifndef EU - _0807EB8C + FaceAwayFromPlayer MessageFromTarget 0x2d0d .else MessageFromTarget 0x2d08 @@ -53,8 +53,8 @@ script_0801612C: MessageFromTarget 0x2d01 WaitUntilTextboxCloses script_08016132: - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 Jump script_080160B0 .align 2, 0 diff --git a/data/scripts/mtCrenel/script_CrenelHermit.inc b/data/scripts/mtCrenel/script_CrenelHermit.inc index 9a05a3cf..91d499ad 100644 --- a/data/scripts/mtCrenel/script_CrenelHermit.inc +++ b/data/scripts/mtCrenel/script_CrenelHermit.inc @@ -3,17 +3,17 @@ SCRIPT_START script_CrenelHermit BeginBlock Call sub_08061E70 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 Call sub_08061FD8 EndBlock script_0800B8FC: CheckEntityInteractType JumpIfNot script_0800B8FC - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08061FD8 Call sub_08062048 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800B8FC .2byte 0x0000 diff --git a/data/scripts/mtCrenel/script_EzloTalkCoF.inc b/data/scripts/mtCrenel/script_EzloTalkCoF.inc index bfc736fb..61676e73 100644 --- a/data/scripts/mtCrenel/script_EzloTalkCoF.inc +++ b/data/scripts/mtCrenel/script_EzloTalkCoF.inc @@ -1,12 +1,12 @@ @ Mountain Ezlo text after beating CoF SCRIPT_START script_EzloTalkCoF - _0807E864 + SetPlayerIdle Call sub_0807DF28 - _0807EB28 0x1c02 + EzloMessage 0x1c02 WaitUntilTextboxCloses SetLocalFlagByBank 0x0100, 0x0002 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/mtCrenel/script_GreatFairyBombs.inc b/data/scripts/mtCrenel/script_GreatFairyBombs.inc index e25eb65f..05470c3d 100644 --- a/data/scripts/mtCrenel/script_GreatFairyBombs.inc +++ b/data/scripts/mtCrenel/script_GreatFairyBombs.inc @@ -6,9 +6,9 @@ script_0800B734: Call sub_0808747C JumpIfNot script_0800B734 Call sub_08079184 - _0807E864 + SetPlayerIdle Wait 0x000a - Call sub_0807F9A4 + Call WaitForPlayerNormal StartPlayerScript script_PlayerAtGreatFairy WaitForSyncFlagAndClear 0x00000004 SetRoomFlag 0x0000 @@ -17,7 +17,7 @@ script_0800B734: JumpIf script_0800B7A2 MessageNoOverlap 0x0580 WaitUntilTextboxCloses - CallWithArg sub_0807F970, 0x00000582 + CallWithArg CheckMessageEqual, 0x00000582 JumpIf script_0800B794 CallWithArg sub_08087424, 0x00000001 Wait 0x00b4 @@ -30,7 +30,7 @@ script_0800B794: script_0800B7A2: MessageNoOverlap 0x0590 WaitUntilTextboxCloses - _0807E778 0x0010 + SetFadeTime 0x0010 DoFade7 WaitForFadeFinish ModHealth 0x00a0 diff --git a/data/scripts/mtCrenel/script_Melari.inc b/data/scripts/mtCrenel/script_Melari.inc index ccf1c55a..cb6458fc 100644 --- a/data/scripts/mtCrenel/script_Melari.inc +++ b/data/scripts/mtCrenel/script_Melari.inc @@ -3,14 +3,14 @@ SCRIPT_START script_Melari BeginBlock _0807E9D4 DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 EndBlock CheckInventory1 0x0041 JumpIf script_0800CFD2 CheckLocalFlag 0x007e JumpIfNot script_0800CFD2 - _0807E930 0x0008 + SetAnimation 0x0008 script_0800CFD2: CheckInventory1 0x0002 JumpIf script_0800CFFA @@ -29,11 +29,11 @@ script_0800CFFA: CheckEntityInteractType JumpIfNot script_0800CFFA EndBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 CheckInventory1 0x0002 JumpIfNot script_0800D032 - _0807EB74 + FacePlayer SetIntVariable 0x00000000 Call sub_0806C028 MessageNoOverlap 0x1219 @@ -43,14 +43,14 @@ script_0800D032: JumpIfNot script_0800D098 StartPlayerScript script_PlayerAtMelari WaitForSyncFlagAndClear 0x00000008 - _0807EB74 + FacePlayer SetIntVariable 0x00000000 Call sub_0806C028 MessageFromTargetPos 0x125c, 0x0002 WaitUntilTextboxCloses StartPlayerScript script_PlayerPlaceBrokenSword WaitForSyncFlagAndClear 0x00000008 - _0807EB44 0x0002 + SetAnimationState 0x0002 SetIntVariable 0x00000000 Call sub_0806C028 Wait 0x000f @@ -71,14 +71,14 @@ script_0800D0A8: WaitForSyncFlagAndClear 0x00000004 SetSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000004 - _0807EB74 + FacePlayer SetIntVariable 0x00000000 Call sub_0806C028 MessageFromTargetPos 0x123d, 0x0002 WaitUntilTextboxCloses StartPlayerScript script_PlayerPlaceBrokenSword WaitForSyncFlagAndClear 0x00000008 - _0807EB44 0x0002 + SetAnimationState 0x0002 SetIntVariable 0x00000000 Call sub_0806C028 PlaySound SFX_TASK_COMPLETE @@ -92,7 +92,7 @@ script_0800D108: MessageFromTargetPos 0x123e, 0x0002 WaitUntilTextboxCloses Wait 0x000f - _0807E930 0x0009 + SetAnimation 0x0009 SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000004 SetSyncFlag 0x00000002 @@ -104,14 +104,14 @@ script_0800D108: WaitForSyncFlagAndClear 0x00000004 SetSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000004 - _0807E930 0x0008 + SetAnimation 0x0008 Wait 0x003c Call sub_08095164 - _0807EB28 0x1240 + EzloMessage 0x1240 script_0800D17C: WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Call sub_0807DF50 Jump script_0800CFFA .2byte 0x0000 diff --git a/data/scripts/mtCrenel/script_MelariInRoom.inc b/data/scripts/mtCrenel/script_MelariInRoom.inc index 255d95e6..a8e7e283 100644 --- a/data/scripts/mtCrenel/script_MelariInRoom.inc +++ b/data/scripts/mtCrenel/script_MelariInRoom.inc @@ -3,8 +3,8 @@ SCRIPT_START script_MelariInRoom BeginBlock Call sub_08068884 DoPostScriptAction 0x000a - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 EndBlock script_0800D31E: EndBlock @@ -13,12 +13,12 @@ script_0800D31E: CheckEntityInteractType JumpIfNot script_0800D31E EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer SetIntVariable 0x00000000 Call sub_0806C028 MessageFromTarget 0x1219 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800D31E diff --git a/data/scripts/mtCrenel/script_MountainMinish1.inc b/data/scripts/mtCrenel/script_MountainMinish1.inc index ef7567fc..20e946d1 100644 --- a/data/scripts/mtCrenel/script_MountainMinish1.inc +++ b/data/scripts/mtCrenel/script_MountainMinish1.inc @@ -13,9 +13,9 @@ script_0800CF5E: Jump script_0800CF5E script_0800CF72: EndBlock - _0807E864 + SetPlayerIdle Call sub_08068190 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800CF5E diff --git a/data/scripts/mtCrenel/script_MountainMinish2.inc b/data/scripts/mtCrenel/script_MountainMinish2.inc index ff89c97d..de34aca9 100644 --- a/data/scripts/mtCrenel/script_MountainMinish2.inc +++ b/data/scripts/mtCrenel/script_MountainMinish2.inc @@ -5,10 +5,10 @@ SCRIPT_START script_MountainMinish2 DoPostScriptAction 0x000a EndBlock script_0800CF96: - _0807E944 - _0807E864 + TriggerInteract + SetPlayerIdle Call sub_08068190 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800CF96 diff --git a/data/scripts/mtCrenel/script_MountainMinish3.inc b/data/scripts/mtCrenel/script_MountainMinish3.inc index 2fe3f475..59268025 100644 --- a/data/scripts/mtCrenel/script_MountainMinish3.inc +++ b/data/scripts/mtCrenel/script_MountainMinish3.inc @@ -20,28 +20,28 @@ script_0800D292: Jump script_0800D282 script_0800D2B0: EndBlock - _0807E864 + SetPlayerIdle Call sub_08068190 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800D282 script_0800D2C6: EndBlock SetSyncFlag 0x00000004 WaitForSyncFlagAndClear 0x00000002 SetSyncFlag 0x00000004 - _0807E930 0x000c + SetAnimation 0x000c WaitForSyncFlagAndClear 0x00000001 SetSyncFlag 0x00000004 script_0800D2EA: - _0807E930 0x000b + SetAnimation 0x000b script_0800D2EE: CheckEntityInteractType JumpIfNot script_0800D2EE - _0807E864 + SetPlayerIdle Call sub_08068190 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800D2EE diff --git a/data/scripts/mtCrenel/script_MountainMinish4.inc b/data/scripts/mtCrenel/script_MountainMinish4.inc index a953ebfa..f1689e97 100644 --- a/data/scripts/mtCrenel/script_MountainMinish4.inc +++ b/data/scripts/mtCrenel/script_MountainMinish4.inc @@ -13,7 +13,7 @@ script_0800D35E: Jump script_0800D35E script_0800D372: EndBlock - _0807E864 + SetPlayerIdle Call sub_08068190 WaitUntilTextboxCloses Wait 0x000f @@ -28,11 +28,11 @@ script_0800D372: StartPlayerScript script_PlayerAtMountainMinishExit WaitForSyncFlagAndClear 0x00000001 script_0800D3B2: - _0807EB44 0x0002 - _0807E930 0x0005 + SetAnimationState 0x0002 + SetAnimation 0x0005 _0807EDD4 0x00a0, 0x0130 - _0807EB44 0x0006 - _0807E930 0x0003 + SetAnimationState 0x0006 + SetAnimation 0x0003 SetIntVariable 0x00000004 Call sub_080681D8 PlaySound SFX_TASK_COMPLETE @@ -40,6 +40,6 @@ script_0800D3B2: DoPostScriptAction 0x000a SetLocalFlag 0x007f script_0800D3E4: - _0807E878 + EnablePlayerControl Jump script_0800D35E .2byte 0x0000 diff --git a/data/scripts/mtCrenel/script_MountainMinish5.inc b/data/scripts/mtCrenel/script_MountainMinish5.inc index a31a712b..edbf2f01 100644 --- a/data/scripts/mtCrenel/script_MountainMinish5.inc +++ b/data/scripts/mtCrenel/script_MountainMinish5.inc @@ -6,35 +6,35 @@ SCRIPT_START script_MountainMinish5 DoPostScriptAction 0x000a EndBlock script_0800D426: - _0807EB44 0x0002 + SetAnimationState 0x0002 SetIntVariable 0x00000000 Call sub_0806AF60 Wait 0x0014 - _0807EB44 0x0004 + SetAnimationState 0x0004 SetIntVariable 0x00000000 Call sub_0806AF60 Wait 0x0014 - _0807EB44 0x0006 + SetAnimationState 0x0006 SetIntVariable 0x00000000 Call sub_0806AF60 Wait 0x0014 - _0807EB44 0x0006 + SetAnimationState 0x0006 SetIntVariable 0x00000004 Call sub_0806AF60 _0807EDD4 0x00a8, 0x01e8 - _0807EB44 0x0006 + SetAnimationState 0x0006 SetIntVariable 0x00000000 Call sub_0806AF60 Wait 0x0014 - _0807EB44 0x0004 + SetAnimationState 0x0004 SetIntVariable 0x00000000 Call sub_0806AF60 Wait 0x0014 - _0807EB44 0x0002 + SetAnimationState 0x0002 SetIntVariable 0x00000000 Call sub_0806AF60 Wait 0x0014 - _0807EB44 0x0002 + SetAnimationState 0x0002 SetIntVariable 0x00000004 Call sub_0806AF60 _0807EDD4 0x0228, 0x01e8 @@ -43,13 +43,13 @@ script_0800D426: BeginBlock DoPostScriptAction 0x000a Call sub_08062A48 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 script_0800D4E4: EndBlock Call sub_08062698 Call sub_080626AC - CallWithArg sub_0807F0EC, 0x00000009 + CallWithArg GetRandomInt, 0x00000009 JumpTable script_0800D510, script_0800D51A, script_0800D524, script_0800D52E, script_0800D538, script_0800D542, script_0800D54C, script_0800D556, script_0800D560 script_0800D510: _0807EE04 0x0038, 0x0068 @@ -89,10 +89,10 @@ script_0800D566: Jump script_0800D4E4 script_0800D584: EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_0806265C WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800D4E4 diff --git a/data/scripts/mtCrenel/script_Object6ABrokenSword.inc b/data/scripts/mtCrenel/script_Object6ABrokenSword.inc index d586f992..8a738321 100644 --- a/data/scripts/mtCrenel/script_Object6ABrokenSword.inc +++ b/data/scripts/mtCrenel/script_Object6ABrokenSword.inc @@ -13,7 +13,7 @@ SCRIPT_START script_Object6ABrokenSword SCRIPT_END script_0800D242: DoPostScriptAction 0x0007 - _0807E930 0x0003 + SetAnimation 0x0003 SCRIPT_END script_0800D24C: DoPostScriptAction 0x0006 diff --git a/data/scripts/mtCrenel/script_PlayerAtMelari.inc b/data/scripts/mtCrenel/script_PlayerAtMelari.inc index 409ed3cc..82b3248e 100644 --- a/data/scripts/mtCrenel/script_PlayerAtMelari.inc +++ b/data/scripts/mtCrenel/script_PlayerAtMelari.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerAtMelari SetEntitySpeed 0x0100 EndBlock _0807EDD4 0x0170, 0x0140 - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000008 Call sub_080791BC diff --git a/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc b/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc index 0934f626..0fda5e29 100644 --- a/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc +++ b/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc @@ -3,10 +3,10 @@ SCRIPT_START script_PlayerAtMountainMinishExit BeginBlock SetEntitySpeed 0x0080 EndBlock - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 DoPostScriptAction 0x000d - _0807ECC4 0x0020 + WalkSouth 0x0020 SetSyncFlag 0x00000001 Call sub_080791BC SCRIPT_END diff --git a/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc b/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc index d9138b1b..10eed28e 100644 --- a/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc +++ b/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc @@ -1,10 +1,10 @@ @ Mines Player get white sword SCRIPT_START script_PlayerGetWhiteSword _0807F078 0x0002, 0x0001 - CallWithArg sub_0807F918, 0x00000002 + CallWithArg PutItemAnySlot, 0x00000002 PlaySound SFX_109 - CallWithArg sub_0807F238, 0x000001e2 - Call sub_0807F304 + CallWithArg SetPlayerAnimation2, 0x000001e2 + Call WaitForPlayerFrameHiBit MessageNoOverlap 0x0502 WaitUntilTextboxCloses SetSyncFlag 0x00000008 diff --git a/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc b/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc index 0cda5bcd..804412ab 100644 --- a/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc +++ b/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerPlaceBrokenSword EndBlock _0807EDD4 0x0170, 0x0120 _0807EDD4 0x01a8, 0x0120 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000008 Call sub_080791BC diff --git a/data/scripts/northHyruleField/script_CarpenterOutsideTown.inc b/data/scripts/northHyruleField/script_CarpenterOutsideTown.inc index c081612b..e9af8375 100644 --- a/data/scripts/northHyruleField/script_CarpenterOutsideTown.inc +++ b/data/scripts/northHyruleField/script_CarpenterOutsideTown.inc @@ -4,22 +4,22 @@ SCRIPT_START script_CarpenterOutsideTown BeginBlock Call sub_08067314 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 SetIntVariable 0x00000000 Call sub_080672B0 EndBlock script_08009592: CheckEntityInteractType JumpIfNot script_08009592 - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer SetIntVariable 0x00000004 Call sub_080672B0 Call sub_080672C8 WaitUntilTextboxCloses Wait 0x000f - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 SetIntVariable 0x00000000 Call sub_080672B0 Jump script_08009592 diff --git a/data/scripts/northHyruleField/script_GuardNorthHyruleField.inc b/data/scripts/northHyruleField/script_GuardNorthHyruleField.inc index fb4474ad..f0acd305 100644 --- a/data/scripts/northHyruleField/script_GuardNorthHyruleField.inc +++ b/data/scripts/northHyruleField/script_GuardNorthHyruleField.inc @@ -2,7 +2,7 @@ @ also at Lon Lon Ranch SCRIPT_START script_GuardNorthHyruleField BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 _0807E9D4 DoPostScriptAction 0x000a CallWithArg sub_0807F3D8, 0x00000000 @@ -10,11 +10,11 @@ SCRIPT_START script_GuardNorthHyruleField script_08014E2C: CheckEntityInteractType JumpIfNot script_08014E2C - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x00000000 Call sub_08064428 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08014E2C .2byte 0x0000 diff --git a/data/scripts/northHyruleField/script_MutohOutsideTown.inc b/data/scripts/northHyruleField/script_MutohOutsideTown.inc index 11002fe7..72f84118 100644 --- a/data/scripts/northHyruleField/script_MutohOutsideTown.inc +++ b/data/scripts/northHyruleField/script_MutohOutsideTown.inc @@ -3,19 +3,19 @@ SCRIPT_START script_MutohOutsideTown BeginBlock Call sub_08067100 DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock script_08009512: CheckEntityInteractType JumpIfNot script_08009512 - _0807E864 + SetPlayerIdle DoPostScriptAction 0x0001 - _0807EB74 + FacePlayer Call sub_080670B4 WaitUntilTextboxCloses - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0000 Jump script_08009512 .2byte 0x0000 diff --git a/data/scripts/northHyruleField/script_Object69FixBridge.inc b/data/scripts/northHyruleField/script_Object69FixBridge.inc index 3dff4c45..e7fca431 100644 --- a/data/scripts/northHyruleField/script_Object69FixBridge.inc +++ b/data/scripts/northHyruleField/script_Object69FixBridge.inc @@ -14,14 +14,14 @@ SCRIPT_START script_Object69FixBridge .endif .endif .endif - _0807E864 + SetPlayerIdle MoveEntityToPlayer CameraTargetEntity SetEntitySpeed 0x0200 EndBlock Wait 0x000f _0807E8E4_2 - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x001e _0807EDD4 0x00b8, 0x0258 Wait 0x001e @@ -29,6 +29,6 @@ SCRIPT_START script_Object69FixBridge Wait 0x0078 _0807EEB4 CameraTargetPlayer - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/npc/script_BladeBrothers.inc b/data/scripts/npc/script_BladeBrothers.inc index 8fec6673..e42d8c46 100644 --- a/data/scripts/npc/script_BladeBrothers.inc +++ b/data/scripts/npc/script_BladeBrothers.inc @@ -1,9 +1,9 @@ @ Blade Brothers SCRIPT_START script_BladeBrothers BeginBlock - Call sub_0807F348 + Call SetPriorityMessage DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock script_080161FE: @@ -11,9 +11,9 @@ script_080161FE: script_08016204: CheckEntityInteractType JumpIfNot script_08016204 - _0807E864 + SetPlayerIdle Call sub_0807DF28 - _0807EB74 + FacePlayer Call sub_08068CA0 JumpIf script_0801633E Call sub_08068CFC @@ -26,7 +26,7 @@ script_08016204: JumpIfNot script_08016346 StartPlayerScript script_PlayerAtBladeBrothers WaitForSyncFlagAndClear 0x00000001 - _0807EB74 + FacePlayer Call sub_08068C8C JumpIf script_08016262 Call sub_08068DE8 @@ -36,14 +36,14 @@ script_08016262: Call sub_08068E00 WaitUntilTextboxCloses DoPostScriptAction 0x0001 - Call sub_0807F2D4 + Call WaitForFrameHiBit Call sub_08068E90 Call sub_08068C8C JumpIf script_0801631C Call sub_08068F00 Call sub_08068F14 Call sub_08068BB4 - CallWithArg sub_0807F244, 0x00010001 + CallWithArg EquipItem, 0x00010001 Call sub_08068B84 Call sub_0807F2A8 Call sub_08068BD0 @@ -52,7 +52,7 @@ script_08016262: WaitUntilTextboxCloses Call sub_08068EB4 Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_080162CC: EndBlock BeginBlock @@ -63,17 +63,17 @@ script_080162CC: Jump script_080162CC script_080162E4: EndBlock - _0807E864 + SetPlayerIdle Call sub_08068E78 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_080162CC script_080162F6: EndBlock - _0807E888 - Call sub_0807F594 + DisablePlayerControl + Call WaitForPlayerIdle Call sub_0807DF28 - _0807E864 + SetPlayerIdle StopBgm PlaySound SFX_TASK_COMPLETE Wait 0x003c @@ -95,8 +95,8 @@ script_0801633E: WaitUntilTextboxCloses script_08016346: Call sub_0807DF50 - _0807E878 - _0807EB44 0x0004 + EnablePlayerControl + SetAnimationState 0x0004 DoPostScriptAction 0x0000 Jump script_080161FE .2byte 0x0000 diff --git a/data/scripts/npc/script_Farmer.inc b/data/scripts/npc/script_Farmer.inc index 7316606b..a03617d1 100644 --- a/data/scripts/npc/script_Farmer.inc +++ b/data/scripts/npc/script_Farmer.inc @@ -9,23 +9,23 @@ script_0800B0E8: Call sub_0807F434 JumpTable script_0800B0E8, script_0800B0F6, script_0800B134 script_0800B0F6: - _0807E864 + SetPlayerIdle Call sub_0807DF28 - Call sub_0807F2D4 - _0807EB74 + Call WaitForFrameHiBit + FacePlayer CallWithArg sub_0806BC94, 0x00000004 Call sub_0806BCE8 WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl Call sub_0806BCB8 CallWithArg sub_0806BC94, 0x00000000 Jump script_0800B0E8 script_0800B134: - _0807E864 + SetPlayerIdle Call sub_0807DF28 - Call sub_0807F2D4 - _0807EB74 + Call WaitForFrameHiBit + FacePlayer CallWithArg sub_0806BC94, 0x00000004 Call sub_0807F650 _0807E9F0 @@ -35,7 +35,7 @@ script_0800B134: Call sub_0806BCC0 script_0800B160: Call sub_0807DF50 - _0807E878 + EnablePlayerControl Call sub_0806BCB8 CallWithArg sub_0806BC94, 0x00000000 Jump script_0800B0E8 diff --git a/data/scripts/npc/script_ForestMinish12.inc b/data/scripts/npc/script_ForestMinish12.inc index 0ba2e7ea..944ee213 100644 --- a/data/scripts/npc/script_ForestMinish12.inc +++ b/data/scripts/npc/script_ForestMinish12.inc @@ -4,7 +4,7 @@ SCRIPT_START script_ForestMinish12 _0807E9D4 EndBlock script_080165FE: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_080165FE MessageFromTarget 0x0601 Jump script_080165FE diff --git a/data/scripts/npc/script_ForestMinish13.inc b/data/scripts/npc/script_ForestMinish13.inc index c277126a..448f7c85 100644 --- a/data/scripts/npc/script_ForestMinish13.inc +++ b/data/scripts/npc/script_ForestMinish13.inc @@ -4,11 +4,11 @@ SCRIPT_START script_ForestMinish13 _0807E9D4 EndBlock script_08016612: - _0807E944 - _0807E864 + TriggerInteract + SetPlayerIdle MessageFromTarget 0x0602 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_08016612 .2byte 0x0000 diff --git a/data/scripts/npc/script_ForestMinish14.inc b/data/scripts/npc/script_ForestMinish14.inc index 7eb3fa47..6fb1a794 100644 --- a/data/scripts/npc/script_ForestMinish14.inc +++ b/data/scripts/npc/script_ForestMinish14.inc @@ -4,11 +4,11 @@ SCRIPT_START script_ForestMinish14 _0807E9D4 EndBlock script_0801662E: - _0807E944 - _0807E864 - _0807EB28 0x0603 + TriggerInteract + SetPlayerIdle + EzloMessage 0x0603 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0801662E .2byte 0x0000 diff --git a/data/scripts/npc/script_ForestMinish15.inc b/data/scripts/npc/script_ForestMinish15.inc index c9b227b0..9ab52552 100644 --- a/data/scripts/npc/script_ForestMinish15.inc +++ b/data/scripts/npc/script_ForestMinish15.inc @@ -2,12 +2,12 @@ SCRIPT_START script_ForestMinish15 SetEntitySpeed 0x0100 script_08016648: - _0807ECF4 0x0030 + WalkWest 0x0030 Wait 0x0008 - _0807ECC4 0x0030 + WalkSouth 0x0030 Wait 0x0008 - _0807EC94 0x0030 + WalkEast 0x0030 Wait 0x0008 - _0807EC64 0x0030 + WalkNorth 0x0030 Wait 0x0008 Jump script_08016648 diff --git a/data/scripts/npc/script_ForestMinish18.inc b/data/scripts/npc/script_ForestMinish18.inc index 4198e7da..140817c4 100644 --- a/data/scripts/npc/script_ForestMinish18.inc +++ b/data/scripts/npc/script_ForestMinish18.inc @@ -2,38 +2,38 @@ SCRIPT_START script_ForestMinish18 SetEntitySpeed 0x0100 script_08016700: - _0807EC94 0x0030 + WalkEast 0x0030 SetSyncFlag 0x00000002 Wait 0x000f DoPostScriptAction 0x0000 - _0807EB44 0x0004 + SetAnimationState 0x0004 WaitForSyncFlag 0x00000001 ClearSyncFlag 0x00000001 DoPostScriptAction 0x0003 Wait 0x0002 - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x0002 - _0807EB44 0x0000 + SetAnimationState 0x0000 Wait 0x0002 - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x0002 - _0807EB44 0x0004 + SetAnimationState 0x0004 WaitForSyncFlag 0x00000001 ClearSyncFlag 0x00000001 - _0807ECF4 0x0030 + WalkWest 0x0030 Wait 0x000f DoPostScriptAction 0x0000 - _0807EB44 0x0004 + SetAnimationState 0x0004 Wait 0x001e SetSyncFlag 0x00000006 DoPostScriptAction 0x0003 Wait 0x0002 - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x0002 - _0807EB44 0x0000 + SetAnimationState 0x0000 Wait 0x0002 - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x0002 - _0807EB44 0x0004 + SetAnimationState 0x0004 Wait 0x003c Jump script_08016700 diff --git a/data/scripts/npc/script_ForestMinish19.inc b/data/scripts/npc/script_ForestMinish19.inc index 1e5e8056..44ac6a5f 100644 --- a/data/scripts/npc/script_ForestMinish19.inc +++ b/data/scripts/npc/script_ForestMinish19.inc @@ -4,38 +4,38 @@ SCRIPT_START script_ForestMinish19 script_0801679C: WaitForSyncFlag 0x00000002 ClearSyncFlag 0x00000002 - _0807EC94 0x0030 + WalkEast 0x0030 SetSyncFlag 0x00000004 Wait 0x000f DoPostScriptAction 0x0000 - _0807EB44 0x0004 + SetAnimationState 0x0004 WaitForSyncFlag 0x00000002 ClearSyncFlag 0x00000002 DoPostScriptAction 0x0003 Wait 0x0002 - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x0002 - _0807EB44 0x0000 + SetAnimationState 0x0000 Wait 0x0002 - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x0002 - _0807EB44 0x0004 + SetAnimationState 0x0004 WaitForSyncFlag 0x00000002 ClearSyncFlag 0x00000002 - _0807ECF4 0x0030 + WalkWest 0x0030 SetSyncFlag 0x00000001 Wait 0x000f DoPostScriptAction 0x0000 - _0807EB44 0x0004 + SetAnimationState 0x0004 WaitForSyncFlag 0x00000002 ClearSyncFlag 0x00000002 DoPostScriptAction 0x0003 Wait 0x0002 - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x0002 - _0807EB44 0x0000 + SetAnimationState 0x0000 Wait 0x0002 - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x0002 - _0807EB44 0x0004 + SetAnimationState 0x0004 Jump script_0801679C diff --git a/data/scripts/npc/script_ForestMinish20.inc b/data/scripts/npc/script_ForestMinish20.inc index e9aa1833..e07a0ef3 100644 --- a/data/scripts/npc/script_ForestMinish20.inc +++ b/data/scripts/npc/script_ForestMinish20.inc @@ -4,36 +4,36 @@ SCRIPT_START script_ForestMinish20 script_08016848: WaitForSyncFlag 0x00000004 ClearSyncFlag 0x00000004 - _0807EC94 0x0030 + WalkEast 0x0030 Wait 0x000f DoPostScriptAction 0x0000 - _0807EB44 0x0004 + SetAnimationState 0x0004 Wait 0x001e SetSyncFlag 0x00000003 DoPostScriptAction 0x0003 Wait 0x0002 - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x0002 - _0807EB44 0x0000 + SetAnimationState 0x0000 Wait 0x0002 - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x0002 - _0807EB44 0x0004 + SetAnimationState 0x0004 Wait 0x003c - _0807ECF4 0x0030 + WalkWest 0x0030 SetSyncFlag 0x00000002 Wait 0x000f DoPostScriptAction 0x0000 - _0807EB44 0x0004 + SetAnimationState 0x0004 WaitForSyncFlag 0x00000004 ClearSyncFlag 0x00000004 DoPostScriptAction 0x0003 Wait 0x0002 - _0807EB44 0x0006 + SetAnimationState 0x0006 Wait 0x0002 - _0807EB44 0x0000 + SetAnimationState 0x0000 Wait 0x0002 - _0807EB44 0x0002 + SetAnimationState 0x0002 Wait 0x0002 - _0807EB44 0x0004 + SetAnimationState 0x0004 Jump script_08016848 diff --git a/data/scripts/npc/script_ForestMinish21.inc b/data/scripts/npc/script_ForestMinish21.inc index 4708f47d..f6b901c9 100644 --- a/data/scripts/npc/script_ForestMinish21.inc +++ b/data/scripts/npc/script_ForestMinish21.inc @@ -4,8 +4,8 @@ SCRIPT_START script_ForestMinish21 _0807E9D4 EndBlock script_080168E6: - _0807E944 - _0807E864 + TriggerInteract + SetPlayerIdle Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_080168E6 diff --git a/data/scripts/npc/script_MysteriousWall.inc b/data/scripts/npc/script_MysteriousWall.inc index a55a6817..d7a22778 100644 --- a/data/scripts/npc/script_MysteriousWall.inc +++ b/data/scripts/npc/script_MysteriousWall.inc @@ -13,12 +13,12 @@ script_0800B98A: _0807E9F0 JumpIf script_0800B99E Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800B98A script_0800B99E: Call sub_0806F188 Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_0800B9AC: DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/npc/script_PlayerAtBladeBrothers.inc b/data/scripts/npc/script_PlayerAtBladeBrothers.inc index 7db4fb9c..d2025632 100644 --- a/data/scripts/npc/script_PlayerAtBladeBrothers.inc +++ b/data/scripts/npc/script_PlayerAtBladeBrothers.inc @@ -2,7 +2,7 @@ SCRIPT_START script_PlayerAtBladeBrothers SetEntitySpeed 0x0100 _0807EDD4 0x0078, 0x0050 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/npc/script_PlayerAtGreatFairy.inc b/data/scripts/npc/script_PlayerAtGreatFairy.inc index 8839a3cb..af017dba 100644 --- a/data/scripts/npc/script_PlayerAtGreatFairy.inc +++ b/data/scripts/npc/script_PlayerAtGreatFairy.inc @@ -18,8 +18,8 @@ script_0800B7FC: Jump script_0800B7EE BeginBlock DoPostScriptAction 0x0007 - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 EndBlock SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/npc/script_TingleSiblings.inc b/data/scripts/npc/script_TingleSiblings.inc index 8393ee87..f877881f 100644 --- a/data/scripts/npc/script_TingleSiblings.inc +++ b/data/scripts/npc/script_TingleSiblings.inc @@ -2,52 +2,52 @@ SCRIPT_START script_TingleSiblings BeginBlock Call sub_08064EA4 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a EndBlock script_0801690A: - _0807E30C + FacePlayerAndCheckDist JumpIfNot script_0801690A - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer Call sub_08064F28 WaitUntilTextboxCloses JumpIfNot script_08016926 GivePlayerItem 0x003d WaitPlayerGetItem script_08016926: - _0807E878 + EnablePlayerControl SetGlobalFlag 0x005c Jump script_0801690A BeginBlock _0807E9D4 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x000a EndBlock script_0801693E: - _0807E944 - _0807E864 + TriggerInteract + SetPlayerIdle Wait 0x0018 MessageFromTarget 0x0a01 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0801693E .2byte 0x0000 BeginBlock _0807E9D4 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x000a - _0807E930 0x0000 + SetAnimation 0x0000 EndBlock script_0801696A: - _0807E944 - _0807E864 + TriggerInteract + SetPlayerIdle Wait 0x0018 MessageFromTarget 0x0a01 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0801696A .2byte 0x0000 diff --git a/data/scripts/npc/script_Windcrest.inc b/data/scripts/npc/script_Windcrest.inc index ef4d0c4d..bc49eddd 100644 --- a/data/scripts/npc/script_Windcrest.inc +++ b/data/scripts/npc/script_Windcrest.inc @@ -9,7 +9,7 @@ SCRIPT_START script_Windcrest script_0800B024: CheckEntityInteractType JumpIfNot script_0800B024 - _0807E864 + SetPlayerIdle Call sub_0807DF28 CheckGlobalFlag 0x0052 JumpIf script_0800B082 @@ -20,7 +20,7 @@ script_0800B024: DoPostScriptAction 0x0008 Call Windcrest_Unlock Wait 0x003c - _0807EB28 0x0b5c + EzloMessage 0x0b5c WaitUntilTextboxCloses SetGlobalFlag 0x0053 Jump script_0800B09C @@ -30,7 +30,7 @@ script_0800B064: DoPostScriptAction 0x0008 Call Windcrest_Unlock Wait 0x003c - _0807EB28 0x0b5d + EzloMessage 0x0b5d WaitUntilTextboxCloses Jump script_0800B09C script_0800B082: @@ -39,11 +39,11 @@ script_0800B082: DoPostScriptAction 0x0008 Call Windcrest_Unlock Wait 0x003c - _0807EB28 0x0b5e + EzloMessage 0x0b5e WaitUntilTextboxCloses script_0800B09C: Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_08013F94.inc b/data/scripts/sanctuary/script_08013F94.inc index ec8cf7c0..4dc3b9e0 100644 --- a/data/scripts/sanctuary/script_08013F94.inc +++ b/data/scripts/sanctuary/script_08013F94.inc @@ -13,15 +13,15 @@ script_08013FA4: CheckPlayerFlags 0x00400000 JumpIfNot script_08013FA4 EndBlock - Call sub_0807FA40 - _0807E888 + Call WaitForPlayerNormalOrTalkEzlo + DisablePlayerControl Call sub_0807DF38 Wait 0x0078 - _0807EB28 0x1505 + EzloMessage 0x1505 WaitUntilTextboxCloses SetLocalFlag 0x007d Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_08013FE0: DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/sanctuary/script_NPC4EPreventPlayerLeave.inc b/data/scripts/sanctuary/script_NPC4EPreventPlayerLeave.inc index 56929281..8dca707e 100644 --- a/data/scripts/sanctuary/script_NPC4EPreventPlayerLeave.inc +++ b/data/scripts/sanctuary/script_NPC4EPreventPlayerLeave.inc @@ -15,17 +15,17 @@ script_08013FF0: CallWithArg sub_0807F6B4, 0x000000d0 JumpIfNot script_08013FF0 EndBlock - Call sub_0807F9A4 + Call WaitForPlayerNormal BeginBlock - _0807E864 + SetPlayerIdle Call sub_0807DF28 EndBlock - _0807EB28 0x1508 + EzloMessage 0x1508 WaitUntilTextboxCloses StartPlayerScript script_PlayerSanctuary WaitForSyncFlagAndClear 0x00000001 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_08013FF0 script_0801404C: DoPostScriptAction 0x0006 diff --git a/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc b/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc index 3939de1e..d5c22881 100644 --- a/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc +++ b/data/scripts/sanctuary/script_Npc4EFinalSwordRumble.inc @@ -1,6 +1,6 @@ @ Sanctuary NPC4E Rumble after fusing final sword SCRIPT_START script_Npc4EFinalSwordRumble - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c .ifdef EU _0807F0B4 0x0007 @@ -23,13 +23,13 @@ SCRIPT_START script_Npc4EFinalSwordRumble MoveEntityToPlayer CameraTargetEntity Wait 0x003c - _0807EB28 0x1502 + EzloMessage 0x1502 WaitUntilTextboxCloses _0807F0B4 0x0004 CameraTargetPlayer SetLocalFlag 0x007c Call sub_08053250 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/sanctuary/script_Npc4ELookAtPictureAgain.inc b/data/scripts/sanctuary/script_Npc4ELookAtPictureAgain.inc index 26ed2582..dcc7d6c7 100644 --- a/data/scripts/sanctuary/script_Npc4ELookAtPictureAgain.inc +++ b/data/scripts/sanctuary/script_Npc4ELookAtPictureAgain.inc @@ -13,9 +13,9 @@ script_0801427C: script_08014298: CheckEntityInteractType JumpIfNot script_08014298 - _0807E864 + SetPlayerIdle MessageFromTargetPos 0x0647, 0x000c WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_08014298 .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Npc4EPedestal.inc b/data/scripts/sanctuary/script_Npc4EPedestal.inc index 43bc49a9..6662c61f 100644 --- a/data/scripts/sanctuary/script_Npc4EPedestal.inc +++ b/data/scripts/sanctuary/script_Npc4EPedestal.inc @@ -10,7 +10,7 @@ SCRIPT_START script_Npc4EPedestal script_080134F8: CheckEntityInteractType JumpIfNot script_080134F8 - _0807E864 + SetPlayerIdle Call sub_0807DF28 StartPlayerScript script_PlayerAtPedestal WaitForSyncFlagAndClear 0x00000001 @@ -55,15 +55,15 @@ script_080134F8: _0807F078 0x0003, 0x0001 Call sub_0806DC3C Call sub_0806DC58 - Call sub_0807F304 + Call WaitForPlayerFrameHiBit Wait 0x003c - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade7 PlaySound SFX_EVAPORATE WaitForFadeFinish Wait 0x003c SetSyncFlag 0x00000010 - _0807E778 0x0002 + SetFadeTime 0x0002 DoFade6 WaitForFadeFinish PlaySound SFX_109 diff --git a/data/scripts/sanctuary/script_Npc4EPreventPlayerLeaving.inc b/data/scripts/sanctuary/script_Npc4EPreventPlayerLeaving.inc index d34f479b..11af2ca2 100644 --- a/data/scripts/sanctuary/script_Npc4EPreventPlayerLeaving.inc +++ b/data/scripts/sanctuary/script_Npc4EPreventPlayerLeaving.inc @@ -12,14 +12,14 @@ script_08013B1E: CheckLocalFlag 0x0078 JumpIf script_08013B1E EndBlock - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 - _0807EB28 0x1507 + EzloMessage 0x1507 WaitUntilTextboxCloses StartPlayerScript script_PlayerSanctuary WaitForSyncFlagAndClear 0x00000001 Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_08013B1E .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Npc4ESanctuaryIntro.inc b/data/scripts/sanctuary/script_Npc4ESanctuaryIntro.inc index d52e0ba7..df1b5847 100644 --- a/data/scripts/sanctuary/script_Npc4ESanctuaryIntro.inc +++ b/data/scripts/sanctuary/script_Npc4ESanctuaryIntro.inc @@ -4,23 +4,23 @@ SCRIPT_START script_Npc4ESanctuaryIntro script_08013CA6: CheckPlayerInRegion 0x00e8, 0x01e8, 0x4080 JumpIfNot script_08013CA6 - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Call sub_0807DF28 - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c _0807F0B4 0x0001 SetEntityPositionRelative 0x00e8, 0x0138 CameraTargetEntity - Call sub_0807F5C0 + Call WaitForCameraTouchRoomBorder Wait 0x0078 _0807F0B4 0x0004 CameraTargetPlayer - Call sub_0807F5C0 - _0807EB28 0x1504 + Call WaitForCameraTouchRoomBorder + EzloMessage 0x1504 WaitUntilTextboxCloses SetLocalFlag 0x0079 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/sanctuary/script_Npc4ESecondSanctuary.inc b/data/scripts/sanctuary/script_Npc4ESecondSanctuary.inc index e5bef48f..155c1dbf 100644 --- a/data/scripts/sanctuary/script_Npc4ESecondSanctuary.inc +++ b/data/scripts/sanctuary/script_Npc4ESecondSanctuary.inc @@ -10,7 +10,7 @@ SCRIPT_START script_Npc4ESecondSanctuary script_0801373C: CheckEntityInteractType JumpIfNot script_0801373C - _0807E864 + SetPlayerIdle Call sub_0807DF28 StartPlayerScript script_PlayerAtPedestal WaitForSyncFlagAndClear 0x00000001 @@ -58,15 +58,15 @@ script_0801373C: _0807F078 0x0004, 0x0001 Call sub_0806DC3C Call sub_0806DC58 - Call sub_0807F304 + Call WaitForPlayerFrameHiBit Wait 0x003c - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade7 PlaySound SFX_EVAPORATE WaitForFadeFinish Wait 0x003c SetSyncFlag 0x00000010 - _0807E778 0x0002 + SetFadeTime 0x0002 DoFade6 WaitForFadeFinish PlaySound SFX_109 @@ -76,7 +76,7 @@ script_0801373C: SetLocalFlag 0x007b Call sub_08053250 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc b/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc index 24eb4ce1..4c913d06 100644 --- a/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc +++ b/data/scripts/sanctuary/script_Npc4ESpawnTextBoard.inc @@ -1,6 +1,6 @@ @ Sanctuary NPC4E spawn text board SCRIPT_START script_Npc4ESpawnTextBoard - Call sub_0807F3F8 + Call CreatePlayerExclamationMark Wait 0x003c _0807F0B4 0x0007 SetEntityPositionRelative 0x00e8, 0x00a8 @@ -12,13 +12,13 @@ SCRIPT_START script_Npc4ESpawnTextBoard _0807F0C8 0x0000, 0x0000 StartPlayerScript script_PlayerTextBoardAppears WaitForSyncFlagAndClear 0x00000002 - _0807EB28 0x1501 + EzloMessage 0x1501 WaitUntilTextboxCloses _0807F0B4 0x0004 CameraTargetPlayer SetLocalFlag 0x007a Call sub_08053250 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc b/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc index 05e2ccd9..9a57f37f 100644 --- a/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc +++ b/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc @@ -10,7 +10,7 @@ SCRIPT_START script_Npc4EThirdSanctuary script_080138D0: CheckEntityInteractType JumpIfNot script_080138D0 - _0807E864 + SetPlayerIdle Call sub_0807DF28 StartPlayerScript script_PlayerAtPedestal WaitForSyncFlagAndClear 0x00000001 @@ -63,15 +63,15 @@ script_080138D0: Call sub_0807AEE4 Call sub_0806DC3C Call sub_0806DC58 - Call sub_0807F304 + Call WaitForPlayerFrameHiBit Wait 0x003c - _0807E778 0x0004 + SetFadeTime 0x0004 DoFade7 PlaySound SFX_EVAPORATE WaitForFadeFinish Wait 0x003c SetSyncFlag 0x00000010 - _0807E778 0x0002 + SetFadeTime 0x0002 DoFade6 WaitForFadeFinish PlaySound SFX_109 @@ -84,7 +84,7 @@ script_080138D0: CameraTargetEntity .endif Call sub_0806DC3C - CallWithArg sub_0807F244, 0x00010001 + CallWithArg EquipItem, 0x00010001 CallWithArg sub_0807F29C, gUnk_080049FE Wait 0x00c8 CallWithArg sub_0807F29C, 0x00000000 diff --git a/data/scripts/sanctuary/script_Object6AEarthElement.inc b/data/scripts/sanctuary/script_Object6AEarthElement.inc index 55980676..6754c480 100644 --- a/data/scripts/sanctuary/script_Object6AEarthElement.inc +++ b/data/scripts/sanctuary/script_Object6AEarthElement.inc @@ -2,9 +2,9 @@ SCRIPT_START script_Object6AEarthElement BeginBlock DoPostScriptAction 0x0007 - Call sub_0807F180 + Call SetCollisionLayer2 SetEntityPositionRelative 0x00b0, 0x00f8 - _0807E930 0x0001 + SetAnimation 0x0001 EndBlock SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6AEarthElementFloating.inc b/data/scripts/sanctuary/script_Object6AEarthElementFloating.inc index 4ab4fd4d..e6a7c7b8 100644 --- a/data/scripts/sanctuary/script_Object6AEarthElementFloating.inc +++ b/data/scripts/sanctuary/script_Object6AEarthElementFloating.inc @@ -2,11 +2,11 @@ SCRIPT_START script_Object6AEarthElementFloating BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0000 + SetAnimation 0x0000 EndBlock SetEntitySpeed 0x0080 _0807EDD4 0x00b0, 0x00f8 - _0807E930 0x0001 + SetAnimation 0x0001 SetSyncFlag 0x08000000 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6AFireElement.inc b/data/scripts/sanctuary/script_Object6AFireElement.inc index 48385c7a..e82683c5 100644 --- a/data/scripts/sanctuary/script_Object6AFireElement.inc +++ b/data/scripts/sanctuary/script_Object6AFireElement.inc @@ -2,9 +2,9 @@ SCRIPT_START script_Object6AFireElement BeginBlock DoPostScriptAction 0x0007 - Call sub_0807F180 + Call SetCollisionLayer2 SetEntityPositionRelative 0x0120, 0x00f8 - _0807E930 0x0003 + SetAnimation 0x0003 EndBlock SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6AFireElementFloating.inc b/data/scripts/sanctuary/script_Object6AFireElementFloating.inc index 0e1febcc..65938a07 100644 --- a/data/scripts/sanctuary/script_Object6AFireElementFloating.inc +++ b/data/scripts/sanctuary/script_Object6AFireElementFloating.inc @@ -2,11 +2,11 @@ SCRIPT_START script_Object6AFireElementFloating BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0002 + SetAnimation 0x0002 EndBlock SetEntitySpeed 0x0080 _0807EDD4 0x0120, 0x00f8 - _0807E930 0x0003 + SetAnimation 0x0003 SetSyncFlag 0x10000000 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6ASword2.inc b/data/scripts/sanctuary/script_Object6ASword2.inc index fab7bbba..2acab4f5 100644 --- a/data/scripts/sanctuary/script_Object6ASword2.inc +++ b/data/scripts/sanctuary/script_Object6ASword2.inc @@ -2,11 +2,11 @@ SCRIPT_START script_Object6ASword2 BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0009 + SetAnimation 0x0009 EndBlock WaitForSyncFlagAndClear 0x00000080 - _0807E930 0x000c - Call sub_0807F2D4 + SetAnimation 0x000c + Call WaitForFrameHiBit SetSyncFlag 0x00000100 WaitForSyncFlagAndClear 0x00000080 DoPostScriptAction 0x0006 diff --git a/data/scripts/sanctuary/script_Object6ASword3.inc b/data/scripts/sanctuary/script_Object6ASword3.inc index 74a51519..38b36455 100644 --- a/data/scripts/sanctuary/script_Object6ASword3.inc +++ b/data/scripts/sanctuary/script_Object6ASword3.inc @@ -2,11 +2,11 @@ SCRIPT_START script_Object6ASword3 BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x000a + SetAnimation 0x000a EndBlock WaitForSyncFlagAndClear 0x00000080 - _0807E930 0x000d - Call sub_0807F2D4 + SetAnimation 0x000d + Call WaitForFrameHiBit SetSyncFlag 0x00000100 WaitForSyncFlagAndClear 0x00000080 DoPostScriptAction 0x0006 diff --git a/data/scripts/sanctuary/script_Object6ASwordChange1.inc b/data/scripts/sanctuary/script_Object6ASwordChange1.inc index d17fcb9e..6285b5c4 100644 --- a/data/scripts/sanctuary/script_Object6ASwordChange1.inc +++ b/data/scripts/sanctuary/script_Object6ASwordChange1.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Object6ASwordChange1 BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0000 + SetAnimation 0x0000 Call sub_0807F738 EndBlock WaitForSyncFlag 0x00000040 diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge10.inc b/data/scripts/sanctuary/script_Object6ASwordCharge10.inc index 11e22661..000d1c95 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge10.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge10.inc @@ -2,13 +2,13 @@ SCRIPT_START script_Object6ASwordCharge10 BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0015 + SetAnimation 0x0015 Call sub_0807F714 Call sub_0807F714 - CallWithArg sub_0807F994, 0x0000fffc + CallWithArg SetSpriteOffset, 0x0000fffc EndBlock WaitForSyncFlag 0x00000020 Wait 0x0078 - Call sub_0807F2D4 + Call WaitForFrameHiBit DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge2.inc b/data/scripts/sanctuary/script_Object6ASwordCharge2.inc index d4ad0786..4fbd87f4 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge2.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge2.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Object6ASwordCharge2 BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0001 + SetAnimation 0x0001 Call sub_0807F738 EndBlock WaitForSyncFlag 0x00000040 diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge3.inc b/data/scripts/sanctuary/script_Object6ASwordCharge3.inc index dc8c915c..79a859c2 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge3.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge3.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Object6ASwordCharge3 BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0002 + SetAnimation 0x0002 Call sub_0807F738 OffsetEntityPosition 0x0000, 0xfff0 EndBlock diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge4.inc b/data/scripts/sanctuary/script_Object6ASwordCharge4.inc index 55fea219..dd4a6123 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge4.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge4.inc @@ -2,7 +2,7 @@ SCRIPT_START script_Object6ASwordCharge4 BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0003 + SetAnimation 0x0003 Call sub_0807F738 OffsetEntityPosition 0x0000, 0xfff0 EndBlock diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge5.inc b/data/scripts/sanctuary/script_Object6ASwordCharge5.inc index deba7486..3b06636f 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge5.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge5.inc @@ -2,15 +2,15 @@ SCRIPT_START script_Object6ASwordCharge5 BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0004 + SetAnimation 0x0004 EndBlock WaitForSyncFlagAndClear 0x00000200 - _0807E930 0x0008 - Call sub_0807F2D4 - _0807E930 0x000c + SetAnimation 0x0008 + Call WaitForFrameHiBit + SetAnimation 0x000c SetSyncFlag 0x00002000 WaitForSyncFlag 0x00000020 - _0807E930 0x0010 - Call sub_0807F2D4 + SetAnimation 0x0010 + Call WaitForFrameHiBit DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge6.inc b/data/scripts/sanctuary/script_Object6ASwordCharge6.inc index 6712fe80..0fccc71d 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge6.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge6.inc @@ -2,15 +2,15 @@ SCRIPT_START script_Object6ASwordCharge6 BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0005 + SetAnimation 0x0005 EndBlock WaitForSyncFlagAndClear 0x00000400 - _0807E930 0x0009 - Call sub_0807F2D4 - _0807E930 0x000d + SetAnimation 0x0009 + Call WaitForFrameHiBit + SetAnimation 0x000d SetSyncFlag 0x00004000 WaitForSyncFlag 0x00000020 - _0807E930 0x0011 - Call sub_0807F2D4 + SetAnimation 0x0011 + Call WaitForFrameHiBit DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge8.inc b/data/scripts/sanctuary/script_Object6ASwordCharge8.inc index db235e91..9120d4b9 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge8.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge8.inc @@ -2,17 +2,17 @@ SCRIPT_START script_Object6ASwordCharge8 BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0007 + SetAnimation 0x0007 OffsetEntityPosition 0x0000, 0xfff0 EndBlock WaitForSyncFlagAndClear 0x00001000 - _0807E930 0x000b - Call sub_0807F2D4 - _0807E930 0x000f + SetAnimation 0x000b + Call WaitForFrameHiBit + SetAnimation 0x000f SetSyncFlag 0x00010000 WaitForSyncFlag 0x00000020 - _0807E930 0x0013 - Call sub_0807F2D4 + SetAnimation 0x0013 + Call WaitForFrameHiBit DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6ASwordCharge9.inc b/data/scripts/sanctuary/script_Object6ASwordCharge9.inc index 2920f0bc..637466b7 100644 --- a/data/scripts/sanctuary/script_Object6ASwordCharge9.inc +++ b/data/scripts/sanctuary/script_Object6ASwordCharge9.inc @@ -2,13 +2,13 @@ SCRIPT_START script_Object6ASwordCharge9 BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0014 + SetAnimation 0x0014 Call sub_0807F714 - CallWithArg sub_0807F994, 0x0000fffc + CallWithArg SetSpriteOffset, 0x0000fffc EndBlock WaitForSyncFlag 0x00000020 Wait 0x0078 - Call sub_0807F2D4 + Call WaitForFrameHiBit DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6ASwordInPedestal.inc b/data/scripts/sanctuary/script_Object6ASwordInPedestal.inc index 7681251b..2584cb86 100644 --- a/data/scripts/sanctuary/script_Object6ASwordInPedestal.inc +++ b/data/scripts/sanctuary/script_Object6ASwordInPedestal.inc @@ -2,11 +2,11 @@ SCRIPT_START script_Object6ASwordInPedestal BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0008 + SetAnimation 0x0008 EndBlock WaitForSyncFlagAndClear 0x00000080 - _0807E930 0x000b - Call sub_0807F2D4 + SetAnimation 0x000b + Call WaitForFrameHiBit SetSyncFlag 0x00000100 WaitForSyncFlagAndClear 0x00000080 DoPostScriptAction 0x0006 diff --git a/data/scripts/sanctuary/script_Object6ATextBoard.inc b/data/scripts/sanctuary/script_Object6ATextBoard.inc index 174f0b6d..63469b76 100644 --- a/data/scripts/sanctuary/script_Object6ATextBoard.inc +++ b/data/scripts/sanctuary/script_Object6ATextBoard.inc @@ -14,7 +14,7 @@ SCRIPT_START script_Object6ATextBoard EndBlock DoPostScriptAction 0x0008 WaitForSyncFlagAndClear 0x00000004 - _0807E908 0x0002 + SetAction 0x0002 PlaySound SFX_134 Jump script_08013C32 script_08013C2A: @@ -38,22 +38,22 @@ script_08013C58: CheckEntityInteractType JumpIfNot script_08013C58 EndBlock - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CheckLocalFlag 0x007d JumpIf script_08013C82 - _0807EB28 0x1501 + EzloMessage 0x1501 Jump script_08013C86 script_08013C82: - _0807EB28 0x1506 + EzloMessage 0x1506 script_08013C86: WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_08013C58 script_08013C92: EndBlock - _0807E908 0x0004 + SetAction 0x0004 script_08013C98: DoPostScriptAction 0x0008 DoPostScriptAction 0x0006 diff --git a/data/scripts/sanctuary/script_Object6AWaterElement.inc b/data/scripts/sanctuary/script_Object6AWaterElement.inc index 0d40a625..e0617edf 100644 --- a/data/scripts/sanctuary/script_Object6AWaterElement.inc +++ b/data/scripts/sanctuary/script_Object6AWaterElement.inc @@ -2,9 +2,9 @@ SCRIPT_START script_Object6AWaterElement BeginBlock DoPostScriptAction 0x0007 - Call sub_0807F180 + Call SetCollisionLayer2 SetEntityPositionRelative 0x0120, 0x0168 - _0807E930 0x0005 + SetAnimation 0x0005 EndBlock SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6AWaterElementFloating.inc b/data/scripts/sanctuary/script_Object6AWaterElementFloating.inc index 5571ce4f..9625d7c8 100644 --- a/data/scripts/sanctuary/script_Object6AWaterElementFloating.inc +++ b/data/scripts/sanctuary/script_Object6AWaterElementFloating.inc @@ -2,11 +2,11 @@ SCRIPT_START script_Object6AWaterElementFloating BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0004 + SetAnimation 0x0004 EndBlock SetEntitySpeed 0x0080 _0807EDD4 0x0120, 0x0168 - _0807E930 0x0005 + SetAnimation 0x0005 SetSyncFlag 0x20000000 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6AWindElement.inc b/data/scripts/sanctuary/script_Object6AWindElement.inc index b0a2e2c4..ab7eb8f0 100644 --- a/data/scripts/sanctuary/script_Object6AWindElement.inc +++ b/data/scripts/sanctuary/script_Object6AWindElement.inc @@ -2,9 +2,9 @@ SCRIPT_START script_Object6AWindElement BeginBlock DoPostScriptAction 0x0007 - Call sub_0807F180 + Call SetCollisionLayer2 SetEntityPositionRelative 0x00b0, 0x0168 - _0807E930 0x0007 + SetAnimation 0x0007 EndBlock SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Object6AWindElementFloating.inc b/data/scripts/sanctuary/script_Object6AWindElementFloating.inc index c88547f6..3ee4e871 100644 --- a/data/scripts/sanctuary/script_Object6AWindElementFloating.inc +++ b/data/scripts/sanctuary/script_Object6AWindElementFloating.inc @@ -2,11 +2,11 @@ SCRIPT_START script_Object6AWindElementFloating BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0006 + SetAnimation 0x0006 EndBlock SetEntitySpeed 0x0080 _0807EDD4 0x00b0, 0x0168 - _0807E930 0x0007 + SetAnimation 0x0007 SetSyncFlag 0x40000000 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_Objet6ASwordCharge7.inc b/data/scripts/sanctuary/script_Objet6ASwordCharge7.inc index e56b82e0..30ab72f0 100644 --- a/data/scripts/sanctuary/script_Objet6ASwordCharge7.inc +++ b/data/scripts/sanctuary/script_Objet6ASwordCharge7.inc @@ -2,17 +2,17 @@ SCRIPT_START script_Objet6ASwordCharge7 BeginBlock DoPostScriptAction 0x0007 - _0807E930 0x0006 + SetAnimation 0x0006 OffsetEntityPosition 0x0000, 0xfff0 EndBlock WaitForSyncFlagAndClear 0x00000800 - _0807E930 0x000a - Call sub_0807F2D4 - _0807E930 0x000e + SetAnimation 0x000a + Call WaitForFrameHiBit + SetAnimation 0x000e SetSyncFlag 0x00008000 WaitForSyncFlag 0x00000020 - _0807E930 0x0012 - Call sub_0807F2D4 + SetAnimation 0x0012 + Call WaitForFrameHiBit DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_PlayerAtPedestal.inc b/data/scripts/sanctuary/script_PlayerAtPedestal.inc index f67ff329..0f82e0a9 100644 --- a/data/scripts/sanctuary/script_PlayerAtPedestal.inc +++ b/data/scripts/sanctuary/script_PlayerAtPedestal.inc @@ -3,7 +3,7 @@ SCRIPT_START script_PlayerAtPedestal BeginBlock SetEntitySpeed 0x0100 EndBlock - Call sub_0807F584 + Call ReadPlayerAnimationState JumpTable script_080136F0, script_080136FA, script_08013704, script_080136FA script_080136F0: CallWithArg sub_0807F464, 0x000000d0 @@ -11,7 +11,7 @@ script_080136FA: CallWithArg sub_0807F4F8, 0x00000124 script_08013704: _0807EDD4 0x00e8, 0x0124 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc b/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc index 69721bca..b6c21762 100644 --- a/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc +++ b/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerAtSanctuaryEntrance SetEntitySpeed 0x0100 EndBlock _0807EDD4 0x0088, 0x0068 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 Wait 0x001e SetSyncFlag 0x00000001 diff --git a/data/scripts/sanctuary/script_PlayerGetElement.inc b/data/scripts/sanctuary/script_PlayerGetElement.inc index c1285a04..71bf1bb6 100644 --- a/data/scripts/sanctuary/script_PlayerGetElement.inc +++ b/data/scripts/sanctuary/script_PlayerGetElement.inc @@ -2,7 +2,7 @@ SCRIPT_START script_PlayerGetElement BeginBlock SetEntitySpeed 0x0140 - _0807E864 + SetPlayerIdle Call sub_0807DF28 EndBlock Wait 0x0078 @@ -18,5 +18,5 @@ script_0800A0D2: WaitForSyncFlagAndClear 0x00000002 Wait 0x003c SetEntitySpeed 0x0080 - _0807EC64 0x0030 + WalkNorth 0x0030 SCRIPT_END diff --git a/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc b/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc index e2e0c734..fd4063b1 100644 --- a/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc +++ b/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc @@ -2,11 +2,11 @@ SCRIPT_START script_PlayerPickUpFinalSword CallWithArg sub_08095E7C, script_Object6ASwordCharge11 PlaySound SFX_1D3 - CallWithArg sub_0807F238, 0x000008e3 + CallWithArg SetPlayerAnimation2, 0x000008e3 Call sub_08096028 Wait 0x0078 SetSyncFlag 0x00020000 - Call sub_0807F304 + Call WaitForPlayerFrameHiBit Wait 0x0078 WaitForSyncFlagAndClear 0x00040000 Call sub_080791BC diff --git a/data/scripts/sanctuary/script_PlayerPickUpSword.inc b/data/scripts/sanctuary/script_PlayerPickUpSword.inc index 49aea300..0523c018 100644 --- a/data/scripts/sanctuary/script_PlayerPickUpSword.inc +++ b/data/scripts/sanctuary/script_PlayerPickUpSword.inc @@ -1,11 +1,11 @@ @ Player at Sanctuary pick up sword SCRIPT_START script_PlayerPickUpSword PlaySound SFX_1D3 - CallWithArg sub_0807F238, 0x000008bf + CallWithArg SetPlayerAnimation2, 0x000008bf Call sub_08096028 Wait 0x003c SetSyncFlag 0x00020000 - Call sub_0807F304 + Call WaitForPlayerFrameHiBit Wait 0x0078 WaitForSyncFlagAndClear 0x00040000 Call sub_080791BC diff --git a/data/scripts/sanctuary/script_PlayerSanctuary.inc b/data/scripts/sanctuary/script_PlayerSanctuary.inc index 2548d3a1..05672507 100644 --- a/data/scripts/sanctuary/script_PlayerSanctuary.inc +++ b/data/scripts/sanctuary/script_PlayerSanctuary.inc @@ -3,8 +3,8 @@ SCRIPT_START script_PlayerSanctuary BeginBlock SetEntitySpeed 0x0100 EndBlock - _0807EC64 0x0010 - _0807EB44 0x0000 + WalkNorth 0x0010 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc b/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc index 7ba6faad..9ea5a652 100644 --- a/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc +++ b/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc @@ -1,7 +1,7 @@ @ Player in Sanctuary during intro cutscene SCRIPT_START script_PlayerSanctuaryIntro BeginBlock - _0807EB44 0x0000 + SetAnimationState 0x0000 SetEntityPositionRelative 0x0098, 0x0070 EndBlock SetSyncFlag 0x00000002 diff --git a/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc b/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc index 29f92dd2..77e9fc90 100644 --- a/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc +++ b/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerTextBoardAppears SetEntitySpeed 0x0100 EndBlock _0807EDD4 0x00e8, 0x00a8 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 Call sub_080791BC diff --git a/data/scripts/southHyruleField/script_ForestMinish2.inc b/data/scripts/southHyruleField/script_ForestMinish2.inc index 9815dd19..aa4f65ab 100644 --- a/data/scripts/southHyruleField/script_ForestMinish2.inc +++ b/data/scripts/southHyruleField/script_ForestMinish2.inc @@ -13,7 +13,7 @@ script_0800C592: Jump script_0800C592 script_0800C5A6: EndBlock - _0807E864 + SetPlayerIdle CheckInventory1 0x0067 JumpIfNot script_0800C5BC Call sub_08060208 @@ -22,5 +22,5 @@ script_0800C5BC: MessageNoOverlap 0x4710 script_0800C5C0: WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800C592 diff --git a/data/scripts/southHyruleField/script_Object69LinksHouseBed.inc b/data/scripts/southHyruleField/script_Object69LinksHouseBed.inc index 7fc77564..2474bfb8 100644 --- a/data/scripts/southHyruleField/script_Object69LinksHouseBed.inc +++ b/data/scripts/southHyruleField/script_Object69LinksHouseBed.inc @@ -5,29 +5,29 @@ SCRIPT_START script_Object69LinksHouseBed script_08009DF0: CheckPlayerInRegion 0x00a0, 0x0038, 0x1830 JumpIfNot script_08009DF0 - _0807E864 - Call sub_0807F9A4 + SetPlayerIdle + Call WaitForPlayerNormal Wait 0x0008 - _0807EB28 0x3207 + EzloMessage 0x3207 CheckTextboxResult JumpIfNot script_08009E4E Call sub_0807DF28 - _0807E778 0x0002 + SetFadeTime 0x0002 DoFade5 WaitForFadeFinish Call sub_0804E864 Wait 0x001e SetSyncFlag 0x00000002 WaitForSyncFlagAndClear 0x00000001 - _0807EB28 0x3209 + EzloMessage 0x3209 Wait 0x000f WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Call sub_0807DF50 DoPostScriptAction 0x0006 SCRIPT_END script_08009E4E: - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/southHyruleField/script_PlayerWakeAfterRest.inc b/data/scripts/southHyruleField/script_PlayerWakeAfterRest.inc index 1b74f94c..e7d0ce43 100644 --- a/data/scripts/southHyruleField/script_PlayerWakeAfterRest.inc +++ b/data/scripts/southHyruleField/script_PlayerWakeAfterRest.inc @@ -4,7 +4,7 @@ SCRIPT_START script_PlayerWakeAfterRest Call sub_0807DF28 EndBlock WaitForSyncFlagAndClear 0x00000002 - _0807E778 0x0002 + SetFadeTime 0x0002 DoFade4 WaitForFadeFinish DoPostScriptAction 0x0014 diff --git a/data/scripts/southHyruleField/script_SmithAtLinksHouse.inc b/data/scripts/southHyruleField/script_SmithAtLinksHouse.inc index 88aa8aa8..91e708c4 100644 --- a/data/scripts/southHyruleField/script_SmithAtLinksHouse.inc +++ b/data/scripts/southHyruleField/script_SmithAtLinksHouse.inc @@ -1,18 +1,18 @@ @ Links house Smith SCRIPT_START script_SmithAtLinksHouse BeginBlock - Call sub_0807F348 + Call SetPriorityMessage Call sub_08066288 Call sub_08066274 DoPostScriptAction 0x000a - _0807E930 0x000c - _0807E908 0x0003 + SetAnimation 0x000c + SetAction 0x0003 EndBlock script_08009DD2: - _0807E944 - _0807E908 0x0002 + TriggerInteract + SetAction 0x0002 Call sub_0806622C WaitUntilTextboxCloses - _0807E908 0x0003 - _0807E930 0x000c + SetAction 0x0003 + SetAnimation 0x000c Jump script_08009DD2 diff --git a/data/scripts/unused/script_0800B828.inc b/data/scripts/unused/script_0800B828.inc index 002888a2..944d257b 100644 --- a/data/scripts/unused/script_0800B828.inc +++ b/data/scripts/unused/script_0800B828.inc @@ -2,21 +2,21 @@ SCRIPT_START script_0800B828 BeginBlock _0807E9D4 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x000a EndBlock script_0800B836: - _0807E944 - _0807E864 + TriggerInteract + SetPlayerIdle MessageFromTarget 0x0a01 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800B836 .2byte 0x0000 BeginBlock _0807E9D4 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a EndBlock @@ -26,8 +26,8 @@ script_0800B85E: Jump script_0800B85E BeginBlock _0807E9D4 - _0807EB44 0x0004 - _0807E930 0x0000 + SetAnimationState 0x0004 + SetAnimation 0x0000 DoPostScriptAction 0x000a EndBlock script_0800B87E: @@ -36,17 +36,17 @@ script_0800B87E: Jump script_0800B87E BeginBlock _0807E9D4 - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a EndBlock script_0800B89E: CheckEntityInteractType JumpIfNot script_0800B89E - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer MessageFromTarget 0x0a01 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl Jump script_0800B89E diff --git a/data/scripts/unused/script_0800D84C.inc b/data/scripts/unused/script_0800D84C.inc index baf79ed1..0ac50278 100644 --- a/data/scripts/unused/script_0800D84C.inc +++ b/data/scripts/unused/script_0800D84C.inc @@ -5,11 +5,11 @@ SCRIPT_START script_0800D84C script_0800D850: CheckRoomFlag 0x0000 JumpIfNot script_0800D850 - _0807E864 + SetPlayerIdle Call sub_0807DF28 Wait 0x003c Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/unused/script_0800FB2C.inc b/data/scripts/unused/script_0800FB2C.inc index 2e11fe58..ec0ad048 100644 --- a/data/scripts/unused/script_0800FB2C.inc +++ b/data/scripts/unused/script_0800FB2C.inc @@ -1,6 +1,6 @@ @ TODO UNUSED? SCRIPT_START script_0800FB2C - _0807EB44 0x0002 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/data/scripts/unused/script_08012B24.inc b/data/scripts/unused/script_08012B24.inc index fe88c6a6..5483ab0b 100644 --- a/data/scripts/unused/script_08012B24.inc +++ b/data/scripts/unused/script_08012B24.inc @@ -2,10 +2,10 @@ SCRIPT_START script_08012B24 BeginBlock SetEntitySpeed 0x0100 - _0807EB44 0x0004 + SetAnimationState 0x0004 EndBlock DoPostScriptAction 0x0001 - _0807ECC4 0x0008 + WalkSouth 0x0008 SetSyncFlag 0x00000002 CallWithArg sub_0807FB64, 0xffffffe2 Call sub_080791BC diff --git a/data/scripts/unused/script_08012B50.inc b/data/scripts/unused/script_08012B50.inc index b97d546b..a7a3f781 100644 --- a/data/scripts/unused/script_08012B50.inc +++ b/data/scripts/unused/script_08012B50.inc @@ -2,10 +2,10 @@ SCRIPT_START script_08012B50 BeginBlock SetEntitySpeed 0x0100 - _0807EB44 0x0000 + SetAnimationState 0x0000 EndBlock DoPostScriptAction 0x0001 - _0807EC64 0x0008 + WalkNorth 0x0008 SetSyncFlag 0x00000002 CallWithArg sub_0807FB64, 0xffffffe2 Call sub_080791BC diff --git a/data/scripts/unused/script_08012B7C.inc b/data/scripts/unused/script_08012B7C.inc index d562bd07..50328e8a 100644 --- a/data/scripts/unused/script_08012B7C.inc +++ b/data/scripts/unused/script_08012B7C.inc @@ -2,10 +2,10 @@ SCRIPT_START script_08012B7C BeginBlock SetEntitySpeed 0x0100 - _0807EB44 0x0002 + SetAnimationState 0x0002 EndBlock DoPostScriptAction 0x0001 - _0807EC94 0x0008 + WalkEast 0x0008 SetSyncFlag 0x00000002 CallWithArg sub_0807FB64, 0xffffffe2 Call sub_080791BC diff --git a/data/scripts/unused/script_08012C68.inc b/data/scripts/unused/script_08012C68.inc index c27b36b3..ee6b94d7 100644 --- a/data/scripts/unused/script_08012C68.inc +++ b/data/scripts/unused/script_08012C68.inc @@ -9,11 +9,11 @@ SCRIPT_START script_08012C68 script_08012C7E: CheckEntityInteractType JumpIfNot script_08012C7E - _0807E864 + SetPlayerIdle _0807E8E4_0 MessageFromTarget 0x111d WaitUntilTextboxCloses SetGlobalFlag 0x0022 - _0807E878 + EnablePlayerControl Jump script_08012C7E diff --git a/data/scripts/unused/script_080155F4.inc b/data/scripts/unused/script_080155F4.inc index 7c934a2a..b41c1b81 100644 --- a/data/scripts/unused/script_080155F4.inc +++ b/data/scripts/unused/script_080155F4.inc @@ -1,7 +1,7 @@ @ TODO UNUSED? SCRIPT_START script_080155F4 WaitForSyncFlagAndClear 0x00000020 - _0807E930 0x0000 + SetAnimation 0x0000 Wait 0x0014 SetSyncFlag 0x00000040 script_08015608: diff --git a/data/scripts/unused/script_08015A7C.inc b/data/scripts/unused/script_08015A7C.inc index 3034137b..870e0b9d 100644 --- a/data/scripts/unused/script_08015A7C.inc +++ b/data/scripts/unused/script_08015A7C.inc @@ -2,8 +2,8 @@ SCRIPT_START script_08015A7C SetEntitySpeed 0x0100 DoPostScriptAction 0x0001 - _0807EC64 0x0010 - _0807EB44 0x0000 + WalkNorth 0x0010 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 Call sub_080791BC diff --git a/data/scripts/unused/script_08015AA0.inc b/data/scripts/unused/script_08015AA0.inc index e0187879..746324a2 100644 --- a/data/scripts/unused/script_08015AA0.inc +++ b/data/scripts/unused/script_08015AA0.inc @@ -2,8 +2,8 @@ SCRIPT_START script_08015AA0 SetEntitySpeed 0x0100 DoPostScriptAction 0x0001 - _0807EC94 0x0010 - _0807EB44 0x0002 + WalkEast 0x0010 + SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 Call sub_080791BC diff --git a/data/scripts/unused/script_08015F80.inc b/data/scripts/unused/script_08015F80.inc index af659a4f..f866aa42 100644 --- a/data/scripts/unused/script_08015F80.inc +++ b/data/scripts/unused/script_08015F80.inc @@ -1,7 +1,7 @@ @ TODO UNUSED? SCRIPT_START script_08015F80 BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 EndBlock WaitForSyncFlag 0x00000200 diff --git a/data/scripts/unused/script_08016384.inc b/data/scripts/unused/script_08016384.inc index 8d5b915f..c76c83cd 100644 --- a/data/scripts/unused/script_08016384.inc +++ b/data/scripts/unused/script_08016384.inc @@ -36,17 +36,17 @@ SCRIPT_START script_08016384 CheckPlayerInRegion 0x0000, 0x0000, 0x0000 CheckPlayerInRegion2 0x0000 CheckEntityInteractType - _0807E30C + FacePlayerAndCheckDist HasRupees 0x00c8 CheckTextboxResult CheckKinstoneFused 0x0001 BuyItem 0x006c, 0x0000 CheckBottleContaining 0x0020 - _0807E4CC 0x00000000 - _0807E4EC 0x00000000 - _0807E514 0x00000000 + VariableBitSet 0x00000000 + VariableOnlyBitSet 0x00000000 + VariableEqual 0x00000000 CheckPlayerFlags 0x00000080 - _0807E564 + CheckPlayerMinish EntityHasHeight ComparePlayerAction 0x0001 ComparePlayerAnimationState 0x0004 @@ -63,8 +63,8 @@ SCRIPT_START script_08016384 WaitForSyncFlag 0x00000001 WaitForSyncFlagAndClear 0x00000002 WaitPlayerGetItem - WaitForPlayerAction0x17 + WaitForPlayerEnterRoom WaitFor_1 WaitForFadeFinish - _0807E778 0x0004 + SetFadeTime 0x0004 SetFadeMask 0x0000ffff diff --git a/data/scripts/unused/script_08016482.inc b/data/scripts/unused/script_08016482.inc index d7a983b0..4d1bcbe0 100644 --- a/data/scripts/unused/script_08016482.inc +++ b/data/scripts/unused/script_08016482.inc @@ -1,6 +1,6 @@ @ TODO UNUSED? SCRIPT_START script_08016482 - _0807E79C + FadeInvert Nop2 0x0080 DoFade4 DoFade5 @@ -9,21 +9,21 @@ SCRIPT_START script_08016482 _0807E800 0x00000000 _0807E80C 0x00000000 _0807E858_0 - _0807E864 - _0807E878 - _0807E888 + SetPlayerIdle + EnablePlayerControl + DisablePlayerControl SetPlayerAction 0x00005408 StartPlayerScript script_08016384 - _0807E8D4 0x03a0 + SetPlayerAnimation 0x03a0 _0807E8E4_0 _0807E8E4_1 _0807E8E4_2 _0807E8E4_3 - _0807E908 0x0004 + SetAction 0x0004 SetIntVariable 0x00000000 - _0807E924 - _0807E930 0x0000 - _0807E944 + SetVariableToFrame + SetAnimation 0x0000 + TriggerInteract _0807E974 0x0600 _0807E9D4 _0807E9DC @@ -35,24 +35,24 @@ SCRIPT_START script_08016482 MessageFromTargetPos_1 0x0601 MessageFromTargetTable 0x0601, 0x0602, 0x0603 MessageNoOverlapVar - _0807EB28 0x0602 + EzloMessage 0x0602 _0807EB38 - _0807EB44 0x0000 + SetAnimationState 0x0000 _0807EB4C 0x0000, 0x0000 - _0807EB74 - _0807EB8C + FacePlayer + FaceAwayFromPlayer SetEntityDirection 0x0000 SetEntityDirectionWithAnimationState 0x0000 SetEntitySpeed 0x0100 - SetEntity0x20 0x00018000 + SetEntityVelocity 0x00018000 SetEntityPositionRelative 0x0000, 0x0000 MoveEntityToPlayer Nop3 - _0807EC1C 0x0010 - _0807EC64 0x0020 - _0807EC94 0x0030 - _0807ECC4 0x0040 - _0807ECF4 0x0050 + WalkForward 0x0010 + WalkNorth 0x0020 + WalkEast 0x0030 + WalkSouth 0x0040 + WalkWest 0x0050 _0807ED24 0x0000, 0x0000, 0x0000 _0807EDD4 0x0000, 0x0000 _0807EE04 0x0000, 0x0000 @@ -68,7 +68,7 @@ SCRIPT_START script_08016482 ModRupees 0xff38 ModHealth 0x0010 IncreaseMaxHealth - _0807F050 0x0001 + GiveKinstone 0x0001 GivePlayerItem 0x0001 GetInventoryValue 0x0001 _0807F078 0x0001, 0x0002 diff --git a/data/scripts/unused/script_080165A4.inc b/data/scripts/unused/script_080165A4.inc index f3be3358..2f111b6f 100644 --- a/data/scripts/unused/script_080165A4.inc +++ b/data/scripts/unused/script_080165A4.inc @@ -2,7 +2,7 @@ SCRIPT_START script_080165A4 BeginBlock DoPostScriptAction 0x000a - _0807EB44 0x0004 + SetAnimationState 0x0004 _0807E9D4 EndBlock script_080165B2: diff --git a/data/scripts/veilFalls/script_BigGoron3.inc b/data/scripts/veilFalls/script_BigGoron3.inc index b6531c84..1718deb5 100644 --- a/data/scripts/veilFalls/script_BigGoron3.inc +++ b/data/scripts/veilFalls/script_BigGoron3.inc @@ -6,7 +6,7 @@ SCRIPT_START script_BigGoron3 script_0800934E: CheckEntityInteractType JumpIfNot script_0800934E - _0807E864 + SetPlayerIdle Call sub_0807DF28 Call sub_0806D638 _0807F0B4 0x0001 @@ -22,7 +22,7 @@ script_08009376: CameraTargetPlayer Wait 0x002d _0807F0B4 0x0004 - _0807E878 + EnablePlayerControl Call sub_0807DF50 Jump script_0800934E SCRIPT_END diff --git a/data/scripts/veilFalls/script_BigGoronMirrorShield.inc b/data/scripts/veilFalls/script_BigGoronMirrorShield.inc index 43fbb794..c0d457c7 100644 --- a/data/scripts/veilFalls/script_BigGoronMirrorShield.inc +++ b/data/scripts/veilFalls/script_BigGoronMirrorShield.inc @@ -22,7 +22,7 @@ SCRIPT_START script_BigGoronMirrorShield Call sub_0806D620 Wait 0x003c WaitPlayerGetItem - _0807EB8C + FaceAwayFromPlayer MessageNoOverlap 0x1d0c WaitUntilTextboxCloses Wait 0x000a diff --git a/data/scripts/veilFalls/script_BigGoronTalk.inc b/data/scripts/veilFalls/script_BigGoronTalk.inc index ceb73548..df44f817 100644 --- a/data/scripts/veilFalls/script_BigGoronTalk.inc +++ b/data/scripts/veilFalls/script_BigGoronTalk.inc @@ -78,7 +78,7 @@ script_080093EE: .endif .endif Call sub_0806D5D4 - _0807EB8C + FaceAwayFromPlayer MessageNoOverlap 0x1d09 WaitUntilTextboxCloses Wait 0x000a diff --git a/data/scripts/veilFalls/script_NPC4ESourceOfTheFlow.inc b/data/scripts/veilFalls/script_NPC4ESourceOfTheFlow.inc index 61995039..08f77eee 100644 --- a/data/scripts/veilFalls/script_NPC4ESourceOfTheFlow.inc +++ b/data/scripts/veilFalls/script_NPC4ESourceOfTheFlow.inc @@ -11,11 +11,11 @@ SCRIPT_START script_NPC4ESourceOfTheFlow script_08015FE4: _0807EA4C _0807E9F0 - _0807E864 + SetPlayerIdle CheckKinstoneFused 0x0009 JumpIf script_08015FFE Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_08015FE4 script_08015FFE: _0807F0C8 0xffff, 0x0000 diff --git a/data/scripts/veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc b/data/scripts/veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc index 9bd85e9f..93cd157c 100644 --- a/data/scripts/veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc +++ b/data/scripts/veilFalls/script_NPC4ESouurceOfTheFlowOpening.inc @@ -4,10 +4,10 @@ SCRIPT_START script_NPC4ESouurceOfTheFlowOpening WaitForSyncFlagAndClear 0x0000000c _0807F0C8 0x0000, 0x0000 PlaySound SFX_SECRET - _0807EB28 0x0b1f + EzloMessage 0x0b1f WaitUntilTextboxCloses Call sub_0807DF50 - _0807E878 + EnablePlayerControl script_08016028: DoPostScriptAction 0x0006 SCRIPT_END diff --git a/data/scripts/veilFalls/script_Object3ELeftStoneOpening.inc b/data/scripts/veilFalls/script_Object3ELeftStoneOpening.inc index d14749c2..a8e0f613 100644 --- a/data/scripts/veilFalls/script_Object3ELeftStoneOpening.inc +++ b/data/scripts/veilFalls/script_Object3ELeftStoneOpening.inc @@ -8,7 +8,7 @@ SCRIPT_START script_Object3ELeftStoneOpening DoPostScriptAction 0x0010 Wait 0x003c SetEntitySpeed 0x0020 - _0807ECF4 0x0080 + WalkWest 0x0080 Wait 0x001e DoPostScriptAction 0x0010 SetSyncFlag 0x00000008 diff --git a/data/scripts/veilFalls/script_Object3ERightStoneOpening.inc b/data/scripts/veilFalls/script_Object3ERightStoneOpening.inc index b8dfa814..53d2fb10 100644 --- a/data/scripts/veilFalls/script_Object3ERightStoneOpening.inc +++ b/data/scripts/veilFalls/script_Object3ERightStoneOpening.inc @@ -8,7 +8,7 @@ SCRIPT_START script_Object3ERightStoneOpening DoPostScriptAction 0x0010 Wait 0x003c SetEntitySpeed 0x0020 - _0807EC94 0x0080 + WalkEast 0x0080 Wait 0x001e DoPostScriptAction 0x0010 SetSyncFlag 0x00000004 diff --git a/data/scripts/veilFalls/script_Object6AMirrorShield.inc b/data/scripts/veilFalls/script_Object6AMirrorShield.inc index 63bca6f6..ad578502 100644 --- a/data/scripts/veilFalls/script_Object6AMirrorShield.inc +++ b/data/scripts/veilFalls/script_Object6AMirrorShield.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6AMirrorShield SetEntitySpeed 0x0180 EndBlock Wait 0x003c - SetEntity0x20 0x00018000 + SetEntityVelocity 0x00018000 Call sub_0806D858 script_080094EA: _0807EE30 diff --git a/data/scripts/veilFalls/script_Object6AVeilFallsTop.inc b/data/scripts/veilFalls/script_Object6AVeilFallsTop.inc index a112bcb8..a17305b5 100644 --- a/data/scripts/veilFalls/script_Object6AVeilFallsTop.inc +++ b/data/scripts/veilFalls/script_Object6AVeilFallsTop.inc @@ -5,7 +5,7 @@ SCRIPT_START script_Object6AVeilFallsTop SetEntitySpeed 0x0080 EndBlock Wait 0x003c - SetEntity0x20 0x00018000 + SetEntityVelocity 0x00018000 script_080094BC: _0807EE30 JumpIfNot script_080094BC diff --git a/data/scripts/westernWood/script_ForestMinish1.inc b/data/scripts/westernWood/script_ForestMinish1.inc index f31443f3..3e681372 100644 --- a/data/scripts/westernWood/script_ForestMinish1.inc +++ b/data/scripts/westernWood/script_ForestMinish1.inc @@ -13,8 +13,8 @@ script_0800C55E: Jump script_0800C55E script_0800C572: EndBlock - _0807E864 + SetPlayerIdle Call sub_08060208 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_0800C55E diff --git a/data/scripts/westernWood/script_MoblinLady.inc b/data/scripts/westernWood/script_MoblinLady.inc index 75d7093e..7c1fb498 100644 --- a/data/scripts/westernWood/script_MoblinLady.inc +++ b/data/scripts/westernWood/script_MoblinLady.inc @@ -1,15 +1,15 @@ @ Western Wood MoblinLady in Percys house SCRIPT_START script_MoblinLady BeginBlock - _0807EB74 + FacePlayer _0807E9D4 DoPostScriptAction 0x000a EndBlock script_08012338: CheckEntityInteractType JumpIfNot script_08012338 - _0807EB74 - _0807E864 + FacePlayer + SetPlayerIdle MessageFromTarget 0x2304 WaitUntilTextboxCloses CheckLocalFlag 0x0042 @@ -18,5 +18,5 @@ script_08012338: GivePlayerItem 0x0057 WaitPlayerGetItem script_0801235A: - _0807E878 + EnablePlayerControl Jump script_08012338 diff --git a/data/scripts/westernWood/script_MoblinLadyDisguised.inc b/data/scripts/westernWood/script_MoblinLadyDisguised.inc index 3000aea1..576f873d 100644 --- a/data/scripts/westernWood/script_MoblinLadyDisguised.inc +++ b/data/scripts/westernWood/script_MoblinLadyDisguised.inc @@ -1,7 +1,7 @@ @ Western Wood Moblin disguised as Townsperson in Percys house SCRIPT_START script_MoblinLadyDisguised BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 Call sub_08061FD8 _0807E9D4 DoPostScriptAction 0x000a @@ -17,12 +17,12 @@ script_08012298: CheckEntityInteractType JumpIfNot script_08012284 EndBlock - _0807EB74 - _0807E864 + FacePlayer + SetPlayerIdle Call sub_08061FD8 MessageFromTarget 0x2302 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl SetGlobalFlag 0x001e Jump script_08012284 script_080122BA: @@ -36,17 +36,17 @@ script_080122CE: CheckEntityInteractType JumpIfNot script_080122BA EndBlock - _0807EB74 - _0807E864 + FacePlayer + SetPlayerIdle Call sub_08061FD8 MessageFromTarget 0x2303 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl Jump script_080122BA script_080122EC: EndBlock - _0807EB74 - _0807E864 + FacePlayer + SetPlayerIdle Call sub_08061FD8 DoPostScriptAction 0x000b Call sub_08061FB0 @@ -57,7 +57,7 @@ script_080122EC: PlaySound SFX_SECRET SetLocalFlag 0x0043 Wait 0x001e - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .align 2, 0 diff --git a/data/scripts/westernWood/script_PercyInside.inc b/data/scripts/westernWood/script_PercyInside.inc index d0794615..e1c5666a 100644 --- a/data/scripts/westernWood/script_PercyInside.inc +++ b/data/scripts/westernWood/script_PercyInside.inc @@ -1,7 +1,7 @@ @ Tilby Highlands Percy in Tree or in his house SCRIPT_START script_PercyInside BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 DoPostScriptAction 0x0000 DoPostScriptAction 0x000a Call sub_0806B60C @@ -9,12 +9,12 @@ SCRIPT_START script_PercyInside script_08012E9E: CheckEntityInteractType JumpIfNot script_08012E9E - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer DoPostScriptAction 0x0001 Call sub_0806B4F0 WaitUntilTextboxCloses - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0000 Jump script_08012E9E .2byte 0x0000 diff --git a/data/scripts/westernWood/script_PercyOutside.inc b/data/scripts/westernWood/script_PercyOutside.inc index e34359d9..612d4b1a 100644 --- a/data/scripts/westernWood/script_PercyOutside.inc +++ b/data/scripts/westernWood/script_PercyOutside.inc @@ -1,7 +1,7 @@ @ Trilby Highlands Percy in front of house SCRIPT_START script_PercyOutside BeginBlock - _0807EB44 0x0004 + SetAnimationState 0x0004 CallWithArg sub_0807F3D8, 0x00000008 DoPostScriptAction 0x000a Call sub_0806B60C @@ -9,12 +9,12 @@ SCRIPT_START script_PercyOutside script_08012EDC: CheckEntityInteractType JumpIfNot script_08012EDC - _0807E864 - _0807EB74 + SetPlayerIdle + FacePlayer CallWithArg sub_0807F3D8, 0x0000000c Call sub_0806B4F0 WaitUntilTextboxCloses Wait 0x000f - _0807E878 + EnablePlayerControl CallWithArg sub_0807F3D8, 0x00000008 Jump script_08012EDC diff --git a/data/scripts/windRuins/script_EzloTalkFoW.inc b/data/scripts/windRuins/script_EzloTalkFoW.inc index 8ac839e1..8370f5ef 100644 --- a/data/scripts/windRuins/script_EzloTalkFoW.inc +++ b/data/scripts/windRuins/script_EzloTalkFoW.inc @@ -1,12 +1,12 @@ @ Ezlo talk after Wind Ruins SCRIPT_START script_EzloTalkFoW - _0807E864 + SetPlayerIdle Call sub_0807DF28 - _0807EB28 0x1c03 + EzloMessage 0x1c03 WaitUntilTextboxCloses SetLocalFlagByBank 0x0100, 0x0003 Call sub_0807DF50 - _0807E878 + EnablePlayerControl DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/windRuins/script_Npc4EReceiveOcarina.inc b/data/scripts/windRuins/script_Npc4EReceiveOcarina.inc index b3a0d2f2..b4e78dbb 100644 --- a/data/scripts/windRuins/script_Npc4EReceiveOcarina.inc +++ b/data/scripts/windRuins/script_Npc4EReceiveOcarina.inc @@ -9,14 +9,14 @@ script_0800D8F4: CheckInventory1 0x0017 JumpIfNot script_0800D8F4 Call sub_0807DF28 - _0807E864 + SetPlayerIdle WaitPlayerGetItem - _0807EB28 0x1325 + EzloMessage 0x1325 WaitUntilTextboxCloses PlaySound SFX_113 SetIntVariable 0x00000000 Call sub_0806DA1C - _0807E878 + EnablePlayerControl Call sub_0807DF50 script_0800D924: DoPostScriptAction 0x0006 diff --git a/data/scripts/windRuins/script_Npc4EWindRuinsTextBoard.inc b/data/scripts/windRuins/script_Npc4EWindRuinsTextBoard.inc index 3c0338b0..7d205905 100644 --- a/data/scripts/windRuins/script_Npc4EWindRuinsTextBoard.inc +++ b/data/scripts/windRuins/script_Npc4EWindRuinsTextBoard.inc @@ -9,7 +9,7 @@ SCRIPT_START script_Npc4EWindRuinsTextBoard script_0800D88E: CheckEntityInteractType JumpIfNot script_0800D88E - _0807E864 + SetPlayerIdle Call sub_0807DF28 CheckLocalFlag 0x0045 JumpIf script_0800D8B0 @@ -29,6 +29,6 @@ script_0800D8CE: JumpIfNot script_0800D8CE script_0800D8D6: Call sub_0807DF50 - _0807E878 + EnablePlayerControl Jump script_0800D88E .2byte 0x0000 diff --git a/data/scripts/windRuins/script_PlayerAtTextboard.inc b/data/scripts/windRuins/script_PlayerAtTextboard.inc index a3c2a068..b8b909df 100644 --- a/data/scripts/windRuins/script_PlayerAtTextboard.inc +++ b/data/scripts/windRuins/script_PlayerAtTextboard.inc @@ -5,7 +5,7 @@ SCRIPT_START script_PlayerAtTextboard EndBlock DoPostScriptAction 0x0001 _0807EDD4 0x00a0, 0x0078 - _0807EB44 0x0000 + SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 Call sub_080791BC diff --git a/src/player.c b/src/player.c index c50474c6..53cbe00b 100644 --- a/src/player.c +++ b/src/player.c @@ -3631,7 +3631,7 @@ void sub_08074F8C(Entity* this) { UpdateAnimationSingleFrame(this); if (this->frame == 1) { this->frame = 0; - gActiveScriptInfo.unk_00 |= 4; + gActiveScriptInfo.syncFlags |= 4; } if (this->frame & 0x80) { this->field_0x68.HALF.LO++; diff --git a/src/script.c b/src/script.c index ba508cf0..c59c267b 100644 --- a/src/script.c +++ b/src/script.c @@ -38,19 +38,19 @@ void ScriptCommand_CheckRoomFlag(Entity* entity, ScriptExecutionContext* context void ScriptCommand_CheckPlayerInRegion(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckPlayerInRegion2(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckEntityInteractType(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E30C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_FacePlayerAndCheckDist(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_HasRupees(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E3BC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_HasShells(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckTextboxResult(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckKinstoneFused(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_BuyItem(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckBottleContaining(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_HasRoomItemForSale(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E4CC(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E4EC(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E514(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_VariableBitSet(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_VariableOnlyBitSet(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_VariableEqual(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CheckPlayerFlags(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E564(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckPlayerMinish(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_EntityHasHeight(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_ComparePlayerAction(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_ComparePlayerAnimationState(Entity* entity, ScriptExecutionContext* context); @@ -67,12 +67,12 @@ void ScriptCommand_Wait(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitForSyncFlag(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitForSyncFlagAndClear(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitPlayerGetItem(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_WaitForPlayerAction0x17(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WaitForPlayerEnterRoom(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitFor_1(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_WaitForFadeFinish(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E778(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetFadeTime(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetFadeMask(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E79C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_FadeInvert(Entity* entity, ScriptExecutionContext* context); void ScriptCommandNop2(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_DoFade4(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_DoFade5(Entity* entity, ScriptExecutionContext* context); @@ -82,18 +82,18 @@ void ScriptCommand_0807E800(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E80C(Entity* entity, ScriptExecutionContext* context); void sub_0807E818(u32); void ScriptCommand_0807E858(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E864(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E878(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E888(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetPlayerIdle(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_EnablePlayerControl(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_DisablePlayerControl(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetPlayerAction(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_StartPlayerScript(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E8D4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetPlayerAnimation(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E8E4(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E908(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetAction(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetIntVariable(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E924(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E930(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E944(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetVariableToFrame(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetAnimation(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_TriggerInteract(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E974(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E9D4(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E9DC(Entity* entity, ScriptExecutionContext* context); @@ -107,26 +107,26 @@ void ScriptCommand_MessageNoOverlap(Entity* entity, ScriptExecutionContext* cont void ScriptCommand_MessageFromTargetPos(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_MessageFromTargetTable(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_MessageNoOverlapVar(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EB28(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_EzloMessage(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EB38(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EB44(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetAnimationState(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EB4C(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EB74(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EB8C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_FacePlayer(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_FaceAwayFromPlayer(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetEntityDirection(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetEntityDirectionWithAnimationState(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetEntitySpeed(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_SetEntity0x20(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetEntityVelocity(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetEntityPositionRelative(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_OffsetEntityPosition(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_MoveEntityToPlayer(Entity* entity, ScriptExecutionContext* context); void ScriptCommandNop3(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EC1C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WalkForward(Entity* entity, ScriptExecutionContext* context); void sub_0807EC44(Entity*, ScriptExecutionContext*); -void ScriptCommand_0807EC64(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EC94(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807ECC4(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807ECF4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WalkNorth(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WalkEast(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WalkSouth(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WalkWest(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807ED24(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EDD4(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EE04(Entity* entity, ScriptExecutionContext* context); @@ -144,7 +144,7 @@ void ScriptCommand_ModRupees(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_ModHealth(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_IncreaseMaxHealth(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_GivePlayerItem(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807F050(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_GiveKinstone(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_GetInventoryValue(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807F078(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807F088(Entity* entity, ScriptExecutionContext* context); @@ -157,14 +157,10 @@ extern void RecoverUI(u32); typedef void (*ScriptCommand)(Entity*, ScriptExecutionContext*); -extern const ScriptCommand gScriptCommands[]; - extern u16* gUnk_08001A7C[]; extern u8 gUnk_08114F30[]; extern u8 gUnk_08114F34[]; extern const u16 gUnk_08016984; -extern u8 gUnk_0811E514[]; -extern u8 gUnk_0811E510[]; extern ScriptExecutionContext gPlayerScriptExecutionContext; extern ScriptExecutionContext gScriptExecutionContextArray[0x20]; @@ -492,18 +488,18 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { ScriptCommand_CheckPlayerInRegion, ScriptCommand_CheckPlayerInRegion2, ScriptCommand_CheckEntityInteractType, - ScriptCommand_0807E30C, + ScriptCommand_FacePlayerAndCheckDist, ScriptCommand_HasRupees, - ScriptCommand_0807E3BC, + ScriptCommand_HasShells, ScriptCommand_CheckTextboxResult, ScriptCommand_CheckKinstoneFused, ScriptCommand_BuyItem, ScriptCommand_CheckBottleContaining, - ScriptCommand_0807E4CC, - ScriptCommand_0807E4EC, - ScriptCommand_0807E514, + ScriptCommand_VariableBitSet, + ScriptCommand_VariableOnlyBitSet, + ScriptCommand_VariableEqual, ScriptCommand_CheckPlayerFlags, - ScriptCommand_0807E564, + ScriptCommand_CheckPlayerMinish, ScriptCommand_EntityHasHeight, ScriptCommand_ComparePlayerAction, ScriptCommand_ComparePlayerAnimationState, @@ -520,12 +516,12 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { ScriptCommand_WaitForSyncFlag, ScriptCommand_WaitForSyncFlagAndClear, ScriptCommand_WaitPlayerGetItem, - ScriptCommand_WaitForPlayerAction0x17, + ScriptCommand_WaitForPlayerEnterRoom, ScriptCommand_WaitFor_1, ScriptCommand_WaitForFadeFinish, - ScriptCommand_0807E778, + ScriptCommand_SetFadeTime, ScriptCommand_SetFadeMask, - ScriptCommand_0807E79C, + ScriptCommand_FadeInvert, ScriptCommandNop2, ScriptCommand_DoFade4, ScriptCommand_DoFade5, @@ -534,21 +530,21 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { ScriptCommand_0807E800, ScriptCommand_0807E80C, ScriptCommand_0807E858, - ScriptCommand_0807E864, - ScriptCommand_0807E878, - ScriptCommand_0807E888, + ScriptCommand_SetPlayerIdle, + ScriptCommand_EnablePlayerControl, + ScriptCommand_DisablePlayerControl, ScriptCommand_SetPlayerAction, ScriptCommand_StartPlayerScript, - ScriptCommand_0807E8D4, + ScriptCommand_SetPlayerAnimation, ScriptCommand_0807E8E4, ScriptCommand_0807E8E4, ScriptCommand_0807E8E4, ScriptCommand_0807E8E4, - ScriptCommand_0807E908, + ScriptCommand_SetAction, ScriptCommand_SetIntVariable, - ScriptCommand_0807E924, - ScriptCommand_0807E930, - ScriptCommand_0807E944, + ScriptCommand_SetVariableToFrame, + ScriptCommand_SetAnimation, + ScriptCommand_TriggerInteract, ScriptCommand_0807E974, ScriptCommand_0807E9D4, ScriptCommand_0807E9DC, @@ -562,25 +558,25 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { ScriptCommand_MessageFromTargetPos, ScriptCommand_MessageFromTargetTable, ScriptCommand_MessageNoOverlapVar, - ScriptCommand_0807EB28, + ScriptCommand_EzloMessage, ScriptCommand_0807EB38, - ScriptCommand_0807EB44, + ScriptCommand_SetAnimationState, ScriptCommand_0807EB4C, - ScriptCommand_0807EB74, - ScriptCommand_0807EB8C, + ScriptCommand_FacePlayer, + ScriptCommand_FaceAwayFromPlayer, ScriptCommand_SetEntityDirection, ScriptCommand_SetEntityDirectionWithAnimationState, ScriptCommand_SetEntitySpeed, - ScriptCommand_SetEntity0x20, + ScriptCommand_SetEntityVelocity, ScriptCommand_SetEntityPositionRelative, ScriptCommand_OffsetEntityPosition, ScriptCommand_MoveEntityToPlayer, ScriptCommandNop3, - ScriptCommand_0807EC1C, - ScriptCommand_0807EC64, - ScriptCommand_0807EC94, - ScriptCommand_0807ECC4, - ScriptCommand_0807ECF4, + ScriptCommand_WalkForward, + ScriptCommand_WalkNorth, + ScriptCommand_WalkEast, + ScriptCommand_WalkSouth, + ScriptCommand_WalkWest, ScriptCommand_0807ED24, ScriptCommand_0807EDD4, ScriptCommand_0807EE04, @@ -598,7 +594,7 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { ScriptCommand_ModHealth, ScriptCommand_IncreaseMaxHealth, ScriptCommand_GivePlayerItem, - ScriptCommand_0807F050, + ScriptCommand_GiveKinstone, ScriptCommand_GetInventoryValue, ScriptCommand_0807F078, ScriptCommand_0807F088, @@ -805,7 +801,7 @@ void ScriptCommand_CheckEntityInteractType(Entity* entity, ScriptExecutionContex gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E30C(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_FacePlayerAndCheckDist(Entity* entity, ScriptExecutionContext* context) { if ((context->unk_1A & 0xF) == 0 && (gPlayerState.flags & PL_MINISH) == 0 && EntityInRectRadius(entity, &gPlayerEntity, 40, 40)) { entity->animationState = sub_0806F5B0(GetFacingDirection(entity, &gPlayerEntity)); @@ -826,7 +822,7 @@ void ScriptCommand_HasRupees(Entity* entity, ScriptExecutionContext* context) { gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E3BC(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_HasShells(Entity* entity, ScriptExecutionContext* context) { context->condition = (context->scriptInstructionPointer[1] <= gSave.stats.field_0x1a); gActiveScriptInfo.flags |= 1; } @@ -871,18 +867,18 @@ void ScriptCommand_HasRoomItemForSale(Entity* entity, ScriptExecutionContext* co gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E4CC(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_VariableBitSet(Entity* entity, ScriptExecutionContext* context) { context->condition = !!(context->intVariable & context->scriptInstructionPointer[1]); gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E4EC(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_VariableOnlyBitSet(Entity* entity, ScriptExecutionContext* context) { u32 tmp = context->scriptInstructionPointer[1]; context->condition = tmp == (tmp & context->intVariable); gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E514(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_VariableEqual(Entity* entity, ScriptExecutionContext* context) { u32 tmp = context->scriptInstructionPointer[1]; context->condition = tmp == context->intVariable; gActiveScriptInfo.flags |= 1; @@ -894,7 +890,7 @@ void ScriptCommand_CheckPlayerFlags(Entity* entity, ScriptExecutionContext* cont gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E564(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_CheckPlayerMinish(Entity* entity, ScriptExecutionContext* context) { context->condition = (gPlayerState.flags >> 7) & 1; gActiveScriptInfo.flags |= 1; } @@ -979,8 +975,8 @@ void ScriptCommand_WaitPlayerGetItem(Entity* entity, ScriptExecutionContext* con } } -void ScriptCommand_WaitForPlayerAction0x17(Entity* entity, ScriptExecutionContext* context) { - if (gPlayerEntity.action != 0x17) { +void ScriptCommand_WaitForPlayerEnterRoom(Entity* entity, ScriptExecutionContext* context) { + if (gPlayerEntity.action != PLAYER_ROOMTRANSITION) { gActiveScriptInfo.flags |= 1; } else { gActiveScriptInfo.commandSize = 0; @@ -1001,7 +997,7 @@ void ScriptCommand_WaitForFadeFinish(Entity* entity, ScriptExecutionContext* con } } -void ScriptCommand_0807E778(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetFadeTime(Entity* entity, ScriptExecutionContext* context) { gActiveScriptInfo.unk_08 = context->scriptInstructionPointer[1]; } @@ -1009,7 +1005,7 @@ void ScriptCommand_SetFadeMask(Entity* entity, ScriptExecutionContext* context) gFadeControl.mask = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } -void ScriptCommand_0807E79C(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_FadeInvert(Entity* entity, ScriptExecutionContext* context) { sub_080500F4(gActiveScriptInfo.unk_08); } @@ -1057,16 +1053,16 @@ void ScriptCommand_0807E858(Entity* entity, ScriptExecutionContext* context) { sub_08050038(context->scriptInstructionPointer[1]); } -void ScriptCommand_0807E864(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetPlayerIdle(Entity* entity, ScriptExecutionContext* context) { gPlayerState.controlMode = CONTROL_DISABLED; sub_08078B48(); } -void ScriptCommand_0807E878(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_EnablePlayerControl(Entity* entity, ScriptExecutionContext* context) { gPlayerState.controlMode = 1; } -void ScriptCommand_0807E888(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_DisablePlayerControl(Entity* entity, ScriptExecutionContext* context) { gPlayerState.controlMode = CONTROL_DISABLED; } @@ -1082,7 +1078,7 @@ void ScriptCommand_StartPlayerScript(Entity* entity, ScriptExecutionContext* con StartPlayerScript((u16*)GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer)); } -void ScriptCommand_0807E8D4(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetPlayerAnimation(Entity* entity, ScriptExecutionContext* context) { gPlayerState.animation = context->scriptInstructionPointer[1]; } @@ -1092,7 +1088,7 @@ void ScriptCommand_0807E8E4(Entity* entity, ScriptExecutionContext* context) { gPlayerEntity.animationState = tmp2 = (context->scriptInstructionPointer[0] - tmp) << 1; } -void ScriptCommand_0807E908(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetAction(Entity* entity, ScriptExecutionContext* context) { entity->action = context->scriptInstructionPointer[1]; entity->subAction = 0; } @@ -1101,17 +1097,17 @@ void ScriptCommand_SetIntVariable(Entity* entity, ScriptExecutionContext* contex context->intVariable = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } -void ScriptCommand_0807E924(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetVariableToFrame(Entity* entity, ScriptExecutionContext* context) { context->intVariable = entity->frame; entity->frame = 0; } -void ScriptCommand_0807E930(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetAnimation(Entity* entity, ScriptExecutionContext* context) { entity->field_0x80.HWORD = context->scriptInstructionPointer[1]; InitAnimationForceUpdate(entity, context->scriptInstructionPointer[1]); } -void ScriptCommand_0807E944(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_TriggerInteract(Entity* entity, ScriptExecutionContext* context) { if (entity->interactType) { entity->interactType = 0; gActiveScriptInfo.flags |= 1; @@ -1227,7 +1223,7 @@ void ScriptCommand_MessageNoOverlapVar(Entity* entity, ScriptExecutionContext* c MessageNoOverlap(context->intVariable, entity); } -void ScriptCommand_0807EB28(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_EzloMessage(Entity* entity, ScriptExecutionContext* context) { CreateEzloHint(context->scriptInstructionPointer[1], 0); } @@ -1235,7 +1231,7 @@ void ScriptCommand_0807EB38(Entity* entity, ScriptExecutionContext* context) { context->intVariable = gUnk_02000040.unk_01; } -void ScriptCommand_0807EB44(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetAnimationState(Entity* entity, ScriptExecutionContext* context) { entity->animationState = context->scriptInstructionPointer[1]; } @@ -1245,11 +1241,11 @@ void ScriptCommand_0807EB4C(Entity* entity, ScriptExecutionContext* context) { context->scriptInstructionPointer[2] + gRoomControls.roomOriginY)); } -void ScriptCommand_0807EB74(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_FacePlayer(Entity* entity, ScriptExecutionContext* context) { entity->animationState = sub_0806F5B0(GetFacingDirection(entity, &gPlayerEntity)); } -void ScriptCommand_0807EB8C(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_FaceAwayFromPlayer(Entity* entity, ScriptExecutionContext* context) { gPlayerEntity.animationState = sub_0806F5B0(GetFacingDirection(&gPlayerEntity, entity)) & ~1; } @@ -1266,7 +1262,7 @@ void ScriptCommand_SetEntitySpeed(Entity* entity, ScriptExecutionContext* contex entity->speed = context->scriptInstructionPointer[1]; } -void ScriptCommand_SetEntity0x20(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetEntityVelocity(Entity* entity, ScriptExecutionContext* context) { entity->zVelocity = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } @@ -1287,7 +1283,7 @@ void ScriptCommand_MoveEntityToPlayer(Entity* entity, ScriptExecutionContext* co void ScriptCommandNop3(Entity* entity, ScriptExecutionContext* context) { } -void ScriptCommand_0807EC1C(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_WalkForward(Entity* entity, ScriptExecutionContext* context) { if (!context->unk_18) { context->unk_18 = 1; context->unk_12 = context->scriptInstructionPointer[1]; @@ -1303,7 +1299,7 @@ void sub_0807EC44(Entity* entity, ScriptExecutionContext* context) { } } -void ScriptCommand_0807EC64(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_WalkNorth(Entity* entity, ScriptExecutionContext* context) { if (!context->unk_18) { context->unk_18 = 1; context->unk_12 = context->scriptInstructionPointer[1]; @@ -1314,7 +1310,7 @@ void ScriptCommand_0807EC64(Entity* entity, ScriptExecutionContext* context) { sub_0807EC44(entity, context); } -void ScriptCommand_0807EC94(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_WalkEast(Entity* entity, ScriptExecutionContext* context) { if (!context->unk_18) { context->unk_18 = 1; context->unk_12 = context->scriptInstructionPointer[1]; @@ -1325,7 +1321,7 @@ void ScriptCommand_0807EC94(Entity* entity, ScriptExecutionContext* context) { sub_0807EC44(entity, context); } -void ScriptCommand_0807ECC4(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_WalkSouth(Entity* entity, ScriptExecutionContext* context) { if (!context->unk_18) { context->unk_18 = 1; context->unk_12 = context->scriptInstructionPointer[1]; @@ -1336,7 +1332,7 @@ void ScriptCommand_0807ECC4(Entity* entity, ScriptExecutionContext* context) { sub_0807EC44(entity, context); } -void ScriptCommand_0807ECF4(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_WalkWest(Entity* entity, ScriptExecutionContext* context) { if (!context->unk_18) { context->unk_18 = 1; context->unk_12 = context->scriptInstructionPointer[1]; @@ -1497,7 +1493,7 @@ void ScriptCommand_GivePlayerItem(Entity* entity, ScriptExecutionContext* contex sub_080A7C18(context->scriptInstructionPointer[1], tmp, 0); } -void ScriptCommand_0807F050(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_GiveKinstone(Entity* entity, ScriptExecutionContext* context) { sub_080A7C18(0x5C, context->scriptInstructionPointer[1], 0); } @@ -1534,11 +1530,11 @@ extern u8 gUnk_0811E750[]; extern u8 gUnk_0811E758[]; extern u8 gUnk_0811E760[]; -void sub_0807F0D8(Entity* entity, ScriptExecutionContext* context) { +void CheckAnyKeyPressed(Entity* entity, ScriptExecutionContext* context) { context->condition = !!gInput.newKeys; } -void sub_0807F0EC(Entity* entity, ScriptExecutionContext* context) { +void GetRandomInt(Entity* entity, ScriptExecutionContext* context) { context->intVariable = (s32)Random() % (s32)context->intVariable; } @@ -1559,17 +1555,17 @@ void sub_0807F128(Entity* entity, ScriptExecutionContext* context) { context->unk_1A = sValues[(rand >> 8) % 8]; } -void sub_0807F158(Entity* entity, ScriptExecutionContext* context) { +void SetCollisionLayer1(Entity* entity, ScriptExecutionContext* context) { entity->collisionLayer = 1; UpdateSpriteForCollisionLayer(entity); } -void sub_0807F168(Entity* entity, ScriptExecutionContext* context) { +void SetPlayerCollisionLayer1(Entity* entity, ScriptExecutionContext* context) { gPlayerEntity.collisionLayer = 1; UpdateSpriteForCollisionLayer(&gPlayerEntity); } -void sub_0807F180(Entity* entity, ScriptExecutionContext* context) { +void SetCollisionLayer2(Entity* entity, ScriptExecutionContext* context) { entity->collisionLayer = 2; UpdateSpriteForCollisionLayer(entity); } @@ -1607,11 +1603,11 @@ void sub_0807F210(Entity* entity, ScriptExecutionContext* context) { } } -void sub_0807F238(Entity* entity, ScriptExecutionContext* context) { +void SetPlayerAnimation2(Entity* entity, ScriptExecutionContext* context) { gPlayerState.animation = context->intVariable; } -void sub_0807F244(Entity* entity, ScriptExecutionContext* context) { +void EquipItem(Entity* entity, ScriptExecutionContext* context) { u32 slot; u32 item; @@ -1651,7 +1647,7 @@ void sub_0807F2A8(Entity* entity, ScriptExecutionContext* context) { } } -void sub_0807F2D4(Entity* entity, ScriptExecutionContext* context) { +void WaitForFrameHiBit(Entity* entity, ScriptExecutionContext* context) { if ((entity->frame & 0x80) != 0) { gActiveScriptInfo.flags |= 1; } else { @@ -1659,7 +1655,7 @@ void sub_0807F2D4(Entity* entity, ScriptExecutionContext* context) { } } -void sub_0807F304(Entity* entity, ScriptExecutionContext* context) { +void WaitForPlayerFrameHiBit(Entity* entity, ScriptExecutionContext* context) { if ((gPlayerEntity.frame & 0x80) != 0) { gActiveScriptInfo.flags |= 1; } else { @@ -1667,20 +1663,20 @@ void sub_0807F304(Entity* entity, ScriptExecutionContext* context) { } } -void sub_0807F338(Entity* entity, ScriptExecutionContext* context) { +void DeleteHitbox(Entity* entity, ScriptExecutionContext* context) { entity->hitbox = NULL; entity->field_0x17 &= ~1; } -void sub_0807F348(Entity* entity, ScriptExecutionContext* context) { +void SetPriorityMessage(Entity* entity, ScriptExecutionContext* context) { SetDefaultPriority(entity, PRIO_MESSAGE); } -void sub_0807F354(Entity* entity, ScriptExecutionContext* context) { +void SetPriorityPlayerEvent(Entity* entity, ScriptExecutionContext* context) { SetDefaultPriority(entity, PRIO_PLAYER_EVENT); } -void sub_0807F360(Entity* entity, ScriptExecutionContext* context) { +void SetPriorityHighest(Entity* entity, ScriptExecutionContext* context) { SetDefaultPriority(entity, PRIO_NO_BLOCK); } @@ -1707,15 +1703,15 @@ void sub_0807F3D8(Entity* entity, ScriptExecutionContext* context) { entity->field_0x80.HWORD = entity->animIndex; } -void sub_0807F3F8(Entity* entity, ScriptExecutionContext* context) { +void CreatePlayerExclamationMark(Entity* entity, ScriptExecutionContext* context) { CreateSpeechBubbleExclamationMark(&gPlayerEntity, 8, -24); } -void sub_0807F40C(Entity* entity, ScriptExecutionContext* context) { +void CreatePlayerQuestionMark(Entity* entity, ScriptExecutionContext* context) { CreateSpeechBubbleQuestionMark(&gPlayerEntity, 8, -24); } -void sub_0807F420(Entity* entity, ScriptExecutionContext* context) { +void LoadMenu(Entity* entity, ScriptExecutionContext* context) { MenuFadeIn(context->intVariable & 0xff, (u8)(context->intVariable >> 8)); } @@ -1784,11 +1780,11 @@ void sub_0807F4F8(Entity* entity, ScriptExecutionContext* context) { gActiveScriptInfo.commandSize = 0; } -void sub_0807F584(Entity* entity, ScriptExecutionContext* context) { +void ReadPlayerAnimationState(Entity* entity, ScriptExecutionContext* context) { context->intVariable = gPlayerEntity.animationState >> 1; } -void sub_0807F594(Entity* entity, ScriptExecutionContext* context) { +void WaitForPlayerIdle(Entity* entity, ScriptExecutionContext* context) { if (gPlayerState.framestate) gActiveScriptInfo.commandSize = 0; } @@ -1797,7 +1793,7 @@ void sub_0807F5B0(Entity* entity, ScriptExecutionContext* context) { gPlayerState.field_0x27[0] = context->intVariable; } -void sub_0807F5C0(Entity* entity, ScriptExecutionContext* context) { +void WaitForCameraTouchRoomBorder(Entity* entity, ScriptExecutionContext* context) { s32 left; s32 bottom; @@ -1843,11 +1839,11 @@ void sub_0807F6B4(Entity* entity, ScriptExecutionContext* context) { gActiveScriptInfo.flags |= 1; } -void sub_0807F6E8(Entity* entity, ScriptExecutionContext* context) { +void SetPlayerFlag(Entity* entity, ScriptExecutionContext* context) { gPlayerState.flags |= context->intVariable; } -void sub_0807F6F8(Entity* entity, ScriptExecutionContext* context) { +void ResetPlayerFlag(Entity* entity, ScriptExecutionContext* context) { gPlayerState.flags &= ~context->intVariable; } @@ -1865,13 +1861,13 @@ void sub_0807F738(Entity* entity, ScriptExecutionContext* context) { ResolveEntityBelow(entity, entity); } -void sub_0807F75C(Entity* entity, ScriptExecutionContext* context) { +void SetPlayerPos(Entity* entity, ScriptExecutionContext* context) { s32 s32Var = context->intVariable; gPlayerEntity.x.HALF.HI = (s32Var >> 16) + gRoomControls.roomOriginX; gPlayerEntity.y.HALF.HI = (s32Var & 0xffff) + gRoomControls.roomOriginY; } -void sub_0807F77C(Entity* entity, ScriptExecutionContext* context) { +void GetConditionSet(Entity* entity, ScriptExecutionContext* context) { if (context->condition) context->intVariable = 1; else @@ -1951,14 +1947,14 @@ void sub_0807F854(Entity* entity, ScriptExecutionContext* context) { } } -void sub_0807F8BC(Entity* entity, ScriptExecutionContext* context) { +void CheckEntityOnScreen(Entity* entity, ScriptExecutionContext* context) { if (CheckOnScreen(entity)) context->condition = 1; else context->condition = 0; } -void sub_0807F8D0(Entity* entity, ScriptExecutionContext* context) { +void DoGravity(Entity* entity, ScriptExecutionContext* context) { GravityUpdate(entity, context->intVariable); gActiveScriptInfo.flags |= 1; } @@ -1971,7 +1967,7 @@ void sub_0807F8E8(Entity* entity, ScriptExecutionContext* context) { } } -void sub_0807F918(Entity* entity, ScriptExecutionContext* context) { +void PutItemAnySlot(Entity* entity, ScriptExecutionContext* context) { PutItemOnSlot(context->intVariable); } @@ -1997,70 +1993,70 @@ void sub_0807F950(Entity* entity, ScriptExecutionContext* context) { DeleteEntity(c); } -void sub_0807F970(Entity* entity, ScriptExecutionContext* context) { +void CheckMessageEqual(Entity* entity, ScriptExecutionContext* context) { context->condition = context->intVariable == gTextRender.curToken.textIndex; } -void sub_0807F98C(Entity* entity, ScriptExecutionContext* context) { +void SetEntityHeight(Entity* entity, ScriptExecutionContext* context) { entity->z.WORD = context->intVariable; } -void sub_0807F994(Entity* entity, ScriptExecutionContext* context) { +void SetSpriteOffset(Entity* entity, ScriptExecutionContext* context) { entity->spriteOffsetX = (s32)context->intVariable >> 0x10; entity->spriteOffsetY = context->intVariable & 0xffff; } -void sub_0807F9A4(Entity* entity, ScriptExecutionContext* context) { +void WaitForPlayerNormal(Entity* entity, ScriptExecutionContext* context) { switch (gPlayerState.framestate) { - case 5: - case 7: - case 8: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 27: - case 28: + case PL_STATE_THROW: + case PL_STATE_SWIM: + case PL_STATE_PARACHUTE: + case PL_STATE_FALL: + case PL_STATE_JUMP: + case PL_STATE_C: + case PL_STATE_D: + case PL_STATE_USEPORTAL: + case PL_STATE_F: + case PL_STATE_TRAPPED: + case PL_STATE_11: + case PL_STATE_DIE: + case PL_STATE_TALKEZLO: + case PL_STATE_CAPE: + case PL_STATE_ITEMGET: + case PL_STATE_DROWN: + case PL_STATE_HOLE: + case PL_STATE_CLIMB: + case PL_STATE_1B: + case PL_STATE_STAIRS: gActiveScriptInfo.commandSize = 0; break; default: - gActiveScriptInfo.flags |= 1u; + gActiveScriptInfo.flags |= 1; break; } } -void sub_0807FA40(Entity* entity, ScriptExecutionContext* context) { +void WaitForPlayerNormalOrTalkEzlo(Entity* entity, ScriptExecutionContext* context) { switch (gPlayerState.framestate) { - case 5: - case 7: - case 8: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 20: - case 21: - case 22: - case 23: - case 24: - case 27: - case 28: + case PL_STATE_THROW: + case PL_STATE_SWIM: + case PL_STATE_PARACHUTE: + case PL_STATE_FALL: + case PL_STATE_JUMP: + case PL_STATE_C: + case PL_STATE_D: + case PL_STATE_USEPORTAL: + case PL_STATE_F: + case PL_STATE_TRAPPED: + case PL_STATE_11: + case PL_STATE_DIE: + case PL_STATE_CAPE: + case PL_STATE_ITEMGET: + case PL_STATE_DROWN: + case PL_STATE_HOLE: + case PL_STATE_CLIMB: + case PL_STATE_1B: + case PL_STATE_STAIRS: gActiveScriptInfo.commandSize = 0; break; default: From bcd01c85db3e81d2a11ed3dfb10789ff19a66726 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Tue, 28 Dec 2021 18:39:17 +0100 Subject: [PATCH 055/168] gyorgFemaleEye.c: ok Halfway to using new entity style, will migrate fully once gyorgFemale is migrated --- asm/gyorgFemaleEye.s | 590 ------------------------------------- linker.ld | 2 +- src/enemy/gyorgFemaleEye.c | 198 +++++++++++++ 3 files changed, 199 insertions(+), 591 deletions(-) delete mode 100644 asm/gyorgFemaleEye.s create mode 100644 src/enemy/gyorgFemaleEye.c diff --git a/asm/gyorgFemaleEye.s b/asm/gyorgFemaleEye.s deleted file mode 100644 index 0876c5fa..00000000 --- a/asm/gyorgFemaleEye.s +++ /dev/null @@ -1,590 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start GyorgFemaleEye -GyorgFemaleEye: @ 0x08048988 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08048998 - bl DeleteThisEntity -_08048998: - ldr r4, _080489B0 @ =gUnk_080D1F64 - adds r0, r5, #0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080489B0: .4byte gUnk_080D1F64 - - thumb_func_start sub_080489B4 -sub_080489B4: @ 0x080489B4 - push {lr} - ldr r2, _080489C8 @ =gUnk_080D1F7C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080489C8: .4byte gUnk_080D1F7C - - thumb_func_start sub_080489CC -sub_080489CC: @ 0x080489CC -.ifdef EU - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x45 - adds r0, r0, r5 - mov ip, r0 - ldrb r0, [r0] - cmp r0, #0xff - beq _080487F4 - ldr r3, [r5, #0x50] - adds r2, r3, #0 - adds r2, #0x7c - movs r0, #1 - ldrb r1, [r5, #0xa] - lsls r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r4, [r3, #0x64] - ldrb r0, [r5, #0xa] - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x18 - adds r1, r1, r0 - ldr r0, [r5, #0x4c] - str r0, [r1] - ldr r2, _08048804 @ =gPlayerEntity - movs r6, #0x2e - ldrsh r0, [r2, r6] - movs r6, #0x2e - ldrsh r1, [r5, r6] - adds r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r4, #0x38] - ldr r4, [r3, #0x64] - movs r1, #0x32 - ldrsh r0, [r2, r1] - movs r2, #0x32 - ldrsh r1, [r5, r2] - adds r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r4, #0x3a] - ldr r2, [r3, #0x64] - adds r3, r5, #0 - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #0x10 - eors r0, r1 - strb r0, [r3] - adds r2, #0x3c - strb r0, [r2] -_080487F4: - movs r0, #0xff - mov r6, ip - strb r0, [r6] - ldr r1, _08048808 @ =gUnk_080D1F64 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08048804: .4byte gPlayerEntity -_08048808: .4byte gUnk_080D1F64 -.else - push {r4, r5, r6, lr} - mov ip, r0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0xff - bne _080489DA - b _08048AD8 -_080489DA: - mov r0, ip - ldr r4, [r0, #0x50] - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - mov r2, ip - ldrb r1, [r2, #0xa] - asrs r0, r1 - movs r3, #1 - ands r0, r3 - cmp r0, #0 - beq _08048AD8 - adds r2, r4, #0 - adds r2, #0x7c - adds r0, r3, #0 - lsls r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - mov r0, ip - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - subs r0, #4 - cmp r0, #0x16 - bhi _08048AD0 - lsls r0, r0, #2 - ldr r1, _08048A1C @ =_08048A20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08048A1C: .4byte _08048A20 -_08048A20: @ jump table - .4byte _08048A7C @ case 0 - .4byte _08048A7C @ case 1 - .4byte _08048A7C @ case 2 - .4byte _08048AD0 @ case 3 - .4byte _08048A7C @ case 4 - .4byte _08048A7C @ case 5 - .4byte _08048A7C @ case 6 - .4byte _08048A7C @ case 7 - .4byte _08048A7C @ case 8 - .4byte _08048A7C @ case 9 - .4byte _08048AD0 @ case 10 - .4byte _08048AD0 @ case 11 - .4byte _08048A7C @ case 12 - .4byte _08048A7C @ case 13 - .4byte _08048A7C @ case 14 - .4byte _08048AD0 @ case 15 - .4byte _08048AD0 @ case 16 - .4byte _08048AD0 @ case 17 - .4byte _08048AD0 @ case 18 - .4byte _08048AD0 @ case 19 - .4byte _08048A7C @ case 20 - .4byte _08048A7C @ case 21 - .4byte _08048A7C @ case 22 -_08048A7C: - ldr r3, [r4, #0x64] - mov r5, ip - ldrb r0, [r5, #0xa] - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x18 - adds r1, r1, r0 - ldr r0, [r5, #0x4c] - str r0, [r1] - ldr r2, _08048ACC @ =gPlayerEntity - movs r6, #0x2e - ldrsh r0, [r2, r6] - movs r6, #0x2e - ldrsh r1, [r5, r6] - adds r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r3, #0x38] - ldr r3, [r4, #0x64] - movs r1, #0x32 - ldrsh r0, [r2, r1] - movs r2, #0x32 - ldrsh r1, [r5, r2] - adds r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r3, #0x3a] - ldr r2, [r4, #0x64] - mov r3, ip - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #0x10 - eors r0, r1 - strb r0, [r3] - adds r2, #0x3c - strb r0, [r2] - b _08048AD8 - .align 2, 0 -_08048ACC: .4byte gPlayerEntity -_08048AD0: - ldr r0, [r4, #0x64] - adds r0, #0x3c - movs r1, #0xff - strb r1, [r0] -_08048AD8: - mov r1, ip - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] - ldr r1, _08048AEC @ =gUnk_080D1F64 - mov r0, ip - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08048AEC: .4byte gUnk_080D1F64 -.endif - - thumb_func_start sub_08048AF0 -sub_08048AF0: @ 0x08048AF0 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0xff - strb r1, [r0, #0x14] - ldrb r3, [r0, #0x1b] - movs r2, #0x3f - adds r1, r2, #0 - ands r1, r3 - movs r3, #0x80 - orrs r1, r3 - strb r1, [r0, #0x1b] - ldrb r1, [r0, #0x19] - ands r2, r1 - orrs r2, r3 - strb r2, [r0, #0x19] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #2 - strb r1, [r2] - bl sub_08048D20 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08048B2C -sub_08048B2C: @ 0x08048B2C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08048D20 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - bl sub_08048D70 - cmp r0, #0 - beq _08048B62 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _08048B52 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0x40 - bl CreateFx -_08048B52: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _08048B6C -_08048B62: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08048B6C: - adds r0, r5, #0 - adds r0, #0x78 - ldrb r0, [r0] - ldrb r1, [r4, #0xa] - asrs r0, r1 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08048B82 - movs r0, #2 - strb r0, [r4, #0xc] -_08048B82: - pop {r4, r5, pc} - - thumb_func_start sub_08048B84 -sub_08048B84: @ 0x08048B84 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08048BAE - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x1e - strb r0, [r1] -_08048BAE: - pop {r4, pc} - - thumb_func_start sub_08048BB0 -sub_08048BB0: @ 0x08048BB0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x50] - adds r0, r2, #0 - adds r0, #0x78 - ldrb r3, [r0] - ldrb r1, [r4, #0xa] - adds r0, r3, #0 - asrs r0, r1 - movs r6, #1 - ands r0, r6 - cmp r0, #0 - bne _08048C34 - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _08048BFC - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r1, _08048BF8 @ =gUnk_080D2030 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - ldrb r2, [r4, #0xa] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitializeAnimation - b _08048CEA - .align 2, 0 -_08048BF8: .4byte gUnk_080D2030 -_08048BFC: - strb r6, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r1, _08048C30 @ =gUnk_080D2010 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - ldrb r2, [r4, #0xa] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitializeAnimation - adds r0, r4, #0 - movs r1, #2 - movs r2, #0x40 - bl CreateFx - b _08048CEA - .align 2, 0 -_08048C30: .4byte gUnk_080D2010 -_08048C34: - adds r5, r2, #0 - adds r5, #0x80 - ldrb r0, [r5] - asrs r0, r1 - ands r0, r6 - cmp r0, #0 - beq _08048CBC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x13 - bhi _08048C6C - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xf4 - strb r0, [r1] - adds r1, #2 - movs r0, #0x89 - strb r0, [r1] - ldrb r1, [r2, #0x14] - lsrs r1, r1, #6 - adds r1, #0x14 - adds r0, r4, #0 - bl InitializeAnimation - ldr r0, _08048CB4 @ =0x00000119 - bl SoundReq -_08048C6C: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08048CEA - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x1e - strb r0, [r1] - ldr r1, _08048CB8 @ =gUnk_080D2010 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - ldrb r2, [r4, #0xa] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitializeAnimation - adds r0, r4, #0 - movs r1, #7 - bl UpdateAnimationVariableFrames - adds r1, r6, #0 - ldrb r4, [r4, #0xa] - lsls r1, r4 - ldrb r0, [r5] - bics r0, r1 - strb r0, [r5] - b _08048CEA - .align 2, 0 -_08048CB4: .4byte 0x00000119 -_08048CB8: .4byte gUnk_080D2010 -_08048CBC: - cmp r3, #0xff - bne _08048CEA - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #0x10 - cmp r0, #3 - bls _08048CE4 - ldrb r1, [r4, #0x14] - adds r1, #0x10 - adds r0, r4, #0 - bl InitializeAnimation - bl Random - movs r1, #0x1c - ands r1, r0 - adds r0, r4, #0 - bl UpdateAnimationVariableFrames -_08048CE4: - adds r0, r4, #0 - bl GetNextFrame -_08048CEA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08048CEC -sub_08048CEC: @ 0x08048CEC - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08048D1A - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _08048D1C @ =gUnk_080D2010 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - ldrb r2, [r4, #0xa] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitializeAnimation -_08048D1A: - pop {r4, pc} - .align 2, 0 -_08048D1C: .4byte gUnk_080D2010 - - thumb_func_start sub_08048D20 -sub_08048D20: @ 0x08048D20 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _08048D60 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0xa] - lsls r3, r0, #3 - adds r1, r1, r3 - lsls r1, r1, #2 - ldr r0, _08048D64 @ =gUnk_080D1F90 - adds r1, r1, r0 - ldr r2, _08048D68 @ =gRoomControls - ldrh r0, [r2, #6] - ldrh r5, [r1] - adds r0, r0, r5 - strh r0, [r4, #0x2e] - ldrh r0, [r2, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldr r1, _08048D6C @ =gUnk_080D2010 - ldrb r0, [r4, #0xa] - adds r0, r0, r3 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitializeAnimation -_08048D60: - pop {r4, r5, pc} - .align 2, 0 -_08048D64: .4byte gUnk_080D1F90 -_08048D68: .4byte gRoomControls -_08048D6C: .4byte gUnk_080D2010 - - thumb_func_start sub_08048D70 -sub_08048D70: @ 0x08048D70 - push {lr} - adds r1, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08048D8E - ldr r1, [r1, #0x64] - ldr r0, [r1, #8] - cmp r0, #0 - bne _08048D86 - ldr r0, [r1, #0xc] -_08048D86: - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08048D92 -_08048D8E: - movs r0, #1 - b _08048D94 -_08048D92: - movs r0, #0 -_08048D94: - pop {pc} - .align 2, 0 diff --git a/linker.ld b/linker.ld index 7f9a26c5..25b0b1f9 100644 --- a/linker.ld +++ b/linker.ld @@ -466,7 +466,7 @@ SECTIONS { asm/curtain.o(.text); src/enemy/vaatiWrathEye.o(.text); asm/gyorgChild.o(.text); - asm/gyorgFemaleEye.o(.text); + src/enemy/gyorgFemaleEye.o(.text); asm/enemy62.o(.text); asm/gyorgFemaleMouth.o(.text); asm/enemy64.o(.text); diff --git a/src/enemy/gyorgFemaleEye.c b/src/enemy/gyorgFemaleEye.c new file mode 100644 index 00000000..a58cd017 --- /dev/null +++ b/src/enemy/gyorgFemaleEye.c @@ -0,0 +1,198 @@ +// #define NENT_DEPRECATED +#include "global.h" +#include "entity.h" +#include "enemy.h" +#include "player.h" +#include "functions.h" + +typedef struct { + u8 unk_00[0x8]; + Entity* unk_08; + Entity* unk_0c; + u8 unk_10[0x08]; + void* unk_18[0x8]; + u16 unk_38; + u16 unk_3a; + u8 unk_3c; +} GyorgFemaleHeap; + +typedef struct { +} GyorgFemaleEyeHeap; + +typedef struct { + Entity base; + // u8 unk_68[0x20]; +} GyorgFemaleEyeEntity; + +extern void (*const gUnk_080D1F64[])(GyorgFemaleEyeEntity*); +extern void (*const gUnk_080D1F7C[])(GyorgFemaleEyeEntity*); + +extern const u8 gUnk_080D2030[]; +extern const u8 gUnk_080D2010[]; + +void sub_08048D20(GyorgFemaleEyeEntity*); + +u32 sub_08048D70(Entity*); // GyorgFemaleEntity* + +void GyorgFemaleEye(Entity* this) { + if (this->parent->next == NULL) { + DeleteThisEntity(); + } + gUnk_080D1F64[GetNextFunction(this)]((GyorgFemaleEyeEntity*)this); +} + +void sub_080489B4(GyorgFemaleEyeEntity* this) { + gUnk_080D1F7C[super->action](this); +} + +void sub_080489CC(GyorgFemaleEyeEntity* this) { + Entity* parent; + if (super->health != 0xFF) { + parent = super->parent; +#ifndef EU + if ((parent->field_0x78.HALF.LO >> super->type) & 1) { +#endif + parent->field_0x7c.BYTES.byte0 |= (1 << super->type); +#ifndef EU + switch (super->bitfield & 0x7F) { + case 4 ... 6: + case 8 ... 13: + case 16 ... 18: + case 24 ... 26: +#endif + ((GyorgFemaleHeap*)parent->myHeap)->unk_18[super->type] = super->field_0x4c; + ((GyorgFemaleHeap*)parent->myHeap)->unk_38 = (gPlayerEntity.x.HALF.HI + super->x.HALF.HI) / 2; + ((GyorgFemaleHeap*)parent->myHeap)->unk_3a = (gPlayerEntity.y.HALF.HI + super->y.HALF.HI) / 2; + ((GyorgFemaleHeap*)parent->myHeap)->unk_3c = (super->knockbackDirection ^= 0x10); +#ifndef EU + break; + default: + ((GyorgFemaleHeap*)parent->myHeap)->unk_3c = 0xFF; + break; + } + } +#endif + } + super->health = 0xFF; + sub_0804AA30(super, (void (*const*)(Entity*))gUnk_080D1F64); +} + +void sub_08048AF0(GyorgFemaleEyeEntity* this) { + super->action = 1; + super->animationState = 0xFF; + super->spriteOrientation.flipY = 2; + super->spriteRendering.b3 = 2; + super->spritePriority.b0 = 7; + super->collisionLayer = 2; + sub_08048D20(this); +} + +void sub_08048B2C(GyorgFemaleEyeEntity* this) { + Entity* parent; + sub_08048D20(this); + parent = super->parent; + if (sub_08048D70(parent)) { + if (!super->spriteSettings.draw) { + CreateFx(super, 2, 0x40); + } + super->spriteSettings.draw = 1; + } else { + super->spriteSettings.draw = 0; + } + if ((parent->field_0x78.HALF.LO >> super->type) & 1) { + super->action = 2; + } +} + +void sub_08048B84(GyorgFemaleEyeEntity* this) { + GetNextFrame(super); + if (super->frame & 0x80) { + super->action = 3; + super->flags |= 0x80; + super->hitType = 0x1E; + } +} + +void sub_08048BB0(GyorgFemaleEyeEntity* this) { + Entity* parent = super->parent; + if (!((parent->field_0x78.HALF.LO >> super->type) & 1)) { + if (parent->health != 0) { + super->action = 4; + super->flags &= ~0x80; + InitializeAnimation(super, gUnk_080D2030[(super->animationState << 3) + super->type]); + } else { + super->action = 1; + super->flags &= ~0x80; + super->spriteSettings.draw = 0; + InitializeAnimation(super, gUnk_080D2010[(super->animationState << 3) + super->type]); + CreateFx(super, 2, 0x40); + } + } else { + if ((parent->field_0x80.HALF.LO >> super->type) & 1) { + if (super->animIndex <= 0x13) { + super->iframes = 0xF4; + super->hitType = 0x89; + InitializeAnimation(super, (parent->animationState >> 6) + 0x14); + SoundReq(0x119); + } + GetNextFrame(super); + if (super->frame & 0x80) { + super->hitType = 0x1E; + InitializeAnimation(super, gUnk_080D2010[(super->animationState << 3) + super->type]); + UpdateAnimationVariableFrames(super, 7); + parent->field_0x80.HALF.LO &= ~(1 << super->type); + } + } else { + if (parent->field_0x78.HALF.LO == 0xFF) { + u32 tmp = super->animIndex; + if (tmp < 0x10 || tmp > 0x13) { + InitializeAnimation(super, super->animationState + 0x10); + UpdateAnimationVariableFrames(super, Random() & 0x1C); + } + GetNextFrame(super); + } + } + } +} + +void sub_08048CEC(GyorgFemaleEyeEntity* this) { + GetNextFrame(super); + if (super->frame & 0x80) { + super->action = 1; + InitializeAnimation(super, gUnk_080D2010[(super->animationState << 3) + super->type]); + } +} + +typedef struct { + u16 x, y; +} xy; + +extern const xy gUnk_080D1F90[]; + +void sub_08048D20(GyorgFemaleEyeEntity* this) { + Entity* parent = super->parent; + const xy* tmp; + u32 tmp2 = (parent->animationState >> 6); + if (tmp2 != super->animationState) { + super->animationState = tmp2; + tmp = &gUnk_080D1F90[super->type + (tmp2 << 3)]; + super->x.HALF.HI = tmp->x + gRoomControls.roomOriginX; + super->y.HALF.HI = tmp->y + gRoomControls.roomOriginY; + InitializeAnimation(super, gUnk_080D2010[super->type + (tmp2 << 3)]); + } +} + +u32 sub_08048D70(Entity* parent) { + Entity* tmp; + if (parent->health != 0) { + return 1; + } + tmp = ((GyorgFemaleHeap*)parent->myHeap)->unk_08; + if (!tmp) { + tmp = ((GyorgFemaleHeap*)parent->myHeap)->unk_0c; + } + if (tmp->health != 0) { + return 0; + } + return 1; +} From 0f65f8fd5008d06defcfae6c9d66270ff45a8e49 Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 28 Dec 2021 12:08:30 -0800 Subject: [PATCH 056/168] Identify player functions and update asm.h --- asm/ambientClouds.s | 4 +- asm/armos.s | 2 +- asm/bird.s | 10 +- asm/blockPushed.s | 2 +- asm/bombarossa.s | 2 +- asm/bossDoor.s | 4 +- asm/chestSpawner.s | 2 +- asm/cloudPiranha.s | 2 +- asm/code_080043E8.s | 8 +- asm/code_08016984.s | 4 +- asm/code_0801967C.s | 2 +- asm/code_0804AA84.s | 4 +- asm/code_08077698.s | 4 +- asm/code_08078778.s | 36 +- asm/code_0807F0D8.s | 2 +- asm/code_080A29BC.s | 8 +- asm/code_080A5574.s | 2 +- asm/crenalBeanSprout.s | 2 +- asm/crow.s | 2 +- asm/cuccoAggr.s | 4 +- asm/deathFx.s | 2 +- asm/doubleBookshelf.s | 2 +- asm/dust.s | 2 +- asm/enemy50.s | 4 +- asm/figurineDevice.s | 2 +- asm/gleerok.s | 2 +- asm/gyorgBossObject.s | 2 +- asm/gyorgChild.s | 4 +- asm/lilypadLarge.s | 16 +- asm/loadRoomEntity.s | 2 +- asm/macroPlayer.s | 14 +- asm/minecart.s | 2 +- asm/minecartDoor.s | 4 +- asm/non_matching/eu/HandlePlayerLife.inc | 2 +- asm/non_matching/eu/sub_0802AC40.inc | 2 +- .../fallingBoulder/sub_0802C334.inc | 2 +- asm/non_matching/itemGustJar/sub_08076F64.inc | 4 +- .../itemMoleMitts/sub_080772A8.inc | 2 +- asm/non_matching/itemSword/sub_08075900.inc | 2 +- asm/non_matching/mazaal/sub_0803473C.inc | 2 +- asm/non_matching/mazaal/sub_080347B4.inc | 2 +- asm/non_matching/mazaal/sub_0803AA98.inc | 2 +- asm/non_matching/player/PlayerNormal.inc | 8 +- asm/non_matching/player/sub_08070DC4.inc | 8 +- asm/non_matching/player/sub_08072D54.inc | 10 +- asm/non_matching/player/sub_08073584.inc | 4 +- asm/non_matching/player/sub_080740D8.inc | 2 +- .../playerItem11/sub_08018E68.inc | 2 +- .../playerItem12/sub_080701F8.inc | 2 +- .../playerItem13/sub_080AD040.inc | 2 +- .../playerItem15/sub_080A310C.inc | 2 +- asm/non_matching/playerItem3/sub_0801B680.inc | 2 +- .../playerItemBow/sub_0801917C.inc | 2 +- asm/object10.s | 2 +- asm/object12.s | 2 +- asm/object20.s | 2 +- asm/object21.s | 2 +- asm/object35.s | 4 +- asm/object36.s | 2 +- asm/object43.s | 2 +- asm/object4B.s | 2 +- asm/object64.s | 2 +- asm/object67.s | 2 +- asm/object79.s | 2 +- asm/object91.s | 2 +- asm/object96.s | 2 +- asm/object97.s | 4 +- asm/object98.s | 2 +- asm/objectBlockingStairs.s | 4 +- asm/objectOnPillar.s | 2 +- asm/pullableLever.s | 2 +- asm/pullableMushroom.s | 4 +- asm/pushableFurniture.s | 2 +- asm/pushableGrave.s | 2 +- asm/pushableRock.s | 2 +- asm/pushableStatue.s | 2 +- asm/specialFx.s | 8 +- asm/steam.s | 2 +- asm/takkuri.s | 2 +- asm/whirlwind.s | 2 +- asm/wizzrobeWind.s | 2 +- .../cloudTops/script_PlayerAtSiroc.inc | 2 +- data/scripts/cutscene/ezlo/script_EzloCap.inc | 2 +- .../ezlo/script_Npc4EEzloCutscene.inc | 2 +- .../ezlo/script_PlayerDefeatedOctoroks.inc | 2 +- .../ezlo/script_PlayerEzloBeingBullied.inc | 2 +- .../cutscene/ezlo/script_PlayerGetEzloCap.inc | 2 +- .../cutscene/intro/script_PlayerIntro.inc | 2 +- .../intro/script_ZeldaTalkToSmith.inc | 2 +- .../introAssembly/script_PlayerEnters.inc | 2 +- .../introAssembly/script_PlayerGetSword.inc | 2 +- .../script_PlayerWakingUpInHyruleCastle.inc | 2 +- .../script_PlayerAtIntroBusinessScrub4.inc | 2 +- .../script_PlayerIntroBusinessScrub1.inc | 2 +- .../script_PlayerIntroBusinessScrub2.inc | 2 +- .../script_PlayerIntroBusinessScrub3.inc | 2 +- .../introCeremony/script_Npc4EMonsters.inc | 2 +- .../script_Npc4EVaatiAttacking.inc | 2 +- .../script_PlayerAtIntroCeremony.inc | 2 +- .../introCeremony/script_PlayerFainting.inc | 2 +- .../script_PlayerIntroCastle.inc | 2 +- .../script_PlayerProtectingZelda.inc | 2 +- .../introTown/script_Npc4EIntroTown.inc | 2 +- .../introTown/script_PlayerIntro1.inc | 2 +- .../introTown/script_PlayerIntro2.inc | 2 +- .../introTown/script_PlayerIntro3.inc | 2 +- .../introTown/script_PlayerIntro4.inc | 2 +- .../introTown/script_PlayerIntro5.inc | 2 +- .../introTown/script_PlayerIntroTown.inc | 2 +- .../script_PlayerAtFirstKinstone.inc | 2 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone1.inc | 2 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone2.inc | 2 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone3.inc | 2 +- ...pt_PlayerAtHurdyGurdyManFirstKinstone4.inc | 2 +- .../script_PlayerAtVillageIntro.inc | 2 +- .../script_PlayerAtVaatisAppearance.inc | 2 +- .../script_PlayerDefeatedMoblins.inc | 2 +- .../script_PlayerReceivedExposition.inc | 2 +- .../script_PlayerSeenOriginStory.inc | 2 +- .../script_PlayerStoneWallsAppear.inc | 2 +- .../script_PlayerTryToFollowVaati.inc | 2 +- .../cutscene/outro/script_PlayerAtEzlo.inc | 2 +- .../cutscene/outro/script_PlayerAtOutro.inc | 2 +- .../outro/script_PlayerGetGreenCap.inc | 2 +- .../outro/script_PlayerSayGoodbye.inc | 2 +- .../reveal/script_PlayerAtPicture.inc | 2 +- .../reveal/script_PlayerDistanceFromVaati.inc | 2 +- .../reveal/script_PlayerFaintAgain.inc | 2 +- .../reveal/script_PlayerMoveToPicture.inc | 2 +- .../takeover/script_PlayerAtTakeover.inc | 2 +- .../dhc/script_PlayerAfterDefeatingV2.inc | 2 +- data/scripts/dhc/script_PlayerAtDarkNut1.inc | 2 +- data/scripts/dhc/script_PlayerAtDarkNut2.inc | 2 +- data/scripts/dhc/script_PlayerAtDarkNut3.inc | 2 +- .../dhc/script_PlayerCastleCollapsing.inc | 2 +- .../scripts/dhc/script_PlayerCastleEscape.inc | 2 +- .../scripts/dhc/script_PlayerRescuedZelda.inc | 2 +- data/scripts/dhc/script_PlayerStonesFall.inc | 2 +- data/scripts/dhc/script_PlayerV2Defeated.inc | 2 +- .../script_PlayerAtGraveyardHouseDoor.inc | 2 +- .../graveyard/script_PlayerAtKingGustav.inc | 2 +- .../graveyard/script_PlayerGetKeyStolen.inc | 2 +- data/scripts/hyruleTown/script_Anju.inc | 2 +- .../script_PlayerActivatedTrapCard.inc | 2 +- .../hyruleTown/script_PlayerAtDrLeftDoor.inc | 2 +- .../hyruleTown/script_PlayerAtInnDoor.inc | 2 +- .../hyruleTown/script_PlayerCannotEnter.inc | 2 +- .../hyruleTown/script_PlayerSleepingInn.inc | 2 +- .../hyruleTown/script_PlayerStepOnTrap.inc | 2 +- .../scripts/hyruleTown/script_TownMinish5.inc | 2 +- .../lakeHylia/script_PlayerAfterToD.inc | 2 +- .../minishWoods/script_PlayerAtBombMinish.inc | 2 +- .../minishWoods/script_PlayerAtFestari.inc | 2 +- .../minishWoods/script_PlayerAtGentari.inc | 2 +- .../script_PlayerAtMadderpillar.inc | 2 +- .../mtCrenel/script_PlayerAtMelari.inc | 2 +- .../script_PlayerAtMountainMinishExit.inc | 2 +- .../mtCrenel/script_PlayerGetWhiteSword.inc | 2 +- .../script_PlayerPlaceBrokenSword.inc | 2 +- .../npc/script_PlayerAtBladeBrothers.inc | 2 +- .../sanctuary/script_Npc4EThirdSanctuary.inc | 2 +- .../sanctuary/script_PlayerAtPedestal.inc | 2 +- .../script_PlayerAtSanctuaryEntrance.inc | 2 +- .../script_PlayerPickUpFinalSword.inc | 2 +- .../sanctuary/script_PlayerPickUpSword.inc | 2 +- .../sanctuary/script_PlayerSanctuary.inc | 2 +- .../sanctuary/script_PlayerSanctuaryIntro.inc | 2 +- .../script_PlayerTextBoardAppears.inc | 2 +- data/scripts/unused/script_0800FB2C.inc | 2 +- data/scripts/unused/script_08012B24.inc | 2 +- data/scripts/unused/script_08012B50.inc | 2 +- data/scripts/unused/script_08012B7C.inc | 2 +- data/scripts/unused/script_08013D04.inc | 2 +- data/scripts/unused/script_08013D44.inc | 2 +- data/scripts/unused/script_08013D84.inc | 2 +- data/scripts/unused/script_08013DC4.inc | 2 +- data/scripts/unused/script_08015A7C.inc | 2 +- data/scripts/unused/script_08015AA0.inc | 2 +- .../windRuins/script_PlayerAtTextboard.inc | 2 +- include/asm.h | 19 +- include/coord.h | 2 +- include/functions.h | 23 +- include/overworld.h | 4 +- include/player.h | 22 +- include/room.h | 2 +- include/save.h | 2 + src/audio.c | 6 +- src/code_0805436C.c | 22 +- src/code_0805F9A0.c | 1 + src/code_08077B98.c | 1 - src/code_0807CC3C.c | 5 - src/code_0808091C.c | 3 +- src/code_080A29BC.c | 1 - src/collision.c | 3 +- src/coord.c | 4 +- src/debugScreen.c | 1 - src/enemy.c | 1 - src/enemy/acroBandits.c | 5 +- src/enemy/beetle.c | 2 +- src/enemy/bladeTrap.c | 3 +- src/enemy/bombPeahat.c | 3 +- src/enemy/businessScrub.c | 6 +- src/enemy/chaser.c | 1 - src/enemy/chuchu.c | 2 - src/enemy/chuchuBoss.c | 2 - src/enemy/doorMimic.c | 2 - src/enemy/enemyE.c | 1 - src/enemy/fallingBoulder.c | 2 +- src/enemy/fireballGuy.c | 2 - src/enemy/gyorgMale.c | 1 - src/enemy/hangingSeed.c | 1 - src/enemy/lakituCloud.c | 2 +- src/enemy/madderpillar.c | 1 - src/enemy/mazaalBracelet.c | 31 +- src/enemy/mazaalHand.c | 1 - src/enemy/mazaalHead.c | 10 +- src/enemy/moldorm.c | 1 - src/enemy/moldworm.c | 1 - src/enemy/octorokBoss.c | 15 +- src/enemy/peahat.c | 2 +- src/enemy/pesto.c | 1 - src/enemy/ropeGolden.c | 3 - src/enemy/rupeeLike.c | 4 +- src/enemy/sensorBladeTrap.c | 2 - src/enemy/slime.c | 2 - src/enemy/smallPesto.c | 2 +- src/enemy/spark.c | 2 - src/enemy/treeItem.c | 2 - src/enemy/vaatiArm.c | 3 - src/enemy/vaatiBall.c | 32 +- src/enemy/vaatiEyesMacro.c | 2 - src/enemy/vaatiProjectile.c | 5 +- src/enemy/vaatiRebornEnemy.c | 1 - src/enemy/vaatiTransfigured.c | 3 +- src/enemy/vaatiTransfiguredEye.c | 1 - src/enemy/vaatiWrath.c | 11 +- src/enemy/vaatiWrathEye.c | 3 +- src/enemy/wallMaster2.c | 6 +- src/enemy/waterDrop.c | 3 +- src/entity.c | 21 - src/ezloNag.c | 1 - src/fade.c | 1 - src/fileScreen.c | 1 - src/flagDebug.c | 2 - src/flags.c | 4 +- src/gba/m4a.c | 1 - src/interrupts.c | 12 +- src/intro.c | 2 - src/item/itemBoomerang.c | 2 - src/item/itemJarEmpty.c | 1 - src/item/itemMoleMitts.c | 4 +- src/item/itemOcarina.c | 2 - src/item/itemRocsCape.c | 2 - src/item/itemSword.c | 2 +- src/main.c | 2 - src/manager/manager10.c | 3 +- src/manager/manager11.c | 1 - src/manager/manager12.c | 3 +- src/manager/manager14.c | 2 - src/manager/manager19.c | 1 - src/manager/manager1A.c | 1 - src/manager/manager1E.c | 2 +- src/manager/manager2.c | 2 - src/manager/manager20.c | 2 - src/manager/manager21.c | 3 +- src/manager/manager24.c | 2 - src/manager/manager25.c | 1 + src/manager/manager26.c | 2 - src/manager/manager28.c | 2 - src/manager/manager2A.c | 2 +- src/manager/manager2B.c | 5 +- src/manager/manager2C.c | 1 + src/manager/manager2D.c | 1 + src/manager/manager3.c | 1 - src/manager/manager30.c | 1 + src/manager/manager31.c | 1 - src/manager/manager32.c | 1 - src/manager/manager35.c | 6 +- src/manager/manager36.c | 1 - src/manager/manager39.c | 1 - src/manager/manager4.c | 1 + src/manager/manager6.c | 1 + src/manager/manager7.c | 4 +- src/manager/manager8.c | 2 - src/manager/managerA.c | 3 +- src/manager/managerB.c | 5 - src/manager/managerE.c | 1 - src/manager/managerF.c | 3 - src/npc/anju.c | 2 - src/npc/beedle.c | 1 - src/npc/bigGoron.c | 1 - src/npc/bladeBrothers.c | 7 - src/npc/brocco.c | 1 - src/npc/carlov.c | 2 - src/npc/carpenter.c | 4 - src/npc/castleMaid.c | 1 - src/npc/cat.c | 10 +- src/npc/cow.c | 2 +- src/npc/cucco.c | 2 +- src/npc/cuccoChick.c | 2 +- src/npc/dampe.c | 2 - src/npc/din.c | 3 - src/npc/dog.c | 3 +- src/npc/drLeft.c | 1 - src/npc/emma.c | 1 - src/npc/epona.c | 3 +- src/npc/ezlo.c | 1 - src/npc/farore.c | 5 - src/npc/festari.c | 7 - src/npc/forestMinish.c | 2 - src/npc/gentari.c | 3 - src/npc/ghostBrothers.c | 3 - src/npc/gina.c | 3 - src/npc/goron.c | 1 - src/npc/goronMerchant.c | 3 - src/npc/gregal.c | 2 - src/npc/guard.c | 5 - src/npc/hurdyGurdyMan.c | 2 - src/npc/kid.c | 5 - src/npc/kingDaltus.c | 2 - src/npc/kingGustaf.c | 1 - src/npc/librari.c | 4 - src/npc/mailbox.c | 1 - src/npc/malon.c | 1 - src/npc/mama.c | 1 - src/npc/marcy.c | 1 - src/npc/mayorHagen.c | 4 - src/npc/milkCart.c | 2 - src/npc/minishEzlo.c | 1 - src/npc/ministerPotho.c | 2 - src/npc/moblinLady.c | 2 - src/npc/mountainMinish.c | 2 - src/npc/mutoh.c | 4 - src/npc/nayru.c | 5 - src/npc/npc23.c | 2 - src/npc/npc26.c | 2 - src/npc/npc4E.c | 3 - src/npc/npc5.c | 11 +- src/npc/npc58.c | 1 - src/npc/npc9.c | 1 - src/npc/percy.c | 9 - src/npc/pina.c | 1 - src/npc/pita.c | 1 + src/npc/postman.c | 12 - src/npc/smith.c | 4 - src/npc/stamp.c | 1 - src/npc/sturgeon.c | 3 - src/npc/talon.c | 2 +- src/npc/teachers.c | 1 - src/npc/tingleSiblings.c | 2 - src/npc/townMinish.c | 6 - src/npc/townsperson.c | 1 - src/npc/vaati.c | 1 - src/npc/vaatiReborn.c | 4 - src/npc/wheaton.c | 1 - src/npc/windTribespeople.c | 8 - src/npc/zelda.c | 3 - src/npc/zeldaFollower.c | 1 - src/npcDefinitions.c | 10 +- src/npcUtils.c | 5 +- src/object.c | 2 - src/object/archway.c | 1 - src/object/backgroundCloud.c | 3 +- src/object/bigVortex.c | 1 - src/object/bird.c | 2 +- src/object/book.c | 3 +- src/object/button.c | 1 - src/object/cloud.c | 6 +- src/object/fileScreenObjects.c | 4 +- src/object/fireplace.c | 3 +- src/object/greatFairy.c | 9 +- src/object/heartContainer.c | 1 - src/object/hiddenLadderDown.c | 2 +- src/object/itemOnGround.c | 37 +- src/object/lightableSwitch.c | 3 +- src/object/lockedDoor.c | 6 +- src/object/mask.c | 1 - src/object/metalDoor.c | 5 +- src/object/minecart.c | 4 +- src/object/minishLight.c | 1 - src/object/minishSizedArchway.c | 1 - src/object/object1D.c | 1 - src/object/object49.c | 1 - src/object/object6A.c | 2 +- src/object/object86.c | 2 - src/object/objectA2.c | 2 +- src/object/objectA8.c | 1 - src/object/objectB2.c | 2 +- src/object/octorokBossObject.c | 2 +- src/object/pinwheel.c | 2 - src/object/pot.c | 5 +- src/object/railtrack.c | 1 + src/object/smoke.c | 2 +- src/object/treeHidingPortal.c | 1 - src/object/warpPoint.c | 6 +- src/object/well.c | 1 + src/object/windcrest.c | 1 - src/objectUtils.c | 1 - src/overworld.c | 14 +- src/player.c | 379 ++++++++++-------- src/playerItem/playerItem12.c | 2 +- src/playerItem/playerItem14.c | 6 +- src/playerItem/playerItem15.c | 2 +- src/playerItem/playerItem3.c | 2 +- src/playerItem/playerItemBow.c | 2 +- src/playerItem/playerItemSwordBeam.c | 4 +- src/playerItemUtils.c | 2 +- src/projectile.c | 2 +- src/projectile/arrowProjectile.c | 3 +- src/projectile/ballAndChain.c | 1 - src/projectile/boneProjectile.c | 4 +- src/projectile/cannonballProjectile.c | 2 - src/projectile/dekuSeedProjectile.c | 2 - src/projectile/dirtBallProjectile.c | 1 - src/projectile/fireProjectile.c | 1 - src/projectile/gleerokProjectile.c | 7 +- src/projectile/guardLineOfSight.c | 2 +- src/projectile/guruguruBarProjectile.c | 1 - src/projectile/gyorgMaleEnergyProjectile.c | 1 - src/projectile/iceProjectile.c | 1 - src/projectile/lakituCloudProjectile.c | 2 - src/projectile/lakituLightning.c | 1 - src/projectile/mandiblesProjectile.c | 4 +- src/projectile/octorokBossProjectile.c | 3 - src/projectile/removableDust.c | 2 - src/projectile/rockProjectile.c | 2 +- src/projectile/spiderWeb.c | 2 - src/projectile/stalfosProjectile.c | 1 - src/projectile/torchTrapProjectile.c | 2 +- src/projectile/v1DarkMagicProjectile.c | 4 +- src/projectile/v1FireProjectile.c | 4 +- src/projectile/v2Projectile.c | 5 +- src/projectile/v3ElectricProjectile.c | 2 - src/projectile/v3HandProjectile.c | 1 - src/projectile/v3TennisBallProjectile.c | 3 - src/projectile/windProjectile.c | 1 - src/room.c | 6 +- src/roomInit.c | 6 - src/script.c | 14 +- src/sub_0807CA18.c | 2 - src/sub_080A3B84.c | 1 - src/textbox.c | 3 +- 442 files changed, 697 insertions(+), 1092 deletions(-) diff --git a/asm/ambientClouds.s b/asm/ambientClouds.s index 05a600c8..7f2964f3 100644 --- a/asm/ambientClouds.s +++ b/asm/ambientClouds.s @@ -116,7 +116,7 @@ _0808921C: movs r0, #1 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A30 + bl ResolveCollisionLayer adds r0, r4, #0 movs r1, #0x15 bl ChangeObjPalette @@ -222,7 +222,7 @@ _0808991A: movs r0, #1 strb r0, [r5] adds r0, r4, #0 - bl sub_08016A30 + bl ResolveCollisionLayer adds r0, r4, #0 movs r1, #0x15 bl ChangeObjPalette diff --git a/asm/armos.s b/asm/armos.s index 330f8177..6063bff6 100644 --- a/asm/armos.s +++ b/asm/armos.s @@ -459,7 +459,7 @@ _080304F0: sub_080304F4: @ 0x080304F4 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl sub_080309A8 ldrb r0, [r4, #0xe] diff --git a/asm/bird.s b/asm/bird.s index e61da353..caa3c21b 100644 --- a/asm/bird.s +++ b/asm/bird.s @@ -196,7 +196,7 @@ _0809D2D6: strh r0, [r1] bl sub_08079184 bl sub_08078B48 - bl sub_080791D0 + bl ResetPlayerAnimationAndAction bl sub_08077B20 adds r0, r7, #0 adds r0, #0x26 @@ -220,7 +220,7 @@ _0809D2D6: strb r3, [r0] _0809D3A8: adds r0, r5, #0 - bl sub_0806F69C + bl LinearMoveUpdate mov r0, r8 movs r2, #0 ldrsh r1, [r0, r2] @@ -499,7 +499,7 @@ _0809D5E6: movs r1, #1 orrs r0, r1 strb r0, [r6, #0x18] - bl sub_080791D0 + bl ResetPlayerAnimationAndAction bl ResetPlayerEventPriority ldr r1, _0809D664 @ =gUnk_02034490 movs r0, #0 @@ -524,7 +524,7 @@ _0809D5E6: bl SetGlobalFlag _0809D62E: adds r0, r5, #0 - bl sub_0806F69C + bl LinearMoveUpdate movs r0, #0 ldrsh r1, [r7, r0] adds r0, r5, #0 @@ -692,7 +692,7 @@ _0809D76C: _0809D774: .4byte gRoomControls _0809D778: .4byte gUnk_02034490 _0809D77C: - bl sub_080791D0 + bl ResetPlayerAnimationAndAction _0809D780: pop {r4, pc} .align 2, 0 diff --git a/asm/blockPushed.s b/asm/blockPushed.s index 86af1cfc..1ff53891 100644 --- a/asm/blockPushed.s +++ b/asm/blockPushed.s @@ -243,7 +243,7 @@ _08083090: .4byte 0x0000010F sub_08083094: @ 0x08083094 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl sub_0800445C ldrb r0, [r4, #0xe] diff --git a/asm/bombarossa.s b/asm/bombarossa.s index d368a07e..4f8eb98b 100644 --- a/asm/bombarossa.s +++ b/asm/bombarossa.s @@ -162,7 +162,7 @@ sub_0803350C: @ 0x0803350C cmp r0, #0 bne _08033520 adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate _08033520: adds r2, r4, #0 adds r2, #0x76 diff --git a/asm/bossDoor.s b/asm/bossDoor.s index 027cf905..44e5991b 100644 --- a/asm/bossDoor.s +++ b/asm/bossDoor.s @@ -221,7 +221,7 @@ _0808C382: sub_0808C384: @ 0x0808C384 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] @@ -296,7 +296,7 @@ _0808C410: .4byte gUnk_081214F4 sub_0808C414: @ 0x0808C414 push {r4, r5, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] diff --git a/asm/chestSpawner.s b/asm/chestSpawner.s index 4fac73dc..24092230 100644 --- a/asm/chestSpawner.s +++ b/asm/chestSpawner.s @@ -371,7 +371,7 @@ sub_080840A8: @ 0x080840A8 ldr r0, _08084148 @ =0x0000FFF8 strh r0, [r5, #0x36] adds r0, r5, #0 - bl sub_08016A30 + bl ResolveCollisionLayer adds r0, r5, #0 movs r1, #0x11 movs r2, #0 diff --git a/asm/cloudPiranha.s b/asm/cloudPiranha.s index b5829666..b85843df 100644 --- a/asm/cloudPiranha.s +++ b/asm/cloudPiranha.s @@ -607,6 +607,6 @@ _080388A8: subs r0, #1 strb r0, [r1] adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate _080388B2: pop {r4, r5, r6, pc} diff --git a/asm/code_080043E8.s b/asm/code_080043E8.s index 817ddf9a..45fe77b4 100644 --- a/asm/code_080043E8.s +++ b/asm/code_080043E8.s @@ -179,9 +179,9 @@ sub_0800451C: @ 0x0800451C cmp r1, #0xb beq sub_08004542 cmp r1, #0xa - beq sub_0800455E + beq ResetCollisionLayer cmp r1, #9 - beq sub_0800455E + beq ResetCollisionLayer cmp r1, #0x26 beq _0800457A cmp r1, #0x27 @@ -205,8 +205,8 @@ sub_08004542: @ 0x08004542 strb r1, [r0, #0x19] bx lr - non_word_aligned_thumb_func_start sub_0800455E -sub_0800455E: @ 0x0800455E + non_word_aligned_thumb_func_start ResetCollisionLayer +ResetCollisionLayer: @ 0x0800455E movs r1, #0x38 movs r2, #1 strb r2, [r0, r1] diff --git a/asm/code_08016984.s b/asm/code_08016984.s index 4b58a45b..79a75172 100644 --- a/asm/code_08016984.s +++ b/asm/code_08016984.s @@ -69,8 +69,8 @@ UpdateSpriteForCollisionLayer: @ 0x08016A04 _08016A28: .byte 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40 - thumb_func_start sub_08016A30 -sub_08016A30: @ 0x08016A30 + thumb_func_start ResolveCollisionLayer +ResolveCollisionLayer: @ 0x08016A30 push {r4, r5, lr} adds r4, r0, #0 movs r5, #0x38 diff --git a/asm/code_0801967C.s b/asm/code_0801967C.s index 27351a84..47feec01 100644 --- a/asm/code_0801967C.s +++ b/asm/code_0801967C.s @@ -3099,7 +3099,7 @@ sub_0801AD6C: @ 0x0801AD6C adds r0, #0x38 strb r3, [r0] adds r0, r5, #0 - bl sub_08016A30 + bl ResolveCollisionLayer ldr r1, _0801ADD8 @ =gUnk_081091E4 ldrb r0, [r5, #8] adds r0, r0, r1 diff --git a/asm/code_0804AA84.s b/asm/code_0804AA84.s index 4dda3c9a..0f934d58 100644 --- a/asm/code_0804AA84.s +++ b/asm/code_0804AA84.s @@ -187,8 +187,8 @@ _0804ACEC: .4byte gFadeControl _0804ACF0: .4byte gArea _0804ACF4: .4byte gUnk_02032EDC - thumb_func_start sub_0804ACF8 -sub_0804ACF8: @ 0x0804ACF8 + thumb_func_start RespawnAsMinish +RespawnAsMinish: @ 0x0804ACF8 push {lr} bl sub_0804AD18 cmp r0, #0 diff --git a/asm/code_08077698.s b/asm/code_08077698.s index 82a5c161..4203ca77 100644 --- a/asm/code_08077698.s +++ b/asm/code_08077698.s @@ -137,7 +137,7 @@ sub_08077758: @ 0x08077758 .align 2, 0 _08077794: .4byte gPlayerState _08077798: - bl sub_0807A108 + bl DeleteClones _0807779C: movs r0, #0 _0807779E: @@ -165,7 +165,7 @@ sub_080777A0: @ 0x080777A0 adds r1, #0xa0 movs r0, #1 strb r0, [r1] - bl sub_0807A108 + bl DeleteClones _080777CC: movs r0, #1 b _0807787C diff --git a/asm/code_08078778.s b/asm/code_08078778.s index 61f876d3..ebd35258 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -391,7 +391,7 @@ sub_08078AF0: @ 0x08078AF0 movs r1, #2 orrs r0, r1 strb r0, [r2, #0x11] - bl sub_0807A108 + bl DeleteClones pop {r4, pc} .align 2, 0 _08078B40: .4byte gPlayerState @@ -1239,7 +1239,7 @@ sub_0807919C: @ 0x0807919C ands r0, r1 cmp r0, #0 bne _080791B4 - bl sub_080791BC + bl SetPlayerActionNormal b _080791B8 .align 2, 0 _080791B0: .4byte gPlayerState @@ -1249,8 +1249,8 @@ _080791B8: pop {pc} .align 2, 0 - thumb_func_start sub_080791BC -sub_080791BC: @ 0x080791BC + thumb_func_start SetPlayerActionNormal +SetPlayerActionNormal: @ 0x080791BC ldr r0, _080791CC @ =gPlayerEntity movs r2, #0 movs r1, #1 @@ -1261,8 +1261,8 @@ sub_080791BC: @ 0x080791BC .align 2, 0 _080791CC: .4byte gPlayerEntity - thumb_func_start sub_080791D0 -sub_080791D0: @ 0x080791D0 + thumb_func_start ResetPlayerAnimationAndAction +ResetPlayerAnimationAndAction: @ 0x080791D0 push {lr} ldr r3, _0807920C @ =gPlayerState ldr r0, [r3, #0x30] @@ -1318,8 +1318,8 @@ sub_0807921C: @ 0x0807921C ldr r1, _08079254 @ =0xFECBF6FA ands r0, r1 str r0, [r2, #0x30] - bl sub_08079938 - bl sub_080791BC + bl ResolvePlayerAnimation + bl SetPlayerActionNormal adds r0, r4, #0 bl sub_0805E374 pop {r4, pc} @@ -2248,8 +2248,8 @@ _0807992E: _08079930: .4byte gPlayerState _08079934: .4byte gPlayerEntity - thumb_func_start sub_08079938 -sub_08079938: @ 0x08079938 + thumb_func_start ResolvePlayerAnimation +ResolvePlayerAnimation: @ 0x08079938 push {r4, lr} ldr r3, _08079954 @ =gPlayerState ldr r2, [r3, #0x30] @@ -2865,8 +2865,8 @@ _08079DFC: .4byte gPlayerEntity _08079E00: .4byte gPlayerState _08079E04: .4byte 0x00000193 - thumb_func_start sub_08079E08 -sub_08079E08: @ 0x08079E08 + thumb_func_start UpdatePlayerMovement +UpdatePlayerMovement: @ 0x08079E08 push {r4, lr} ldr r0, _08079E50 @ =gPlayerEntity ldrh r2, [r0, #0x24] @@ -3279,8 +3279,8 @@ _0807A104: adds r0, r2, #0 pop {r4, r5, pc} - thumb_func_start sub_0807A108 -sub_0807A108: @ 0x0807A108 + thumb_func_start DeleteClones +DeleteClones: @ 0x0807A108 push {lr} ldr r1, _0807A148 @ =gPlayerClones movs r0, #0 @@ -5131,8 +5131,8 @@ _0807AEDE: .align 2, 0 _0807AEE0: .4byte gScreenTransition - thumb_func_start sub_0807AEE4 -sub_0807AEE4: @ 0x0807AEE4 + thumb_func_start UpdatePlayerSkills +UpdatePlayerSkills: @ 0x0807AEE4 push {r4, lr} ldr r0, _0807AFE4 @ =gPlayerState adds r4, r0, #0 @@ -5471,7 +5471,7 @@ sub_0807B144: @ 0x0807B144 ldr r1, _0807B170 @ =gPlayerState movs r0, #0x81 strb r0, [r1, #2] - bl sub_080791BC + bl SetPlayerActionNormal pop {pc} .align 2, 0 _0807B170: .4byte gPlayerState @@ -5501,7 +5501,7 @@ sub_0807B178: @ 0x0807B178 ldr r1, _0807B1A4 @ =gPlayerState movs r0, #0x81 strb r0, [r1, #2] - bl sub_080791BC + bl SetPlayerActionNormal pop {pc} .align 2, 0 _0807B1A4: .4byte gPlayerState diff --git a/asm/code_0807F0D8.s b/asm/code_0807F0D8.s index 78ccdd83..6a767881 100644 --- a/asm/code_0807F0D8.s +++ b/asm/code_0807F0D8.s @@ -485,7 +485,7 @@ sub_0807FF6C: @ 0x0807FF6C adds r0, #4 strh r1, [r0] bl ResetPlayer - bl sub_080791D0 + bl ResetPlayerAnimationAndAction ldr r0, _0807FFCC @ =gUnk_03004030 ldrb r0, [r0, #8] cmp r0, #0 diff --git a/asm/code_080A29BC.s b/asm/code_080A29BC.s index 63d65add..67edbaa6 100644 --- a/asm/code_080A29BC.s +++ b/asm/code_080A29BC.s @@ -211,7 +211,7 @@ _080A2C04: _080A2C0E: ldrh r5, [r4, #0x32] adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrh r1, [r4, #0x32] lsls r0, r5, #0x10 asrs r0, r0, #0x10 @@ -232,7 +232,7 @@ _080A2C38: .4byte gPlayerEntity _080A2C3C: ldrh r5, [r4, #0x2e] adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrh r1, [r4, #0x2e] lsls r0, r5, #0x10 asrs r0, r0, #0x10 @@ -253,7 +253,7 @@ _080A2C64: .4byte gPlayerEntity _080A2C68: ldrh r5, [r4, #0x32] adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrh r1, [r4, #0x32] lsls r0, r5, #0x10 asrs r0, r0, #0x10 @@ -274,7 +274,7 @@ _080A2C90: .4byte gPlayerEntity _080A2C94: ldrh r5, [r4, #0x2e] adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrh r1, [r4, #0x2e] lsls r0, r5, #0x10 asrs r0, r0, #0x10 diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index cd023366..e62c568e 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -4234,7 +4234,7 @@ sub_080A6DF8: @ 0x080A6DF8 .align 2, 0 _080A6E14: .4byte gMenu _080A6E18: - bl sub_080791D0 + bl ResetPlayerAnimationAndAction ldr r0, _080A6E3C @ =gPlayerEntity adds r1, r0, #0 adds r1, #0x58 diff --git a/asm/crenalBeanSprout.s b/asm/crenalBeanSprout.s index 19ed952e..8d5406c2 100644 --- a/asm/crenalBeanSprout.s +++ b/asm/crenalBeanSprout.s @@ -643,7 +643,7 @@ _08096802: bl sub_080045D4 strb r0, [r4, #0x15] adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate _0809681C: movs r1, #0x80 lsls r1, r1, #7 diff --git a/asm/crow.s b/asm/crow.s index 58f659f5..eb0bc34a 100644 --- a/asm/crow.s +++ b/asm/crow.s @@ -431,7 +431,7 @@ sub_08032AF4: @ 0x08032AF4 sub_08032B10: @ 0x08032B10 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r1, r4, #0 adds r1, #0x38 movs r0, #3 diff --git a/asm/cuccoAggr.s b/asm/cuccoAggr.s index 612b0979..b835dfb4 100644 --- a/asm/cuccoAggr.s +++ b/asm/cuccoAggr.s @@ -430,7 +430,7 @@ _08038FE0: adds r0, r4, #0 bl sub_080390F8 adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl GetNextFrame b _08039018 @@ -439,7 +439,7 @@ _08038FF4: .4byte 0x0000FFFF _08038FF8: .4byte gPlayerEntity _08038FFC: adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl GetNextFrame adds r0, r4, #0 diff --git a/asm/deathFx.s b/asm/deathFx.s index ef4a1b39..2cd620db 100644 --- a/asm/deathFx.s +++ b/asm/deathFx.s @@ -190,7 +190,7 @@ _0808177E: cmp r0, #0 beq _0808178C adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate _0808178C: pop {r4, pc} .align 2, 0 diff --git a/asm/doubleBookshelf.s b/asm/doubleBookshelf.s index aa06fe22..1fdaa0d4 100644 --- a/asm/doubleBookshelf.s +++ b/asm/doubleBookshelf.s @@ -136,7 +136,7 @@ sub_0809B034: @ 0x0809B034 sub_0809B050: @ 0x0809B050 push {r4, r5, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] diff --git a/asm/dust.s b/asm/dust.s index 300a0f74..f4ed6e55 100644 --- a/asm/dust.s +++ b/asm/dust.s @@ -633,7 +633,7 @@ _08044570: bl sub_080045D4 strb r0, [r6, #0x15] adds r0, r6, #0 - bl sub_0806F69C + bl LinearMoveUpdate b _080445BE .align 2, 0 _080445A8: .4byte gPlayerState diff --git a/asm/enemy50.s b/asm/enemy50.s index d43aaafe..a586a922 100644 --- a/asm/enemy50.s +++ b/asm/enemy50.s @@ -1050,7 +1050,7 @@ _08041250: adds r1, #1 strb r0, [r1] adds r0, r2, #0 - bl sub_08016A30 + bl ResolveCollisionLayer adds r6, #2 movs r0, #6 ands r6, r0 @@ -1077,7 +1077,7 @@ _080412C8: adds r0, #0x38 strb r3, [r0] adds r0, r4, #0 - bl sub_08016A30 + bl ResolveCollisionLayer pop {r3, r4, r5} mov r8, r3 mov sb, r4 diff --git a/asm/figurineDevice.s b/asm/figurineDevice.s index 988d7aac..c321c27d 100644 --- a/asm/figurineDevice.s +++ b/asm/figurineDevice.s @@ -167,7 +167,7 @@ _08087CCA: beq _08087D1A movs r0, #0 strb r0, [r1] - bl sub_080791D0 + bl ResetPlayerAnimationAndAction movs r0, #0x5e bl CheckLocalFlag cmp r0, #0 diff --git a/asm/gleerok.s b/asm/gleerok.s index 2ba8ead0..bd9d72e9 100644 --- a/asm/gleerok.s +++ b/asm/gleerok.s @@ -2883,7 +2883,7 @@ _0802E552: lsls r0, r0, #8 strh r0, [r1, #0x24] ldr r0, [r2, #0x3c] - bl sub_0806F69C + bl LinearMoveUpdate movs r6, #0 movs r0, #0x3c add r0, sb diff --git a/asm/gyorgBossObject.s b/asm/gyorgBossObject.s index 99359f15..92dafc65 100644 --- a/asm/gyorgBossObject.s +++ b/asm/gyorgBossObject.s @@ -808,7 +808,7 @@ sub_080A1C04: @ 0x080A1C04 cmp r0, #0 bne _080A1C52 adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl sub_080A1E54 ldrb r0, [r4, #0xf] diff --git a/asm/gyorgChild.s b/asm/gyorgChild.s index c812d0ff..44b4fa64 100644 --- a/asm/gyorgChild.s +++ b/asm/gyorgChild.s @@ -181,7 +181,7 @@ _0804877A: sub_0804877C: @ 0x0804877C push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] cmp r0, #0 beq _080487AA @@ -387,7 +387,7 @@ _08048900: .4byte gPlayerEntity sub_08048904: @ 0x08048904 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl GetNextFrame ldrb r0, [r4, #0x14] diff --git a/asm/lilypadLarge.s b/asm/lilypadLarge.s index 045a9be9..e2e96fc6 100644 --- a/asm/lilypadLarge.s +++ b/asm/lilypadLarge.s @@ -183,7 +183,7 @@ _08085634: cmp r0, #1 bne _08085654 adds r0, r6, #0 - bl sub_0800455E + bl ResetCollisionLayer b _0808565A .align 2, 0 _0808564C: .4byte gPlayerEntity @@ -768,7 +768,7 @@ sub_08085A98: @ 0x08085A98 adds r4, r0, #0 bl sub_08085EFC adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl sub_08085F1C ldr r1, [r4, #0x78] @@ -901,14 +901,14 @@ _08085BAE: b _08085BE8 _08085BB4: adds r0, r5, #0 - bl sub_0800455E + bl ResetCollisionLayer adds r0, r5, #0 bl sub_080002B8 cmp r0, #0xd bne _08085BE8 ldr r4, _08085C50 @ =gPlayerEntity adds r0, r4, #0 - bl sub_0800455E + bl ResetCollisionLayer adds r0, r5, #0 bl sub_08085CDC adds r0, r4, #0 @@ -934,7 +934,7 @@ _08085BE8: cmp r0, #0 bne _08085C58 adds r0, r4, #0 - bl sub_0800455E + bl ResetCollisionLayer adds r0, r5, #0 bl sub_08085F1C movs r0, #1 @@ -988,13 +988,13 @@ sub_08085C5C: @ 0x08085C5C cmp r0, #0 beq _08085CAE adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrh r0, [r4, #0x24] strh r0, [r5, #0x24] ldrb r0, [r4, #0x15] strb r0, [r5, #0x15] adds r0, r5, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldr r2, _08085CA4 @ =gPlayerState ldr r0, [r2, #0x30] movs r1, #2 @@ -1006,7 +1006,7 @@ sub_08085C5C: @ 0x08085C5C cmp r0, #1 bne _08085CA8 adds r0, r5, #0 - bl sub_0800455E + bl ResetCollisionLayer b _08085CAE .align 2, 0 _08085CA0: .4byte gPlayerEntity diff --git a/asm/loadRoomEntity.s b/asm/loadRoomEntity.s index ebb5bc7f..1894e7f4 100644 --- a/asm/loadRoomEntity.s +++ b/asm/loadRoomEntity.s @@ -85,7 +85,7 @@ _0804AE94: _0804AEA0: .4byte gRoomControls _0804AEA4: adds r0, r5, #0 - bl sub_08016A30 + bl ResolveCollisionLayer _0804AEAA: adds r0, r5, #0 _0804AEAC: diff --git a/asm/macroPlayer.s b/asm/macroPlayer.s index d5df62c2..7c8b3e9d 100644 --- a/asm/macroPlayer.s +++ b/asm/macroPlayer.s @@ -304,7 +304,7 @@ sub_0808CD00: @ 0x0808CD00 cmp r0, #0 beq _0808CD24 adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate b _0808CD3E _0808CD24: ldrb r0, [r4, #0xc] @@ -339,7 +339,7 @@ sub_0808CD44: @ 0x0808CD44 cmp r0, #0 beq _0808CD68 adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate b _0808CD82 _0808CD68: ldrb r0, [r4, #0xc] @@ -374,7 +374,7 @@ sub_0808CD88: @ 0x0808CD88 adds r0, r4, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, #0x7f @@ -459,7 +459,7 @@ sub_0808CE38: @ 0x0808CE38 adds r4, r0, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, #0xc7 @@ -485,7 +485,7 @@ sub_0808CE68: @ 0x0808CE68 adds r4, r0, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, #0xc7 @@ -511,7 +511,7 @@ sub_0808CE98: @ 0x0808CE98 adds r4, r0, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate movs r0, #0x32 ldrsh r1, [r4, r0] movs r0, #0x90 @@ -532,7 +532,7 @@ sub_0808CEC0: @ 0x0808CEC0 adds r4, r0, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, #0xc7 diff --git a/asm/minecart.s b/asm/minecart.s index 3ed01b8f..c739c521 100644 --- a/asm/minecart.s +++ b/asm/minecart.s @@ -92,7 +92,7 @@ _08091C94: .4byte gPlayerEntity sub_08091C98: @ 0x08091C98 push {r4, r5, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldr r5, _08091CC0 @ =gPlayerEntity adds r0, r4, #0 adds r1, r5, #0 diff --git a/asm/minecartDoor.s b/asm/minecartDoor.s index d75eec45..2d5b9d39 100644 --- a/asm/minecartDoor.s +++ b/asm/minecartDoor.s @@ -160,7 +160,7 @@ _08096BF4: .4byte 0x0000010B sub_08096BF8: @ 0x08096BF8 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] @@ -256,7 +256,7 @@ _08096CAE: sub_08096CB0: @ 0x08096CB0 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] diff --git a/asm/non_matching/eu/HandlePlayerLife.inc b/asm/non_matching/eu/HandlePlayerLife.inc index bc528d6e..c1f4727b 100644 --- a/asm/non_matching/eu/HandlePlayerLife.inc +++ b/asm/non_matching/eu/HandlePlayerLife.inc @@ -51,7 +51,7 @@ _0801708A: ldrb r0, [r0] cmp r0, #0 bne _080170A4 - bl sub_0807A108 + bl DeleteClones _080170A4: bl sub_08079B24 cmp r0, #0 diff --git a/asm/non_matching/eu/sub_0802AC40.inc b/asm/non_matching/eu/sub_0802AC40.inc index 80e3632d..aac8df27 100644 --- a/asm/non_matching/eu/sub_0802AC40.inc +++ b/asm/non_matching/eu/sub_0802AC40.inc @@ -3,7 +3,7 @@ adds r4, r0, #0 bl GetNextFrame adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r5, r4, #0 adds r5, #0x7a ldrb r0, [r5] diff --git a/asm/non_matching/fallingBoulder/sub_0802C334.inc b/asm/non_matching/fallingBoulder/sub_0802C334.inc index 763973d7..50161c05 100644 --- a/asm/non_matching/fallingBoulder/sub_0802C334.inc +++ b/asm/non_matching/fallingBoulder/sub_0802C334.inc @@ -154,7 +154,7 @@ _0802C442: _0802C45C: .4byte gRoomControls _0802C460: adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate movs r1, #0x36 ldrsh r0, [r4, r1] subs r0, r0, r5 diff --git a/asm/non_matching/itemGustJar/sub_08076F64.inc b/asm/non_matching/itemGustJar/sub_08076F64.inc index dd604ea4..b90cf508 100644 --- a/asm/non_matching/itemGustJar/sub_08076F64.inc +++ b/asm/non_matching/itemGustJar/sub_08076F64.inc @@ -99,7 +99,7 @@ _0807701C: eors r1, r2 strb r1, [r0, #0x15] strh r5, [r0, #0x24] - bl sub_08079E08 + bl UpdatePlayerMovement b _08077110 .align 2, 0 _08077044: .4byte gPlayerState @@ -151,7 +151,7 @@ _0807708C: strb r0, [r2, #0x15] movs r0, #0x80 strh r0, [r2, #0x24] - bl sub_08079E08 + bl UpdatePlayerMovement b _08077110 .align 2, 0 _080770B0: .4byte gPlayerState diff --git a/asm/non_matching/itemMoleMitts/sub_080772A8.inc b/asm/non_matching/itemMoleMitts/sub_080772A8.inc index 4bc2b222..e3424dcf 100644 --- a/asm/non_matching/itemMoleMitts/sub_080772A8.inc +++ b/asm/non_matching/itemMoleMitts/sub_080772A8.inc @@ -73,7 +73,7 @@ _0807732E: ldrsh r0, [r5, r1] cmp r0, #0 beq _08077344 - bl sub_08079E08 + bl UpdatePlayerMovement _08077344: ldrb r1, [r4, #0xe] movs r0, #0x10 diff --git a/asm/non_matching/itemSword/sub_08075900.inc b/asm/non_matching/itemSword/sub_08075900.inc index 1d912115..bf48f659 100644 --- a/asm/non_matching/itemSword/sub_08075900.inc +++ b/asm/non_matching/itemSword/sub_08075900.inc @@ -54,7 +54,7 @@ _08075962: movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r4, #0x24] - bl sub_08079E08 + bl UpdatePlayerMovement ldr r0, _08075994 @ =gScreenTransition ldr r0, [r0] movs r1, #3 diff --git a/asm/non_matching/mazaal/sub_0803473C.inc b/asm/non_matching/mazaal/sub_0803473C.inc index 2858af55..107ac518 100644 --- a/asm/non_matching/mazaal/sub_0803473C.inc +++ b/asm/non_matching/mazaal/sub_0803473C.inc @@ -59,7 +59,7 @@ _08034798: _080347A8: strb r0, [r3, #0x15] adds r0, r3, #0 - bl sub_0806F69C + bl LinearMoveUpdate _080347B0: pop {r4, r5, pc} .align 2, 0 diff --git a/asm/non_matching/mazaal/sub_080347B4.inc b/asm/non_matching/mazaal/sub_080347B4.inc index 08fd61a6..8010cb32 100644 --- a/asm/non_matching/mazaal/sub_080347B4.inc +++ b/asm/non_matching/mazaal/sub_080347B4.inc @@ -33,7 +33,7 @@ _080347E0: _080347F0: strb r0, [r2, #0x15] adds r0, r2, #0 - bl sub_0806F69C + bl LinearMoveUpdate _080347F8: pop {r4, r5, pc} .align 2, 0 diff --git a/asm/non_matching/mazaal/sub_0803AA98.inc b/asm/non_matching/mazaal/sub_0803AA98.inc index fa5339dc..14470538 100644 --- a/asm/non_matching/mazaal/sub_0803AA98.inc +++ b/asm/non_matching/mazaal/sub_0803AA98.inc @@ -24,7 +24,7 @@ cmp r0, #0 bne _0803AB0A adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl sub_0803B6F4 cmp r0, #0 diff --git a/asm/non_matching/player/PlayerNormal.inc b/asm/non_matching/player/PlayerNormal.inc index 514075d5..ed25e815 100644 --- a/asm/non_matching/player/PlayerNormal.inc +++ b/asm/non_matching/player/PlayerNormal.inc @@ -91,7 +91,7 @@ _08070842: ands r4, r1 cmp r4, #0 beq _08070852 - bl sub_08079938 + bl ResolvePlayerAnimation b _08070BE4 _08070852: adds r0, r5, #0 @@ -320,7 +320,7 @@ _08070A26: b _08070BE4 _08070A32: adds r0, r5, #0 - bl sub_08073904 + bl DoJump bl RunQueuedAction cmp r0, #0 beq _08070A42 @@ -357,7 +357,7 @@ _08070A7C: movs r0, #0xff strb r0, [r5, #0x15] _08070A80: - bl sub_08079E08 + bl UpdatePlayerMovement adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] @@ -465,7 +465,7 @@ _08070B1E: lsls r0, r0, #2 strb r0, [r5, #0x15] _08070B52: - bl sub_0807A108 + bl DeleteClones _08070B56: movs r4, #0 ldr r3, _08070BB8 @ =gPlayerState diff --git a/asm/non_matching/player/sub_08070DC4.inc b/asm/non_matching/player/sub_08070DC4.inc index 8d544d6b..fccb1712 100644 --- a/asm/non_matching/player/sub_08070DC4.inc +++ b/asm/non_matching/player/sub_08070DC4.inc @@ -4,7 +4,7 @@ bl UpdateAnimationSingleFrame adds r0, r4, #0 bl sub_080085B0 - bl sub_08079E08 + bl UpdatePlayerMovement bl UpdateFloorType bl RunQueuedAction cmp r0, #0 @@ -31,7 +31,7 @@ beq _08070E1C _08070E10: strb r5, [r6, #2] - bl sub_080791D0 + bl ResetPlayerAnimationAndAction b _08070E76 .align 2, 0 _08070E18: .4byte gPlayerState @@ -60,8 +60,8 @@ _08070E32: beq _08070E56 movs r0, #7 strb r0, [r6, #0x11] - bl sub_08079938 - bl sub_080791BC + bl ResolvePlayerAnimation + bl SetPlayerActionNormal b _08070E76 _08070E56: movs r0, #1 diff --git a/asm/non_matching/player/sub_08072D54.inc b/asm/non_matching/player/sub_08072D54.inc index 74485d74..30ab4d8d 100644 --- a/asm/non_matching/player/sub_08072D54.inc +++ b/asm/non_matching/player/sub_08072D54.inc @@ -11,7 +11,7 @@ cmp r0, #0 beq _08072D7A adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] subs r0, #1 b _08072E80 @@ -140,10 +140,10 @@ _08072E6C: cmp r0, #0 beq _08072E7A adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate b _08072E7E _08072E7A: - bl sub_08079E08 + bl UpdatePlayerMovement _08072E7E: movs r0, #0 _08072E80: @@ -164,7 +164,7 @@ _08072E80: cmp r0, #1 bne _08072EAA adds r0, r4, #0 - bl sub_0800455E + bl ResetCollisionLayer b _08072EB0 _08072EAA: adds r0, r4, #0 @@ -187,7 +187,7 @@ _08072EB0: ands r0, r1 cmp r0, #0 bne _08072F10 - bl sub_080791BC + bl SetPlayerActionNormal b _08072F10 .align 2, 0 _08072EDC: .4byte gPlayerState diff --git a/asm/non_matching/player/sub_08073584.inc b/asm/non_matching/player/sub_08073584.inc index 43ee516b..caf4909f 100644 --- a/asm/non_matching/player/sub_08073584.inc +++ b/asm/non_matching/player/sub_08073584.inc @@ -36,7 +36,7 @@ _080735C0: strb r1, [r6, #2] bl sub_0807921C adds r0, r4, #0 - bl sub_08073904 + bl DoJump movs r0, #0xe6 lsls r0, r0, #3 strh r0, [r6, #8] @@ -114,7 +114,7 @@ _0807365A: movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] - bl sub_08079E08 + bl UpdatePlayerMovement ldrb r2, [r4, #0x14] lsls r3, r2, #2 ldrb r1, [r4, #0x15] diff --git a/asm/non_matching/player/sub_080740D8.inc b/asm/non_matching/player/sub_080740D8.inc index f24b687f..7c4c6ca7 100644 --- a/asm/non_matching/player/sub_080740D8.inc +++ b/asm/non_matching/player/sub_080740D8.inc @@ -102,7 +102,7 @@ _0807418C: cmp r0, #0 beq _080741AC adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate b _080741B0 .align 2, 0 _080741A4: .4byte gRoomControls diff --git a/asm/non_matching/playerItem11/sub_08018E68.inc b/asm/non_matching/playerItem11/sub_08018E68.inc index 7918577b..d11fff26 100644 --- a/asm/non_matching/playerItem11/sub_08018E68.inc +++ b/asm/non_matching/playerItem11/sub_08018E68.inc @@ -38,7 +38,7 @@ _08018EA8: cmp r0, #0xff beq _08018F46 adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0x15] cmp r0, #8 beq _08018EEA diff --git a/asm/non_matching/playerItem12/sub_080701F8.inc b/asm/non_matching/playerItem12/sub_080701F8.inc index 5ac6540b..1f1bd2bc 100644 --- a/asm/non_matching/playerItem12/sub_080701F8.inc +++ b/asm/non_matching/playerItem12/sub_080701F8.inc @@ -57,7 +57,7 @@ _08070268: adds r0, r5, #0 bl GetNextFrame adds r0, r5, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r5, #0xa] cmp r0, #0 bne _08070280 diff --git a/asm/non_matching/playerItem13/sub_080AD040.inc b/asm/non_matching/playerItem13/sub_080AD040.inc index 01a96f6c..21e62945 100644 --- a/asm/non_matching/playerItem13/sub_080AD040.inc +++ b/asm/non_matching/playerItem13/sub_080AD040.inc @@ -54,7 +54,7 @@ _080AD088: cmp r0, #0x74 bne _080AD0B4 adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate b _080AD0C8 .align 2, 0 _080AD0B0: .4byte gUnk_081320C4 diff --git a/asm/non_matching/playerItem15/sub_080A310C.inc b/asm/non_matching/playerItem15/sub_080A310C.inc index 0af22d2f..933b90b7 100644 --- a/asm/non_matching/playerItem15/sub_080A310C.inc +++ b/asm/non_matching/playerItem15/sub_080A310C.inc @@ -26,7 +26,7 @@ _080A312A: adds r0, r4, #0 bl GetNextFrame adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] diff --git a/asm/non_matching/playerItem3/sub_0801B680.inc b/asm/non_matching/playerItem3/sub_0801B680.inc index 71d17694..5cf602dc 100644 --- a/asm/non_matching/playerItem3/sub_0801B680.inc +++ b/asm/non_matching/playerItem3/sub_0801B680.inc @@ -48,7 +48,7 @@ _0801B6D0: strb r0, [r4, #0x15] _0801B6DC: adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate movs r5, #0 adds r0, r4, #0 bl sub_0801B864 diff --git a/asm/non_matching/playerItemBow/sub_0801917C.inc b/asm/non_matching/playerItemBow/sub_0801917C.inc index da662d59..dc12b7ec 100644 --- a/asm/non_matching/playerItemBow/sub_0801917C.inc +++ b/asm/non_matching/playerItemBow/sub_0801917C.inc @@ -31,7 +31,7 @@ _0801919C: strb r0, [r4, #0x18] _080191BA: adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 adds r0, #0x40 ldrb r1, [r0] diff --git a/asm/object10.s b/asm/object10.s index 33333b8e..f1f00979 100644 --- a/asm/object10.s +++ b/asm/object10.s @@ -369,7 +369,7 @@ _08084AEA: .align 2, 0 _08084AF4: .4byte gPlayerState _08084AF8: - bl sub_0807A108 + bl DeleteClones adds r0, r4, #0 movs r1, #0x30 movs r2, #0 diff --git a/asm/object12.s b/asm/object12.s index 5f2806a3..dfdb643b 100644 --- a/asm/object12.s +++ b/asm/object12.s @@ -159,7 +159,7 @@ _080850C8: sub_080850CC: @ 0x080850CC push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] diff --git a/asm/object20.s b/asm/object20.s index 526b9cd8..976e6cc7 100644 --- a/asm/object20.s +++ b/asm/object20.s @@ -29,7 +29,7 @@ sub_08087824: @ 0x08087824 cmp r0, #0 bne _08087836 adds r0, r4, #0 - bl sub_08016A30 + bl ResolveCollisionLayer _08087836: movs r0, #1 strb r0, [r4, #0xc] diff --git a/asm/object21.s b/asm/object21.s index d5afeabd..04c5a1ea 100644 --- a/asm/object21.s +++ b/asm/object21.s @@ -53,7 +53,7 @@ _080879EA: cmp r0, #0 beq _08087A0C adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrh r1, [r4, #0x24] movs r2, #0x24 ldrsh r0, [r4, r2] diff --git a/asm/object35.s b/asm/object35.s index 746cf2e4..2b270948 100644 --- a/asm/object35.s +++ b/asm/object35.s @@ -230,7 +230,7 @@ _0808BA0C: .4byte 0x0000010B sub_0808BA10: @ 0x0808BA10 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] @@ -281,7 +281,7 @@ _0808BA68: sub_0808BA6C: @ 0x0808BA6C push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] diff --git a/asm/object36.s b/asm/object36.s index e69c9b90..5c47e400 100644 --- a/asm/object36.s +++ b/asm/object36.s @@ -289,7 +289,7 @@ _0808BD34: bl GetFacingDirection strb r0, [r5, #0x15] adds r0, r5, #0 - bl sub_0806F69C + bl LinearMoveUpdate movs r0, #0x2e ldrsh r1, [r4, r0] movs r0, #0x32 diff --git a/asm/object43.s b/asm/object43.s index 55392ea6..7ad10e72 100644 --- a/asm/object43.s +++ b/asm/object43.s @@ -364,7 +364,7 @@ _0808E162: strb r0, [r4, #0x15] _0808E17A: adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xb] cmp r0, #0 bne _0808E1BA diff --git a/asm/object4B.s b/asm/object4B.s index b66012b4..e9c65140 100644 --- a/asm/object4B.s +++ b/asm/object4B.s @@ -137,7 +137,7 @@ sub_0808F858: @ 0x0808F858 cmp r0, #0 beq _0808F884 adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 diff --git a/asm/object64.s b/asm/object64.s index ab77b6f9..ca27ad31 100644 --- a/asm/object64.s +++ b/asm/object64.s @@ -43,7 +43,7 @@ sub_08093E3C: @ 0x08093E3C cmp r0, #0 bne _08093E6A adds r0, r4, #0 - bl sub_08016A30 + bl ResolveCollisionLayer _08093E6A: ldrb r1, [r4, #0xa] adds r0, r4, #0 diff --git a/asm/object67.s b/asm/object67.s index fe69518b..70e92552 100644 --- a/asm/object67.s +++ b/asm/object67.s @@ -337,7 +337,7 @@ _080943A8: adds r0, r4, #0 bl GetNextFrame adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 diff --git a/asm/object79.s b/asm/object79.s index 579a16d0..1ff61a07 100644 --- a/asm/object79.s +++ b/asm/object79.s @@ -243,7 +243,7 @@ sub_08098130: @ 0x08098130 ldrh r0, [r0] strh r0, [r4, #0x24] adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldr r0, [r4, #0x30] ldr r1, _08098164 @ =0xFFEC0000 adds r0, r0, r1 diff --git a/asm/object91.s b/asm/object91.s index 5a32bd05..6c4c5fba 100644 --- a/asm/object91.s +++ b/asm/object91.s @@ -933,7 +933,7 @@ _0809CAC4: sub_0809CAC8: @ 0x0809CAC8 push {r4, r5, lr} adds r5, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldr r2, _0809CB3C @ =gRoomControls ldrh r0, [r2, #8] movs r1, #0xe4 diff --git a/asm/object96.s b/asm/object96.s index 4cc9016a..5fb797f2 100644 --- a/asm/object96.s +++ b/asm/object96.s @@ -125,7 +125,7 @@ sub_0809D860: @ 0x0809D860 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldr r1, [r6, #0x14] adds r0, r5, #0 bl sub_080044EC diff --git a/asm/object97.s b/asm/object97.s index cc0b3c10..65f2f74a 100644 --- a/asm/object97.s +++ b/asm/object97.s @@ -330,7 +330,7 @@ sub_0809DBE4: @ 0x0809DBE4 sub_0809DC14: @ 0x0809DC14 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 @@ -1099,7 +1099,7 @@ sub_0809E1F0: @ 0x0809E1F0 strh r2, [r1, #0x24] _0809E208: adds r0, r1, #0 - bl sub_0806F69C + bl LinearMoveUpdate pop {pc} thumb_func_start sub_0809E210 diff --git a/asm/object98.s b/asm/object98.s index 5732bd0b..97ecdf3b 100644 --- a/asm/object98.s +++ b/asm/object98.s @@ -109,7 +109,7 @@ sub_0809E3E4: @ 0x0809E3E4 cmp r0, #0 bne _0809E40E adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate _0809E40E: adds r2, r4, #0 adds r2, #0x74 diff --git a/asm/objectBlockingStairs.s b/asm/objectBlockingStairs.s index 590f7e5c..f7cc26f1 100644 --- a/asm/objectBlockingStairs.s +++ b/asm/objectBlockingStairs.s @@ -351,7 +351,7 @@ sub_08093178: @ 0x08093178 adds r4, r0, #0 bl sub_0800445C adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] @@ -501,7 +501,7 @@ sub_08093280: @ 0x08093280 adds r4, r0, #0 bl sub_0800445C adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] diff --git a/asm/objectOnPillar.s b/asm/objectOnPillar.s index 64542d7e..7b0fe216 100644 --- a/asm/objectOnPillar.s +++ b/asm/objectOnPillar.s @@ -442,7 +442,7 @@ _08097140: .4byte 0x00004036 sub_08097144: @ 0x08097144 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl sub_0800445C adds r0, r4, #0 diff --git a/asm/pullableLever.s b/asm/pullableLever.s index ff888fe0..ac64c6b9 100644 --- a/asm/pullableLever.s +++ b/asm/pullableLever.s @@ -187,7 +187,7 @@ sub_08091338: @ 0x08091338 lsls r0, r0, #3 strb r0, [r4, #0x15] adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl sub_08091660 _0809135C: diff --git a/asm/pullableMushroom.s b/asm/pullableMushroom.s index 5a2e5078..4715c361 100644 --- a/asm/pullableMushroom.s +++ b/asm/pullableMushroom.s @@ -517,7 +517,7 @@ _0808ADE2: lsls r0, r0, #3 strh r0, [r1, #0x24] ldr r0, [r4, #0x54] - bl sub_0806F69C + bl LinearMoveUpdate _0808ADEE: pop {r4, pc} @@ -964,7 +964,7 @@ _0808B154: cmp r7, #0x3f bhi _0808B162 adds r0, r5, #0 - bl sub_0806F69C + bl LinearMoveUpdate _0808B162: add sp, #0x88 pop {r4, r5, r6, r7, pc} diff --git a/asm/pushableFurniture.s b/asm/pushableFurniture.s index 263df8cd..4cfdc962 100644 --- a/asm/pushableFurniture.s +++ b/asm/pushableFurniture.s @@ -408,7 +408,7 @@ _0808FC58: sub_0808FC5C: @ 0x0808FC5C push {r4, r5, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] diff --git a/asm/pushableGrave.s b/asm/pushableGrave.s index 8cf7c13b..4950b2fe 100644 --- a/asm/pushableGrave.s +++ b/asm/pushableGrave.s @@ -280,7 +280,7 @@ sub_080977A0: @ 0x080977A0 subs r0, #1 strb r0, [r4, #0xe] adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl sub_0800445C b _080977E4 diff --git a/asm/pushableRock.s b/asm/pushableRock.s index 2cf721cd..d5aa685a 100644 --- a/asm/pushableRock.s +++ b/asm/pushableRock.s @@ -146,7 +146,7 @@ sub_0808A5E0: @ 0x0808A5E0 ldrh r0, [r0] strh r0, [r4, #0x24] adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl GetNextFrame ldrb r1, [r5] diff --git a/asm/pushableStatue.s b/asm/pushableStatue.s index efd6cdfa..4a775bf4 100644 --- a/asm/pushableStatue.s +++ b/asm/pushableStatue.s @@ -525,7 +525,7 @@ _080895BC: .4byte gUnk_080B4488 sub_080895C0: @ 0x080895C0 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r1, r4, #0 adds r1, #0x86 ldrh r0, [r1] diff --git a/asm/specialFx.s b/asm/specialFx.s index 76ae6dfc..5a0f7a1b 100644 --- a/asm/specialFx.s +++ b/asm/specialFx.s @@ -46,7 +46,7 @@ sub_080844E0: @ 0x080844E0 cmp r0, #0 bne _08084516 adds r0, r5, #0 - bl sub_08016A30 + bl ResolveCollisionLayer _08084516: ldrb r0, [r5, #0xa] cmp r0, #0x20 @@ -187,7 +187,7 @@ sub_080845F8: @ 0x080845F8 lsrs r0, r0, #3 strb r0, [r4, #0x15] adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate _08084626: adds r0, r4, #0 bl sub_08084630 @@ -283,7 +283,7 @@ sub_080846B0: @ 0x080846B0 strh r0, [r4, #0x24] _080846CA: adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl sub_080845DC b _08084718 @@ -434,7 +434,7 @@ _080847CC: .4byte 0xFFFFE000 sub_080847D0: @ 0x080847D0 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r0, r4, #0 bl sub_080845DC pop {r4, pc} diff --git a/asm/steam.s b/asm/steam.s index bb80c5e1..24189987 100644 --- a/asm/steam.s +++ b/asm/steam.s @@ -43,7 +43,7 @@ Steam: @ 0x08098168 movs r0, #2 strb r0, [r1] adds r0, r4, #0 - bl sub_08016A30 + bl ResolveCollisionLayer ldr r1, _080981CC @ =gScreen adds r2, r1, #0 adds r2, #0x66 diff --git a/asm/takkuri.s b/asm/takkuri.s index c8b490ae..bc917409 100644 --- a/asm/takkuri.s +++ b/asm/takkuri.s @@ -522,7 +522,7 @@ sub_0803BF2C: @ 0x0803BF2C sub_0803BF48: @ 0x0803BF48 push {r4, lr} adds r4, r0, #0 - bl sub_0806F69C + bl LinearMoveUpdate adds r1, r4, #0 adds r1, #0x38 movs r0, #3 diff --git a/asm/whirlwind.s b/asm/whirlwind.s index 5babbd3a..fe9c3966 100644 --- a/asm/whirlwind.s +++ b/asm/whirlwind.s @@ -261,7 +261,7 @@ sub_08092E94: @ 0x08092E94 cmp r0, #0 bne _08092ECE adds r0, r4, #0 - bl sub_0800455E + bl ResetCollisionLayer ldrb r2, [r4, #0x1b] movs r1, #0x3f adds r0, r1, #0 diff --git a/asm/wizzrobeWind.s b/asm/wizzrobeWind.s index 2fef5564..7b9f89af 100644 --- a/asm/wizzrobeWind.s +++ b/asm/wizzrobeWind.s @@ -711,7 +711,7 @@ _0802FA02: cmp r0, #0 beq _0802FA3E adds r0, r4, #0 - bl sub_0806F69C + bl LinearMoveUpdate ldrb r0, [r6] cmp r0, #0 bne _0802FA3E diff --git a/data/scripts/cloudTops/script_PlayerAtSiroc.inc b/data/scripts/cloudTops/script_PlayerAtSiroc.inc index ceeed89f..ebdfb81b 100644 --- a/data/scripts/cloudTops/script_PlayerAtSiroc.inc +++ b/data/scripts/cloudTops/script_PlayerAtSiroc.inc @@ -7,5 +7,5 @@ SCRIPT_START script_PlayerAtSiroc SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/ezlo/script_EzloCap.inc b/data/scripts/cutscene/ezlo/script_EzloCap.inc index f13702bc..3f2c786c 100644 --- a/data/scripts/cutscene/ezlo/script_EzloCap.inc +++ b/data/scripts/cutscene/ezlo/script_EzloCap.inc @@ -74,7 +74,7 @@ script_08012824: SetPlayerIdle _0807E9DC CallWithArg sub_0807F5B0, 0x0000003c - Call sub_080791D0 + Call ResetPlayerAnimationAndAction EndBlock SetSyncFlag 0x00000008 WaitForSyncFlagAndClear 0x00000004 diff --git a/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc b/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc index f9350061..fa6ae96d 100644 --- a/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc +++ b/data/scripts/cutscene/ezlo/script_Npc4EEzloCutscene.inc @@ -18,7 +18,7 @@ script_0801248A: _0807E80C 0x00000000 WaitForFadeFinish _0807E858 0x0000 - Call sub_080791BC + Call SetPlayerActionNormal LoadRoomEntityList gUnk_080F4D70 Call DeleteAllEnemies SetEntityPositionRelative 0x0388, 0x0168 diff --git a/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc b/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc index 017b7111..eaa33a4c 100644 --- a/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc +++ b/data/scripts/cutscene/ezlo/script_PlayerDefeatedOctoroks.inc @@ -8,5 +8,5 @@ SCRIPT_START script_PlayerDefeatedOctoroks SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc b/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc index 1082a4b1..33310752 100644 --- a/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc +++ b/data/scripts/cutscene/ezlo/script_PlayerEzloBeingBullied.inc @@ -8,6 +8,6 @@ SCRIPT_START script_PlayerEzloBeingBullied DoPostScriptAction 0x0004 Wait 0x003c SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/ezlo/script_PlayerGetEzloCap.inc b/data/scripts/cutscene/ezlo/script_PlayerGetEzloCap.inc index 545b7a6c..90acd24f 100644 --- a/data/scripts/cutscene/ezlo/script_PlayerGetEzloCap.inc +++ b/data/scripts/cutscene/ezlo/script_PlayerGetEzloCap.inc @@ -1,5 +1,5 @@ @ Get Ezlo cap Player SCRIPT_START script_PlayerGetEzloCap DoPostScriptAction 0x0015 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/intro/script_PlayerIntro.inc b/data/scripts/cutscene/intro/script_PlayerIntro.inc index 5f06f18e..33520235 100644 --- a/data/scripts/cutscene/intro/script_PlayerIntro.inc +++ b/data/scripts/cutscene/intro/script_PlayerIntro.inc @@ -20,5 +20,5 @@ SCRIPT_START script_PlayerIntro Call sub_08053250 EnablePlayerControl Call sub_0807DF50 - Call sub_080791D0 + Call ResetPlayerAnimationAndAction SCRIPT_END diff --git a/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc b/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc index 31780509..021ce626 100644 --- a/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc +++ b/data/scripts/cutscene/intro/script_ZeldaTalkToSmith.inc @@ -34,7 +34,7 @@ SCRIPT_START script_ZeldaTalkToSmith BeginBlock SetGlobalFlag 0x0013 Call sub_0807DF50 - Call sub_080791D0 + Call ResetPlayerAnimationAndAction EnablePlayerControl EndBlock SCRIPT_END diff --git a/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc b/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc index b5bf75ce..daa91183 100644 --- a/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc +++ b/data/scripts/cutscene/introAssembly/script_PlayerEnters.inc @@ -15,6 +15,6 @@ SCRIPT_START script_PlayerEnters DoPostScriptAction 0x0000 Wait 0x000f SetSyncFlag 0x00000020 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc b/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc index e2fd2766..009478ee 100644 --- a/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc +++ b/data/scripts/cutscene/introAssembly/script_PlayerGetSword.inc @@ -8,6 +8,6 @@ SCRIPT_START script_PlayerGetSword MessageFromTargetPos 0x0501, 0x000e WaitUntilTextboxCloses SetSyncFlag 0x00000020 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc b/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc index 862275c2..79078065 100644 --- a/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc +++ b/data/scripts/cutscene/introAssembly/script_PlayerWakingUpInHyruleCastle.inc @@ -29,5 +29,5 @@ script_08009EA4: Call sub_08053250 EnablePlayerControl Call sub_0807DF50 - Call sub_080791D0 + Call ResetPlayerAnimationAndAction SCRIPT_END diff --git a/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc index 605ee80e..8e4e4823 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerAtIntroBusinessScrub4.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerAtIntroBusinessScrub4 SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc index 36e3e08b..f5475ac2 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub1.inc @@ -5,5 +5,5 @@ SCRIPT_START script_PlayerIntroBusinessScrub1 SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000010 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc index d5c30e2a..3f6979a5 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub2.inc @@ -5,5 +5,5 @@ SCRIPT_START script_PlayerIntroBusinessScrub2 SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000010 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc index deea175d..b9ea15ff 100644 --- a/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc +++ b/data/scripts/cutscene/introBusinessScrub/script_PlayerIntroBusinessScrub3.inc @@ -5,5 +5,5 @@ SCRIPT_START script_PlayerIntroBusinessScrub3 SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000010 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc b/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc index 4385bb7b..0e733e50 100644 --- a/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc +++ b/data/scripts/cutscene/introCeremony/script_Npc4EMonsters.inc @@ -28,7 +28,7 @@ SCRIPT_START script_Npc4EMonsters CallWithArg DeleteManager36, 0x00000002 _0807F0C8 0x0000, 0x0000 Call sub_0806DC3C - Call sub_080791BC + Call SetPlayerActionNormal CallWithArg EquipItem, 0x0000000d CallWithArg sub_0807F29C, gUnk_080049F6 _0807F0B4 0x0001 diff --git a/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc b/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc index 54bd0c43..c969f3bb 100644 --- a/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc +++ b/data/scripts/cutscene/introCeremony/script_Npc4EVaatiAttacking.inc @@ -8,7 +8,7 @@ SCRIPT_START script_Npc4EVaatiAttacking MessageFromTargetPos 0x1047, 0x0000 WaitUntilTextboxCloses Call sub_0806DC3C - Call sub_080791BC + Call SetPlayerActionNormal CallWithArg EquipItem, 0x0000000d CallWithArg sub_0807F29C, gUnk_080049F6 Wait 0x001e diff --git a/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc b/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc index 33d0784c..b48339a3 100644 --- a/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerAtIntroCeremony.inc @@ -6,5 +6,5 @@ SCRIPT_START script_PlayerAtIntroCeremony SetSyncFlag 0x00000400 ClearSyncFlag 0x00000002 EndBlock - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc b/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc index 880c2d9e..8e0ae500 100644 --- a/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerFainting.inc @@ -13,5 +13,5 @@ SCRIPT_START script_PlayerFainting EndBlock Call WaitForFrameHiBit WaitForSyncFlag 0x80000000 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc b/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc index 78be94a1..124fe933 100644 --- a/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerIntroCastle.inc @@ -7,5 +7,5 @@ SCRIPT_START script_PlayerIntroCastle SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000400 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc b/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc index dc4e414f..13efecf9 100644 --- a/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc +++ b/data/scripts/cutscene/introCeremony/script_PlayerProtectingZelda.inc @@ -9,5 +9,5 @@ SCRIPT_START script_PlayerProtectingZelda SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000400 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc b/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc index 409387ac..1b23ef0d 100644 --- a/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc +++ b/data/scripts/cutscene/introTown/script_Npc4EIntroTown.inc @@ -160,7 +160,7 @@ SCRIPT_START script_Npc4EIntroTown GivePlayerItem 0x000d WaitPlayerGetItem Call sub_0806DC3C - Call sub_080791BC + Call SetPlayerActionNormal CallWithArg EquipItem, 0x0000000d SetIntVariable 0x000000ff Call sub_0807F5B0 diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro1.inc b/data/scripts/cutscene/introTown/script_PlayerIntro1.inc index d5a09109..ea5c12ce 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro1.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro1.inc @@ -7,5 +7,5 @@ SCRIPT_START script_PlayerIntro1 SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro2.inc b/data/scripts/cutscene/introTown/script_PlayerIntro2.inc index 986893df..02058ebd 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro2.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro2.inc @@ -7,5 +7,5 @@ SCRIPT_START script_PlayerIntro2 SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro3.inc b/data/scripts/cutscene/introTown/script_PlayerIntro3.inc index d2eda272..2ee42514 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro3.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro3.inc @@ -7,5 +7,5 @@ SCRIPT_START script_PlayerIntro3 SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro4.inc b/data/scripts/cutscene/introTown/script_PlayerIntro4.inc index 33307f8c..ad1b34dd 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro4.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro4.inc @@ -7,5 +7,5 @@ SCRIPT_START script_PlayerIntro4 SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_PlayerIntro5.inc b/data/scripts/cutscene/introTown/script_PlayerIntro5.inc index e90538d7..f1393d94 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntro5.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntro5.inc @@ -14,5 +14,5 @@ script_0800FB10: SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc b/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc index 453e2bbe..7457da40 100644 --- a/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc +++ b/data/scripts/cutscene/introTown/script_PlayerIntroTown.inc @@ -5,6 +5,6 @@ SCRIPT_START script_PlayerIntroTown SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000008 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc b/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc index 58479b51..937cf7a9 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtFirstKinstone.inc @@ -12,5 +12,5 @@ SCRIPT_START script_PlayerAtFirstKinstone SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc index 7d7223dc..253d7131 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone1.inc @@ -3,6 +3,6 @@ SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone1 SetEntitySpeed 0x0100 WalkEast 0x0008 SetSyncFlag 0x00000400 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc index 86076092..56b1e534 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone2.inc @@ -3,6 +3,6 @@ SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone2 SetEntitySpeed 0x0100 WalkWest 0x0008 SetSyncFlag 0x00000400 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc index c64ab60a..7abe1476 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone3.inc @@ -3,6 +3,6 @@ SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone3 SetEntitySpeed 0x0100 WalkSouth 0x0008 SetSyncFlag 0x00000400 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc index 5b436fa5..d93c0ec4 100644 --- a/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc +++ b/data/scripts/cutscene/kinstones/script_PlayerAtHurdyGurdyManFirstKinstone4.inc @@ -3,6 +3,6 @@ SCRIPT_START script_PlayerAtHurdyGurdyManFirstKinstone4 SetEntitySpeed 0x0100 WalkNorth 0x0008 SetSyncFlag 0x00000400 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/minishVillage/script_PlayerAtVillageIntro.inc b/data/scripts/cutscene/minishVillage/script_PlayerAtVillageIntro.inc index 81855968..2e9cc5ce 100644 --- a/data/scripts/cutscene/minishVillage/script_PlayerAtVillageIntro.inc +++ b/data/scripts/cutscene/minishVillage/script_PlayerAtVillageIntro.inc @@ -9,6 +9,6 @@ SCRIPT_START script_PlayerAtVillageIntro _0807EDD4 0x0208, 0x0340 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc b/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc index 429a13fd..6269f54b 100644 --- a/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc +++ b/data/scripts/cutscene/originStory/script_PlayerAtVaatisAppearance.inc @@ -8,5 +8,5 @@ SCRIPT_START script_PlayerAtVaatisAppearance SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc b/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc index 253e6517..88e9a2fd 100644 --- a/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc +++ b/data/scripts/cutscene/originStory/script_PlayerDefeatedMoblins.inc @@ -8,5 +8,5 @@ SCRIPT_START script_PlayerDefeatedMoblins SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_PlayerReceivedExposition.inc b/data/scripts/cutscene/originStory/script_PlayerReceivedExposition.inc index 77508e79..79a68621 100644 --- a/data/scripts/cutscene/originStory/script_PlayerReceivedExposition.inc +++ b/data/scripts/cutscene/originStory/script_PlayerReceivedExposition.inc @@ -1,5 +1,5 @@ @ Player Outside Castle after Ezlo explanation after ezlo cutscene SCRIPT_START script_PlayerReceivedExposition DoPostScriptAction 0x0015 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc b/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc index 1418123b..f2290db0 100644 --- a/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc +++ b/data/scripts/cutscene/originStory/script_PlayerSeenOriginStory.inc @@ -7,5 +7,5 @@ SCRIPT_START script_PlayerSeenOriginStory SetAnimationState 0x0006 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc b/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc index 26d0e170..ce5801a1 100644 --- a/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc +++ b/data/scripts/cutscene/originStory/script_PlayerStoneWallsAppear.inc @@ -10,6 +10,6 @@ SCRIPT_START script_PlayerStoneWallsAppear Wait 0x000a SetAnimationState 0x0004 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc b/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc index f6eb5063..42f14dc0 100644 --- a/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc +++ b/data/scripts/cutscene/originStory/script_PlayerTryToFollowVaati.inc @@ -8,5 +8,5 @@ SCRIPT_START script_PlayerTryToFollowVaati SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc b/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc index 8c2918ff..1959b1e5 100644 --- a/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc +++ b/data/scripts/cutscene/outro/script_PlayerAtEzlo.inc @@ -7,5 +7,5 @@ SCRIPT_START script_PlayerAtEzlo SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal .2byte 0x0000 diff --git a/data/scripts/cutscene/outro/script_PlayerAtOutro.inc b/data/scripts/cutscene/outro/script_PlayerAtOutro.inc index fc956c5a..3b87ff9f 100644 --- a/data/scripts/cutscene/outro/script_PlayerAtOutro.inc +++ b/data/scripts/cutscene/outro/script_PlayerAtOutro.inc @@ -10,5 +10,5 @@ SCRIPT_START script_PlayerAtOutro SetAnimationState 0x0006 Wait 0x000a SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal .2byte 0x0000 diff --git a/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc b/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc index 96af6e03..ab1e3e4c 100644 --- a/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc +++ b/data/scripts/cutscene/outro/script_PlayerGetGreenCap.inc @@ -22,5 +22,5 @@ SCRIPT_START script_PlayerGetGreenCap SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal .2byte 0x0000 diff --git a/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc b/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc index b10a0ba5..dc408d43 100644 --- a/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc +++ b/data/scripts/cutscene/outro/script_PlayerSayGoodbye.inc @@ -7,4 +7,4 @@ SCRIPT_START script_PlayerSayGoodbye SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal diff --git a/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc b/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc index f7760051..106508d6 100644 --- a/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc +++ b/data/scripts/cutscene/reveal/script_PlayerAtPicture.inc @@ -8,5 +8,5 @@ SCRIPT_START script_PlayerAtPicture SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc b/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc index c44f1f6c..f3523b3d 100644 --- a/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc +++ b/data/scripts/cutscene/reveal/script_PlayerDistanceFromVaati.inc @@ -9,6 +9,6 @@ SCRIPT_START script_PlayerDistanceFromVaati DoPostScriptAction 0x0000 DoPostScriptAction 0x000c SetSyncFlag 0x00000002 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc b/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc index b40b2b9e..6593d60f 100644 --- a/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc +++ b/data/scripts/cutscene/reveal/script_PlayerFaintAgain.inc @@ -12,6 +12,6 @@ SCRIPT_START script_PlayerFaintAgain _0807EF3C 0x0200, 0x0020 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc b/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc index b2af1dd9..5497e87e 100644 --- a/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc +++ b/data/scripts/cutscene/reveal/script_PlayerMoveToPicture.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerMoveToPicture WalkNorth 0x0020 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc b/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc index 034b3197..c7689ff9 100644 --- a/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc +++ b/data/scripts/cutscene/takeover/script_PlayerAtTakeover.inc @@ -16,5 +16,5 @@ SCRIPT_START script_PlayerAtTakeover SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000100 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc b/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc index ee4b78c3..3d9de90b 100644 --- a/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc +++ b/data/scripts/dhc/script_PlayerAfterDefeatingV2.inc @@ -9,6 +9,6 @@ SCRIPT_START script_PlayerAfterDefeatingV2 WalkSouth 0x0010 DoPostScriptAction 0x000c SetSyncFlag 0x00000004 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_PlayerAtDarkNut1.inc b/data/scripts/dhc/script_PlayerAtDarkNut1.inc index e37bcc9a..ad302065 100644 --- a/data/scripts/dhc/script_PlayerAtDarkNut1.inc +++ b/data/scripts/dhc/script_PlayerAtDarkNut1.inc @@ -11,5 +11,5 @@ SCRIPT_START script_PlayerAtDarkNut1 DoPostScriptAction 0x0001 Call sub_080752AC EnablePlayerControl - Call sub_080791D0 + Call ResetPlayerAnimationAndAction SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerAtDarkNut2.inc b/data/scripts/dhc/script_PlayerAtDarkNut2.inc index 60ee6ace..975bc5a2 100644 --- a/data/scripts/dhc/script_PlayerAtDarkNut2.inc +++ b/data/scripts/dhc/script_PlayerAtDarkNut2.inc @@ -11,5 +11,5 @@ SCRIPT_START script_PlayerAtDarkNut2 DoPostScriptAction 0x0001 Call sub_080752AC EnablePlayerControl - Call sub_080791D0 + Call ResetPlayerAnimationAndAction SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerAtDarkNut3.inc b/data/scripts/dhc/script_PlayerAtDarkNut3.inc index b092a4c7..698c4108 100644 --- a/data/scripts/dhc/script_PlayerAtDarkNut3.inc +++ b/data/scripts/dhc/script_PlayerAtDarkNut3.inc @@ -11,5 +11,5 @@ SCRIPT_START script_PlayerAtDarkNut3 DoPostScriptAction 0x0001 Call sub_080752AC EnablePlayerControl - Call sub_080791D0 + Call ResetPlayerAnimationAndAction SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerCastleCollapsing.inc b/data/scripts/dhc/script_PlayerCastleCollapsing.inc index 509a5e68..5ee0ccfe 100644 --- a/data/scripts/dhc/script_PlayerCastleCollapsing.inc +++ b/data/scripts/dhc/script_PlayerCastleCollapsing.inc @@ -7,5 +7,5 @@ SCRIPT_START script_PlayerCastleCollapsing DoPostScriptAction 0x0000 _0807EEF4 0x0000, 0x0080 SetSyncFlag 0x00000004 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerCastleEscape.inc b/data/scripts/dhc/script_PlayerCastleEscape.inc index 5f57f7d8..45468213 100644 --- a/data/scripts/dhc/script_PlayerCastleEscape.inc +++ b/data/scripts/dhc/script_PlayerCastleEscape.inc @@ -7,5 +7,5 @@ SCRIPT_START script_PlayerCastleEscape SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerRescuedZelda.inc b/data/scripts/dhc/script_PlayerRescuedZelda.inc index 66d6d108..b792296a 100644 --- a/data/scripts/dhc/script_PlayerRescuedZelda.inc +++ b/data/scripts/dhc/script_PlayerRescuedZelda.inc @@ -8,6 +8,6 @@ SCRIPT_START script_PlayerRescuedZelda SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/dhc/script_PlayerStonesFall.inc b/data/scripts/dhc/script_PlayerStonesFall.inc index 12ba8a9d..538adc2a 100644 --- a/data/scripts/dhc/script_PlayerStonesFall.inc +++ b/data/scripts/dhc/script_PlayerStonesFall.inc @@ -6,5 +6,5 @@ SCRIPT_START script_PlayerStonesFall CallWithArg SetPlayerAnimation2, 0x000003c5 Call WaitForPlayerFrameHiBit SetSyncFlag 0x00000004 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/dhc/script_PlayerV2Defeated.inc b/data/scripts/dhc/script_PlayerV2Defeated.inc index 33f6d785..f16621e5 100644 --- a/data/scripts/dhc/script_PlayerV2Defeated.inc +++ b/data/scripts/dhc/script_PlayerV2Defeated.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerV2Defeated DoPostScriptAction 0x0001 _0807EDD4 0x00a8, 0x002c SetSyncFlag 0x00000002 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc b/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc index cbb2b2d3..99931985 100644 --- a/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc +++ b/data/scripts/graveyard/script_PlayerAtGraveyardHouseDoor.inc @@ -12,5 +12,5 @@ SCRIPT_START script_PlayerAtGraveyardHouseDoor DoPostScriptAction 0x000d SetEntitySpeed 0x0100 WalkSouth 0x0010 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/graveyard/script_PlayerAtKingGustav.inc b/data/scripts/graveyard/script_PlayerAtKingGustav.inc index d2f7d3bd..96b9a99e 100644 --- a/data/scripts/graveyard/script_PlayerAtKingGustav.inc +++ b/data/scripts/graveyard/script_PlayerAtKingGustav.inc @@ -8,5 +8,5 @@ SCRIPT_START script_PlayerAtKingGustav SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/graveyard/script_PlayerGetKeyStolen.inc b/data/scripts/graveyard/script_PlayerGetKeyStolen.inc index 6133e319..bad5627b 100644 --- a/data/scripts/graveyard/script_PlayerGetKeyStolen.inc +++ b/data/scripts/graveyard/script_PlayerGetKeyStolen.inc @@ -16,6 +16,6 @@ SCRIPT_START script_PlayerGetKeyStolen _0807EF3C 0x0200, 0x0020 DoPostScriptAction 0x0000 SetSyncFlag 0x00000040 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_Anju.inc b/data/scripts/hyruleTown/script_Anju.inc index 96b1b07b..6e931df0 100644 --- a/data/scripts/hyruleTown/script_Anju.inc +++ b/data/scripts/hyruleTown/script_Anju.inc @@ -45,7 +45,7 @@ script_080101AC: DoFade5 WaitForFadeFinish CallWithArg SetPlayerPos, 0x03400378 - Call sub_080791BC + Call SetPlayerActionNormal Call sub_0807FB74 _0807E8E4_1 Call SetPlayerCollisionLayer1 diff --git a/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc b/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc index da2b3e4f..5580f5d1 100644 --- a/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc +++ b/data/scripts/hyruleTown/script_PlayerActivatedTrapCard.inc @@ -11,6 +11,6 @@ SCRIPT_START script_PlayerActivatedTrapCard DoPostScriptAction 0x0005 Wait 0x003c SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc b/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc index bcc539a8..1d878f5f 100644 --- a/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc +++ b/data/scripts/hyruleTown/script_PlayerAtDrLeftDoor.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerAtDrLeftDoor DoPostScriptAction 0x0001 WalkSouth 0x0008 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc b/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc index 25411c1b..adef60a5 100644 --- a/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc +++ b/data/scripts/hyruleTown/script_PlayerAtInnDoor.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerAtInnDoor SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerCannotEnter.inc b/data/scripts/hyruleTown/script_PlayerCannotEnter.inc index e7ef3883..581e1839 100644 --- a/data/scripts/hyruleTown/script_PlayerCannotEnter.inc +++ b/data/scripts/hyruleTown/script_PlayerCannotEnter.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerCannotEnter SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerSleepingInn.inc b/data/scripts/hyruleTown/script_PlayerSleepingInn.inc index 53d68d84..c432019d 100644 --- a/data/scripts/hyruleTown/script_PlayerSleepingInn.inc +++ b/data/scripts/hyruleTown/script_PlayerSleepingInn.inc @@ -15,6 +15,6 @@ script_08010A78: DoPostScriptAction 0x0014 EnablePlayerControl Call sub_0807DF50 - Call sub_080791D0 + Call ResetPlayerAnimationAndAction SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc b/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc index 261a7afb..bc6ae225 100644 --- a/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc +++ b/data/scripts/hyruleTown/script_PlayerStepOnTrap.inc @@ -8,5 +8,5 @@ SCRIPT_START script_PlayerStepOnTrap _0807EDD4 0x0078, 0x0080 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/hyruleTown/script_TownMinish5.inc b/data/scripts/hyruleTown/script_TownMinish5.inc index b69a9b3b..d4ae341c 100644 --- a/data/scripts/hyruleTown/script_TownMinish5.inc +++ b/data/scripts/hyruleTown/script_TownMinish5.inc @@ -60,5 +60,5 @@ script_0800EEFE: MessageFromTarget 0x4c09 WaitUntilTextboxCloses SetSyncFlag 0x00000048 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/lakeHylia/script_PlayerAfterToD.inc b/data/scripts/lakeHylia/script_PlayerAfterToD.inc index 8ad9a855..d53540ad 100644 --- a/data/scripts/lakeHylia/script_PlayerAfterToD.inc +++ b/data/scripts/lakeHylia/script_PlayerAfterToD.inc @@ -6,6 +6,6 @@ SCRIPT_START script_PlayerAfterToD DoPostScriptAction 0x0004 Wait 0x003c SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/minishWoods/script_PlayerAtBombMinish.inc b/data/scripts/minishWoods/script_PlayerAtBombMinish.inc index aa830e48..89e06331 100644 --- a/data/scripts/minishWoods/script_PlayerAtBombMinish.inc +++ b/data/scripts/minishWoods/script_PlayerAtBombMinish.inc @@ -9,5 +9,5 @@ SCRIPT_START script_PlayerAtBombMinish Wait 0x000f DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/minishWoods/script_PlayerAtFestari.inc b/data/scripts/minishWoods/script_PlayerAtFestari.inc index 90ad2c76..ac2f94c3 100644 --- a/data/scripts/minishWoods/script_PlayerAtFestari.inc +++ b/data/scripts/minishWoods/script_PlayerAtFestari.inc @@ -8,5 +8,5 @@ SCRIPT_START script_PlayerAtFestari Wait 0x000f DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/minishWoods/script_PlayerAtGentari.inc b/data/scripts/minishWoods/script_PlayerAtGentari.inc index 9e6468d3..0804180c 100644 --- a/data/scripts/minishWoods/script_PlayerAtGentari.inc +++ b/data/scripts/minishWoods/script_PlayerAtGentari.inc @@ -9,5 +9,5 @@ SCRIPT_START script_PlayerAtGentari Wait 0x000f DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/minishWoods/script_PlayerAtMadderpillar.inc b/data/scripts/minishWoods/script_PlayerAtMadderpillar.inc index 4c48cc9f..b2fd8ee9 100644 --- a/data/scripts/minishWoods/script_PlayerAtMadderpillar.inc +++ b/data/scripts/minishWoods/script_PlayerAtMadderpillar.inc @@ -12,5 +12,5 @@ SCRIPT_START script_PlayerAtMadderpillar DoPostScriptAction 0x0001 Call sub_080752AC EnablePlayerControl - Call sub_080791D0 + Call ResetPlayerAnimationAndAction SCRIPT_END diff --git a/data/scripts/mtCrenel/script_PlayerAtMelari.inc b/data/scripts/mtCrenel/script_PlayerAtMelari.inc index 82b3248e..b4560caa 100644 --- a/data/scripts/mtCrenel/script_PlayerAtMelari.inc +++ b/data/scripts/mtCrenel/script_PlayerAtMelari.inc @@ -7,5 +7,5 @@ SCRIPT_START script_PlayerAtMelari SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000008 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc b/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc index 0fda5e29..1d3e1947 100644 --- a/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc +++ b/data/scripts/mtCrenel/script_PlayerAtMountainMinishExit.inc @@ -8,6 +8,6 @@ SCRIPT_START script_PlayerAtMountainMinishExit DoPostScriptAction 0x000d WalkSouth 0x0020 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc b/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc index 10eed28e..6c1f1237 100644 --- a/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc +++ b/data/scripts/mtCrenel/script_PlayerGetWhiteSword.inc @@ -8,5 +8,5 @@ SCRIPT_START script_PlayerGetWhiteSword MessageNoOverlap 0x0502 WaitUntilTextboxCloses SetSyncFlag 0x00000008 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc b/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc index 804412ab..fad1fc4f 100644 --- a/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc +++ b/data/scripts/mtCrenel/script_PlayerPlaceBrokenSword.inc @@ -8,6 +8,6 @@ SCRIPT_START script_PlayerPlaceBrokenSword SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000008 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/npc/script_PlayerAtBladeBrothers.inc b/data/scripts/npc/script_PlayerAtBladeBrothers.inc index d2025632..319170e6 100644 --- a/data/scripts/npc/script_PlayerAtBladeBrothers.inc +++ b/data/scripts/npc/script_PlayerAtBladeBrothers.inc @@ -5,5 +5,5 @@ SCRIPT_START script_PlayerAtBladeBrothers SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc b/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc index 9a57f37f..36e26a82 100644 --- a/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc +++ b/data/scripts/sanctuary/script_Npc4EThirdSanctuary.inc @@ -60,7 +60,7 @@ script_080138D0: StartPlayerScript script_PlayerPickUpFinalSword SetSyncFlag 0x00000080 _0807F078 0x0006, 0x0001 - Call sub_0807AEE4 + Call UpdatePlayerSkills Call sub_0806DC3C Call sub_0806DC58 Call WaitForPlayerFrameHiBit diff --git a/data/scripts/sanctuary/script_PlayerAtPedestal.inc b/data/scripts/sanctuary/script_PlayerAtPedestal.inc index 0f82e0a9..6f85106d 100644 --- a/data/scripts/sanctuary/script_PlayerAtPedestal.inc +++ b/data/scripts/sanctuary/script_PlayerAtPedestal.inc @@ -14,5 +14,5 @@ script_08013704: SetAnimationState 0x0004 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc b/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc index b6c21762..69391d04 100644 --- a/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc +++ b/data/scripts/sanctuary/script_PlayerAtSanctuaryEntrance.inc @@ -8,5 +8,5 @@ SCRIPT_START script_PlayerAtSanctuaryEntrance DoPostScriptAction 0x0000 Wait 0x001e SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc b/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc index fd4063b1..a8148e96 100644 --- a/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc +++ b/data/scripts/sanctuary/script_PlayerPickUpFinalSword.inc @@ -9,5 +9,5 @@ SCRIPT_START script_PlayerPickUpFinalSword Call WaitForPlayerFrameHiBit Wait 0x0078 WaitForSyncFlagAndClear 0x00040000 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/sanctuary/script_PlayerPickUpSword.inc b/data/scripts/sanctuary/script_PlayerPickUpSword.inc index 0523c018..ca4a3ea3 100644 --- a/data/scripts/sanctuary/script_PlayerPickUpSword.inc +++ b/data/scripts/sanctuary/script_PlayerPickUpSword.inc @@ -8,6 +8,6 @@ SCRIPT_START script_PlayerPickUpSword Call WaitForPlayerFrameHiBit Wait 0x0078 WaitForSyncFlagAndClear 0x00040000 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_PlayerSanctuary.inc b/data/scripts/sanctuary/script_PlayerSanctuary.inc index 05672507..0f2d0fee 100644 --- a/data/scripts/sanctuary/script_PlayerSanctuary.inc +++ b/data/scripts/sanctuary/script_PlayerSanctuary.inc @@ -7,6 +7,6 @@ SCRIPT_START script_PlayerSanctuary SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc b/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc index 9ea5a652..a71e0f6b 100644 --- a/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc +++ b/data/scripts/sanctuary/script_PlayerSanctuaryIntro.inc @@ -5,5 +5,5 @@ SCRIPT_START script_PlayerSanctuaryIntro SetEntityPositionRelative 0x0098, 0x0070 EndBlock SetSyncFlag 0x00000002 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc b/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc index 77e9fc90..516cef54 100644 --- a/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc +++ b/data/scripts/sanctuary/script_PlayerTextBoardAppears.inc @@ -7,5 +7,5 @@ SCRIPT_START script_PlayerTextBoardAppears SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000002 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/unused/script_0800FB2C.inc b/data/scripts/unused/script_0800FB2C.inc index ec0ad048..1da1d47c 100644 --- a/data/scripts/unused/script_0800FB2C.inc +++ b/data/scripts/unused/script_0800FB2C.inc @@ -3,6 +3,6 @@ SCRIPT_START script_0800FB2C SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/unused/script_08012B24.inc b/data/scripts/unused/script_08012B24.inc index 5483ab0b..5691eba9 100644 --- a/data/scripts/unused/script_08012B24.inc +++ b/data/scripts/unused/script_08012B24.inc @@ -8,5 +8,5 @@ SCRIPT_START script_08012B24 WalkSouth 0x0008 SetSyncFlag 0x00000002 CallWithArg sub_0807FB64, 0xffffffe2 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/unused/script_08012B50.inc b/data/scripts/unused/script_08012B50.inc index a7a3f781..8fb1d22f 100644 --- a/data/scripts/unused/script_08012B50.inc +++ b/data/scripts/unused/script_08012B50.inc @@ -8,5 +8,5 @@ SCRIPT_START script_08012B50 WalkNorth 0x0008 SetSyncFlag 0x00000002 CallWithArg sub_0807FB64, 0xffffffe2 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/unused/script_08012B7C.inc b/data/scripts/unused/script_08012B7C.inc index 50328e8a..525c228e 100644 --- a/data/scripts/unused/script_08012B7C.inc +++ b/data/scripts/unused/script_08012B7C.inc @@ -8,5 +8,5 @@ SCRIPT_START script_08012B7C WalkEast 0x0008 SetSyncFlag 0x00000002 CallWithArg sub_0807FB64, 0xffffffe2 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/data/scripts/unused/script_08013D04.inc b/data/scripts/unused/script_08013D04.inc index 276d2f05..42887fa3 100644 --- a/data/scripts/unused/script_08013D04.inc +++ b/data/scripts/unused/script_08013D04.inc @@ -11,7 +11,7 @@ script_08013D1C: CallWithArg sub_08095D54, 0x00000000 PlaySound SFX_ELEMENT_PLACE SetSyncFlag 0x08000000 - Call sub_080791BC + Call SetPlayerActionNormal DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/unused/script_08013D44.inc b/data/scripts/unused/script_08013D44.inc index e375acd4..98c44d0d 100644 --- a/data/scripts/unused/script_08013D44.inc +++ b/data/scripts/unused/script_08013D44.inc @@ -11,7 +11,7 @@ script_08013D5C: CallWithArg sub_08095D54, 0x00000001 PlaySound SFX_ELEMENT_PLACE SetSyncFlag 0x10000000 - Call sub_080791BC + Call SetPlayerActionNormal DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/unused/script_08013D84.inc b/data/scripts/unused/script_08013D84.inc index 53a064ac..bc67ff99 100644 --- a/data/scripts/unused/script_08013D84.inc +++ b/data/scripts/unused/script_08013D84.inc @@ -11,7 +11,7 @@ script_08013D9C: CallWithArg sub_08095D54, 0x00000002 PlaySound SFX_ELEMENT_PLACE SetSyncFlag 0x20000000 - Call sub_080791BC + Call SetPlayerActionNormal DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/unused/script_08013DC4.inc b/data/scripts/unused/script_08013DC4.inc index 62c876c7..ac92c6db 100644 --- a/data/scripts/unused/script_08013DC4.inc +++ b/data/scripts/unused/script_08013DC4.inc @@ -11,7 +11,7 @@ script_08013DDC: CallWithArg sub_08095D54, 0x00000003 PlaySound SFX_ELEMENT_PLACE SetSyncFlag 0x40000000 - Call sub_080791BC + Call SetPlayerActionNormal DoPostScriptAction 0x0006 SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/unused/script_08015A7C.inc b/data/scripts/unused/script_08015A7C.inc index 870e0b9d..babfa3f5 100644 --- a/data/scripts/unused/script_08015A7C.inc +++ b/data/scripts/unused/script_08015A7C.inc @@ -6,6 +6,6 @@ SCRIPT_START script_08015A7C SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/unused/script_08015AA0.inc b/data/scripts/unused/script_08015AA0.inc index 746324a2..460df964 100644 --- a/data/scripts/unused/script_08015AA0.inc +++ b/data/scripts/unused/script_08015AA0.inc @@ -6,6 +6,6 @@ SCRIPT_START script_08015AA0 SetAnimationState 0x0002 DoPostScriptAction 0x0000 SetSyncFlag 0x00000004 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END .2byte 0x0000 diff --git a/data/scripts/windRuins/script_PlayerAtTextboard.inc b/data/scripts/windRuins/script_PlayerAtTextboard.inc index b8b909df..c85f6145 100644 --- a/data/scripts/windRuins/script_PlayerAtTextboard.inc +++ b/data/scripts/windRuins/script_PlayerAtTextboard.inc @@ -8,5 +8,5 @@ SCRIPT_START script_PlayerAtTextboard SetAnimationState 0x0000 DoPostScriptAction 0x0000 SetSyncFlag 0x00000001 - Call sub_080791BC + Call SetPlayerActionNormal SCRIPT_END diff --git a/include/asm.h b/include/asm.h index 360c0fb1..fa0476ba 100644 --- a/include/asm.h +++ b/include/asm.h @@ -7,21 +7,28 @@ struct Entity_; extern u32 Random(void); extern void sub_08000152(u32, u32, u32); +extern u32 GetTileTypeByEntity(struct Entity_*); +extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer); +extern u32 GetTileType(u32 pos, u32 layer); extern void SetTile(u32 index, u32 position, u32 layer); extern u32 sub_080002D0(struct Entity_*); +extern void LoadResourceAsync(const void*, u32, u32); extern void sub_08001242(struct Entity_*); extern void sub_08001290(struct Entity_*, u32); extern void sub_08001324(struct Entity_*); extern u32 sub_08002632(struct Entity_*); +extern u32 CheckPlayerInRegion(u32 centerX, u32 centerY, u32 radiusX, u32 radiusY); extern u32 GravityUpdate(struct Entity_*, u32); -extern u32 sub_080043E8(struct Entity_*); -extern void sub_08004484(struct Entity_*, struct Entity_*); -extern u32 sub_080045D4(u32, u32, u32, u32); -extern u32 sub_080045DA(s32, s32); -extern void sub_08004596(struct Entity_*, u32); -extern u32 sub_080045B4(struct Entity_*, u32, u32); +extern u32 CheckOnScreen(struct Entity_*); extern u32 EntityInRectRadius(struct Entity_*, struct Entity_*, u32, u32); extern void UpdateAnimationVariableFrames(struct Entity_*, u32); +extern u32 sub_080043E8(struct Entity_*); +extern void sub_08004484(struct Entity_*, struct Entity_*); +extern void ResetCollisionLayer(struct Entity_*); +extern void sub_08004596(struct Entity_*, u32); +extern u32 sub_080045B4(struct Entity_*, u32, u32); +extern u32 sub_080045D4(u32, u32, u32, u32); +extern u32 sub_080045DA(s32, s32); extern u32 sub_080086B4(u32, u32, u8*); #endif // ASM_H diff --git a/include/coord.h b/include/coord.h index 4b6556e6..85a56ce2 100644 --- a/include/coord.h +++ b/include/coord.h @@ -17,7 +17,7 @@ void ResolveEntityBelow(Entity*, Entity*); u32 sub_0806F5A4(u32 idx); u32 sub_0806F3E4(Entity*); -void sub_0806F69C(Entity*); +void LinearMoveUpdate(Entity*); extern const s16 gSineTable[64]; extern const s16 gCosineTable[256]; diff --git a/include/functions.h b/include/functions.h index 536b36ed..a271ad64 100644 --- a/include/functions.h +++ b/include/functions.h @@ -17,9 +17,6 @@ extern void ForceEquipItem(u32, u32); extern void LoadRoomEntityList(EntityData* listPtr); extern void SetChildOffset(Entity*, s32, s32, s32); extern Entity* CreatePlayerItem(u32, u32, u32, u32); -extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer); -extern u32 GetTileType(u32 pos, u32 layer); -extern void SetTile(u32, u32, u32); extern void SetDirtTile(u32); extern Entity* CreateDeathFx(Entity*, u32, u32); extern u8* GetSpriteSubEntryOffsetDataPointer(u32, u32); @@ -27,19 +24,13 @@ extern bool32 LoadFixedGFX(Entity*, u32); extern void CreateItemEntity(u32, u32, u32); extern u32 ProcessMovement(Entity*); extern void MenuFadeIn(u32, u32); -extern void LoadResourceAsync(const void*, u32, u32); extern void LoadPaletteGroup(u32); extern void TryLoadPrologueHyruleTown(void); extern void LoadGfxGroup(u32); -extern void ResetPlayer(void); -extern u32 IsItemEquipped(u32); -extern bool32 CheckPlayerInRegion(u32 centerX, u32 centerY, u32 radiusX, u32 radiusY); extern Entity* CreateProjectileWithParent(Entity*, u8, u8); -extern u32 GetTileTypeByEntity(Entity*); extern u32 GetSaleItemConfirmMessageID(u32); extern void FlushSprites(void); extern Entity* CreateProjectile(u32); -extern void RegisterPlayerHitbox(); extern s32 GetItemPrice(); extern void DoExitTransition(ScreenTransitionData*); extern void CreateDustAt(s32, s32, u32); @@ -49,7 +40,6 @@ extern Entity* CreateSpeechBubbleExclamationMark(Entity*, s32, s32); extern Entity* CreateSpeechBubbleSleep(Entity*, s32, s32); // Unidentified -extern void sub_080791D0(); extern void sub_0805EC9C(); extern void sub_0805EC60(Entity*); extern void sub_0806D0B0(Entity*); @@ -128,7 +118,6 @@ extern void sub_080A7114(u32); extern u32 sub_0807953C(void); extern void sub_080AE068(Entity*); extern u32 sub_0800445C(Entity*); -extern void sub_0807A108(void); extern u32 sub_0801766C(Entity*); extern void sub_08004168(Entity*); extern void sub_08056208(void); @@ -142,13 +131,9 @@ extern void sub_080784C8(); extern u32 sub_0808288C(Entity*, u32, u32, u32); extern void sub_0806FDA0(Entity*); extern bool32 LoadSwapGFX(Entity*, u16, u32); -extern u32 sub_08016A30(Entity*); +extern u32 ResolveCollisionLayer(Entity*); extern void sub_08077728(); -extern void sub_0807AEE4(); -extern u32 RunQueuedAction(); extern void sub_0807921C(); -extern void UpdateFloorType(); -extern void sub_08079938(); extern void sub_0807ACCC(Entity*); extern void sub_080A2BE4(Entity*, u32); extern u32 sub_08097ADC(Entity*); @@ -161,7 +146,6 @@ extern void sub_0802F45C(Entity*); extern u32 sub_0800419C(Entity*, Entity*, u32, u32); extern void sub_08004542(Entity*); extern void sub_08077B20(); -extern bool32 CheckOnScreen(Entity*); extern u32 sub_08017850(Entity*); extern void sub_080809D4(void); extern void sub_08080CB4(Entity*); @@ -188,21 +172,16 @@ extern void sub_0801DFB4(Entity*, u32, u32, u32); extern void sub_0801E00C(); extern void sub_08078790(Entity*, u32); extern void sub_080788E0(Entity*); -extern void CreateEzloHint(u32, u32); extern void sub_08078B48(void); extern void sub_0807919C(); extern void sub_0807CAA0(u32, u32); extern void sub_080085B0(Entity*); extern u32 sub_08079D48(); extern u32 sub_08008B22(); -extern void sub_080791BC9(); -extern void sub_080791BC(); extern void MessageClose(); extern u32 sub_080542AC(u32); extern u32 sub_08079FC4(u32); -extern void sub_0800455E(Entity*); extern u32* sub_08008790(Entity*, u32); -extern void sub_0804ACF8(); extern void sub_0805F8E4(u32 r0, WStruct* r1); extern Entity* sub_08077C94(ItemBehavior*, u32); diff --git a/include/overworld.h b/include/overworld.h index 2ffa87d9..43ae0c1a 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -17,8 +17,7 @@ u32 CheckIsInteriorWithEnemies(void); u32 CheckIsInteriorNoEnemies(void); u32 CheckHasMap(void); -s32 ModHealth(s32 deltaHealth); -void ModRupees(s32 rupeeDelta); +u32 ItemIsSword(u32 item); void sub_080526F8(s32 a1); u32 sub_08052724(void); @@ -50,7 +49,6 @@ u32 GetFlagBankOffset(u32 idx); RoomResInfo* GetCurrentRoomInfo(void); void sub_08052EA0(void); void sub_08052FD8(u32 room, u32 area); -void UpdateGlobalProgress(void); void sub_08053250(void); void sub_08053320(void); void sub_080533CC(void); diff --git a/include/player.h b/include/player.h index 7d29812c..76350008 100644 --- a/include/player.h +++ b/include/player.h @@ -211,7 +211,7 @@ typedef struct { /* */ u8 filler14 : 6; /*0x3f*/ u8 field_0x3f; /*0x40*/ u8 hurtType[64]; - /*0x80*/ u16 field_0x80; + /*0x80*/ u16 speed_modifier; /*0x82*/ u8 field_0x82[9]; /*0x8b*/ u8 controlMode; /*0x8c*/ u16 vel_x; @@ -277,11 +277,23 @@ extern PlayerState gPlayerState; extern Stats gStats; extern Entity gPlayerEntity; -extern u32 GetInventoryValue(u32); -extern s32 ModHealth(s32); -extern void ModRupees(s32); +void SetPlayerControl(PlayerControlMode mode); +void ResetPlayer(void); +void ResetPlayerVelocity(void); +void ResetPlayerAnimationAndAction(void); +void SetPlayerActionNormal(void); +void RespawnAsMinish(void); -extern void SetPlayerControl(PlayerControlMode); +void ResolvePlayerAnimation(void); +void RegisterPlayerHitbox(void); +void UpdateFloorType(void); +void CreateEzloHint(u32, u32); + +u32 IsItemEquipped(u32); +u32 GetInventoryValue(u32); +s32 ModHealth(s32 delta); +void ModRupees(s32 delta); +void DeleteClones(void); #define COPY_FLAG_FROM_TO(base, src, dest) (base) = ((base) & ~(dest)) | (((dest) * ((base) & (src))) / src) diff --git a/include/room.h b/include/room.h index 5e603926..e9fbcc32 100644 --- a/include/room.h +++ b/include/room.h @@ -35,7 +35,7 @@ typedef struct { /*0x0A*/ s16 roomScrollX; /*0x0C*/ s16 roomScrollY; /*0x0E*/ u8 unk5; - /*0x0F*/ u8 unk6; + /*0x0F*/ u8 scroll_flags; // 0x2 = ??, 0x4 = camera scrolling /*0x10*/ u8 unk_10; /*0x11*/ s8 oam_offset_x; /*0x12*/ s8 oam_offset_y; diff --git a/include/save.h b/include/save.h index 1126973d..7b5bc2f7 100644 --- a/include/save.h +++ b/include/save.h @@ -61,6 +61,8 @@ void SetFileStatusDeleted(u32 index); extern const char gUnk_0811E470[]; +void UpdateGlobalProgress(void); + #ifdef DEMO_USA extern const u8* const demoPointers[]; extern const u8 demoUnknown1[]; diff --git a/src/audio.c b/src/audio.c index 16e22303..998b00b4 100644 --- a/src/audio.c +++ b/src/audio.c @@ -4,8 +4,8 @@ #include "audio.h" #include "utils.h" -#define IS_BGM(song) (song) - 1 <= NUM_BGM - 1 -#define IS_SFX(song) (song) - 1 > NUM_BGM - 1 +#define IS_BGM(song) ((song)-1 <= NUM_BGM - 1) +#define IS_SFX(song) ((song)-1 > NUM_BGM - 1) static s32 fade(s32 target, s32 current); static void doPlaySound(u32 sound); @@ -44,7 +44,7 @@ void SetSfxVolume(u32 volume) { gSoundPlayingInfo.volumeSfx = volume; } -void SoundReq(Sound sound) { +void SoundReq(u32 sound) { u32 song; SoundPlayingInfo* ptr; if (gMain.field_0x7) diff --git a/src/code_0805436C.c b/src/code_0805436C.c index 62853444..d0df011a 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -4,17 +4,15 @@ #include "menu.h" #include "area.h" #include "utils.h" -#include "structures.h" #include "save.h" +#include "item.h" typedef struct { u8 unk; u8 filler[7]; } struct_080FD5B4; -extern SaveFile gSave; extern struct_080FD5B4 gUnk_080FD5B4[]; -extern ScreenTransition gScreenTransition; extern u8 gUnk_0200AF13; extern u8 gUnk_0200AF14; @@ -96,16 +94,16 @@ u32 SetBottleContents(u32 itemID, u32 bottleIndex) { return bottleIndex; } -u32 ItemIsSword(u32 arg0) { - switch (arg0) { - case 1: - case 2: - case 3: - case 4: - case 6: - return 1; +u32 ItemIsSword(u32 item) { + switch (item) { + case ITEM_SMITH_SWORD: + case ITEM_GREEN_SWORD: + case ITEM_RED_SWORD: + case ITEM_BLUE_SWORD: + case ITEM_FOURSWORD: + return TRUE; default: - return 0; + return FALSE; } } diff --git a/src/code_0805F9A0.c b/src/code_0805F9A0.c index a921491e..1ba583b5 100644 --- a/src/code_0805F9A0.c +++ b/src/code_0805F9A0.c @@ -2,6 +2,7 @@ #include "utils.h" #include "structures.h" #include "functions.h" +#include "asm.h" extern u16 gUnk_081092D4; extern u8 gUnk_081094CE; diff --git a/src/code_08077B98.c b/src/code_08077B98.c index fddfcace..dc3d5a0a 100644 --- a/src/code_08077B98.c +++ b/src/code_08077B98.c @@ -10,7 +10,6 @@ typedef struct { u8 field_0x1; } UnkItemStruct; -Entity* sub_08077C94(ItemBehavior*, u32); void* sub_08077C54(UnkItemStruct* unk); Entity* CreatePlayerBomb(ItemBehavior*, u32); extern Entity* sub_0805E744(); diff --git a/src/code_0807CC3C.c b/src/code_0807CC3C.c index 25458be5..de4f6e24 100644 --- a/src/code_0807CC3C.c +++ b/src/code_0807CC3C.c @@ -1,9 +1,4 @@ #include "global.h" -#include "structures.h" -#include "functions.h" -#include "script.h" -#include "entity.h" -#include "save.h" // these three functions use gRoomControls, maybe once that is understood better, these can be decompiled easier ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D280.inc", void sub_0807D280(u32 unk_1, u32 unk_2)) diff --git a/src/code_0808091C.c b/src/code_0808091C.c index 2b4dceb0..51e23169 100644 --- a/src/code_0808091C.c +++ b/src/code_0808091C.c @@ -3,7 +3,6 @@ #include "structures.h" #include "functions.h" #include "overworld.h" -#include "room.h" extern void sub_08080BC4(void); @@ -97,7 +96,7 @@ void sub_080809D4(void) { int x, y; int var1, var0; RoomControls* roomControls = &gRoomControls; - roomControls->unk6 &= 0xFB; + roomControls->scroll_flags &= ~4; target = roomControls->cameraTarget; x = target->x.HALF.HI; diff --git a/src/code_080A29BC.c b/src/code_080A29BC.c index 17fb9fba..17ea28b0 100644 --- a/src/code_080A29BC.c +++ b/src/code_080A29BC.c @@ -2,7 +2,6 @@ #include "entity.h" #include "room.h" #include "object.h" -#include "effects.h" void sub_080A29C8(s32 xOff, s32 yOff, u32 layer) { Entity* pEVar1; diff --git a/src/collision.c b/src/collision.c index 61df2b48..db07ec77 100644 --- a/src/collision.c +++ b/src/collision.c @@ -6,8 +6,8 @@ #include "utils.h" #include "functions.h" #include "enemy.h" -#include "effects.h" #include "object.h" +#include "overworld.h" extern u8 gCollidableCount; extern u8 gUnk_080B3740[]; @@ -317,7 +317,6 @@ Entity* sub_08017A90(Entity* a1, Entity* parent) { } typedef s32 (*CollisionHandler)(Entity* org, Entity* tgt, u32 direction, ColSettings* settings); -s32 sub_08018308(Entity* org, Entity* tgt, u32 direction, ColSettings* settings); s32 CollisionNoOp(Entity* org, Entity* tgt, u32 direction, ColSettings* settings); s32 CollisionGroundItem(Entity* org, Entity* tgt, u32 direction, ColSettings* settings); s32 sub_08017B58(Entity* org, Entity* tgt, u32 direction, ColSettings* settings); diff --git a/src/coord.c b/src/coord.c index e982aa9d..b9209b69 100644 --- a/src/coord.c +++ b/src/coord.c @@ -1,8 +1,6 @@ #include "asm.h" #include "area.h" #include "player.h" -#include "global.h" -#include "entity.h" #include "coord.h" #include "utils.h" #include "audio.h" @@ -163,7 +161,7 @@ void sub_0806F62C(Entity* ent, u32 a, u32 b) { ent->y.WORD -= FixedDiv(FixedMul(gSineTable[(u8)b + 64], a), 256) << 8; } -void sub_0806F69C(Entity* ent) { +void LinearMoveUpdate(Entity* ent) { if ((ent->direction & 0x80) == 0) { ent->x.WORD += FixedDiv(FixedMul(gSineTable[ent->direction * 8], ent->speed), 256) << 8; ent->y.WORD -= FixedDiv(FixedMul(gSineTable[ent->direction * 8 + 64], ent->speed), 256) << 8; diff --git a/src/debugScreen.c b/src/debugScreen.c index c3ddf710..958791fa 100644 --- a/src/debugScreen.c +++ b/src/debugScreen.c @@ -5,7 +5,6 @@ #include "main.h" #include "menu.h" #include "screen.h" -#include "structures.h" #include "textbox.h" extern void (*const gUnk_08109A30[])(); diff --git a/src/enemy.c b/src/enemy.c index af4a68de..e9d4f51d 100644 --- a/src/enemy.c +++ b/src/enemy.c @@ -1,4 +1,3 @@ -#include "global.h" #include "entity.h" #include "enemy.h" #include "definitions.h" diff --git a/src/enemy/acroBandits.c b/src/enemy/acroBandits.c index 865791d5..2fe6e41b 100644 --- a/src/enemy/acroBandits.c +++ b/src/enemy/acroBandits.c @@ -12,7 +12,6 @@ extern void sub_08032338(Entity*); extern Entity* sub_08049DF4(u32); extern Entity* gUnk_020000B0; -extern u8 gEntCount; extern void (*const gUnk_080012C8[])(Entity*); extern void (*const gUnk_080CE56C[])(Entity*); extern void (*const gUnk_080CE584[])(Entity*); @@ -411,12 +410,12 @@ void sub_08032008(Entity* this) { this->field_0x76.HALF.HI = 1; this->direction = GetFacingDirection(this, parent); sub_080322E8(this); - sub_0806F69C(this); + LinearMoveUpdate(this); } } else { this->direction = GetFacingDirection(this, parent); sub_080322E8(this); - sub_0806F69C(this); + LinearMoveUpdate(this); if (this->x.HALF.HI == parent->x.HALF.HI && this->y.HALF.HI == parent->y.HALF.HI) this->field_0x76.HALF.HI = 0; } diff --git a/src/enemy/beetle.c b/src/enemy/beetle.c index de27657c..e286f6f4 100644 --- a/src/enemy/beetle.c +++ b/src/enemy/beetle.c @@ -245,7 +245,7 @@ void sub_08021B64(Entity* this) { InitializeAnimation(this, 5); } else { gPlayerState.field_0x1a[0] |= 0x80; - gPlayerState.field_0x80 -= 0x50; + gPlayerState.speed_modifier -= 0x50; gPlayerState.field_0xaa++; CopyPositionAndSpriteOffset(&gPlayerEntity, this); this->x.HALF.HI += gUnk_080CB5E4[(this->field_0xf++ & 0xe) >> 1]; diff --git a/src/enemy/bladeTrap.c b/src/enemy/bladeTrap.c index 70fd869c..ecad5157 100644 --- a/src/enemy/bladeTrap.c +++ b/src/enemy/bladeTrap.c @@ -1,4 +1,3 @@ -#include "global.h" #include "audio.h" #include "entity.h" #include "room.h" @@ -13,7 +12,7 @@ void BladeTrap(Entity* this) { sub_080A2CC0(this, &this->child, &this->field_0x74); } if (!(this->direction & 0x80)) { - sub_0806F69C(this); + LinearMoveUpdate(this); } if (!(--this->field_0x74.HWORD)) { diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c index 71e0540d..45800c5c 100644 --- a/src/enemy/bombPeahat.c +++ b/src/enemy/bombPeahat.c @@ -1,5 +1,4 @@ #include "asm.h" -#include "global.h" #include "entity.h" #include "enemy.h" #include "player.h" @@ -280,7 +279,7 @@ ASM_FUNC("asm/non_matching/eu/sub_0802AC40.inc", void sub_0802AC40(Entity* this) #else void sub_0802AC40(Entity* this) { GetNextFrame(this); - sub_0806F69C(this); + LinearMoveUpdate(this); if (this->field_0x7a.HALF.LO) { if (sub_0802B234(this) == 0) { this->field_0x7a.HALF.LO = 0; diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index e53d46e5..e6b544b3 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -1,15 +1,11 @@ #include "asm.h" #include "enemy.h" -#include "audio.h" -#include "entity.h" -#include "flags.h" #include "textbox.h" #include "save.h" #include "npc.h" #include "functions.h" -#include "effects.h" +#include "overworld.h" -extern void LoadObjPalette(Entity*, u32); extern Entity* sub_08049DF4(u32); extern bool32 sub_08056338(void); extern void UnloadOBJPalette(Entity*); diff --git a/src/enemy/chaser.c b/src/enemy/chaser.c index 869fbfc0..af6f4b86 100644 --- a/src/enemy/chaser.c +++ b/src/enemy/chaser.c @@ -1,5 +1,4 @@ #include "enemy.h" -#include "entity.h" #include "functions.h" extern s32 sub_080012DC(Entity*); diff --git a/src/enemy/chuchu.c b/src/enemy/chuchu.c index eb77023e..9f10023a 100644 --- a/src/enemy/chuchu.c +++ b/src/enemy/chuchu.c @@ -1,8 +1,6 @@ #include "asm.h" #include "enemy.h" -#include "entity.h" #include "functions.h" -#include "audio.h" extern s32 sub_080012DC(Entity*); extern void sub_08001318(Entity*); diff --git a/src/enemy/chuchuBoss.c b/src/enemy/chuchuBoss.c index 4127be53..29c1611c 100644 --- a/src/enemy/chuchuBoss.c +++ b/src/enemy/chuchuBoss.c @@ -1,6 +1,4 @@ #include "enemy.h" -#include "entity.h" -#include "functions.h" void sub_08027870(Entity*); diff --git a/src/enemy/doorMimic.c b/src/enemy/doorMimic.c index ab1531fb..299601f8 100644 --- a/src/enemy/doorMimic.c +++ b/src/enemy/doorMimic.c @@ -1,8 +1,6 @@ #include "audio.h" #include "enemy.h" -#include "entity.h" #include "functions.h" -#include "effects.h" extern s16 sub_080001DA(u32, u32); // ? extern void sub_08049CF4(); diff --git a/src/enemy/enemyE.c b/src/enemy/enemyE.c index 6835be88..5f712d7d 100644 --- a/src/enemy/enemyE.c +++ b/src/enemy/enemyE.c @@ -1,5 +1,4 @@ #include "enemy.h" -#include "entity.h" #include "functions.h" void sub_08023000(Entity*, int); diff --git a/src/enemy/fallingBoulder.c b/src/enemy/fallingBoulder.c index 7e4ddde1..e7edf50f 100644 --- a/src/enemy/fallingBoulder.c +++ b/src/enemy/fallingBoulder.c @@ -110,7 +110,7 @@ NONMATCH("asm/non_matching/fallingBoulder/sub_0802C334.inc", void sub_0802C334(E if (y >= 5) { sub_080AEFB4(this); } else { - sub_0806F69C(this); + LinearMoveUpdate(this); if (this->z.HALF.HI - y > 0x38) { sub_0802C62C(this); this->field_0x7a.HWORD = (Random() & 0x7f) | 0x80; diff --git a/src/enemy/fireballGuy.c b/src/enemy/fireballGuy.c index ebeaaf1f..8b2fc55a 100644 --- a/src/enemy/fireballGuy.c +++ b/src/enemy/fireballGuy.c @@ -13,8 +13,6 @@ extern void (*const gUnk_080D1800[])(Entity*); extern u8 gUnk_080D180C[4]; // Entity count per form extern PosOffset gUnk_080D1810[4]; -extern u8 gEntCount; - void FireballGuy(Entity* this) { EnemyFunctionHandler(this, gUnk_080D17E8); } diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c index 40497928..95aac9ab 100644 --- a/src/enemy/gyorgMale.c +++ b/src/enemy/gyorgMale.c @@ -3,7 +3,6 @@ #include "player.h" #include "fileScreen.h" #include "functions.h" -#include "effects.h" void (*const gUnk_080D1AFC[8])(Entity*); void (*const gUnk_080D1B1C[7])(Entity*); diff --git a/src/enemy/hangingSeed.c b/src/enemy/hangingSeed.c index 2b582b57..d63e3650 100644 --- a/src/enemy/hangingSeed.c +++ b/src/enemy/hangingSeed.c @@ -1,7 +1,6 @@ #include "entity.h" #include "enemy.h" #include "functions.h" -#include "effects.h" extern void (*const gHangingSeedFunctions[])(Entity*); extern void (*const gUnk_080CB588[])(Entity*); diff --git a/src/enemy/lakituCloud.c b/src/enemy/lakituCloud.c index bb9e6b76..ae2f5a7d 100644 --- a/src/enemy/lakituCloud.c +++ b/src/enemy/lakituCloud.c @@ -85,7 +85,7 @@ void sub_0803CDA8(Entity* this) { UpdateAnimationSingleFrame(this); if ((this->direction & 0x80) == 0) { - sub_0806F69C(this); + LinearMoveUpdate(this); } if (--this->field_0x74.HWORD << 0x10 == 0) { diff --git a/src/enemy/madderpillar.c b/src/enemy/madderpillar.c index 11742547..5750e102 100644 --- a/src/enemy/madderpillar.c +++ b/src/enemy/madderpillar.c @@ -1,7 +1,6 @@ #include "enemy.h" #include "functions.h" -extern u8 gEntCount; extern Hitbox gUnk_080FD298; extern Hitbox gUnk_080FD2A0; diff --git a/src/enemy/mazaalBracelet.c b/src/enemy/mazaalBracelet.c index 584dd185..8076c212 100644 --- a/src/enemy/mazaalBracelet.c +++ b/src/enemy/mazaalBracelet.c @@ -85,7 +85,6 @@ void sub_0803B978(Entity*); void sub_0803BA6C(Entity*); void sub_0803BA80(Entity*); -extern u8 gEntCount; // these are not with the rest of this files constant data extern Hitbox gUnk_080FD35C; extern Hitbox gUnk_080FD364; @@ -242,7 +241,7 @@ void sub_0803A364(Entity* this) { break; case 5: if (sub_0803B4E4(this) == 0) { - sub_0806F69C(this); + LinearMoveUpdate(this); return; } this->type2 = 0; @@ -325,7 +324,7 @@ void sub_0803A548(Entity* this) { index = ((this->parent->field_0xf >> 4) + 3); this->z.HALF.HI = ptr[(index + (u32)this->type * 2) & 7] + 4; if (sub_0803B4E4(this) == 0) { - sub_0806F69C(this); + LinearMoveUpdate(this); } } @@ -339,7 +338,7 @@ void sub_0803A58C(Entity* this) { if (sub_0803B4E4(this) != 0) { sub_0803B59C(this); } else { - sub_0806F69C(this); + LinearMoveUpdate(this); } } @@ -408,7 +407,7 @@ void sub_0803A6E8(Entity* this) { this->actionDelay = 10; } else { sub_0803B63C(this); - sub_0806F69C(this); + LinearMoveUpdate(this); y = this->parent->y.HALF.HI + 8; if (y > this->y.HALF.HI) { this->y.HALF.HI = y; @@ -468,7 +467,7 @@ void sub_0803A7CC(Entity* this) { this->action = 0xd; InitAnimationForceUpdate(this->child, 6); } else { - sub_0806F69C(this); + LinearMoveUpdate(this); } } @@ -527,7 +526,7 @@ void sub_0803A90C(Entity* this) { this->z.HALF.HI = ptr[(index + (u32)this->type * 2) & 7] + 4; GetNextFrame(this); sub_0803B55C(this); - sub_0806F69C(this); + LinearMoveUpdate(this); this->actionDelay--; if (this->actionDelay == 0) { this->action = 0x11; @@ -550,7 +549,7 @@ void sub_0803A978(Entity* this) { if ((++this->actionDelay & 3) == 0) { sub_08004596(this, 0x10); } - sub_0806F69C(this); + LinearMoveUpdate(this); if (this->direction == 0x10) { this->action = 0x12; this->actionDelay = 3; @@ -574,7 +573,7 @@ void sub_0803AA00(Entity* this) { if ((++this->actionDelay & 3) == 0) { sub_08004596(this, direction); } - sub_0806F69C(this); + LinearMoveUpdate(this); if ((this->direction == direction) || (this->y.HALF.HI >= gPlayerEntity.y.HALF.HI)) { this->action = 0x13; this->spriteSettings.draw = 0; @@ -594,7 +593,7 @@ NONMATCH("asm/non_matching/mazaal/sub_0803AA98.inc", void sub_0803AA98(Entity* t index = ((this->parent->field_0xf >> 4) + 3); this->z.HALF.HI = ptr[(index + (u32)this->type * 2) & 7] + 4; if (sub_0803B870(this) == 0) { - sub_0806F69C(this); + LinearMoveUpdate(this); if (sub_0803B6F4(this) != 0) { this->action = 0x14; this->speed = 0x40; @@ -616,7 +615,7 @@ void sub_0803AB10(Entity* this) { ptr = gUnk_080CED6C; index = ((this->parent->field_0xf >> 4) + 3); this->z.HALF.HI = ptr[(index + (u32)this->type * 2) & 7] + 4; - sub_0806F69C(this); + LinearMoveUpdate(this); sub_0803B55C(this); if ((this->child->frame & 0x80) != 0) { this->action = 0x15; @@ -667,7 +666,7 @@ void sub_0803AC1C(Entity* this) { if (sub_0803B4E4(this)) { sub_0803B59C(this); } else { - sub_0806F69C(this); + LinearMoveUpdate(this); } } @@ -685,7 +684,7 @@ void sub_0803AC60(Entity* this) { this->subAction = 0; this->actionDelay = 0x1e; } else { - sub_0806F69C(this); + LinearMoveUpdate(this); } } else { this->actionDelay = this->actionDelay - 1; @@ -788,7 +787,7 @@ void sub_0803AE48(Entity* this) { InitializeAnimation(this, 4); } else { if (sub_0803B4E4(this) == 0) { - sub_0806F69C(this); + LinearMoveUpdate(this); } } } @@ -1049,7 +1048,7 @@ void sub_0803B398(Entity* this) { InitializeAnimation(this, 4); InitAnimationForceUpdate(this->child, 0); } else { - sub_0806F69C(this); + LinearMoveUpdate(this); } } @@ -1214,7 +1213,7 @@ void sub_0803B724(Entity* param_1) { pEVar1->x.HALF.HI = (random_value & 0x70) + temp + gRoomControls.roomOriginX; pEVar1->y.HALF.HI = ((random_value >> 0x10) & 7) * 10 + 0x5c + gRoomControls.roomOriginY; pEVar1->parent = param_1; - sub_08016A30(pEVar1); + ResolveCollisionLayer(pEVar1); param_1->field_0xf++; param_1->cutsceneBeh.HALF.LO--; } diff --git a/src/enemy/mazaalHand.c b/src/enemy/mazaalHand.c index c429e428..2a64cd24 100644 --- a/src/enemy/mazaalHand.c +++ b/src/enemy/mazaalHand.c @@ -1,4 +1,3 @@ -#include "global.h" #include "entity.h" void sub_08035194(Entity*); diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c index 2b59e960..64f9b1c1 100644 --- a/src/enemy/mazaalHead.c +++ b/src/enemy/mazaalHead.c @@ -5,8 +5,6 @@ extern void UnloadOBJPalette(Entity*); -extern u8 gEntCount; - void sub_0803499C(Entity*); void sub_08034420(Entity*); void sub_08034830(Entity*); @@ -220,7 +218,7 @@ void sub_08033FFC(Entity* this) { gRoomControls.cameraTarget = &gPlayerEntity; sub_08034420(this); gPlayerState.controlMode = 1; - sub_080791D0(); + ResetPlayerAnimationAndAction(); SoundReq(BGM_BOSS_THEME); } } @@ -243,7 +241,7 @@ void sub_0803414C(Entity* this) { } } else { this->direction = sub_080045D4(this->x.HALF.HI, this->y.HALF.HI, x, y); - sub_0806F69C(this); + LinearMoveUpdate(this); } } @@ -562,7 +560,7 @@ NONMATCH("asm/non_matching/mazaal/sub_0803473C.inc", void sub_0803473C(Entity* t direction = 0x18; } this->direction = direction; - sub_0806F69C(this); + LinearMoveUpdate(this); } END_NONMATCH @@ -585,7 +583,7 @@ NONMATCH("asm/non_matching/mazaal/sub_080347B4.inc", void sub_080347B4(Entity* t direction = 0x18; } this->direction = direction; - sub_0806F69C(this); + LinearMoveUpdate(this); } END_NONMATCH diff --git a/src/enemy/moldorm.c b/src/enemy/moldorm.c index 767254f9..33a1fa8b 100644 --- a/src/enemy/moldorm.c +++ b/src/enemy/moldorm.c @@ -9,7 +9,6 @@ extern void (*const gUnk_080CBBA0[])(Entity*); extern void (*const gUnk_080CBBB4[])(Entity*); extern void (*const gUnk_080CBBBC[])(Entity*); -extern u8 gEntCount; extern const s8 gUnk_080CBBC4[]; void Moldorm(Entity* this) { diff --git a/src/enemy/moldworm.c b/src/enemy/moldworm.c index 3a0425ef..350fb3fc 100644 --- a/src/enemy/moldworm.c +++ b/src/enemy/moldworm.c @@ -14,7 +14,6 @@ void sub_0802390C(Entity*); void sub_080239F0(Entity*); bool32 sub_08023B38(Entity*); -extern u8 gEntCount; extern const u8 gUnk_080B37A0[]; extern void (*const gUnk_080CBC38[])(Entity*); diff --git a/src/enemy/octorokBoss.c b/src/enemy/octorokBoss.c index 0730b642..1d1c6ab3 100644 --- a/src/enemy/octorokBoss.c +++ b/src/enemy/octorokBoss.c @@ -2,7 +2,6 @@ #include "functions.h" #include "object.h" #include "projectile.h" -#include "structures.h" #include "overworld.h" extern void sub_08078AC0(u32, u32, u32); @@ -36,25 +35,25 @@ this->field_0x7c.BYTES.byte0 Boss Phase 3: frozen 2 4: unfrozen -> death */ -#define IS_FROZEN(this) (this->field_0x7c.BYTES.byte0 & 1) -#define GET_BOSS_PHASE(this) (this->field_0x7c.BYTES.byte0) +#define IS_FROZEN(this) ((this)->field_0x7c.BYTES.byte0 & 1) +#define GET_BOSS_PHASE(this) ((this)->field_0x7c.BYTES.byte0) /* this->field_0x78.HALF.HI reused timer */ -#define GET_TIMER(this) this->field_0x78.HALF.HI +#define GET_TIMER(this) ((this)->field_0x78.HALF.HI) /* this->field_0x78.HALF.LO turns until the next attack */ -#define GET_ATTACK_WAIT_TURNS(this) this->field_0x78.HALF.LO +#define GET_ATTACK_WAIT_TURNS(this) ((this)->field_0x78.HALF.LO) /* this->field_0x7a.HALF.HI angle of legs */ -#define GET_ANGLE(this) this->field_0x7a.HWORD -#define GET_ANGLE_HI(this) this->field_0x7a.HALF.HI +#define GET_ANGLE(this) ((this)->field_0x7a.HWORD) +#define GET_ANGLE_HI(this) ((this)->field_0x7a.HALF.HI) /* this->field_0x82.HWORD angular speed */ -#define GET_ANGULAR_VEL(this) this->field_0x82.HWORD +#define GET_ANGULAR_VEL(this) ((this)->field_0x82.HWORD) enum OctorokBossPart { WHOLE, LEG_BR, LEG_FR, LEG_FL, LEG_BL, MOUTH, TAIL_END, TAIL }; enum OctorokBossAction { diff --git a/src/enemy/peahat.c b/src/enemy/peahat.c index 804ccba6..08ec53a4 100644 --- a/src/enemy/peahat.c +++ b/src/enemy/peahat.c @@ -343,7 +343,7 @@ void PeahatPropeller_Fly(Entity* this) { this->spriteSettings.draw ^= 1; this->z.WORD -= 0xc000; - sub_0806F69C(this); + LinearMoveUpdate(this); if (--this->field_0xf == 0) { this->field_0xf = 40; this->direction = (Random() & 0x10) + 8; diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index fc987dd7..73bc1509 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -9,7 +9,6 @@ extern void SoundReqClipped(Entity*, u32); extern u32 sub_08049F1C(Entity*, Entity*, u32); extern u32 PlayerInRange(Entity*, u32, u32); extern void sub_080AEFB4(Entity*); -extern Entity* FindNextDuplicateID(Entity* ent, int listIndex); void sub_080249F4(Entity*); void sub_08024940(Entity*); diff --git a/src/enemy/ropeGolden.c b/src/enemy/ropeGolden.c index 1e63b5df..136d14c3 100644 --- a/src/enemy/ropeGolden.c +++ b/src/enemy/ropeGolden.c @@ -1,6 +1,5 @@ #include "global.h" #include "entity.h" -#include "sprite.h" #include "functions.h" #include "enemy.h" @@ -9,8 +8,6 @@ extern void (*const gUnk_080CF4C8[6])(Entity*); extern void (*const gUnk_080CF4E0[4])(Entity*); extern s32 sub_080012DC(Entity*); -extern void SetGlobalFlag(u32); -extern u32 CheckGlobalFlag(u32); extern u32 sub_0804A044(Entity*, Entity*, u32); void sub_080383AC(Entity*); diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c index ee274ac7..351c56a1 100644 --- a/src/enemy/rupeeLike.c +++ b/src/enemy/rupeeLike.c @@ -3,11 +3,9 @@ #include "audio.h" #include "entity.h" #include "enemy.h" -#include "npc.h" -#include "player.h" -#include "save.h" #include "object.h" #include "functions.h" +#include "save.h" extern void sub_080293DC(Entity*); extern void sub_080296D8(Entity*); diff --git a/src/enemy/sensorBladeTrap.c b/src/enemy/sensorBladeTrap.c index 40ad4f03..2e99de0e 100644 --- a/src/enemy/sensorBladeTrap.c +++ b/src/enemy/sensorBladeTrap.c @@ -1,6 +1,4 @@ #include "enemy.h" -#include "audio.h" -#include "functions.h" extern u32 sub_0804A024(Entity*, u32, u32); extern bool32 sub_080AE4CC(Entity*, u32, u32, u32); diff --git a/src/enemy/slime.c b/src/enemy/slime.c index 86069f50..06297e37 100644 --- a/src/enemy/slime.c +++ b/src/enemy/slime.c @@ -16,8 +16,6 @@ extern void (*const gUnk_080D16A4[])(Entity*); extern u8 gUnk_080D16D0[4]; // Entity count per form extern PosOffset gUnk_080D16D4[4]; -extern u8 gEntCount; - void Slime(Entity* this) { EnemyFunctionHandler(this, gUnk_080D16A4); SetChildOffset(this, 0, 1, -12); diff --git a/src/enemy/smallPesto.c b/src/enemy/smallPesto.c index b8fdc5db..ec6d93ca 100644 --- a/src/enemy/smallPesto.c +++ b/src/enemy/smallPesto.c @@ -94,7 +94,7 @@ void sub_08031770(Entity* this) { void sub_080317B4(Entity* this) { this->z.HALF.HI = ((Random() & 0x30) != 0) ? -0xc : -0xd; - sub_0806F69C(this); + LinearMoveUpdate(this); GetNextFrame(this); } diff --git a/src/enemy/spark.c b/src/enemy/spark.c index cbbdb587..d96bdfaa 100644 --- a/src/enemy/spark.c +++ b/src/enemy/spark.c @@ -1,8 +1,6 @@ #include "enemy.h" -#include "entity.h" #include "object.h" #include "functions.h" -#include "effects.h" extern void (*const gUnk_080CD234[])(Entity*); extern void (*const gUnk_080CD24C[])(Entity*); diff --git a/src/enemy/treeItem.c b/src/enemy/treeItem.c index ddc645dd..c1383be0 100644 --- a/src/enemy/treeItem.c +++ b/src/enemy/treeItem.c @@ -1,8 +1,6 @@ #include "global.h" #include "enemy.h" -#include "entity.h" #include "object.h" -#include "functions.h" static bool32 ShouldSpawnTreeItem(Entity*); diff --git a/src/enemy/vaatiArm.c b/src/enemy/vaatiArm.c index 7882441e..27a946f5 100644 --- a/src/enemy/vaatiArm.c +++ b/src/enemy/vaatiArm.c @@ -2,8 +2,6 @@ #include "object.h" #include "functions.h" -extern void DoExitTransition(ScreenTransitionData*); - typedef struct VaatiArm_HeapStruct1 { union SplitHWord unk00; u16 unk02; @@ -165,7 +163,6 @@ const u16 gUnk_080D140E[] = { -0x6000, -0x5000, -0x4000 }; const u8 gUnk_080D1414[] = { 0, 0xc, 0xe, 0x10, 0x1c }; const u8 gUnk_080D1419[] = { 0, 0xa, 0xa, 0xa, 0x1c }; -extern u8 gEntCount; extern const Hitbox gUnk_080FD450; extern const Hitbox gUnk_080FD538; diff --git a/src/enemy/vaatiBall.c b/src/enemy/vaatiBall.c index c060f5b9..68e5be20 100644 --- a/src/enemy/vaatiBall.c +++ b/src/enemy/vaatiBall.c @@ -1,9 +1,7 @@ #include "entity.h" #include "enemy.h" #include "player.h" -#include "screen.h" #include "object.h" -#include "audio.h" #include "functions.h" typedef struct { @@ -112,7 +110,7 @@ void sub_0804474C(Entity* this) { this->direction++; this->direction &= 0x1f; } - sub_0806F69C(this); + LinearMoveUpdate(this); UpdateAnimationSingleFrame(this); } } @@ -164,7 +162,7 @@ void sub_08044868(Entity* this) { } break; case 1: - sub_0806F69C(this); + LinearMoveUpdate(this); if (sub_0806FCB8(this, vaati->x.HALF.HI, vaati->y.HALF.HI - 0x10, 0xc)) { this->field_0x74.HALF.LO++; this->x.HALF.HI = vaati->x.HALF.HI; @@ -200,7 +198,7 @@ void sub_08044868(Entity* this) { case 2: if (this->actionDelay) if (--this->actionDelay < 0x11) - sub_0806F69C(this); + LinearMoveUpdate(this); break; case 3: { u8 draw; @@ -229,7 +227,7 @@ void sub_080449F8(Entity* this) { switch (vaati->field_0x74.HALF.LO) { case 0: - sub_0806F69C(this); + LinearMoveUpdate(this); if (--this->actionDelay) break; @@ -254,17 +252,17 @@ void sub_080449F8(Entity* this) { break; case 1: this->direction = (this->direction + 0x10) & 0x1f; - sub_0806F69C(this); + LinearMoveUpdate(this); this->direction = (this->direction + 0x10) & 0x1f; this->actionDelay = 2; break; case 3: - sub_0806F69C(this); + LinearMoveUpdate(this); this->actionDelay = 2; break; case 4: - sub_0806F69C(this); - sub_0806F69C(this); + LinearMoveUpdate(this); + LinearMoveUpdate(this); this->actionDelay = 2; break; } @@ -305,7 +303,7 @@ void sub_08044B04(Entity* this) { switch (vaati->field_0x74.HALF.LO) { case 0: - sub_0806F69C(this); + LinearMoveUpdate(this); switch (this->field_0x74.HALF.LO) { case 0: if (--this->actionDelay == 0) { @@ -420,7 +418,7 @@ void sub_08044B04(Entity* this) { } break; case 1: - sub_0806F69C(this); + LinearMoveUpdate(this); if (--this->actionDelay == 0) this->field_0x74.HALF.LO++; break; @@ -472,11 +470,11 @@ void sub_08044E74(Entity* this, u32 state) { this->direction &= 0x1f; PositionRelative(this->parent, this, 0, -0x100000); this->speed = 12288; - sub_0806F69C(this); + LinearMoveUpdate(this); this->direction += 0x8; this->direction &= 0x1f; this->speed = 1280; - sub_0806F69C(this); + LinearMoveUpdate(this); break; case 1: this->direction = (this->direction + 8) & 0x1f; @@ -486,18 +484,18 @@ void sub_08044E74(Entity* this, u32 state) { switch (this->actionDelay) { case 3 ... 4: do { - sub_0806F69C(this); + LinearMoveUpdate(this); } while (this->actionDelay-- != 3); break; case 1: this->direction = (this->direction + 0x10) & 0x1f; - sub_0806F69C(this); + LinearMoveUpdate(this); this->direction = (this->direction + 0x10) & 0x1f; break; } } else { if (this->actionDelay == 2) { - sub_0806F69C(this); + LinearMoveUpdate(this); } } break; diff --git a/src/enemy/vaatiEyesMacro.c b/src/enemy/vaatiEyesMacro.c index be77a617..89fb894f 100644 --- a/src/enemy/vaatiEyesMacro.c +++ b/src/enemy/vaatiEyesMacro.c @@ -43,8 +43,6 @@ const u8 gUnk_080CDE70[] = { const s8 gUnk_080CDE90[] = { -2, -3, -4, -5, -6, -5, -4, -3 }; const u16 gUnk_080CDE98[] = { 0xc0, 0x100, 0x140, 0x180 }; -extern u8 gEntCount; - void VaatiEyesMacro(Entity* this) { vaatiEyesMacroFunctions[GetNextFunction(this)](this); SetChildOffset(this, 0, 1, -0x10); diff --git a/src/enemy/vaatiProjectile.c b/src/enemy/vaatiProjectile.c index 2efae6f5..b708275f 100644 --- a/src/enemy/vaatiProjectile.c +++ b/src/enemy/vaatiProjectile.c @@ -2,7 +2,6 @@ #include "functions.h" extern bool32 PlayerInRange(Entity*, u32, u32); -extern void DoExitTransition(ScreenTransitionData*); extern u32 sub_080002E0(u32, u32); extern Entity* gUnk_020000B0; extern const ScreenTransitionData gUnk_0813AB94; @@ -131,7 +130,7 @@ void VaatiProjectileFunction0Action1(Entity* this) { } else { if (gUnk_020000B0 != NULL) { sub_08004596(this, GetFacingDirection(this, gUnk_020000B0)); - sub_0806F69C(this); + LinearMoveUpdate(this); } } GetNextFrame(this); @@ -191,7 +190,7 @@ void VaatiProjectileFunction0Action6(Entity* this) { void VaatiProjectileFunction0Action7(Entity* this) { sub_0803E444(this); - sub_0806F69C(this); + LinearMoveUpdate(this); sub_0803E4D8(this); if ((gRoomControls.roomOriginY + gRoomControls.height + -0x10) <= this->y.HALF.HI) { SetInitializationPriority(); diff --git a/src/enemy/vaatiRebornEnemy.c b/src/enemy/vaatiRebornEnemy.c index f3ccf3bb..5891ed20 100644 --- a/src/enemy/vaatiRebornEnemy.c +++ b/src/enemy/vaatiRebornEnemy.c @@ -3,7 +3,6 @@ #include "functions.h" extern void sub_080AEFB4(Entity*); -extern u8 gEntCount; void VaatiRebornEnemyType0PreAction(Entity*); void VaatiRebornEnemyType1PreAction(Entity*); diff --git a/src/enemy/vaatiTransfigured.c b/src/enemy/vaatiTransfigured.c index bd462e33..b4fc508f 100644 --- a/src/enemy/vaatiTransfigured.c +++ b/src/enemy/vaatiTransfigured.c @@ -37,7 +37,6 @@ typedef struct { s8 x; s8 y; } PACKED xy; -extern u8 gEntCount; #ifdef EU const u8 gUnk_080D0ABC[] = { 0xf0, 0xd0, 0xb0 }; @@ -288,7 +287,7 @@ void VaatiTransfiguredType0Action3(Entity* this) { if (this->animationState > 2) { this->action = 7; this->actionDelay = 0xe0; - sub_0807A108(); + DeleteClones(); SoundReq(SFX_BOSS_HIT); return; } diff --git a/src/enemy/vaatiTransfiguredEye.c b/src/enemy/vaatiTransfiguredEye.c index 78fa065e..f43e6290 100644 --- a/src/enemy/vaatiTransfiguredEye.c +++ b/src/enemy/vaatiTransfiguredEye.c @@ -1,6 +1,5 @@ #include "entity.h" #include "enemy.h" -#include "audio.h" #include "textbox.h" #include "coord.h" #include "functions.h" diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index eef8e73e..49049925 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -1,13 +1,10 @@ #include "enemy.h" #include "object.h" #include "textbox.h" -#include "structures.h" #include "functions.h" #include "save.h" #include "screen.h" -extern u8 gEntCount; - void VaatiWrathType0PreAction(Entity*); u32 sub_08041FCC(Entity*); void sub_08042004(Entity*); @@ -380,7 +377,7 @@ void VaatiWrathType0Action7(Entity* this) { if (gRoomControls.roomOriginY + 0x48 != this->y.HALF.HI) { this->speed = 0x100; this->direction = ((gRoomControls.roomOriginY + 0x48) >= this->y.HALF.HI) ? 0x10 : 0; - sub_0806F69C(this); + LinearMoveUpdate(this); } else { if (--this->actionDelay == 0) { sub_08042050(this); @@ -391,7 +388,7 @@ void VaatiWrathType0Action7(Entity* this) { void VaatiWrathType0Action8(Entity* this) { sub_08042004(this); UpdateAnimationSingleFrame(this); - sub_0806F69C(this); + LinearMoveUpdate(this); if (((gRoomControls.roomOriginX + 0x20) > this->x.HALF.HI) || ((gRoomControls.roomOriginX + 0x140) < this->x.HALF.HI)) { if (0x3f < this->speed) { @@ -466,7 +463,7 @@ void VaatiWrathType0ActionA(Entity* this) { void VaatiWrathType0ActionB(Entity* this) { switch (this->subAction) { case 0: - sub_0806F69C(this); + LinearMoveUpdate(this); UpdateAnimationSingleFrame(this); GetNextFrame(((VaatiWrathHeapStruct*)this->myHeap)->type1); GetNextFrame(((VaatiWrathHeapStruct*)this->myHeap)->type2); @@ -527,7 +524,7 @@ void VaatiWrathType0ActionC(Entity* this) { if (this->actionDelay) { this->actionDelay--; } else { - sub_0806F69C(this); + LinearMoveUpdate(this); if (gRoomControls.roomOriginY + 0x48 == this->y.HALF.HI) { this->subAction = 2; InitializeAnimation(((VaatiWrathHeapStruct*)this->myHeap)->type1, 0x11); diff --git a/src/enemy/vaatiWrathEye.c b/src/enemy/vaatiWrathEye.c index d8590edc..9cb316c7 100644 --- a/src/enemy/vaatiWrathEye.c +++ b/src/enemy/vaatiWrathEye.c @@ -1,5 +1,4 @@ #include "enemy.h" -#include "structures.h" #include "functions.h" void sub_080485D8(Entity*); @@ -82,7 +81,7 @@ void VaatiWrathEyeAction3(Entity* this) { y = parent->y.HALF.HI + ptr[1]; direction = sub_080045D4(this->x.HALF.HI, this->y.HALF.HI, x, y); this->direction = direction; - sub_0806F69C(this); + LinearMoveUpdate(this); this->z.HALF.HI = this->parent->z.HALF.HI; if ((this->x.HALF.HI == x) && (this->y.HALF.HI == y)) { this->action = 4; diff --git a/src/enemy/wallMaster2.c b/src/enemy/wallMaster2.c index 73deb8da..05778ce1 100644 --- a/src/enemy/wallMaster2.c +++ b/src/enemy/wallMaster2.c @@ -92,7 +92,7 @@ void sub_0802CD54(Entity* this) { this->actionDelay = 60; sub_0802CF64(this); } - sub_0806F69C(this); + LinearMoveUpdate(this); } void sub_0802CDE8(Entity* this) { @@ -101,7 +101,7 @@ void sub_0802CDE8(Entity* this) { sub_08004596(this, GetFacingDirection(this, gUnk_020000B0)); sub_0802CF8C(this); } - sub_0806F69C(this); + LinearMoveUpdate(this); } else { this->action = 1; this->actionDelay = 60; @@ -120,7 +120,7 @@ void sub_0802CE68(Entity* this) { gPlayerState.flags |= 0x100; if (!sub_0806FCB8(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 4)) { this->direction = GetFacingDirection(this, &gPlayerEntity); - sub_0806F69C(this); + LinearMoveUpdate(this); } sub_0802CFD8(this); GetNextFrame(this); diff --git a/src/enemy/waterDrop.c b/src/enemy/waterDrop.c index fc63d632..8ee1a6db 100644 --- a/src/enemy/waterDrop.c +++ b/src/enemy/waterDrop.c @@ -2,7 +2,6 @@ #include "screen.h" #include "object.h" #include "structures.h" -#include "functions.h" void sub_0802A39C(Entity*); void sub_0802A334(Entity*); @@ -39,7 +38,7 @@ void sub_0802A2B4(Entity* this) { this->spritePriority.b0 = 7; EnqueueSFX(0x84); } else { - sub_0806F69C(this); + LinearMoveUpdate(this); } sub_0802A39C(this); diff --git a/src/entity.c b/src/entity.c index 85979ca8..a2d4085f 100644 --- a/src/entity.c +++ b/src/entity.c @@ -1,10 +1,7 @@ #include "global.h" #include "utils.h" #include "functions.h" -#include "entity.h" #include "area.h" -#include "room.h" -#include "script.h" #include "textbox.h" #include "npc.h" @@ -18,12 +15,9 @@ void sub_0805EE88(void); void ClearAllDeletedEntities(void); void DeleteAllEntities(void); void sub_0805E98C(void); -extern void sub_080AE068(); extern void UnloadOBJPalette(); extern void sub_0806FE84(); -extern void sub_080788E0(); extern void sub_08078954(); -extern void sub_0805EC60(); extern void sub_08017744(Entity*); extern void UnloadHitbox(); extern void sub_0804AA1C(); @@ -31,7 +25,6 @@ extern void sub_0804AA1C(); extern void _ClearAndUpdateEntities(); extern void UpdateEntities_arm(u32); -void SetPriorityTimer(u32); static void UpdatePriorityTimer(void); static void ReleaseTransitionManager(); static void UnlinkEntity(); @@ -256,8 +249,6 @@ Entity* sub_0805E744(void) { return NULL; } -Manager* GetEmptyManager(void); - typedef void* (*Getter)(void); void* GetEmptyEntityByKind(u32 kind) { @@ -277,8 +268,6 @@ void DeleteThisEntity(void) { f(); } -void DeleteManager(void*); - typedef void (*Deleter)(void*); void DeleteEntityAny(Entity* ent) { @@ -320,7 +309,6 @@ void DeleteEntity(Entity* ent) { } } -extern Entity gPlayerEntity; void ClearDeletedEntity(Entity*); void ClearAllDeletedEntities(void) { @@ -333,8 +321,6 @@ void ClearAllDeletedEntities(void) { } while (ent++, ent < (&gPlayerEntity + 80)); } -extern u8 gEntCount; - void ClearDeletedEntity(Entity* ent) { DmaClear32(3, ent, sizeof(Entity)); gEntCount--; @@ -357,8 +343,6 @@ void DeleteAllEntities(void) { } } -extern Manager gUnk_02033290; - typedef struct Temp { void* prev; void* next; @@ -376,8 +360,6 @@ Manager* GetEmptyManager(void) { return NULL; } -extern u8 gManagerCount; - void DeleteManager(void* ent) { Manager* manager = (Manager*)ent; if (!manager->next) @@ -399,7 +381,6 @@ void ReleaseTransitionManager(void* mgr) { } extern Entity gUnk_020369F0; -void sub_0805E98C(void); void sub_0805E958(void) { MemCopy(&gEntityLists, &gUnk_020369F0, 0x48); @@ -449,8 +430,6 @@ void DeleteSleepingEntities(void) { } while (++list < &gEntityLists[9]); } -extern void sub_0805E374(Entity*); - void AppendEntityToList(Entity* entity, u32 listIndex) { LinkedList* list; diff --git a/src/ezloNag.c b/src/ezloNag.c index 584b13fa..e0edff23 100644 --- a/src/ezloNag.c +++ b/src/ezloNag.c @@ -1,7 +1,6 @@ #include "global.h" #include "audio.h" #include "textbox.h" -#include "structures.h" typedef struct { s8 unk0; diff --git a/src/fade.c b/src/fade.c index 2d107df7..583294a3 100644 --- a/src/fade.c +++ b/src/fade.c @@ -2,7 +2,6 @@ #include "functions.h" #include "screen.h" #include "utils.h" -#include "fade.h" typedef struct { u8 field_0x0; diff --git a/src/fileScreen.c b/src/fileScreen.c index 50f0a4bb..ab3c3729 100644 --- a/src/fileScreen.c +++ b/src/fileScreen.c @@ -1,6 +1,5 @@ #include "fileScreen.h" #include "main.h" -#include "player.h" #include "utils.h" #include "screen.h" #include "menu.h" diff --git a/src/flagDebug.c b/src/flagDebug.c index 4f03efd9..8adb562c 100644 --- a/src/flagDebug.c +++ b/src/flagDebug.c @@ -1,5 +1,3 @@ -#include "flags.h" - const char* const globalFlagNames[] = { "BEGIN", "LV0_CLEAR", diff --git a/src/flags.c b/src/flags.c index 8efa3d5b..ec58ec19 100644 --- a/src/flags.c +++ b/src/flags.c @@ -39,9 +39,9 @@ u32 CheckRoomFlag(u32 flag) { return ReadBit(&gRoomVars.roomFlags, flag); } -u32 CheckLocalFlagsByBank(u32 flag, u32 offset, u32 length) { +u32 CheckLocalFlagsByBank(u32 offset, u32 flag, u32 length) { - return CheckBits(&gGlobalFlags, flag + offset, length); + return CheckBits(&gGlobalFlags, offset + flag, length); } u32 CheckLocalFlags(u32 flag, u32 length) { diff --git a/src/gba/m4a.c b/src/gba/m4a.c index 38c5c9d0..19978368 100644 --- a/src/gba/m4a.c +++ b/src/gba/m4a.c @@ -1,6 +1,5 @@ #include "global.h" #include "gba/m4a.h" -#include "gba/gba.h" // ASCII encoding of 'Smsh' in reverse // This is presumably short for SMASH, the developer of MKS4AGB. diff --git a/src/interrupts.c b/src/interrupts.c index c2855c46..72022c22 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -6,12 +6,9 @@ #include "save.h" #include "textbox.h" #include "functions.h" -#include "object.h" -#include "utils.h" -#include "npc.h" -#include "effects.h" #include "screen.h" #include "gba/m4a.h" +#include "object.h" extern u8 gUnk_03003DE0; extern u8 gUnk_03000C30; @@ -29,13 +26,10 @@ extern void sub_080ADD70(); extern void sub_0801C25C(); extern void UpdateDisplayControls(); extern void LoadResources(); -extern void FadeVBlank(); extern void HandlePlayerLife(); extern void DoPlayerAction(); extern void sub_080171F0(); extern void sub_08078FB0(); -extern u32 CheckDontUpdate(); -extern void DrawEntity(); extern void sub_0807A050(); extern u32 sub_08079B24(); extern void sub_08079708(); @@ -227,7 +221,7 @@ void HandlePlayerLife(Entity* this) { if (gPlayerState.flags & PL_BURNING) ResetPlayer(); if ((gPlayerState.flags & PL_CLONING) && !gPlayerState.field_0xa0[0]) - sub_0807A108(); + DeleteClones(); if (sub_08079B24() == 0) sub_08079708(this); @@ -308,7 +302,7 @@ void sub_080171F0(void) { gPlayerState.field_0xa &= 0xf; gPlayerState.keepFacing &= ~0x80; gPlayerState.field_0x1a[0] = 0; - gPlayerState.field_0x80 = 0; + gPlayerState.speed_modifier = 0; gPlayerState.field_0xaa = 0; MemClear(&gUnk_03003BE0, 0x8c); gPlayerEntity.spriteOffsetY = gPlayerState.field_0x3f; diff --git a/src/intro.c b/src/intro.c index 3095dcb9..30aad962 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1,12 +1,10 @@ #include "audio.h" -#include "global.h" #include "main.h" #include "entity.h" #include "utils.h" #include "screen.h" #include "object.h" #include "textbox.h" -#include "structures.h" #include "functions.h" typedef struct { diff --git a/src/item/itemBoomerang.c b/src/item/itemBoomerang.c index a5505136..eb6c67cc 100644 --- a/src/item/itemBoomerang.c +++ b/src/item/itemBoomerang.c @@ -3,8 +3,6 @@ extern void (*const gUnk_0811BD78[])(ItemBehavior*, u32); -extern void ResetPlayerVelocity(void); - void ItemBoomerang(ItemBehavior* this, u32 arg1) { gUnk_0811BD78[this->stateID](this, arg1); } diff --git a/src/item/itemJarEmpty.c b/src/item/itemJarEmpty.c index a3658dab..4fcf4668 100644 --- a/src/item/itemJarEmpty.c +++ b/src/item/itemJarEmpty.c @@ -5,7 +5,6 @@ extern void (*const gUnk_0811BE28[])(ItemBehavior*, u32); extern u8 gUnk_02002AC8[]; -extern void sub_08077BB8(ItemBehavior*); void ItemJarEmpty(ItemBehavior* this, u32 arg1) { gUnk_0811BE28[this->stateID](this, arg1); diff --git a/src/item/itemMoleMitts.c b/src/item/itemMoleMitts.c index 4e528ce0..82fbecac 100644 --- a/src/item/itemMoleMitts.c +++ b/src/item/itemMoleMitts.c @@ -10,7 +10,7 @@ s32 sub_080774A0(void); extern u8 gUnk_0811BE14[]; extern s32 sub_0800875A(Entity*, u32, ItemBehavior*); -extern void sub_08079E08(); +extern void UpdatePlayerMovement(); void ItemMoleMitts(ItemBehavior* this, u32 arg1) { gUnk_0811BE04[this->stateID](this, arg1); @@ -89,7 +89,7 @@ void sub_08077448(ItemBehavior* this, u32 arg1) { gPlayerEntity.direction = gPlayerEntity.animationState << 2 ^ 0x10; gPlayerEntity.speed = 0x100; if (((this->field_0x5[9] & 1) != 0) && (this->field_0x5[0] != 0)) { - sub_08079E08(); + UpdatePlayerMovement(); } UpdateItemAnim(this); if ((this->field_0x5[9] & 0x80) != 0) { diff --git a/src/item/itemOcarina.c b/src/item/itemOcarina.c index 1f418627..0ea670a5 100644 --- a/src/item/itemOcarina.c +++ b/src/item/itemOcarina.c @@ -5,10 +5,8 @@ extern void (*const gOcarinaStates[4])(ItemBehavior*, u32); extern void ResetPlayerVelocity(void); -extern void SetPlayerEventPriority(void); extern void CreateBird(void); -extern void ResetPlayerEventPriority(void); void ItemOcarina(ItemBehavior* this, u32 arg1) { gOcarinaStates[this->stateID](this, arg1); diff --git a/src/item/itemRocsCape.c b/src/item/itemRocsCape.c index a24967e9..1e649198 100644 --- a/src/item/itemRocsCape.c +++ b/src/item/itemRocsCape.c @@ -5,8 +5,6 @@ void sub_08076758(ItemBehavior*, u32); extern void sub_08077F84(void); -extern bool32 sub_08077EFC(ItemBehavior*); - /*void ItemRocsCape(ItemBehavior* this, u32 arg1) { if (this->stateID != 0) { sub_08076758(this, arg1); diff --git a/src/item/itemSword.c b/src/item/itemSword.c index 4b9f1605..fda041fb 100644 --- a/src/item/itemSword.c +++ b/src/item/itemSword.c @@ -89,7 +89,7 @@ void sub_08075694(ItemBehavior* this, u32 arg1) { gPlayerState.field_0x1a[1] &= 0xdf; if ((gPlayerState.field_0xa0[0] == 0x04) && ((gPlayerState.flags & PL_CLONING) == 0)) { gPlayerState.field_0xa0[0] = 0x01; - sub_0807A108(); + DeleteClones(); } SoundReq(SFX_PLY_VO2); } diff --git a/src/main.c b/src/main.c index 7cd2f92b..6052ad10 100644 --- a/src/main.c +++ b/src/main.c @@ -1,7 +1,5 @@ #include "audio.h" -#include "asm.h" #include "functions.h" -#include "structures.h" #include "main.h" #include "screen.h" #include "utils.h" diff --git a/src/manager/manager10.c b/src/manager/manager10.c index 04e78cd5..7b8460e0 100644 --- a/src/manager/manager10.c +++ b/src/manager/manager10.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "manager.h" #include "room.h" #include "area.h" @@ -8,7 +9,6 @@ #include "fileScreen.h" #include "functions.h" -void Manager10_Main(Manager10*); void sub_080595E4(Manager10*); void sub_08059608(Manager10*); void sub_08059690(Manager10*); @@ -18,7 +18,6 @@ u32 sub_0805986C(void); void sub_08059894(const u16*, const u16*, u32); u32 sub_080598F8(u32, u32, u32); void sub_08059960(const u16*, const u16*, u16*, u8); -void sub_08059994(void); const u8 gUnk_08108390[6] = { 0x0F, 0x1E, 0x2D, 0x3C, 0x01, 0x01, diff --git a/src/manager/manager11.c b/src/manager/manager11.c index 4a079333..28cbfab9 100644 --- a/src/manager/manager11.c +++ b/src/manager/manager11.c @@ -1,4 +1,3 @@ -#include "global.h" #include "manager.h" #include "flags.h" diff --git a/src/manager/manager12.c b/src/manager/manager12.c index 6a1c5982..630e17e5 100644 --- a/src/manager/manager12.c +++ b/src/manager/manager12.c @@ -1,4 +1,5 @@ #include "area.h" +#include "asm.h" #include "manager.h" #include "room.h" #include "functions.h" @@ -87,7 +88,7 @@ void sub_08059A58(Manager12* this) { } } -#define COMMON(tmp2, tmp1) ((tmp2) >> 4 & 0x3f) | (((tmp1) + 0x188U) >> 4 & 0x3f) << 6 +#define COMMON(tmp2, tmp1) (((tmp2) >> 4 & 0x3f) | (((tmp1) + 0x188U) >> 4 & 0x3f) << 6) void sub_08059B18(void) { u32 loopVar; u32 innerLoopVar; diff --git a/src/manager/manager14.c b/src/manager/manager14.c index 65bb296d..47baf87c 100644 --- a/src/manager/manager14.c +++ b/src/manager/manager14.c @@ -5,7 +5,6 @@ #include "flags.h" #include "coord.h" #include "main.h" -#include "functions.h" typedef struct { Manager manager; @@ -23,7 +22,6 @@ const u16 gUnk_0810859A[] = { 0x808, 0x907, 0xA06, 0x907 }; extern void sub_0805622C(u16*, u32, u32); extern u16 gUnk_02017AA0[]; -void Manager14_Main(Manager14*); void sub_08059E80(Manager14*); void sub_08059EF8(Manager14*); u32 sub_08059F9C(Manager14*); diff --git a/src/manager/manager19.c b/src/manager/manager19.c index 0207ab56..f967c62a 100644 --- a/src/manager/manager19.c +++ b/src/manager/manager19.c @@ -1,7 +1,6 @@ #include "manager.h" #include "area.h" #include "room.h" -#include "functions.h" #include "screen.h" void sub_0805AFFC(Manager*); diff --git a/src/manager/manager1A.c b/src/manager/manager1A.c index b188ef08..dd047611 100644 --- a/src/manager/manager1A.c +++ b/src/manager/manager1A.c @@ -1,7 +1,6 @@ #include "global.h" #include "manager.h" #include "flags.h" -#include "entity.h" #include "room.h" #include "screen.h" #include "utils.h" diff --git a/src/manager/manager1E.c b/src/manager/manager1E.c index b928f10e..0e272fa9 100644 --- a/src/manager/manager1E.c +++ b/src/manager/manager1E.c @@ -1,7 +1,7 @@ #include "global.h" +#include "asm.h" #include "manager.h" #include "flags.h" -#include "functions.h" typedef struct { Manager manager; diff --git a/src/manager/manager2.c b/src/manager/manager2.c index 3f74d209..0294a65f 100644 --- a/src/manager/manager2.c +++ b/src/manager/manager2.c @@ -1,8 +1,6 @@ #include "global.h" -#include "entity.h" #include "screen.h" #include "functions.h" -#include "room.h" typedef struct { Manager manager; diff --git a/src/manager/manager20.c b/src/manager/manager20.c index 4cf749dc..46f4fe20 100644 --- a/src/manager/manager20.c +++ b/src/manager/manager20.c @@ -1,9 +1,7 @@ #include "global.h" #include "manager.h" #include "flags.h" -#include "entity.h" #include "room.h" -#include "functions.h" typedef struct { Manager manager; diff --git a/src/manager/manager21.c b/src/manager/manager21.c index f0cc377a..49003b50 100644 --- a/src/manager/manager21.c +++ b/src/manager/manager21.c @@ -3,7 +3,6 @@ #include "room.h" #include "object.h" #include "functions.h" -#include "flags.h" extern bool32 CheckRectOnScreen(u16, u16, u32, u32); @@ -44,7 +43,7 @@ void Manager21_Main(Manager21* this) { object->x.HALF.HI = gRoomControls.roomOriginX + spawnData->x; object->y.HALF.HI = gRoomControls.roomOriginY + spawnData->y; object->parent = (Entity*)this; - sub_08016A30(object); + ResolveCollisionLayer(object); this->field_0x20 |= 1 << count; } } diff --git a/src/manager/manager24.c b/src/manager/manager24.c index 532fdfd0..e1a9ecee 100644 --- a/src/manager/manager24.c +++ b/src/manager/manager24.c @@ -4,7 +4,6 @@ #include "audio.h" #include "overworld.h" #include "object.h" -#include "area.h" extern void (*const gUnk_08108CDC[])(Manager24*); @@ -16,7 +15,6 @@ extern u32 sub_080002C8(u16, u8); extern void (*const gUnk_08108CE8[])(u32, u32); u32 sub_0805C608(void); -extern u32 CheckIsInteriorWithEnemies(void); extern u8 gUnk_08108CFC[]; diff --git a/src/manager/manager25.c b/src/manager/manager25.c index 3e0e7c9f..78003bc1 100644 --- a/src/manager/manager25.c +++ b/src/manager/manager25.c @@ -1,3 +1,4 @@ +#include "asm.h" #include "manager.h" #include "room.h" #include "functions.h" diff --git a/src/manager/manager26.c b/src/manager/manager26.c index 3a143e21..e06d36d5 100644 --- a/src/manager/manager26.c +++ b/src/manager/manager26.c @@ -1,10 +1,8 @@ #include "global.h" #include "manager.h" -#include "entity.h" #include "flags.h" #include "room.h" #include "object.h" -#include "functions.h" typedef struct { Manager manager; diff --git a/src/manager/manager28.c b/src/manager/manager28.c index 4d4155c7..43e4e8d9 100644 --- a/src/manager/manager28.c +++ b/src/manager/manager28.c @@ -1,9 +1,7 @@ #include "global.h" #include "asm.h" #include "manager.h" -#include "entity.h" #include "room.h" -#include "functions.h" typedef struct { Manager manager; diff --git a/src/manager/manager2A.c b/src/manager/manager2A.c index f82aabd7..a460dc16 100644 --- a/src/manager/manager2A.c +++ b/src/manager/manager2A.c @@ -1,7 +1,7 @@ +#include "asm.h" #include "manager.h" #include "room.h" #include "flags.h" -#include "functions.h" typedef struct { u8 field_0x0; diff --git a/src/manager/manager2B.c b/src/manager/manager2B.c index f4cc8868..112390f6 100644 --- a/src/manager/manager2B.c +++ b/src/manager/manager2B.c @@ -3,7 +3,6 @@ #include "room.h" #include "functions.h" #include "object.h" -#include "audio.h" typedef struct { Manager manager; @@ -27,8 +26,6 @@ typedef struct { extern void (*const gUnk_08108D30[])(Manager2B*); -extern u8 gEntCount; - void sub_0805D11C(Manager2B*); void Manager2B_Main(Manager2B* this) { @@ -50,7 +47,7 @@ void sub_0805D02C(Manager2B* this) { object->x.HALF.HI = objectData[0] + gRoomControls.roomOriginX; object->y.HALF.HI = objectData[1] + gRoomControls.roomOriginY; object->parent = (Entity*)this; - sub_08016A30(object); + ResolveCollisionLayer(object); this->field_0x20[counter] = object; counter += 1; objectData += 3; diff --git a/src/manager/manager2C.c b/src/manager/manager2C.c index 1ff17776..f42c0844 100644 --- a/src/manager/manager2C.c +++ b/src/manager/manager2C.c @@ -1,4 +1,5 @@ #include "manager.h" +#include "asm.h" #include "functions.h" #include "utils.h" diff --git a/src/manager/manager2D.c b/src/manager/manager2D.c index 92aebb64..20d448e6 100644 --- a/src/manager/manager2D.c +++ b/src/manager/manager2D.c @@ -1,3 +1,4 @@ +#include "asm.h" #include "entity.h" #include "functions.h" diff --git a/src/manager/manager3.c b/src/manager/manager3.c index 308de277..b4554896 100644 --- a/src/manager/manager3.c +++ b/src/manager/manager3.c @@ -7,7 +7,6 @@ #include "player.h" #include "audio.h" #include "object.h" -#include "functions.h" // Facilitates the usage of minish portals. diff --git a/src/manager/manager30.c b/src/manager/manager30.c index 94f3be33..307884ea 100644 --- a/src/manager/manager30.c +++ b/src/manager/manager30.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "audio.h" #include "manager.h" #include "flags.h" diff --git a/src/manager/manager31.c b/src/manager/manager31.c index 1cc7beff..561319d8 100644 --- a/src/manager/manager31.c +++ b/src/manager/manager31.c @@ -3,7 +3,6 @@ #include "flags.h" #include "asm.h" #include "object.h" -#include "room.h" typedef struct { Manager manager; diff --git a/src/manager/manager32.c b/src/manager/manager32.c index 9cb61068..4aec05ba 100644 --- a/src/manager/manager32.c +++ b/src/manager/manager32.c @@ -1,6 +1,5 @@ #include "manager.h" #include "screen.h" -#include "structures.h" #include "room.h" #include "functions.h" #include "area.h" diff --git a/src/manager/manager35.c b/src/manager/manager35.c index cc9090d0..599cdd9f 100644 --- a/src/manager/manager35.c +++ b/src/manager/manager35.c @@ -17,8 +17,6 @@ typedef struct { extern void (*const gUnk_08108D98[])(Manager35*); -extern void RequestPriorityDuration(Entity*, u32); - void Manager35_Main(Manager35* this) { gUnk_08108D98[this->manager.action](this); } @@ -57,7 +55,7 @@ void sub_0805DCC8(Manager35* this) { void sub_0805DD24(Manager35* this) { RequestPriorityDuration(0, 8); - if ((gRoomControls.unk6 & 4) == 0 && --this->manager.unk_0e == 0) { + if ((gRoomControls.scroll_flags & 4) == 0 && --this->manager.unk_0e == 0) { this->manager.action = 3; SetFlag(this->field_0x3c); if (this->field_0x36 == 0) { @@ -73,7 +71,7 @@ void sub_0805DD68(Manager35* this) { gRoomControls.cameraTarget = (Entity*)this->manager.parent; } } else { - if ((gRoomControls.unk6 & 4) == 0) { + if ((gRoomControls.scroll_flags & 4) == 0) { Entity* entity = *(Entity**)this->manager.unk_18; if (entity != NULL) { DeleteEntity(entity); diff --git a/src/manager/manager36.c b/src/manager/manager36.c index 96e8b1a3..a0ab4a62 100644 --- a/src/manager/manager36.c +++ b/src/manager/manager36.c @@ -1,7 +1,6 @@ #include "manager.h" #include "audio.h" #include "script.h" -#include "functions.h" typedef struct { u16 waitTime; diff --git a/src/manager/manager39.c b/src/manager/manager39.c index 96787a29..c3795422 100644 --- a/src/manager/manager39.c +++ b/src/manager/manager39.c @@ -28,7 +28,6 @@ extern const u8 gUnk_08108E48[0x18]; extern const u8 gUnk_08108E60[]; extern void sub_0805F46C(void*, const void*); -extern void ResetSystemPriority(void); void sub_0805E140(Manager39*); void sub_0805E18C(Manager39*); // unused? diff --git a/src/manager/manager4.c b/src/manager/manager4.c index 42eb1ad6..48223e88 100644 --- a/src/manager/manager4.c +++ b/src/manager/manager4.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "player.h" #include "room.h" #include "manager.h" diff --git a/src/manager/manager6.c b/src/manager/manager6.c index f412a208..023e93e6 100644 --- a/src/manager/manager6.c +++ b/src/manager/manager6.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "player.h" #include "manager.h" #include "functions.h" diff --git a/src/manager/manager7.c b/src/manager/manager7.c index 59cf85b6..45ff72a4 100644 --- a/src/manager/manager7.c +++ b/src/manager/manager7.c @@ -1,8 +1,6 @@ -#include "global.h" #include "manager.h" +#include "asm.h" #include "functions.h" -#include "structures.h" -#include "gba/gba.h" typedef struct { Manager manager; diff --git a/src/manager/manager8.c b/src/manager/manager8.c index 20298d1f..04a5b954 100644 --- a/src/manager/manager8.c +++ b/src/manager/manager8.c @@ -1,8 +1,6 @@ -#include "global.h" #include "manager.h" #include "screen.h" #include "functions.h" -#include "gba/gba.h" typedef struct { Manager manager; diff --git a/src/manager/managerA.c b/src/manager/managerA.c index 1d68eadc..0554ea1b 100644 --- a/src/manager/managerA.c +++ b/src/manager/managerA.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "entity.h" #include "player.h" #include "manager.h" @@ -15,8 +16,6 @@ static void sub_080585B0(ManagerA*); static u32 PlayerStateValid(ManagerA*); static void sub_080585DC(ManagerA*); -extern void sub_0801855C(void); - /** * Ezlo hint manager */ diff --git a/src/manager/managerB.c b/src/manager/managerB.c index 82182094..4f9cbdb6 100644 --- a/src/manager/managerB.c +++ b/src/manager/managerB.c @@ -1,12 +1,10 @@ #include "global.h" #include "manager.h" #include "flags.h" -#include "entity.h" #include "room.h" #include "area.h" #include "utils.h" #include "audio.h" -#include "functions.h" /* * Manager B is used to create fights: @@ -47,7 +45,6 @@ void ManagerB_Init(ManagerB* this) { DeleteThisEntity(); } } -extern void sub_080186C0(u32); void ManagerB_WaitForFlag(ManagerB* this) { int tmp; @@ -63,8 +60,6 @@ void ManagerB_WaitForFlag(ManagerB* this) { } } -extern void sub_0801855C(void); - void ManagerB_WaitForDone(ManagerB* this) { // check if all helpers are done if (this->manager.unk_0e) diff --git a/src/manager/managerE.c b/src/manager/managerE.c index 1cdb8ab8..b1651333 100644 --- a/src/manager/managerE.c +++ b/src/manager/managerE.c @@ -1,4 +1,3 @@ -#include "global.h" #include "entity.h" #include "manager.h" #include "flags.h" diff --git a/src/manager/managerF.c b/src/manager/managerF.c index c13e9588..27c4e877 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -7,14 +7,11 @@ #include "functions.h" #include "area.h" #include "textbox.h" -#include "script.h" #include "utils.h" #include "tiles.h" #include "object.h" #include "item.h" -void sub_08058ECC(ManagerF*); - void sub_08058EE4(ManagerF*); void sub_08058FB0(ManagerF*); void sub_08059094(ManagerF*); diff --git a/src/npc/anju.c b/src/npc/anju.c index 29a80185..375917e2 100644 --- a/src/npc/anju.c +++ b/src/npc/anju.c @@ -1,8 +1,6 @@ -#include "global.h" #include "entity.h" #include "player.h" #include "npc.h" -#include "script.h" void Anju(Entity* this) { switch (this->action) { diff --git a/src/npc/beedle.c b/src/npc/beedle.c index 1e303b7a..54eedff3 100644 --- a/src/npc/beedle.c +++ b/src/npc/beedle.c @@ -1,7 +1,6 @@ #include "global.h" #include "entity.h" #include "textbox.h" -#include "player.h" #include "room.h" #include "script.h" #include "npc.h" diff --git a/src/npc/bigGoron.c b/src/npc/bigGoron.c index 63c25922..0fb7c8bf 100644 --- a/src/npc/bigGoron.c +++ b/src/npc/bigGoron.c @@ -1,5 +1,4 @@ #include "npc.h" -#include "structures.h" #include "functions.h" #include "screen.h" diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c index 66d0a733..09eec8d5 100644 --- a/src/npc/bladeBrothers.c +++ b/src/npc/bladeBrothers.c @@ -7,9 +7,7 @@ #include "save.h" #include "script.h" #include "npc.h" -#include "audio.h" #include "functions.h" -#include "effects.h" extern void (*gUnk_081115C0[])(Entity*); extern void (*gUnk_081115D0[])(Entity*); @@ -93,8 +91,6 @@ void sub_08068A4C(Entity* this) { } void sub_08068AA4(Entity* this) { - u8 bVar1; - this->action = 1; if (this->type != 0) { this->type2++; @@ -176,9 +172,6 @@ static void sub_08068BEC(Entity* this, u32 unused) { } void sub_08068C28(Entity* this) { - u8 bVar1; - u32 uVar2; - this->actionDelay = gUnk_08111623[this->type]; if (this->type == 1) { if (GetInventoryValue(0x48)) { // spin attack diff --git a/src/npc/brocco.c b/src/npc/brocco.c index 0ec333bb..22c3dedb 100644 --- a/src/npc/brocco.c +++ b/src/npc/brocco.c @@ -2,7 +2,6 @@ #include "textbox.h" #include "save.h" #include "npc.h" -#include "script.h" void sub_08063544(Entity*); void sub_0806362C(Entity*); diff --git a/src/npc/carlov.c b/src/npc/carlov.c index 83402406..25aa49ca 100644 --- a/src/npc/carlov.c +++ b/src/npc/carlov.c @@ -1,9 +1,7 @@ -#include "global.h" #include "audio.h" #include "entity.h" #include "room.h" #include "npc.h" -#include "script.h" void Carlov(Entity* this) { if (this->action == 0) { diff --git a/src/npc/carpenter.c b/src/npc/carpenter.c index 97efd2c1..b2341e33 100644 --- a/src/npc/carpenter.c +++ b/src/npc/carpenter.c @@ -1,11 +1,7 @@ #include "global.h" #include "entity.h" -#include "sprite.h" #include "player.h" #include "npc.h" -#include "script.h" -#include "flags.h" -#include "textbox.h" extern SpriteLoadData gUnk_08110CA8[]; diff --git a/src/npc/castleMaid.c b/src/npc/castleMaid.c index bc6eb925..75533301 100644 --- a/src/npc/castleMaid.c +++ b/src/npc/castleMaid.c @@ -46,7 +46,6 @@ void Maid_Head(Entity* this) { } NONMATCH("asm/non_matching/castleMaid/sub_08064570.inc", void sub_08064570(Entity* this)) { - u8 bVar1; u32 tmp; switch (this->action) { diff --git a/src/npc/cat.c b/src/npc/cat.c index b670b5ab..af53d0c3 100644 --- a/src/npc/cat.c +++ b/src/npc/cat.c @@ -2,10 +2,8 @@ #include "entity.h" #include "functions.h" #include "save.h" -#include "player.h" #include "textbox.h" #include "npc.h" -#include "audio.h" extern void sub_08067C44(); @@ -58,7 +56,6 @@ void Cat(Entity* ent) { } void sub_080677EC(Entity* this) { - u8 bVar1; u32 uVar2; this->spriteSettings.draw = 1; @@ -96,7 +93,7 @@ void sub_080678AC(Entity* this) { u32 iVar1; u16* psVar2; - iVar1 = sub_08067D20(); + iVar1 = sub_08067D20(this); if (iVar1 != 0) { sub_08067B80(this, 5); } else { @@ -116,7 +113,7 @@ void sub_080678AC(Entity* this) { } void sub_08067904(Entity* this) { - if (sub_08067D20() != 0) { + if (sub_08067D20(this) != 0) { sub_08067B80(this, 8); return; } @@ -137,7 +134,7 @@ void sub_08067904(Entity* this) { this->spriteSettings.flipX = 1; } } - sub_0806F69C(this); + LinearMoveUpdate(this); UpdateAnimationSingleFrame(this); } @@ -346,7 +343,6 @@ u32 sub_08067D20(Entity* this) { u32 sub_08067D74(Entity* this) { Entity* entity; int iVar2; - s32 tmp; if (this->type != 5) { if (this->actionDelay != 0) { diff --git a/src/npc/cow.c b/src/npc/cow.c index 295e387a..0437072f 100644 --- a/src/npc/cow.c +++ b/src/npc/cow.c @@ -208,7 +208,7 @@ void sub_0806924C(Entity* ent) { } } else { Cow_ShowDialogue(ent); - sub_080791D0(); + ResetPlayerAnimationAndAction(); } SoundReq(SFX_VO_COW); ent->interactType = 0; diff --git a/src/npc/cucco.c b/src/npc/cucco.c index 27f3fc5a..bca662c1 100644 --- a/src/npc/cucco.c +++ b/src/npc/cucco.c @@ -64,7 +64,7 @@ void sub_0806E65C(Entity* this) { sub_0806E6A8(this); } } else { - sub_080791D0(); + ResetPlayerAnimationAndAction(); } SoundReq(SFX_VO_CUCCO_CALL); this->interactType = 0; diff --git a/src/npc/cuccoChick.c b/src/npc/cuccoChick.c index 10a51b9f..0ccc0d17 100644 --- a/src/npc/cuccoChick.c +++ b/src/npc/cuccoChick.c @@ -57,7 +57,7 @@ void sub_0806E838(Entity* this) { sub_0806E884(this); } } else { - sub_080791D0(); + ResetPlayerAnimationAndAction(); } SoundReq(SFX_VO_CHEEP); this->interactType = 0; diff --git a/src/npc/dampe.c b/src/npc/dampe.c index afb9ef63..d1009033 100644 --- a/src/npc/dampe.c +++ b/src/npc/dampe.c @@ -5,8 +5,6 @@ #include "flags.h" #include "textbox.h" #include "npc.h" -#include "functions.h" -#include "script.h" extern u16 gUnk_08113344[]; extern u16 gUnk_0811334A[]; diff --git a/src/npc/din.c b/src/npc/din.c index 51026a2e..7ddc0a3f 100644 --- a/src/npc/din.c +++ b/src/npc/din.c @@ -1,9 +1,6 @@ #include "global.h" #include "entity.h" #include "npc.h" -#include "script.h" -#include "functions.h" -#include "save.h" void Din(Entity* this) { switch (this->action) { diff --git a/src/npc/dog.c b/src/npc/dog.c index 97fadf4b..bd88e5c3 100644 --- a/src/npc/dog.c +++ b/src/npc/dog.c @@ -1,7 +1,6 @@ #include "entity.h" #include "functions.h" #include "npc.h" -#include "save.h" extern void (*gUnk_08111D88[])(Entity*); void sub_08069FE8(Entity*); @@ -304,7 +303,7 @@ void sub_0806A028(Entity* this) { sub_08069FBC(this); sub_0806A080(this); SoundReq(SFX_VO_DOG); - sub_080791D0(); + ResetPlayerAnimationAndAction(); } this->interactType = 0; } diff --git a/src/npc/drLeft.c b/src/npc/drLeft.c index bccfb259..a4942f0f 100644 --- a/src/npc/drLeft.c +++ b/src/npc/drLeft.c @@ -1,5 +1,4 @@ #include "npc.h" -#include "functions.h" extern void sub_08078850(Entity*, u32, u8, u32*); extern u32 gUnk_081133B4; diff --git a/src/npc/emma.c b/src/npc/emma.c index ed4d6025..088f01a0 100644 --- a/src/npc/emma.c +++ b/src/npc/emma.c @@ -1,4 +1,3 @@ -#include "global.h" #include "entity.h" #include "script.h" #include "functions.h" diff --git a/src/npc/epona.c b/src/npc/epona.c index 4c3d9174..9a43655b 100644 --- a/src/npc/epona.c +++ b/src/npc/epona.c @@ -2,7 +2,6 @@ #include "audio.h" #include "entity.h" #include "textbox.h" -#include "player.h" #include "npc.h" #include "functions.h" @@ -83,7 +82,7 @@ void sub_08065AA4(Entity* this) { InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); } else { sub_08065A50(this); - sub_080791D0(); + ResetPlayerAnimationAndAction(); } SoundReq(SFX_VO_EPONA); this->interactType = 0; diff --git a/src/npc/ezlo.c b/src/npc/ezlo.c index 6a3a96da..77a69331 100644 --- a/src/npc/ezlo.c +++ b/src/npc/ezlo.c @@ -1,5 +1,4 @@ #include "npc.h" -#include "script.h" const u8 gUnk_08114134[]; const u8 gUnk_08114144[]; diff --git a/src/npc/farore.c b/src/npc/farore.c index 0249171d..f9bfe746 100644 --- a/src/npc/farore.c +++ b/src/npc/farore.c @@ -1,11 +1,6 @@ #include "global.h" #include "entity.h" #include "npc.h" -#include "script.h" -#include "functions.h" -#include "save.h" - -extern u32 sub_08002632(Entity*); void Farore(Entity* this) { switch (this->action) { diff --git a/src/npc/festari.c b/src/npc/festari.c index 49dde08c..2af31802 100644 --- a/src/npc/festari.c +++ b/src/npc/festari.c @@ -2,15 +2,11 @@ #include "entity.h" #include "functions.h" #include "npc.h" -#include "player.h" -#include "script.h" extern void sub_0805FF2C(Entity*, ScriptExecutionContext*); extern void (*const gUnk_08109BBC[])(Entity*); -extern void HandlePostScriptActions(Entity*, ScriptExecutionContext*); - void Festari(Entity* this) { gUnk_08109BBC[this->action](this); } @@ -25,9 +21,6 @@ void sub_0805FE10(Entity* this) { } void sub_0805FE48(Entity* this) { - u8 bVar1; - u16 uVar2; - u32 uVar3; u32 uVar4; if (this->interactType == 2) { diff --git a/src/npc/forestMinish.c b/src/npc/forestMinish.c index 1ebe4176..988110f7 100644 --- a/src/npc/forestMinish.c +++ b/src/npc/forestMinish.c @@ -1,6 +1,5 @@ #include "npc.h" #include "object.h" -#include "structures.h" #include "functions.h" extern void sub_080600F0(Entity*); @@ -229,7 +228,6 @@ void sub_08060340(void) { } u32 sub_08060354(void) { - u32 iVar1; s32 iVar2; iVar2 = gSave.unk50 - gSave.unk48C[1]; diff --git a/src/npc/gentari.c b/src/npc/gentari.c index d4938806..bf7818c1 100644 --- a/src/npc/gentari.c +++ b/src/npc/gentari.c @@ -1,9 +1,6 @@ #include "global.h" #include "entity.h" #include "npc.h" -#include "player.h" -#include "script.h" -#include "functions.h" void Gentari(Entity* this) { switch (this->action) { diff --git a/src/npc/ghostBrothers.c b/src/npc/ghostBrothers.c index de04427b..96130800 100644 --- a/src/npc/ghostBrothers.c +++ b/src/npc/ghostBrothers.c @@ -4,7 +4,6 @@ #include "screen.h" #include "textbox.h" #include "npc.h" -#include "script.h" extern void (*const gUnk_0811017C[])(Entity*); @@ -25,8 +24,6 @@ void sub_08065BF4(Entity* this) { } NONMATCH("asm/non_matching/ghostBrothers/sub_08065C0C.inc", void sub_08065C0C(Entity* this)) { - u8 bVar1; - u32 uVar2; u16* puVar3; switch (this->action) { diff --git a/src/npc/gina.c b/src/npc/gina.c index f12537b5..0f4973b8 100644 --- a/src/npc/gina.c +++ b/src/npc/gina.c @@ -2,9 +2,6 @@ #include "entity.h" #include "player.h" #include "npc.h" -#include "flags.h" -#include "functions.h" -#include "script.h" void Gina(Entity* this) { switch (this->action) { diff --git a/src/npc/goron.c b/src/npc/goron.c index d48cda07..144cc808 100644 --- a/src/npc/goron.c +++ b/src/npc/goron.c @@ -2,7 +2,6 @@ #include "entity.h" #include "functions.h" #include "textbox.h" -#include "script.h" #include "effects.h" #include "npc.h" diff --git a/src/npc/goronMerchant.c b/src/npc/goronMerchant.c index f4640890..b00f3898 100644 --- a/src/npc/goronMerchant.c +++ b/src/npc/goronMerchant.c @@ -1,11 +1,8 @@ #include "global.h" #include "entity.h" #include "functions.h" -#include "structures.h" #include "textbox.h" -#include "room.h" #include "flags.h" -#include "script.h" #include "save.h" #include "npc.h" diff --git a/src/npc/gregal.c b/src/npc/gregal.c index 9177592b..f7038e95 100644 --- a/src/npc/gregal.c +++ b/src/npc/gregal.c @@ -3,8 +3,6 @@ #include "functions.h" #include "npc.h" -void ChangeObjPalette(Entity*, u32); - extern void (*gUnk_08113D8C[])(Entity*); extern void sub_08078850(Entity*, u32, u8, u32*); diff --git a/src/npc/guard.c b/src/npc/guard.c index 67c4fa2e..c456d95e 100644 --- a/src/npc/guard.c +++ b/src/npc/guard.c @@ -5,7 +5,6 @@ #include "textbox.h" #include "room.h" #include "script.h" -#include "structures.h" #include "functions.h" #include "npc.h" @@ -28,10 +27,8 @@ extern void (*const gUnk_0810F544[])(Entity*); extern void (*const gUnk_0810F550[])(Entity*); // entity count -extern u8 gEntCount; extern SpriteLoadData gUnk_0810F524[]; extern void* gUnk_0810F6BC[]; -extern ScreenTransition gScreenTransition; void Guard(Entity* this) { if ((this->flags & 2) != 0) { @@ -113,7 +110,6 @@ void sub_08063E6C(Entity* this) { } void sub_08063E90(Entity* this) { - Entity* ent; u32 temp, idx; u32 unk; @@ -166,7 +162,6 @@ void sub_08063F78(Entity* this) { } void Guard_Head(Entity* this) { - u8 bVar1; u32 uVar2; u32 pbVar3; u32 uVar4; diff --git a/src/npc/hurdyGurdyMan.c b/src/npc/hurdyGurdyMan.c index 52277dff..b36176cb 100644 --- a/src/npc/hurdyGurdyMan.c +++ b/src/npc/hurdyGurdyMan.c @@ -2,13 +2,11 @@ #include "functions.h" #include "save.h" #include "npc.h" -#include "script.h" extern Dialog gUnk_081144FC[]; extern SpriteLoadData gUnk_081144F0; -extern u32 sub_08002632(Entity*); extern u16* gUnk_08001A7C[]; void HurdyGurdyMan(Entity* this) { diff --git a/src/npc/kid.c b/src/npc/kid.c index c109baae..1655b279 100644 --- a/src/npc/kid.c +++ b/src/npc/kid.c @@ -1,8 +1,6 @@ #include "functions.h" #include "textbox.h" #include "npc.h" -#include "script.h" -#include "save.h" extern void (*const gUnk_0810BE0C[])(Entity*); void sub_080621AC(Entity*); @@ -28,8 +26,6 @@ extern Dialog gUnk_0810BE10[]; extern u8 gUnk_0810C0A0[]; -extern SpriteLoadData* gUnk_0810BDC4[]; - void Kid(Entity* this) { if ((this->flags & 2) != 0) { sub_080621AC(this); @@ -338,7 +334,6 @@ NONMATCH("asm/non_matching/kid/sub_08062948.inc", void sub_08062948(Entity* this u16 uVar2; u32 uVar3; s32 iVar4; - s16* psVar5; if (context->unk_18 == 0) { context->unk_18 += 1; diff --git a/src/npc/kingDaltus.c b/src/npc/kingDaltus.c index 4bc618b3..e159c531 100644 --- a/src/npc/kingDaltus.c +++ b/src/npc/kingDaltus.c @@ -2,8 +2,6 @@ #include "script.h" #include "functions.h" #include "npc.h" -#include "flags.h" -#include "textbox.h" extern u16 gUnk_081104F8[]; diff --git a/src/npc/kingGustaf.c b/src/npc/kingGustaf.c index a40a19f6..ae33c16c 100644 --- a/src/npc/kingGustaf.c +++ b/src/npc/kingGustaf.c @@ -1,7 +1,6 @@ #include "global.h" #include "entity.h" #include "functions.h" -#include "script.h" #include "screen.h" void KingGustaf(Entity* this) { diff --git a/src/npc/librari.c b/src/npc/librari.c index 509d790e..f3cb382c 100644 --- a/src/npc/librari.c +++ b/src/npc/librari.c @@ -1,10 +1,6 @@ #include "global.h" #include "entity.h" #include "npc.h" -#include "flags.h" -#include "textbox.h" -#include "functions.h" -#include "script.h" extern u16 gUnk_08112D48[]; diff --git a/src/npc/mailbox.c b/src/npc/mailbox.c index a4afd083..89901625 100644 --- a/src/npc/mailbox.c +++ b/src/npc/mailbox.c @@ -1,7 +1,6 @@ #include "global.h" #include "entity.h" #include "textbox.h" -#include "functions.h" #include "effects.h" #include "npc.h" diff --git a/src/npc/malon.c b/src/npc/malon.c index 85ba2cd1..deb17fe7 100644 --- a/src/npc/malon.c +++ b/src/npc/malon.c @@ -2,7 +2,6 @@ #include "entity.h" #include "script.h" #include "npc.h" -#include "functions.h" extern void (*gUnk_0810FF5C[])(Entity* this); extern void (*gUnk_0810FF64[])(Entity* this); diff --git a/src/npc/mama.c b/src/npc/mama.c index d5ea5950..57290d94 100644 --- a/src/npc/mama.c +++ b/src/npc/mama.c @@ -1,6 +1,5 @@ #include "entity.h" #include "script.h" -#include "functions.h" #include "save.h" #include "npc.h" diff --git a/src/npc/marcy.c b/src/npc/marcy.c index 01c94bc4..ae888d2e 100644 --- a/src/npc/marcy.c +++ b/src/npc/marcy.c @@ -1,6 +1,5 @@ #include "entity.h" #include "functions.h" -#include "script.h" #include "flags.h" #include "textbox.h" diff --git a/src/npc/mayorHagen.c b/src/npc/mayorHagen.c index 1c569e92..bf56dd1d 100644 --- a/src/npc/mayorHagen.c +++ b/src/npc/mayorHagen.c @@ -3,10 +3,6 @@ #include "player.h" #include "flags.h" #include "npc.h" -#include "structures.h" -#include "functions.h" -#include "save.h" -#include "script.h" extern void sub_08078850(); extern u32 gUnk_08113F44; diff --git a/src/npc/milkCart.c b/src/npc/milkCart.c index 7b32235f..1493d385 100644 --- a/src/npc/milkCart.c +++ b/src/npc/milkCart.c @@ -1,6 +1,4 @@ -#include "global.h" #include "entity.h" -#include "functions.h" #include "npc.h" extern void (*gMilkCartBehaviors[2])(Entity*); diff --git a/src/npc/minishEzlo.c b/src/npc/minishEzlo.c index 0d2d017b..08e255bb 100644 --- a/src/npc/minishEzlo.c +++ b/src/npc/minishEzlo.c @@ -1,6 +1,5 @@ #include "entity.h" #include "functions.h" -#include "script.h" #include "audio.h" extern SpriteLoadData gUnk_0810C48C; diff --git a/src/npc/ministerPotho.c b/src/npc/ministerPotho.c index 5ee2e07d..eb38d37f 100644 --- a/src/npc/ministerPotho.c +++ b/src/npc/ministerPotho.c @@ -1,8 +1,6 @@ #include "entity.h" -#include "functions.h" #include "flags.h" #include "textbox.h" -#include "script.h" #include "npc.h" extern void (*const gUnk_08110644[])(Entity*); diff --git a/src/npc/moblinLady.c b/src/npc/moblinLady.c index d63d4d87..7aa448f1 100644 --- a/src/npc/moblinLady.c +++ b/src/npc/moblinLady.c @@ -1,7 +1,5 @@ -#include "global.h" #include "entity.h" #include "npc.h" -#include "script.h" void MoblinLady(Entity* this) { if (this->action == 0) { diff --git a/src/npc/mountainMinish.c b/src/npc/mountainMinish.c index b7c0f08a..6616a452 100644 --- a/src/npc/mountainMinish.c +++ b/src/npc/mountainMinish.c @@ -10,8 +10,6 @@ extern SpriteLoadData gUnk_08111358; extern void (*const gUnk_08111368[])(Entity*); void sub_08067EF0(Entity*); -extern SpriteLoadData gUnk_08111358; - extern u16 gUnk_0811130E[]; void MountainMinish(Entity* this) { diff --git a/src/npc/mutoh.c b/src/npc/mutoh.c index 7cae63d1..6106baf2 100644 --- a/src/npc/mutoh.c +++ b/src/npc/mutoh.c @@ -4,10 +4,6 @@ #include "flags.h" #include "textbox.h" #include "npc.h" -#include "structures.h" -#include "functions.h" -#include "save.h" -#include "script.h" extern SpriteLoadData gUnk_08110C00; extern u16 gUnk_08110C0C[]; diff --git a/src/npc/nayru.c b/src/npc/nayru.c index bfc4a3a3..9e3bea24 100644 --- a/src/npc/nayru.c +++ b/src/npc/nayru.c @@ -1,11 +1,6 @@ #include "global.h" #include "entity.h" #include "npc.h" -#include "script.h" -#include "functions.h" -#include "save.h" - -extern u32 sub_08002632(Entity*); void Nayru(Entity* this) { switch (this->action) { diff --git a/src/npc/npc23.c b/src/npc/npc23.c index 003c5bd9..3fc78f64 100644 --- a/src/npc/npc23.c +++ b/src/npc/npc23.c @@ -1,9 +1,7 @@ #include "entity.h" -#include "script.h" #include "player.h" #include "structures.h" #include "functions.h" -#include "structures.h" #include "textbox.h" #include "npc.h" diff --git a/src/npc/npc26.c b/src/npc/npc26.c index 81ce55b7..3a4fbf75 100644 --- a/src/npc/npc26.c +++ b/src/npc/npc26.c @@ -1,7 +1,5 @@ #include "global.h" #include "entity.h" -#include "functions.h" -#include "script.h" #include "npc.h" static void (*const gUnk_081106D4[])(Entity*); diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index 920e7c12..ca9f114b 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -1,8 +1,6 @@ #include "global.h" #include "entity.h" #include "functions.h" -#include "script.h" -#include "functions.h" #include "audio.h" #include "save.h" #include "flags.h" @@ -196,7 +194,6 @@ void sub_0806DC7C() { } void sub_0806DCA0() { - u16 uVar1; const u16* tiles = gUnk_081141F4; while (*tiles != 0) { u32 tile = *tiles; diff --git a/src/npc/npc5.c b/src/npc/npc5.c index 97d3c819..350e1630 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -161,6 +161,7 @@ void sub_08060B5C(Entity* this) { void sub_08060BA0(Entity* this) { Entity* r5; + //! @bug: r5 is uninitialized if (sub_08061230(this) != 0) { return; @@ -263,7 +264,7 @@ void sub_08060DF4(Entity* this) { void sub_08060DFC(Entity* this) { u32 uVar1; - sub_0806F69C(this); + LinearMoveUpdate(this); sub_08060E94(this); uVar1 = GravityUpdate(this, 0x2000); if (uVar1 == 0) { @@ -406,9 +407,7 @@ NONMATCH("asm/non_matching/npc5/sub_08061170.inc", bool32 sub_08061170(Entity* t END_NONMATCH NONMATCH("asm/non_matching/npc5/sub_080611D4.inc", u32 sub_080611D4(Entity* this)) { - u8 bVar1; u32 uVar2; - u8* pbVar3; u32 x; s32 a; @@ -420,8 +419,7 @@ NONMATCH("asm/non_matching/npc5/sub_080611D4.inc", u32 sub_080611D4(Entity* this b = gUnk_0810AC4C[x].unk_1; // asm("d"); uVar2 = sub_080002B4(this, a, b); -// asm("b"); -code4: + // asm("b"); if ((gUnk_0810AC54[0] != uVar2 || (this->animationState != gUnk_0810AC54[1] >> 2))) { // asm ("e"); if (gUnk_0810AC54[2] == 0) { @@ -473,7 +471,6 @@ u32 sub_08061230(Entity* this) { } NONMATCH("asm/non_matching/npc5/sub_08061358.inc", void sub_08061358(Entity* this)) { - u8 bVar1; u32 uVar2; s32 iVar3; u8 bVar4; @@ -629,7 +626,6 @@ NONMATCH("asm/non_matching/npc5/sub_08061464.inc", void sub_08061464(Entity* thi sub_08061630(this, iVar10, iVar9 + -8, param_a); } } -_08061612: bVar1 = ((UnkHeap*)this->myHeap)->unk_0; if ((bVar1 & 8) == 0) { this->action = 3; @@ -843,7 +839,6 @@ void sub_08061AFC(Entity* this) { } NONMATCH("asm/non_matching/npc5/sub_08061B18.inc", void sub_08061B18(Entity* this)) { - u8 bVar1; u16* puVar2; typedef struct { diff --git a/src/npc/npc58.c b/src/npc/npc58.c index 5cebcb57..c9b9ab72 100644 --- a/src/npc/npc58.c +++ b/src/npc/npc58.c @@ -1,5 +1,4 @@ #include "entity.h" -#include "functions.h" #include "npc.h" extern void sub_0806FFBC(Entity*, u32, u32, u32); diff --git a/src/npc/npc9.c b/src/npc/npc9.c index 0c514fd3..e4f879f9 100644 --- a/src/npc/npc9.c +++ b/src/npc/npc9.c @@ -1,7 +1,6 @@ #include "global.h" #include "entity.h" #include "textbox.h" -#include "functions.h" #include "npc.h" extern void (*const gUnk_0810C290[])(Entity*); diff --git a/src/npc/percy.c b/src/npc/percy.c index 90e10b28..db53c99d 100644 --- a/src/npc/percy.c +++ b/src/npc/percy.c @@ -1,25 +1,16 @@ #include "global.h" #include "entity.h" #include "npc.h" -#include "textbox.h" #include "functions.h" -#include "flags.h" -#include "script.h" -#include "save.h" -#include "effects.h" extern void sub_0806B41C(Entity*); extern void sub_0806B3CC(Entity*); -extern u32 sub_08002632(Entity*); - extern u16* gUnk_08001A7C[40]; extern u16 gUnk_08112E54[4]; extern Dialog gUnk_08112E2C[5]; extern SpriteLoadData gUnk_08112E1C; -extern SpriteLoadData gUnk_08112E1C; - void Percy_Head(Entity* this) { SetExtraSpriteFrame(this, 0, (this->frameSpriteSettings & 0x3f) + 0x13); SetExtraSpriteFrame(this, 1, (this->frame & 0x7f) + 0xb); diff --git a/src/npc/pina.c b/src/npc/pina.c index 4d60768c..179ee9d5 100644 --- a/src/npc/pina.c +++ b/src/npc/pina.c @@ -2,7 +2,6 @@ #include "functions.h" #include "textbox.h" #include "save.h" -#include "script.h" #include "npc.h" void sub_08063B68(Entity* this); diff --git a/src/npc/pita.c b/src/npc/pita.c index 97abf77d..b5a2e065 100644 --- a/src/npc/pita.c +++ b/src/npc/pita.c @@ -34,6 +34,7 @@ bool32 sub_08062EDC(Entity* this, ScriptExecutionContext* context) { u32 tmp; u32 tmp2; + //! @bug: tmp is uninitialized, in practice player must have an item here if (GetInventoryValue(0x68) != 0) { tmp = 0; } diff --git a/src/npc/postman.c b/src/npc/postman.c index d8cdb5aa..79a12f3a 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -3,14 +3,6 @@ #include "entity.h" #include "functions.h" #include "npc.h" -#include "textbox.h" -#include "player.h" -#include "room.h" -#include "structures.h" -#include "save.h" -#include "script.h" -#include "flags.h" -#include "effects.h" extern void sub_08060528(Entity*); extern void sub_080604DC(Entity*); @@ -37,7 +29,6 @@ void Postman(Entity* this) { } void sub_08060428(Entity* this) { - u8 bVar1; void* data; this->actionDelay = 0x5a; @@ -54,7 +45,6 @@ void sub_08060428(Entity* this) { void sub_0806045C(Entity* this) { u8 bVar1; - u32 uVar2; u32 bVar3; s32 temp; @@ -92,8 +82,6 @@ void sub_080604C8(Entity* this) { } void sub_080604DC(Entity* this) { - u8 bVar1; - int iVar2; Entity* ent; if (this->spriteSettings.draw == 1 && CheckOnScreen(this)) { diff --git a/src/npc/smith.c b/src/npc/smith.c index 307bd0bd..764a2aa8 100644 --- a/src/npc/smith.c +++ b/src/npc/smith.c @@ -1,5 +1,4 @@ #include "npc.h" -#include "functions.h" extern void sub_08078850(Entity*, u32, u32, u32*); @@ -65,7 +64,6 @@ void sub_080660EC(Entity* this) { void sub_08066118(Entity* this) { s32 uVar1; - u32 iVar2; uVar1 = sub_0806ED9C(this, 0x28, 0x28); if (uVar1 < 0) { @@ -105,8 +103,6 @@ void sub_080661B0(Entity* this) { } void sub_080661BC(Entity* this) { - u32 sVar1; - if (this->animIndex == 0xc) { UpdateAnimationSingleFrame(this); if (this->frame & 0x80) { diff --git a/src/npc/stamp.c b/src/npc/stamp.c index 2b5888a8..193ae976 100644 --- a/src/npc/stamp.c +++ b/src/npc/stamp.c @@ -2,7 +2,6 @@ #include "entity.h" #include "textbox.h" #include "functions.h" -#include "script.h" #include "effects.h" #include "npc.h" diff --git a/src/npc/sturgeon.c b/src/npc/sturgeon.c index 147382a8..ef135a92 100644 --- a/src/npc/sturgeon.c +++ b/src/npc/sturgeon.c @@ -1,10 +1,7 @@ #include "entity.h" #include "functions.h" #include "npc.h" -#include "textbox.h" #include "object.h" -#include "flags.h" -#include "script.h" extern u16 gUnk_0810FA54[]; diff --git a/src/npc/talon.c b/src/npc/talon.c index a7bc1e81..d991ab1f 100644 --- a/src/npc/talon.c +++ b/src/npc/talon.c @@ -53,7 +53,7 @@ void sub_0806559C(Entity* this) { sub_0806ED78(this); if (this->interactType != 0) { this->interactType = 0; - sub_080791D0(); + ResetPlayerAnimationAndAction(); } } diff --git a/src/npc/teachers.c b/src/npc/teachers.c index 645361d2..d99151da 100644 --- a/src/npc/teachers.c +++ b/src/npc/teachers.c @@ -4,7 +4,6 @@ #include "save.h" #include "script.h" #include "npc.h" -#include "functions.h" extern SpriteLoadData gUnk_08113910[]; diff --git a/src/npc/tingleSiblings.c b/src/npc/tingleSiblings.c index 18587c36..490f15ee 100644 --- a/src/npc/tingleSiblings.c +++ b/src/npc/tingleSiblings.c @@ -1,8 +1,6 @@ #include "global.h" #include "entity.h" #include "npc.h" -#include "textbox.h" -#include "script.h" #include "functions.h" extern void sub_08064DE4(Entity*); diff --git a/src/npc/townMinish.c b/src/npc/townMinish.c index 3d89d6f4..557b7341 100644 --- a/src/npc/townMinish.c +++ b/src/npc/townMinish.c @@ -2,10 +2,6 @@ #include "entity.h" #include "npc.h" #include "functions.h" -#include "textbox.h" -#include "flags.h" -#include "save.h" -#include "script.h" extern u32 sub_080002C0(); extern void sub_0806ACC4(Entity*); @@ -63,8 +59,6 @@ void sub_0806AC3C(Entity* this) { } if (unk != this->field_0x68.HALF.HI) { - s32 temp; - if (((unk - this->field_0x68.HALF.HI) & 0x1f) <= 0xf) { this->field_0x68.HALF.HI--; } else { diff --git a/src/npc/townsperson.c b/src/npc/townsperson.c index 3b674b37..17cd48e5 100644 --- a/src/npc/townsperson.c +++ b/src/npc/townsperson.c @@ -1,5 +1,4 @@ #include "npc.h" -#include "structures.h" #include "functions.h" typedef struct { diff --git a/src/npc/vaati.c b/src/npc/vaati.c index 751a1be6..a550c1a8 100644 --- a/src/npc/vaati.c +++ b/src/npc/vaati.c @@ -2,7 +2,6 @@ #include "entity.h" #include "script.h" #include "audio.h" -#include "structures.h" #include "functions.h" extern void sub_08095CB0(Entity*); diff --git a/src/npc/vaatiReborn.c b/src/npc/vaatiReborn.c index 89c9ce8f..3ed28ca8 100644 --- a/src/npc/vaatiReborn.c +++ b/src/npc/vaatiReborn.c @@ -1,9 +1,5 @@ #include "global.h" #include "npc.h" -#include "coord.h" -#include "flags.h" -#include "audio.h" -#include "textbox.h" #include "functions.h" void VaatiRebornAction0(Entity* this); diff --git a/src/npc/wheaton.c b/src/npc/wheaton.c index ba154f41..3182eda3 100644 --- a/src/npc/wheaton.c +++ b/src/npc/wheaton.c @@ -1,5 +1,4 @@ #include "npc.h" -#include "script.h" extern Hitbox gUnk_0810C3C0; diff --git a/src/npc/windTribespeople.c b/src/npc/windTribespeople.c index a0d979eb..76b73c07 100644 --- a/src/npc/windTribespeople.c +++ b/src/npc/windTribespeople.c @@ -2,12 +2,6 @@ #include "audio.h" #include "entity.h" #include "npc.h" -#include "textbox.h" -#include "flags.h" -#include "structures.h" -#include "functions.h" -#include "save.h" -#include "script.h" extern void sub_0806C7D4(Entity*); @@ -33,8 +27,6 @@ extern u16 gUnk_08113B16[]; extern u8 gUnk_08113B38[]; -extern SpriteLoadData gUnk_08113A1C[]; - void WindTribespeople(Entity* this) { gUnk_08113A7C[this->action](this); } diff --git a/src/npc/zelda.c b/src/npc/zelda.c index 4631a31e..296e27e0 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -2,12 +2,9 @@ #include "audio.h" #include "entity.h" #include "functions.h" -#include "room.h" #include "flags.h" -#include "script.h" #include "npc.h" -extern Entity* DeepFindEntityByID(u32, u32); void sub_08068680(Entity*, Entity*); void sub_08068694(Entity*, Entity*); extern Entity* GetEntityByType(u32, u32); diff --git a/src/npc/zeldaFollower.c b/src/npc/zeldaFollower.c index 93d1ca3f..fc0890fb 100644 --- a/src/npc/zeldaFollower.c +++ b/src/npc/zeldaFollower.c @@ -1,7 +1,6 @@ #include "global.h" #include "entity.h" #include "functions.h" -#include "script.h" #include "utils.h" extern void sub_08068318(Entity*); diff --git a/src/npcDefinitions.c b/src/npcDefinitions.c index 8851bb07..b6db7f31 100644 --- a/src/npcDefinitions.c +++ b/src/npcDefinitions.c @@ -180,11 +180,11 @@ const NPCDefinition gNPCDefinition_52[] = { }; #endif -#define MULTI_FORM(definition_ptr) \ - { \ - { 2, 0, 0, 0, 0, 0, 0 }, { \ - .definition = definition_ptr \ - } \ +#define MULTI_FORM(definition_ptr) \ + { \ + { 2, 0, 0, 0, 0, 0, 0 }, { \ + .definition = (definition_ptr) \ + } \ } const NPCDefinition gNPCDefinitions[] = { diff --git a/src/npcUtils.c b/src/npcUtils.c index a1dca14f..e4739226 100644 --- a/src/npcUtils.c +++ b/src/npcUtils.c @@ -19,9 +19,6 @@ typedef struct { } NPCData; extern NPCData* gUnk_08001A7C[]; -u32 sub_0800445C(Entity*); -void sub_08077B20(void); -void sub_0806F69C(Entity*); u32 sub_080041DC(Entity*, u32, u32); u32 sub_0806EF88(Entity*); @@ -161,7 +158,7 @@ u32 sub_0806EE70(Entity* ent) { ent->field_0x46 = 0; sub_0806EF14(ent); } - sub_0806F69C(ent); + LinearMoveUpdate(ent); sub_0806EF4C(ent, xy); tmp1 = sub_080041DC(ent, xy[0], xy[1]); tmp2 = ent->speed; diff --git a/src/object.c b/src/object.c index 9a1f983e..819cb970 100644 --- a/src/object.c +++ b/src/object.c @@ -1,6 +1,4 @@ -#include "global.h" #include "entity.h" -#include "manager.h" #include "object.h" void (*const gObjectFunctions[])(Entity*) = { diff --git a/src/object/archway.c b/src/object/archway.c index d0ed7559..a8f659dc 100644 --- a/src/object/archway.c +++ b/src/object/archway.c @@ -1,4 +1,3 @@ -#include "global.h" #include "entity.h" #include "overworld.h" diff --git a/src/object/backgroundCloud.c b/src/object/backgroundCloud.c index edd764d2..8d3263bc 100644 --- a/src/object/backgroundCloud.c +++ b/src/object/backgroundCloud.c @@ -1,5 +1,4 @@ #include "object.h" -#include "functions.h" extern void (*const gUnk_08121EA4[])(Entity*); extern const u8 gUnk_08121EB0[]; @@ -27,7 +26,7 @@ void sub_0808F658(Entity* this) { } void sub_0808F6E0(Entity* this) { - sub_0806F69C(this); + LinearMoveUpdate(this); if ((s16)this->x.HALF.HI < (s16)this->field_0x78.HWORD || (s16)this->x.HALF.HI > (s16)this->field_0x7a.HWORD) this->action = 2; diff --git a/src/object/bigVortex.c b/src/object/bigVortex.c index 9118cb67..a26b7aae 100644 --- a/src/object/bigVortex.c +++ b/src/object/bigVortex.c @@ -3,7 +3,6 @@ #include "flags.h" #include "object.h" #include "functions.h" -#include "effects.h" extern void sub_08098E3C(Entity*); extern void sub_08098E88(Entity*); diff --git a/src/object/bird.c b/src/object/bird.c index 9a131075..07a696cf 100644 --- a/src/object/bird.c +++ b/src/object/bird.c @@ -43,7 +43,7 @@ void sub_0809CF54(Entity* this) { void sub_0809CFEC(Entity* this) { - sub_0806F69C(this); + LinearMoveUpdate(this); GravityUpdate(this, *(s16*)&this->field_0x68.HWORD); if (this->actionDelay != 0) { if (--this->actionDelay == 0) { diff --git a/src/object/book.c b/src/object/book.c index 25faf3ab..9f3a5396 100644 --- a/src/object/book.c +++ b/src/object/book.c @@ -1,6 +1,5 @@ #include "object.h" #include "functions.h" -#include "script.h" #include "textbox.h" extern void (*const BookActionFuncs[])(Entity*); @@ -117,7 +116,7 @@ void sub_0809B524(Entity* this) { } } - sub_0806F69C(this); + LinearMoveUpdate(this); } void sub_0809B56C(Entity* this) { diff --git a/src/object/button.c b/src/object/button.c index 1db2cafb..21c31891 100644 --- a/src/object/button.c +++ b/src/object/button.c @@ -39,7 +39,6 @@ void sub_08081B84(Entity* this) { } u32 sub_08081CB0(Entity*); -void RequestPriorityDuration(Entity*, u32); void sub_08081FF8(Entity*); void sub_08081BAC(Entity* this) { diff --git a/src/object/cloud.c b/src/object/cloud.c index 22494391..5ff9bf6b 100644 --- a/src/object/cloud.c +++ b/src/object/cloud.c @@ -81,7 +81,7 @@ void sub_0809F5F0(Entity* this) { void sub_0809F61C(Entity* this) { - if ((gRoomControls.unk6 & 4) == 0) { + if ((gRoomControls.scroll_flags & 4) == 0) { if (this->actionDelay == 30) { SetLocalFlag(this->type2); } @@ -112,7 +112,7 @@ void sub_0809F69C(Entity* this) { void sub_0809F6CC(Entity* this) { - if (((gRoomControls.unk6 & 4) == 0) && (--this->actionDelay == 0)) { + if (((gRoomControls.scroll_flags & 4) == 0) && (--this->actionDelay == 0)) { gPlayerState.controlMode = 1; DeleteThisEntity(); } @@ -132,7 +132,7 @@ void sub_0809F700(Entity* this) { this->spriteOffsetX = gUnk_081247C0[uVar2 & 7]; this->spriteOffsetY = gUnk_081247C0[uVar2 >> 4 & 7]; } - sub_0806F69C(this); + LinearMoveUpdate(this); if (--this->actionDelay == 0) { DeleteThisEntity(); } diff --git a/src/object/fileScreenObjects.c b/src/object/fileScreenObjects.c index 345e8a2b..ab9e6567 100644 --- a/src/object/fileScreenObjects.c +++ b/src/object/fileScreenObjects.c @@ -1,9 +1,7 @@ #include "object.h" #include "main.h" #include "menu.h" -#include "npc.h" #include "fileScreen.h" -#include "structures.h" #include "functions.h" extern int sub_0807A094(int); @@ -506,7 +504,7 @@ static u32 sub_0808EF6C(Entity* this) { } this->speed = var7; this->direction = sub_080045DA(var0, var2) >> 3; - sub_0806F69C(this); + LinearMoveUpdate(this); return 1; } diff --git a/src/object/fireplace.c b/src/object/fireplace.c index 1fda4e9f..a4513cb8 100644 --- a/src/object/fireplace.c +++ b/src/object/fireplace.c @@ -1,10 +1,9 @@ #include "object.h" -#include "script.h" #include "functions.h" extern void (*gUnk_08123D98[])(Entity*); -void sub_0809B7A0(Entity* e); +void sub_0809B7A0(Entity* this); void sub_0809B7DC(Entity* this); void sub_0809B7C0(Entity* this); diff --git a/src/object/greatFairy.c b/src/object/greatFairy.c index ccb1adbf..a8c02b02 100644 --- a/src/object/greatFairy.c +++ b/src/object/greatFairy.c @@ -1,7 +1,6 @@ #include "object.h" #include "save.h" #include "script.h" -#include "structures.h" #include "functions.h" #include "screen.h" @@ -422,7 +421,7 @@ void sub_080871F8(Entity* this) { this->action = 2; } else { this->direction = sub_080045D4(this->x.HALF.HI, this->y.HALF.HI, temp->x.HALF.HI, temp->y.HALF.HI - 32); - sub_0806F69C(this); + LinearMoveUpdate(this); } } @@ -437,7 +436,7 @@ void sub_08087240(Entity* this) { void sub_08087264(Entity* this) { if (this->actionDelay != 0) { this->actionDelay--; - sub_0806F69C(this); + LinearMoveUpdate(this); } } @@ -464,7 +463,7 @@ void sub_080872AC(Entity* this) { void sub_080872F8(Entity* this) { s32 temp; - sub_0806F69C(this); + LinearMoveUpdate(this); GetNextFrame(this); if (((u16)(this->field_0x68.HWORD - this->x.HALF.HI) > 0xc) || ((u16)(this->field_0x6a.HWORD - this->y.HALF.HI) > 0xc)) { @@ -526,7 +525,7 @@ void sub_080873FC(void) { void sub_08087424(Entity* this, ScriptExecutionContext* context) { Entity* ent; - sub_080791D0(); + ResetPlayerAnimationAndAction(); ent = CreateObject(OBJECT_64, 0, 0); if (ent != NULL) { ent->parent = &gPlayerEntity; diff --git a/src/object/heartContainer.c b/src/object/heartContainer.c index b0fb32e1..a8868df2 100644 --- a/src/object/heartContainer.c +++ b/src/object/heartContainer.c @@ -1,4 +1,3 @@ -#include "global.h" #include "audio.h" #include "entity.h" #include "flags.h" diff --git a/src/object/hiddenLadderDown.c b/src/object/hiddenLadderDown.c index 7d1c7abd..55831a80 100644 --- a/src/object/hiddenLadderDown.c +++ b/src/object/hiddenLadderDown.c @@ -1,7 +1,7 @@ #include "global.h" +#include "asm.h" #include "entity.h" #include "functions.h" -#include "room.h" #include "flags.h" extern void (*const gUnk_08122604[])(Entity*); diff --git a/src/object/itemOnGround.c b/src/object/itemOnGround.c index c062d75b..a7fa6987 100644 --- a/src/object/itemOnGround.c +++ b/src/object/itemOnGround.c @@ -5,6 +5,7 @@ #include "player.h" #include "object.h" #include "functions.h" +#include "item.h" void sub_08081150(Entity*); u8 sub_0808147C(u32); @@ -87,7 +88,7 @@ void sub_08080F20(Entity* this) { DeleteThisEntity(); } - if (this->type != 0x60) { + if (this->type != ITEM_FAIRY) { this->spriteSettings.draw = 1; this->spritePriority.b1 = 3; this->spriteSettings.shadow = 0; @@ -97,16 +98,16 @@ void sub_08080F20(Entity* this) { this->health = 0xFF; this->hitbox = &gUnk_080FD1A8; switch (this->type) { - case 0x3f: - case 0x54: - case 0x55: - case 0x56: - case 0x57: - case 0x58: - case 0x5c: - case 0x5d: - case 0x5e: - case 0x5f: + case ITEM_SHELLS: + case ITEM_RUPEE1: + case ITEM_RUPEE5: + case ITEM_RUPEE20: + case ITEM_RUPEE50: + case ITEM_RUPEE100: + case ITEM_KINSTONE: + case ITEM_BOMBS5: + case ITEM_ARROWS5: + case ITEM_HEART: this->flags2 = 0x17; break; default: @@ -124,12 +125,11 @@ void sub_08080F20(Entity* this) { gUnk_0811E7E8[this->field_0x68.HALF.HI](this); } else { Entity* entity = CreateObject(FAIRY, 0x60, 0); - if (entity) { + if (entity != NULL) { entity->actionDelay = 0; if (this->actionDelay == 1) { entity->type2 = 2; } - CopyPosition(this, entity); DeleteThisEntity(); } @@ -153,12 +153,12 @@ void sub_080810A8(Entity* this) { } if (this->collisionLayer == 2) { - sub_08016A30(this); + ResolveCollisionLayer(this); } } void sub_080810FC(Entity* this) { - if (this->type != 0x5F) { + if (this->type != ITEM_HEART) { sub_08081598(this); } else { this->action = 2; @@ -188,7 +188,7 @@ void sub_08081188(Entity* this) { this->action = 2; COLLISION_ON(this); if (this->collisionLayer == 2) { - sub_08016A30(this); + ResolveCollisionLayer(this); } } @@ -212,7 +212,7 @@ void sub_080811EC(Entity* this) { if (this->field_0x68.HALF.HI != 6) { sub_080AEFE0(this); } else { - sub_0806F69C(this); + LinearMoveUpdate(this); } GravityUpdate(this, 0x2800); @@ -271,7 +271,8 @@ void sub_080812E8(Entity* this) { #ifdef EU if ((playerState->swimState & 0x80) && sub_080177A0(this, &gPlayerEntity)) { #else - if ((playerState->swimState & 0x80) && !(playerState->flags & 0x80) && sub_080177A0(this, &gPlayerEntity)) { + if ((playerState->swimState & 0x80) && (playerState->flags & PL_MINISH) == 0 && + sub_080177A0(this, &gPlayerEntity)) { #endif sub_080810FC(this); } diff --git a/src/object/lightableSwitch.c b/src/object/lightableSwitch.c index 54716b5e..14364188 100644 --- a/src/object/lightableSwitch.c +++ b/src/object/lightableSwitch.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "audio.h" #include "entity.h" #include "room.h" @@ -83,7 +84,7 @@ void sub_0809EB30(Entity* this) { if (this->type2 != 0) { if ((this->direction & 0x80) == 0) { - sub_0806F69C(this); + LinearMoveUpdate(this); } puVar2 = &this->field_0x74.HWORD; if (!--*puVar2) { diff --git a/src/object/lockedDoor.c b/src/object/lockedDoor.c index fccc8b5f..b7fc357a 100644 --- a/src/object/lockedDoor.c +++ b/src/object/lockedDoor.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "entity.h" #include "flags.h" #include "audio.h" @@ -37,7 +38,6 @@ extern Hitbox gHitbox_2; extern u32 sub_080001DA(u32, u32); extern void sub_08078850(Entity*, u32, u32, u32); -extern void RequestPriorityDuration(Entity*, u32); typedef struct PACKED { s8 x; @@ -153,7 +153,7 @@ void sub_080834B4(Entity* this) { } void sub_080834EC(Entity* this) { - sub_0806F69C(this); + LinearMoveUpdate(this); if (--this->actionDelay == 0) { if (this->type & 0x80) { sub_08083638(this); @@ -171,7 +171,7 @@ void sub_08083518(Entity* this) { } void sub_08083540(Entity* this) { - sub_0806F69C(this); + LinearMoveUpdate(this); if (!--this->actionDelay) { if (this->type & 0x10) { this->type &= ~0x10; diff --git a/src/object/mask.c b/src/object/mask.c index 854cd5c2..be794b54 100644 --- a/src/object/mask.c +++ b/src/object/mask.c @@ -1,5 +1,4 @@ #include "object.h" -#include "structures.h" #include "functions.h" extern void (*MaskActionFuncs[])(Entity*); diff --git a/src/object/metalDoor.c b/src/object/metalDoor.c index 531d41b9..b8506bd8 100644 --- a/src/object/metalDoor.c +++ b/src/object/metalDoor.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "entity.h" #include "room.h" #include "flags.h" @@ -50,7 +51,7 @@ void sub_080A074C(Entity* this) { u8 bVar1; Entity* ent; - sub_0806F69C(this); + LinearMoveUpdate(this); if (--this->actionDelay == 0) { this->action = 3; @@ -84,7 +85,7 @@ void sub_080A07BC(Entity* this) { void sub_080A07F0(Entity* this) { - sub_0806F69C(this); + LinearMoveUpdate(this); if (--this->actionDelay == 0) { DeleteThisEntity(); diff --git a/src/object/minecart.c b/src/object/minecart.c index 619e1a7b..39d1ce44 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -80,7 +80,7 @@ void sub_080917DC(Entity* this) { gPlayerEntity.speed = 0x100; gPlayerEntity.flags &= ~PL_MINISH; ResetPlayer(); - sub_0807A108(); + DeleteClones(); SoundReq(SFX_PLY_JUMP); } } else { @@ -140,7 +140,7 @@ void sub_080919AC(Entity* this) { } else { COLLISION_ON(this); gPlayerEntity.speed = 0; - sub_0806F69C(this); + LinearMoveUpdate(this); CopyPosition(this, &gPlayerEntity); gPlayerEntity.spritePriority.b0 = this->spritePriority.b0 - 1; if (!sub_08091DDC(this)) { diff --git a/src/object/minishLight.c b/src/object/minishLight.c index d7fc7bb4..a316e499 100644 --- a/src/object/minishLight.c +++ b/src/object/minishLight.c @@ -1,4 +1,3 @@ -#include "global.h" #include "entity.h" extern void (*const gUnk_081247F8[])(Entity*); diff --git a/src/object/minishSizedArchway.c b/src/object/minishSizedArchway.c index ad001c83..ad109449 100644 --- a/src/object/minishSizedArchway.c +++ b/src/object/minishSizedArchway.c @@ -1,4 +1,3 @@ -#include "global.h" #include "entity.h" #include "overworld.h" diff --git a/src/object/object1D.c b/src/object/object1D.c index f7343fbe..f1e13a00 100644 --- a/src/object/object1D.c +++ b/src/object/object1D.c @@ -1,4 +1,3 @@ -#include "global.h" #include "entity.h" extern void (*gUnk_081208A0[])(Entity*); diff --git a/src/object/object49.c b/src/object/object49.c index 4b4be720..43dcda88 100644 --- a/src/object/object49.c +++ b/src/object/object49.c @@ -1,5 +1,4 @@ #include "object.h" -#include "structures.h" #include "functions.h" static void sub_0808F2B0(Entity*); diff --git a/src/object/object6A.c b/src/object/object6A.c index 340a36b0..456c28f2 100644 --- a/src/object/object6A.c +++ b/src/object/object6A.c @@ -556,7 +556,7 @@ void sub_08095288(Object6AEntity* this) { } else { sub_0805EC9C(super, 0x100, 0x100, super->actionDelay << 8); super->actionDelay += 10; - sub_0806F69C(super); + LinearMoveUpdate(super); } } p = super->child; diff --git a/src/object/object86.c b/src/object/object86.c index 62d30b6b..e6968b42 100644 --- a/src/object/object86.c +++ b/src/object/object86.c @@ -1,8 +1,6 @@ #include "object.h" -#include "functions.h" void sub_08099ECC(Entity*); -extern void RequestPriorityDuration(Entity*, u32); extern void sub_0805B390(u32); extern void (*const gUnk_081237F8[])(Entity*); diff --git a/src/object/objectA2.c b/src/object/objectA2.c index c3ad215b..f8f212f5 100644 --- a/src/object/objectA2.c +++ b/src/object/objectA2.c @@ -40,7 +40,7 @@ void sub_0809F318(Entity* this) { } void sub_0809F374(Entity* this) { - sub_0806F69C(this); + LinearMoveUpdate(this); #ifndef EU if (gSaveHeader->gameLanguage < 2) { if (sub_080044EC(this, 0x2000) < 2) { diff --git a/src/object/objectA8.c b/src/object/objectA8.c index fbba13c3..ef00c9df 100644 --- a/src/object/objectA8.c +++ b/src/object/objectA8.c @@ -1,4 +1,3 @@ -#include "global.h" #include "entity.h" #include "player.h" #include "functions.h" diff --git a/src/object/objectB2.c b/src/object/objectB2.c index 75150bab..b40c73b6 100644 --- a/src/object/objectB2.c +++ b/src/object/objectB2.c @@ -23,7 +23,7 @@ void ObjectB2(Entity* this) { InitializeAnimation(this, this->type); } this->speed = this->parent->speed; - sub_0806F69C(this); + LinearMoveUpdate(this); if (sub_080AE4CC(this->child, this->x.HALF.HI, this->y.HALF.HI, 9) != 0) { DeleteThisEntity(); } diff --git a/src/object/octorokBossObject.c b/src/object/octorokBossObject.c index 6e69a7db..0e1caf10 100644 --- a/src/object/octorokBossObject.c +++ b/src/object/octorokBossObject.c @@ -38,7 +38,7 @@ enum OctorokBossObjectType { TYPE8, // OctorokBoss_Hit_SubAction1 TYPE9 // OctorokBoss_Hit_SubAction4 }; -#define GET_HELPER(this) (*(HelperStruct**)&this->cutsceneBeh) +#define GET_HELPER(this) (*(HelperStruct**)&(this)->cutsceneBeh) extern u32 sub_0806FC80(Entity*, Entity*, s32); diff --git a/src/object/pinwheel.c b/src/object/pinwheel.c index b44f5a8c..519b96a3 100644 --- a/src/object/pinwheel.c +++ b/src/object/pinwheel.c @@ -3,8 +3,6 @@ #include "flags.h" #include "object.h" -extern u32 ReadBit(u32*, u32); - extern u32 gUnk_020342F8; extern u16 gUnk_08125050[]; extern void (*gUnk_0812505C[])(Entity*); diff --git a/src/object/pot.c b/src/object/pot.c index d7a7ae96..fae971d8 100644 --- a/src/object/pot.c +++ b/src/object/pot.c @@ -6,7 +6,6 @@ #include "room.h" #include "object.h" #include "functions.h" -#include "effects.h" void sub_08082824(Entity*); static void sub_08082850(Entity*, Entity*); @@ -45,7 +44,7 @@ void sub_0808222C(Entity* this) { this->flags2 = 0x84; this->field_0x1c = 0x12; if (this->collisionLayer == 0) { - sub_08016A30(this); + ResolveCollisionLayer(this); } this->field_0x70.HALF.LO = sub_080001DA(COORD_TO_TILE(this), this->collisionLayer); @@ -175,7 +174,7 @@ void sub_08082614(Entity* this) { sub_0800445C(this); if (--this->actionDelay != 0xFF) { - sub_0806F69C(this); + LinearMoveUpdate(this); sub_08016A6C(this); return; } diff --git a/src/object/railtrack.c b/src/object/railtrack.c index 223a5603..3344feaf 100644 --- a/src/object/railtrack.c +++ b/src/object/railtrack.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "audio.h" #include "entity.h" #include "room.h" diff --git a/src/object/smoke.c b/src/object/smoke.c index d603ea1c..7fed0867 100644 --- a/src/object/smoke.c +++ b/src/object/smoke.c @@ -43,7 +43,7 @@ void sub_0808A484(Entity* this) { void sub_0808A4D0(Entity* this) { GetNextFrame(this); - sub_0806F69C(this); + LinearMoveUpdate(this); if (this->frame & 0x80) { DeleteEntity(this); } diff --git a/src/object/treeHidingPortal.c b/src/object/treeHidingPortal.c index 69db7173..de23744d 100644 --- a/src/object/treeHidingPortal.c +++ b/src/object/treeHidingPortal.c @@ -4,7 +4,6 @@ #include "flags.h" #include "player.h" #include "room.h" -#include "structures.h" #include "functions.h" #include "effects.h" diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index bd5fc8cf..893ddddd 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -1,9 +1,6 @@ #include "global.h" #include "object.h" -#include "player.h" -#include "flags.h" #include "overworld.h" -#include "audio.h" #include "functions.h" extern Hitbox gHitbox_1; @@ -11,7 +8,6 @@ extern Hitbox gHitbox_1; extern void sub_0807CAC8(u32); extern u32 sub_0807CAEC(u32); -void WarpPoint(Entity*); void sub_0808B474(Entity*); void sub_0808B530(Entity*); void sub_0808B564(Entity*); @@ -212,7 +208,7 @@ u32 sub_0808B7C8(Entity* this) { if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.framestate != PL_STATE_DIE && gPlayerEntity.health != 0 && sub_08079F8C() && EntityInRectRadius(this, &gPlayerEntity, 5, 5) && gPlayerEntity.z.HALF.HI == 0) { if (this->actionDelay == 0 && gPlayerEntity.action == PLAYER_08072C9C) { - sub_080791D0(); + ResetPlayerAnimationAndAction(); } return 1; } diff --git a/src/object/well.c b/src/object/well.c index 86710ac6..dfc61a9c 100644 --- a/src/object/well.c +++ b/src/object/well.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "entity.h" #include "room.h" #include "player.h" diff --git a/src/object/windcrest.c b/src/object/windcrest.c index 3ebaef24..edbe2e75 100644 --- a/src/object/windcrest.c +++ b/src/object/windcrest.c @@ -3,7 +3,6 @@ #include "entity.h" #include "save.h" #include "script.h" -#include "functions.h" #include "effects.h" extern void sub_08078850(Entity*, u32, u32, u8*); diff --git a/src/objectUtils.c b/src/objectUtils.c index 3fb4da3c..86fe0a2c 100644 --- a/src/objectUtils.c +++ b/src/objectUtils.c @@ -3,7 +3,6 @@ #include "coord.h" #include "room.h" #include "object.h" -#include "effects.h" #include "functions.h" #include "definitions.h" diff --git a/src/overworld.c b/src/overworld.c index fdd22b3e..cc70b283 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -11,7 +11,6 @@ #include "fileScreen.h" #include "menu.h" #include "functions.h" -#include "structures.h" #include "area.h" #include "textbox.h" #include "overworld.h" @@ -20,7 +19,6 @@ extern u32 gUnk_03003FC0; extern u8 gUnk_080FCA84[]; extern u8 gUnk_080FCAC8[]; -extern u32 gUsedPalettes; extern u8 gUnk_02024090[]; extern u16 gUnk_080FCAD6[]; @@ -35,16 +33,12 @@ extern u8 gUnk_080FCAF8[]; extern u16 gUnk_020178E0[]; void sub_080520C4(); -void SetPopupState(); -u32 sub_08052724(); void CleanUpGFXSlots(); void sub_080ADE24(); void sub_0801C370(u32); void sub_0801AE44(u32); void GenerateAreaHint(void); void ForceSetPlayerState(u32); -void SetPlayerEventPriority(void); -RoomResInfo* GetCurrentRoomInfo(void); void UpdateRoomTracker(void); void InitScriptData(void); void sub_08054524(void); @@ -432,10 +426,10 @@ u32 CheckHasMap(void) { return (gArea.areaMetadata >> 3) & 1; } -s32 ModHealth(s32 deltaHealth) { +s32 ModHealth(s32 delta) { s32 newHealth; - newHealth = gStats.health + deltaHealth; + newHealth = gStats.health + delta; if (newHealth < 0) { newHealth = 0; } @@ -447,11 +441,11 @@ s32 ModHealth(s32 deltaHealth) { return newHealth; } -void ModRupees(s32 rupeeDelta) { +void ModRupees(s32 delta) { s32 newRupeeCount; Stats* s = &gStats; - newRupeeCount = s->rupees + rupeeDelta; + newRupeeCount = s->rupees + delta; if (newRupeeCount < 0) { newRupeeCount = 0; } else { diff --git a/src/player.c b/src/player.c index 53cbe00b..12c3ac59 100644 --- a/src/player.c +++ b/src/player.c @@ -10,18 +10,32 @@ #include "save.h" #include "object.h" #include "functions.h" -#include "object.h" -#include "effects.h" #include "hitbox.h" #include "overworld.h" #include "screen.h" #include "main.h" +#define GRAVITY_RATE 0x2000 +#define SLOPE_SPEED_MODIFIER 0x50 + +#define JUMP_SPEED_FWD 0x100 +#define BOUNCE_SPEED_FWD 0x100 +#define BOUNCE_SPEED_Z 0x20000 +#define HOLE_SPEED_FWD 0x78 +#define HOLE_SPEED_Z 0x1a000 +#define PULL_SPEED 0x80 +#define PUSH_SPEED 0x80 +#define ROLL_SPEED 0x200 + +#define PIT_DAMAGE 0x2 + +#define DEFAULT_ANIM 0x100 + typedef void(EntityAction)(Entity*); static EntityAction PlayerInit; static EntityAction PlayerNormal; -static EntityAction PlayerInit; +// static EntityAction PlayerInit; static EntityAction PlayerFall; static EntityAction PlayerJump; static EntityAction PlayerPush; @@ -44,7 +58,7 @@ static EntityAction PlayerUsePortal; static EntityAction PlayerTalkEzlo; static EntityAction PlayerRoomTransition; static EntityAction PlayerRoll; -static EntityAction sub_080728AC; +static EntityAction PlayerWaitForScroll; static EntityAction PlayerInHole; static EntityAction sub_08072C9C; static EntityAction sub_08074C44; @@ -182,7 +196,7 @@ static EntityAction sub_080737BC; static EntityAction sub_0807380C; static EntityAction sub_08073884; -// sub_08073904... ? +// DoJump... ? static EntityAction sub_08073924; static EntityAction sub_08073968; static EntityAction sub_080739EC; @@ -221,9 +235,8 @@ static EntityAction sub_080751B4; static void sub_080717F8(Entity*); static void ResetPlayerPriority(); -static void sub_080728AC(Entity*); -static void BreakOut(); -static void sub_08073AD4(); +static void BreakOut(Entity* this); +static void sub_08073AD4(Entity* this); static void sub_08073B60(Entity*); static void sub_08074244(Entity*, u32, u32); static void hide(Entity*); @@ -237,8 +250,7 @@ void SurfaceAction_AutoLadder(Entity*); extern void RespawnPlayer(); extern void sub_080797EC(); -extern void sub_08079E08(); -extern void ResetPlayerVelocity(); +extern void UpdatePlayerMovement(); extern void sub_08077698(); extern void sub_08079258(); extern void EnablePlayerDraw(); @@ -246,7 +258,6 @@ extern u32 sub_08079B24(); extern void sub_08079708(); extern void sub_080792D8(); extern Entity* CreatePlayerBomb(); -extern void sub_080791BC(); extern u32 sub_0806F854(); extern u32 sub_08019840(); extern void sub_08079744(); @@ -259,14 +270,13 @@ extern void sub_08078F24(); extern void sub_0807B068(); extern u32 sub_080001DA(); extern u32 sub_0807A2F8(); -extern u32 CheckIsOverworld(); extern u32 sub_0806F730(); extern u32 sub_08007DD6(); extern u32 GetSurfaceCalcType(); -extern void sub_08074808(); -extern void sub_08073904(Entity*); +extern void sub_08074808(Entity* this); +extern void DoJump(Entity*); extern void SetZeldaFollowTarget(Entity*); -extern u32 ItemIsSword(u32); +u32 ItemIsSword(u32 item); extern u32 sub_0807A2B8(); extern u32 sub_08079550(u32); extern u32 sub_080782C0(); @@ -274,6 +284,8 @@ extern u32 sub_080793E4(u32); extern void sub_08008AC6(Entity*); extern u32 sub_08079C30(Entity*); extern void sub_08077AEC(); +extern u32 RunQueuedAction(); +extern void UpdatePlayerSkills(); extern ScreenTransitionData gUnk_0813AB58; extern ScreenTransitionData gUnk_0813AD88[]; @@ -312,7 +324,7 @@ void DoPlayerAction(Entity* this) { [PLAYER_TALKEZLO] = PlayerTalkEzlo, [PLAYER_ROOMTRANSITION] = PlayerRoomTransition, [PLAYER_ROLL] = PlayerRoll, - [PLAYER_080728AC] = sub_080728AC, + [PLAYER_080728AC] = PlayerWaitForScroll, [PLAYER_INHOLE] = PlayerInHole, [PLAYER_08072C9C] = sub_08072C9C, [PLAYER_08074C44] = sub_08074C44, @@ -337,20 +349,20 @@ static void PlayerInit(Entity* this) { this->hitbox = (Hitbox*)&gPlayerHitbox; this->spriteIndex = 1; #ifndef EU - gPlayerState.animation = 0x100; + gPlayerState.animation = DEFAULT_ANIM; #endif sub_0806FDA0(this); LoadSwapGFX(this, 1, 2); InitAnimationForceUpdate(this, 2); if (this->collisionLayer == 0) { - sub_08016A30(this); + ResolveCollisionLayer(this); } if (IsItemEquipped(ITEM_LANTERN_ON) != 2) { sub_08077728(); } - sub_0807A108(); - sub_0807AEE4(); + DeleteClones(); + UpdatePlayerSkills(); if (RunQueuedAction() == 0) { sub_0807921C(); @@ -358,10 +370,10 @@ static void PlayerInit(Entity* this) { if (gPlayerState.swimState != 0) { Entity* ent; gPlayerState.swimState = 1; - sub_08079938(); + ResolvePlayerAnimation(); gPlayerState.framestate = PL_STATE_SWIM; sub_0807ACCC(this); - ent = FindEntity(0x6, 0xf, 0x6, 0xb, 0x0); + ent = FindEntity(OBJECT, SPECIAL_FX, 0x6, FX_WATER_SPLASH, 0x0); if (ent != NULL) { DeleteEntity(ent); } @@ -376,10 +388,10 @@ static void sub_08070BEC(Entity* this, u32 r0) { if (r0 & 1) sub_080797EC(); else - sub_08079938(); + ResolvePlayerAnimation(); if (r0 & 2) - sub_08079E08(); + UpdatePlayerMovement(); } static void PlayerFall(Entity* this) { @@ -414,15 +426,15 @@ static void PlayerFallInit(Entity* this) { COLLISION_OFF(this); this->spritePriority.b1 = 0; ResetPlayer(); - sub_0807A108(); + DeleteClones(); SoundReq(SFX_PLY_VO7); SoundReq(SFX_FALL_HOLE); } static void PlayerFallUpdate(Entity* this) { UpdateAnimationSingleFrame(this); - if ((this->frame & 0x80) != 0) { - if ((gSave.stats.health != 0) && ((gPlayerState.flags & 0x8000) != 0)) { + if (this->frame & 0x80) { + if ((gSave.stats.health != 0) && (gPlayerState.flags & 0x8000)) { gPlayerState.flags &= ~(PL_BUSY | PL_DROWNING); this->spriteSettings.draw = 0; } else { @@ -430,7 +442,7 @@ static void PlayerFallUpdate(Entity* this) { RespawnPlayer(); gPlayerState.field_0xa = 0; this->iframes = 32; - ModHealth(-2); + ModHealth(-PIT_DAMAGE); } } } @@ -447,19 +459,19 @@ static void PlayerBounce(Entity* this) { static void PlayerBounceInit(Entity* this) { COLLISION_OFF(this); this->direction = DirectionTurnAround(Direction8FromAnimationState(AnimationStateWalk(this->animationState))); - this->speed = 0x100; + this->speed = BOUNCE_SPEED_FWD; this->knockbackDuration = 0; this->subAction++; this->actionDelay = gPlayerState.field_0x38; this->spriteIndex = 1; if ((gPlayerState.flags & PL_MINISH) == 0) { - this->zVelocity = 0x20000; + this->zVelocity = BOUNCE_SPEED_Z; gPlayerState.animation = 0x114; InitScreenShake(16, 0); } else { gPlayerState.animation = 0xc18; - this->zVelocity = 0x18000; + this->zVelocity = (BOUNCE_SPEED_Z * 3) / 4; } gPlayerState.jumpStatus = 0x80; @@ -472,10 +484,10 @@ static void PlayerBounceInit(Entity* this) { static NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void PlayerBounceUpdate(Entity* this)) { UpdateAnimationSingleFrame(this); sub_080085B0(this); - sub_08079E08(); + UpdatePlayerMovement(); UpdateFloorType(); - if (RunQueuedAction() || GravityUpdate(this, 0x2000)) + if (RunQueuedAction() || GravityUpdate(this, GRAVITY_RATE)) return; gPlayerState.jumpStatus = 0; @@ -485,7 +497,7 @@ static NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void PlayerBounceUpd if (gPlayerState.swimState != 0) { gPlayerState.jumpStatus = 0; - sub_080791D0(); + ResetPlayerAnimationAndAction(); return; } @@ -498,8 +510,8 @@ static NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void PlayerBounceUpd if ((gPlayerState.field_0x14 == 0) && sub_08008B22()) { gPlayerState.field_0x11 = 7; - sub_08079938(); - sub_080791BC(); + ResolvePlayerAnimation(); + SetPlayerActionNormal(); return; } @@ -508,14 +520,14 @@ static NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void PlayerBounceUpd this->subAction++; if ((gPlayerState.flags & PL_MINISH) == 0) - gPlayerState.animation = 0x100; + gPlayerState.animation = DEFAULT_ANIM; } END_NONMATCH static void sub_08070E7C(Entity* this) { if (--this->actionDelay == 0) { gPlayerState.jumpStatus = 0; - sub_080791D0(); + ResetPlayerAnimationAndAction(); } } @@ -542,7 +554,7 @@ static void sub_08070EDC(Entity* this) { this->subAction = 1; if ((gPlayerState.flags & PL_MINISH) == 0) - sub_08079938(); + ResolvePlayerAnimation(); else gPlayerState.animation = 0xc18; } @@ -551,7 +563,7 @@ static void sub_08070f24(Entity* this) { UpdateAnimationSingleFrame(this); if ((gMessage.doTextBox & 0x7f) == 0) { this->updatePriority = this->updatePriorityPrev; - sub_080791D0(); + ResetPlayerAnimationAndAction(); } } @@ -625,7 +637,7 @@ static void sub_08071038(Entity* this) { this->knockbackDuration = 0; this->iframes = 248; gPlayerState.jumpStatus = 0; - sub_080791D0(); + ResetPlayerAnimationAndAction(); } } @@ -653,7 +665,6 @@ static void PlayerJumpInit(Entity* this) { if ((gPlayerState.heldObject | gPlayerState.field_0x1a[1]) == 0) { if ((gPlayerState.flags & PL_MINISH) == 0) { ResetPlayer(); - if (gPlayerState.flags & PL_NO_CAP) { gPlayerState.animation = 0x420; } else { @@ -669,8 +680,8 @@ static void PlayerJumpInit(Entity* this) { asm("lsl r0, r0, #0x4"); this->zVelocity = (temp - 4) * 64 * 64; - this->speed = 256; - sub_0807A108(); + this->speed = JUMP_SPEED_FWD; + DeleteClones(); SoundReq(SFX_PLY_JUMP); SoundReq(SFX_PLY_VO4); } @@ -686,16 +697,16 @@ static void sub_08071130(Entity* this) { return; } - sub_0806F69C(this); + LinearMoveUpdate(this); - if (GravityUpdate(this, 0x2000)) + if (GravityUpdate(this, GRAVITY_RATE)) return; gPlayerState.jumpStatus = 0; - sub_0800455E(this); + ResetCollisionLayer(this); if (*(Entity**)&this->field_0x74 != NULL) - sub_0800455E(*(Entity**)&this->field_0x74); + ResetCollisionLayer(*(Entity**)&this->field_0x74); sub_08008790(this, 7); @@ -709,7 +720,7 @@ static void sub_08071130(Entity* this) { if ((sub_08079D48() == 0) || (gPlayerState.swimState != 0)) { gPlayerState.jumpStatus = 0; - sub_080791D0(); + ResetPlayerAnimationAndAction(); return; } @@ -739,7 +750,7 @@ static void sub_08071208(Entity* this) { if (--this->actionDelay == 0xff) { gPlayerState.jumpStatus = 0; - sub_080791D0(); + ResetPlayerAnimationAndAction(); } } @@ -830,7 +841,7 @@ static void PlayerUsePortal(Entity* this) { DoFade(7, 16); SoundReq(SFX_F8); } else { - sub_0804ACF8(); + RespawnAsMinish(); } } @@ -846,11 +857,11 @@ static void PortalJumpOnUpdate(Entity* this) { if ((this->x.HALF.HI != x) || (this->y.HALF.HI != y)) { this->direction = sub_080045D4(this->x.HALF.HI, this->y.HALF.HI, gArea.curPortalX, gArea.curPortalY); - this->speed = 256; - sub_08079E08(); + this->speed = JUMP_SPEED_FWD; + UpdatePlayerMovement(); } - sub_08073904(this); + DoJump(this); UpdateAnimationSingleFrame(this); if (gPlayerState.jumpStatus == 0) { @@ -886,7 +897,7 @@ static void PortalStandUpdate(Entity* this) { this->direction = gPlayerState.field_0xd; this->animationState = Direction8ToAnimationState(this->direction); this->zVelocity = 0x20000; - this->speed = 256; + this->speed = JUMP_SPEED_FWD; this->action = PLAYER_MINISH; this->subAction = 7; this->field_0xf = 0; @@ -907,7 +918,7 @@ static void PortalStandUpdate(Entity* this) { } else { sub_08077698(this); } - sub_08079938(); + ResolvePlayerAnimation(); } static void PortalActivateInit(Entity* this) { @@ -953,7 +964,7 @@ static ASM_FUNC("asm/non_matching/player/PortalShrinkUpdate.inc", void PortalShr static void PortalEnterUpdate(Entity* this) { if (this->actionDelay == 0) { - if (GravityUpdate(this, 0x2000)) + if (GravityUpdate(this, GRAVITY_RATE)) return; this->spriteSettings.draw = FALSE; @@ -991,16 +1002,14 @@ static void sub_080717F8(Entity* this) { 0, -22, 22, 0, 0, 22, -22, 0, }; - u32 x; - u32 y; this->animationState = gArea.curPortalExitDirection << 1; this->x.HALF.HI = gArea.curPortalX + sOffsets[gArea.curPortalExitDirection * 2]; this->y.HALF.HI = gArea.curPortalY + sOffsets[gArea.curPortalExitDirection * 2 + 1]; gArea.unk1A = 0xb4; gUnk_02034490[0] = 0; - this->action = 9; + this->action = PLAYER_MINISH; this->subAction = 0; - gPlayerState.flags = (gPlayerState.flags & ~PL_USE_PORTAL) | 0x80; + gPlayerState.flags = (gPlayerState.flags & ~PL_USE_PORTAL) | PL_MINISH; sub_0805EC60(this); ResetPlayerEventPriority(); } @@ -1049,7 +1058,7 @@ static void PlayerTalkEzloInit(Entity* this) { return; } - if (!GravityUpdate(this, 0x2000)) + if (!GravityUpdate(this, GRAVITY_RATE)) gPlayerState.jumpStatus = 0; } @@ -1076,7 +1085,6 @@ static void sub_08071990(Entity* this) { if ((gMessage.doTextBox & 0x7f) == 0) { this->subAction++; - if ((gPlayerState.flags & PL_MINISH) == 0) { if (this->animationState == IdleEast) gPlayerState.animation = 0x3cd; @@ -1120,7 +1128,7 @@ static void sub_08071A4C(Entity* this) { } static void ResetPlayerPriority(void) { - gPriorityHandler.sys_priority = 0; + gPriorityHandler.sys_priority = PRIO_MIN; gPlayerEntity.updatePriority = gPlayerEntity.updatePriorityPrev; } @@ -1136,16 +1144,15 @@ static void PlayerPush(Entity* this) { } static void PlayerPushInit(Entity* this) { - u32 speed; - this->subAction++; gPlayerState.flags |= PL_BUSY; if (this->type == 1) { + // scripted push? this->speed = 0; this->actionDelay = 0; this->field_0xf = 1; } else { - this->speed = (gPlayerState.flags & PL_MINISH) ? 64 : 128; + this->speed = (gPlayerState.flags & PL_MINISH) ? PUSH_SPEED / 2 : PUSH_SPEED; } PlayerPushUpdate(this); } @@ -1156,11 +1163,25 @@ static void PlayerPushUpdate(Entity* this) { u16 speed; } PushFrame; - static const PushFrame sPushFrames[] = { { 5, 0x0 }, { 1, 0x100 }, { 5, 0x0 }, { 1, 0x100 }, { 2, 0x0 }, - { 1, 0x100 }, { 2, 0x0 }, { 1, 0x100 }, { 3, 0x0 }, { 1, 0x100 }, - { 8, 0x60 }, { 8, 0x60 }, { 8, 0x60 }, { 8, 0x40 }, { 0xFF, 0x0 } }; + static const PushFrame sPushFrames[] = { + { 5, 0 }, + { 1, PUSH_SPEED * 2 }, + { 5, 0 }, + { 1, PUSH_SPEED * 2 }, + { 2, 0 }, + { 1, PUSH_SPEED * 2 }, + { 2, 0 }, + { 1, PUSH_SPEED * 2 }, + { 3, 0 }, + { 1, PUSH_SPEED * 2 }, + { 8, PUSH_SPEED * 3 / 4 }, + { 8, PUSH_SPEED * 3 / 4 }, + { 8, PUSH_SPEED * 3 / 4 }, + { 8, PUSH_SPEED / 2 }, + { 0xFF, 0 }, + }; - gPlayerState.field_0x80 = 0; + gPlayerState.speed_modifier = 0; UpdateAnimationSingleFrame(this); if (this->type == 1) { if (--this->field_0xf == 0) { @@ -1179,7 +1200,7 @@ static void PlayerPushUpdate(Entity* this) { this->subAction++; } } - sub_08079E08(); + UpdatePlayerMovement(); } static void sub_08071B60(Entity* this) { @@ -1187,7 +1208,7 @@ static void sub_08071B60(Entity* this) { gPlayerState.flags &= ~PL_BUSY; this->type = 0; this->knockbackDuration = 0; - sub_080728AC(this); + PlayerWaitForScroll(this); this->field_0xf = 6; if ((gPlayerState.flags & PL_MINISH) == 0) { gPlayerState.animation = 0x104; @@ -1215,7 +1236,7 @@ static void PlayerMinishDieInit(Entity* this) { if (gPlayerState.flags & (0x10 | 0x100)) return; - if (GravityUpdate(this, 0x2000)) { + if (GravityUpdate(this, GRAVITY_RATE)) { if (gPlayerState.flags & PL_NO_CAP) gPlayerState.animation = 0x420; else @@ -1229,7 +1250,7 @@ static void PlayerMinishDieInit(Entity* this) { gPlayerState.floor_type == SURFACE_MINISH_DOOR_BACK || gPlayerState.floor_type == SURFACE_A) { EnablePlayerDraw(this); RespawnPlayer(); - this->action = 10; + this->action = PLAYER_MINISHDIE; } temp = 0xc1a; } else { @@ -1299,12 +1320,12 @@ static void sub_08071D04(Entity* this) { static void sub_08071D80(Entity* this) { UpdateAnimationSingleFrame(this); gPlayerState.field_0x14 = 1; - sub_08073904(this); + DoJump(this); if ((gPlayerState.jumpStatus & 7) == 3) { gPlayerState.jumpStatus = 0; this->iframes = 226; ResetPlayerEventPriority(); - sub_080791D0(); + ResetPlayerAnimationAndAction(); } } @@ -1323,7 +1344,7 @@ static void sub_08071DD0(Entity* this) { if (gPlayerState.field_0x39 != 0) { gPlayerState.field_0x39 = 0; this->subAction = 2; - gPlayerState.animation = 0x100; + gPlayerState.animation = DEFAULT_ANIM; } else { this->subAction = 1; gPlayerState.animation = 0x114; @@ -1336,7 +1357,7 @@ static void sub_08071E04(Entity* this) { if (gPlayerState.floor_type == SURFACE_PIT) { gPlayerState.field_0x11 = 7; gPlayerState.flags |= PL_FALLING; - sub_080791BC(); + SetPlayerActionNormal(); return; } } @@ -1354,17 +1375,17 @@ static void sub_08071E04(Entity* this) { this->actionDelay -= 1; if ((s8)this->actionDelay < 1) - sub_080791BC(); + SetPlayerActionNormal(); } static void sub_08071E74(Entity* this) { u32 temp; - GravityUpdate(this, 0x2000); - sub_08079E08(); + GravityUpdate(this, GRAVITY_RATE); + UpdatePlayerMovement(); temp = this->actionDelay--; if (temp == 0) - sub_080791BC(); + SetPlayerActionNormal(); } static void PlayerEmptyBottle(Entity* this) { @@ -1426,7 +1447,7 @@ static void PlayerFrozenInit(Entity* this) { } static void PlayerFrozenUpdate(Entity* this) { - if (GravityUpdate(this, 0x2000) == 0) { + if (GravityUpdate(this, GRAVITY_RATE) == 0) { UpdateSpriteForCollisionLayer(this); gPlayerState.jumpStatus = 0; if (gPlayerState.field_0x14 == 0) { @@ -1461,7 +1482,7 @@ static void BreakOut(Entity* this) { this->spriteOffsetX = 0; gPlayerState.flags &= ~(PL_FROZEN | PL_BUSY); CreateFx(this, FX_ICE, 0); - sub_080791BC(); + SetPlayerActionNormal(); } static void sub_0807204C(Entity* this) { @@ -1493,7 +1514,7 @@ static void sub_08072098(Entity* this) { if (this->health != 0) COLLISION_ON(this); - sub_080791BC(); + SetPlayerActionNormal(); } static void sub_080720DC(Entity* this) { @@ -1529,12 +1550,12 @@ static void sub_08072168(Entity* this) { u32 i; UpdateAnimationSingleFrame(this); - i = (u16)sub_0806F854(this, 0, -12) ? 0x4000 : 0x2000; + i = (u16)sub_0806F854(this, 0, -12) ? GRAVITY_RATE * 2 : GRAVITY_RATE; GravityUpdate(this, i); if (gPlayerState.field_0x3a) { - sub_0806F69C(this); + LinearMoveUpdate(this); } else { - sub_08079E08(); + UpdatePlayerMovement(); } gPlayerState.field_0xd = this->direction; sub_08019840(); @@ -1542,7 +1563,7 @@ static void sub_08072168(Entity* this) { this->knockbackDuration = 0; COLLISION_ON(this); UpdateSpriteForCollisionLayer(this); - sub_080791BC(); + SetPlayerActionNormal(); } } @@ -1559,7 +1580,7 @@ static void PlayerPull(Entity* this) { static void sub_08072214(Entity* this) { this->subAction = 1; - this->speed = 128; + this->speed = PULL_SPEED; this->actionDelay = gPlayerState.field_0x38; this->direction = Direction8FromAnimationState(AnimationStateTurnAround(this->animationState)); if ((gPlayerState.flags & PL_NO_CAP) == 0) { @@ -1572,8 +1593,8 @@ static void sub_08072214(Entity* this) { } static void sub_08072260(Entity* this) { - gPlayerState.field_0x80 = 0; - sub_08079E08(); + gPlayerState.speed_modifier = 0; + UpdatePlayerMovement(); UpdateAnimationSingleFrame(this); if (--this->actionDelay == 0) { gPlayerState.flags &= ~PL_BUSY; @@ -1583,7 +1604,7 @@ static void sub_08072260(Entity* this) { gPlayerState.animation = 0x944; } this->knockbackDuration = 0; - sub_080791BC(); + SetPlayerActionNormal(); } } @@ -1626,7 +1647,7 @@ static void sub_08072354(Entity* this) { sub_0806F854(this, 0, -12); UpdateAnimationSingleFrame(this); sub_08079744(this); - if (GravityUpdate(this, 0x2000)) + if (GravityUpdate(this, GRAVITY_RATE)) return; this->spritePriority.b1 = 0; @@ -1679,11 +1700,11 @@ static void sub_0807246C(Entity* this) { static void sub_08072490(Entity* this) { if (--this->actionDelay != 0xff) { UpdateAnimationSingleFrame(this); - sub_08079E08(); + UpdatePlayerMovement(); } else { this->iframes = 60; ModHealth(-8); - sub_080791D0(); + ResetPlayerAnimationAndAction(); } } @@ -1697,14 +1718,14 @@ static void PlayerRoomTransition(Entity* this) { static void sub_080724DC(Entity* this) { this->knockbackDuration = 0; - sub_0807A108(); + DeleteClones(); if (sub_080002B8(this) != 0x29) { if ((gPlayerState.field_0x82[7] == 0) && (gPlayerState.swimState != 0)) { sub_0807AE20(this); } if (gRoomControls.unk2 == 0) { this->updatePriority = this->updatePriorityPrev; - sub_080728AC(this); + PlayerWaitForScroll(this); } else if (gPlayerState.field_0x1c == 0) { UpdateAnimationSingleFrame(this); } @@ -1725,12 +1746,12 @@ static void sub_080724DC(Entity* this) { static void sub_0807258C(Entity* this) { if (gRoomControls.unk2 == 0) { if (sub_0807A894(this) == 0x29) { - sub_08079E08(); + UpdatePlayerMovement(); if (sub_080797C4() != 0) { gPlayerState.startPosX = gPlayerEntity.x.HALF.HI; gPlayerState.startPosY = gPlayerEntity.y.HALF.HI; this->updatePriority = this->updatePriorityPrev; - sub_080728AC(this); + PlayerWaitForScroll(this); } else { UpdateAnimationSingleFrame(this); } @@ -1738,7 +1759,7 @@ static void sub_0807258C(Entity* this) { gPlayerState.startPosX = gPlayerEntity.x.HALF.HI; gPlayerState.startPosY = gPlayerEntity.y.HALF.HI; this->updatePriority = this->updatePriorityPrev; - sub_080728AC(this); + PlayerWaitForScroll(this); } } if ((gPlayerState.field_0x82[7] == 0) && (gPlayerState.swimState != 0)) { @@ -1794,7 +1815,7 @@ static void PlayerRollUpdate(Entity* this) { if (RunQueuedAction()) return; - sub_080728AC(this); + PlayerWaitForScroll(this); return; } @@ -1822,7 +1843,7 @@ static void PlayerRollUpdate(Entity* this) { if (gPlayerState.flags & (PL_FALLING | PL_HIDDEN | 0x10)) { gPlayerState.flags &= ~PL_ROLLING; - sub_080728AC(this); + PlayerWaitForScroll(this); return; } @@ -1833,21 +1854,21 @@ static void PlayerRollUpdate(Entity* this) { switch (this->frame & 0xf) { case 0: if ((this->frame & 0xf) == 0) { - this->speed = 0x200; + this->speed = ROLL_SPEED; } break; case 1: - this->speed += 0x20; + this->speed += ROLL_SPEED / 16; break; case 2: - this->speed = 0x300; + this->speed = (ROLL_SPEED * 3 / 2); break; case 3: this->speed = 0; break; } sub_08078F24(); - sub_08079E08(); + UpdatePlayerMovement(); } if (((this->frame & 0x10) == 0) && ((gPlayerState.flags & PL_MINISH) == 0)) { // dont take damage @@ -1857,7 +1878,7 @@ static void PlayerRollUpdate(Entity* this) { sub_08077698(this); } if ((this->frame & 0x80) || (gPlayerState.field_0x3[1] != 0)) { - sub_080791D0(); + ResetPlayerAnimationAndAction(); } if (this->frame & 0x80) { gPlayerState.flags &= ~(PL_RELEASED | PL_ROLLING); @@ -1865,8 +1886,8 @@ static void PlayerRollUpdate(Entity* this) { UpdateAnimationSingleFrame(this); } -static void sub_080728AC(Entity* this) { - sub_08079938(); +static void PlayerWaitForScroll(Entity* this) { + ResolvePlayerAnimation(); if (gPlayerState.flags & PL_MINISH) sub_0807B068(this); else @@ -1879,10 +1900,10 @@ static void sub_080728AC(Entity* this) { if ((gPlayerState.flags & PL_MINISH) == 0) gPlayerEntity.spritePriority.b1 = 1; - if ((gRoomControls.unk6 & 4) == 0) { + if ((gRoomControls.scroll_flags & 4) == 0) { if (gPlayerState.flags & PL_HIDDEN) COLLISION_ON(this); - sub_080791D0(); + ResetPlayerAnimationAndAction(); } if ((gPlayerState.flags & 2) == 0) { UpdateFloorType(); @@ -1950,8 +1971,8 @@ static void sub_08072ACC(Entity* this) { } else if (this->field_0xf > 7) { COLLISION_ON(this); this->direction = gPlayerState.field_0xd; - this->zVelocity = 0x1a000; - this->speed = 120; + this->zVelocity = HOLE_SPEED_Z; + this->speed = HOLE_SPEED_FWD; this->spritePriority.b0 = 4; this->spritePriority.b1 = 1; gPlayerState.jumpStatus = 0x41; @@ -2003,8 +2024,8 @@ static void sub_08072B5C(Entity* this) { static void sub_08072C48(Entity* this) { UpdateAnimationSingleFrame(this); - sub_0806F69C(this); - if (GravityUpdate(this, 0x2000)) + LinearMoveUpdate(this); + if (GravityUpdate(this, GRAVITY_RATE)) return; sub_08008790(this, 7); @@ -2012,7 +2033,7 @@ static void sub_08072C48(Entity* this) { if (sub_08008B22()) { gPlayerState.field_0x11 = 7; if (!(gPlayerState.flags & PL_MINISH)) { - sub_080791BC(); + SetPlayerActionNormal(); } } } else { @@ -2044,7 +2065,7 @@ static void sub_08072CC0(Entity* this) { static void sub_08072CFC(Entity* this) { sub_080042BA(this, 2); if (--this->field_0xf != 0xff) { - sub_0806F69C(this); + LinearMoveUpdate(this); return; } @@ -2074,12 +2095,11 @@ static const u16* const sTileTable[] = { static NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(Entity* this)) { u32 bVar1; u32 uVar2; - u32 iVar3; UpdateAnimationSingleFrame(this); sub_0806F854(this, 0, -12); if (this->actionDelay != 0) { - sub_0806F69C(this); + LinearMoveUpdate(this); } else { uVar2 = sub_0806F730(this); uVar2 = GetTileType(uVar2, this->collisionLayer); @@ -2098,9 +2118,9 @@ static NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(En break; case 3: if (this->actionDelay == 0) { - sub_08079E08(); + UpdatePlayerMovement(); } else { - sub_0806F69C(this); + LinearMoveUpdate(this); } break; case 2: @@ -2121,18 +2141,18 @@ static NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(En } if (this->actionDelay != 0) { - sub_0806F69C(this); + LinearMoveUpdate(this); } else { - sub_08079E08(); + UpdatePlayerMovement(); } this->actionDelay = 0; } this->actionDelay = bVar1; - if (!GravityUpdate(this, 0x2000)) { + if (!GravityUpdate(this, GRAVITY_RATE)) { COLLISION_ON(this); if (this->collisionLayer == 1) { - sub_0800455E(this); + ResetCollisionLayer(this); } else { sub_08004542(this); } @@ -2141,7 +2161,7 @@ static NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(En if (sub_08008B22() == 0) { gPlayerState.field_0x11 = 7; if (!(gPlayerState.flags & PL_MINISH)) { - sub_080791BC(); + SetPlayerActionNormal(); } } } else { @@ -2251,7 +2271,7 @@ static void sub_08073094(Entity* this) { this->spritePriority.b1 = 0; this->speed = sSpeeds[this->frame & 0xf]; - sub_08079E08(); + UpdatePlayerMovement(); if (!sub_08019840()) { gPlayerState.pushedObject ^= 0x80; if ((gPlayerState.floor_type != SURFACE_AUTO_LADDER) && (gPlayerState.floor_type != SURFACE_2C)) { @@ -2274,7 +2294,7 @@ static void sub_08073094(Entity* this) { break; case SURFACE_WATER: sub_08074808(this); - sub_080791D0(); + ResetPlayerAnimationAndAction(); break; default: sub_0807921C(); @@ -2342,7 +2362,7 @@ static void sub_080731D8(Entity* this) { gPlayerState.animation = 260; } gRoomControls.cameraTarget = NULL; - sub_0807A108(); + DeleteClones(); ResetPlayer(); } @@ -2350,7 +2370,7 @@ static void sub_080732D0(Entity* this) { UpdateAnimationSingleFrame(this); if (sub_080002B8(this) != 40) { this->direction = DirectionNorth; - sub_0806F69C(this); + LinearMoveUpdate(this); } else { this->subAction++; this->y.HALF.LO = 0; @@ -2377,17 +2397,17 @@ static void sub_0807332C(Entity* this) { } else { this->animationState = 6; if (this->direction <= DirectionWest) { - sub_0806F69C(this); + LinearMoveUpdate(this); return; } this->direction = (this->direction - 1) & 0x1F; } - sub_0806F69C(this); + LinearMoveUpdate(this); return; } if (gPlayerState.field_0x38 != 0) { gRoomControls.cameraTarget = this; - sub_080791BC(); + SetPlayerActionNormal(); } else { gMain.transition = 3; *(&gMain.pauseInterval + 1) = 1; @@ -2412,7 +2432,7 @@ static void sub_080733BC(Entity* this) { } } } - sub_0806F69C(this); + LinearMoveUpdate(this); if (this->field_0x7c.HALF_U.HI == this->y.HALF.HI) { gRoomControls.cameraTarget = this; sub_0807921C(); @@ -2450,7 +2470,7 @@ static void sub_08073468(Entity* this) { } static void sub_080734D4(Entity* this) { - GravityUpdate(this, -0x1000); + GravityUpdate(this, -(GRAVITY_RATE / 2)); if (this->zVelocity > 0 || gPlayerState.field_0x38 == 1) { this->zVelocity = 0x49000; this->subAction++; @@ -2458,7 +2478,7 @@ static void sub_080734D4(Entity* this) { } static void sub_08073504(Entity* this) { - GravityUpdate(this, this->zVelocity < 0 ? 0x800 : 0x4000); + GravityUpdate(this, this->zVelocity < 0 ? GRAVITY_RATE / 4 : GRAVITY_RATE * 2); if (this->zVelocity < 0 && this->z.HALF.HI > -32) { this->subAction++; *((u32*)&this->field_0x80.HWORD) = this->direction << 8; @@ -2497,7 +2517,7 @@ static NONMATCH("asm/non_matching/player/sub_08073584.inc", void sub_08073584(En (gPlayerState.flags & PL_PARACHUTE) == 0) { gPlayerState.jumpStatus |= 0x40; sub_0807921C(); - sub_08073904(this); + DoJump(this); gPlayerState.animation = 1840; return; } @@ -2521,7 +2541,7 @@ static NONMATCH("asm/non_matching/player/sub_08073584.inc", void sub_08073584(En } } this->direction = (*(u32*)&this->field_0x80 >> 8) & 0x1F; - sub_08079E08(); + UpdatePlayerMovement(); state = 4 * this->animationState; dir = this->direction; if (this->animationState == 0) { @@ -2595,7 +2615,7 @@ static void sub_080737BC(Entity* this) { u32 tmp; UpdateAnimationSingleFrame(this); - sub_0806F69C(this); + LinearMoveUpdate(this); this->z.WORD += 0x4C00; if (DirectionIsHorizontal(this->direction)) pos = this->x.HALF.HI; @@ -2624,7 +2644,7 @@ static void sub_0807380C(Entity* this) { } gPlayerState.animation = sAnims[this->animationState >> 1]; if (this->z.HALF.HI < -16) { - GravityUpdate(this, 0x200); + GravityUpdate(this, GRAVITY_RATE / 16); } else { if (--this->actionDelay == 0) { this->subAction = 7; @@ -2655,11 +2675,11 @@ void sub_08073884(Entity* this) { else InitParachuteRoom(); } - GravityUpdate(this, -0x1800); + GravityUpdate(this, -((GRAVITY_RATE * 3) / 4)); UpdateAnimationSingleFrame(this); } -void sub_08073904(Entity* this) { +void DoJump(Entity* this) { static EntityAction* const sStates[] = { sub_08073924, sub_08073968, sub_080739EC, sub_08073A94, sub_08073B8C, sub_08073C30, }; @@ -2709,13 +2729,13 @@ static void sub_080739EC(Entity* this) { gPlayerState.field_0xd = this->direction; if (gPlayerState.jumpStatus & 0x80) this->collisions = 0; - v = 0x2000; + v = GRAVITY_RATE; } else { if ((u16)sub_0806F854(this, 0, -12)) { gPlayerState.jumpStatus |= 8; - v = 0x4000; + v = GRAVITY_RATE * 2; } else { - v = 0x2000; + v = GRAVITY_RATE; if (gPlayerState.jumpStatus & 0x10) v /= 2; } @@ -2775,10 +2795,10 @@ static void sub_08073B60(Entity* this) { gPlayerState.field_0x1a[1] = 0; gPlayerState.field_0x3[1] = 0; gPlayerState.jumpStatus = 0; - sub_08079938(); + ResolvePlayerAnimation(); sub_080085B0(this); if ((gPlayerState.flags & PL_USE_PORTAL) == 0) { - sub_080791BC(); + SetPlayerActionNormal(); } } @@ -2795,7 +2815,7 @@ void sub_08073B8C(Entity* this) { --this->actionDelay; return; } - GravityUpdate(this, 0x4000); + GravityUpdate(this, GRAVITY_RATE * 2); if (this->z.HALF.HI >= -8) { if (!gPlayerState.field_0x14 && (sub_0807A2B8() || !sub_08079D48())) { COLLISION_ON(this); @@ -2865,7 +2885,7 @@ static void sub_08073D20(Entity* this) { return; } if (!RunQueuedAction()) { - sub_08073904(this); + DoJump(this); UpdateFloorType(); if (gPlayerState.jumpStatus) gPlayerState.framestate = PL_STATE_CAPE; @@ -2891,19 +2911,19 @@ static void sub_08073D20(Entity* this) { } if (!sub_08019840()) { sub_08077698(this); - if (!GravityUpdate(this, 0x2000)) + if (!GravityUpdate(this, GRAVITY_RATE)) gPlayerState.jumpStatus = 0; if ((gPlayerState.field_0x7 & 0x80) == 0 && !gPlayerState.field_0xa) { if (this->iframes <= 8) { if (gPlayerState.swimState) { gPlayerState.framestate = PL_STATE_SWIM; sub_0807ACCC(this); - sub_08079E08(); + UpdatePlayerMovement(); } else { this->direction = gPlayerState.field_0xd; if ((gPlayerState.field_0xd & 0x80) == 0) { gPlayerState.framestate = PL_STATE_WALK; - sub_08079E08(1); + UpdatePlayerMovement(); } } } @@ -2945,7 +2965,7 @@ static void sub_08073F4C(Entity* this) { if (this->x.HALF.HI != x || this->y.HALF.HI != y) { this->direction = sub_080045D4(this->x.HALF.HI, this->y.HALF.HI, gArea.curPortalX, gArea.curPortalY); this->speed = 0x100; - sub_0806F69C(this); + LinearMoveUpdate(this); } else { COLLISION_OFF(this); this->actionDelay = 30; @@ -2969,7 +2989,7 @@ static void sub_08073FD0(Entity* this) { SoundReq(SFX_PLY_JUMP); } } - GravityUpdate(this, 0x2000); + GravityUpdate(this, GRAVITY_RATE); if (this->zVelocity == 0) { this->subAction++; SoundReq(SFX_PLY_GROW); @@ -2988,7 +3008,7 @@ static void sub_08074018(Entity* this) { } static void sub_08074060(Entity* this) { - if (!GravityUpdate(this, 0x2000)) { + if (!GravityUpdate(this, GRAVITY_RATE)) { this->hitbox = (Hitbox*)&gPlayerHitbox; this->direction = DirectionSouth; this->animationState = IdleSouth; @@ -3042,13 +3062,15 @@ static NONMATCH("asm/non_matching/player/sub_080740D8.inc", void sub_080740D8(En v6 = this->y.HALF.HI; v1 = v6 + v5->offset_y - gRoomControls.roomOriginY; break; + default: + break; } if (sub_080086B4(v2, v1, gUnk_080082DC)) - sub_0806F69C(this); + LinearMoveUpdate(this); else this->field_0xf = 1; - if (!GravityUpdate(this, 0x2000)) + if (!GravityUpdate(this, GRAVITY_RATE)) sub_0807921C(); } END_NONMATCH @@ -3075,11 +3097,11 @@ void SurfaceAction_Pit(Entity* this) { } void SurfaceAction_SlopeGndGndVertical(Entity* this) { - sub_08074244(this, 8, 0x18); + sub_08074244(this, DirectionEast, DirectionWest); } void SurfaceAction_SlopeGndGndHorizontal(Entity* this) { - sub_08074244(this, 0, 0x10); + sub_08074244(this, DirectionNorth, DirectionSouth); } static void sub_08074244(Entity* this, u32 a1, u32 a2) { @@ -3096,7 +3118,7 @@ static void sub_08074244(Entity* this, u32 a1, u32 a2) { tmp = 4 * this->animationState; } if (a1 != tmp || a2 != tmp) { - gPlayerState.field_0x80 -= 80; + gPlayerState.speed_modifier -= SLOPE_SPEED_MODIFIER; } } } @@ -3170,7 +3192,7 @@ void SurfaceAction_14(Entity* this) { this->speed = 0x300; this->direction = 16; gPlayerState.field_0xa |= 0x80; - sub_0806F69C(this); + LinearMoveUpdate(this); this->speed = spd; } } @@ -3199,6 +3221,7 @@ void SurfaceAction_CloneTile(Entity* this) { n = 3; break; default: + //! @bug: n is not initialized break; } for (i = 0; i < n; ++i) { @@ -3206,7 +3229,7 @@ void SurfaceAction_CloneTile(Entity* this) { break; } if (n > i) { - Entity* e = CreateObjectWithParent(this, 0x10, i, 0); + Entity* e = CreateObjectWithParent(this, OBJECT_10, i, 0); gPlayerClones[i] = e; if (e != NULL) { CopyPosition(this, e); @@ -3361,7 +3384,7 @@ void SurfaceAction_Ladder(Entity* this) { } void SurfaceAction_2C(Entity* this) { - if (GetInventoryValue(68) == 1) { + if (GetInventoryValue(ITEM_GRIP_RING) == 1) { SurfaceAction_AutoLadder(this); } else { this->y.HALF.HI &= 0xFFF0; @@ -3405,7 +3428,7 @@ void SurfaceAction_22(Entity* this) { void SurfaceAction_Dust(Entity* this) { if (!sub_080741C4()) { - gPlayerState.field_0x80 -= 128; + gPlayerState.speed_modifier -= 128; if (gPlayerState.field_0x11 == 1 || (gPlayerState.field_0x92 & 0xF00) != 0) { if (gPlayerState.floor_type == SURFACE_DUST) CreateObjectWithParent(this, OBJECT_21, 1, 0); @@ -3474,7 +3497,7 @@ static void sub_08074BF8(Entity* this) { gPlayerState.field_0xa |= 0x80; gPlayerState.field_0x1a[0] |= 0x80; gPlayerState.field_0x27[0]++; - sub_0806F69C(this); + LinearMoveUpdate(this); } static void sub_08074C44(Entity* this) { @@ -3520,7 +3543,7 @@ static void sub_08074CF8(Entity* this) { sub_08074D34(this, *(ScriptExecutionContext**)&this->cutsceneBeh.HWORD); if ((this->field_0x82.HWORD & 1) != 0) this->animationState = v3; - GravityUpdate(this, 0x2000); + GravityUpdate(this, GRAVITY_RATE); UpdateAnimationSingleFrame(this); } @@ -3529,11 +3552,13 @@ void sub_08074D34(Entity* this, ScriptExecutionContext* ctx) { u32 bit = (~ctx->postScriptActions + 1) & ctx->postScriptActions; ctx->postScriptActions ^= bit; switch (bit) { + default: + break; case 0x1: if (gPlayerState.flags & PL_NO_CAP) gPlayerState.animation = 0x400; else - gPlayerState.animation = 0x100; + gPlayerState.animation = DEFAULT_ANIM; break; case 0x2: if (gPlayerState.flags & PL_NO_CAP) @@ -3640,7 +3665,7 @@ void sub_08074F8C(Entity* this) { if (!gPlayerState.field_0x39) { gPlayerState.animation = 1024; } else { - gPlayerState.animation = 256; + gPlayerState.animation = DEFAULT_ANIM; } } } @@ -3674,14 +3699,14 @@ void sub_0807501C(Entity* this) { void sub_0807508C(Entity* this) { UpdateAnimationSingleFrame(this); - if (GravityUpdate(this, 0x2000)) { - sub_0806F69C(this); + if (GravityUpdate(this, GRAVITY_RATE)) { + LinearMoveUpdate(this); } else { if (!gPlayerState.field_0x39) { gPlayerState.animation = 1024; } else { gPlayerState.flags &= ~PL_NO_CAP; - gPlayerState.animation = 256; + gPlayerState.animation = DEFAULT_ANIM; } if (--this->actionDelay == 0) { this->animationState = IdleSouth; @@ -3740,7 +3765,7 @@ void sub_080751B4(Entity* this) { this->animationState = IdleSouth; this->subAction = 1; this->field_0x68.HALF.LO = 0; - gPlayerState.animation = 256; + gPlayerState.animation = DEFAULT_ANIM; } } @@ -3762,7 +3787,7 @@ NONMATCH("asm/non_matching/player/sub_080751E8.inc", void sub_080751E8(u32 a1, u gPlayerState.field_0x38 = 1; gPlayerState.field_0x39 = 0; gPlayerState.field_0x3a = a2; - gPlayerState.flags |= 8; + gPlayerState.flags |= PL_NO_CAP; if (!a1) { gPlayerState.field_0x39 = 0; tmp = &script_BedInLinksRoom; @@ -3778,7 +3803,7 @@ NONMATCH("asm/non_matching/player/sub_080751E8.inc", void sub_080751E8(u32 a1, u e2 = CreateSpeechBubbleSleep(&gPlayerEntity, -14, -28); *(Entity**)&gPlayerEntity.field_0x6c.HWORD = e2; if (e2 != NULL) { - SetDefaultPriority(e2, 3); + SetDefaultPriority(e2, PRIO_NO_BLOCK); } } END_NONMATCH @@ -3788,7 +3813,7 @@ void sub_0807529C(Entity* this) { } void sub_080752AC(Entity* this, ScriptExecutionContext* ctx) { - sub_0806F69C(this); + LinearMoveUpdate(this); if (!ctx->unk_18) { if (sub_080002B8(this) != 41) { ctx->unk_18 = 1; diff --git a/src/playerItem/playerItem12.c b/src/playerItem/playerItem12.c index 855fcef8..90eb82c2 100644 --- a/src/playerItem/playerItem12.c +++ b/src/playerItem/playerItem12.c @@ -24,7 +24,7 @@ void sub_0807037C(Entity* this) { void sub_08070398(Entity* this) { GetNextFrame(this); - sub_0806F69C(this); + LinearMoveUpdate(this); if (GravityUpdate(this, 0x2000) == 0) { DeleteThisEntity(); } diff --git a/src/playerItem/playerItem14.c b/src/playerItem/playerItem14.c index 0d241609..f7e04fb3 100644 --- a/src/playerItem/playerItem14.c +++ b/src/playerItem/playerItem14.c @@ -1,8 +1,6 @@ #include "entity.h" #include "audio.h" #include "functions.h" -#include "player.h" -#include "room.h" #include "effects.h" extern void (*const gUnk_08109AC8[])(Entity*); @@ -30,7 +28,7 @@ void sub_0805FBE8(Entity* this) { *(u32*)&this->field_0x6c = 0x3c; InitializeAnimation(this, (this->animationState >> 1) + 0xc); sub_0801766C(this); - sub_0806F69C(this); + LinearMoveUpdate(this); sub_0805FC74(this); SoundReq(SFX_ITEM_SWORD_BEAM); } @@ -40,7 +38,7 @@ void sub_0805FC74(Entity* this) { if (--*(int*)&this->field_0x6c != -1) { GetNextFrame(this); - sub_0806F69C(this); + LinearMoveUpdate(this); this->actionDelay++; if (this->type2 == 0) { sub_0800451C(this); diff --git a/src/playerItem/playerItem15.c b/src/playerItem/playerItem15.c index e90cf433..375e480f 100644 --- a/src/playerItem/playerItem15.c +++ b/src/playerItem/playerItem15.c @@ -26,7 +26,7 @@ void sub_080A3084(Entity* this) { this->direction = this->animationState << 2; *(u32*)&this->field_0x6c = 0x3c; sub_0801766C(this); - sub_0806F69C(this); + LinearMoveUpdate(this); SoundReq(SFX_ITEM_SWORD_BEAM); } else { this->actionDelay = 0x06; diff --git a/src/playerItem/playerItem3.c b/src/playerItem/playerItem3.c index 83fdea5a..4de73cc2 100644 --- a/src/playerItem/playerItem3.c +++ b/src/playerItem/playerItem3.c @@ -47,7 +47,7 @@ void sub_0801B7A8(Entity* this) { this->speed += 8; } this->direction = GetFacingDirection(this, &gPlayerEntity); - sub_0806F69C(this); + LinearMoveUpdate(this); if (sub_0800419C(this, &gPlayerEntity, 2, 2) != 0) { DeleteThisEntity(); } diff --git a/src/playerItem/playerItemBow.c b/src/playerItem/playerItemBow.c index c1295acd..1365afaf 100644 --- a/src/playerItem/playerItemBow.c +++ b/src/playerItem/playerItemBow.c @@ -27,7 +27,7 @@ void sub_08019410(Entity* this) { void sub_08019444(Entity* this) { GetNextFrame(this); - sub_0806F69C(this); + LinearMoveUpdate(this); if (GravityUpdate(this, 0x2000) == 0) { DeleteThisEntity(); } diff --git a/src/playerItem/playerItemSwordBeam.c b/src/playerItem/playerItemSwordBeam.c index d3e13b2f..24099003 100644 --- a/src/playerItem/playerItemSwordBeam.c +++ b/src/playerItem/playerItemSwordBeam.c @@ -56,7 +56,7 @@ void sub_08019498(Entity* this) { InitializeAnimation(this, gUnk_080B43FC[this->animationState >> 1]); sub_0801766C(this); - sub_0806F69C(this); + LinearMoveUpdate(this); sub_08019580(this); SoundReq(SFX_ITEM_SWORD_BEAM); } @@ -64,7 +64,7 @@ void sub_08019498(Entity* this) { void sub_08019580(Entity* this) { if (--*(int*)&this->field_0x6c != -1) { GetNextFrame(this); - sub_0806F69C(this); + LinearMoveUpdate(this); this->actionDelay += 0x01; if (this->type2 == 0) { sub_0800451C(this); diff --git a/src/playerItemUtils.c b/src/playerItemUtils.c index de1d4989..22772e62 100644 --- a/src/playerItemUtils.c +++ b/src/playerItemUtils.c @@ -1,12 +1,12 @@ #include "entity.h" #include "functions.h" -#include "room.h" #include "save.h" #include "utils.h" #include "audio.h" #include "flags.h" #include "textbox.h" #include "object.h" +#include "player.h" Entity* GiveItemWithCutscene(u32, u32, u32); Entity* sub_080A276C(Entity*, u32, u32); diff --git a/src/projectile.c b/src/projectile.c index c1891eb7..aaddbb1b 100644 --- a/src/projectile.c +++ b/src/projectile.c @@ -3,7 +3,7 @@ #include "hitbox.h" #define MULTI_FORM(definition_ptr) \ - { 0xffff, 0, { .definition = definition_ptr }, 0, 0, 0 } + { 0xffff, 0, { .definition = (definition_ptr) }, 0, 0, 0 } const ProjectileDefinition gProjectileDefinition_0[]; const ProjectileDefinition gProjectileDefinition_6[]; diff --git a/src/projectile/arrowProjectile.c b/src/projectile/arrowProjectile.c index 845a839b..bdb0a214 100644 --- a/src/projectile/arrowProjectile.c +++ b/src/projectile/arrowProjectile.c @@ -1,7 +1,6 @@ #include "entity.h" #include "enemy.h" #include "functions.h" -#include "audio.h" #include "object.h" extern s32 sub_080AF090(Entity*); @@ -75,7 +74,7 @@ void ArrowProjectile_Action2(Entity* this) { this->actionDelay = 0x20; InitializeAnimation(this, this->animIndex + 2); EnqueueSFX(0x18a); - sub_0806F69C(this); + LinearMoveUpdate(this); } else if (--this->actionDelay == 0) { DeleteThisEntity(); } diff --git a/src/projectile/ballAndChain.c b/src/projectile/ballAndChain.c index bee0f066..281b04b6 100644 --- a/src/projectile/ballAndChain.c +++ b/src/projectile/ballAndChain.c @@ -1,7 +1,6 @@ #include "entity.h" #include "functions.h" -extern u8 gEntCount; bool32 sub_080AB12C(Entity* this); extern void (*const gUnk_0812A494[])(Entity*); diff --git a/src/projectile/boneProjectile.c b/src/projectile/boneProjectile.c index d778558d..20c6e090 100644 --- a/src/projectile/boneProjectile.c +++ b/src/projectile/boneProjectile.c @@ -65,7 +65,7 @@ void BoneProjectile_Action2(Entity* this) { void BoneProjectile_Action3(Entity* this) { this->spriteSettings.draw ^= 1; - sub_0806F69C(this); + LinearMoveUpdate(this); GetNextFrame(this); if (sub_080044EC(this, 0x1800) == 0) { DeleteEntity(this); @@ -74,7 +74,7 @@ void BoneProjectile_Action3(Entity* this) { void BoneProjectile_Action4(Entity* this) { GetNextFrame(this); - sub_0806F69C(this); + LinearMoveUpdate(this); if (GravityUpdate(this, 0x1800) == 0) { DeleteEntity(this); } diff --git a/src/projectile/cannonballProjectile.c b/src/projectile/cannonballProjectile.c index 25d79adf..449240e1 100644 --- a/src/projectile/cannonballProjectile.c +++ b/src/projectile/cannonballProjectile.c @@ -1,7 +1,5 @@ #include "entity.h" #include "enemy.h" -#include "functions.h" -#include "effects.h" extern void CreateItemOnGround(Entity*); extern s32 sub_080AF090(Entity*); diff --git a/src/projectile/dekuSeedProjectile.c b/src/projectile/dekuSeedProjectile.c index 120f2009..d84d0409 100644 --- a/src/projectile/dekuSeedProjectile.c +++ b/src/projectile/dekuSeedProjectile.c @@ -1,8 +1,6 @@ #include "entity.h" #include "enemy.h" #include "functions.h" -#include "audio.h" -#include "flags.h" extern s32 sub_080AF090(Entity*); extern s32 IsProjectileOffScreen(Entity*); diff --git a/src/projectile/dirtBallProjectile.c b/src/projectile/dirtBallProjectile.c index 791dd040..3723a0c7 100644 --- a/src/projectile/dirtBallProjectile.c +++ b/src/projectile/dirtBallProjectile.c @@ -4,7 +4,6 @@ #include "player.h" #include "coord.h" #include "functions.h" -#include "effects.h" extern void sub_08078954(Entity*); diff --git a/src/projectile/fireProjectile.c b/src/projectile/fireProjectile.c index 8526b91a..c44a9b89 100644 --- a/src/projectile/fireProjectile.c +++ b/src/projectile/fireProjectile.c @@ -2,7 +2,6 @@ #include "entity.h" #include "enemy.h" #include "functions.h" -#include "audio.h" extern s32 sub_080AF090(Entity*); extern s32 IsProjectileOffScreen(Entity*); diff --git a/src/projectile/gleerokProjectile.c b/src/projectile/gleerokProjectile.c index 6a25ec3e..7de99ca5 100644 --- a/src/projectile/gleerokProjectile.c +++ b/src/projectile/gleerokProjectile.c @@ -3,9 +3,6 @@ #include "enemy.h" #include "player.h" #include "functions.h" -#include "asm.h" -#include "audio.h" -#include "effects.h" extern void sub_0806F5BC(Entity*, u32, u32); extern u32 sub_080041DC(Entity*, u32, u32); @@ -96,7 +93,7 @@ void GleerokProjectile_Action1(Entity* this) { } } else { GetNextFrame(this); - sub_0806F69C(this); + LinearMoveUpdate(this); if ((this->type != 2) && (--this->field_0xf == 0xff)) { this->field_0xf = 0x1e; sub_08004596(this, GetFacingDirection(this, &gPlayerEntity)); @@ -122,7 +119,7 @@ void GleerokProjectile_Action2(Entity* this) { this->action = 3; InitializeAnimation(this, 0x55); } else { - sub_0806F69C(this); + LinearMoveUpdate(this); sub_080A90D8(this); } } else { diff --git a/src/projectile/guardLineOfSight.c b/src/projectile/guardLineOfSight.c index a4a87308..02ecc3cd 100644 --- a/src/projectile/guardLineOfSight.c +++ b/src/projectile/guardLineOfSight.c @@ -61,7 +61,7 @@ void GuardLineOfSight(Entity* this) { if (--this->actionDelay == 0) { DeleteThisEntity(); } - sub_0806F69C(this); + LinearMoveUpdate(this); if (sub_080AE4CC(&gUnk_02027EB4, this->x.HALF.HI, this->y.HALF.HI, 2) != 0) { DeleteThisEntity(); } diff --git a/src/projectile/guruguruBarProjectile.c b/src/projectile/guruguruBarProjectile.c index de504cf5..fc88e2cf 100644 --- a/src/projectile/guruguruBarProjectile.c +++ b/src/projectile/guruguruBarProjectile.c @@ -1,6 +1,5 @@ #include "entity.h" -#include "enemy.h" #include "coord.h" void sub_080AABB0(Entity*); diff --git a/src/projectile/gyorgMaleEnergyProjectile.c b/src/projectile/gyorgMaleEnergyProjectile.c index 65c67ba1..08946bc8 100644 --- a/src/projectile/gyorgMaleEnergyProjectile.c +++ b/src/projectile/gyorgMaleEnergyProjectile.c @@ -2,7 +2,6 @@ #include "enemy.h" #include "coord.h" #include "player.h" -#include "audio.h" extern s32 sub_080AF090(Entity*); extern s32 IsProjectileOffScreen(Entity*); diff --git a/src/projectile/iceProjectile.c b/src/projectile/iceProjectile.c index 6e9a4ef7..52364a53 100644 --- a/src/projectile/iceProjectile.c +++ b/src/projectile/iceProjectile.c @@ -2,7 +2,6 @@ #include "entity.h" #include "enemy.h" #include "functions.h" -#include "audio.h" extern s32 sub_080AF090(Entity*); extern s32 IsProjectileOffScreen(Entity*); diff --git a/src/projectile/lakituCloudProjectile.c b/src/projectile/lakituCloudProjectile.c index 9fff58bd..ce7d2d21 100644 --- a/src/projectile/lakituCloudProjectile.c +++ b/src/projectile/lakituCloudProjectile.c @@ -1,8 +1,6 @@ #include "entity.h" #include "enemy.h" #include "functions.h" -#include "player.h" -#include "effects.h" extern void SoundReqClipped(Entity*, u32); extern void sub_08079D84(void); diff --git a/src/projectile/lakituLightning.c b/src/projectile/lakituLightning.c index 755d7bba..e6bb2cef 100644 --- a/src/projectile/lakituLightning.c +++ b/src/projectile/lakituLightning.c @@ -1,6 +1,5 @@ #include "entity.h" #include "enemy.h" -#include "effects.h" extern s32 sub_080AF090(Entity*); extern s32 IsProjectileOffScreen(Entity*); diff --git a/src/projectile/mandiblesProjectile.c b/src/projectile/mandiblesProjectile.c index 43551110..f01fc3b2 100644 --- a/src/projectile/mandiblesProjectile.c +++ b/src/projectile/mandiblesProjectile.c @@ -2,8 +2,6 @@ #include "enemy.h" #include "coord.h" #include "functions.h" -#include "audio.h" -#include "asm.h" #include "overworld.h" extern Entity* sub_08049DF4(u32); @@ -202,7 +200,7 @@ void MandiblesProjectile_Action4(Entity* this) { DeleteThisEntity(); } } - sub_0806F69C(this); + LinearMoveUpdate(this); UpdateAnimationSingleFrame(this); } diff --git a/src/projectile/octorokBossProjectile.c b/src/projectile/octorokBossProjectile.c index d04903b5..b5ed8193 100644 --- a/src/projectile/octorokBossProjectile.c +++ b/src/projectile/octorokBossProjectile.c @@ -1,9 +1,6 @@ #include "entity.h" #include "enemy.h" -#include "asm.h" #include "functions.h" -#include "audio.h" -#include "effects.h" #include "projectile.h" void OctorokBossProjectile_Action2(Entity*); diff --git a/src/projectile/removableDust.c b/src/projectile/removableDust.c index 5fbf3c76..58107064 100644 --- a/src/projectile/removableDust.c +++ b/src/projectile/removableDust.c @@ -2,8 +2,6 @@ #include "enemy.h" #include "coord.h" #include "functions.h" -#include "flags.h" -#include "utils.h" #include "object.h" extern u32 sub_080002C8(u16, u8); diff --git a/src/projectile/rockProjectile.c b/src/projectile/rockProjectile.c index 5ad1b0ef..7254631b 100644 --- a/src/projectile/rockProjectile.c +++ b/src/projectile/rockProjectile.c @@ -54,7 +54,7 @@ void RockProjectile_Action1(Entity* this) { } void RockProjectile_Action2(Entity* this) { - sub_0806F69C(this); + LinearMoveUpdate(this); GetNextFrame(this); if (GravityUpdate(this, 0x1800) == 0) { DeleteEntity(this); diff --git a/src/projectile/spiderWeb.c b/src/projectile/spiderWeb.c index 7323ae0a..6df74e1c 100644 --- a/src/projectile/spiderWeb.c +++ b/src/projectile/spiderWeb.c @@ -1,9 +1,7 @@ #include "entity.h" #include "enemy.h" -#include "audio.h" #include "functions.h" #include "object.h" -#include "flags.h" extern void sub_0806FBB4(Entity*); extern u32 sub_080002D4(s32, s32, u32); diff --git a/src/projectile/stalfosProjectile.c b/src/projectile/stalfosProjectile.c index 92868e26..709907e0 100644 --- a/src/projectile/stalfosProjectile.c +++ b/src/projectile/stalfosProjectile.c @@ -1,7 +1,6 @@ #include "entity.h" #include "enemy.h" #include "functions.h" -#include "effects.h" extern void (*const StalfosProjectile_Functions[])(Entity*); extern void (*const StalfosProjectile_Actions[])(Entity*); diff --git a/src/projectile/torchTrapProjectile.c b/src/projectile/torchTrapProjectile.c index 6603329c..046d8062 100644 --- a/src/projectile/torchTrapProjectile.c +++ b/src/projectile/torchTrapProjectile.c @@ -32,7 +32,7 @@ void TorchTrapProjectile_Action1(Entity* this) { this->actionDelay -= 1; } else { if (sub_080AF090(this) == 0) { - sub_0806F69C(this); + LinearMoveUpdate(this); } else { this->action = 2; } diff --git a/src/projectile/v1DarkMagicProjectile.c b/src/projectile/v1DarkMagicProjectile.c index 2cbc6dd2..27fe3c98 100644 --- a/src/projectile/v1DarkMagicProjectile.c +++ b/src/projectile/v1DarkMagicProjectile.c @@ -2,9 +2,7 @@ #include "enemy.h" #include "coord.h" #include "player.h" -#include "audio.h" #include "functions.h" -#include "asm.h" extern void SoundReqClipped(Entity*, u32); @@ -124,7 +122,7 @@ void V1DarkMagicProjectile_Action1(Entity* this) { uVar2 = GetFacingDirection(this, &gPlayerEntity); sub_08004596(this, uVar2); } - sub_0806F69C(this); + LinearMoveUpdate(this); break; case 1: if ((this->parent == NULL) || (this->parent->next == NULL)) { diff --git a/src/projectile/v1FireProjectile.c b/src/projectile/v1FireProjectile.c index 6c7efb5e..013369fd 100644 --- a/src/projectile/v1FireProjectile.c +++ b/src/projectile/v1FireProjectile.c @@ -2,8 +2,6 @@ #include "enemy.h" #include "player.h" #include "functions.h" -#include "audio.h" -#include "asm.h" extern void sub_0806F5BC(Entity*, u32, u32); extern u32 sub_080041DC(Entity*, u32, u32); @@ -75,7 +73,7 @@ void V1FireProjectile_Init(Entity* this) { void V1FireProjectile_Action1(Entity* this) { GetNextFrame(this); - sub_0806F69C(this); + LinearMoveUpdate(this); if (GravityUpdate(this, 0) == 0) { this->action = 2; this->actionDelay = 0xf; diff --git a/src/projectile/v2Projectile.c b/src/projectile/v2Projectile.c index 0ed8e9cf..b2c1ae7b 100644 --- a/src/projectile/v2Projectile.c +++ b/src/projectile/v2Projectile.c @@ -2,9 +2,6 @@ #include "entity.h" #include "enemy.h" #include "functions.h" -#include "asm.h" -#include "audio.h" -#include "effects.h" extern void (*const V2Projectile_Functions[])(Entity*); extern void (*const gUnk_0812A7EC[])(Entity*); @@ -121,7 +118,7 @@ void sub_080ABF04(Entity* this) { if (CheckOnScreen(this) == 0) { DeleteThisEntity(); } - sub_0806F69C(this); + LinearMoveUpdate(this); GetNextFrame(this); } diff --git a/src/projectile/v3ElectricProjectile.c b/src/projectile/v3ElectricProjectile.c index 5dd25ca4..556cc709 100644 --- a/src/projectile/v3ElectricProjectile.c +++ b/src/projectile/v3ElectricProjectile.c @@ -1,9 +1,7 @@ #include "entity.h" #include "enemy.h" -#include "audio.h" #include "player.h" #include "coord.h" -#include "functions.h" extern s32 sub_080AF090(Entity*); extern s32 IsProjectileOffScreen(Entity*); diff --git a/src/projectile/v3HandProjectile.c b/src/projectile/v3HandProjectile.c index b965161c..d308b7d9 100644 --- a/src/projectile/v3HandProjectile.c +++ b/src/projectile/v3HandProjectile.c @@ -1,7 +1,6 @@ #include "entity.h" #include "enemy.h" #include "player.h" -#include "audio.h" extern s32 sub_080AF090(Entity*); extern s32 IsProjectileOffScreen(Entity*); diff --git a/src/projectile/v3TennisBallProjectile.c b/src/projectile/v3TennisBallProjectile.c index 7affd779..296c830b 100644 --- a/src/projectile/v3TennisBallProjectile.c +++ b/src/projectile/v3TennisBallProjectile.c @@ -1,8 +1,5 @@ #include "entity.h" #include "enemy.h" -#include "audio.h" -#include "functions.h" -#include "effects.h" extern s32 sub_080AF090(Entity*); extern s32 IsProjectileOffScreen(Entity*); diff --git a/src/projectile/windProjectile.c b/src/projectile/windProjectile.c index ff77862f..b5b1133b 100644 --- a/src/projectile/windProjectile.c +++ b/src/projectile/windProjectile.c @@ -1,7 +1,6 @@ #include "entity.h" #include "enemy.h" #include "functions.h" -#include "audio.h" extern s32 sub_080AF090(Entity*); extern s32 IsProjectileOffScreen(Entity*); diff --git a/src/room.c b/src/room.c index 629e05e6..dc8739d6 100644 --- a/src/room.c +++ b/src/room.c @@ -80,8 +80,8 @@ NONMATCH("asm/loadRoomEntity.s", Entity* LoadRoomEntity(EntityData* dat)) { v5->collisionLayer = 2; return v5; } - if ((gRoomControls.unk6 & 2) == 0) { - sub_08016A30(v5); + if ((gRoomControls.scroll_flags & 2) == 0) { + ResolveCollisionLayer(v5); } } v5->collisionLayer = 1; @@ -320,7 +320,7 @@ static void LoadSmallChestTile(TileEntity* tile) { for (i = 0; i < 8; ++i, ++t) { if (!t->_4) { MemCopy(tile, t, sizeof(TileEntity)); - if ((t->_6 & 1) && (gRoomControls.unk6 & 2) && !CheckLocalFlag(t->_1)) { + if ((t->_6 & 1) && (gRoomControls.scroll_flags & 2) && !CheckLocalFlag(t->_1)) { Entity* e = CreateObject(OBJECT_52, t->_1, 0); if (e != NULL) { sub_0806F704(e, t->_4); diff --git a/src/roomInit.c b/src/roomInit.c index c6ffda37..9b9c8612 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -4,7 +4,6 @@ #include "utils.h" #include "functions.h" -#include "structures.h" #include "audio.h" #include "effects.h" @@ -12,16 +11,11 @@ #include "flags.h" #include "item.h" #include "save.h" -#include "script.h" -#include "screen.h" #include "area.h" -#include "room.h" #include "overworld.h" -#include "entity.h" #include "npc.h" -#include "player.h" static void sub_0804E150(void); diff --git a/src/script.c b/src/script.c index c59c267b..4e573495 100644 --- a/src/script.c +++ b/src/script.c @@ -8,7 +8,6 @@ #include "npc.h" #include "functions.h" -#include "structures.h" void InitScriptForEntity(Entity*, ScriptExecutionContext*, u16*); void InitScriptExecutionContext(ScriptExecutionContext* context, u16* script); @@ -225,12 +224,12 @@ void StartPlayerScript(u16* script) { gPlayerState.field_0x38 = 0; } -ScriptExecutionContext* StartCutscene2(Entity* entity, u16* script) { +UNUSED ScriptExecutionContext* StartCutscene2(Entity* entity, u16* script) { ScriptExecutionContext* context; context = CreateScriptExecutionContext(); if (context) { - entity->flags |= 2; + entity->flags |= ENT_SCRIPTED; *(ScriptExecutionContext**)&entity->field_0x3c = context; context->scriptInstructionPointer = script; } @@ -457,7 +456,7 @@ void sub_0807DF50(void) { gUnk_02034490[0] = 0; gUnk_0200AF00.filler0[1] = 0; RecoverUI(0); - sub_080791D0(); + ResetPlayerAnimationAndAction(); sub_08079184(); } @@ -984,7 +983,7 @@ void ScriptCommand_WaitForPlayerEnterRoom(Entity* entity, ScriptExecutionContext } void ScriptCommand_WaitFor_1(Entity* entity, ScriptExecutionContext* context) { - if (gRoomControls.unk6 & 4) { + if (gRoomControls.scroll_flags & 4) { gActiveScriptInfo.commandSize = 0; } else { gActiveScriptInfo.flags |= 1; @@ -1293,7 +1292,7 @@ void ScriptCommand_WalkForward(Entity* entity, ScriptExecutionContext* context) } void sub_0807EC44(Entity* entity, ScriptExecutionContext* context) { - sub_0806F69C(entity); + LinearMoveUpdate(entity); if (--context->unk_12) { gActiveScriptInfo.commandSize = 0; } @@ -1890,8 +1889,6 @@ void sub_0807F78C(Entity* entity, ScriptExecutionContext* context) { void sub_0807F7C4(Entity* entity, ScriptExecutionContext* context) { u32 item = context->intVariable; - u32 msg; - u32 price; if (context->intVariable == 0) item = gRoomVars.shopItemType; @@ -1902,7 +1899,6 @@ void sub_0807F7C4(Entity* entity, ScriptExecutionContext* context) { void sub_0807F800(Entity* entity, ScriptExecutionContext* context) { u32 item = context->intVariable; - u32 msg; u32 price; if (context->intVariable == 0) diff --git a/src/sub_0807CA18.c b/src/sub_0807CA18.c index d74a54c3..9c823e2d 100644 --- a/src/sub_0807CA18.c +++ b/src/sub_0807CA18.c @@ -1,10 +1,8 @@ #include "global.h" -#include "structures.h" #include "save.h" #include "utils.h" extern void sub_0807C960(); -extern void LoadPalettes(const u8*, s32, s32); extern u16 gMetatilesBottom[]; extern u16 gMetatilesTop[]; diff --git a/src/sub_080A3B84.c b/src/sub_080A3B84.c index e796dff0..cbf667ea 100644 --- a/src/sub_080A3B84.c +++ b/src/sub_080A3B84.c @@ -1,7 +1,6 @@ #include "global.h" #include "functions.h" #include "menu.h" -#include "structures.h" #include "screen.h" extern void (*const gUnk_081280C4[])(); diff --git a/src/textbox.c b/src/textbox.c index 208f0f7c..f09ed255 100644 --- a/src/textbox.c +++ b/src/textbox.c @@ -1,11 +1,10 @@ #include "global.h" #include "audio.h" +#include "asm.h" #include "room.h" -#include "entity.h" #include "utils.h" #include "functions.h" #include "textbox.h" -#include "structures.h" #include "save.h" #define MESSAGE_ADVANCE_KEYS (A_BUTTON | B_BUTTON | DPAD_ANY | R_BUTTON) From 3fd900f1bc81cbaf106de17f5b8d41e26de682a8 Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 28 Dec 2021 13:53:53 -0800 Subject: [PATCH 057/168] rename files, sort asm into subdirectories --- Makefile | 2 +- asm/{ => enemy}/armos.s | 0 asm/{ => enemy}/ballChainSoldier.s | 0 asm/{ => enemy}/bombarossa.s | 0 asm/{ => enemy}/bowMoblin.s | 0 asm/{ => enemy}/businessScrubPrologue.s | 0 asm/{ => enemy}/chuchuBoss.s | 0 asm/{ => enemy}/cloudPiranha.s | 0 asm/{ => enemy}/code_080300AC.s | 0 asm/{ => enemy}/crow.s | 0 asm/{ => enemy}/cuccoAggr.s | 0 asm/{ => enemy}/curtain.s | 0 asm/{ => enemy}/dust.s | 0 asm/{ => enemy}/enemy49.s | 0 asm/{ => enemy}/enemy4D.s | 0 asm/{ => enemy}/enemy50.s | 0 asm/{ => enemy}/enemy62.s | 0 asm/{ => enemy}/enemy64.s | 0 asm/{ => enemy}/enemy66.s | 0 asm/{ => enemy}/eyegore.s | 0 asm/{ => enemy}/flyingPot.s | 0 asm/{ => enemy}/flyingSkull.s | 0 asm/{ => enemy}/ghini.s | 0 asm/{ => enemy}/gleerok.s | 0 asm/{ => enemy}/gyorgChild.s | 0 asm/{ => enemy}/gyorgFemale.s | 0 asm/{ => enemy}/gyorgFemaleEye.s | 0 asm/{ => enemy}/gyorgFemaleMouth.s | 0 asm/{ => enemy}/mulldozer.s | 0 asm/{ => enemy}/octorokGolden.s | 0 asm/{ => enemy}/scissorsBeetle.s | 0 asm/{ => enemy}/spinyBeetle.s | 0 asm/{ => enemy}/stalfos.s | 0 asm/{ => enemy}/sub_080451CC.s | 0 asm/{ => enemy}/takkuri.s | 0 asm/{ => enemy}/wizzrobeFire.s | 0 asm/{ => enemy}/wizzrobeIce.s | 0 asm/{ => enemy}/wizzrobeWind.s | 0 asm/{ => object}/ambientClouds.s | 0 asm/{ => object}/angryStatue.s | 0 asm/{ => object}/barrelInside.s | 0 asm/{ => object}/beanstalk.s | 0 asm/{ => object}/bigBarrel.s | 0 asm/{ => object}/bigIceBlock.s | 0 asm/{ => object}/bigPushableLever.s | 0 asm/{ => object}/bird.s | 0 asm/{ => object}/blockPushed.s | 0 asm/{ => object}/board.s | 0 asm/{ => object}/bollard.s | 0 asm/{ => object}/bossDoor.s | 0 asm/{ => object}/cabinFurniture.s | 0 asm/{ => object}/chestSpawner.s | 0 asm/{ => object}/code_0808C964.s | 0 asm/{ => object}/crenalBeanSprout.s | 0 asm/{ => object}/deathFx.s | 0 asm/{ => object}/doubleBookshelf.s | 0 asm/{ => object}/enemyItem.s | 0 asm/{ => object}/evilSpirit.s | 0 asm/{ => object}/eyeSwitch.s | 0 asm/{ => object}/ezloCap.s | 0 asm/{ => object}/fairy.s | 0 asm/{ => object}/fan.s | 0 asm/{ => object}/figurineDevice.s | 0 asm/{ => object}/fireballChain.s | 0 asm/{ => object}/floatingPlatform.s | 0 asm/{ => object}/fourElements.s | 0 asm/{ => object}/frozenWaterElement.s | 0 asm/{ => object}/gentariCurtains.s | 0 asm/{ => object}/giantBookLadder.s | 0 asm/{ => object}/giantRock.s | 0 asm/{ => object}/giantRock2.s | 0 asm/{ => object}/giantTwig.s | 0 asm/{ => object}/gyorgBossObject.s | 0 asm/{ => object}/hittableLever.s | 0 asm/{ => object}/houseDoorInterior.s | 0 asm/{ => object}/itemForSale.s | 0 asm/{ => object}/ladderHoleInBookshelf.s | 0 asm/{ => object}/ladderUp.s | 0 asm/{ => object}/lamp.s | 0 asm/{ => object}/lavaPlatform.s | 0 asm/{ => object}/lilypadLarge.s | 0 asm/{ => object}/litArea.s | 0 asm/{ => object}/macroAcorn.s | 0 asm/{ => object}/macroBook.s | 0 asm/{ => object}/macroDecorations.s | 0 asm/{ => object}/macroMushroomStalks.s | 0 asm/{ => object}/macroPlayer.s | 0 asm/{ => object}/macroShoes.s | 0 asm/{ => object}/mazaalBossObject.s | 0 asm/{ => object}/minecart.s | 0 asm/{ => object}/minecartDoor.s | 0 asm/{ => object}/minishEmoticon.s | 0 asm/{ => object}/object10.s | 0 asm/{ => object}/object11.s | 0 asm/{ => object}/object12.s | 0 asm/{ => object}/object15.s | 0 asm/{ => object}/object17.s | 0 asm/{ => object}/object1E.s | 0 asm/{ => object}/object1F.s | 0 asm/{ => object}/object20.s | 0 asm/{ => object}/object21.s | 0 asm/{ => object}/object28.s | 0 asm/{ => object}/object2A.s | 0 asm/{ => object}/object2B.s | 0 asm/{ => object}/object30.s | 0 asm/{ => object}/object35.s | 0 asm/{ => object}/object36.s | 0 asm/{ => object}/object37.s | 0 asm/{ => object}/object3A.s | 0 asm/{ => object}/object3D.s | 0 asm/{ => object}/object3E.s | 0 asm/{ => object}/object42.s | 0 asm/{ => object}/object43.s | 0 asm/{ => object}/object44.s | 0 asm/{ => object}/object45.s | 0 asm/{ => object}/object4B.s | 0 asm/{ => object}/object52.s | 0 asm/{ => object}/object53.s | 0 asm/{ => object}/object5B.s | 0 asm/{ => object}/object61.s | 0 asm/{ => object}/object63.s | 0 asm/{ => object}/object64.s | 0 asm/{ => object}/object66.s | 0 asm/{ => object}/object67.s | 0 asm/{ => object}/object68.s | 0 asm/{ => object}/object69.s | 0 asm/{ => object}/object70.s | 0 asm/{ => object}/object74.s | 0 asm/{ => object}/object75.s | 0 asm/{ => object}/object76.s | 0 asm/{ => object}/object79.s | 0 asm/{ => object}/object81.s | 0 asm/{ => object}/object8E.s | 0 asm/{ => object}/object9.s | 0 asm/{ => object}/object90.s | 0 asm/{ => object}/object91.s | 0 asm/{ => object}/object96.s | 0 asm/{ => object}/object97.s | 0 asm/{ => object}/object98.s | 0 asm/{ => object}/object99.s | 0 asm/{ => object}/object9B.s | 0 asm/{ => object}/objectA6.s | 0 asm/{ => object}/objectA7.s | 0 asm/{ => object}/objectA8.s | 0 asm/{ => object}/objectA9.s | 0 asm/{ => object}/objectAB.s | 0 asm/{ => object}/objectAD.s | 0 asm/{ => object}/objectB.s | 0 asm/{ => object}/objectB3.s | 0 asm/{ => object}/objectB4.s | 0 asm/{ => object}/objectB6.s | 0 asm/{ => object}/objectB9.s | 0 asm/{ => object}/objectBD.s | 0 asm/{ => object}/objectBF.s | 0 asm/{ => object}/objectBlockingStairs.s | 0 asm/{ => object}/objectC1.s | 0 asm/{ => object}/objectD.s | 0 asm/{ => object}/objectE.s | 0 asm/{ => object}/objectOnPillar.s | 0 asm/{ => object}/objectOnSpinyBeetle.s | 0 asm/{ => object}/paper.s | 0 asm/{ => object}/picoBloom.s | 0 asm/{ => object}/pressurePlate.s | 0 asm/{ => object}/pullableLever.s | 0 asm/{ => object}/pullableMushroom.s | 0 asm/{ => object}/pushableFurniture.s | 0 asm/{ => object}/pushableGrave.s | 0 asm/{ => object}/pushableLever.s | 0 asm/{ => object}/pushableRock.s | 0 asm/{ => object}/pushableStatue.s | 0 asm/{ => object}/smallIceBlock.s | 0 asm/{ => object}/specialFx.s | 0 asm/{ => object}/steam.s | 0 asm/{ => object}/stoneTablet.s | 0 asm/{ => object}/treeHidingPortal.s | 0 asm/{ => object}/waterfallOpening.s | 0 asm/{ => object}/whirlwind.s | 0 asm/{ => object}/windTribeTeleporter.s | 0 include/enemy.h | 2 +- include/fileScreen.h | 2 +- include/{overworld.h => game.h} | 6 +- include/{textbox.h => message.h} | 6 +- include/npc.h | 4 +- include/object.h | 2 +- include/{audio.h => sound.h} | 6 +- linker.ld | 370 +++++++++++------------ src/code_0808091C.c | 2 +- src/code_080A29BC.c | 58 ---- src/collision.c | 2 +- src/coord.c | 2 +- src/debugScreen.c | 4 +- src/demoScreen.c | 2 +- src/enemy/bladeTrap.c | 2 +- src/enemy/bobomb.c | 2 +- src/enemy/businessScrub.c | 4 +- src/{ => enemy}/code_080300AC.c | 0 src/enemy/doorMimic.c | 2 +- src/enemy/likeLike.c | 2 +- src/enemy/octorokBoss.c | 2 +- src/enemy/pesto.c | 2 +- src/enemy/rupeeLike.c | 2 +- src/enemy/vaatiTransfiguredEye.c | 2 +- src/enemy/vaatiWrath.c | 2 +- src/entity.c | 2 +- src/ezloNag.c | 4 +- src/fileScreen.c | 2 +- src/{overworld.c => game.c} | 6 +- src/interrupts.c | 4 +- src/intro.c | 4 +- src/item/itemBomb.c | 2 +- src/item/itemLantern.c | 2 +- src/item/itemMoleMitts.c | 2 +- src/item/itemOcarina.c | 2 +- src/item/itemPegasusBoots.c | 2 +- src/item/itemRocsCape.c | 2 +- src/item/itemSword.c | 2 +- src/main.c | 4 +- src/manager/manager10.c | 2 +- src/manager/manager15.c | 2 +- src/manager/manager23.c | 2 +- src/manager/manager24.c | 4 +- src/manager/manager27.c | 2 +- src/manager/manager2E.c | 2 +- src/manager/manager3.c | 2 +- src/manager/manager30.c | 2 +- src/manager/manager32.c | 2 +- src/manager/manager33.c | 2 +- src/manager/manager34.c | 2 +- src/manager/manager36.c | 2 +- src/manager/manager37.c | 4 +- src/manager/manager39.c | 4 +- src/manager/manager5.c | 2 +- src/manager/managerB.c | 2 +- src/manager/managerC.c | 2 +- src/manager/managerE.c | 2 +- src/manager/managerF.c | 4 +- src/{textbox.c => message.c} | 4 +- src/npc/beedle.c | 4 +- src/npc/bladeBrothers.c | 2 +- src/npc/brocco.c | 2 +- src/npc/carlov.c | 2 +- src/npc/castleMaid.c | 2 +- src/npc/castorWildsStatue.c | 2 +- src/npc/cat.c | 2 +- src/npc/cow.c | 2 +- src/npc/dampe.c | 2 +- src/npc/epona.c | 4 +- src/npc/ghostBrothers.c | 2 +- src/npc/goron.c | 2 +- src/npc/goronMerchant.c | 2 +- src/npc/guard.c | 2 +- src/npc/kid.c | 2 +- src/npc/librarians.c | 4 +- src/npc/mailbox.c | 2 +- src/npc/marcy.c | 2 +- src/npc/minishEzlo.c | 2 +- src/npc/ministerPotho.c | 2 +- src/npc/mountainMinish.c | 2 +- src/npc/mutoh.c | 2 +- src/npc/npc23.c | 2 +- src/npc/npc4E.c | 2 +- src/npc/npc5.c | 2 +- src/npc/npc9.c | 2 +- src/npc/picolyteBottle.c | 2 +- src/npc/pina.c | 2 +- src/npc/postman.c | 2 +- src/npc/simon.c | 2 +- src/npc/stamp.c | 2 +- src/npc/stockwell.c | 2 +- src/npc/vaati.c | 2 +- src/npc/windTribespeople.c | 2 +- src/npc/zelda.c | 2 +- src/object/archway.c | 2 +- src/object/book.c | 2 +- src/object/heartContainer.c | 2 +- src/object/houseDoorExterior.c | 2 +- src/object/itemOnGround.c | 2 +- src/object/jailBars.c | 2 +- src/object/lightableSwitch.c | 2 +- src/object/lockedDoor.c | 4 +- src/object/metalDoor.c | 2 +- src/object/minishSizedArchway.c | 2 +- src/object/minishSizedEntrance.c | 2 +- src/object/object2A.c | 2 +- src/object/object6A.c | 2 +- src/object/objectA.c | 2 +- src/object/octorokBossObject.c | 2 +- src/object/pot.c | 2 +- src/object/railtrack.c | 2 +- src/object/swordsmanNewsletter.c | 2 +- src/object/thoughtBubble.c | 2 +- src/object/treeHidingPortal.c | 2 +- src/object/warpPoint.c | 2 +- src/object/windcrest.c | 2 +- src/player.c | 6 +- src/playerItem/playerItem11.c | 2 +- src/playerItem/playerItem12.c | 2 +- src/playerItem/playerItem14.c | 2 +- src/playerItem/playerItem15.c | 2 +- src/playerItem/playerItem3.c | 2 +- src/playerItem/playerItemPacciCane.c | 2 +- src/playerItem/playerItemSwordBeam.c | 2 +- src/playerItemUtils.c | 4 +- src/projectile/dirtBallProjectile.c | 2 +- src/projectile/gyorgTail.c | 2 +- src/projectile/mandiblesProjectile.c | 2 +- src/projectile/mazaalEnergyBeam.c | 2 +- src/room.c | 2 +- src/roomInit.c | 4 +- src/save.c | 4 +- src/script.c | 2 +- src/{code_0807CC3C.c => scroll.c} | 1 - src/{audio.c => sound.c} | 2 +- 313 files changed, 346 insertions(+), 405 deletions(-) rename asm/{ => enemy}/armos.s (100%) rename asm/{ => enemy}/ballChainSoldier.s (100%) rename asm/{ => enemy}/bombarossa.s (100%) rename asm/{ => enemy}/bowMoblin.s (100%) rename asm/{ => enemy}/businessScrubPrologue.s (100%) rename asm/{ => enemy}/chuchuBoss.s (100%) rename asm/{ => enemy}/cloudPiranha.s (100%) rename asm/{ => enemy}/code_080300AC.s (100%) rename asm/{ => enemy}/crow.s (100%) rename asm/{ => enemy}/cuccoAggr.s (100%) rename asm/{ => enemy}/curtain.s (100%) rename asm/{ => enemy}/dust.s (100%) rename asm/{ => enemy}/enemy49.s (100%) rename asm/{ => enemy}/enemy4D.s (100%) rename asm/{ => enemy}/enemy50.s (100%) rename asm/{ => enemy}/enemy62.s (100%) rename asm/{ => enemy}/enemy64.s (100%) rename asm/{ => enemy}/enemy66.s (100%) rename asm/{ => enemy}/eyegore.s (100%) rename asm/{ => enemy}/flyingPot.s (100%) rename asm/{ => enemy}/flyingSkull.s (100%) rename asm/{ => enemy}/ghini.s (100%) rename asm/{ => enemy}/gleerok.s (100%) rename asm/{ => enemy}/gyorgChild.s (100%) rename asm/{ => enemy}/gyorgFemale.s (100%) rename asm/{ => enemy}/gyorgFemaleEye.s (100%) rename asm/{ => enemy}/gyorgFemaleMouth.s (100%) rename asm/{ => enemy}/mulldozer.s (100%) rename asm/{ => enemy}/octorokGolden.s (100%) rename asm/{ => enemy}/scissorsBeetle.s (100%) rename asm/{ => enemy}/spinyBeetle.s (100%) rename asm/{ => enemy}/stalfos.s (100%) rename asm/{ => enemy}/sub_080451CC.s (100%) rename asm/{ => enemy}/takkuri.s (100%) rename asm/{ => enemy}/wizzrobeFire.s (100%) rename asm/{ => enemy}/wizzrobeIce.s (100%) rename asm/{ => enemy}/wizzrobeWind.s (100%) rename asm/{ => object}/ambientClouds.s (100%) rename asm/{ => object}/angryStatue.s (100%) rename asm/{ => object}/barrelInside.s (100%) rename asm/{ => object}/beanstalk.s (100%) rename asm/{ => object}/bigBarrel.s (100%) rename asm/{ => object}/bigIceBlock.s (100%) rename asm/{ => object}/bigPushableLever.s (100%) rename asm/{ => object}/bird.s (100%) rename asm/{ => object}/blockPushed.s (100%) rename asm/{ => object}/board.s (100%) rename asm/{ => object}/bollard.s (100%) rename asm/{ => object}/bossDoor.s (100%) rename asm/{ => object}/cabinFurniture.s (100%) rename asm/{ => object}/chestSpawner.s (100%) rename asm/{ => object}/code_0808C964.s (100%) rename asm/{ => object}/crenalBeanSprout.s (100%) rename asm/{ => object}/deathFx.s (100%) rename asm/{ => object}/doubleBookshelf.s (100%) rename asm/{ => object}/enemyItem.s (100%) rename asm/{ => object}/evilSpirit.s (100%) rename asm/{ => object}/eyeSwitch.s (100%) rename asm/{ => object}/ezloCap.s (100%) rename asm/{ => object}/fairy.s (100%) rename asm/{ => object}/fan.s (100%) rename asm/{ => object}/figurineDevice.s (100%) rename asm/{ => object}/fireballChain.s (100%) rename asm/{ => object}/floatingPlatform.s (100%) rename asm/{ => object}/fourElements.s (100%) rename asm/{ => object}/frozenWaterElement.s (100%) rename asm/{ => object}/gentariCurtains.s (100%) rename asm/{ => object}/giantBookLadder.s (100%) rename asm/{ => object}/giantRock.s (100%) rename asm/{ => object}/giantRock2.s (100%) rename asm/{ => object}/giantTwig.s (100%) rename asm/{ => object}/gyorgBossObject.s (100%) rename asm/{ => object}/hittableLever.s (100%) rename asm/{ => object}/houseDoorInterior.s (100%) rename asm/{ => object}/itemForSale.s (100%) rename asm/{ => object}/ladderHoleInBookshelf.s (100%) rename asm/{ => object}/ladderUp.s (100%) rename asm/{ => object}/lamp.s (100%) rename asm/{ => object}/lavaPlatform.s (100%) rename asm/{ => object}/lilypadLarge.s (100%) rename asm/{ => object}/litArea.s (100%) rename asm/{ => object}/macroAcorn.s (100%) rename asm/{ => object}/macroBook.s (100%) rename asm/{ => object}/macroDecorations.s (100%) rename asm/{ => object}/macroMushroomStalks.s (100%) rename asm/{ => object}/macroPlayer.s (100%) rename asm/{ => object}/macroShoes.s (100%) rename asm/{ => object}/mazaalBossObject.s (100%) rename asm/{ => object}/minecart.s (100%) rename asm/{ => object}/minecartDoor.s (100%) rename asm/{ => object}/minishEmoticon.s (100%) rename asm/{ => object}/object10.s (100%) rename asm/{ => object}/object11.s (100%) rename asm/{ => object}/object12.s (100%) rename asm/{ => object}/object15.s (100%) rename asm/{ => object}/object17.s (100%) rename asm/{ => object}/object1E.s (100%) rename asm/{ => object}/object1F.s (100%) rename asm/{ => object}/object20.s (100%) rename asm/{ => object}/object21.s (100%) rename asm/{ => object}/object28.s (100%) rename asm/{ => object}/object2A.s (100%) rename asm/{ => object}/object2B.s (100%) rename asm/{ => object}/object30.s (100%) rename asm/{ => object}/object35.s (100%) rename asm/{ => object}/object36.s (100%) rename asm/{ => object}/object37.s (100%) rename asm/{ => object}/object3A.s (100%) rename asm/{ => object}/object3D.s (100%) rename asm/{ => object}/object3E.s (100%) rename asm/{ => object}/object42.s (100%) rename asm/{ => object}/object43.s (100%) rename asm/{ => object}/object44.s (100%) rename asm/{ => object}/object45.s (100%) rename asm/{ => object}/object4B.s (100%) rename asm/{ => object}/object52.s (100%) rename asm/{ => object}/object53.s (100%) rename asm/{ => object}/object5B.s (100%) rename asm/{ => object}/object61.s (100%) rename asm/{ => object}/object63.s (100%) rename asm/{ => object}/object64.s (100%) rename asm/{ => object}/object66.s (100%) rename asm/{ => object}/object67.s (100%) rename asm/{ => object}/object68.s (100%) rename asm/{ => object}/object69.s (100%) rename asm/{ => object}/object70.s (100%) rename asm/{ => object}/object74.s (100%) rename asm/{ => object}/object75.s (100%) rename asm/{ => object}/object76.s (100%) rename asm/{ => object}/object79.s (100%) rename asm/{ => object}/object81.s (100%) rename asm/{ => object}/object8E.s (100%) rename asm/{ => object}/object9.s (100%) rename asm/{ => object}/object90.s (100%) rename asm/{ => object}/object91.s (100%) rename asm/{ => object}/object96.s (100%) rename asm/{ => object}/object97.s (100%) rename asm/{ => object}/object98.s (100%) rename asm/{ => object}/object99.s (100%) rename asm/{ => object}/object9B.s (100%) rename asm/{ => object}/objectA6.s (100%) rename asm/{ => object}/objectA7.s (100%) rename asm/{ => object}/objectA8.s (100%) rename asm/{ => object}/objectA9.s (100%) rename asm/{ => object}/objectAB.s (100%) rename asm/{ => object}/objectAD.s (100%) rename asm/{ => object}/objectB.s (100%) rename asm/{ => object}/objectB3.s (100%) rename asm/{ => object}/objectB4.s (100%) rename asm/{ => object}/objectB6.s (100%) rename asm/{ => object}/objectB9.s (100%) rename asm/{ => object}/objectBD.s (100%) rename asm/{ => object}/objectBF.s (100%) rename asm/{ => object}/objectBlockingStairs.s (100%) rename asm/{ => object}/objectC1.s (100%) rename asm/{ => object}/objectD.s (100%) rename asm/{ => object}/objectE.s (100%) rename asm/{ => object}/objectOnPillar.s (100%) rename asm/{ => object}/objectOnSpinyBeetle.s (100%) rename asm/{ => object}/paper.s (100%) rename asm/{ => object}/picoBloom.s (100%) rename asm/{ => object}/pressurePlate.s (100%) rename asm/{ => object}/pullableLever.s (100%) rename asm/{ => object}/pullableMushroom.s (100%) rename asm/{ => object}/pushableFurniture.s (100%) rename asm/{ => object}/pushableGrave.s (100%) rename asm/{ => object}/pushableLever.s (100%) rename asm/{ => object}/pushableRock.s (100%) rename asm/{ => object}/pushableStatue.s (100%) rename asm/{ => object}/smallIceBlock.s (100%) rename asm/{ => object}/specialFx.s (100%) rename asm/{ => object}/steam.s (100%) rename asm/{ => object}/stoneTablet.s (100%) rename asm/{ => object}/treeHidingPortal.s (100%) rename asm/{ => object}/waterfallOpening.s (100%) rename asm/{ => object}/whirlwind.s (100%) rename asm/{ => object}/windTribeTeleporter.s (100%) rename include/{overworld.h => game.h} (95%) rename include/{textbox.h => message.h} (97%) rename include/{audio.h => sound.h} (99%) delete mode 100644 src/code_080A29BC.c rename src/{ => enemy}/code_080300AC.c (100%) rename src/{overworld.c => game.c} (99%) rename src/{textbox.c => message.c} (99%) rename src/{code_0807CC3C.c => scroll.c} (74%) rename src/{audio.c => sound.c} (99%) diff --git a/Makefile b/Makefile index ddd26c61..d9d5f42d 100644 --- a/Makefile +++ b/Makefile @@ -131,7 +131,7 @@ C_SRCS := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c) C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s $(ASM_SUBDIR)/*/*.s) -ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS)) +ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS)) $(patsubst $(ASM_SUBDIR)/*/%.s,$(ASM_BUILDDIR)/**/%.o,$(ASM_SRCS)) DATA_ASM_SRCS := $(wildcard $(DATA_ASM_SUBDIR)/*.s $(DATA_ASM_SUBDIR)/**/*.s $(DATA_ASM_SUBDIR)/**/**/*.s) DATA_ASM_OBJS := $(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o,$(DATA_ASM_SRCS)) diff --git a/asm/armos.s b/asm/enemy/armos.s similarity index 100% rename from asm/armos.s rename to asm/enemy/armos.s diff --git a/asm/ballChainSoldier.s b/asm/enemy/ballChainSoldier.s similarity index 100% rename from asm/ballChainSoldier.s rename to asm/enemy/ballChainSoldier.s diff --git a/asm/bombarossa.s b/asm/enemy/bombarossa.s similarity index 100% rename from asm/bombarossa.s rename to asm/enemy/bombarossa.s diff --git a/asm/bowMoblin.s b/asm/enemy/bowMoblin.s similarity index 100% rename from asm/bowMoblin.s rename to asm/enemy/bowMoblin.s diff --git a/asm/businessScrubPrologue.s b/asm/enemy/businessScrubPrologue.s similarity index 100% rename from asm/businessScrubPrologue.s rename to asm/enemy/businessScrubPrologue.s diff --git a/asm/chuchuBoss.s b/asm/enemy/chuchuBoss.s similarity index 100% rename from asm/chuchuBoss.s rename to asm/enemy/chuchuBoss.s diff --git a/asm/cloudPiranha.s b/asm/enemy/cloudPiranha.s similarity index 100% rename from asm/cloudPiranha.s rename to asm/enemy/cloudPiranha.s diff --git a/asm/code_080300AC.s b/asm/enemy/code_080300AC.s similarity index 100% rename from asm/code_080300AC.s rename to asm/enemy/code_080300AC.s diff --git a/asm/crow.s b/asm/enemy/crow.s similarity index 100% rename from asm/crow.s rename to asm/enemy/crow.s diff --git a/asm/cuccoAggr.s b/asm/enemy/cuccoAggr.s similarity index 100% rename from asm/cuccoAggr.s rename to asm/enemy/cuccoAggr.s diff --git a/asm/curtain.s b/asm/enemy/curtain.s similarity index 100% rename from asm/curtain.s rename to asm/enemy/curtain.s diff --git a/asm/dust.s b/asm/enemy/dust.s similarity index 100% rename from asm/dust.s rename to asm/enemy/dust.s diff --git a/asm/enemy49.s b/asm/enemy/enemy49.s similarity index 100% rename from asm/enemy49.s rename to asm/enemy/enemy49.s diff --git a/asm/enemy4D.s b/asm/enemy/enemy4D.s similarity index 100% rename from asm/enemy4D.s rename to asm/enemy/enemy4D.s diff --git a/asm/enemy50.s b/asm/enemy/enemy50.s similarity index 100% rename from asm/enemy50.s rename to asm/enemy/enemy50.s diff --git a/asm/enemy62.s b/asm/enemy/enemy62.s similarity index 100% rename from asm/enemy62.s rename to asm/enemy/enemy62.s diff --git a/asm/enemy64.s b/asm/enemy/enemy64.s similarity index 100% rename from asm/enemy64.s rename to asm/enemy/enemy64.s diff --git a/asm/enemy66.s b/asm/enemy/enemy66.s similarity index 100% rename from asm/enemy66.s rename to asm/enemy/enemy66.s diff --git a/asm/eyegore.s b/asm/enemy/eyegore.s similarity index 100% rename from asm/eyegore.s rename to asm/enemy/eyegore.s diff --git a/asm/flyingPot.s b/asm/enemy/flyingPot.s similarity index 100% rename from asm/flyingPot.s rename to asm/enemy/flyingPot.s diff --git a/asm/flyingSkull.s b/asm/enemy/flyingSkull.s similarity index 100% rename from asm/flyingSkull.s rename to asm/enemy/flyingSkull.s diff --git a/asm/ghini.s b/asm/enemy/ghini.s similarity index 100% rename from asm/ghini.s rename to asm/enemy/ghini.s diff --git a/asm/gleerok.s b/asm/enemy/gleerok.s similarity index 100% rename from asm/gleerok.s rename to asm/enemy/gleerok.s diff --git a/asm/gyorgChild.s b/asm/enemy/gyorgChild.s similarity index 100% rename from asm/gyorgChild.s rename to asm/enemy/gyorgChild.s diff --git a/asm/gyorgFemale.s b/asm/enemy/gyorgFemale.s similarity index 100% rename from asm/gyorgFemale.s rename to asm/enemy/gyorgFemale.s diff --git a/asm/gyorgFemaleEye.s b/asm/enemy/gyorgFemaleEye.s similarity index 100% rename from asm/gyorgFemaleEye.s rename to asm/enemy/gyorgFemaleEye.s diff --git a/asm/gyorgFemaleMouth.s b/asm/enemy/gyorgFemaleMouth.s similarity index 100% rename from asm/gyorgFemaleMouth.s rename to asm/enemy/gyorgFemaleMouth.s diff --git a/asm/mulldozer.s b/asm/enemy/mulldozer.s similarity index 100% rename from asm/mulldozer.s rename to asm/enemy/mulldozer.s diff --git a/asm/octorokGolden.s b/asm/enemy/octorokGolden.s similarity index 100% rename from asm/octorokGolden.s rename to asm/enemy/octorokGolden.s diff --git a/asm/scissorsBeetle.s b/asm/enemy/scissorsBeetle.s similarity index 100% rename from asm/scissorsBeetle.s rename to asm/enemy/scissorsBeetle.s diff --git a/asm/spinyBeetle.s b/asm/enemy/spinyBeetle.s similarity index 100% rename from asm/spinyBeetle.s rename to asm/enemy/spinyBeetle.s diff --git a/asm/stalfos.s b/asm/enemy/stalfos.s similarity index 100% rename from asm/stalfos.s rename to asm/enemy/stalfos.s diff --git a/asm/sub_080451CC.s b/asm/enemy/sub_080451CC.s similarity index 100% rename from asm/sub_080451CC.s rename to asm/enemy/sub_080451CC.s diff --git a/asm/takkuri.s b/asm/enemy/takkuri.s similarity index 100% rename from asm/takkuri.s rename to asm/enemy/takkuri.s diff --git a/asm/wizzrobeFire.s b/asm/enemy/wizzrobeFire.s similarity index 100% rename from asm/wizzrobeFire.s rename to asm/enemy/wizzrobeFire.s diff --git a/asm/wizzrobeIce.s b/asm/enemy/wizzrobeIce.s similarity index 100% rename from asm/wizzrobeIce.s rename to asm/enemy/wizzrobeIce.s diff --git a/asm/wizzrobeWind.s b/asm/enemy/wizzrobeWind.s similarity index 100% rename from asm/wizzrobeWind.s rename to asm/enemy/wizzrobeWind.s diff --git a/asm/ambientClouds.s b/asm/object/ambientClouds.s similarity index 100% rename from asm/ambientClouds.s rename to asm/object/ambientClouds.s diff --git a/asm/angryStatue.s b/asm/object/angryStatue.s similarity index 100% rename from asm/angryStatue.s rename to asm/object/angryStatue.s diff --git a/asm/barrelInside.s b/asm/object/barrelInside.s similarity index 100% rename from asm/barrelInside.s rename to asm/object/barrelInside.s diff --git a/asm/beanstalk.s b/asm/object/beanstalk.s similarity index 100% rename from asm/beanstalk.s rename to asm/object/beanstalk.s diff --git a/asm/bigBarrel.s b/asm/object/bigBarrel.s similarity index 100% rename from asm/bigBarrel.s rename to asm/object/bigBarrel.s diff --git a/asm/bigIceBlock.s b/asm/object/bigIceBlock.s similarity index 100% rename from asm/bigIceBlock.s rename to asm/object/bigIceBlock.s diff --git a/asm/bigPushableLever.s b/asm/object/bigPushableLever.s similarity index 100% rename from asm/bigPushableLever.s rename to asm/object/bigPushableLever.s diff --git a/asm/bird.s b/asm/object/bird.s similarity index 100% rename from asm/bird.s rename to asm/object/bird.s diff --git a/asm/blockPushed.s b/asm/object/blockPushed.s similarity index 100% rename from asm/blockPushed.s rename to asm/object/blockPushed.s diff --git a/asm/board.s b/asm/object/board.s similarity index 100% rename from asm/board.s rename to asm/object/board.s diff --git a/asm/bollard.s b/asm/object/bollard.s similarity index 100% rename from asm/bollard.s rename to asm/object/bollard.s diff --git a/asm/bossDoor.s b/asm/object/bossDoor.s similarity index 100% rename from asm/bossDoor.s rename to asm/object/bossDoor.s diff --git a/asm/cabinFurniture.s b/asm/object/cabinFurniture.s similarity index 100% rename from asm/cabinFurniture.s rename to asm/object/cabinFurniture.s diff --git a/asm/chestSpawner.s b/asm/object/chestSpawner.s similarity index 100% rename from asm/chestSpawner.s rename to asm/object/chestSpawner.s diff --git a/asm/code_0808C964.s b/asm/object/code_0808C964.s similarity index 100% rename from asm/code_0808C964.s rename to asm/object/code_0808C964.s diff --git a/asm/crenalBeanSprout.s b/asm/object/crenalBeanSprout.s similarity index 100% rename from asm/crenalBeanSprout.s rename to asm/object/crenalBeanSprout.s diff --git a/asm/deathFx.s b/asm/object/deathFx.s similarity index 100% rename from asm/deathFx.s rename to asm/object/deathFx.s diff --git a/asm/doubleBookshelf.s b/asm/object/doubleBookshelf.s similarity index 100% rename from asm/doubleBookshelf.s rename to asm/object/doubleBookshelf.s diff --git a/asm/enemyItem.s b/asm/object/enemyItem.s similarity index 100% rename from asm/enemyItem.s rename to asm/object/enemyItem.s diff --git a/asm/evilSpirit.s b/asm/object/evilSpirit.s similarity index 100% rename from asm/evilSpirit.s rename to asm/object/evilSpirit.s diff --git a/asm/eyeSwitch.s b/asm/object/eyeSwitch.s similarity index 100% rename from asm/eyeSwitch.s rename to asm/object/eyeSwitch.s diff --git a/asm/ezloCap.s b/asm/object/ezloCap.s similarity index 100% rename from asm/ezloCap.s rename to asm/object/ezloCap.s diff --git a/asm/fairy.s b/asm/object/fairy.s similarity index 100% rename from asm/fairy.s rename to asm/object/fairy.s diff --git a/asm/fan.s b/asm/object/fan.s similarity index 100% rename from asm/fan.s rename to asm/object/fan.s diff --git a/asm/figurineDevice.s b/asm/object/figurineDevice.s similarity index 100% rename from asm/figurineDevice.s rename to asm/object/figurineDevice.s diff --git a/asm/fireballChain.s b/asm/object/fireballChain.s similarity index 100% rename from asm/fireballChain.s rename to asm/object/fireballChain.s diff --git a/asm/floatingPlatform.s b/asm/object/floatingPlatform.s similarity index 100% rename from asm/floatingPlatform.s rename to asm/object/floatingPlatform.s diff --git a/asm/fourElements.s b/asm/object/fourElements.s similarity index 100% rename from asm/fourElements.s rename to asm/object/fourElements.s diff --git a/asm/frozenWaterElement.s b/asm/object/frozenWaterElement.s similarity index 100% rename from asm/frozenWaterElement.s rename to asm/object/frozenWaterElement.s diff --git a/asm/gentariCurtains.s b/asm/object/gentariCurtains.s similarity index 100% rename from asm/gentariCurtains.s rename to asm/object/gentariCurtains.s diff --git a/asm/giantBookLadder.s b/asm/object/giantBookLadder.s similarity index 100% rename from asm/giantBookLadder.s rename to asm/object/giantBookLadder.s diff --git a/asm/giantRock.s b/asm/object/giantRock.s similarity index 100% rename from asm/giantRock.s rename to asm/object/giantRock.s diff --git a/asm/giantRock2.s b/asm/object/giantRock2.s similarity index 100% rename from asm/giantRock2.s rename to asm/object/giantRock2.s diff --git a/asm/giantTwig.s b/asm/object/giantTwig.s similarity index 100% rename from asm/giantTwig.s rename to asm/object/giantTwig.s diff --git a/asm/gyorgBossObject.s b/asm/object/gyorgBossObject.s similarity index 100% rename from asm/gyorgBossObject.s rename to asm/object/gyorgBossObject.s diff --git a/asm/hittableLever.s b/asm/object/hittableLever.s similarity index 100% rename from asm/hittableLever.s rename to asm/object/hittableLever.s diff --git a/asm/houseDoorInterior.s b/asm/object/houseDoorInterior.s similarity index 100% rename from asm/houseDoorInterior.s rename to asm/object/houseDoorInterior.s diff --git a/asm/itemForSale.s b/asm/object/itemForSale.s similarity index 100% rename from asm/itemForSale.s rename to asm/object/itemForSale.s diff --git a/asm/ladderHoleInBookshelf.s b/asm/object/ladderHoleInBookshelf.s similarity index 100% rename from asm/ladderHoleInBookshelf.s rename to asm/object/ladderHoleInBookshelf.s diff --git a/asm/ladderUp.s b/asm/object/ladderUp.s similarity index 100% rename from asm/ladderUp.s rename to asm/object/ladderUp.s diff --git a/asm/lamp.s b/asm/object/lamp.s similarity index 100% rename from asm/lamp.s rename to asm/object/lamp.s diff --git a/asm/lavaPlatform.s b/asm/object/lavaPlatform.s similarity index 100% rename from asm/lavaPlatform.s rename to asm/object/lavaPlatform.s diff --git a/asm/lilypadLarge.s b/asm/object/lilypadLarge.s similarity index 100% rename from asm/lilypadLarge.s rename to asm/object/lilypadLarge.s diff --git a/asm/litArea.s b/asm/object/litArea.s similarity index 100% rename from asm/litArea.s rename to asm/object/litArea.s diff --git a/asm/macroAcorn.s b/asm/object/macroAcorn.s similarity index 100% rename from asm/macroAcorn.s rename to asm/object/macroAcorn.s diff --git a/asm/macroBook.s b/asm/object/macroBook.s similarity index 100% rename from asm/macroBook.s rename to asm/object/macroBook.s diff --git a/asm/macroDecorations.s b/asm/object/macroDecorations.s similarity index 100% rename from asm/macroDecorations.s rename to asm/object/macroDecorations.s diff --git a/asm/macroMushroomStalks.s b/asm/object/macroMushroomStalks.s similarity index 100% rename from asm/macroMushroomStalks.s rename to asm/object/macroMushroomStalks.s diff --git a/asm/macroPlayer.s b/asm/object/macroPlayer.s similarity index 100% rename from asm/macroPlayer.s rename to asm/object/macroPlayer.s diff --git a/asm/macroShoes.s b/asm/object/macroShoes.s similarity index 100% rename from asm/macroShoes.s rename to asm/object/macroShoes.s diff --git a/asm/mazaalBossObject.s b/asm/object/mazaalBossObject.s similarity index 100% rename from asm/mazaalBossObject.s rename to asm/object/mazaalBossObject.s diff --git a/asm/minecart.s b/asm/object/minecart.s similarity index 100% rename from asm/minecart.s rename to asm/object/minecart.s diff --git a/asm/minecartDoor.s b/asm/object/minecartDoor.s similarity index 100% rename from asm/minecartDoor.s rename to asm/object/minecartDoor.s diff --git a/asm/minishEmoticon.s b/asm/object/minishEmoticon.s similarity index 100% rename from asm/minishEmoticon.s rename to asm/object/minishEmoticon.s diff --git a/asm/object10.s b/asm/object/object10.s similarity index 100% rename from asm/object10.s rename to asm/object/object10.s diff --git a/asm/object11.s b/asm/object/object11.s similarity index 100% rename from asm/object11.s rename to asm/object/object11.s diff --git a/asm/object12.s b/asm/object/object12.s similarity index 100% rename from asm/object12.s rename to asm/object/object12.s diff --git a/asm/object15.s b/asm/object/object15.s similarity index 100% rename from asm/object15.s rename to asm/object/object15.s diff --git a/asm/object17.s b/asm/object/object17.s similarity index 100% rename from asm/object17.s rename to asm/object/object17.s diff --git a/asm/object1E.s b/asm/object/object1E.s similarity index 100% rename from asm/object1E.s rename to asm/object/object1E.s diff --git a/asm/object1F.s b/asm/object/object1F.s similarity index 100% rename from asm/object1F.s rename to asm/object/object1F.s diff --git a/asm/object20.s b/asm/object/object20.s similarity index 100% rename from asm/object20.s rename to asm/object/object20.s diff --git a/asm/object21.s b/asm/object/object21.s similarity index 100% rename from asm/object21.s rename to asm/object/object21.s diff --git a/asm/object28.s b/asm/object/object28.s similarity index 100% rename from asm/object28.s rename to asm/object/object28.s diff --git a/asm/object2A.s b/asm/object/object2A.s similarity index 100% rename from asm/object2A.s rename to asm/object/object2A.s diff --git a/asm/object2B.s b/asm/object/object2B.s similarity index 100% rename from asm/object2B.s rename to asm/object/object2B.s diff --git a/asm/object30.s b/asm/object/object30.s similarity index 100% rename from asm/object30.s rename to asm/object/object30.s diff --git a/asm/object35.s b/asm/object/object35.s similarity index 100% rename from asm/object35.s rename to asm/object/object35.s diff --git a/asm/object36.s b/asm/object/object36.s similarity index 100% rename from asm/object36.s rename to asm/object/object36.s diff --git a/asm/object37.s b/asm/object/object37.s similarity index 100% rename from asm/object37.s rename to asm/object/object37.s diff --git a/asm/object3A.s b/asm/object/object3A.s similarity index 100% rename from asm/object3A.s rename to asm/object/object3A.s diff --git a/asm/object3D.s b/asm/object/object3D.s similarity index 100% rename from asm/object3D.s rename to asm/object/object3D.s diff --git a/asm/object3E.s b/asm/object/object3E.s similarity index 100% rename from asm/object3E.s rename to asm/object/object3E.s diff --git a/asm/object42.s b/asm/object/object42.s similarity index 100% rename from asm/object42.s rename to asm/object/object42.s diff --git a/asm/object43.s b/asm/object/object43.s similarity index 100% rename from asm/object43.s rename to asm/object/object43.s diff --git a/asm/object44.s b/asm/object/object44.s similarity index 100% rename from asm/object44.s rename to asm/object/object44.s diff --git a/asm/object45.s b/asm/object/object45.s similarity index 100% rename from asm/object45.s rename to asm/object/object45.s diff --git a/asm/object4B.s b/asm/object/object4B.s similarity index 100% rename from asm/object4B.s rename to asm/object/object4B.s diff --git a/asm/object52.s b/asm/object/object52.s similarity index 100% rename from asm/object52.s rename to asm/object/object52.s diff --git a/asm/object53.s b/asm/object/object53.s similarity index 100% rename from asm/object53.s rename to asm/object/object53.s diff --git a/asm/object5B.s b/asm/object/object5B.s similarity index 100% rename from asm/object5B.s rename to asm/object/object5B.s diff --git a/asm/object61.s b/asm/object/object61.s similarity index 100% rename from asm/object61.s rename to asm/object/object61.s diff --git a/asm/object63.s b/asm/object/object63.s similarity index 100% rename from asm/object63.s rename to asm/object/object63.s diff --git a/asm/object64.s b/asm/object/object64.s similarity index 100% rename from asm/object64.s rename to asm/object/object64.s diff --git a/asm/object66.s b/asm/object/object66.s similarity index 100% rename from asm/object66.s rename to asm/object/object66.s diff --git a/asm/object67.s b/asm/object/object67.s similarity index 100% rename from asm/object67.s rename to asm/object/object67.s diff --git a/asm/object68.s b/asm/object/object68.s similarity index 100% rename from asm/object68.s rename to asm/object/object68.s diff --git a/asm/object69.s b/asm/object/object69.s similarity index 100% rename from asm/object69.s rename to asm/object/object69.s diff --git a/asm/object70.s b/asm/object/object70.s similarity index 100% rename from asm/object70.s rename to asm/object/object70.s diff --git a/asm/object74.s b/asm/object/object74.s similarity index 100% rename from asm/object74.s rename to asm/object/object74.s diff --git a/asm/object75.s b/asm/object/object75.s similarity index 100% rename from asm/object75.s rename to asm/object/object75.s diff --git a/asm/object76.s b/asm/object/object76.s similarity index 100% rename from asm/object76.s rename to asm/object/object76.s diff --git a/asm/object79.s b/asm/object/object79.s similarity index 100% rename from asm/object79.s rename to asm/object/object79.s diff --git a/asm/object81.s b/asm/object/object81.s similarity index 100% rename from asm/object81.s rename to asm/object/object81.s diff --git a/asm/object8E.s b/asm/object/object8E.s similarity index 100% rename from asm/object8E.s rename to asm/object/object8E.s diff --git a/asm/object9.s b/asm/object/object9.s similarity index 100% rename from asm/object9.s rename to asm/object/object9.s diff --git a/asm/object90.s b/asm/object/object90.s similarity index 100% rename from asm/object90.s rename to asm/object/object90.s diff --git a/asm/object91.s b/asm/object/object91.s similarity index 100% rename from asm/object91.s rename to asm/object/object91.s diff --git a/asm/object96.s b/asm/object/object96.s similarity index 100% rename from asm/object96.s rename to asm/object/object96.s diff --git a/asm/object97.s b/asm/object/object97.s similarity index 100% rename from asm/object97.s rename to asm/object/object97.s diff --git a/asm/object98.s b/asm/object/object98.s similarity index 100% rename from asm/object98.s rename to asm/object/object98.s diff --git a/asm/object99.s b/asm/object/object99.s similarity index 100% rename from asm/object99.s rename to asm/object/object99.s diff --git a/asm/object9B.s b/asm/object/object9B.s similarity index 100% rename from asm/object9B.s rename to asm/object/object9B.s diff --git a/asm/objectA6.s b/asm/object/objectA6.s similarity index 100% rename from asm/objectA6.s rename to asm/object/objectA6.s diff --git a/asm/objectA7.s b/asm/object/objectA7.s similarity index 100% rename from asm/objectA7.s rename to asm/object/objectA7.s diff --git a/asm/objectA8.s b/asm/object/objectA8.s similarity index 100% rename from asm/objectA8.s rename to asm/object/objectA8.s diff --git a/asm/objectA9.s b/asm/object/objectA9.s similarity index 100% rename from asm/objectA9.s rename to asm/object/objectA9.s diff --git a/asm/objectAB.s b/asm/object/objectAB.s similarity index 100% rename from asm/objectAB.s rename to asm/object/objectAB.s diff --git a/asm/objectAD.s b/asm/object/objectAD.s similarity index 100% rename from asm/objectAD.s rename to asm/object/objectAD.s diff --git a/asm/objectB.s b/asm/object/objectB.s similarity index 100% rename from asm/objectB.s rename to asm/object/objectB.s diff --git a/asm/objectB3.s b/asm/object/objectB3.s similarity index 100% rename from asm/objectB3.s rename to asm/object/objectB3.s diff --git a/asm/objectB4.s b/asm/object/objectB4.s similarity index 100% rename from asm/objectB4.s rename to asm/object/objectB4.s diff --git a/asm/objectB6.s b/asm/object/objectB6.s similarity index 100% rename from asm/objectB6.s rename to asm/object/objectB6.s diff --git a/asm/objectB9.s b/asm/object/objectB9.s similarity index 100% rename from asm/objectB9.s rename to asm/object/objectB9.s diff --git a/asm/objectBD.s b/asm/object/objectBD.s similarity index 100% rename from asm/objectBD.s rename to asm/object/objectBD.s diff --git a/asm/objectBF.s b/asm/object/objectBF.s similarity index 100% rename from asm/objectBF.s rename to asm/object/objectBF.s diff --git a/asm/objectBlockingStairs.s b/asm/object/objectBlockingStairs.s similarity index 100% rename from asm/objectBlockingStairs.s rename to asm/object/objectBlockingStairs.s diff --git a/asm/objectC1.s b/asm/object/objectC1.s similarity index 100% rename from asm/objectC1.s rename to asm/object/objectC1.s diff --git a/asm/objectD.s b/asm/object/objectD.s similarity index 100% rename from asm/objectD.s rename to asm/object/objectD.s diff --git a/asm/objectE.s b/asm/object/objectE.s similarity index 100% rename from asm/objectE.s rename to asm/object/objectE.s diff --git a/asm/objectOnPillar.s b/asm/object/objectOnPillar.s similarity index 100% rename from asm/objectOnPillar.s rename to asm/object/objectOnPillar.s diff --git a/asm/objectOnSpinyBeetle.s b/asm/object/objectOnSpinyBeetle.s similarity index 100% rename from asm/objectOnSpinyBeetle.s rename to asm/object/objectOnSpinyBeetle.s diff --git a/asm/paper.s b/asm/object/paper.s similarity index 100% rename from asm/paper.s rename to asm/object/paper.s diff --git a/asm/picoBloom.s b/asm/object/picoBloom.s similarity index 100% rename from asm/picoBloom.s rename to asm/object/picoBloom.s diff --git a/asm/pressurePlate.s b/asm/object/pressurePlate.s similarity index 100% rename from asm/pressurePlate.s rename to asm/object/pressurePlate.s diff --git a/asm/pullableLever.s b/asm/object/pullableLever.s similarity index 100% rename from asm/pullableLever.s rename to asm/object/pullableLever.s diff --git a/asm/pullableMushroom.s b/asm/object/pullableMushroom.s similarity index 100% rename from asm/pullableMushroom.s rename to asm/object/pullableMushroom.s diff --git a/asm/pushableFurniture.s b/asm/object/pushableFurniture.s similarity index 100% rename from asm/pushableFurniture.s rename to asm/object/pushableFurniture.s diff --git a/asm/pushableGrave.s b/asm/object/pushableGrave.s similarity index 100% rename from asm/pushableGrave.s rename to asm/object/pushableGrave.s diff --git a/asm/pushableLever.s b/asm/object/pushableLever.s similarity index 100% rename from asm/pushableLever.s rename to asm/object/pushableLever.s diff --git a/asm/pushableRock.s b/asm/object/pushableRock.s similarity index 100% rename from asm/pushableRock.s rename to asm/object/pushableRock.s diff --git a/asm/pushableStatue.s b/asm/object/pushableStatue.s similarity index 100% rename from asm/pushableStatue.s rename to asm/object/pushableStatue.s diff --git a/asm/smallIceBlock.s b/asm/object/smallIceBlock.s similarity index 100% rename from asm/smallIceBlock.s rename to asm/object/smallIceBlock.s diff --git a/asm/specialFx.s b/asm/object/specialFx.s similarity index 100% rename from asm/specialFx.s rename to asm/object/specialFx.s diff --git a/asm/steam.s b/asm/object/steam.s similarity index 100% rename from asm/steam.s rename to asm/object/steam.s diff --git a/asm/stoneTablet.s b/asm/object/stoneTablet.s similarity index 100% rename from asm/stoneTablet.s rename to asm/object/stoneTablet.s diff --git a/asm/treeHidingPortal.s b/asm/object/treeHidingPortal.s similarity index 100% rename from asm/treeHidingPortal.s rename to asm/object/treeHidingPortal.s diff --git a/asm/waterfallOpening.s b/asm/object/waterfallOpening.s similarity index 100% rename from asm/waterfallOpening.s rename to asm/object/waterfallOpening.s diff --git a/asm/whirlwind.s b/asm/object/whirlwind.s similarity index 100% rename from asm/whirlwind.s rename to asm/object/whirlwind.s diff --git a/asm/windTribeTeleporter.s b/asm/object/windTribeTeleporter.s similarity index 100% rename from asm/windTribeTeleporter.s rename to asm/object/windTribeTeleporter.s diff --git a/include/enemy.h b/include/enemy.h index 8595b8f3..5905ce5b 100644 --- a/include/enemy.h +++ b/include/enemy.h @@ -4,7 +4,7 @@ #include "global.h" #include "asm.h" -#include "audio.h" +#include "sound.h" #include "effects.h" #include "flags.h" #include "utils.h" diff --git a/include/fileScreen.h b/include/fileScreen.h index 8d67cf82..78a36f90 100644 --- a/include/fileScreen.h +++ b/include/fileScreen.h @@ -1,7 +1,7 @@ #ifndef FILESELECT_H #define FILESELECT_H -#include "audio.h" +#include "sound.h" #include "global.h" #include "save.h" diff --git a/include/overworld.h b/include/game.h similarity index 95% rename from include/overworld.h rename to include/game.h index 43ae0c1a..8fb5253f 100644 --- a/include/overworld.h +++ b/include/game.h @@ -1,5 +1,5 @@ -#ifndef OVERWORLD_H -#define OVERWORLD_H +#ifndef GAME_H +#define GAME_H #include "global.h" #include "area.h" @@ -58,4 +58,4 @@ void sub_08053500(void); u32 GetBottleContaining(u32); -#endif // OVERWORLD_H +#endif // GAME_H diff --git a/include/textbox.h b/include/message.h similarity index 97% rename from include/textbox.h rename to include/message.h index 894c5d9d..f7f8c25d 100644 --- a/include/textbox.h +++ b/include/message.h @@ -1,5 +1,5 @@ -#ifndef TEXTBOX_H -#define TEXTBOX_H +#ifndef MESSAGE_H +#define MESSAGE_H #include "global.h" #include "entity.h" @@ -128,4 +128,4 @@ void MessageAtHeight(u32 index, u32 y); void DispMessageFrame(u16*, u32, u32, u32); -#endif +#endif // MESSAGE_H diff --git a/include/npc.h b/include/npc.h index d67652de..3e049fb0 100644 --- a/include/npc.h +++ b/include/npc.h @@ -5,12 +5,12 @@ #include "asm.h" #include "utils.h" -#include "audio.h" +#include "sound.h" #include "effects.h" #include "room.h" #include "flags.h" #include "coord.h" -#include "textbox.h" +#include "message.h" #include "script.h" #include "save.h" diff --git a/include/object.h b/include/object.h index d7256397..84f9c02c 100644 --- a/include/object.h +++ b/include/object.h @@ -5,7 +5,7 @@ #include "asm.h" #include "utils.h" -#include "audio.h" +#include "sound.h" #include "flags.h" #include "effects.h" #include "room.h" diff --git a/include/audio.h b/include/sound.h similarity index 99% rename from include/audio.h rename to include/sound.h index e5e4c0e4..8549510f 100644 --- a/include/audio.h +++ b/include/sound.h @@ -1,5 +1,5 @@ -#ifndef AUDIO_H -#define AUDIO_H +#ifndef SOUND_H +#define SOUND_H #include "global.h" @@ -597,4 +597,4 @@ typedef enum { SONG_BGM_0 = 0x80110000, } Sound; -#endif // AUDIO_H +#endif // SOUND_H diff --git a/linker.ld b/linker.ld index 225731fc..76401066 100644 --- a/linker.ld +++ b/linker.ld @@ -384,7 +384,7 @@ SECTIONS { src/enemy/pesto.o(.text); src/enemy/puffstool.o(.text); src/enemy/chuchuBoss.o(.text); - asm/chuchuBoss.o(.text); + asm/enemy/chuchuBoss.o(.text); src/enemy/likeLike.o(.text); src/enemy/spearMoblin.o(.text); src/enemy/businessScrub.o(.text); @@ -401,77 +401,77 @@ SECTIONS { src/enemy/fallingBoulder.o(.text); src/enemy/bobomb.o(.text); src/enemy/wallMaster2.o(.text); - asm/gleerok.o(.text); + asm/enemy/gleerok.o(.text); src/enemy/vaatiEyesMacro.o(.text); src/enemy/tektite.o(.text); - asm/wizzrobeWind.o(.text); - asm/wizzrobeFire.o(.text); - asm/wizzrobeIce.o(.text); - src/code_080300AC.o(.text); - asm/code_080300AC.o(.text); - asm/armos.o(.text); - asm/eyegore.o(.text); + asm/enemy/wizzrobeWind.o(.text); + asm/enemy/wizzrobeFire.o(.text); + asm/enemy/wizzrobeIce.o(.text); + src/enemy/code_080300AC.o(.text); + asm/enemy/code_080300AC.o(.text); + asm/enemy/armos.o(.text); + asm/enemy/eyegore.o(.text); src/enemy/rope.o(.text); src/enemy/smallPesto.o(.text); src/enemy/acroBandits.o(.text); src/enemy/bladeTrap.o(.text); src/enemy/keaton.o(.text); - asm/crow.o(.text); - asm/mulldozer.o(.text); - asm/bombarossa.o(.text); + asm/enemy/crow.o(.text); + asm/enemy/mulldozer.o(.text); + asm/enemy/bombarossa.o(.text); src/enemy/wisp.o(.text); - asm/spinyBeetle.o(.text); + asm/enemy/spinyBeetle.o(.text); src/enemy/mazaalHead.o(.text); src/enemy/mazaalMacro.o(.text); src/enemy/mazaalHand.o(.text); src/enemy/octorokBoss.o(.text); - asm/flyingPot.o(.text); + asm/enemy/flyingPot.o(.text); src/enemy/gibdo.o(.text); - asm/octorokGolden.o(.text); + asm/enemy/octorokGolden.o(.text); src/enemy/tektiteGolden.o(.text); src/enemy/ropeGolden.o(.text); - asm/cloudPiranha.o(.text); - asm/scissorsBeetle.o(.text); - asm/cuccoAggr.o(.text); - asm/stalfos.o(.text); - asm/flyingSkull.o(.text); + asm/enemy/cloudPiranha.o(.text); + asm/enemy/scissorsBeetle.o(.text); + asm/enemy/cuccoAggr.o(.text); + asm/enemy/stalfos.o(.text); + asm/enemy/flyingSkull.o(.text); src/enemy/mazaalBracelet.o(.text); - asm/takkuri.o(.text); + asm/enemy/takkuri.o(.text); src/enemy/bowMoblin.o(.text); - asm/bowMoblin.o(.text); + asm/enemy/bowMoblin.o(.text); src/enemy/lakitu.o(.text); src/enemy/lakituCloud.o(.text); - asm/enemy49.o(.text); + asm/enemy/enemy49.o(.text); src/enemy/vaatiRebornEnemy.o(.text); src/enemy/vaatiProjectile.o(.text); - asm/ballChainSoldier.o(.text); + asm/enemy/ballChainSoldier.o(.text); src/enemy/enemy4D.o(.text); - asm/enemy4D.o(.text); - asm/ghini.o(.text); + asm/enemy/enemy4D.o(.text); + asm/enemy/ghini.o(.text); src/enemy/vaatiTransfigured.o(.text); - asm/enemy50.o(.text); + asm/enemy/enemy50.o(.text); src/enemy/vaatiWrath.o(.text); src/enemy/vaatiArm.o(.text); - asm/dust.o(.text); + asm/enemy/dust.o(.text); src/enemy/vaatiBall.o(.text); src/enemy/slime.o(.text); - asm/sub_080451CC.o(.text); + asm/enemy/sub_080451CC.o(.text); src/enemy/miniSlime.o(.text); src/enemy/fireballGuy.o(.text); src/enemy/miniFireballGuy.o(.text); src/enemy/vaatiTransfiguredEye.o(.text); - asm/businessScrubPrologue.o(.text); - asm/gyorgFemale.o(.text); + asm/enemy/businessScrubPrologue.o(.text); + asm/enemy/gyorgFemale.o(.text); src/enemy/gyorgMale.o(.text); - asm/curtain.o(.text); + asm/enemy/curtain.o(.text); src/enemy/vaatiWrathEye.o(.text); - asm/gyorgChild.o(.text); - asm/gyorgFemaleEye.o(.text); - asm/enemy62.o(.text); - asm/gyorgFemaleMouth.o(.text); - asm/enemy64.o(.text); + asm/enemy/gyorgChild.o(.text); + asm/enemy/gyorgFemaleEye.o(.text); + asm/enemy/enemy62.o(.text); + asm/enemy/gyorgFemaleMouth.o(.text); + asm/enemy/enemy64.o(.text); src/enemy/treeItem.o(.text); - asm/enemy66.o(.text); + asm/enemy/enemy66.o(.text); /* END enemies */ src/code_08049CD4.o(.text); asm/code_08049D30.o(.text); @@ -486,7 +486,7 @@ SECTIONS { src/fade.o(.text); src/fileScreen.o(.text); asm/fileScreen.o(.text); - src/overworld.o(.text); + src/game.o(.text); asm/code_080526F8.o(.text); asm/modBombs.o(.text); asm/modArrows.o(.text); @@ -496,7 +496,7 @@ SECTIONS { asm/code_08054C04.o(.text); src/sub_08055E08.o(.text); src/main.o(.text); - src/textbox.o(.text); + src/message.o(.text); asm/code_08056418.o(.text); src/manager/manager1.o(.text); src/manager/manager2.o(.text); @@ -686,214 +686,214 @@ SECTIONS { asm/code_0807CAA0.o(.text); src/flags.o(.text); src/save.o(.text); - src/code_0807CC3C.o(.text); + src/scroll.o(.text); src/script.o(.text); asm/code_0807F0D8.o(.text); src/code_0808091C.o(.text); asm/code_0808091C.o(.text); /* objects */ src/object/itemOnGround.o(.text); - asm/deathFx.o(.text); - asm/itemForSale.o(.text); + asm/object/deathFx.o(.text); + asm/object/itemForSale.o(.text); src/object/button.o(.text); - asm/minishEmoticon.o(.text); + asm/object/minishEmoticon.o(.text); src/object/pot.o(.text); - asm/ezloCap.o(.text); - asm/blockPushed.o(.text); + asm/object/ezloCap.o(.text); + asm/object/blockPushed.o(.text); src/object/lockedDoor.o(.text); - asm/object9.o(.text); + asm/object/object9.o(.text); src/object/objectA.o(.text); - asm/objectB.o(.text); + asm/object/objectB.o(.text); src/object/chestSpawner.o(.text); - asm/chestSpawner.o(.text); - asm/objectD.o(.text); - asm/objectE.o(.text); - asm/specialFx.o(.text); - asm/object10.o(.text); - asm/object11.o(.text); - asm/object12.o(.text); + asm/object/chestSpawner.o(.text); + asm/object/objectD.o(.text); + asm/object/objectE.o(.text); + asm/object/specialFx.o(.text); + asm/object/object10.o(.text); + asm/object/object11.o(.text); + asm/object/object12.o(.text); src/object/railtrack.o(.text); - asm/lilypadLarge.o(.text); - asm/object15.o(.text); - asm/floatingPlatform.o(.text); - asm/object17.o(.text); - asm/evilSpirit.o(.text); + asm/object/lilypadLarge.o(.text); + asm/object/object15.o(.text); + asm/object/floatingPlatform.o(.text); + asm/object/object17.o(.text); + asm/object/evilSpirit.o(.text); src/object/houseDoorExterior.o(.text); src/object/object1A.o(.text); src/object/greatFairy.o(.text); src/object/object1C.o(.text); src/object/object1D.o(.text); - asm/object1E.o(.text); - asm/object1F.o(.text); - asm/object20.o(.text); - asm/object21.o(.text); - asm/figurineDevice.o(.text); - asm/eyeSwitch.o(.text); - asm/pressurePlate.o(.text); - asm/bigBarrel.o(.text); - asm/barrelInside.o(.text); - asm/pushableStatue.o(.text); - asm/object28.o(.text); - asm/ambientClouds.o(.text); + asm/object/object1E.o(.text); + asm/object/object1F.o(.text); + asm/object/object20.o(.text); + asm/object/object21.o(.text); + asm/object/figurineDevice.o(.text); + asm/object/eyeSwitch.o(.text); + asm/object/pressurePlate.o(.text); + asm/object/bigBarrel.o(.text); + asm/object/barrelInside.o(.text); + asm/object/pushableStatue.o(.text); + asm/object/object28.o(.text); + asm/object/ambientClouds.o(.text); src/object/object2A.o(.text); - asm/object2A.o(.text); - asm/object2B.o(.text); - asm/beanstalk.o(.text); + asm/object/object2A.o(.text); + asm/object/object2B.o(.text); + asm/object/beanstalk.o(.text); src/object/smoke.o(.text); - asm/pushableRock.o(.text); - asm/hittableLever.o(.text); - asm/object30.o(.text); + asm/object/pushableRock.o(.text); + asm/object/hittableLever.o(.text); + asm/object/object30.o(.text); src/object/frozenFlower.o(.text); - asm/pullableMushroom.o(.text); - asm/bollard.o(.text); + asm/object/pullableMushroom.o(.text); + asm/object/bollard.o(.text); src/object/warpPoint.o(.text); - asm/object35.o(.text); - asm/object36.o(.text); - asm/object37.o(.text); + asm/object/object35.o(.text); + asm/object/object36.o(.text); + asm/object/object37.o(.text); src/object/jarPortal.o(.text); - asm/bossDoor.o(.text); - asm/object3A.o(.text); - asm/macroMushroomStalks.o(.text); - asm/object75.o(.text); /* 75 and 76 are mislocated in base game */ - asm/object76.o(.text); - asm/code_0808C964.o(.text); - asm/macroPlayer.o(.text); - asm/object3D.o(.text); - asm/object3E.o(.text); + asm/object/bossDoor.o(.text); + asm/object/object3A.o(.text); + asm/object/macroMushroomStalks.o(.text); + asm/object/object75.o(.text); /* 75 and 76 are mislocated in base game */ + asm/object/object76.o(.text); + asm/object/code_0808C964.o(.text); + asm/object/macroPlayer.o(.text); + asm/object/object3D.o(.text); + asm/object/object3E.o(.text); src/object/giantLeaf.o(.text); - asm/fairy.o(.text); - asm/ladderUp.o(.text); - asm/object42.o(.text); - asm/object43.o(.text); - asm/object44.o(.text); - asm/object45.o(.text); - asm/giantBookLadder.o(.text); + asm/object/fairy.o(.text); + asm/object/ladderUp.o(.text); + asm/object/object42.o(.text); + asm/object/object43.o(.text); + asm/object/object44.o(.text); + asm/object/object45.o(.text); + asm/object/giantBookLadder.o(.text); src/object/heartContainer.o(.text); src/object/fileScreenObjects.o(.text); src/object/object49.o(.text); src/object/backgroundCloud.o(.text); - asm/object4B.o(.text); - asm/pushableFurniture.o(.text); + asm/object/object4B.o(.text); + asm/object/pushableFurniture.o(.text); src/object/furniture.o(.text); src/object/minishSizedEntrance.o(.text); src/object/archway.o(.text); - asm/giantRock.o(.text); - asm/giantRock2.o(.text); - asm/object52.o(.text); - asm/object53.o(.text); - asm/pullableLever.o(.text); + asm/object/giantRock.o(.text); + asm/object/giantRock2.o(.text); + asm/object/object52.o(.text); + asm/object/object53.o(.text); + asm/object/pullableLever.o(.text); src/object/minecart.o(.text); - asm/minecart.o(.text); + asm/object/minecart.o(.text); src/object/thoughtBubble.o(.text); src/object/hiddenLadderDown.o(.text); - asm/gentariCurtains.o(.text); - asm/lavaPlatform.o(.text); - asm/paper.o(.text); - asm/object5B.o(.text); + asm/object/gentariCurtains.o(.text); + asm/object/lavaPlatform.o(.text); + asm/object/paper.o(.text); + asm/object/object5B.o(.text); src/object/mask.o(.text); - asm/houseDoorInterior.o(.text); - asm/whirlwind.o(.text); - asm/objectBlockingStairs.o(.text); + asm/object/houseDoorInterior.o(.text); + asm/object/whirlwind.o(.text); + asm/object/objectBlockingStairs.o(.text); src/object/swordsmanNewsletter.o(.text); - asm/object61.o(.text); - asm/giantTwig.o(.text); - asm/object63.o(.text); - asm/object64.o(.text); - asm/ladderHoleInBookshelf.o(.text); - asm/object66.o(.text); - asm/object67.o(.text); - asm/object68.o(.text); - asm/object69.o(.text); + asm/object/object61.o(.text); + asm/object/giantTwig.o(.text); + asm/object/object63.o(.text); + asm/object/object64.o(.text); + asm/object/ladderHoleInBookshelf.o(.text); + asm/object/object66.o(.text); + asm/object/object67.o(.text); + asm/object/object68.o(.text); + asm/object/object69.o(.text); src/object/object6A.o(.text); - asm/crenalBeanSprout.o(.text); - asm/minecartDoor.o(.text); - asm/objectOnPillar.o(.text); + asm/object/crenalBeanSprout.o(.text); + asm/object/minecartDoor.o(.text); + asm/object/objectOnPillar.o(.text); src/object/mineralWaterSource.o(.text); src/object/minishSizedArchway.o(.text); - asm/object70.o(.text); - asm/pushableGrave.o(.text); - asm/stoneTablet.o(.text); + asm/object/object70.o(.text); + asm/object/pushableGrave.o(.text); + asm/object/stoneTablet.o(.text); src/object/lilypadSmall.o(.text); - asm/object74.o(.text); + asm/object/object74.o(.text); src/object/bell.o(.text); - asm/macroDecorations.o(.text); - asm/object79.o(.text); - asm/steam.o(.text); - asm/pushableLever.o(.text); - asm/macroShoes.o(.text); - asm/objectOnSpinyBeetle.o(.text); + asm/object/macroDecorations.o(.text); + asm/object/object79.o(.text); + asm/object/steam.o(.text); + asm/object/pushableLever.o(.text); + asm/object/macroShoes.o(.text); + asm/object/objectOnSpinyBeetle.o(.text); src/object/object7E.o(.text); - asm/picoBloom.o(.text); - asm/board.o(.text); - asm/object81.o(.text); + asm/object/picoBloom.o(.text); + asm/object/board.o(.text); + asm/object/object81.o(.text); src/object/bigVortex.o(.text); - asm/bigPushableLever.o(.text); - asm/smallIceBlock.o(.text); - asm/bigIceBlock.o(.text); + asm/object/bigPushableLever.o(.text); + asm/object/smallIceBlock.o(.text); + asm/object/bigIceBlock.o(.text); src/object/object86.o(.text); src/object/octorokBossObject.o(.text); - asm/macroBook.o(.text); - asm/mazaalBossObject.o(.text); - asm/cabinFurniture.o(.text); - asm/doubleBookshelf.o(.text); + asm/object/macroBook.o(.text); + asm/object/mazaalBossObject.o(.text); + asm/object/cabinFurniture.o(.text); + asm/object/doubleBookshelf.o(.text); src/object/book.o(.text); src/object/fireplace.o(.text); - asm/object8E.o(.text); - asm/frozenWaterElement.o(.text); - asm/object90.o(.text); - asm/object91.o(.text); + asm/object/object8E.o(.text); + asm/object/frozenWaterElement.o(.text); + asm/object/object90.o(.text); + asm/object/object91.o(.text); src/object/bakerOven.o(.text); - asm/lamp.o(.text); + asm/object/lamp.o(.text); src/object/windTribeFlag.o(.text); src/object/bird.o(.text); - asm/bird.o(.text); - asm/object96.o(.text); - asm/object97.o(.text); - asm/object98.o(.text); - asm/object99.o(.text); - asm/macroAcorn.o(.text); - asm/object9B.o(.text); + asm/object/bird.o(.text); + asm/object/object96.o(.text); + asm/object/object97.o(.text); + asm/object/object98.o(.text); + asm/object/object99.o(.text); + asm/object/macroAcorn.o(.text); + asm/object/object9B.o(.text); src/object/treeHidingPortal.o(.text); - asm/treeHidingPortal.o(.text); + asm/object/treeHidingPortal.o(.text); src/object/lightableSwitch.o(.text); src/object/treeThorns.o(.text); src/object/fan.o(.text); - asm/fan.o(.text); - asm/angryStatue.o(.text); + asm/object/fan.o(.text); + asm/object/angryStatue.o(.text); src/object/palaceArchway.o(.text); src/object/objectA2.o(.text); src/object/cloud.o(.text); src/object/minishLight.o(.text); - asm/fireballChain.o(.text); - asm/objectA6.o(.text); - asm/objectA7.o(.text); + asm/object/fireballChain.o(.text); + asm/object/objectA6.o(.text); + asm/object/objectA7.o(.text); src/object/objectA8.o(.text); - asm/objectA8.o(.text); - asm/objectA9.o(.text); - asm/waterfallOpening.o(.text); - asm/objectAB.o(.text); - asm/fourElements.o(.text); - asm/objectAD.o(.text); + asm/object/objectA8.o(.text); + asm/object/objectA9.o(.text); + asm/object/waterfallOpening.o(.text); + asm/object/objectAB.o(.text); + asm/object/fourElements.o(.text); + asm/object/objectAD.o(.text); src/object/floatingBlock.o(.text); src/object/objectAF.o(.text); src/object/metalDoor.o(.text); src/object/jailBars.o(.text); src/object/objectB2.o(.text); - asm/objectB3.o(.text); - asm/objectB4.o(.text); + asm/object/objectB3.o(.text); + asm/object/objectB4.o(.text); src/object/objectB5.o(.text); - asm/objectB6.o(.text); + asm/object/objectB6.o(.text); src/object/well.o(.text); - asm/windTribeTeleporter.o(.text); - asm/objectB9.o(.text); - asm/gyorgBossObject.o(.text); + asm/object/windTribeTeleporter.o(.text); + asm/object/objectB9.o(.text); + asm/object/gyorgBossObject.o(.text); src/object/windcrest.o(.text); - asm/litArea.o(.text); - asm/objectBD.o(.text); + asm/object/litArea.o(.text); + asm/object/objectBD.o(.text); src/object/pinwheel.o(.text); - asm/objectBF.o(.text); - asm/enemyItem.o(.text); - asm/objectC1.o(.text); + asm/object/objectBF.o(.text); + asm/object/enemyItem.o(.text); + asm/object/objectC1.o(.text); /* END objects */ asm/sub_080A276C.o(.text); src/objectUtils.o(.text); @@ -903,7 +903,7 @@ SECTIONS { #ifdef DEMO_USA src/demoScreen.o(.text); #endif - src/audio.o(.text); + src/sound.o(.text); asm/code_080A3480.o(.text); src/sub_080A3B84.o(.text); asm/code_080A3BD0.o(.text); @@ -1173,7 +1173,7 @@ SECTIONS { data/data_080FC3C4.o(.rodata); src/fileScreen.o(.rodata); data/data_080FC8A4.o(.rodata); - src/overworld.o(.rodata); + src/game.o(.rodata); data/data_080FCAC8.o(.rodata); data/const/playerItem/playerItemLantern.o(.rodata); data/data_080FEEB8.o(.rodata); @@ -1183,7 +1183,7 @@ SECTIONS { data/map/tileset_headers.o(.rodata); data/map/metatile_headers.o(.rodata); data/map/map_headers.o(.rodata); - src/textbox.o(.rodata); + src/message.o(.rodata); data/const/manager/manager1.o(.rodata); data/const/manager/manager3.o(.rodata); data/const/manager/manager4.o(.rodata); @@ -1737,7 +1737,7 @@ SECTIONS { src/gba/m4a.o(.rodata); data/sound/voicegroups.o(.rodata); data/sound/programmable_wave_samples.o(.rodata); - src/audio.o(.rodata); + src/sound.o(.rodata); data/sound/direct_sound_samples.o(.rodata); data/sound/sounds.o(.rodata); src/eeprom.o(.rodata); diff --git a/src/code_0808091C.c b/src/code_0808091C.c index 51e23169..fd82dfa6 100644 --- a/src/code_0808091C.c +++ b/src/code_0808091C.c @@ -2,7 +2,7 @@ #include "entity.h" #include "structures.h" #include "functions.h" -#include "overworld.h" +#include "game.h" extern void sub_08080BC4(void); diff --git a/src/code_080A29BC.c b/src/code_080A29BC.c deleted file mode 100644 index 17ea28b0..00000000 --- a/src/code_080A29BC.c +++ /dev/null @@ -1,58 +0,0 @@ -#include "global.h" -#include "entity.h" -#include "room.h" -#include "object.h" - -void sub_080A29C8(s32 xOff, s32 yOff, u32 layer) { - Entity* pEVar1; - - pEVar1 = CreateObject(SPECIAL_FX, 2, 0); - if (pEVar1 != NULL) { - pEVar1->x.HALF.HI = gRoomControls.roomOriginX + xOff; - pEVar1->y.HALF.HI = gRoomControls.roomOriginY + yOff; - pEVar1->collisionLayer = layer; - } -} - -void sub_080A29FC(Entity* parent) { - CreateFx(parent, FX_DASH, 0); -} - -void sub_080A2A08(Entity* parent) { - CreateFx(parent, FX_6, 0); -} - -void sub_080A2A14(Entity* parent) { - CreateFx(parent, FX_WATER_SPLASH, 0); -} - -Entity* sub_080A2A20(Entity* parent, u32 form, u32 parameter) { - Entity* pEVar1; - - pEVar1 = CreateObjectWithParent(parent, GROUND_ITEM, form, parameter); - if (pEVar1 != NULL) { - pEVar1->actionDelay = 5; - } - return pEVar1; -} - -Entity* sub_080A2A3C(Entity* parent, u32 form, u32 subtype, u32 param_4) { - Entity* ent; - - ent = CreateObjectWithParent(parent, GROUND_ITEM, form, subtype); - if (ent != NULL) { - ent->actionDelay = 5; - *(u32*)(&ent->field_0x86) = param_4; - } - return ent; -} - -Entity* sub_080A2A64(Entity* parent) { - Entity* pEVar1; - - pEVar1 = CreateFx(parent, FX_SPARKLE2, 0); - if (pEVar1 != NULL) { - pEVar1->spritePriority.b0 = 7; - } - return pEVar1; -} diff --git a/src/collision.c b/src/collision.c index db07ec77..d39cb4a2 100644 --- a/src/collision.c +++ b/src/collision.c @@ -7,7 +7,7 @@ #include "functions.h" #include "enemy.h" #include "object.h" -#include "overworld.h" +#include "game.h" extern u8 gCollidableCount; extern u8 gUnk_080B3740[]; diff --git a/src/coord.c b/src/coord.c index b9209b69..87108481 100644 --- a/src/coord.c +++ b/src/coord.c @@ -3,7 +3,7 @@ #include "player.h" #include "coord.h" #include "utils.h" -#include "audio.h" +#include "sound.h" #include "room.h" #include "functions.h" diff --git a/src/debugScreen.c b/src/debugScreen.c index 958791fa..b3300574 100644 --- a/src/debugScreen.c +++ b/src/debugScreen.c @@ -1,11 +1,11 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "utils.h" #include "functions.h" #include "main.h" #include "menu.h" #include "screen.h" -#include "textbox.h" +#include "message.h" extern void (*const gUnk_08109A30[])(); diff --git a/src/demoScreen.c b/src/demoScreen.c index efc3368d..e2d7c911 100644 --- a/src/demoScreen.c +++ b/src/demoScreen.c @@ -2,7 +2,7 @@ #include "functions.h" #include "main.h" #include "utils.h" -#include "textbox.h" +#include "message.h" #include "fileScreen.h" #include "screen.h" diff --git a/src/enemy/bladeTrap.c b/src/enemy/bladeTrap.c index ecad5157..ceea0b5d 100644 --- a/src/enemy/bladeTrap.c +++ b/src/enemy/bladeTrap.c @@ -1,4 +1,4 @@ -#include "audio.h" +#include "sound.h" #include "entity.h" #include "room.h" #include "functions.h" diff --git a/src/enemy/bobomb.c b/src/enemy/bobomb.c index 32e72b86..94ba6b9d 100644 --- a/src/enemy/bobomb.c +++ b/src/enemy/bobomb.c @@ -1,5 +1,5 @@ #include "asm.h" -#include "audio.h" +#include "sound.h" #include "enemy.h" #include "object.h" #include "functions.h" diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index e6b544b3..1bff3860 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -1,10 +1,10 @@ #include "asm.h" #include "enemy.h" -#include "textbox.h" +#include "message.h" #include "save.h" #include "npc.h" #include "functions.h" -#include "overworld.h" +#include "game.h" extern Entity* sub_08049DF4(u32); extern bool32 sub_08056338(void); diff --git a/src/code_080300AC.c b/src/enemy/code_080300AC.c similarity index 100% rename from src/code_080300AC.c rename to src/enemy/code_080300AC.c diff --git a/src/enemy/doorMimic.c b/src/enemy/doorMimic.c index 299601f8..af328474 100644 --- a/src/enemy/doorMimic.c +++ b/src/enemy/doorMimic.c @@ -1,4 +1,4 @@ -#include "audio.h" +#include "sound.h" #include "enemy.h" #include "functions.h" diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c index edab8bed..f0b08684 100644 --- a/src/enemy/likeLike.c +++ b/src/enemy/likeLike.c @@ -1,5 +1,5 @@ #include "enemy.h" -#include "textbox.h" +#include "message.h" #include "save.h" #include "object.h" #include "functions.h" diff --git a/src/enemy/octorokBoss.c b/src/enemy/octorokBoss.c index 1d1c6ab3..b6e207d3 100644 --- a/src/enemy/octorokBoss.c +++ b/src/enemy/octorokBoss.c @@ -2,7 +2,7 @@ #include "functions.h" #include "object.h" #include "projectile.h" -#include "overworld.h" +#include "game.h" extern void sub_08078AC0(u32, u32, u32); extern u32 GetRandomByWeight(const u8*); diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index 73bc1509..676ecfcf 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -1,6 +1,6 @@ #include "enemy.h" #include "object.h" -#include "overworld.h" +#include "game.h" #include "functions.h" #include "save.h" diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c index 351c56a1..7aacbee9 100644 --- a/src/enemy/rupeeLike.c +++ b/src/enemy/rupeeLike.c @@ -1,6 +1,6 @@ #include "global.h" #include "asm.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "enemy.h" #include "object.h" diff --git a/src/enemy/vaatiTransfiguredEye.c b/src/enemy/vaatiTransfiguredEye.c index f43e6290..67e795ac 100644 --- a/src/enemy/vaatiTransfiguredEye.c +++ b/src/enemy/vaatiTransfiguredEye.c @@ -1,6 +1,6 @@ #include "entity.h" #include "enemy.h" -#include "textbox.h" +#include "message.h" #include "coord.h" #include "functions.h" diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index 49049925..23e49183 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -1,6 +1,6 @@ #include "enemy.h" #include "object.h" -#include "textbox.h" +#include "message.h" #include "functions.h" #include "save.h" #include "screen.h" diff --git a/src/entity.c b/src/entity.c index a2d4085f..2902c057 100644 --- a/src/entity.c +++ b/src/entity.c @@ -2,7 +2,7 @@ #include "utils.h" #include "functions.h" #include "area.h" -#include "textbox.h" +#include "message.h" #include "npc.h" extern u8 gUnk_081091F8[]; diff --git a/src/ezloNag.c b/src/ezloNag.c index e0edff23..addcacd2 100644 --- a/src/ezloNag.c +++ b/src/ezloNag.c @@ -1,6 +1,6 @@ #include "global.h" -#include "audio.h" -#include "textbox.h" +#include "sound.h" +#include "message.h" typedef struct { s8 unk0; diff --git a/src/fileScreen.c b/src/fileScreen.c index ab3c3729..8d221ccd 100644 --- a/src/fileScreen.c +++ b/src/fileScreen.c @@ -3,7 +3,7 @@ #include "utils.h" #include "screen.h" #include "menu.h" -#include "textbox.h" +#include "message.h" #include "object.h" #include "functions.h" diff --git a/src/overworld.c b/src/game.c similarity index 99% rename from src/overworld.c rename to src/game.c index cc70b283..72fd56c0 100644 --- a/src/overworld.c +++ b/src/game.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "screen.h" #include "entity.h" #include "player.h" @@ -12,8 +12,8 @@ #include "menu.h" #include "functions.h" #include "area.h" -#include "textbox.h" -#include "overworld.h" +#include "message.h" +#include "game.h" extern u32 gUnk_03003FC0; diff --git a/src/interrupts.c b/src/interrupts.c index 72022c22..253c0aa0 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -1,10 +1,10 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "main.h" #include "player.h" #include "structures.h" #include "save.h" -#include "textbox.h" +#include "message.h" #include "functions.h" #include "screen.h" #include "gba/m4a.h" diff --git a/src/intro.c b/src/intro.c index 30aad962..c9eb0f73 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1,10 +1,10 @@ -#include "audio.h" +#include "sound.h" #include "main.h" #include "entity.h" #include "utils.h" #include "screen.h" #include "object.h" -#include "textbox.h" +#include "message.h" #include "functions.h" typedef struct { diff --git a/src/item/itemBomb.c b/src/item/itemBomb.c index 0ed4d65a..c0ce310c 100644 --- a/src/item/itemBomb.c +++ b/src/item/itemBomb.c @@ -1,6 +1,6 @@ #include "item.h" #include "coord.h" -#include "audio.h" +#include "sound.h" #include "functions.h" extern void (*const gUnk_0811BD98[])(ItemBehavior*, u32); diff --git a/src/item/itemLantern.c b/src/item/itemLantern.c index 88245ad8..9399ef1b 100644 --- a/src/item/itemLantern.c +++ b/src/item/itemLantern.c @@ -1,6 +1,6 @@ #include "item.h" #include "functions.h" -#include "audio.h" +#include "sound.h" #include "object.h" extern void (*const gUnk_0811BD68[])(ItemBehavior*, u32); diff --git a/src/item/itemMoleMitts.c b/src/item/itemMoleMitts.c index 82fbecac..9bce54e5 100644 --- a/src/item/itemMoleMitts.c +++ b/src/item/itemMoleMitts.c @@ -1,7 +1,7 @@ #include "item.h" #include "functions.h" -#include "audio.h" +#include "sound.h" extern void (*const gUnk_0811BE04[])(ItemBehavior*, u32); diff --git a/src/item/itemOcarina.c b/src/item/itemOcarina.c index 0ea670a5..5913c477 100644 --- a/src/item/itemOcarina.c +++ b/src/item/itemOcarina.c @@ -1,5 +1,5 @@ #include "item.h" -#include "audio.h" +#include "sound.h" #include "functions.h" extern void (*const gOcarinaStates[4])(ItemBehavior*, u32); diff --git a/src/item/itemPegasusBoots.c b/src/item/itemPegasusBoots.c index e60d820c..cf2bd6ac 100644 --- a/src/item/itemPegasusBoots.c +++ b/src/item/itemPegasusBoots.c @@ -1,6 +1,6 @@ #include "asm.h" #include "item.h" -#include "audio.h" +#include "sound.h" #include "functions.h" #include "effects.h" diff --git a/src/item/itemRocsCape.c b/src/item/itemRocsCape.c index 1e649198..cad38c43 100644 --- a/src/item/itemRocsCape.c +++ b/src/item/itemRocsCape.c @@ -1,5 +1,5 @@ #include "item.h" -#include "audio.h" +#include "sound.h" #include "functions.h" void sub_08076758(ItemBehavior*, u32); diff --git a/src/item/itemSword.c b/src/item/itemSword.c index fda041fb..773403fa 100644 --- a/src/item/itemSword.c +++ b/src/item/itemSword.c @@ -1,6 +1,6 @@ #include "item.h" #include "functions.h" -#include "audio.h" +#include "sound.h" #include "object.h" extern void (*const gUnk_0811BD44[])(ItemBehavior*, u32); diff --git a/src/main.c b/src/main.c index 6052ad10..9cf1eafb 100644 --- a/src/main.c +++ b/src/main.c @@ -1,10 +1,10 @@ -#include "audio.h" +#include "sound.h" #include "functions.h" #include "main.h" #include "screen.h" #include "utils.h" #include "save.h" -#include "textbox.h" +#include "message.h" #include "interrupts.h" extern u32 gRand; diff --git a/src/manager/manager10.c b/src/manager/manager10.c index 7b8460e0..adfbf44c 100644 --- a/src/manager/manager10.c +++ b/src/manager/manager10.c @@ -3,7 +3,7 @@ #include "manager.h" #include "room.h" #include "area.h" -#include "audio.h" +#include "sound.h" #include "screen.h" #include "utils.h" #include "fileScreen.h" diff --git a/src/manager/manager15.c b/src/manager/manager15.c index 8dc10a8f..c23c24fd 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "flags.h" #include "screen.h" #include "manager.h" diff --git a/src/manager/manager23.c b/src/manager/manager23.c index 494018a4..4fd43d8a 100644 --- a/src/manager/manager23.c +++ b/src/manager/manager23.c @@ -4,7 +4,7 @@ #include "functions.h" #include "flags.h" #include "object.h" -#include "overworld.h" +#include "game.h" extern void (*const gUnk_08108CCC[])(Manager*); diff --git a/src/manager/manager24.c b/src/manager/manager24.c index e1a9ecee..1f200d47 100644 --- a/src/manager/manager24.c +++ b/src/manager/manager24.c @@ -1,8 +1,8 @@ #include "entity.h" #include "functions.h" #include "flags.h" -#include "audio.h" -#include "overworld.h" +#include "sound.h" +#include "game.h" #include "object.h" extern void (*const gUnk_08108CDC[])(Manager24*); diff --git a/src/manager/manager27.c b/src/manager/manager27.c index 1addc549..a8e66939 100644 --- a/src/manager/manager27.c +++ b/src/manager/manager27.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "flags.h" #include "functions.h" diff --git a/src/manager/manager2E.c b/src/manager/manager2E.c index 7dbb3aa5..1bfc410b 100644 --- a/src/manager/manager2E.c +++ b/src/manager/manager2E.c @@ -3,7 +3,7 @@ #include "manager.h" #include "flags.h" #include "functions.h" -#include "audio.h" +#include "sound.h" typedef struct { Manager manager; diff --git a/src/manager/manager3.c b/src/manager/manager3.c index b4554896..b31a3f1c 100644 --- a/src/manager/manager3.c +++ b/src/manager/manager3.c @@ -5,7 +5,7 @@ #include "area.h" #include "room.h" #include "player.h" -#include "audio.h" +#include "sound.h" #include "object.h" // Facilitates the usage of minish portals. diff --git a/src/manager/manager30.c b/src/manager/manager30.c index 307884ea..ec5f9a52 100644 --- a/src/manager/manager30.c +++ b/src/manager/manager30.c @@ -1,6 +1,6 @@ #include "global.h" #include "asm.h" -#include "audio.h" +#include "sound.h" #include "manager.h" #include "flags.h" #include "functions.h" diff --git a/src/manager/manager32.c b/src/manager/manager32.c index 4aec05ba..1e6580d8 100644 --- a/src/manager/manager32.c +++ b/src/manager/manager32.c @@ -4,7 +4,7 @@ #include "functions.h" #include "area.h" #include "utils.h" -#include "overworld.h" +#include "game.h" typedef struct { Manager manager; diff --git a/src/manager/manager33.c b/src/manager/manager33.c index b0c7fa29..63f3c533 100644 --- a/src/manager/manager33.c +++ b/src/manager/manager33.c @@ -1,7 +1,7 @@ #include "manager.h" #include "room.h" #include "player.h" -#include "audio.h" +#include "sound.h" #include "object.h" void Manager33_Main(Manager* this) { diff --git a/src/manager/manager34.c b/src/manager/manager34.c index a3f83418..e811aaea 100644 --- a/src/manager/manager34.c +++ b/src/manager/manager34.c @@ -1,7 +1,7 @@ #include "manager.h" #include "structures.h" #include "functions.h" -#include "audio.h" +#include "sound.h" typedef struct { Manager manager; diff --git a/src/manager/manager36.c b/src/manager/manager36.c index a0ab4a62..ca9c5c24 100644 --- a/src/manager/manager36.c +++ b/src/manager/manager36.c @@ -1,5 +1,5 @@ #include "manager.h" -#include "audio.h" +#include "sound.h" #include "script.h" typedef struct { diff --git a/src/manager/manager37.c b/src/manager/manager37.c index 0258dee6..8140ac22 100644 --- a/src/manager/manager37.c +++ b/src/manager/manager37.c @@ -2,8 +2,8 @@ #include "structures.h" #include "functions.h" #include "flags.h" -#include "textbox.h" -#include "audio.h" +#include "message.h" +#include "sound.h" #include "save.h" #include "object.h" #include "area.h" diff --git a/src/manager/manager39.c b/src/manager/manager39.c index c3795422..bf69d08a 100644 --- a/src/manager/manager39.c +++ b/src/manager/manager39.c @@ -2,9 +2,9 @@ #include "manager.h" #include "screen.h" #include "area.h" -#include "textbox.h" +#include "message.h" #include "utils.h" -#include "overworld.h" +#include "game.h" #include "functions.h" typedef struct { diff --git a/src/manager/manager5.c b/src/manager/manager5.c index bc9293b7..59473ab7 100644 --- a/src/manager/manager5.c +++ b/src/manager/manager5.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "manager.h" #include "flags.h" #include "functions.h" diff --git a/src/manager/managerB.c b/src/manager/managerB.c index 4f9cbdb6..9bf28b87 100644 --- a/src/manager/managerB.c +++ b/src/manager/managerB.c @@ -4,7 +4,7 @@ #include "room.h" #include "area.h" #include "utils.h" -#include "audio.h" +#include "sound.h" /* * Manager B is used to create fights: diff --git a/src/manager/managerC.c b/src/manager/managerC.c index 1dae3225..8f467f8e 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "manager.h" #include "flags.h" #include "structures.h" diff --git a/src/manager/managerE.c b/src/manager/managerE.c index b1651333..e11c664a 100644 --- a/src/manager/managerE.c +++ b/src/manager/managerE.c @@ -2,7 +2,7 @@ #include "manager.h" #include "flags.h" #include "room.h" -#include "audio.h" +#include "sound.h" #include "functions.h" void ManagerE_Main(ManagerE* this) { diff --git a/src/manager/managerF.c b/src/manager/managerF.c index 27c4e877..15fa53fa 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -1,12 +1,12 @@ #include "global.h" #include "manager.h" #include "flags.h" -#include "audio.h" +#include "sound.h" #include "room.h" #include "player.h" #include "functions.h" #include "area.h" -#include "textbox.h" +#include "message.h" #include "utils.h" #include "tiles.h" #include "object.h" diff --git a/src/textbox.c b/src/message.c similarity index 99% rename from src/textbox.c rename to src/message.c index f09ed255..3560df71 100644 --- a/src/textbox.c +++ b/src/message.c @@ -1,10 +1,10 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "asm.h" #include "room.h" #include "utils.h" #include "functions.h" -#include "textbox.h" +#include "message.h" #include "save.h" #define MESSAGE_ADVANCE_KEYS (A_BUTTON | B_BUTTON | DPAD_ANY | R_BUTTON) diff --git a/src/npc/beedle.c b/src/npc/beedle.c index 54eedff3..703773ff 100644 --- a/src/npc/beedle.c +++ b/src/npc/beedle.c @@ -1,10 +1,10 @@ #include "global.h" #include "entity.h" -#include "textbox.h" +#include "message.h" #include "room.h" #include "script.h" #include "npc.h" -#include "overworld.h" +#include "game.h" typedef struct { u32 unk_00; diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c index 09eec8d5..d0620938 100644 --- a/src/npc/bladeBrothers.c +++ b/src/npc/bladeBrothers.c @@ -3,7 +3,7 @@ #include "flags.h" #include "player.h" #include "room.h" -#include "textbox.h" +#include "message.h" #include "save.h" #include "script.h" #include "npc.h" diff --git a/src/npc/brocco.c b/src/npc/brocco.c index 22c3dedb..b960237c 100644 --- a/src/npc/brocco.c +++ b/src/npc/brocco.c @@ -1,5 +1,5 @@ #include "entity.h" -#include "textbox.h" +#include "message.h" #include "save.h" #include "npc.h" diff --git a/src/npc/carlov.c b/src/npc/carlov.c index 25aa49ca..6fc9ad81 100644 --- a/src/npc/carlov.c +++ b/src/npc/carlov.c @@ -1,4 +1,4 @@ -#include "audio.h" +#include "sound.h" #include "entity.h" #include "room.h" #include "npc.h" diff --git a/src/npc/castleMaid.c b/src/npc/castleMaid.c index 75533301..cfd0dd9e 100644 --- a/src/npc/castleMaid.c +++ b/src/npc/castleMaid.c @@ -2,7 +2,7 @@ #include "script.h" #include "save.h" #include "flags.h" -#include "textbox.h" +#include "message.h" #include "npc.h" #include "manager.h" diff --git a/src/npc/castorWildsStatue.c b/src/npc/castorWildsStatue.c index b621b86f..c0637c96 100644 --- a/src/npc/castorWildsStatue.c +++ b/src/npc/castorWildsStatue.c @@ -1,4 +1,4 @@ -#include "audio.h" +#include "sound.h" #include "entity.h" #include "script.h" #include "functions.h" diff --git a/src/npc/cat.c b/src/npc/cat.c index af53d0c3..09ec72d2 100644 --- a/src/npc/cat.c +++ b/src/npc/cat.c @@ -2,7 +2,7 @@ #include "entity.h" #include "functions.h" #include "save.h" -#include "textbox.h" +#include "message.h" #include "npc.h" extern void sub_08067C44(); diff --git a/src/npc/cow.c b/src/npc/cow.c index 0437072f..5f0bcc0a 100644 --- a/src/npc/cow.c +++ b/src/npc/cow.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "player.h" #include "npc.h" diff --git a/src/npc/dampe.c b/src/npc/dampe.c index d1009033..31eb8c7b 100644 --- a/src/npc/dampe.c +++ b/src/npc/dampe.c @@ -3,7 +3,7 @@ #include "player.h" #include "room.h" #include "flags.h" -#include "textbox.h" +#include "message.h" #include "npc.h" extern u16 gUnk_08113344[]; diff --git a/src/npc/epona.c b/src/npc/epona.c index 9a43655b..b4840bbe 100644 --- a/src/npc/epona.c +++ b/src/npc/epona.c @@ -1,7 +1,7 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "entity.h" -#include "textbox.h" +#include "message.h" #include "npc.h" #include "functions.h" diff --git a/src/npc/ghostBrothers.c b/src/npc/ghostBrothers.c index 96130800..192509ff 100644 --- a/src/npc/ghostBrothers.c +++ b/src/npc/ghostBrothers.c @@ -2,7 +2,7 @@ #include "functions.h" #include "save.h" #include "screen.h" -#include "textbox.h" +#include "message.h" #include "npc.h" extern void (*const gUnk_0811017C[])(Entity*); diff --git a/src/npc/goron.c b/src/npc/goron.c index 144cc808..22a217ca 100644 --- a/src/npc/goron.c +++ b/src/npc/goron.c @@ -1,7 +1,7 @@ #include "global.h" #include "entity.h" #include "functions.h" -#include "textbox.h" +#include "message.h" #include "effects.h" #include "npc.h" diff --git a/src/npc/goronMerchant.c b/src/npc/goronMerchant.c index b00f3898..503717a6 100644 --- a/src/npc/goronMerchant.c +++ b/src/npc/goronMerchant.c @@ -1,7 +1,7 @@ #include "global.h" #include "entity.h" #include "functions.h" -#include "textbox.h" +#include "message.h" #include "flags.h" #include "save.h" #include "npc.h" diff --git a/src/npc/guard.c b/src/npc/guard.c index c456d95e..50f559c7 100644 --- a/src/npc/guard.c +++ b/src/npc/guard.c @@ -2,7 +2,7 @@ #include "entity.h" #include "player.h" #include "flags.h" -#include "textbox.h" +#include "message.h" #include "room.h" #include "script.h" #include "functions.h" diff --git a/src/npc/kid.c b/src/npc/kid.c index 1655b279..c5b5872a 100644 --- a/src/npc/kid.c +++ b/src/npc/kid.c @@ -1,5 +1,5 @@ #include "functions.h" -#include "textbox.h" +#include "message.h" #include "npc.h" extern void (*const gUnk_0810BE0C[])(Entity*); diff --git a/src/npc/librarians.c b/src/npc/librarians.c index 9b134e7a..95d1fd2f 100644 --- a/src/npc/librarians.c +++ b/src/npc/librarians.c @@ -2,8 +2,8 @@ #include "script.h" #include "functions.h" #include "flags.h" -#include "textbox.h" -#include "audio.h" +#include "message.h" +#include "sound.h" extern u16 gUnk_08113078[]; diff --git a/src/npc/mailbox.c b/src/npc/mailbox.c index 89901625..9dc5df22 100644 --- a/src/npc/mailbox.c +++ b/src/npc/mailbox.c @@ -1,6 +1,6 @@ #include "global.h" #include "entity.h" -#include "textbox.h" +#include "message.h" #include "effects.h" #include "npc.h" diff --git a/src/npc/marcy.c b/src/npc/marcy.c index ae888d2e..c187fd76 100644 --- a/src/npc/marcy.c +++ b/src/npc/marcy.c @@ -1,7 +1,7 @@ #include "entity.h" #include "functions.h" #include "flags.h" -#include "textbox.h" +#include "message.h" extern u16 gUnk_0810C34C[]; diff --git a/src/npc/minishEzlo.c b/src/npc/minishEzlo.c index 08e255bb..3ae0b056 100644 --- a/src/npc/minishEzlo.c +++ b/src/npc/minishEzlo.c @@ -1,6 +1,6 @@ #include "entity.h" #include "functions.h" -#include "audio.h" +#include "sound.h" extern SpriteLoadData gUnk_0810C48C; diff --git a/src/npc/ministerPotho.c b/src/npc/ministerPotho.c index eb38d37f..70e012eb 100644 --- a/src/npc/ministerPotho.c +++ b/src/npc/ministerPotho.c @@ -1,6 +1,6 @@ #include "entity.h" #include "flags.h" -#include "textbox.h" +#include "message.h" #include "npc.h" extern void (*const gUnk_08110644[])(Entity*); diff --git a/src/npc/mountainMinish.c b/src/npc/mountainMinish.c index 6616a452..ed76f1e1 100644 --- a/src/npc/mountainMinish.c +++ b/src/npc/mountainMinish.c @@ -1,7 +1,7 @@ #include "entity.h" #include "script.h" #include "functions.h" -#include "textbox.h" +#include "message.h" #include "flags.h" #include "npc.h" diff --git a/src/npc/mutoh.c b/src/npc/mutoh.c index 6106baf2..7d0751c7 100644 --- a/src/npc/mutoh.c +++ b/src/npc/mutoh.c @@ -2,7 +2,7 @@ #include "entity.h" #include "player.h" #include "flags.h" -#include "textbox.h" +#include "message.h" #include "npc.h" extern SpriteLoadData gUnk_08110C00; diff --git a/src/npc/npc23.c b/src/npc/npc23.c index 3fc78f64..df0786e4 100644 --- a/src/npc/npc23.c +++ b/src/npc/npc23.c @@ -2,7 +2,7 @@ #include "player.h" #include "structures.h" #include "functions.h" -#include "textbox.h" +#include "message.h" #include "npc.h" extern void (*const gUnk_081104C8[])(Entity*); diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index ca9f114b..23afefed 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -1,7 +1,7 @@ #include "global.h" #include "entity.h" #include "functions.h" -#include "audio.h" +#include "sound.h" #include "save.h" #include "flags.h" #include "object.h" diff --git a/src/npc/npc5.c b/src/npc/npc5.c index 350e1630..05d2c7e0 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -1,5 +1,5 @@ #include "functions.h" -#include "textbox.h" +#include "message.h" #include "npc.h" extern void (*const gUnk_0810AC1C[])(Entity*); diff --git a/src/npc/npc9.c b/src/npc/npc9.c index e4f879f9..df8cc07e 100644 --- a/src/npc/npc9.c +++ b/src/npc/npc9.c @@ -1,6 +1,6 @@ #include "global.h" #include "entity.h" -#include "textbox.h" +#include "message.h" #include "npc.h" extern void (*const gUnk_0810C290[])(Entity*); diff --git a/src/npc/picolyteBottle.c b/src/npc/picolyteBottle.c index fa39f1b9..962ca337 100644 --- a/src/npc/picolyteBottle.c +++ b/src/npc/picolyteBottle.c @@ -2,7 +2,7 @@ #include "script.h" #include "structures.h" #include "functions.h" -#include "textbox.h" +#include "message.h" #include "object.h" extern ScreenTransitionData gUnk_0813AD4C; diff --git a/src/npc/pina.c b/src/npc/pina.c index 179ee9d5..a36763ae 100644 --- a/src/npc/pina.c +++ b/src/npc/pina.c @@ -1,6 +1,6 @@ #include "entity.h" #include "functions.h" -#include "textbox.h" +#include "message.h" #include "save.h" #include "npc.h" diff --git a/src/npc/postman.c b/src/npc/postman.c index 79a12f3a..f72ec6d3 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "functions.h" #include "npc.h" diff --git a/src/npc/simon.c b/src/npc/simon.c index 3fffc8cc..c5e40ce5 100644 --- a/src/npc/simon.c +++ b/src/npc/simon.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "room.h" #include "flags.h" diff --git a/src/npc/stamp.c b/src/npc/stamp.c index 193ae976..645fe1cc 100644 --- a/src/npc/stamp.c +++ b/src/npc/stamp.c @@ -1,6 +1,6 @@ #include "global.h" #include "entity.h" -#include "textbox.h" +#include "message.h" #include "functions.h" #include "effects.h" #include "npc.h" diff --git a/src/npc/stockwell.c b/src/npc/stockwell.c index e6beed01..40ad8706 100644 --- a/src/npc/stockwell.c +++ b/src/npc/stockwell.c @@ -1,7 +1,7 @@ #include "entity.h" #include "script.h" #include "room.h" -#include "textbox.h" +#include "message.h" #include "functions.h" #include "npc.h" diff --git a/src/npc/vaati.c b/src/npc/vaati.c index a550c1a8..9db43d90 100644 --- a/src/npc/vaati.c +++ b/src/npc/vaati.c @@ -1,7 +1,7 @@ #include "global.h" #include "entity.h" #include "script.h" -#include "audio.h" +#include "sound.h" #include "functions.h" extern void sub_08095CB0(Entity*); diff --git a/src/npc/windTribespeople.c b/src/npc/windTribespeople.c index 76b73c07..ff20d96d 100644 --- a/src/npc/windTribespeople.c +++ b/src/npc/windTribespeople.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "npc.h" diff --git a/src/npc/zelda.c b/src/npc/zelda.c index 296e27e0..b66b879a 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "functions.h" #include "flags.h" diff --git a/src/object/archway.c b/src/object/archway.c index a8f659dc..e05095d5 100644 --- a/src/object/archway.c +++ b/src/object/archway.c @@ -1,5 +1,5 @@ #include "entity.h" -#include "overworld.h" +#include "game.h" void Archway(Entity* this) { if (this->action == 0) { diff --git a/src/object/book.c b/src/object/book.c index 9f3a5396..2ad7a40b 100644 --- a/src/object/book.c +++ b/src/object/book.c @@ -1,6 +1,6 @@ #include "object.h" #include "functions.h" -#include "textbox.h" +#include "message.h" extern void (*const BookActionFuncs[])(Entity*); extern s8 const gUnk_08123D94[]; diff --git a/src/object/heartContainer.c b/src/object/heartContainer.c index a8868df2..433fb87e 100644 --- a/src/object/heartContainer.c +++ b/src/object/heartContainer.c @@ -1,4 +1,4 @@ -#include "audio.h" +#include "sound.h" #include "entity.h" #include "flags.h" #include "functions.h" diff --git a/src/object/houseDoorExterior.c b/src/object/houseDoorExterior.c index 137b19a5..77736989 100644 --- a/src/object/houseDoorExterior.c +++ b/src/object/houseDoorExterior.c @@ -3,7 +3,7 @@ #include "flags.h" #include "room.h" #include "script.h" -#include "audio.h" +#include "sound.h" #include "object.h" #include "functions.h" #include "npc.h" diff --git a/src/object/itemOnGround.c b/src/object/itemOnGround.c index a7fa6987..d0874cba 100644 --- a/src/object/itemOnGround.c +++ b/src/object/itemOnGround.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "flags.h" #include "player.h" diff --git a/src/object/jailBars.c b/src/object/jailBars.c index da5844e5..84b44b61 100644 --- a/src/object/jailBars.c +++ b/src/object/jailBars.c @@ -2,7 +2,7 @@ #include "entity.h" #include "flags.h" #include "room.h" -#include "audio.h" +#include "sound.h" extern void sub_080A0960(Entity*, u32); extern void sub_0801AF18(u8*, u32, u32); diff --git a/src/object/lightableSwitch.c b/src/object/lightableSwitch.c index 14364188..639ffa17 100644 --- a/src/object/lightableSwitch.c +++ b/src/object/lightableSwitch.c @@ -1,6 +1,6 @@ #include "global.h" #include "asm.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "room.h" #include "flags.h" diff --git a/src/object/lockedDoor.c b/src/object/lockedDoor.c index b7fc357a..6f23a9d8 100644 --- a/src/object/lockedDoor.c +++ b/src/object/lockedDoor.c @@ -2,10 +2,10 @@ #include "asm.h" #include "entity.h" #include "flags.h" -#include "audio.h" +#include "sound.h" #include "functions.h" #include "effects.h" -#include "overworld.h" +#include "game.h" void sub_08083338(Entity*); void sub_080834B4(Entity*); diff --git a/src/object/metalDoor.c b/src/object/metalDoor.c index b8506bd8..ed89d276 100644 --- a/src/object/metalDoor.c +++ b/src/object/metalDoor.c @@ -3,7 +3,7 @@ #include "entity.h" #include "room.h" #include "flags.h" -#include "audio.h" +#include "sound.h" #include "functions.h" #include "effects.h" diff --git a/src/object/minishSizedArchway.c b/src/object/minishSizedArchway.c index ad109449..d087c8dc 100644 --- a/src/object/minishSizedArchway.c +++ b/src/object/minishSizedArchway.c @@ -1,5 +1,5 @@ #include "entity.h" -#include "overworld.h" +#include "game.h" void MinishSizedArchway(Entity* this) { if (this->action == 0) { diff --git a/src/object/minishSizedEntrance.c b/src/object/minishSizedEntrance.c index 5b891dd0..36d8e27a 100644 --- a/src/object/minishSizedEntrance.c +++ b/src/object/minishSizedEntrance.c @@ -1,5 +1,5 @@ #include "object.h" -#include "overworld.h" +#include "game.h" #include "functions.h" extern void (*const gUnk_08122254[])(Entity*); diff --git a/src/object/object2A.c b/src/object/object2A.c index 9e36b439..5ef7ba3e 100644 --- a/src/object/object2A.c +++ b/src/object/object2A.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "functions.h" #include "flags.h" diff --git a/src/object/object6A.c b/src/object/object6A.c index 456c28f2..13b93cce 100644 --- a/src/object/object6A.c +++ b/src/object/object6A.c @@ -2,7 +2,7 @@ #include "object.h" #include "area.h" #include "script.h" -#include "textbox.h" +#include "message.h" #include "functions.h" #include "screen.h" diff --git a/src/object/objectA.c b/src/object/objectA.c index 8578c1be..c302382e 100644 --- a/src/object/objectA.c +++ b/src/object/objectA.c @@ -4,7 +4,7 @@ #include "flags.h" #include "object.h" #include "functions.h" -#include "overworld.h" +#include "game.h" extern Hitbox gHitbox_2; diff --git a/src/object/octorokBossObject.c b/src/object/octorokBossObject.c index 0e1caf10..9a50f902 100644 --- a/src/object/octorokBossObject.c +++ b/src/object/octorokBossObject.c @@ -1,6 +1,6 @@ #include "functions.h" #include "object.h" -#include "overworld.h" +#include "game.h" extern void sub_0807B9B8(s32, s32, s32); diff --git a/src/object/pot.c b/src/object/pot.c index fae971d8..bf94a8be 100644 --- a/src/object/pot.c +++ b/src/object/pot.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "flags.h" #include "player.h" diff --git a/src/object/railtrack.c b/src/object/railtrack.c index 3344feaf..d92a9546 100644 --- a/src/object/railtrack.c +++ b/src/object/railtrack.c @@ -1,6 +1,6 @@ #include "global.h" #include "asm.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "room.h" #include "flags.h" diff --git a/src/object/swordsmanNewsletter.c b/src/object/swordsmanNewsletter.c index 1cca2ba0..d71fd1f8 100644 --- a/src/object/swordsmanNewsletter.c +++ b/src/object/swordsmanNewsletter.c @@ -1,6 +1,6 @@ #include "global.h" #include "entity.h" -#include "textbox.h" +#include "message.h" extern void sub_080787B4(Entity*); diff --git a/src/object/thoughtBubble.c b/src/object/thoughtBubble.c index e90cfbd7..57ba5cae 100644 --- a/src/object/thoughtBubble.c +++ b/src/object/thoughtBubble.c @@ -1,6 +1,6 @@ #include "global.h" #include "entity.h" -#include "audio.h" +#include "sound.h" extern void (*const ThoughtBubble_Behaviors[])(Entity*); diff --git a/src/object/treeHidingPortal.c b/src/object/treeHidingPortal.c index de23744d..d88f1c8e 100644 --- a/src/object/treeHidingPortal.c +++ b/src/object/treeHidingPortal.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "flags.h" #include "player.h" diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index 893ddddd..bfa09ca0 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -1,6 +1,6 @@ #include "global.h" #include "object.h" -#include "overworld.h" +#include "game.h" #include "functions.h" extern Hitbox gHitbox_1; diff --git a/src/object/windcrest.c b/src/object/windcrest.c index edbe2e75..15828253 100644 --- a/src/object/windcrest.c +++ b/src/object/windcrest.c @@ -1,5 +1,5 @@ #include "global.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "save.h" #include "script.h" diff --git a/src/player.c b/src/player.c index 12c3ac59..3a12ef17 100644 --- a/src/player.c +++ b/src/player.c @@ -1,9 +1,9 @@ #include "global.h" #include "asm.h" -#include "audio.h" +#include "sound.h" #include "entity.h" #include "player.h" -#include "textbox.h" +#include "message.h" #include "utils.h" #include "area.h" #include "item.h" @@ -11,7 +11,7 @@ #include "object.h" #include "functions.h" #include "hitbox.h" -#include "overworld.h" +#include "game.h" #include "screen.h" #include "main.h" diff --git a/src/playerItem/playerItem11.c b/src/playerItem/playerItem11.c index 242dc616..d8f3a3a7 100644 --- a/src/playerItem/playerItem11.c +++ b/src/playerItem/playerItem11.c @@ -2,7 +2,7 @@ #include "entity.h" #include "player.h" #include "functions.h" -#include "audio.h" +#include "sound.h" extern void sub_08078CD0(Entity*); extern void sub_08018FA0(Entity*); diff --git a/src/playerItem/playerItem12.c b/src/playerItem/playerItem12.c index 90eb82c2..f2fc617a 100644 --- a/src/playerItem/playerItem12.c +++ b/src/playerItem/playerItem12.c @@ -1,7 +1,7 @@ #include "asm.h" #include "entity.h" #include "functions.h" -#include "audio.h" +#include "sound.h" extern void (*const gUnk_0811B98C[])(Entity*); diff --git a/src/playerItem/playerItem14.c b/src/playerItem/playerItem14.c index f7e04fb3..e48fd10b 100644 --- a/src/playerItem/playerItem14.c +++ b/src/playerItem/playerItem14.c @@ -1,5 +1,5 @@ #include "entity.h" -#include "audio.h" +#include "sound.h" #include "functions.h" #include "effects.h" diff --git a/src/playerItem/playerItem15.c b/src/playerItem/playerItem15.c index 375e480f..16d0e35c 100644 --- a/src/playerItem/playerItem15.c +++ b/src/playerItem/playerItem15.c @@ -1,5 +1,5 @@ #include "entity.h" -#include "audio.h" +#include "sound.h" #include "coord.h" #include "functions.h" diff --git a/src/playerItem/playerItem3.c b/src/playerItem/playerItem3.c index 4de73cc2..beaf69a0 100644 --- a/src/playerItem/playerItem3.c +++ b/src/playerItem/playerItem3.c @@ -1,5 +1,5 @@ #include "entity.h" -#include "audio.h" +#include "sound.h" #include "functions.h" extern void (*const gUnk_080B77FC[])(Entity*); diff --git a/src/playerItem/playerItemPacciCane.c b/src/playerItem/playerItemPacciCane.c index 0b26c6fd..0e15c369 100644 --- a/src/playerItem/playerItemPacciCane.c +++ b/src/playerItem/playerItemPacciCane.c @@ -1,5 +1,5 @@ #include "entity.h" -#include "audio.h" +#include "sound.h" #include "functions.h" extern void (*const gUnk_0811B9D8[])(Entity*); diff --git a/src/playerItem/playerItemSwordBeam.c b/src/playerItem/playerItemSwordBeam.c index 24099003..0d72189d 100644 --- a/src/playerItem/playerItemSwordBeam.c +++ b/src/playerItem/playerItemSwordBeam.c @@ -2,7 +2,7 @@ #include "player.h" #include "coord.h" #include "functions.h" -#include "audio.h" +#include "sound.h" #include "effects.h" extern void (*const gUnk_080B43F4[])(Entity*); diff --git a/src/playerItemUtils.c b/src/playerItemUtils.c index 22772e62..be571896 100644 --- a/src/playerItemUtils.c +++ b/src/playerItemUtils.c @@ -2,9 +2,9 @@ #include "functions.h" #include "save.h" #include "utils.h" -#include "audio.h" +#include "sound.h" #include "flags.h" -#include "textbox.h" +#include "message.h" #include "object.h" #include "player.h" diff --git a/src/projectile/dirtBallProjectile.c b/src/projectile/dirtBallProjectile.c index 3723a0c7..a4a0d8e1 100644 --- a/src/projectile/dirtBallProjectile.c +++ b/src/projectile/dirtBallProjectile.c @@ -1,4 +1,4 @@ -#include "audio.h" +#include "sound.h" #include "entity.h" #include "enemy.h" #include "player.h" diff --git a/src/projectile/gyorgTail.c b/src/projectile/gyorgTail.c index 556087f7..c36bc6ad 100644 --- a/src/projectile/gyorgTail.c +++ b/src/projectile/gyorgTail.c @@ -1,7 +1,7 @@ #include "entity.h" #include "asm.h" #include "coord.h" -#include "audio.h" +#include "sound.h" #include "functions.h" extern u8 gEntCount; diff --git a/src/projectile/mandiblesProjectile.c b/src/projectile/mandiblesProjectile.c index f01fc3b2..e5b27454 100644 --- a/src/projectile/mandiblesProjectile.c +++ b/src/projectile/mandiblesProjectile.c @@ -2,7 +2,7 @@ #include "enemy.h" #include "coord.h" #include "functions.h" -#include "overworld.h" +#include "game.h" extern Entity* sub_08049DF4(u32); extern u32 sub_08049F1C(Entity*, Entity*, u32); diff --git a/src/projectile/mazaalEnergyBeam.c b/src/projectile/mazaalEnergyBeam.c index 8d617ba3..6e284ccf 100644 --- a/src/projectile/mazaalEnergyBeam.c +++ b/src/projectile/mazaalEnergyBeam.c @@ -1,5 +1,5 @@ #include "entity.h" -#include "audio.h" +#include "sound.h" #include "coord.h" extern void (*const MazaalEnergyBeam_Actions[])(Entity*); diff --git a/src/room.c b/src/room.c index dc8739d6..d752abfb 100644 --- a/src/room.c +++ b/src/room.c @@ -5,7 +5,7 @@ #include "functions.h" #include "utils.h" #include "object.h" -#include "overworld.h" +#include "game.h" extern void sub_0804B058(EntityData* dat); extern void sub_0801AC98(); diff --git a/src/roomInit.c b/src/roomInit.c index 9b9c8612..8c0557c2 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -5,7 +5,7 @@ #include "functions.h" -#include "audio.h" +#include "sound.h" #include "effects.h" #include "screen.h" #include "flags.h" @@ -13,7 +13,7 @@ #include "save.h" #include "area.h" -#include "overworld.h" +#include "game.h" #include "npc.h" diff --git a/src/save.c b/src/save.c index a5b8caea..aa401f10 100644 --- a/src/save.c +++ b/src/save.c @@ -1,10 +1,10 @@ #include "save.h" #include "gba/eeprom.h" -#include "audio.h" +#include "sound.h" #include "menu.h" #include "main.h" #include "functions.h" -#include "overworld.h" +#include "game.h" typedef struct SaveFileStatus { u16 checksum1; diff --git a/src/script.c b/src/script.c index 4e573495..b2648251 100644 --- a/src/script.c +++ b/src/script.c @@ -2,7 +2,7 @@ #include "main.h" #include "screen.h" #include "area.h" -#include "overworld.h" +#include "game.h" #include "object.h" #include "npc.h" diff --git a/src/code_0807CC3C.c b/src/scroll.c similarity index 74% rename from src/code_0807CC3C.c rename to src/scroll.c index de4f6e24..d6079438 100644 --- a/src/code_0807CC3C.c +++ b/src/scroll.c @@ -1,6 +1,5 @@ #include "global.h" -// these three functions use gRoomControls, maybe once that is understood better, these can be decompiled easier ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D280.inc", void sub_0807D280(u32 unk_1, u32 unk_2)) ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D46C.inc", void sub_0807D46C(u32 unk_1, u32 unk_2)) diff --git a/src/audio.c b/src/sound.c similarity index 99% rename from src/audio.c rename to src/sound.c index 998b00b4..32dc20c4 100644 --- a/src/audio.c +++ b/src/sound.c @@ -1,7 +1,7 @@ #include "global.h" #include "main.h" #include "gba/m4a.h" -#include "audio.h" +#include "sound.h" #include "utils.h" #define IS_BGM(song) ((song)-1 <= NUM_BGM - 1) From 0b829b13bde36e712b684c0eed07eaee541685c9 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Wed, 29 Dec 2021 06:34:59 +0200 Subject: [PATCH 058/168] Improve sub_0802594C --- src/enemy/puffstool.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/enemy/puffstool.c b/src/enemy/puffstool.c index 2641033f..93ac0dca 100644 --- a/src/enemy/puffstool.c +++ b/src/enemy/puffstool.c @@ -4,7 +4,7 @@ extern u32 sub_080002E0(u32, u32); extern u32 sub_080002C8(u16, u8); -extern u16 sub_080002D4(u32, u32, u32); +extern u8 sub_080002D4(u32, u32, u32); extern void sub_0804AA1C(Entity*); extern Entity* sub_08049DF4(u32); @@ -465,19 +465,22 @@ bool32 sub_080258C4(Entity* this) { } } +// regalloc NONMATCH("asm/non_matching/puffstool/sub_0802594C.inc", bool32 sub_0802594C(Entity* this, u32 param_2)) { + s16 xDiff; + s16 yDiff; const s8* unk = gUnk_080CC090[param_2]; u32 uVar1 = this->collisionLayer; RoomControls* ctrl = &gRoomControls; - u16 xDiff = (this->x.HALF.HI - ctrl->roomOriginX + 8) & -0x10; - u16 yDiff = (this->y.HALF.HI - ctrl->roomOriginY + 8) & -0x10; + xDiff = (this->x.HALF.HI - ctrl->roomOriginX + 8) & -0x10; + yDiff = (this->y.HALF.HI - ctrl->roomOriginY + 8) & -0x10; do { - u16 iVar9 = xDiff + unk[0]; - u16 iVar11 = yDiff + unk[1]; - u32 bVar4 = sub_080002D4(iVar9 - 0x00, iVar11 - 0x00, uVar1); - u32 bVar5 = sub_080002D4(iVar9 - 0x10, iVar11 - 0x00, uVar1); - u32 bVar6 = sub_080002D4(iVar9 - 0x00, iVar11 - 0x10, uVar1); - u32 bVar7 = sub_080002D4(iVar9 - 0x10, iVar11 - 0x10, uVar1); + s16 iVar9 = xDiff + unk[0]; + s16 iVar11 = yDiff + unk[1]; + u8 bVar4 = sub_080002D4(iVar9 - 0x00, iVar11 - 0x00, uVar1); + u8 bVar5 = sub_080002D4(iVar9 - 0x10, iVar11 - 0x00, uVar1); + u8 bVar6 = sub_080002D4(iVar9 - 0x00, iVar11 - 0x10, uVar1); + u8 bVar7 = sub_080002D4(iVar9 - 0x10, iVar11 - 0x10, uVar1); if ((bVar6 | bVar4 | bVar5 | bVar7) == 0) { this->field_0x7c.HALF.LO = ctrl->roomOriginX + iVar9; this->field_0x7c.HALF.HI = ctrl->roomOriginY + iVar11; From 48d23eb91954a9b01f02938ec70e0ac3f9358859 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Wed, 29 Dec 2021 07:10:48 +0200 Subject: [PATCH 059/168] Improve nonmatching sub_0802AFC8 --- src/enemy/bombPeahat.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c index 45800c5c..212ee329 100644 --- a/src/enemy/bombPeahat.c +++ b/src/enemy/bombPeahat.c @@ -473,8 +473,9 @@ void sub_0802AF9C(Entity* this) { } NONMATCH("asm/non_matching/bombPeahat/sub_0802AFC8.inc", void sub_0802AFC8(Entity* this)) { + u8 field_0xf = this->field_0xf; u32 flag = 8; - if (this->field_0xf < 0x29) { + if (field_0xf < 0x29) { u32 tmp; flag = 4; @@ -491,10 +492,10 @@ NONMATCH("asm/non_matching/bombPeahat/sub_0802AFC8.inc", void sub_0802AFC8(Entit sub_0805EC9C(this, tmp, tmp, 0); } - if (this->field_0xf & flag) { - this->palette.b.b0 = 0; - } else { + if ((this->field_0xf & flag) == 0) { this->palette.b.b0 = this->palette.b.b4; + } else { + this->palette.b.b0 = 0; } } END_NONMATCH From cbd0b7e6c96a8f33ca792d77d93c835d9826b6a9 Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 28 Dec 2021 23:33:10 -0800 Subject: [PATCH 060/168] rename files --- asm/{code_0801967C.s => beanstalkSubtask.s} | 0 asm/code_0801C1D4.s | 196 -- asm/code_0801C370.s | 151 -- asm/code_0801C5E0.s | 112 -- asm/code_0801C85C.s | 869 --------- asm/code_08056418.s | 25 - asm/code_0805EC04.s | 1197 ------------ asm/code_080AD90C.s | 157 -- asm/{code_0806FA6C.s => coord.s} | 0 asm/drawHealth.s | 204 -- asm/drawRupees.s | 160 -- asm/drawUI.s | 26 - asm/{code_080011C4.s => enemy.s} | 0 asm/{code_0804A720.s => enemyUtils.s} | 0 asm/{code_0804AA84.s => enterPortalSubtask.s} | 0 asm/{code_08018500.s => kinstone.s} | 0 asm/{ => lib}/libagbsyscall.s | 0 asm/{ => lib}/libgcc.s | 0 asm/{ => lib}/m4a_asm.s | 0 asm/{code_080ADD30.s => movement.s} | 1079 ----------- .../playerItemPacciCane/sub_080705AC.inc} | 22 +- .../vram/sub_080AD8F0.inc} | 11 +- asm/non_matching/vram/sub_080AD918.inc | 76 + asm/{code_080A29BC.s => objectUtils.s} | 0 asm/{code_0800857C.s => player.s} | 0 asm/{code_08077698.s => playerUtils.s} | 0 asm/{code_08016984.s => script.s} | 0 asm/{code_0807F0D8.s => scroll.s} | 0 asm/{code_080A3480.s => staffroll.s} | 0 asm/sub_0801C824.s | 38 - asm/sub_0804AA30.s | 31 - asm/sub_080A276C.s | 106 - asm/{code_080A3BD0.s => subtask.s} | 0 asm/{code_080A5574.s => subtask2.s} | 0 asm/text.s | 1203 ++++++++++++ asm/ui.s | 1708 +++++++++++++++++ asm/{code_0801D79C.s => utils.s} | 0 asm/{code_08000108.s => veneer.s} | 0 asm/vram.s | 1083 +++++++++++ include/main.h | 17 +- include/room.h | 5 +- include/save.h | 4 +- include/structures.h | 28 +- linker.ld | 97 +- src/affine.c | 72 + src/code_0805EC04.c | 21 +- src/code_0808091C.c | 131 -- src/createEnemy.c | 11 +- src/{code_0804AA84.c => enterPortalSubtask.c} | 0 src/entity.c | 7 +- src/fade.c | 8 +- src/interrupts.c | 10 +- src/{code_08018C58.c => kinstone.c} | 0 src/main.c | 2 +- src/manager/manager14.c | 2 +- src/message.c | 8 + src/objectUtils.c | 30 + src/playerItem/playerItemPacciCane.c | 29 + src/screenTilemap.c | 7 + src/scroll.c | 127 +- src/{sub_080A3B84.c => subtask.c} | 0 src/{sub_080A554C.c => subtask2.c} | 0 src/{code_0805F9A0.c => text.c} | 1 - src/{intro.c => title.c} | 0 src/{ezloNag.c => ui.c} | 0 65 files changed, 4442 insertions(+), 4629 deletions(-) rename asm/{code_0801967C.s => beanstalkSubtask.s} (100%) delete mode 100644 asm/code_0801C1D4.s delete mode 100644 asm/code_0801C370.s delete mode 100644 asm/code_0801C5E0.s delete mode 100644 asm/code_0801C85C.s delete mode 100644 asm/code_08056418.s delete mode 100644 asm/code_080AD90C.s rename asm/{code_0806FA6C.s => coord.s} (100%) delete mode 100644 asm/drawHealth.s delete mode 100644 asm/drawRupees.s delete mode 100644 asm/drawUI.s rename asm/{code_080011C4.s => enemy.s} (100%) rename asm/{code_0804A720.s => enemyUtils.s} (100%) rename asm/{code_0804AA84.s => enterPortalSubtask.s} (100%) rename asm/{code_08018500.s => kinstone.s} (100%) rename asm/{ => lib}/libagbsyscall.s (100%) rename asm/{ => lib}/libgcc.s (100%) rename asm/{ => lib}/m4a_asm.s (100%) rename asm/{code_080ADD30.s => movement.s} (65%) rename asm/{code_0807059C.s => non_matching/playerItemPacciCane/sub_080705AC.inc} (83%) rename asm/{sub_080AD8F0.s => non_matching/vram/sub_080AD8F0.inc} (61%) create mode 100644 asm/non_matching/vram/sub_080AD918.inc rename asm/{code_080A29BC.s => objectUtils.s} (100%) rename asm/{code_0800857C.s => player.s} (100%) rename asm/{code_08077698.s => playerUtils.s} (100%) rename asm/{code_08016984.s => script.s} (100%) rename asm/{code_0807F0D8.s => scroll.s} (100%) rename asm/{code_080A3480.s => staffroll.s} (100%) delete mode 100644 asm/sub_0801C824.s delete mode 100644 asm/sub_0804AA30.s delete mode 100644 asm/sub_080A276C.s rename asm/{code_080A3BD0.s => subtask.s} (100%) rename asm/{code_080A5574.s => subtask2.s} (100%) create mode 100644 asm/text.s create mode 100644 asm/ui.s rename asm/{code_0801D79C.s => utils.s} (100%) rename asm/{code_08000108.s => veneer.s} (100%) create mode 100644 asm/vram.s create mode 100644 src/affine.c delete mode 100644 src/code_0808091C.c rename src/{code_0804AA84.c => enterPortalSubtask.c} (100%) rename src/{code_08018C58.c => kinstone.c} (100%) create mode 100644 src/screenTilemap.c rename src/{sub_080A3B84.c => subtask.c} (100%) rename src/{sub_080A554C.c => subtask2.c} (100%) rename src/{code_0805F9A0.c => text.c} (99%) rename src/{intro.c => title.c} (100%) rename src/{ezloNag.c => ui.c} (100%) diff --git a/asm/code_0801967C.s b/asm/beanstalkSubtask.s similarity index 100% rename from asm/code_0801967C.s rename to asm/beanstalkSubtask.s diff --git a/asm/code_0801C1D4.s b/asm/code_0801C1D4.s deleted file mode 100644 index 0432cd6d..00000000 --- a/asm/code_0801C1D4.s +++ /dev/null @@ -1,196 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0801C1D4 -sub_0801C1D4: @ 0x0801C1D4 - push {r4, lr} - movs r4, #0 -_0801C1D8: - lsls r1, r4, #5 - ldr r0, _0801C200 @ =gUnk_0200AF34 - adds r2, r1, r0 - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801C1F8 - ldrb r0, [r2, #1] - lsls r0, r0, #4 - ldr r1, _0801C204 @ =gUnk_080C8F8C - adds r0, r0, r1 - ldr r1, [r0, #8] - adds r0, r2, #0 - bl _call_via_r1 -_0801C1F8: - adds r4, #1 - cmp r4, #0x17 - bls _0801C1D8 - pop {r4, pc} - .align 2, 0 -_0801C200: .4byte gUnk_0200AF34 -_0801C204: .4byte gUnk_080C8F8C - - thumb_func_start sub_0801C208 -sub_0801C208: @ 0x0801C208 - push {r4, r5, lr} - movs r5, #0 - ldr r4, _0801C250 @ =gOamCmd -_0801C20E: - lsls r1, r5, #5 - ldr r0, _0801C254 @ =gUnk_0200AF34 - adds r3, r1, r0 - ldrb r1, [r3] - movs r0, #3 - ands r0, r1 - cmp r0, #3 - bne _0801C248 - ldrh r0, [r3, #0xc] - strh r0, [r4] - ldrh r0, [r3, #0xe] - strh r0, [r4, #2] - ldrb r2, [r3, #1] - lsls r2, r2, #4 - ldr r0, _0801C258 @ =gUnk_080C8F8C - adds r2, r2, r0 - ldrh r0, [r2] - strh r0, [r4, #4] - ldrh r0, [r2, #2] - strh r0, [r4, #6] - ldrb r0, [r3, #0x18] - lsls r0, r0, #0xc - ldrh r1, [r3, #0x1a] - orrs r0, r1 - strh r0, [r4, #8] - ldrh r0, [r2, #6] - ldrb r1, [r3, #0x10] - bl sub_080ADA14 -_0801C248: - adds r5, #1 - cmp r5, #0x17 - bls _0801C20E - pop {r4, r5, pc} - .align 2, 0 -_0801C250: .4byte gOamCmd -_0801C254: .4byte gUnk_0200AF34 -_0801C258: .4byte gUnk_080C8F8C - - thumb_func_start sub_0801C25C -sub_0801C25C: @ 0x0801C25C - push {r4, r5, r6, r7, lr} - movs r4, #0 - ldr r5, _0801C2E4 @ =gUnk_0200AF34 - adds r6, r5, #0 - subs r6, #0x34 - movs r7, #0xd - rsbs r7, r7, #0 - ldr r3, _0801C2E8 @ =0x040000D4 -_0801C26C: - lsls r0, r4, #5 - adds r2, r0, r5 - ldrb r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #3 - bne _0801C2A8 - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _0801C2A8 - adds r0, r7, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r2, #0x1c] - str r0, [r3] - ldrh r0, [r2, #0x1a] - lsls r0, r0, #5 - ldr r1, _0801C2EC @ =0x06010000 - adds r0, r0, r1 - str r0, [r3, #4] - ldrb r0, [r2, #0x19] - lsls r0, r0, #3 - movs r1, #0x84 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r3, #8] - ldr r0, [r3, #8] -_0801C2A8: - adds r4, #1 - cmp r4, #0x17 - ble _0801C26C - adds r2, r6, #0 - ldrb r3, [r2, #0x13] - movs r0, #0x13 - ldrsb r0, [r2, r0] - cmp r0, #0 - bge _0801C2C8 - movs r1, #0x7f - ands r1, r3 - strb r1, [r2, #0x13] - movs r0, #0x8d - lsls r0, r0, #1 - bl sub_0801C2F0 -_0801C2C8: - ldrb r2, [r6, #0x14] - movs r0, #0x14 - ldrsb r0, [r6, r0] - cmp r0, #0 - bge _0801C2E0 - movs r1, #0x7f - ands r1, r2 - strb r1, [r6, #0x14] - movs r0, #0x93 - lsls r0, r0, #1 - bl sub_0801C2F0 -_0801C2E0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801C2E4: .4byte gUnk_0200AF34 -_0801C2E8: .4byte 0x040000D4 -_0801C2EC: .4byte 0x06010000 - - thumb_func_start sub_0801C2F0 -sub_0801C2F0: @ 0x0801C2F0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, r1, #0 - lsls r5, r4, #5 - ldr r1, _0801C330 @ =0x06010000 - adds r4, r5, r1 - movs r1, #0xa - bl Div - cmp r0, #9 - bls _0801C308 - movs r0, #9 -_0801C308: - ldr r2, _0801C334 @ =0x040000D4 - lsls r0, r0, #5 - ldr r3, _0801C338 @ =gUnk_085C4620 - adds r0, r0, r3 - str r0, [r2] - str r4, [r2, #4] - ldr r4, _0801C33C @ =0x84000008 - str r4, [r2, #8] - ldr r0, [r2, #8] - adds r1, #0xa - lsls r1, r1, #5 - adds r1, r1, r3 - str r1, [r2] - ldr r1, _0801C340 @ =0x06010020 - adds r0, r5, r1 - str r0, [r2, #4] - str r4, [r2, #8] - ldr r0, [r2, #8] - pop {r4, r5, pc} - .align 2, 0 -_0801C330: .4byte 0x06010000 -_0801C334: .4byte 0x040000D4 -_0801C338: .4byte gUnk_085C4620 -_0801C33C: .4byte 0x84000008 -_0801C340: .4byte 0x06010020 diff --git a/asm/code_0801C370.s b/asm/code_0801C370.s deleted file mode 100644 index f9c6146d..00000000 --- a/asm/code_0801C370.s +++ /dev/null @@ -1,151 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0801C370 -sub_0801C370: @ 0x0801C370 - push {r4, r5, r6, lr} - cmp r0, #0 - bne _0801C390 - ldr r0, _0801C388 @ =gSave - adds r1, r0, #0 - adds r1, #0xaa - ldrb r1, [r1] - lsrs r6, r1, #1 - adds r0, #0xc0 - ldrh r4, [r0] - ldr r5, _0801C38C @ =gUnk_0200AF00 - b _0801C398 - .align 2, 0 -_0801C388: .4byte gSave -_0801C38C: .4byte gUnk_0200AF00 -_0801C390: - ldr r0, _0801C470 @ =gUnk_0200AF00 - ldrb r6, [r0, #3] - ldrh r4, [r0, #0xe] - adds r5, r0, #0 -_0801C398: - movs r1, #0xcd - lsls r1, r1, #2 - adds r0, r5, #0 - bl MemClear - strb r6, [r5, #3] - strh r4, [r5, #0xe] - ldr r0, _0801C474 @ =gSave - adds r0, #0xab - ldrb r0, [r0] - lsrs r0, r0, #1 - strb r0, [r5, #4] - movs r0, #0xc - bl LoadPaletteGroup - movs r0, #0x10 - bl LoadGfxGroup - ldr r4, _0801C478 @ =gBG0Buffer - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r4, #0 - bl MemClear - ldr r1, _0801C47C @ =gScreen - str r4, [r1, #0x10] - ldr r0, _0801C480 @ =0x00001F0C - strh r0, [r1, #8] - ldrh r2, [r1] - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r3, #0 - orrs r0, r2 - strh r0, [r1] - ldr r1, _0801C484 @ =gUnk_03000000 - ldr r2, _0801C488 @ =0x00000427 - adds r0, r1, r2 - movs r2, #1 - strb r2, [r0] - ldr r3, _0801C48C @ =0x00000426 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _0801C490 @ =0x0000042E - adds r1, r1, r0 - strb r2, [r1] - movs r0, #0x7f - strb r0, [r5, #0x13] - strb r0, [r5, #0x14] - strb r0, [r5, #8] - bl sub_0801C6B0 - bl sub_0801C4B0 - bl sub_0801C85C - bl sub_0801C99C - movs r0, #0xd0 - strh r0, [r5, #0x16] - movs r0, #0xb8 - strh r0, [r5, #0x18] - movs r0, #0xd8 - strh r0, [r5, #0x1a] - movs r0, #0x1c - strh r0, [r5, #0x1c] - strh r0, [r5, #0x1e] - movs r0, #0xe - strh r0, [r5, #0x20] - adds r0, r5, #0 - adds r0, #0x34 - movs r1, #0xc0 - lsls r1, r1, #2 - bl MemClear - movs r0, #5 - movs r1, #9 - bl sub_0801CA6C - movs r0, #3 - movs r1, #0 - bl sub_0801CA6C - movs r0, #4 - movs r1, #0 - bl sub_0801CA6C - movs r0, #2 - movs r1, #0 - bl sub_0801CA6C - movs r0, #1 - movs r1, #0 - bl sub_0801CA6C - movs r0, #0 - movs r1, #0 - bl sub_0801CA6C - movs r0, #7 - movs r1, #0 - bl sub_0801CA6C - movs r0, #6 - movs r1, #0 - bl sub_0801CA6C - pop {r4, r5, r6, pc} - .align 2, 0 -_0801C470: .4byte gUnk_0200AF00 -_0801C474: .4byte gSave -_0801C478: .4byte gBG0Buffer -_0801C47C: .4byte gScreen -_0801C480: .4byte 0x00001F0C -_0801C484: .4byte gUnk_03000000 -_0801C488: .4byte 0x00000427 -_0801C48C: .4byte 0x00000426 -_0801C490: .4byte 0x0000042E - - thumb_func_start RefreshUI -RefreshUI: @ 0x0801C494 - ldr r1, _0801C49C @ =gScreen - movs r0, #1 - strh r0, [r1, #0xe] - bx lr - .align 2, 0 -_0801C49C: .4byte gScreen - - thumb_func_start RecoverUI -RecoverUI: @ 0x0801C4A0 - ldr r1, _0801C4AC @ =gUnk_0200AF00 - movs r0, #0 - strb r0, [r1, #2] - strb r0, [r1, #0x10] - strb r0, [r1, #0xa] - bx lr - .align 2, 0 -_0801C4AC: .4byte gUnk_0200AF00 diff --git a/asm/code_0801C5E0.s b/asm/code_0801C5E0.s deleted file mode 100644 index 3d499d5f..00000000 --- a/asm/code_0801C5E0.s +++ /dev/null @@ -1,112 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0801C5E0 -sub_0801C5E0: @ 0x0801C5E0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r7, _0801C650 @ =gUnk_085C4B20 - cmp r2, #0 - bne _0801C5F0 - ldr r0, _0801C654 @ =0xFFFFFD80 - adds r7, r7, r0 -_0801C5F0: - ldr r0, _0801C658 @ =0x000003FF - ands r0, r4 - lsls r6, r0, #5 - ldr r0, _0801C65C @ =0x0600C000 - adds r4, r6, r0 - cmp r3, #2 - beq _0801C620 - cmp r3, #3 - bne _0801C63C - adds r0, r5, #0 - movs r1, #0x64 - bl Div - adds r5, r1, #0 - ldr r1, _0801C660 @ =0x040000D4 - lsls r0, r0, #6 - adds r0, r7, r0 - str r0, [r1] - str r4, [r1, #4] - ldr r0, _0801C664 @ =0x84000010 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _0801C668 @ =0x0600C040 - adds r4, r6, r0 -_0801C620: - adds r0, r5, #0 - movs r1, #0xa - bl Div - adds r5, r1, #0 - ldr r1, _0801C660 @ =0x040000D4 - lsls r0, r0, #6 - adds r0, r7, r0 - str r0, [r1] - str r4, [r1, #4] - ldr r0, _0801C664 @ =0x84000010 - str r0, [r1, #8] - ldr r0, [r1, #8] - adds r4, #0x40 -_0801C63C: - ldr r1, _0801C660 @ =0x040000D4 - lsls r0, r5, #6 - adds r0, r7, r0 - str r0, [r1] - str r4, [r1, #4] - ldr r0, _0801C664 @ =0x84000010 - str r0, [r1, #8] - ldr r0, [r1, #8] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801C650: .4byte gUnk_085C4B20 -_0801C654: .4byte 0xFFFFFD80 -_0801C658: .4byte 0x000003FF -_0801C65C: .4byte 0x0600C000 -_0801C660: .4byte 0x040000D4 -_0801C664: .4byte 0x84000010 -_0801C668: .4byte 0x0600C040 - - thumb_func_start sub_0801C66C -sub_0801C66C: @ 0x0801C66C - push {lr} - ldr r1, _0801C6A4 @ =gUnk_0200AF00 - ldrb r0, [r1, #2] - cmp r0, #0 - beq _0801C6A2 - movs r0, #0 - strb r0, [r1, #2] - ldrb r0, [r1, #4] - movs r2, #1 - cmp r0, #0x28 - bls _0801C684 - movs r2, #2 -_0801C684: - ldr r0, _0801C6A8 @ =gUnk_02034CF0 - ldr r3, _0801C6AC @ =gScreen - movs r1, #0 -_0801C68A: - str r1, [r0] - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - str r1, [r0, #0x10] - str r1, [r0, #0x14] - adds r0, #0x40 - subs r2, #1 - cmp r2, #0 - bgt _0801C68A - movs r0, #1 - strh r0, [r3, #0xe] -_0801C6A2: - pop {pc} - .align 2, 0 -_0801C6A4: .4byte gUnk_0200AF00 -_0801C6A8: .4byte gUnk_02034CF0 -_0801C6AC: .4byte gScreen diff --git a/asm/code_0801C85C.s b/asm/code_0801C85C.s deleted file mode 100644 index 9cfb23ac..00000000 --- a/asm/code_0801C85C.s +++ /dev/null @@ -1,869 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0801C85C -sub_0801C85C: @ 0x0801C85C - push {r4, r5, r6, lr} - movs r2, #0 - ldr r5, _0801C884 @ =gUnk_0200AF00 - ldrb r1, [r5, #1] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _0801C878 - ldr r0, _0801C888 @ =gPlayerState - adds r0, #0xa0 - ldrb r1, [r0] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r2, r0, #0x1f -_0801C878: - cmp r2, #0 - bne _0801C88C - bl sub_0801C824 - b _0801C984 - .align 2, 0 -_0801C884: .4byte gUnk_0200AF00 -_0801C888: .4byte gPlayerState -_0801C88C: - ldrb r0, [r5, #4] - ldr r4, _0801C92C @ =gUnk_02034D30 - cmp r0, #0x28 - bls _0801C896 - adds r4, #0x40 -_0801C896: - ldr r0, _0801C930 @ =gPlayerState - adds r0, #0xa4 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r0, #0x13 - movs r1, #0x14 - bl Div - adds r1, r0, #0 - cmp r1, #0x28 - bls _0801C8AE - movs r1, #0x28 -_0801C8AE: - ldrb r0, [r5, #6] - cmp r0, #0 - beq _0801C8BA - ldrb r0, [r5, #7] - cmp r0, r1 - beq _0801C910 -_0801C8BA: - movs r6, #1 - strb r6, [r5, #6] - strb r1, [r5, #7] - adds r0, r1, #0 - movs r1, #4 - bl Div - adds r3, r0, #0 - adds r5, r1, #0 - ldr r1, _0801C934 @ =0x0000F016 - adds r0, r1, #0 - strh r0, [r4] - ldr r1, _0801C938 @ =0x0000F416 - adds r0, r1, #0 - strh r0, [r4, #0x16] - ldr r2, _0801C93C @ =0x040000D4 - movs r0, #0xa - subs r0, r0, r3 - lsls r0, r0, #1 - ldr r1, _0801C940 @ =gUnk_080C8F54 - adds r0, r0, r1 - str r0, [r2] - adds r0, r4, #2 - str r0, [r2, #4] - ldr r0, _0801C944 @ =0x8000000A - str r0, [r2, #8] - ldr r0, [r2, #8] - cmp r5, #0 - beq _0801C90C - lsls r2, r3, #1 - adds r2, r2, r4 - adds r0, r5, #0 - adds r0, #0x17 - ldr r3, _0801C948 @ =0x000003FF - adds r1, r3, #0 - ands r0, r1 - movs r3, #0xf0 - lsls r3, r3, #8 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2, #2] -_0801C90C: - ldr r0, _0801C94C @ =gScreen - strh r6, [r0, #0xe] -_0801C910: - ldr r0, _0801C930 @ =gPlayerState - adds r0, #0xa0 - ldrb r0, [r0] - cmp r0, #5 - bgt _0801C962 - cmp r0, #4 - blt _0801C962 - ldr r2, _0801C950 @ =gUnk_0200AF00 - ldrb r1, [r2, #9] - adds r4, r2, #0 - cmp r0, #4 - bne _0801C954 - adds r0, r1, #2 - b _0801C956 - .align 2, 0 -_0801C92C: .4byte gUnk_02034D30 -_0801C930: .4byte gPlayerState -_0801C934: .4byte 0x0000F016 -_0801C938: .4byte 0x0000F416 -_0801C93C: .4byte 0x040000D4 -_0801C940: .4byte gUnk_080C8F54 -_0801C944: .4byte 0x8000000A -_0801C948: .4byte 0x000003FF -_0801C94C: .4byte gScreen -_0801C950: .4byte gUnk_0200AF00 -_0801C954: - adds r0, r1, #1 -_0801C956: - strb r0, [r2, #9] - ldrb r0, [r4, #9] - lsrs r3, r0, #4 - movs r0, #3 - ands r3, r0 - b _0801C966 -_0801C962: - movs r3, #0 - ldr r4, _0801C988 @ =gUnk_0200AF00 -_0801C966: - ldrb r0, [r4, #8] - cmp r3, r0 - beq _0801C984 - strb r3, [r4, #8] - ldr r4, _0801C98C @ =0x0600C2C0 - ldr r1, _0801C990 @ =0x040000D4 - ldr r2, _0801C994 @ =gUnk_080C8F7C - lsls r0, r3, #2 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - str r4, [r1, #4] - ldr r0, _0801C998 @ =0x84000030 - str r0, [r1, #8] - ldr r0, [r1, #8] -_0801C984: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801C988: .4byte gUnk_0200AF00 -_0801C98C: .4byte 0x0600C2C0 -_0801C990: .4byte 0x040000D4 -_0801C994: .4byte gUnk_080C8F7C -_0801C998: .4byte 0x84000030 - - thumb_func_start sub_0801C99C -sub_0801C99C: @ 0x0801C99C - push {r4, r5, lr} - ldr r4, _0801C9E0 @ =gUnk_0200AF00 - ldrb r1, [r4, #1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0801C9B2 - bl sub_08052724 - cmp r0, #0 - bne _0801C9EC -_0801C9B2: - ldrb r0, [r4, #0x10] - cmp r0, #0 - beq _0801CA50 - movs r0, #0 - strb r0, [r4, #0x10] - ldr r2, _0801C9E4 @ =gUnk_020350E2 - strh r0, [r2] - strh r0, [r2, #2] - strh r0, [r2, #4] - strh r0, [r2, #6] - adds r1, r2, #0 - adds r1, #0x40 - strh r0, [r1] - adds r1, #2 - strh r0, [r1] - adds r1, #2 - strh r0, [r1] - adds r1, #2 - strh r0, [r1] - ldr r1, _0801C9E8 @ =gScreen - movs r0, #1 - strh r0, [r1, #0xe] - b _0801CA50 - .align 2, 0 -_0801C9E0: .4byte gUnk_0200AF00 -_0801C9E4: .4byte gUnk_020350E2 -_0801C9E8: .4byte gScreen -_0801C9EC: - ldrb r0, [r4, #0x10] - cmp r0, #0 - bne _0801CA1E - ldr r2, _0801CA54 @ =gUnk_020350E2 - adds r1, r2, #0 - adds r1, #0x40 - ldr r3, _0801CA58 @ =0x0000F01C - strh r3, [r2] - adds r0, r3, #1 - strh r0, [r2, #2] - adds r0, r3, #2 - strh r0, [r1] - adds r0, r3, #3 - strh r0, [r1, #2] - adds r3, #0x5a - strh r3, [r2, #4] - adds r0, r3, #1 - strh r0, [r1, #4] - adds r0, r3, #2 - strh r0, [r2, #6] - adds r0, r3, #3 - strh r0, [r1, #6] - ldr r1, _0801CA5C @ =gScreen - movs r0, #1 - strh r0, [r1, #0xe] -_0801CA1E: - ldr r0, _0801CA60 @ =gSave - ldr r3, _0801CA64 @ =gArea - ldrb r1, [r3, #3] - ldr r5, _0801CA68 @ =0x0000045C - adds r2, r0, r5 - adds r1, r1, r2 - ldrb r0, [r4, #0x12] - ldrb r1, [r1] - cmp r0, r1 - bne _0801CA38 - ldrb r0, [r4, #0x10] - cmp r0, #0 - bne _0801CA50 -_0801CA38: - movs r0, #2 - strb r0, [r4, #0x10] - ldrb r0, [r3, #3] - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r4, #0x12] - ldrb r1, [r4, #0x12] - movs r0, #0x76 - movs r2, #0 - movs r3, #2 - bl sub_0801C5E0 -_0801CA50: - pop {r4, r5, pc} - .align 2, 0 -_0801CA54: .4byte gUnk_020350E2 -_0801CA58: .4byte 0x0000F01C -_0801CA5C: .4byte gScreen -_0801CA60: .4byte gSave -_0801CA64: .4byte gArea -_0801CA68: .4byte 0x0000045C - - thumb_func_start sub_0801CA6C -sub_0801CA6C: @ 0x0801CA6C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r3, #0 - ldr r7, _0801CAA8 @ =gUnk_0200AF34 - movs r0, #1 - mov ip, r0 - ldr r1, _0801CAAC @ =gUnk_080C8F8C - lsls r0, r5, #4 - adds r4, r0, r1 -_0801CA80: - lsls r0, r3, #5 - adds r1, r0, r7 - ldrb r2, [r1] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - bne _0801CAB0 - strb r5, [r1, #1] - strb r6, [r1, #2] - movs r0, #0xff - strb r0, [r1, #0x10] - mov r0, ip - orrs r0, r2 - strb r0, [r1] - ldrh r0, [r4, #4] - strh r0, [r1, #0x1a] - ldrb r0, [r4, #0xc] - strb r0, [r1, #3] - b _0801CAB6 - .align 2, 0 -_0801CAA8: .4byte gUnk_0200AF34 -_0801CAAC: .4byte gUnk_080C8F8C -_0801CAB0: - adds r3, #1 - cmp r3, #0x17 - bls _0801CA80 -_0801CAB6: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0801CAB8 -sub_0801CAB8: @ 0x0801CAB8 - push {lr} - str r1, [r0, #0x14] - ldrb r2, [r1, #1] - strb r2, [r0, #0x11] - ldrb r2, [r1, #2] - strb r2, [r0, #0x12] - ldrb r2, [r1, #3] - strb r2, [r0, #0x13] - ldrb r1, [r1] - bl sub_0801CAFC - pop {pc} - - thumb_func_start sub_0801CAD0 -sub_0801CAD0: @ 0x0801CAD0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x11] - subs r0, #1 - strb r0, [r2, #0x11] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801CAF8 - ldr r1, [r2, #0x14] - movs r0, #3 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0801CAF0 - ldrb r0, [r1, #4] - lsls r0, r0, #2 - subs r1, r1, r0 -_0801CAF0: - adds r1, #4 - adds r0, r2, #0 - bl sub_0801CAB8 -_0801CAF8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801CAFC -sub_0801CAFC: @ 0x0801CAFC - push {lr} - adds r2, r0, #0 - adds r3, r1, #0 - ldrb r0, [r2, #1] - lsls r0, r0, #4 - ldr r1, _0801CB1C @ =gUnk_080C8F8C - adds r1, r0, r1 - ldrb r0, [r2, #0x10] - cmp r3, r0 - beq _0801CB18 - strb r3, [r2, #0x10] - adds r0, r2, #0 - bl sub_0801CB20 -_0801CB18: - pop {pc} - .align 2, 0 -_0801CB1C: .4byte gUnk_080C8F8C - - thumb_func_start sub_0801CB20 -sub_0801CB20: @ 0x0801CB20 - push {lr} - adds r3, r0, #0 - ldrb r0, [r1, #0xe] - cmp r0, #0 - bne _0801CB76 - ldrh r1, [r1, #6] - lsls r1, r1, #4 - ldr r0, _0801CB54 @ =gSpritePtrs - adds r1, r1, r0 - ldrb r0, [r3, #0x10] - lsls r0, r0, #2 - ldr r2, [r1, #4] - adds r2, r2, r0 - ldrh r0, [r2, #2] - lsls r0, r0, #5 - ldr r1, [r1, #8] - adds r1, r1, r0 - ldrb r2, [r2] - cmp r2, #0 - bne _0801CB58 - ldrb r1, [r3] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - b _0801CB74 - .align 2, 0 -_0801CB54: .4byte gSpritePtrs -_0801CB58: - ldrb r0, [r3, #0x19] - cmp r0, r2 - bne _0801CB64 - ldr r0, [r3, #0x1c] - cmp r0, r1 - beq _0801CB74 -_0801CB64: - str r1, [r3, #0x1c] - ldrb r0, [r3] - movs r1, #0xd - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r3] -_0801CB74: - strb r2, [r3, #0x19] -_0801CB76: - pop {pc} - - thumb_func_start sub_0801CB78 -sub_0801CB78: @ 0x0801CB78 - push {lr} - ldr r2, _0801CB8C @ =gUnk_080C903C - ldrb r1, [r0, #4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0801CB8C: .4byte gUnk_080C903C - - thumb_func_start sub_0801CB90 -sub_0801CB90: @ 0x0801CB90 - push {lr} - ldr r3, _0801CBC4 @ =gUnk_0200AF00 - ldrb r1, [r0, #1] - lsls r1, r1, #1 - adds r2, r3, #0 - adds r2, #0x16 - adds r1, r1, r2 - ldrh r1, [r1] - strh r1, [r0, #0xc] - ldrb r1, [r0, #1] - lsls r1, r1, #1 - adds r3, #0x1c - adds r1, r1, r3 - ldrh r1, [r1] - subs r1, #0x20 - strh r1, [r0, #0xe] - movs r1, #1 - strb r1, [r0, #4] - ldrb r1, [r0] - movs r2, #2 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r0, #1] - bl sub_0801CAFC - pop {pc} - .align 2, 0 -_0801CBC4: .4byte gUnk_0200AF00 - - thumb_func_start sub_0801CBC8 -sub_0801CBC8: @ 0x0801CBC8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #2] - movs r6, #8 - cmp r0, #0 - bne _0801CC10 - movs r6, #4 - cmp r0, #0 - bne _0801CC10 - ldr r3, _0801CC08 @ =gUnk_0200AF00 - ldrb r0, [r3, #1] - ldrb r2, [r5, #1] - asrs r0, r2 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0801CBF6 - ldr r0, _0801CC0C @ =gMessage - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _0801CC10 -_0801CBF6: - lsls r0, r2, #1 - adds r1, r3, #0 - adds r1, #0x1c - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r0, #0 - subs r1, #0x28 - b _0801CC1E - .align 2, 0 -_0801CC08: .4byte gUnk_0200AF00 -_0801CC0C: .4byte gMessage -_0801CC10: - ldr r1, _0801CC7C @ =gUnk_0200AF00 - ldrb r0, [r5, #1] - lsls r0, r0, #1 - adds r1, #0x1c - adds r0, r0, r1 - movs r2, #0 - ldrsh r1, [r0, r2] -_0801CC1E: - movs r2, #0xe - ldrsh r0, [r5, r2] - subs r4, r1, r0 - adds r1, r4, #0 - cmp r4, #0 - bge _0801CC2C - rsbs r4, r4, #0 -_0801CC2C: - cmp r6, r4 - bgt _0801CC32 - adds r4, r6, #0 -_0801CC32: - adds r0, r1, #0 - bl sub_08000E44 - muls r4, r0, r4 - cmp r4, #0 - beq _0801CC44 - ldrh r0, [r5, #0xe] - adds r0, r0, r4 - strh r0, [r5, #0xe] -_0801CC44: - ldr r0, _0801CC7C @ =gUnk_0200AF00 - ldrb r1, [r5, #1] - lsls r1, r1, #1 - adds r0, #0x16 - adds r1, r1, r0 - movs r0, #0 - ldrsh r1, [r1, r0] - movs r2, #0xc - ldrsh r0, [r5, r2] - subs r4, r1, r0 - adds r1, r4, #0 - cmp r4, #0 - bge _0801CC60 - rsbs r4, r4, #0 -_0801CC60: - cmp r6, r4 - bgt _0801CC66 - adds r4, r6, #0 -_0801CC66: - adds r0, r1, #0 - bl sub_08000E44 - muls r4, r0, r4 - cmp r4, #0 - beq _0801CC78 - ldrh r0, [r5, #0xc] - adds r0, r0, r4 - strh r0, [r5, #0xc] -_0801CC78: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801CC7C: .4byte gUnk_0200AF00 - - thumb_func_start sub_0801CC80 -sub_0801CC80: @ 0x0801CC80 - push {r4, r5, lr} - ldrb r1, [r0, #1] - movs r0, #3 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - ldr r5, _0801CCAC @ =gSave - adds r1, r5, #0 - adds r1, #0xb4 - adds r0, r0, r1 - ldrb r4, [r0] - adds r0, r4, #0 - bl ItemIsBottle - cmp r0, #0 - beq _0801CCA8 - adds r0, r5, r4 - adds r0, #0x9a - ldrb r4, [r0] -_0801CCA8: - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 -_0801CCAC: .4byte gSave - - thumb_func_start sub_0801CCB0 -sub_0801CCB0: @ 0x0801CCB0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r1, [r4] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - adds r0, r4, #0 - bl sub_0801CC80 - adds r1, r0, #0 - cmp r1, #0 - beq _0801CD90 - ldrb r0, [r4, #8] - cmp r0, r1 - beq _0801CCE0 - strb r1, [r4, #8] - ldr r0, _0801CD1C @ =gSpriteAnimations_322 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl sub_0801CAB8 -_0801CCE0: - ldrb r0, [r4, #1] - movs r1, #3 - eors r0, r1 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r6, r1, #0x1f - ldr r3, _0801CD20 @ =gUnk_0200AF13 - cmp r6, #0 - beq _0801CCF4 - adds r3, #1 -_0801CCF4: - ldrb r0, [r4, #8] - cmp r0, #7 - blt _0801CD60 - cmp r0, #8 - ble _0801CD28 - cmp r0, #0xa - bgt _0801CD60 - ldr r1, _0801CD24 @ =gSave - adds r0, r1, #0 - adds r0, #0xad - ldrb r2, [r0] - ldrb r0, [r3] - adds r5, r1, #0 - cmp r0, r2 - beq _0801CD4C - adds r0, r2, #0 - adds r0, #0x80 - strb r0, [r3] - b _0801CD4C - .align 2, 0 -_0801CD1C: .4byte gSpriteAnimations_322 -_0801CD20: .4byte gUnk_0200AF13 -_0801CD24: .4byte gSave -_0801CD28: - ldr r5, _0801CD44 @ =gSave - adds r0, r5, #0 - adds r0, #0xac - ldrb r2, [r0] - ldrb r0, [r3] - cmp r0, r2 - beq _0801CD3C - adds r0, r2, #0 - adds r0, #0x80 - strb r0, [r3] -_0801CD3C: - ldr r1, _0801CD48 @ =gBombBagSizes - adds r0, r5, #0 - adds r0, #0xae - b _0801CD52 - .align 2, 0 -_0801CD44: .4byte gSave -_0801CD48: .4byte gBombBagSizes -_0801CD4C: - ldr r1, _0801CD5C @ =gQuiverSizes - adds r0, r5, #0 - adds r0, #0xaf -_0801CD52: - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - b _0801CD64 - .align 2, 0 -_0801CD5C: .4byte gQuiverSizes -_0801CD60: - movs r0, #1 - movs r2, #0 -_0801CD64: - movs r1, #3 - cmp r0, r2 - bhi _0801CD6C - movs r1, #4 -_0801CD6C: - strb r1, [r4, #0x18] - adds r0, r6, #0 - bl sub_0801CE24 - adds r1, r0, #0 - cmp r1, #0 - beq _0801CD90 - ldrh r0, [r1, #0xc] - strh r0, [r4, #0xc] - ldrh r0, [r1, #0xe] - strh r0, [r4, #0xe] - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - adds r0, r4, #0 - bl sub_0801CAD0 -_0801CD90: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0801CD94 -sub_0801CD94: @ 0x0801CD94 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #2] - ldr r1, _0801CDC0 @ =gUnk_0200AF00 - cmp r0, #9 - bne _0801CDD4 - adds r0, r1, #0 - adds r0, #0x2f - ldrb r2, [r0] - cmp r2, #0 - bne _0801CDCE - ldr r0, _0801CDC4 @ =gArea - ldrb r0, [r0, #0x18] - cmp r0, #2 - beq _0801CDC8 - cmp r0, #3 - beq _0801CDCC - adds r0, r1, #0 - adds r0, #0x2c - ldrb r2, [r0] - b _0801CDCE - .align 2, 0 -_0801CDC0: .4byte gUnk_0200AF00 -_0801CDC4: .4byte gArea -_0801CDC8: - movs r2, #0xb - b _0801CDCE -_0801CDCC: - movs r2, #0xa -_0801CDCE: - adds r0, r1, #0 - adds r0, #0x32 - strb r2, [r0] -_0801CDD4: - adds r0, r1, #0 - adds r0, #0x30 - ldrb r1, [r4, #3] - adds r0, r0, r1 - ldrb r2, [r0] - ldrb r1, [r4] - movs r0, #3 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - cmp r2, #0 - beq _0801CE1E - ldr r1, _0801CE20 @ =gUnk_080C9044 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, r2, r0 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0801CAFC - ldrb r0, [r4, #3] - bl sub_0801CE24 - adds r1, r0, #0 - cmp r1, #0 - beq _0801CE1E - ldrh r0, [r1, #0xc] - strh r0, [r4, #0xc] - ldrh r0, [r1, #0xe] - strh r0, [r4, #0xe] - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] -_0801CE1E: - pop {r4, pc} - .align 2, 0 -_0801CE20: .4byte gUnk_080C9044 - - thumb_func_start sub_0801CE24 -sub_0801CE24: @ 0x0801CE24 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - movs r6, #1 - ldr r3, _0801CE44 @ =gUnk_0200AF34 - adds r2, r3, #0 -_0801CE30: - ldrb r1, [r2] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0801CE48 - ldrb r0, [r2, #1] - cmp r5, r0 - bne _0801CE48 - adds r0, r3, #0 - b _0801CE54 - .align 2, 0 -_0801CE44: .4byte gUnk_0200AF34 -_0801CE48: - adds r2, #0x20 - adds r3, #0x20 - adds r4, #1 - cmp r4, #0x17 - bls _0801CE30 - movs r0, #0 -_0801CE54: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0801CE58 -sub_0801CE58: @ 0x0801CE58 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3] - movs r4, #3 - rsbs r4, r4, #0 - ands r4, r0 - strb r4, [r3] - ldr r2, _0801CEB8 @ =gUnk_0200AF00 - ldrb r1, [r2, #1] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0801CEB4 - ldr r0, _0801CEBC @ =gMessage - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0801CEB4 - ldrb r2, [r2, #3] - cmp r2, #0 - beq _0801CEB4 - movs r0, #2 - adds r1, r4, #0 - orrs r1, r0 - strb r1, [r3] - adds r0, r2, #3 - lsrs r0, r0, #2 - lsls r0, r0, #3 - adds r1, r0, #3 - movs r4, #0xc - cmp r2, #0x28 - bls _0801CE9E - movs r4, #0x14 - subs r1, #0x50 -_0801CE9E: - strh r1, [r3, #0xc] - strh r4, [r3, #0xe] - movs r1, #3 - ands r1, r2 - cmp r1, #0 - bne _0801CEAC - movs r1, #4 -_0801CEAC: - adds r1, #0x71 - adds r0, r3, #0 - bl sub_0801CAFC -_0801CEB4: - pop {r4, pc} - .align 2, 0 -_0801CEB8: .4byte gUnk_0200AF00 -_0801CEBC: .4byte gMessage diff --git a/asm/code_08056418.s b/asm/code_08056418.s deleted file mode 100644 index c83ed8a8..00000000 --- a/asm/code_08056418.s +++ /dev/null @@ -1,25 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08057044 -sub_08057044: @ 0x08057044 - push {r4, r5, lr} - sub sp, #8 - adds r5, r1, #0 - adds r4, r2, #0 - mov r1, sp - bl sub_08056FEC - ldr r2, [sp] - movs r1, #3 - subs r1, r1, r0 - lsls r1, r1, #3 - lsls r2, r1 - orrs r2, r4 - str r2, [r5] - add sp, #8 - pop {r4, r5, pc} diff --git a/asm/code_0805EC04.s b/asm/code_0805EC04.s index 9b095c0e..58307ec8 100644 --- a/asm/code_0805EC04.s +++ b/asm/code_0805EC04.s @@ -221,1200 +221,3 @@ _0805EEAC: .align 2, 0 _0805EEB0: .4byte gScreenTransition - thumb_func_start sub_0805EEB4 -sub_0805EEB4: @ 0x0805EEB4 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r3, r1, #0 - strh r3, [r7, #8] - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r1, [r0, #7] - cmp r1, #1 - bls _0805EED6 - lsrs r0, r3, #8 - cmp r0, #1 - bne _0805EED6 - movs r0, #0x8c - lsls r0, r0, #1 - cmp r3, r0 - bhi _0805EED6 - movs r1, #3 -_0805EED6: - ldr r0, _0805EF14 @ =gUnk_08109214 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r2, [r1] - lsrs r0, r3, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r4, [r0] - adds r2, r2, r4 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r4, [r0] - ldr r0, [r1] - ldr r1, [r0] - lsrs r1, r1, #2 - ldr r0, [r2] - lsrs r6, r0, #2 - movs r5, #0 - ldrh r3, [r7, #8] - lsrs r0, r3, #8 - cmp r0, r1 - bhs _0805EF0E - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r6 - blo _0805EF18 -_0805EF0E: - movs r5, #1 - b _0805EF22 - .align 2, 0 -_0805EF14: .4byte gUnk_08109214 -_0805EF18: - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _0805EF22 - movs r5, #2 -_0805EF22: - cmp r5, #2 - bhi _0805EF2E - cmp r5, #1 - blo _0805EF2E - ldr r2, _0805EF3C @ =gUnk_08109244 - movs r4, #0 -_0805EF2E: - adds r2, r2, r4 - adds r0, r7, #0 - adds r1, r2, #0 - bl sub_0805EF40 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805EF3C: .4byte gUnk_08109244 - - thumb_func_start sub_0805EF40 -sub_0805EF40: @ 0x0805EF40 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldrb r2, [r3] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0805EF70 - lsls r1, r2, #0x1b - lsrs r0, r1, #0x1c - cmp r0, #6 - bls _0805EF5C - movs r0, #0 - b _0805EF8A -_0805EF5C: - lsrs r0, r1, #0x1c - adds r0, #1 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_0805EF70: - ldrb r0, [r3] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1c - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x10 - adds r1, r1, r0 - str r4, [r1] - ldrb r0, [r3] - movs r1, #1 - orrs r0, r1 - strb r0, [r3] - movs r0, #1 -_0805EF8A: - pop {r4, pc} - - thumb_func_start sub_0805EF8C -sub_0805EF8C: @ 0x0805EF8C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805EFAE - lsls r0, r1, #0x1b - lsrs r0, r0, #0x1c - lsls r0, r0, #2 - adds r2, #0x10 - adds r2, r2, r0 - ldr r1, [r2] - ldrb r0, [r1] - adds r1, #1 - str r1, [r2] - b _0805EFB0 -_0805EFAE: - movs r0, #0 -_0805EFB0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805EFB4 -sub_0805EFB4: @ 0x0805EFB4 - push {r4, lr} - adds r3, r0, #0 - ldrb r2, [r3] - lsls r1, r2, #0x1b - lsrs r4, r1, #0x1c - movs r0, #0x1e - ands r0, r2 - cmp r0, #0 - beq _0805EFDC - adds r0, r4, #0 - subs r0, #1 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] - b _0805EFE4 -_0805EFDC: - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] -_0805EFE4: - adds r0, r4, #0 - pop {r4, pc} - - thumb_func_start GetCharacter -GetCharacter: @ 0x0805EFE8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 -_0805EFEC: - adds r0, r6, #0 - bl sub_0805EF8C - adds r5, r0, #0 - strb r5, [r6, #1] - movs r7, #0 - cmp r5, #0xf - bls _0805EFFE - b _0805F22C -_0805EFFE: - lsls r0, r5, #2 - ldr r1, _0805F008 @ =_0805F00C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805F008: .4byte _0805F00C -_0805F00C: @ jump table - .4byte _0805F04C @ case 0 - .4byte _0805F058 @ case 1 - .4byte _0805F06E @ case 2 - .4byte _0805F07A @ case 3 - .4byte _0805F090 @ case 4 - .4byte _0805F130 @ case 5 - .4byte _0805F150 @ case 6 - .4byte _0805F196 @ case 7 - .4byte _0805F1C0 @ case 8 - .4byte _0805F1CC @ case 9 - .4byte _0805F1D8 @ case 10 - .4byte _0805F1DC @ case 11 - .4byte _0805F1EC @ case 12 - .4byte _0805F1FC @ case 13 - .4byte _0805F20C @ case 14 - .4byte _0805F21C @ case 15 -_0805F04C: - adds r0, r6, #0 - bl sub_0805EFB4 - adds r7, r0, #0 - movs r5, #0 - b _0805F232 -_0805F058: - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r0, #0 - strh r4, [r6, #2] - movs r5, #6 - cmp r4, #0xa - bls _0805F06A - b _0805F232 -_0805F06A: - movs r5, #5 - b _0805F232 -_0805F06E: - adds r0, r6, #0 - bl sub_0805EF8C - strh r0, [r6, #2] - movs r5, #7 - b _0805F232 -_0805F07A: - adds r0, r6, #0 - bl sub_0805EF8C - lsls r4, r0, #8 - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r4, r0 - strh r4, [r6, #2] - movs r5, #8 - b _0805F232 -_0805F090: - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r0, #0 - cmp r4, #0x15 - bhi _0805F12C - lsls r0, r4, #2 - ldr r1, _0805F0A8 @ =_0805F0AC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805F0A8: .4byte _0805F0AC -_0805F0AC: @ jump table - .4byte _0805F104 @ case 0 - .4byte _0805F104 @ case 1 - .4byte _0805F104 @ case 2 - .4byte _0805F104 @ case 3 - .4byte _0805F104 @ case 4 - .4byte _0805F104 @ case 5 - .4byte _0805F104 @ case 6 - .4byte _0805F104 @ case 7 - .4byte _0805F104 @ case 8 - .4byte _0805F104 @ case 9 - .4byte _0805F104 @ case 10 - .4byte _0805F104 @ case 11 - .4byte _0805F104 @ case 12 - .4byte _0805F104 @ case 13 - .4byte _0805F104 @ case 14 - .4byte _0805F104 @ case 15 - .4byte _0805F108 @ case 16 - .4byte _0805F114 @ case 17 - .4byte _0805F118 @ case 18 - .4byte _0805F11C @ case 19 - .4byte _0805F120 @ case 20 - .4byte _0805F120 @ case 21 -_0805F104: - movs r5, #9 - b _0805F12C -_0805F108: - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r0, #0 - movs r5, #0xa - b _0805F12C -_0805F114: - movs r5, #2 - b _0805F12C -_0805F118: - movs r5, #3 - b _0805F12C -_0805F11C: - movs r5, #4 - b _0805F12C -_0805F120: - movs r5, #0xb - movs r1, #0x14 - eors r1, r4 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r4, r0, #0x1f -_0805F12C: - strh r4, [r6, #2] - b _0805F232 -_0805F130: - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r0, #0 - cmp r4, #0xff - bne _0805F140 - movs r4, #0 - b _0805F14A -_0805F140: - lsls r4, r4, #8 - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r4, r0 -_0805F14A: - strh r4, [r6, #6] - movs r5, #0xc - b _0805F232 -_0805F150: - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r0, #0 - cmp r4, #4 - bls _0805F162 - cmp r4, #5 - beq _0805F17C - b _0805EFEC -_0805F162: - ldr r1, [r6, #0xc] - cmp r1, #0 - bne _0805F16A - ldr r1, _0805F178 @ =gUnk_08109230 -_0805F16A: - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r6, #0 - bl sub_0805EF40 - b _0805EFEC - .align 2, 0 -_0805F178: .4byte gUnk_08109230 -_0805F17C: - adds r0, r6, #0 - bl sub_0805EF8C - lsls r4, r0, #8 - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r4, r0 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0805EEB4 - b _0805EFEC -_0805F196: - adds r0, r6, #0 - bl sub_0805EF8C - lsls r4, r0, #8 - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r4, r0 - ldrb r1, [r6] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x1f - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r6] - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0805EEB4 - b _0805EFEC -_0805F1C0: - adds r0, r6, #0 - bl sub_0805EF8C - strh r0, [r6, #2] - movs r5, #0xd - b _0805F232 -_0805F1CC: - adds r0, r6, #0 - bl sub_0805EF8C - strh r0, [r6, #2] - movs r5, #0xe - b _0805F232 -_0805F1D8: - movs r5, #1 - b _0805F232 -_0805F1DC: - adds r0, r6, #0 - bl sub_0805EF8C - adds r5, r0, #0 - movs r0, #0x80 - lsls r0, r0, #3 - orrs r5, r0 - b _0805F232 -_0805F1EC: - adds r0, r6, #0 - bl sub_0805EF8C - adds r5, r0, #0 - movs r0, #0xe0 - lsls r0, r0, #3 - orrs r5, r0 - b _0805F232 -_0805F1FC: - adds r0, r6, #0 - bl sub_0805EF8C - adds r5, r0, #0 - movs r0, #0xa0 - lsls r0, r0, #3 - orrs r5, r0 - b _0805F232 -_0805F20C: - adds r0, r6, #0 - bl sub_0805EF8C - adds r5, r0, #0 - movs r0, #0xc0 - lsls r0, r0, #3 - orrs r5, r0 - b _0805F232 -_0805F21C: - adds r0, r6, #0 - bl sub_0805EF8C - adds r5, r0, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - orrs r5, r0 - b _0805F232 -_0805F22C: - movs r0, #0x80 - lsls r0, r0, #1 - adds r5, r5, r0 -_0805F232: - cmp r7, #0 - beq _0805F238 - b _0805EFEC -_0805F238: - lsrs r0, r5, #8 - cmp r0, #0 - beq _0805F256 - ldrb r0, [r6] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1e - cmp r0, #0 - beq _0805F254 - cmp r0, #1 - bne _0805F254 - adds r0, r5, #0 - bl sub_0805F9A0 - adds r5, r0, #0 -_0805F254: - strh r5, [r6, #4] -_0805F256: - adds r0, r5, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0805F25C -sub_0805F25C: @ 0x0805F25C - push {lr} - adds r2, r0, #0 - lsrs r3, r2, #8 - movs r0, #0xf - ands r3, r0 - movs r0, #0xff - ands r2, r0 - cmp r3, #8 - bhi _0805F2B6 - lsls r0, r3, #2 - ldr r1, _0805F278 @ =_0805F27C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805F278: .4byte _0805F27C -_0805F27C: @ jump table - .4byte _0805F2A0 @ case 0 - .4byte _0805F2A0 @ case 1 - .4byte _0805F2B6 @ case 2 - .4byte _0805F2B6 @ case 3 - .4byte _0805F2B6 @ case 4 - .4byte _0805F2B4 @ case 5 - .4byte _0805F2B4 @ case 6 - .4byte _0805F2B4 @ case 7 - .4byte _0805F2B4 @ case 8 -_0805F2A0: - cmp r2, #0x7f - bls _0805F2B6 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - beq _0805F2B6 - subs r2, #0x80 - movs r3, #2 - b _0805F2B6 -_0805F2B4: - lsls r2, r2, #1 -_0805F2B6: - ldr r1, _0805F2C4 @ =gUnk_08109248 - lsls r0, r3, #2 - adds r0, r0, r1 - lsls r1, r2, #6 - ldr r0, [r0] - adds r0, r0, r1 - pop {pc} - .align 2, 0 -_0805F2C4: .4byte gUnk_08109248 - - thumb_func_start sub_0805F2C8 -sub_0805F2C8: @ 0x0805F2C8 - push {r4, r5, lr} - movs r1, #0 - ldr r4, _0805F2EC @ =gUnk_02036540 - adds r5, r4, #0 -_0805F2D0: - ldrb r0, [r4] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _0805F2F0 - adds r0, r5, #0 - movs r1, #0xc - bl MemClear - ldrb r0, [r4] - movs r1, #1 - orrs r0, r1 - strb r0, [r4] - adds r0, r5, #0 - b _0805F2FC - .align 2, 0 -_0805F2EC: .4byte gUnk_02036540 -_0805F2F0: - adds r4, #0xc - adds r5, #0xc - adds r1, #1 - cmp r1, #3 - bls _0805F2D0 - movs r0, #0 -_0805F2FC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0805F300 -sub_0805F300: @ 0x0805F300 - push {lr} - adds r2, r0, #0 - movs r1, #0 - ldr r0, _0805F314 @ =gUnk_02036540 -_0805F308: - cmp r0, r2 - bne _0805F318 - movs r1, #0xc - bl MemClear - b _0805F320 - .align 2, 0 -_0805F314: .4byte gUnk_02036540 -_0805F318: - adds r0, #0xc - adds r1, #1 - cmp r1, #3 - bls _0805F308 -_0805F320: - pop {pc} - .align 2, 0 - - thumb_func_start GetFontStrWith -GetFontStrWith: @ 0xGetFontStrWidth - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - adds r7, r1, #0 - mov r1, sp - movs r2, #0x30 - bl MemCopy - movs r0, #0 - str r0, [sp, #0x34] - movs r1, #0 - str r1, [sp, #0x30] - mov sl, r1 - mov r8, r1 - b _0805F34C -_0805F348: - cmp r6, #0 - beq _0805F41E -_0805F34C: - movs r5, #0 - movs r2, #1 - mov sb, r2 -_0805F352: - mov r0, sp - bl GetCharacter - adds r6, r0, #0 - cmp r6, #0xe - bhi _0805F3B4 - lsls r0, r6, #2 - ldr r1, _0805F368 @ =_0805F36C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805F368: .4byte _0805F36C -_0805F36C: @ jump table - .4byte _0805F402 @ case 0 - .4byte _0805F402 @ case 1 - .4byte _0805F3FC @ case 2 - .4byte _0805F3FC @ case 3 - .4byte _0805F3FC @ case 4 - .4byte _0805F3FC @ case 5 - .4byte _0805F3FC @ case 6 - .4byte _0805F3FC @ case 7 - .4byte _0805F3FC @ case 8 - .4byte _0805F3FC @ case 9 - .4byte _0805F3FC @ case 10 - .4byte _0805F3AC @ case 11 - .4byte _0805F3A8 @ case 12 - .4byte _0805F3FC @ case 13 - .4byte _0805F3FC @ case 14 -_0805F3A8: - adds r5, #8 - b _0805F3FC -_0805F3AC: - mov r0, sp - ldrh r0, [r0, #2] - mov r8, r0 - b _0805F3FC -_0805F3B4: - mov r0, r8 - cmp r0, #0 - bne _0805F3DE - adds r0, r6, #0 - bl sub_0805F25C - adds r4, r0, #0 - lsrs r0, r6, #8 - cmp r0, #4 - bls _0805F3D2 - ldr r0, [r4, #0x40] - bl sub_0805F7A0 - lsrs r0, r0, #8 - adds r5, r5, r0 -_0805F3D2: - ldr r0, [r4] - bl sub_0805F7A0 - lsrs r0, r0, #8 - adds r5, r5, r0 - b _0805F3EA -_0805F3DE: - lsrs r0, r6, #8 - cmp r0, #4 - bls _0805F3E8 - adds r5, #0x10 - b _0805F3EA -_0805F3E8: - adds r5, #8 -_0805F3EA: - mov r0, sp - ldrb r1, [r0] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0x20 - bne _0805F3FC - cmp r5, #1 - bls _0805F3FC - subs r5, #1 -_0805F3FC: - mov r1, sb - cmp r1, #0 - bne _0805F352 -_0805F402: - cmp r5, sl - bls _0805F408 - mov sl, r5 -_0805F408: - cmp r5, #0 - beq _0805F414 - ldr r2, [sp, #0x30] - adds r2, #1 - str r2, [sp, #0x30] - b _0805F41A -_0805F414: - ldr r0, [sp, #0x34] - adds r0, #1 - str r0, [sp, #0x34] -_0805F41A: - cmp r7, #0 - bne _0805F348 -_0805F41E: - cmp r7, #0 - bne _0805F426 - mov r0, sl - b _0805F434 -_0805F426: - ldr r1, [sp, #0x34] - lsls r0, r1, #0x18 - ldr r2, [sp, #0x30] - lsls r1, r2, #0x10 - orrs r0, r1 - mov r1, sl - orrs r0, r1 -_0805F434: - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805F440 -sub_0805F440: @ 0x0805F440 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r1, #0x30 - bl MemClear - ldr r0, _0805F45C @ =0x0000FFFF - cmp r5, r0 - bls _0805F460 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0805EF40 - b _0805F468 - .align 2, 0 -_0805F45C: .4byte 0x0000FFFF -_0805F460: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0805EEB4 -_0805F468: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0805F46C -sub_0805F46C: @ 0x0805F46C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x48 - adds r6, r0, #0 - adds r5, r1, #0 - bl sub_0805F2C8 - mov r8, r0 - cmp r0, #0 - bne _0805F486 - b _0805F5BC -_0805F486: - add r4, sp, #0x30 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x18 - bl MemCopy - mov r0, sp - adds r1, r6, #0 - bl sub_0805F440 - mov r3, sp - ldrb r0, [r4, #0x17] - movs r1, #3 - ands r1, r0 - lsls r1, r1, #5 - ldrb r2, [r3] - movs r0, #0x61 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r4, #0x17] - lsls r1, r1, #4 - mov r0, r8 - ldrb r2, [r0] - movs r0, #0xf - ands r0, r2 - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - ldrb r0, [r4, #0x12] - strh r0, [r1, #4] - ldr r0, [r4, #8] - str r0, [r1, #8] - ldrb r0, [r4, #0x15] - strb r0, [r1, #2] - ldrb r0, [r4, #0x14] - strb r0, [r1, #3] - ldrb r1, [r4, #0x13] - movs r0, #8 - ands r0, r1 - mov sb, r4 - cmp r0, #0 - beq _0805F59E - lsrs r0, r1, #4 - ldrb r1, [r4, #0x14] - ldr r2, [r4, #4] - bl sub_0805F918 - ldr r0, [r4, #4] - adds r0, #0xe0 - str r0, [r4, #4] - mov r0, sp - movs r1, #1 - bl GetFontStrWith - lsrs r2, r0, #0x18 - ldrb r1, [r4, #0x16] - muls r2, r1, r2 - asrs r1, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x17 - adds r7, r2, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r1, r4, #0 - mov r2, sb - ldrb r3, [r2, #0x12] - cmp r3, r1 - bge _0805F514 - adds r1, r3, #0 -_0805F514: - adds r4, r1, #7 - movs r2, #8 - rsbs r2, r2, #0 - mov r0, sb - ldrb r1, [r0, #0x13] - movs r0, #2 - ands r0, r1 - ands r4, r2 - cmp r0, #0 - bne _0805F52A - adds r4, r3, #0 -_0805F52A: - ldr r5, [sp, #0x30] - adds r0, r5, #0 - adds r0, #0x40 - str r0, [sp, #0x30] - mov r2, sb - ldrb r1, [r2, #0x13] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805F54E - adds r4, #0xf - movs r0, #0x10 - rsbs r0, r0, #0 - ands r4, r0 - lsrs r0, r4, #3 - adds r0, #2 - subs r5, r5, r0 - b _0805F554 -_0805F54E: - adds r0, r5, #0 - adds r0, #0x42 - str r0, [sp, #0x30] -_0805F554: - lsrs r4, r4, #3 - mov r3, sb - ldrh r6, [r3, #0x10] - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - adds r3, r6, #0 - bl DispMessageFrame - adds r5, #2 - mov r1, sb - ldrh r0, [r1, #0x10] - adds r0, #7 - strh r0, [r1, #0x10] - ldrh r0, [r1, #0x10] - subs r6, r0, #1 - adds r0, r7, #0 - subs r7, #1 - cmp r0, #0 - beq _0805F59E -_0805F57C: - adds r1, r5, #0 - adds r1, #0x40 - adds r5, r1, #0 - subs r2, r4, #1 - subs r3, r7, #1 - cmp r4, #0 - ble _0805F596 -_0805F58A: - strh r6, [r1] - adds r1, #2 - adds r0, r2, #0 - subs r2, #1 - cmp r0, #0 - bgt _0805F58A -_0805F596: - adds r0, r7, #0 - adds r7, r3, #0 - cmp r0, #0 - bne _0805F57C -_0805F59E: - ldr r0, _0805F5C8 @ =gUnk_02034330 - movs r1, #0x18 - bl MemClear -_0805F5A6: - mov r0, sb - mov r1, sp - mov r2, r8 - bl sub_0805F5CC - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805F5A6 - mov r0, r8 - bl sub_0805F300 -_0805F5BC: - movs r0, #0 - add sp, #0x48 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805F5C8: .4byte gUnk_02034330 - - thumb_func_start sub_0805F5CC -sub_0805F5CC: @ 0x0805F5CC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - ldrb r0, [r4, #0x14] - bl sub_0805F8F8 - ldr r1, [r4, #8] - ldrb r2, [r4, #0x12] - adds r2, #7 - movs r3, #0xfc - lsls r3, r3, #1 - ands r2, r3 - lsls r2, r2, #3 - bl MemFill32 - adds r0, r6, #0 - movs r1, #0 - bl GetFontStrWith - adds r2, r0, #0 - ldrb r1, [r4, #0x13] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805F60E - adds r0, r2, #1 - lsrs r0, r0, #1 - movs r1, #8 - subs r1, r1, r0 - movs r0, #7 - ands r0, r1 - b _0805F610 -_0805F60E: - movs r0, #0 -_0805F610: - strh r0, [r5, #6] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0805F6A4 - adds r2, r0, #0 - cmp r2, #0 - beq _0805F660 - ldrh r1, [r5, #6] - adds r0, r1, #7 - asrs r5, r0, #3 - ldr r2, [r4] - ldrb r1, [r4, #0x13] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805F63A - adds r0, r5, #1 - lsrs r0, r0, #1 - lsls r0, r0, #1 - subs r2, r2, r0 -_0805F63A: - ldrh r1, [r4, #0x10] - adds r0, r2, #0 - adds r2, r5, #0 - bl sub_0805F67C - strh r0, [r4, #0x10] - ldr r0, [r4] - adds r0, #0x80 - str r0, [r4] - lsls r5, r5, #6 - ldr r0, [r4, #8] - ldr r1, [r4, #4] - adds r2, r5, #0 - bl MemCopy - ldr r0, [r4, #4] - adds r0, r0, r5 - str r0, [r4, #4] - b _0805F670 -_0805F660: - ldrb r0, [r6, #1] - cmp r0, #0xa - bne _0805F670 - ldrb r1, [r4, #0x16] - lsls r1, r1, #6 - ldr r0, [r4] - adds r0, r0, r1 - str r0, [r4] -_0805F670: - ldrb r1, [r6, #1] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0805F67C -sub_0805F67C: @ 0x0805F67C - push {r4, lr} - adds r3, r0, #0 - subs r2, #1 - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - beq _0805F6A0 - adds r4, r0, #0 -_0805F68C: - strh r1, [r3] - adds r1, #1 - adds r0, r3, #0 - adds r0, #0x40 - strh r1, [r0] - adds r1, #1 - adds r3, #2 - subs r2, #1 - cmp r2, r4 - bne _0805F68C -_0805F6A0: - adds r0, r1, #0 - pop {r4, pc} - - thumb_func_start sub_0805F6A4 -sub_0805F6A4: @ 0x0805F6A4 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r6, #0 -_0805F6AC: - adds r0, r5, #0 - bl GetCharacter - movs r7, #1 - cmp r0, #0xe - bhi _0805F746 - lsls r0, r0, #2 - ldr r1, _0805F6C4 @ =_0805F6C8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805F6C4: .4byte _0805F6C8 -_0805F6C8: @ jump table - .4byte _0805F768 @ case 0 - .4byte _0805F768 @ case 1 - .4byte _0805F764 @ case 2 - .4byte _0805F764 @ case 3 - .4byte _0805F764 @ case 4 - .4byte _0805F764 @ case 5 - .4byte _0805F764 @ case 6 - .4byte _0805F704 @ case 7 - .4byte _0805F764 @ case 8 - .4byte _0805F764 @ case 9 - .4byte _0805F764 @ case 10 - .4byte _0805F740 @ case 11 - .4byte _0805F70E @ case 12 - .4byte _0805F764 @ case 13 - .4byte _0805F764 @ case 14 -_0805F704: - ldrh r0, [r5, #2] - cmp r0, #0xd - bhi _0805F764 - strb r0, [r4, #2] - b _0805F764 -_0805F70E: - ldr r3, _0805F73C @ =gUnk_02034330 - movs r2, #2 - ldrsb r2, [r3, r2] - cmp r2, #3 - bhi _0805F732 - adds r0, r2, #1 - strb r0, [r3, #2] - lsls r2, r2, #1 - adds r0, r3, #0 - adds r0, #0x10 - adds r0, r2, r0 - ldrh r1, [r5, #6] - strh r1, [r0] - adds r0, r3, #0 - adds r0, #8 - adds r2, r2, r0 - ldrh r0, [r4, #6] - strh r0, [r2] -_0805F732: - ldrh r0, [r4, #6] - adds r0, #8 - strh r0, [r4, #6] - adds r6, #8 - b _0805F764 - .align 2, 0 -_0805F73C: .4byte gUnk_02034330 -_0805F740: - ldrh r0, [r5, #2] - strb r0, [r4, #1] - b _0805F764 -_0805F746: - adds r1, r4, #0 - bl sub_0805F7DC - adds r6, r6, r0 - ldrb r1, [r5] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0x20 - bne _0805F764 - ldrh r0, [r4, #6] - cmp r0, #1 - bls _0805F764 - subs r6, #1 - subs r0, #1 - strh r0, [r4, #6] -_0805F764: - cmp r7, #0 - bne _0805F6AC -_0805F768: - adds r0, r6, #0 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805F76C -sub_0805F76C: @ 0x0805F76C - push {r4, lr} - sub sp, #0x30 - adds r2, r0, #0 - adds r4, r1, #0 - mov r0, sp - adds r1, r2, #0 - bl sub_0805F440 - mov r3, sp - ldrb r0, [r4] - lsrs r0, r0, #4 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #5 - ldrb r2, [r3] - movs r0, #0x61 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - mov r0, sp - adds r1, r4, #0 - bl sub_0805F6A4 - add sp, #0x30 - pop {r4, pc} - - thumb_func_start sub_0805F7A0 -sub_0805F7A0: @ 0x0805F7A0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xf - movs r2, #0 - b _0805F7B4 -_0805F7AA: - lsls r1, r1, #4 - adds r2, #1 - cmp r2, #7 - bhi _0805F7BA - adds r0, r4, #0 -_0805F7B4: - ands r0, r1 - cmp r1, r0 - beq _0805F7AA -_0805F7BA: - adds r3, r2, #0 - cmp r3, #7 - bhi _0805F7D2 - b _0805F7CA -_0805F7C2: - lsls r1, r1, #4 - adds r2, #1 - cmp r2, #7 - bhi _0805F7D2 -_0805F7CA: - adds r0, r4, #0 - ands r0, r1 - cmp r1, r0 - bne _0805F7C2 -_0805F7D2: - subs r2, r2, r3 - lsls r0, r2, #8 - orrs r0, r3 - pop {r4, pc} - .align 2, 0 - diff --git a/asm/code_080AD90C.s b/asm/code_080AD90C.s deleted file mode 100644 index 2a3a1036..00000000 --- a/asm/code_080AD90C.s +++ /dev/null @@ -1,157 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start FlushSprites -FlushSprites: @ 0x080AD90C - ldr r1, _080AD914 @ =gUnk_03000000 - movs r0, #0 - strb r0, [r1, #3] - bx lr - .align 2, 0 -_080AD914: .4byte gUnk_03000000 - - thumb_func_start sub_080AD918 -sub_080AD918: @ 0x080AD918 - push {r4, lr} - ldr r1, _080AD948 @ =gMain - ldrb r0, [r1, #0xb] - adds r2, r0, #0 - cmp r2, #0 - bne _080AD958 - ldr r1, _080AD94C @ =gUnk_03000000 - movs r3, #0xa4 - lsls r3, r3, #3 - adds r0, r1, r3 - strb r2, [r0] - ldr r3, _080AD950 @ =0x00000664 - adds r0, r1, r3 - strb r2, [r0] - movs r3, #0xf5 - lsls r3, r3, #3 - adds r0, r1, r3 - strb r2, [r0] - ldr r3, _080AD954 @ =0x000008EC - adds r0, r1, r3 - strb r2, [r0] - adds r4, r1, #0 - b _080AD95E - .align 2, 0 -_080AD948: .4byte gMain -_080AD94C: .4byte gUnk_03000000 -_080AD950: .4byte 0x00000664 -_080AD954: .4byte 0x000008EC -_080AD958: - subs r0, #1 - strb r0, [r1, #0xb] - ldr r4, _080AD9A8 @ =gUnk_03000000 -_080AD95E: - ldrb r1, [r4, #3] - movs r0, #0x80 - subs r2, r0, r1 - cmp r2, #0 - ble _080AD980 - lsls r1, r1, #3 - adds r0, r4, #0 - adds r0, #0x20 - adds r1, r1, r0 - movs r3, #0xa8 - lsls r3, r3, #2 - adds r0, r3, #0 -_080AD976: - strh r0, [r1] - adds r1, #8 - subs r2, #1 - cmp r2, #0 - bne _080AD976 -_080AD980: - adds r1, r4, #0 - ldr r0, _080AD9AC @ =0x00000427 - adds r2, r1, r0 - ldrb r0, [r2] - cmp r0, #0 - beq _080AD9A0 - movs r0, #0 - strb r0, [r2] - movs r2, #0x84 - lsls r2, r2, #3 - adds r0, r1, r2 - adds r1, #0x26 - movs r2, #0x20 - movs r3, #8 - bl ObjAffineSet -_080AD9A0: - movs r0, #1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_080AD9A8: .4byte gUnk_03000000 -_080AD9AC: .4byte 0x00000427 - - thumb_func_start sub_080AD9B0 -sub_080AD9B0: @ 0x080AD9B0 - push {lr} - ldr r2, _080AD9F4 @ =gUnk_03000000 - ldr r0, _080AD9F8 @ =gScreenTransition - adds r0, #0x2f - ldrb r0, [r0] - movs r1, #0 - cmp r0, #0 - beq _080AD9C2 - movs r1, #0xf -_080AD9C2: - strb r1, [r2, #0xe] - ldr r1, _080AD9FC @ =gRoomControls - adds r0, r1, #0 - adds r0, #0x24 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r1, #0xa] - adds r0, r0, r3 - strh r0, [r2, #4] - adds r0, r1, #0 - adds r0, #0x25 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #6] - ldrb r0, [r2, #1] - adds r0, #1 - strb r0, [r2, #1] - ldr r0, _080ADA00 @ =gUnk_03006164 - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080AD9F4: .4byte gUnk_03000000 -_080AD9F8: .4byte gScreenTransition -_080AD9FC: .4byte gRoomControls -_080ADA00: .4byte gUnk_03006164 - - thumb_func_start sub_080ADA04 -sub_080ADA04: @ 0x080ADA04 - push {lr} - ldr r2, _080ADA10 @ =gUnk_0300659C - bl _call_via_r2 - pop {pc} - .align 2, 0 -_080ADA10: .4byte gUnk_0300659C - - thumb_func_start sub_080ADA14 -sub_080ADA14: @ 0x080ADA14 - push {r4, lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldr r4, _080ADA28 @ =gUnk_03006580 - ldr r0, _080ADA2C @ =gOamCmd - adds r1, r3, #0 - bl _call_via_r4 - pop {r4, pc} - .align 2, 0 -_080ADA28: .4byte gUnk_03006580 -_080ADA2C: .4byte gOamCmd diff --git a/asm/code_0806FA6C.s b/asm/coord.s similarity index 100% rename from asm/code_0806FA6C.s rename to asm/coord.s diff --git a/asm/drawHealth.s b/asm/drawHealth.s deleted file mode 100644 index 97712ac3..00000000 --- a/asm/drawHealth.s +++ /dev/null @@ -1,204 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0801C6B0 -sub_0801C6B0: @ 0x0801C6B0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r2, _0801C6CC @ =gUnk_0200AF00 - ldrb r1, [r2, #1] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0801C6D0 - bl sub_0801C824 - bl sub_0801C66C - b _0801C802 - .align 2, 0 -_0801C6CC: .4byte gUnk_0200AF00 -_0801C6D0: - ldr r5, _0801C6F8 @ =gSave - adds r0, r5, #0 - adds r0, #0xab - ldrb r0, [r0] - lsrs r4, r0, #1 - ldrb r0, [r2, #4] - cmp r4, r0 - beq _0801C6EA - strb r4, [r2, #4] - bl sub_0801C824 - bl sub_0801C66C -_0801C6EA: - adds r1, r5, #0 - adds r1, #0xaa - ldrb r0, [r1] - cmp r0, #1 - beq _0801C6FC - lsrs r1, r0, #1 - b _0801C6FE - .align 2, 0 -_0801C6F8: .4byte gSave -_0801C6FC: - movs r1, #1 -_0801C6FE: - cmp r1, r4 - ble _0801C704 - adds r1, r4, #0 -_0801C704: - movs r4, #0 - ldr r0, _0801C748 @ =gUnk_0200AF00 - ldrb r2, [r0, #3] - adds r7, r0, #0 - cmp r1, r2 - beq _0801C718 - movs r4, #1 - cmp r1, r2 - ble _0801C718 - movs r4, #2 -_0801C718: - cmp r4, #1 - beq _0801C750 - cmp r4, #2 - bne _0801C756 - ldrb r0, [r7, #5] - adds r1, r0, #1 - strb r1, [r7, #5] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0801C74C - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0801C740 - movs r0, #0x71 - bl SoundReq -_0801C740: - ldrb r0, [r7, #3] - adds r0, #1 - strb r0, [r7, #3] - b _0801C75A - .align 2, 0 -_0801C748: .4byte gUnk_0200AF00 -_0801C74C: - movs r4, #0 - b _0801C75A -_0801C750: - ldrb r0, [r7, #3] - subs r0, #1 - strb r0, [r7, #3] -_0801C756: - movs r0, #0 - strb r0, [r7, #5] -_0801C75A: - ldrb r0, [r7, #2] - cmp r0, #0 - beq _0801C764 - cmp r4, #0 - beq _0801C802 -_0801C764: - movs r0, #2 - strb r0, [r7, #2] - ldrb r0, [r7, #3] - lsrs r3, r0, #2 - cmp r3, #0xa - ble _0801C77A - movs r1, #0xa - mov r8, r1 - adds r6, r3, #0 - subs r6, #0xa - b _0801C77E -_0801C77A: - mov r8, r3 - movs r6, #0 -_0801C77E: - ldrb r0, [r7, #4] - lsrs r4, r0, #2 - adds r1, r4, #0 - cmp r4, #0xa - ble _0801C78A - movs r4, #0xa -_0801C78A: - adds r2, r1, #0 - subs r2, #0xa - ldr r0, _0801C808 @ =gUnk_080C8F2C - mov ip, r0 - cmp r2, #0 - ble _0801C7B8 - ldr r5, _0801C80C @ =gUnk_02034D30 - ldr r1, _0801C810 @ =0x0000F010 - adds r0, r1, #0 - strh r0, [r5] - ldr r1, _0801C814 @ =0x040000D4 - movs r0, #0xa - subs r0, r0, r6 - lsls r0, r0, #1 - add r0, ip - str r0, [r1] - adds r0, r5, #2 - str r0, [r1, #4] - movs r0, #0x80 - lsls r0, r0, #0x18 - orrs r2, r0 - str r2, [r1, #8] - ldr r0, [r1, #8] -_0801C7B8: - ldr r5, _0801C818 @ =gUnk_02034CF0 - ldr r2, _0801C810 @ =0x0000F010 - adds r0, r2, #0 - strh r0, [r5] - ldr r1, _0801C814 @ =0x040000D4 - movs r0, #0xa - mov r2, r8 - subs r0, r0, r2 - lsls r0, r0, #1 - add r0, ip - str r0, [r1] - adds r0, r5, #2 - str r0, [r1, #4] - movs r0, #0x80 - lsls r0, r0, #0x18 - orrs r4, r0 - str r4, [r1, #8] - ldr r0, [r1, #8] - ldrb r0, [r7, #3] - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _0801C7FC - cmp r3, #9 - ble _0801C7EE - subs r3, #0xa - adds r5, #0x40 -_0801C7EE: - lsls r0, r3, #1 - adds r0, r0, r5 - adds r1, #0x11 - ldr r3, _0801C81C @ =0xFFFFF000 - adds r2, r3, #0 - orrs r1, r2 - strh r1, [r0, #2] -_0801C7FC: - ldr r1, _0801C820 @ =gScreen - movs r0, #1 - strh r0, [r1, #0xe] -_0801C802: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801C808: .4byte gUnk_080C8F2C -_0801C80C: .4byte gUnk_02034D30 -_0801C810: .4byte 0x0000F010 -_0801C814: .4byte 0x040000D4 -_0801C818: .4byte gUnk_02034CF0 -_0801C81C: .4byte 0xFFFFF000 -_0801C820: .4byte gScreen diff --git a/asm/drawRupees.s b/asm/drawRupees.s deleted file mode 100644 index 50ab1577..00000000 --- a/asm/drawRupees.s +++ /dev/null @@ -1,160 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0801C4B0 -sub_0801C4B0: @ 0x0801C4B0 - push {r4, r5, r6, lr} - ldr r2, _0801C4F0 @ =gUnk_0200AF00 - ldrb r1, [r2, #1] - movs r0, #0x40 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - beq _0801C4FC - ldrb r0, [r6, #0xa] - cmp r0, #0 - bne _0801C4C8 - b _0801C5D0 -_0801C4C8: - movs r0, #0 - strb r0, [r6, #0xa] - ldr r3, _0801C4F4 @ =gUnk_02035160 - strh r0, [r3] - strh r0, [r3, #2] - strh r0, [r3, #4] - strh r0, [r3, #6] - strh r0, [r3, #8] - adds r4, r3, #0 - adds r4, #0x40 - strh r0, [r4] - strh r0, [r4, #2] - strh r0, [r4, #4] - strh r0, [r4, #6] - strh r0, [r4, #8] - ldr r1, _0801C4F8 @ =gScreen - movs r0, #1 - strh r0, [r1, #0xe] - b _0801C5D0 - .align 2, 0 -_0801C4F0: .4byte gUnk_0200AF00 -_0801C4F4: .4byte gUnk_02035160 -_0801C4F8: .4byte gScreen -_0801C4FC: - ldrb r0, [r6, #0xa] - cmp r0, #0 - bne _0801C560 - movs r0, #2 - strb r0, [r6, #0xa] - ldr r3, _0801C54C @ =gUnk_02035160 - adds r4, r3, #0 - adds r4, #0x40 - ldr r1, _0801C550 @ =gWalletSizes - ldr r2, _0801C554 @ =gSave - adds r0, r2, #0 - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r1, [r0, #2] - strh r1, [r3] - adds r0, r1, #1 - strh r0, [r3, #2] - adds r0, r1, #2 - strh r0, [r4] - adds r0, r1, #3 - strh r0, [r4, #2] - ldr r1, _0801C558 @ =0x0000F070 - strh r1, [r3, #4] - adds r0, r1, #1 - strh r0, [r4, #4] - adds r0, r1, #2 - strh r0, [r3, #6] - adds r0, r1, #3 - strh r0, [r4, #6] - adds r0, r1, #4 - strh r0, [r3, #8] - adds r0, r1, #5 - strh r0, [r4, #8] - ldr r1, _0801C55C @ =gScreen - movs r0, #1 - strh r0, [r1, #0xe] - movs r4, #1 - b _0801C564 - .align 2, 0 -_0801C54C: .4byte gUnk_02035160 -_0801C550: .4byte gWalletSizes -_0801C554: .4byte gSave -_0801C558: .4byte 0x0000F070 -_0801C55C: .4byte gScreen -_0801C560: - movs r4, #0 - ldr r2, _0801C580 @ =gSave -_0801C564: - adds r5, r6, #0 - adds r0, r2, #0 - adds r0, #0xc0 - ldrh r1, [r5, #0xe] - adds r3, r1, #0 - ldrh r0, [r0] - cmp r3, r0 - beq _0801C58A - cmp r3, r0 - bhs _0801C584 - adds r0, r1, #1 - strh r0, [r5, #0xe] - b _0801C588 - .align 2, 0 -_0801C580: .4byte gSave -_0801C584: - subs r0, r1, #1 - strh r0, [r6, #0xe] -_0801C588: - movs r4, #2 -_0801C58A: - cmp r4, #1 - beq _0801C5A4 - cmp r4, #2 - bne _0801C5CC - ldr r0, _0801C5D4 @ =gUnk_0200AF00 - ldrb r0, [r0, #0xc] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0801C5A4 - movs r0, #0x6f - bl SoundReq -_0801C5A4: - ldr r4, _0801C5D4 @ =gUnk_0200AF00 - ldrh r3, [r4, #0xe] - movs r2, #0 - ldr r1, _0801C5D8 @ =gWalletSizes - ldr r0, _0801C5DC @ =gSave - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bhi _0801C5BE - movs r2, #1 -_0801C5BE: - movs r0, #0x70 - adds r1, r3, #0 - movs r3, #3 - bl sub_0801C5E0 - ldrb r0, [r4, #0xc] - adds r4, r0, #1 -_0801C5CC: - ldr r0, _0801C5D4 @ =gUnk_0200AF00 - strb r4, [r0, #0xc] -_0801C5D0: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801C5D4: .4byte gUnk_0200AF00 -_0801C5D8: .4byte gWalletSizes -_0801C5DC: .4byte gSave diff --git a/asm/drawUI.s b/asm/drawUI.s deleted file mode 100644 index 489f02ca..00000000 --- a/asm/drawUI.s +++ /dev/null @@ -1,26 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0801C344 -sub_0801C344: @ 0x0801C344 - push {r4, r5, lr} - ldr r4, _0801C36C @ =gUnk_0200AF00 - ldrb r1, [r4, #1] - ldrb r0, [r4] - bics r0, r1 - movs r5, #0 - strb r0, [r4] - bl sub_0801C6B0 - bl sub_0801C85C - bl sub_0801C4B0 - bl sub_0801C99C - strb r5, [r4] - bl sub_0801C1D4 - pop {r4, r5, pc} - .align 2, 0 -_0801C36C: .4byte gUnk_0200AF00 diff --git a/asm/code_080011C4.s b/asm/enemy.s similarity index 100% rename from asm/code_080011C4.s rename to asm/enemy.s diff --git a/asm/code_0804A720.s b/asm/enemyUtils.s similarity index 100% rename from asm/code_0804A720.s rename to asm/enemyUtils.s diff --git a/asm/code_0804AA84.s b/asm/enterPortalSubtask.s similarity index 100% rename from asm/code_0804AA84.s rename to asm/enterPortalSubtask.s diff --git a/asm/code_08018500.s b/asm/kinstone.s similarity index 100% rename from asm/code_08018500.s rename to asm/kinstone.s diff --git a/asm/libagbsyscall.s b/asm/lib/libagbsyscall.s similarity index 100% rename from asm/libagbsyscall.s rename to asm/lib/libagbsyscall.s diff --git a/asm/libgcc.s b/asm/lib/libgcc.s similarity index 100% rename from asm/libgcc.s rename to asm/lib/libgcc.s diff --git a/asm/m4a_asm.s b/asm/lib/m4a_asm.s similarity index 100% rename from asm/m4a_asm.s rename to asm/lib/m4a_asm.s diff --git a/asm/code_080ADD30.s b/asm/movement.s similarity index 65% rename from asm/code_080ADD30.s rename to asm/movement.s index ed420750..6adfcac0 100644 --- a/asm/code_080ADD30.s +++ b/asm/movement.s @@ -5,1085 +5,6 @@ .text - - - - thumb_func_start ResetPalettes -ResetPalettes: @ 0x080ADD30 - push {r4, r5, r6, lr} - ldr r4, _080ADD6C @ =gGFXSlots - movs r1, #0x85 - lsls r1, r1, #2 - adds r0, r4, #0 - bl MemClear - movs r5, #0 - adds r4, #4 - movs r0, #0x10 - rsbs r0, r0, #0 - adds r6, r0, #0 -_080ADD48: - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl ReserveGFXSlots - ldrb r0, [r4] - ands r0, r6 - movs r1, #6 - orrs r0, r1 - strb r0, [r4] - movs r0, #0x80 - strb r0, [r4, #2] - adds r4, #0xc - adds r5, #1 - cmp r5, #3 - bls _080ADD48 - pop {r4, r5, r6, pc} - .align 2, 0 -_080ADD6C: .4byte gGFXSlots - - thumb_func_start sub_080ADD70 -sub_080ADD70: @ 0x080ADD70 -.ifdef EU - push {r4, r5, lr} - ldr r0, _080AD540 @ =gGFXSlots - ldrb r0, [r0] - cmp r0, #0 - beq _080AD56A - movs r4, #0 - movs r5, #0 -_080AD522: - ldr r0, _080AD544 @ =gUnk_02024494 - adds r2, r5, r0 - ldrb r1, [r2] - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #2 - bne _080AD548 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - b _080AD562 - .align 2, 0 -_080AD540: .4byte gGFXSlots -_080AD544: .4byte gUnk_02024494 -_080AD548: - cmp r0, #2 - blt _080AD562 - cmp r0, #6 - bgt _080AD562 - cmp r0, #4 - blt _080AD562 - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x30 - bne _080AD562 - adds r0, r4, #0 - bl sub_080ADE74 -_080AD562: - adds r5, #0xc - adds r4, #1 - cmp r4, #0x2b - bls _080AD522 -_080AD56A: - pop {r4, r5, pc} - -.else - push {r4, r5, lr} - ldr r1, _080ADD88 @ =gGFXSlots - ldrb r0, [r1] - cmp r0, #0 - beq _080ADDD6 - ldrb r0, [r1, #3] - cmp r0, #0 - beq _080ADD8C - bl sub_080ADE24 - b _080ADDD6 - .align 2, 0 -_080ADD88: .4byte gGFXSlots -_080ADD8C: - movs r4, #0 - movs r5, #0 -_080ADD90: - ldr r0, _080ADDB0 @ =gUnk_02024494 - adds r2, r5, r0 - ldrb r1, [r2] - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #2 - bne _080ADDB4 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - b _080ADDCE - .align 2, 0 -_080ADDB0: .4byte gUnk_02024494 -_080ADDB4: - cmp r0, #2 - blt _080ADDCE - cmp r0, #6 - bgt _080ADDCE - cmp r0, #4 - blt _080ADDCE - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x30 - bne _080ADDCE - adds r0, r4, #0 - bl sub_080ADE74 -_080ADDCE: - adds r5, #0xc - adds r4, #1 - cmp r4, #0x2b - bls _080ADD90 -_080ADDD6: - pop {r4, r5, pc} -.endif - - thumb_func_start sub_080ADDD8 -sub_080ADDD8: @ 0x080ADDD8 - push {lr} - adds r2, r1, #0 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080ADDFC @ =gUnk_02024494 - adds r3, r1, r0 - ldr r0, _080ADE00 @ =0x00FFFFFC - ands r0, r2 - ldr r1, _080ADE04 @ =gGlobalGfxAndPalettes - adds r0, r0, r1 - str r0, [r3, #8] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _080ADE0C - ldr r0, _080ADE08 @ =0x0000FFFF - b _080ADE14 - .align 2, 0 -_080ADDFC: .4byte gUnk_02024494 -_080ADE00: .4byte 0x00FFFFFC -_080ADE04: .4byte gGlobalGfxAndPalettes -_080ADE08: .4byte 0x0000FFFF -_080ADE0C: - movs r0, #0xfe - lsls r0, r0, #0x17 - ands r0, r2 - lsrs r0, r0, #0x14 -_080ADE14: - strh r0, [r3, #6] - ldrb r0, [r3] - movs r1, #0xf - ands r1, r0 - movs r0, #0x30 - orrs r1, r0 - strb r1, [r3] - pop {pc} - - thumb_func_start sub_080ADE24 -sub_080ADE24: @ 0x080ADE24 - push {r4, r5, lr} - ldr r1, _080ADE50 @ =gGFXSlots - movs r0, #1 - strb r0, [r1, #3] - movs r4, #0 - movs r5, #0 -_080ADE30: - ldr r0, _080ADE54 @ =gUnk_02024494 - adds r1, r5, r0 - ldrb r0, [r1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #3 - beq _080ADE60 - cmp r0, #3 - blt _080ADE58 - cmp r0, #6 - bgt _080ADE58 - adds r0, r4, #0 - bl sub_080ADE74 - b _080ADE60 - .align 2, 0 -_080ADE50: .4byte gGFXSlots -_080ADE54: .4byte gUnk_02024494 -_080ADE58: - adds r0, r1, #0 - movs r1, #0xc - bl MemClear -_080ADE60: - adds r5, #0xc - adds r4, #1 - cmp r4, #0x2b - bls _080ADE30 - movs r1, #0 - ldr r0, _080ADE70 @ =gGFXSlots - strb r1, [r0, #3] - pop {r4, r5, pc} - .align 2, 0 -_080ADE70: .4byte gGFXSlots - - thumb_func_start sub_080ADE74 -sub_080ADE74: @ 0x080ADE74 - push {r4, r5, r6, lr} - adds r2, r0, #0 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r1, _080ADF00 @ =gUnk_02024494 - adds r3, r0, r1 - ldrb r1, [r3] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0 - beq _080ADF7C - movs r0, #0xf - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r3] - ldrh r1, [r3, #6] - ldr r0, _080ADF04 @ =0x0000FFFF - cmp r1, r0 - beq _080ADF18 - ldrb r0, [r3, #3] - cmp r0, #0 - beq _080ADF18 - lsls r0, r0, #6 - ldr r1, _080ADF08 @ =gUnk_020000C0 - adds r4, r0, r1 - movs r5, #4 - movs r6, #9 - rsbs r6, r6, #0 -_080ADEB0: - ldrb r1, [r4] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080ADEF6 - ldr r0, _080ADF0C @ =gGFXSlots - ldrb r0, [r0, #3] - cmp r0, #0 - bne _080ADECA - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080ADEF6 -_080ADECA: - adds r0, r6, #0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r4, #9] - lsls r2, r0, #5 - cmp r2, #0 - beq _080ADEF6 - ldrh r0, [r4, #0xa] - lsls r0, r0, #5 - ldr r3, _080ADF10 @ =0x06010000 - adds r1, r0, r3 - ldr r3, _080ADF14 @ =0x040000D4 - ldr r0, [r4, #0xc] - str r0, [r3] - str r1, [r3, #4] - adds r0, r2, #0 - asrs r0, r0, #2 - movs r1, #0x84 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r3, #8] - ldr r0, [r3, #8] -_080ADEF6: - adds r4, #0x10 - subs r5, #1 - cmp r5, #0 - bgt _080ADEB0 - b _080ADF7C - .align 2, 0 -_080ADF00: .4byte gUnk_02024494 -_080ADF04: .4byte 0x0000FFFF -_080ADF08: .4byte gUnk_020000C0 -_080ADF0C: .4byte gGFXSlots -_080ADF10: .4byte 0x06010000 -_080ADF14: .4byte 0x040000D4 -_080ADF18: - lsls r0, r2, #9 - ldr r2, _080ADF4C @ =0x06012800 - adds r1, r0, r2 - ldrh r2, [r3, #6] - cmp r2, #0 - beq _080ADF58 - ldr r0, _080ADF50 @ =0x0000FFFF - cmp r2, r0 - beq _080ADF62 - ldr r2, _080ADF54 @ =0x040000D4 - ldr r0, [r3, #8] - str r0, [r2] - str r1, [r2, #4] - ldrh r0, [r3, #6] - lsls r0, r0, #3 - movs r1, #0x84 - lsls r1, r1, #0x18 - orrs r0, r1 - str r0, [r2, #8] - ldr r0, [r2, #8] - ldrh r2, [r3, #6] - subs r2, #0x10 - cmp r2, #0 - ble _080ADF7C - b _080ADF70 - .align 2, 0 -_080ADF4C: .4byte 0x06012800 -_080ADF50: .4byte 0x0000FFFF -_080ADF54: .4byte 0x040000D4 -_080ADF58: - ldrb r1, [r3] - movs r0, #0xf - ands r0, r1 - strb r0, [r3] - b _080ADF7C -_080ADF62: - ldrb r0, [r3, #3] - cmp r0, #0 - bne _080ADF7C - ldr r0, [r3, #8] - bl LZ77UnCompVram - b _080ADF7C -_080ADF70: - adds r3, #0xc - movs r0, #0 - strh r0, [r3, #6] - subs r2, #0x10 - cmp r2, #0 - bgt _080ADF70 -_080ADF7C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start LoadFixedGFX -LoadFixedGFX: @ 0x080ADF80 -.ifdef EU - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r5, r1, #0 - cmp r5, #0 - bne _080AD726 - movs r0, #1 - b _080AD77E -_080AD726: - movs r4, #4 - ldr r0, _080AD774 @ =gGFXSlots - adds r0, #0x30 -_080AD72C: - ldrh r1, [r0, #8] - cmp r5, r1 - beq _080AD766 - adds r0, #0xc - adds r4, #1 - cmp r4, #0x2b - bls _080AD72C - ldr r0, _080AD778 @ =gFixedTypeGfxData - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r7, [r1] - movs r0, #0xfe - lsls r0, r0, #0x17 - ands r0, r7 - lsrs r6, r0, #0x18 - adds r0, r6, #0 - bl FindFreeGFXSlot - adds r4, r0, #0 - cmp r4, #0 - beq _080AD77C - adds r1, r5, #0 - adds r2, r6, #0 - bl ReserveGFXSlots - adds r0, r4, #0 - adds r1, r7, #0 - bl sub_080ADDD8 -_080AD766: - adds r0, r4, #0 - mov r1, r8 - movs r2, #4 - bl sub_080AE0C8 - movs r0, #1 - b _080AD77E - .align 2, 0 -_080AD774: .4byte gGFXSlots -_080AD778: .4byte gFixedTypeGfxData -_080AD77C: - movs r0, #0 -_080AD77E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - -.else - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, #0 - cmp r7, #0 - beq _080ADFFC - movs r5, #4 - ldr r0, _080ADFD4 @ =gGFXSlots - adds r0, #0x30 -_080ADF94: - ldrh r1, [r0, #8] - cmp r7, r1 - beq _080ADFF2 - adds r0, #0xc - adds r5, #1 - cmp r5, #0x2b - bls _080ADF94 - ldr r0, _080ADFD8 @ =gFixedTypeGfxData - lsls r4, r7, #2 - adds r0, r4, r0 - ldr r0, [r0] - movs r1, #0xfe - lsls r1, r1, #0x17 - ands r0, r1 - lsrs r6, r0, #0x18 - adds r0, r6, #0 - bl FindFreeGFXSlot - adds r5, r0, #0 - cmp r5, #0 - bne _080ADFDC - bl CleanUpGFXSlots - adds r0, r6, #0 - bl FindFreeGFXSlot - adds r5, r0, #0 - cmp r5, #0 - bne _080ADFDC - movs r0, #0 - b _080ADFFE - .align 2, 0 -_080ADFD4: .4byte gGFXSlots -_080ADFD8: .4byte gFixedTypeGfxData -_080ADFDC: - adds r0, r5, #0 - adds r1, r7, #0 - adds r2, r6, #0 - bl ReserveGFXSlots - ldr r0, _080AE004 @ =gFixedTypeGfxData - adds r0, r4, r0 - ldr r1, [r0] - adds r0, r5, #0 - bl sub_080ADDD8 -_080ADFF2: - adds r0, r5, #0 - mov r1, r8 - movs r2, #4 - bl sub_080AE0C8 -_080ADFFC: - movs r0, #1 -_080ADFFE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AE004: .4byte gFixedTypeGfxData -.endif - - thumb_func_start LoadSwapGFX -LoadSwapGFX: @ 0x080AE008 -.ifdef EU - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - cmp r4, #0 - bne _080AD79C - adds r0, r5, #0 - bl FindFreeGFXSlot - adds r4, r0, #0 - cmp r4, #0 - beq _080AD7C4 -_080AD79C: - ldr r0, _080AD7D0 @ =gGFXSlots - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x1c - lsrs r2, r0, #0x1c - cmp r2, #6 - beq _080AD7BC - adds r0, r4, #0 - movs r1, #0 - adds r2, r5, #0 - bl ReserveGFXSlots - movs r2, #5 -_080AD7BC: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080AE0C8 -_080AD7C4: - adds r0, r4, #0 - cmp r0, #0 - beq _080AD7CC - movs r0, #1 -_080AD7CC: - pop {r4, r5, r6, pc} - .align 2, 0 -_080AD7D0: .4byte gGFXSlots - -.else - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - cmp r4, #0 - bne _080AE030 - adds r0, r5, #0 - bl FindFreeGFXSlot - adds r4, r0, #0 - cmp r4, #0 - bne _080AE030 - bl CleanUpGFXSlots - adds r0, r5, #0 - bl FindFreeGFXSlot - adds r4, r0, #0 - cmp r4, #0 - beq _080AE058 -_080AE030: - ldr r0, _080AE064 @ =gGFXSlots - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #4] - lsls r0, r0, #0x1c - lsrs r2, r0, #0x1c - cmp r2, #6 - beq _080AE050 - adds r0, r4, #0 - movs r1, #0 - adds r2, r5, #0 - bl ReserveGFXSlots - movs r2, #5 -_080AE050: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080AE0C8 -_080AE058: - adds r0, r4, #0 - cmp r0, #0 - beq _080AE060 - movs r0, #1 -_080AE060: - pop {r4, r5, r6, pc} - .align 2, 0 -_080AE064: .4byte gGFXSlots -.endif - - thumb_func_start sub_080AE068 -sub_080AE068: @ 0x080AE068 - push {r4, r5, lr} - adds r0, #0x26 - ldrb r2, [r0] - movs r1, #0 - strb r1, [r0] - cmp r2, #0 - beq _080AE0C2 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r1, _080AE0C4 @ =gUnk_02024494 - adds r3, r0, r1 - ldrb r0, [r3] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #5 - bgt _080AE0C2 - cmp r0, #4 - blt _080AE0C2 - ldrb r0, [r3, #2] - cmp r0, #0 - beq _080AE0C2 - subs r0, #1 - strb r0, [r3, #2] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AE0C2 - ldrb r2, [r3, #1] - adds r0, r2, #0 - subs r2, #1 - cmp r0, #0 - ble _080AE0C2 - movs r5, #0x10 - rsbs r5, r5, #0 - movs r4, #1 -_080AE0AE: - ldrb r0, [r3] - adds r1, r5, #0 - ands r1, r0 - orrs r1, r4 - strb r1, [r3] - adds r3, #0xc - adds r0, r2, #0 - subs r2, #1 - cmp r0, #0 - bgt _080AE0AE -_080AE0C2: - pop {r4, r5, pc} - .align 2, 0 -_080AE0C4: .4byte gUnk_02024494 - - thumb_func_start sub_080AE0C8 -sub_080AE0C8: @ 0x080AE0C8 - push {r4, lr} - adds r4, r2, #0 - lsls r2, r0, #4 - movs r3, #0xa0 - lsls r3, r3, #1 - adds r2, r2, r3 - adds r3, r1, #0 - adds r3, #0x60 - strh r2, [r3] - adds r1, #0x26 - strb r0, [r1] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080AE100 @ =gUnk_02024494 - adds r1, r1, r0 - ldrb r2, [r1, #2] - movs r0, #2 - ldrsb r0, [r1, r0] - cmp r0, #0 - blt _080AE0F6 - adds r0, r2, #1 - strb r0, [r1, #2] -_080AE0F6: - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_080AE134 - pop {r4, pc} - .align 2, 0 -_080AE100: .4byte gUnk_02024494 - - thumb_func_start ReserveGFXSlots -ReserveGFXSlots: @ 0x080AE104 - push {r4, r5, r6, lr} - adds r6, r1, #0 - adds r5, r2, #0 - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #2 - ldr r0, _080AE130 @ =gUnk_02024494 - adds r4, r4, r0 - lsls r1, r5, #1 - adds r1, r1, r5 - lsls r1, r1, #2 - adds r0, r4, #0 - bl MemClear - strb r5, [r4, #1] - strh r6, [r4, #4] - adds r0, r4, #0 - movs r1, #4 - bl sub_080AE134 - pop {r4, r5, r6, pc} - .align 2, 0 -_080AE130: .4byte gUnk_02024494 - - thumb_func_start sub_080AE134 -sub_080AE134: @ 0x080AE134 - push {r4, r5, r6, lr} - adds r3, r0, #0 - adds r4, r1, #0 - movs r6, #0xf - adds r0, r4, #0 - ands r0, r6 - ldrb r2, [r3] - movs r5, #0x10 - rsbs r5, r5, #0 - adds r1, r5, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] - ldrb r2, [r3, #1] - cmp r4, #6 - beq _080AE156 - movs r4, #3 -_080AE156: - subs r2, #1 - cmp r2, #0 - ble _080AE170 - ands r4, r6 -_080AE15E: - adds r3, #0xc - ldrb r1, [r3] - adds r0, r5, #0 - ands r0, r1 - orrs r0, r4 - strb r0, [r3] - subs r2, #1 - cmp r2, #0 - bgt _080AE15E -_080AE170: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start FindFreeGFXSlot -FindFreeGFXSlot: @ 0x080AE174 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #4 - ldr r0, _080AE194 @ =gGFXSlots - adds r3, r0, #0 - adds r3, #0x30 -_080AE182: - ldrb r0, [r3, #4] - lsls r0, r0, #0x1c - cmp r0, #0 - bne _080AE198 - adds r1, #1 - cmp r4, r1 - bhi _080AE19A - b _080AE1BC - .align 2, 0 -_080AE194: .4byte gGFXSlots -_080AE198: - movs r1, #0 -_080AE19A: - adds r3, #0xc - adds r2, #1 - cmp r2, #0x2b - bls _080AE182 - movs r1, #0 - movs r2, #4 - ldr r0, _080AE1C4 @ =gGFXSlots - adds r3, r0, #0 - adds r3, #0x30 -_080AE1AC: - ldrb r0, [r3, #4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #1 -.ifdef EU - bne _080AE1C8 -.else - bhi _080AE1C8 -.endif - adds r1, #1 - cmp r4, r1 - bhi _080AE1CA -_080AE1BC: - subs r0, r2, r1 - adds r0, #1 - b _080AE1D4 - .align 2, 0 -_080AE1C4: .4byte gGFXSlots -_080AE1C8: - movs r1, #0 -_080AE1CA: - adds r3, #0xc - adds r2, #1 - cmp r2, #0x2b - bls _080AE1AC - movs r0, #0 -_080AE1D4: - pop {r4, pc} - .align 2, 0 - -.ifndef EU - thumb_func_start CleanUpGFXSlots -CleanUpGFXSlots: @ 0x080AE1D8 - push {r4, r5, lr} - ldr r0, _080AE1E8 @ =gGFXSlots - ldrb r0, [r0] - cmp r0, #0 - beq _080AE216 - movs r5, #4 - b _080AE20A - .align 2, 0 -_080AE1E8: .4byte gGFXSlots -_080AE1EC: - bl sub_080AE3B8 - adds r4, r0, #0 - cmp r4, r5 - bhi _080AE208 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080AE218 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080AE324 - adds r5, r4, #0 -_080AE208: - adds r5, #1 -_080AE20A: - adds r0, r5, #0 - bl sub_080AE384 - adds r5, r0, #0 - cmp r5, #0 - bne _080AE1EC -_080AE216: - pop {r4, r5, pc} - - thumb_func_start sub_080AE218 -sub_080AE218: @ 0x080AE218 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - mov r8, r1 - lsls r0, r1, #4 - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r0, r1 - mov ip, r0 - mov r2, sl - lsls r0, r2, #4 - adds r3, r0, r1 - ldr r1, _080AE30C @ =gGFXSlots - lsls r0, r2, #1 - add r0, sl - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #5] - lsls r0, r0, #4 - adds r7, r3, r0 - movs r4, #0 - ldr r6, _080AE310 @ =gUnk_020000C0 - mov sb, r6 - ldr r0, _080AE314 @ =gPlayerEntity - adds r2, r0, #0 - adds r2, #0x26 - adds r5, r0, #0 -_080AE254: - ldr r0, [r5, #4] - cmp r0, #0 - beq _080AE276 - ldrb r0, [r2] - cmp sl, r0 - bne _080AE264 - mov r1, r8 - strb r1, [r2] -_080AE264: - ldrh r0, [r2, #0x3a] - cmp r3, r0 - bhi _080AE276 - cmp r7, r0 - bls _080AE276 - subs r0, r0, r3 - mov r6, ip - adds r1, r0, r6 - strh r1, [r2, #0x3a] -_080AE276: - adds r2, #0x88 - adds r5, #0x88 - adds r4, #1 - cmp r4, #0x4f - bls _080AE254 - movs r0, #0 -_080AE282: - movs r4, #0 - adds r1, r0, #1 - mov r8, r1 - lsls r5, r0, #6 -_080AE28A: - lsls r0, r4, #4 - add r0, sb - adds r2, r5, r0 - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AE2B4 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _080AE2B4 - ldrh r1, [r2, #0xa] - cmp r3, r1 - bhi _080AE2B4 - cmp r7, r1 - bls _080AE2B4 - subs r0, r1, r3 - mov r6, ip - adds r1, r0, r6 - strh r1, [r2, #0xa] -_080AE2B4: - adds r4, #1 - cmp r4, #3 - bls _080AE28A - mov r0, r8 - cmp r0, #0x2f - bls _080AE282 - movs r4, #0 - ldr r0, _080AE318 @ =0xFFFFFC00 - mov sl, r0 - ldr r5, _080AE31C @ =gUnk_03000000 - adds r5, #0x24 - ldr r1, _080AE320 @ =0x000003FF - mov sb, r1 - movs r2, #1 - mov r8, r2 -_080AE2D2: - ldrh r2, [r5] - lsls r0, r2, #0x16 - lsrs r1, r0, #0x16 - cmp r3, r1 - bhi _080AE2F8 - cmp r7, r1 - bls _080AE2F8 - subs r0, r1, r3 - mov r6, ip - adds r1, r0, r6 - mov r0, sb - ands r1, r0 - mov r0, sl - ands r0, r2 - orrs r0, r1 - strh r0, [r5] - mov r2, r8 - ldr r1, _080AE31C @ =gUnk_03000000 - strb r2, [r1] -_080AE2F8: - adds r5, #8 - adds r4, #1 - cmp r4, #0x7f - bls _080AE2D2 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AE30C: .4byte gGFXSlots -_080AE310: .4byte gUnk_020000C0 -_080AE314: .4byte gPlayerEntity -_080AE318: .4byte 0xFFFFFC00 -_080AE31C: .4byte gUnk_03000000 -_080AE320: .4byte 0x000003FF - - thumb_func_start sub_080AE324 -sub_080AE324: @ 0x080AE324 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r3, r1, #0 - ldr r2, _080AE380 @ =gGFXSlots - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r5, r1, r2 - ldrb r4, [r5, #5] - subs r4, #1 - movs r0, #1 - rsbs r0, r0, #0 - cmp r4, r0 - beq _080AE372 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - adds r0, r0, r2 - mov r8, r0 - adds r0, r1, #4 - adds r6, r0, r2 -_080AE350: - mov r0, r8 - adds r0, #4 - adds r1, r5, #4 - ldm r1!, {r2, r3, r7} - stm r0!, {r2, r3, r7} - adds r0, r6, #0 - movs r1, #0xc - bl MemClear - adds r6, #0xc - adds r5, #0xc - movs r0, #0xc - add r8, r0 - subs r4, #1 - subs r0, #0xd - cmp r4, r0 - bne _080AE350 -_080AE372: - ldr r1, _080AE380 @ =gGFXSlots - movs r0, #1 - strb r0, [r1, #3] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AE380: .4byte gGFXSlots - - thumb_func_start sub_080AE384 -sub_080AE384: @ 0x080AE384 - push {lr} - adds r2, r0, #0 - cmp r2, #0x2a - bhi _080AE3B4 - ldr r1, _080AE3A8 @ =gGFXSlots - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r1, r0, r1 -_080AE396: - ldrb r0, [r1, #4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #5 - bgt _080AE3AC - cmp r0, #4 - blt _080AE3AC - adds r0, r2, #0 - b _080AE3B6 - .align 2, 0 -_080AE3A8: .4byte gGFXSlots -_080AE3AC: - adds r1, #0xc - adds r2, #1 - cmp r2, #0x2a - bls _080AE396 -_080AE3B4: - movs r0, #0 -_080AE3B6: - pop {pc} - - thumb_func_start sub_080AE3B8 -sub_080AE3B8: @ 0x080AE3B8 - push {lr} - movs r1, #4 - ldr r0, _080AE3D4 @ =gGFXSlots - adds r2, r0, #0 - adds r2, #0x30 -_080AE3C2: - ldrb r0, [r2, #4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #1 - bgt _080AE3D8 - cmp r0, #0 - blt _080AE3D8 - adds r0, r1, #0 - b _080AE3E2 - .align 2, 0 -_080AE3D4: .4byte gGFXSlots -_080AE3D8: - adds r2, #0xc - adds r1, #1 - cmp r1, #0x2b - bls _080AE3C2 - movs r0, #0 -_080AE3E2: - pop {pc} -.endif - thumb_func_start sub_080AE3E4 sub_080AE3E4: @ 0x080AE3E4 movs r0, #0 diff --git a/asm/code_0807059C.s b/asm/non_matching/playerItemPacciCane/sub_080705AC.inc similarity index 83% rename from asm/code_0807059C.s rename to asm/non_matching/playerItemPacciCane/sub_080705AC.inc index 370d8b49..ecc53f93 100644 --- a/asm/code_0807059C.s +++ b/asm/non_matching/playerItemPacciCane/sub_080705AC.inc @@ -1,23 +1,4 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0807059C -sub_0807059C: @ 0x0807059C - push {lr} - ldr r0, _080705A8 @ =gUnk_02034490 - movs r1, #0x18 - bl MemClear - pop {pc} - .align 2, 0 -_080705A8: .4byte gUnk_02034490 - - thumb_func_start sub_080705AC -sub_080705AC: @ 0x080705AC + .syntax unified push {lr} ldr r0, _08070614 @ =gInput ldrh r1, [r0, #2] @@ -110,3 +91,4 @@ _08070678: movs r0, #1 _0807067E: pop {pc} + .syntax divided diff --git a/asm/sub_080AD8F0.s b/asm/non_matching/vram/sub_080AD8F0.inc similarity index 61% rename from asm/sub_080AD8F0.s rename to asm/non_matching/vram/sub_080AD8F0.inc index 840d2646..ab23cf55 100644 --- a/asm/sub_080AD8F0.s +++ b/asm/non_matching/vram/sub_080AD8F0.inc @@ -1,12 +1,4 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_080AD8F0 -sub_080AD8F0: @ 0x080AD8F0 + .syntax unified ldr r2, _080AD908 @ =gFrameObjLists lsls r0, r0, #2 adds r0, r0, r2 @@ -20,3 +12,4 @@ sub_080AD8F0: @ 0x080AD8F0 bx lr .align 2, 0 _080AD908: .4byte gFrameObjLists + .syntax divided diff --git a/asm/non_matching/vram/sub_080AD918.inc b/asm/non_matching/vram/sub_080AD918.inc new file mode 100644 index 00000000..6b2c5705 --- /dev/null +++ b/asm/non_matching/vram/sub_080AD918.inc @@ -0,0 +1,76 @@ + .syntax unified + push {r4, lr} + ldr r1, _080AD948 @ =gMain + ldrb r0, [r1, #0xb] + adds r2, r0, #0 + cmp r2, #0 + bne _080AD958 + ldr r1, _080AD94C @ =gUnk_03000000 + movs r3, #0xa4 + lsls r3, r3, #3 + adds r0, r1, r3 + strb r2, [r0] + ldr r3, _080AD950 @ =0x00000664 + adds r0, r1, r3 + strb r2, [r0] + movs r3, #0xf5 + lsls r3, r3, #3 + adds r0, r1, r3 + strb r2, [r0] + ldr r3, _080AD954 @ =0x000008EC + adds r0, r1, r3 + strb r2, [r0] + adds r4, r1, #0 + b _080AD95E + .align 2, 0 +_080AD948: .4byte gMain +_080AD94C: .4byte gUnk_03000000 +_080AD950: .4byte 0x00000664 +_080AD954: .4byte 0x000008EC +_080AD958: + subs r0, #1 + strb r0, [r1, #0xb] + ldr r4, _080AD9A8 @ =gUnk_03000000 +_080AD95E: + ldrb r1, [r4, #3] + movs r0, #0x80 + subs r2, r0, r1 + cmp r2, #0 + ble _080AD980 + lsls r1, r1, #3 + adds r0, r4, #0 + adds r0, #0x20 + adds r1, r1, r0 + movs r3, #0xa8 + lsls r3, r3, #2 + adds r0, r3, #0 +_080AD976: + strh r0, [r1] + adds r1, #8 + subs r2, #1 + cmp r2, #0 + bne _080AD976 +_080AD980: + adds r1, r4, #0 + ldr r0, _080AD9AC @ =0x00000427 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, #0 + beq _080AD9A0 + movs r0, #0 + strb r0, [r2] + movs r2, #0x84 + lsls r2, r2, #3 + adds r0, r1, r2 + adds r1, #0x26 + movs r2, #0x20 + movs r3, #8 + bl ObjAffineSet +_080AD9A0: + movs r0, #1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_080AD9A8: .4byte gUnk_03000000 +_080AD9AC: .4byte 0x00000427 + .syntax divided diff --git a/asm/code_080A29BC.s b/asm/objectUtils.s similarity index 100% rename from asm/code_080A29BC.s rename to asm/objectUtils.s diff --git a/asm/code_0800857C.s b/asm/player.s similarity index 100% rename from asm/code_0800857C.s rename to asm/player.s diff --git a/asm/code_08077698.s b/asm/playerUtils.s similarity index 100% rename from asm/code_08077698.s rename to asm/playerUtils.s diff --git a/asm/code_08016984.s b/asm/script.s similarity index 100% rename from asm/code_08016984.s rename to asm/script.s diff --git a/asm/code_0807F0D8.s b/asm/scroll.s similarity index 100% rename from asm/code_0807F0D8.s rename to asm/scroll.s diff --git a/asm/code_080A3480.s b/asm/staffroll.s similarity index 100% rename from asm/code_080A3480.s rename to asm/staffroll.s diff --git a/asm/sub_0801C824.s b/asm/sub_0801C824.s deleted file mode 100644 index 2a0beaee..00000000 --- a/asm/sub_0801C824.s +++ /dev/null @@ -1,38 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0801C824 -sub_0801C824: @ 0x0801C824 - push {lr} - ldr r1, _0801C850 @ =gUnk_0200AF00 - ldrb r0, [r1, #6] - cmp r0, #0 - beq _0801C84E - movs r2, #0 - strb r2, [r1, #6] - ldrb r0, [r1, #4] - ldr r1, _0801C854 @ =gUnk_02034D30 - cmp r0, #0x28 - bls _0801C83C - adds r1, #0x40 -_0801C83C: - str r2, [r1] - str r2, [r1, #4] - str r2, [r1, #8] - str r2, [r1, #0xc] - str r2, [r1, #0x10] - str r2, [r1, #0x14] - ldr r1, _0801C858 @ =gScreen - movs r0, #1 - strh r0, [r1, #0xe] -_0801C84E: - pop {pc} - .align 2, 0 -_0801C850: .4byte gUnk_0200AF00 -_0801C854: .4byte gUnk_02034D30 -_0801C858: .4byte gScreen diff --git a/asm/sub_0804AA30.s b/asm/sub_0804AA30.s deleted file mode 100644 index 2233766d..00000000 --- a/asm/sub_0804AA30.s +++ /dev/null @@ -1,31 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0804AA30 -sub_0804AA30: @ 0x0804AA30 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r4, #0 - adds r6, #0x41 - ldrb r1, [r6] - movs r0, #0x7f - ands r0, r1 - strb r0, [r6] - adds r0, r4, #0 - bl GetNextFunction - ldrb r2, [r6] - movs r1, #0x80 - orrs r1, r2 - strb r1, [r6] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5, r6, pc} - .align 2, 0 diff --git a/asm/sub_080A276C.s b/asm/sub_080A276C.s deleted file mode 100644 index 3ba2ceab..00000000 --- a/asm/sub_080A276C.s +++ /dev/null @@ -1,106 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_080A276C -sub_080A276C: @ 0x080A276C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r4, r1, #0 - adds r7, r2, #0 - bl sub_0805E744 - adds r6, r0, #0 - cmp r6, #0 - beq _080A2820 - movs r0, #0xc1 - strb r0, [r6, #9] - movs r0, #6 - mov r8, r0 - mov r1, r8 - strb r1, [r6, #8] - strb r4, [r6, #0xa] - strb r7, [r6, #0xb] - str r5, [r6, #0x50] - adds r0, r6, #0 - movs r1, #6 - bl AppendEntityToList - adds r0, r6, #0 - movs r1, #6 - bl PrependEntityToList - ldr r4, _080A2828 @ =gPlayerEntity - adds r0, r4, #0 - adds r1, r6, #0 - bl CopyPosition - ldr r0, _080A282C @ =gPriorityHandler - mov r1, r8 - strb r1, [r0] - ldr r1, _080A2830 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4, #0x10] - adds r1, r6, #0 - adds r1, #0x69 - strb r0, [r1] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - subs r1, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - adds r1, #2 - strb r0, [r1] - ldr r1, _080A2834 @ =gPlayerState - ldrb r0, [r1, #7] - adds r2, r6, #0 - adds r2, #0x6b - strb r0, [r2] - ldrb r2, [r1, #0xb] - adds r0, r6, #0 - adds r0, #0x6c - strb r2, [r0] - ldrb r0, [r1, #0xa] - adds r2, r6, #0 - adds r2, #0x6d - strb r0, [r2] - adds r0, r1, #0 - adds r0, #0x27 - ldrb r0, [r0] - adds r2, #1 - strb r0, [r2] - ldrb r0, [r1, #0x1a] - adds r2, #1 - strb r0, [r2] - ldr r0, [r1, #0x30] - str r0, [r6, #0x70] - adds r1, #0x8a - ldrb r1, [r1] - adds r0, r6, #0 - adds r0, #0x74 - strb r1, [r0] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080A2820: - adds r0, r6, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A2828: .4byte gPlayerEntity -_080A282C: .4byte gPriorityHandler -_080A2830: .4byte gUnk_02034490 -_080A2834: .4byte gPlayerState diff --git a/asm/code_080A3BD0.s b/asm/subtask.s similarity index 100% rename from asm/code_080A3BD0.s rename to asm/subtask.s diff --git a/asm/code_080A5574.s b/asm/subtask2.s similarity index 100% rename from asm/code_080A5574.s rename to asm/subtask2.s diff --git a/asm/text.s b/asm/text.s new file mode 100644 index 00000000..63c05280 --- /dev/null +++ b/asm/text.s @@ -0,0 +1,1203 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0805EEB4 +sub_0805EEB4: @ 0x0805EEB4 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r3, r1, #0 + strh r3, [r7, #8] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #7] + cmp r1, #1 + bls _0805EED6 + lsrs r0, r3, #8 + cmp r0, #1 + bne _0805EED6 + movs r0, #0x8c + lsls r0, r0, #1 + cmp r3, r0 + bhi _0805EED6 + movs r1, #3 +_0805EED6: + ldr r0, _0805EF14 @ =gUnk_08109214 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r2, [r1] + lsrs r0, r3, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r4, [r0] + adds r2, r2, r4 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r4, [r0] + ldr r0, [r1] + ldr r1, [r0] + lsrs r1, r1, #2 + ldr r0, [r2] + lsrs r6, r0, #2 + movs r5, #0 + ldrh r3, [r7, #8] + lsrs r0, r3, #8 + cmp r0, r1 + bhs _0805EF0E + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r6 + blo _0805EF18 +_0805EF0E: + movs r5, #1 + b _0805EF22 + .align 2, 0 +_0805EF14: .4byte gUnk_08109214 +_0805EF18: + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _0805EF22 + movs r5, #2 +_0805EF22: + cmp r5, #2 + bhi _0805EF2E + cmp r5, #1 + blo _0805EF2E + ldr r2, _0805EF3C @ =gUnk_08109244 + movs r4, #0 +_0805EF2E: + adds r2, r2, r4 + adds r0, r7, #0 + adds r1, r2, #0 + bl sub_0805EF40 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805EF3C: .4byte gUnk_08109244 + + thumb_func_start sub_0805EF40 +sub_0805EF40: @ 0x0805EF40 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldrb r2, [r3] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0805EF70 + lsls r1, r2, #0x1b + lsrs r0, r1, #0x1c + cmp r0, #6 + bls _0805EF5C + movs r0, #0 + b _0805EF8A +_0805EF5C: + lsrs r0, r1, #0x1c + adds r0, #1 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_0805EF70: + ldrb r0, [r3] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1c + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x10 + adds r1, r1, r0 + str r4, [r1] + ldrb r0, [r3] + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + movs r0, #1 +_0805EF8A: + pop {r4, pc} + + thumb_func_start sub_0805EF8C +sub_0805EF8C: @ 0x0805EF8C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805EFAE + lsls r0, r1, #0x1b + lsrs r0, r0, #0x1c + lsls r0, r0, #2 + adds r2, #0x10 + adds r2, r2, r0 + ldr r1, [r2] + ldrb r0, [r1] + adds r1, #1 + str r1, [r2] + b _0805EFB0 +_0805EFAE: + movs r0, #0 +_0805EFB0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805EFB4 +sub_0805EFB4: @ 0x0805EFB4 + push {r4, lr} + adds r3, r0, #0 + ldrb r2, [r3] + lsls r1, r2, #0x1b + lsrs r4, r1, #0x1c + movs r0, #0x1e + ands r0, r2 + cmp r0, #0 + beq _0805EFDC + adds r0, r4, #0 + subs r0, #1 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + b _0805EFE4 +_0805EFDC: + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] +_0805EFE4: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start GetCharacter +GetCharacter: @ 0x0805EFE8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 +_0805EFEC: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + strb r5, [r6, #1] + movs r7, #0 + cmp r5, #0xf + bls _0805EFFE + b _0805F22C +_0805EFFE: + lsls r0, r5, #2 + ldr r1, _0805F008 @ =_0805F00C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F008: .4byte _0805F00C +_0805F00C: @ jump table + .4byte _0805F04C @ case 0 + .4byte _0805F058 @ case 1 + .4byte _0805F06E @ case 2 + .4byte _0805F07A @ case 3 + .4byte _0805F090 @ case 4 + .4byte _0805F130 @ case 5 + .4byte _0805F150 @ case 6 + .4byte _0805F196 @ case 7 + .4byte _0805F1C0 @ case 8 + .4byte _0805F1CC @ case 9 + .4byte _0805F1D8 @ case 10 + .4byte _0805F1DC @ case 11 + .4byte _0805F1EC @ case 12 + .4byte _0805F1FC @ case 13 + .4byte _0805F20C @ case 14 + .4byte _0805F21C @ case 15 +_0805F04C: + adds r0, r6, #0 + bl sub_0805EFB4 + adds r7, r0, #0 + movs r5, #0 + b _0805F232 +_0805F058: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + strh r4, [r6, #2] + movs r5, #6 + cmp r4, #0xa + bls _0805F06A + b _0805F232 +_0805F06A: + movs r5, #5 + b _0805F232 +_0805F06E: + adds r0, r6, #0 + bl sub_0805EF8C + strh r0, [r6, #2] + movs r5, #7 + b _0805F232 +_0805F07A: + adds r0, r6, #0 + bl sub_0805EF8C + lsls r4, r0, #8 + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r4, r0 + strh r4, [r6, #2] + movs r5, #8 + b _0805F232 +_0805F090: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + cmp r4, #0x15 + bhi _0805F12C + lsls r0, r4, #2 + ldr r1, _0805F0A8 @ =_0805F0AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F0A8: .4byte _0805F0AC +_0805F0AC: @ jump table + .4byte _0805F104 @ case 0 + .4byte _0805F104 @ case 1 + .4byte _0805F104 @ case 2 + .4byte _0805F104 @ case 3 + .4byte _0805F104 @ case 4 + .4byte _0805F104 @ case 5 + .4byte _0805F104 @ case 6 + .4byte _0805F104 @ case 7 + .4byte _0805F104 @ case 8 + .4byte _0805F104 @ case 9 + .4byte _0805F104 @ case 10 + .4byte _0805F104 @ case 11 + .4byte _0805F104 @ case 12 + .4byte _0805F104 @ case 13 + .4byte _0805F104 @ case 14 + .4byte _0805F104 @ case 15 + .4byte _0805F108 @ case 16 + .4byte _0805F114 @ case 17 + .4byte _0805F118 @ case 18 + .4byte _0805F11C @ case 19 + .4byte _0805F120 @ case 20 + .4byte _0805F120 @ case 21 +_0805F104: + movs r5, #9 + b _0805F12C +_0805F108: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + movs r5, #0xa + b _0805F12C +_0805F114: + movs r5, #2 + b _0805F12C +_0805F118: + movs r5, #3 + b _0805F12C +_0805F11C: + movs r5, #4 + b _0805F12C +_0805F120: + movs r5, #0xb + movs r1, #0x14 + eors r1, r4 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r4, r0, #0x1f +_0805F12C: + strh r4, [r6, #2] + b _0805F232 +_0805F130: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + cmp r4, #0xff + bne _0805F140 + movs r4, #0 + b _0805F14A +_0805F140: + lsls r4, r4, #8 + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r4, r0 +_0805F14A: + strh r4, [r6, #6] + movs r5, #0xc + b _0805F232 +_0805F150: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + cmp r4, #4 + bls _0805F162 + cmp r4, #5 + beq _0805F17C + b _0805EFEC +_0805F162: + ldr r1, [r6, #0xc] + cmp r1, #0 + bne _0805F16A + ldr r1, _0805F178 @ =gUnk_08109230 +_0805F16A: + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r6, #0 + bl sub_0805EF40 + b _0805EFEC + .align 2, 0 +_0805F178: .4byte gUnk_08109230 +_0805F17C: + adds r0, r6, #0 + bl sub_0805EF8C + lsls r4, r0, #8 + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r4, r0 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0805EEB4 + b _0805EFEC +_0805F196: + adds r0, r6, #0 + bl sub_0805EF8C + lsls r4, r0, #8 + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r4, r0 + ldrb r1, [r6] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x1f + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r6] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0805EEB4 + b _0805EFEC +_0805F1C0: + adds r0, r6, #0 + bl sub_0805EF8C + strh r0, [r6, #2] + movs r5, #0xd + b _0805F232 +_0805F1CC: + adds r0, r6, #0 + bl sub_0805EF8C + strh r0, [r6, #2] + movs r5, #0xe + b _0805F232 +_0805F1D8: + movs r5, #1 + b _0805F232 +_0805F1DC: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0x80 + lsls r0, r0, #3 + orrs r5, r0 + b _0805F232 +_0805F1EC: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0xe0 + lsls r0, r0, #3 + orrs r5, r0 + b _0805F232 +_0805F1FC: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0xa0 + lsls r0, r0, #3 + orrs r5, r0 + b _0805F232 +_0805F20C: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #3 + orrs r5, r0 + b _0805F232 +_0805F21C: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + orrs r5, r0 + b _0805F232 +_0805F22C: + movs r0, #0x80 + lsls r0, r0, #1 + adds r5, r5, r0 +_0805F232: + cmp r7, #0 + beq _0805F238 + b _0805EFEC +_0805F238: + lsrs r0, r5, #8 + cmp r0, #0 + beq _0805F256 + ldrb r0, [r6] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1e + cmp r0, #0 + beq _0805F254 + cmp r0, #1 + bne _0805F254 + adds r0, r5, #0 + bl sub_0805F9A0 + adds r5, r0, #0 +_0805F254: + strh r5, [r6, #4] +_0805F256: + adds r0, r5, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0805F25C +sub_0805F25C: @ 0x0805F25C + push {lr} + adds r2, r0, #0 + lsrs r3, r2, #8 + movs r0, #0xf + ands r3, r0 + movs r0, #0xff + ands r2, r0 + cmp r3, #8 + bhi _0805F2B6 + lsls r0, r3, #2 + ldr r1, _0805F278 @ =_0805F27C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F278: .4byte _0805F27C +_0805F27C: @ jump table + .4byte _0805F2A0 @ case 0 + .4byte _0805F2A0 @ case 1 + .4byte _0805F2B6 @ case 2 + .4byte _0805F2B6 @ case 3 + .4byte _0805F2B6 @ case 4 + .4byte _0805F2B4 @ case 5 + .4byte _0805F2B4 @ case 6 + .4byte _0805F2B4 @ case 7 + .4byte _0805F2B4 @ case 8 +_0805F2A0: + cmp r2, #0x7f + bls _0805F2B6 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _0805F2B6 + subs r2, #0x80 + movs r3, #2 + b _0805F2B6 +_0805F2B4: + lsls r2, r2, #1 +_0805F2B6: + ldr r1, _0805F2C4 @ =gUnk_08109248 + lsls r0, r3, #2 + adds r0, r0, r1 + lsls r1, r2, #6 + ldr r0, [r0] + adds r0, r0, r1 + pop {pc} + .align 2, 0 +_0805F2C4: .4byte gUnk_08109248 + + thumb_func_start sub_0805F2C8 +sub_0805F2C8: @ 0x0805F2C8 + push {r4, r5, lr} + movs r1, #0 + ldr r4, _0805F2EC @ =gUnk_02036540 + adds r5, r4, #0 +_0805F2D0: + ldrb r0, [r4] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _0805F2F0 + adds r0, r5, #0 + movs r1, #0xc + bl MemClear + ldrb r0, [r4] + movs r1, #1 + orrs r0, r1 + strb r0, [r4] + adds r0, r5, #0 + b _0805F2FC + .align 2, 0 +_0805F2EC: .4byte gUnk_02036540 +_0805F2F0: + adds r4, #0xc + adds r5, #0xc + adds r1, #1 + cmp r1, #3 + bls _0805F2D0 + movs r0, #0 +_0805F2FC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805F300 +sub_0805F300: @ 0x0805F300 + push {lr} + adds r2, r0, #0 + movs r1, #0 + ldr r0, _0805F314 @ =gUnk_02036540 +_0805F308: + cmp r0, r2 + bne _0805F318 + movs r1, #0xc + bl MemClear + b _0805F320 + .align 2, 0 +_0805F314: .4byte gUnk_02036540 +_0805F318: + adds r0, #0xc + adds r1, #1 + cmp r1, #3 + bls _0805F308 +_0805F320: + pop {pc} + .align 2, 0 + + thumb_func_start GetFontStrWith +GetFontStrWith: @ 0xGetFontStrWidth + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + adds r7, r1, #0 + mov r1, sp + movs r2, #0x30 + bl MemCopy + movs r0, #0 + str r0, [sp, #0x34] + movs r1, #0 + str r1, [sp, #0x30] + mov sl, r1 + mov r8, r1 + b _0805F34C +_0805F348: + cmp r6, #0 + beq _0805F41E +_0805F34C: + movs r5, #0 + movs r2, #1 + mov sb, r2 +_0805F352: + mov r0, sp + bl GetCharacter + adds r6, r0, #0 + cmp r6, #0xe + bhi _0805F3B4 + lsls r0, r6, #2 + ldr r1, _0805F368 @ =_0805F36C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F368: .4byte _0805F36C +_0805F36C: @ jump table + .4byte _0805F402 @ case 0 + .4byte _0805F402 @ case 1 + .4byte _0805F3FC @ case 2 + .4byte _0805F3FC @ case 3 + .4byte _0805F3FC @ case 4 + .4byte _0805F3FC @ case 5 + .4byte _0805F3FC @ case 6 + .4byte _0805F3FC @ case 7 + .4byte _0805F3FC @ case 8 + .4byte _0805F3FC @ case 9 + .4byte _0805F3FC @ case 10 + .4byte _0805F3AC @ case 11 + .4byte _0805F3A8 @ case 12 + .4byte _0805F3FC @ case 13 + .4byte _0805F3FC @ case 14 +_0805F3A8: + adds r5, #8 + b _0805F3FC +_0805F3AC: + mov r0, sp + ldrh r0, [r0, #2] + mov r8, r0 + b _0805F3FC +_0805F3B4: + mov r0, r8 + cmp r0, #0 + bne _0805F3DE + adds r0, r6, #0 + bl sub_0805F25C + adds r4, r0, #0 + lsrs r0, r6, #8 + cmp r0, #4 + bls _0805F3D2 + ldr r0, [r4, #0x40] + bl sub_0805F7A0 + lsrs r0, r0, #8 + adds r5, r5, r0 +_0805F3D2: + ldr r0, [r4] + bl sub_0805F7A0 + lsrs r0, r0, #8 + adds r5, r5, r0 + b _0805F3EA +_0805F3DE: + lsrs r0, r6, #8 + cmp r0, #4 + bls _0805F3E8 + adds r5, #0x10 + b _0805F3EA +_0805F3E8: + adds r5, #8 +_0805F3EA: + mov r0, sp + ldrb r1, [r0] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0x20 + bne _0805F3FC + cmp r5, #1 + bls _0805F3FC + subs r5, #1 +_0805F3FC: + mov r1, sb + cmp r1, #0 + bne _0805F352 +_0805F402: + cmp r5, sl + bls _0805F408 + mov sl, r5 +_0805F408: + cmp r5, #0 + beq _0805F414 + ldr r2, [sp, #0x30] + adds r2, #1 + str r2, [sp, #0x30] + b _0805F41A +_0805F414: + ldr r0, [sp, #0x34] + adds r0, #1 + str r0, [sp, #0x34] +_0805F41A: + cmp r7, #0 + bne _0805F348 +_0805F41E: + cmp r7, #0 + bne _0805F426 + mov r0, sl + b _0805F434 +_0805F426: + ldr r1, [sp, #0x34] + lsls r0, r1, #0x18 + ldr r2, [sp, #0x30] + lsls r1, r2, #0x10 + orrs r0, r1 + mov r1, sl + orrs r0, r1 +_0805F434: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805F440 +sub_0805F440: @ 0x0805F440 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0x30 + bl MemClear + ldr r0, _0805F45C @ =0x0000FFFF + cmp r5, r0 + bls _0805F460 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0805EF40 + b _0805F468 + .align 2, 0 +_0805F45C: .4byte 0x0000FFFF +_0805F460: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0805EEB4 +_0805F468: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805F46C +sub_0805F46C: @ 0x0805F46C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x48 + adds r6, r0, #0 + adds r5, r1, #0 + bl sub_0805F2C8 + mov r8, r0 + cmp r0, #0 + bne _0805F486 + b _0805F5BC +_0805F486: + add r4, sp, #0x30 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x18 + bl MemCopy + mov r0, sp + adds r1, r6, #0 + bl sub_0805F440 + mov r3, sp + ldrb r0, [r4, #0x17] + movs r1, #3 + ands r1, r0 + lsls r1, r1, #5 + ldrb r2, [r3] + movs r0, #0x61 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0x17] + lsls r1, r1, #4 + mov r0, r8 + ldrb r2, [r0] + movs r0, #0xf + ands r0, r2 + orrs r0, r1 + mov r1, r8 + strb r0, [r1] + ldrb r0, [r4, #0x12] + strh r0, [r1, #4] + ldr r0, [r4, #8] + str r0, [r1, #8] + ldrb r0, [r4, #0x15] + strb r0, [r1, #2] + ldrb r0, [r4, #0x14] + strb r0, [r1, #3] + ldrb r1, [r4, #0x13] + movs r0, #8 + ands r0, r1 + mov sb, r4 + cmp r0, #0 + beq _0805F59E + lsrs r0, r1, #4 + ldrb r1, [r4, #0x14] + ldr r2, [r4, #4] + bl sub_0805F918 + ldr r0, [r4, #4] + adds r0, #0xe0 + str r0, [r4, #4] + mov r0, sp + movs r1, #1 + bl GetFontStrWith + lsrs r2, r0, #0x18 + ldrb r1, [r4, #0x16] + muls r2, r1, r2 + asrs r1, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x17 + adds r7, r2, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r1, r4, #0 + mov r2, sb + ldrb r3, [r2, #0x12] + cmp r3, r1 + bge _0805F514 + adds r1, r3, #0 +_0805F514: + adds r4, r1, #7 + movs r2, #8 + rsbs r2, r2, #0 + mov r0, sb + ldrb r1, [r0, #0x13] + movs r0, #2 + ands r0, r1 + ands r4, r2 + cmp r0, #0 + bne _0805F52A + adds r4, r3, #0 +_0805F52A: + ldr r5, [sp, #0x30] + adds r0, r5, #0 + adds r0, #0x40 + str r0, [sp, #0x30] + mov r2, sb + ldrb r1, [r2, #0x13] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805F54E + adds r4, #0xf + movs r0, #0x10 + rsbs r0, r0, #0 + ands r4, r0 + lsrs r0, r4, #3 + adds r0, #2 + subs r5, r5, r0 + b _0805F554 +_0805F54E: + adds r0, r5, #0 + adds r0, #0x42 + str r0, [sp, #0x30] +_0805F554: + lsrs r4, r4, #3 + mov r3, sb + ldrh r6, [r3, #0x10] + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + adds r3, r6, #0 + bl DispMessageFrame + adds r5, #2 + mov r1, sb + ldrh r0, [r1, #0x10] + adds r0, #7 + strh r0, [r1, #0x10] + ldrh r0, [r1, #0x10] + subs r6, r0, #1 + adds r0, r7, #0 + subs r7, #1 + cmp r0, #0 + beq _0805F59E +_0805F57C: + adds r1, r5, #0 + adds r1, #0x40 + adds r5, r1, #0 + subs r2, r4, #1 + subs r3, r7, #1 + cmp r4, #0 + ble _0805F596 +_0805F58A: + strh r6, [r1] + adds r1, #2 + adds r0, r2, #0 + subs r2, #1 + cmp r0, #0 + bgt _0805F58A +_0805F596: + adds r0, r7, #0 + adds r7, r3, #0 + cmp r0, #0 + bne _0805F57C +_0805F59E: + ldr r0, _0805F5C8 @ =gUnk_02034330 + movs r1, #0x18 + bl MemClear +_0805F5A6: + mov r0, sb + mov r1, sp + mov r2, r8 + bl sub_0805F5CC + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805F5A6 + mov r0, r8 + bl sub_0805F300 +_0805F5BC: + movs r0, #0 + add sp, #0x48 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805F5C8: .4byte gUnk_02034330 + + thumb_func_start sub_0805F5CC +sub_0805F5CC: @ 0x0805F5CC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + ldrb r0, [r4, #0x14] + bl sub_0805F8F8 + ldr r1, [r4, #8] + ldrb r2, [r4, #0x12] + adds r2, #7 + movs r3, #0xfc + lsls r3, r3, #1 + ands r2, r3 + lsls r2, r2, #3 + bl MemFill32 + adds r0, r6, #0 + movs r1, #0 + bl GetFontStrWith + adds r2, r0, #0 + ldrb r1, [r4, #0x13] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805F60E + adds r0, r2, #1 + lsrs r0, r0, #1 + movs r1, #8 + subs r1, r1, r0 + movs r0, #7 + ands r0, r1 + b _0805F610 +_0805F60E: + movs r0, #0 +_0805F610: + strh r0, [r5, #6] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0805F6A4 + adds r2, r0, #0 + cmp r2, #0 + beq _0805F660 + ldrh r1, [r5, #6] + adds r0, r1, #7 + asrs r5, r0, #3 + ldr r2, [r4] + ldrb r1, [r4, #0x13] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805F63A + adds r0, r5, #1 + lsrs r0, r0, #1 + lsls r0, r0, #1 + subs r2, r2, r0 +_0805F63A: + ldrh r1, [r4, #0x10] + adds r0, r2, #0 + adds r2, r5, #0 + bl sub_0805F67C + strh r0, [r4, #0x10] + ldr r0, [r4] + adds r0, #0x80 + str r0, [r4] + lsls r5, r5, #6 + ldr r0, [r4, #8] + ldr r1, [r4, #4] + adds r2, r5, #0 + bl MemCopy + ldr r0, [r4, #4] + adds r0, r0, r5 + str r0, [r4, #4] + b _0805F670 +_0805F660: + ldrb r0, [r6, #1] + cmp r0, #0xa + bne _0805F670 + ldrb r1, [r4, #0x16] + lsls r1, r1, #6 + ldr r0, [r4] + adds r0, r0, r1 + str r0, [r4] +_0805F670: + ldrb r1, [r6, #1] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805F67C +sub_0805F67C: @ 0x0805F67C + push {r4, lr} + adds r3, r0, #0 + subs r2, #1 + movs r0, #1 + rsbs r0, r0, #0 + cmp r2, r0 + beq _0805F6A0 + adds r4, r0, #0 +_0805F68C: + strh r1, [r3] + adds r1, #1 + adds r0, r3, #0 + adds r0, #0x40 + strh r1, [r0] + adds r1, #1 + adds r3, #2 + subs r2, #1 + cmp r2, r4 + bne _0805F68C +_0805F6A0: + adds r0, r1, #0 + pop {r4, pc} + + thumb_func_start sub_0805F6A4 +sub_0805F6A4: @ 0x0805F6A4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r6, #0 +_0805F6AC: + adds r0, r5, #0 + bl GetCharacter + movs r7, #1 + cmp r0, #0xe + bhi _0805F746 + lsls r0, r0, #2 + ldr r1, _0805F6C4 @ =_0805F6C8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F6C4: .4byte _0805F6C8 +_0805F6C8: @ jump table + .4byte _0805F768 @ case 0 + .4byte _0805F768 @ case 1 + .4byte _0805F764 @ case 2 + .4byte _0805F764 @ case 3 + .4byte _0805F764 @ case 4 + .4byte _0805F764 @ case 5 + .4byte _0805F764 @ case 6 + .4byte _0805F704 @ case 7 + .4byte _0805F764 @ case 8 + .4byte _0805F764 @ case 9 + .4byte _0805F764 @ case 10 + .4byte _0805F740 @ case 11 + .4byte _0805F70E @ case 12 + .4byte _0805F764 @ case 13 + .4byte _0805F764 @ case 14 +_0805F704: + ldrh r0, [r5, #2] + cmp r0, #0xd + bhi _0805F764 + strb r0, [r4, #2] + b _0805F764 +_0805F70E: + ldr r3, _0805F73C @ =gUnk_02034330 + movs r2, #2 + ldrsb r2, [r3, r2] + cmp r2, #3 + bhi _0805F732 + adds r0, r2, #1 + strb r0, [r3, #2] + lsls r2, r2, #1 + adds r0, r3, #0 + adds r0, #0x10 + adds r0, r2, r0 + ldrh r1, [r5, #6] + strh r1, [r0] + adds r0, r3, #0 + adds r0, #8 + adds r2, r2, r0 + ldrh r0, [r4, #6] + strh r0, [r2] +_0805F732: + ldrh r0, [r4, #6] + adds r0, #8 + strh r0, [r4, #6] + adds r6, #8 + b _0805F764 + .align 2, 0 +_0805F73C: .4byte gUnk_02034330 +_0805F740: + ldrh r0, [r5, #2] + strb r0, [r4, #1] + b _0805F764 +_0805F746: + adds r1, r4, #0 + bl sub_0805F7DC + adds r6, r6, r0 + ldrb r1, [r5] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0x20 + bne _0805F764 + ldrh r0, [r4, #6] + cmp r0, #1 + bls _0805F764 + subs r6, #1 + subs r0, #1 + strh r0, [r4, #6] +_0805F764: + cmp r7, #0 + bne _0805F6AC +_0805F768: + adds r0, r6, #0 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805F76C +sub_0805F76C: @ 0x0805F76C + push {r4, lr} + sub sp, #0x30 + adds r2, r0, #0 + adds r4, r1, #0 + mov r0, sp + adds r1, r2, #0 + bl sub_0805F440 + mov r3, sp + ldrb r0, [r4] + lsrs r0, r0, #4 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #5 + ldrb r2, [r3] + movs r0, #0x61 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + mov r0, sp + adds r1, r4, #0 + bl sub_0805F6A4 + add sp, #0x30 + pop {r4, pc} + + thumb_func_start sub_0805F7A0 +sub_0805F7A0: @ 0x0805F7A0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xf + movs r2, #0 + b _0805F7B4 +_0805F7AA: + lsls r1, r1, #4 + adds r2, #1 + cmp r2, #7 + bhi _0805F7BA + adds r0, r4, #0 +_0805F7B4: + ands r0, r1 + cmp r1, r0 + beq _0805F7AA +_0805F7BA: + adds r3, r2, #0 + cmp r3, #7 + bhi _0805F7D2 + b _0805F7CA +_0805F7C2: + lsls r1, r1, #4 + adds r2, #1 + cmp r2, #7 + bhi _0805F7D2 +_0805F7CA: + adds r0, r4, #0 + ands r0, r1 + cmp r1, r0 + bne _0805F7C2 +_0805F7D2: + subs r2, r2, r3 + lsls r0, r2, #8 + orrs r0, r3 + pop {r4, pc} + .align 2, 0 diff --git a/asm/ui.s b/asm/ui.s new file mode 100644 index 00000000..8cb7208b --- /dev/null +++ b/asm/ui.s @@ -0,0 +1,1708 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0801C1D4 +sub_0801C1D4: @ 0x0801C1D4 + push {r4, lr} + movs r4, #0 +_0801C1D8: + lsls r1, r4, #5 + ldr r0, _0801C200 @ =gUnk_0200AF34 + adds r2, r1, r0 + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801C1F8 + ldrb r0, [r2, #1] + lsls r0, r0, #4 + ldr r1, _0801C204 @ =gUnk_080C8F8C + adds r0, r0, r1 + ldr r1, [r0, #8] + adds r0, r2, #0 + bl _call_via_r1 +_0801C1F8: + adds r4, #1 + cmp r4, #0x17 + bls _0801C1D8 + pop {r4, pc} + .align 2, 0 +_0801C200: .4byte gUnk_0200AF34 +_0801C204: .4byte gUnk_080C8F8C + + thumb_func_start sub_0801C208 +sub_0801C208: @ 0x0801C208 + push {r4, r5, lr} + movs r5, #0 + ldr r4, _0801C250 @ =gOamCmd +_0801C20E: + lsls r1, r5, #5 + ldr r0, _0801C254 @ =gUnk_0200AF34 + adds r3, r1, r0 + ldrb r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + bne _0801C248 + ldrh r0, [r3, #0xc] + strh r0, [r4] + ldrh r0, [r3, #0xe] + strh r0, [r4, #2] + ldrb r2, [r3, #1] + lsls r2, r2, #4 + ldr r0, _0801C258 @ =gUnk_080C8F8C + adds r2, r2, r0 + ldrh r0, [r2] + strh r0, [r4, #4] + ldrh r0, [r2, #2] + strh r0, [r4, #6] + ldrb r0, [r3, #0x18] + lsls r0, r0, #0xc + ldrh r1, [r3, #0x1a] + orrs r0, r1 + strh r0, [r4, #8] + ldrh r0, [r2, #6] + ldrb r1, [r3, #0x10] + bl sub_080ADA14 +_0801C248: + adds r5, #1 + cmp r5, #0x17 + bls _0801C20E + pop {r4, r5, pc} + .align 2, 0 +_0801C250: .4byte gOamCmd +_0801C254: .4byte gUnk_0200AF34 +_0801C258: .4byte gUnk_080C8F8C + + thumb_func_start sub_0801C25C +sub_0801C25C: @ 0x0801C25C + push {r4, r5, r6, r7, lr} + movs r4, #0 + ldr r5, _0801C2E4 @ =gUnk_0200AF34 + adds r6, r5, #0 + subs r6, #0x34 + movs r7, #0xd + rsbs r7, r7, #0 + ldr r3, _0801C2E8 @ =0x040000D4 +_0801C26C: + lsls r0, r4, #5 + adds r2, r0, r5 + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + bne _0801C2A8 + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _0801C2A8 + adds r0, r7, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r2, #0x1c] + str r0, [r3] + ldrh r0, [r2, #0x1a] + lsls r0, r0, #5 + ldr r1, _0801C2EC @ =0x06010000 + adds r0, r0, r1 + str r0, [r3, #4] + ldrb r0, [r2, #0x19] + lsls r0, r0, #3 + movs r1, #0x84 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r3, #8] + ldr r0, [r3, #8] +_0801C2A8: + adds r4, #1 + cmp r4, #0x17 + ble _0801C26C + adds r2, r6, #0 + ldrb r3, [r2, #0x13] + movs r0, #0x13 + ldrsb r0, [r2, r0] + cmp r0, #0 + bge _0801C2C8 + movs r1, #0x7f + ands r1, r3 + strb r1, [r2, #0x13] + movs r0, #0x8d + lsls r0, r0, #1 + bl sub_0801C2F0 +_0801C2C8: + ldrb r2, [r6, #0x14] + movs r0, #0x14 + ldrsb r0, [r6, r0] + cmp r0, #0 + bge _0801C2E0 + movs r1, #0x7f + ands r1, r2 + strb r1, [r6, #0x14] + movs r0, #0x93 + lsls r0, r0, #1 + bl sub_0801C2F0 +_0801C2E0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801C2E4: .4byte gUnk_0200AF34 +_0801C2E8: .4byte 0x040000D4 +_0801C2EC: .4byte 0x06010000 + + thumb_func_start sub_0801C2F0 +sub_0801C2F0: @ 0x0801C2F0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + lsls r5, r4, #5 + ldr r1, _0801C330 @ =0x06010000 + adds r4, r5, r1 + movs r1, #0xa + bl Div + cmp r0, #9 + bls _0801C308 + movs r0, #9 +_0801C308: + ldr r2, _0801C334 @ =0x040000D4 + lsls r0, r0, #5 + ldr r3, _0801C338 @ =gUnk_085C4620 + adds r0, r0, r3 + str r0, [r2] + str r4, [r2, #4] + ldr r4, _0801C33C @ =0x84000008 + str r4, [r2, #8] + ldr r0, [r2, #8] + adds r1, #0xa + lsls r1, r1, #5 + adds r1, r1, r3 + str r1, [r2] + ldr r1, _0801C340 @ =0x06010020 + adds r0, r5, r1 + str r0, [r2, #4] + str r4, [r2, #8] + ldr r0, [r2, #8] + pop {r4, r5, pc} + .align 2, 0 +_0801C330: .4byte 0x06010000 +_0801C334: .4byte 0x040000D4 +_0801C338: .4byte gUnk_085C4620 +_0801C33C: .4byte 0x84000008 +_0801C340: .4byte 0x06010020 + + thumb_func_start sub_0801C344 +sub_0801C344: @ 0x0801C344 + push {r4, r5, lr} + ldr r4, _0801C36C @ =gUnk_0200AF00 + ldrb r1, [r4, #1] + ldrb r0, [r4] + bics r0, r1 + movs r5, #0 + strb r0, [r4] + bl sub_0801C6B0 + bl sub_0801C85C + bl sub_0801C4B0 + bl sub_0801C99C + strb r5, [r4] + bl sub_0801C1D4 + pop {r4, r5, pc} + .align 2, 0 +_0801C36C: .4byte gUnk_0200AF00 + + thumb_func_start sub_0801C370 +sub_0801C370: @ 0x0801C370 + push {r4, r5, r6, lr} + cmp r0, #0 + bne _0801C390 + ldr r0, _0801C388 @ =gSave + adds r1, r0, #0 + adds r1, #0xaa + ldrb r1, [r1] + lsrs r6, r1, #1 + adds r0, #0xc0 + ldrh r4, [r0] + ldr r5, _0801C38C @ =gUnk_0200AF00 + b _0801C398 + .align 2, 0 +_0801C388: .4byte gSave +_0801C38C: .4byte gUnk_0200AF00 +_0801C390: + ldr r0, _0801C470 @ =gUnk_0200AF00 + ldrb r6, [r0, #3] + ldrh r4, [r0, #0xe] + adds r5, r0, #0 +_0801C398: + movs r1, #0xcd + lsls r1, r1, #2 + adds r0, r5, #0 + bl MemClear + strb r6, [r5, #3] + strh r4, [r5, #0xe] + ldr r0, _0801C474 @ =gSave + adds r0, #0xab + ldrb r0, [r0] + lsrs r0, r0, #1 + strb r0, [r5, #4] + movs r0, #0xc + bl LoadPaletteGroup + movs r0, #0x10 + bl LoadGfxGroup + ldr r4, _0801C478 @ =gBG0Buffer + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r4, #0 + bl MemClear + ldr r1, _0801C47C @ =gScreen + str r4, [r1, #0x10] + ldr r0, _0801C480 @ =0x00001F0C + strh r0, [r1, #8] + ldrh r2, [r1] + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] + ldr r1, _0801C484 @ =gUnk_03000000 + ldr r2, _0801C488 @ =0x00000427 + adds r0, r1, r2 + movs r2, #1 + strb r2, [r0] + ldr r3, _0801C48C @ =0x00000426 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _0801C490 @ =0x0000042E + adds r1, r1, r0 + strb r2, [r1] + movs r0, #0x7f + strb r0, [r5, #0x13] + strb r0, [r5, #0x14] + strb r0, [r5, #8] + bl sub_0801C6B0 + bl sub_0801C4B0 + bl sub_0801C85C + bl sub_0801C99C + movs r0, #0xd0 + strh r0, [r5, #0x16] + movs r0, #0xb8 + strh r0, [r5, #0x18] + movs r0, #0xd8 + strh r0, [r5, #0x1a] + movs r0, #0x1c + strh r0, [r5, #0x1c] + strh r0, [r5, #0x1e] + movs r0, #0xe + strh r0, [r5, #0x20] + adds r0, r5, #0 + adds r0, #0x34 + movs r1, #0xc0 + lsls r1, r1, #2 + bl MemClear + movs r0, #5 + movs r1, #9 + bl sub_0801CA6C + movs r0, #3 + movs r1, #0 + bl sub_0801CA6C + movs r0, #4 + movs r1, #0 + bl sub_0801CA6C + movs r0, #2 + movs r1, #0 + bl sub_0801CA6C + movs r0, #1 + movs r1, #0 + bl sub_0801CA6C + movs r0, #0 + movs r1, #0 + bl sub_0801CA6C + movs r0, #7 + movs r1, #0 + bl sub_0801CA6C + movs r0, #6 + movs r1, #0 + bl sub_0801CA6C + pop {r4, r5, r6, pc} + .align 2, 0 +_0801C470: .4byte gUnk_0200AF00 +_0801C474: .4byte gSave +_0801C478: .4byte gBG0Buffer +_0801C47C: .4byte gScreen +_0801C480: .4byte 0x00001F0C +_0801C484: .4byte gUnk_03000000 +_0801C488: .4byte 0x00000427 +_0801C48C: .4byte 0x00000426 +_0801C490: .4byte 0x0000042E + + thumb_func_start RefreshUI +RefreshUI: @ 0x0801C494 + ldr r1, _0801C49C @ =gScreen + movs r0, #1 + strh r0, [r1, #0xe] + bx lr + .align 2, 0 +_0801C49C: .4byte gScreen + + thumb_func_start RecoverUI +RecoverUI: @ 0x0801C4A0 + ldr r1, _0801C4AC @ =gUnk_0200AF00 + movs r0, #0 + strb r0, [r1, #2] + strb r0, [r1, #0x10] + strb r0, [r1, #0xa] + bx lr + .align 2, 0 +_0801C4AC: .4byte gUnk_0200AF00 + + thumb_func_start sub_0801C4B0 +sub_0801C4B0: @ 0x0801C4B0 + push {r4, r5, r6, lr} + ldr r2, _0801C4F0 @ =gUnk_0200AF00 + ldrb r1, [r2, #1] + movs r0, #0x40 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + beq _0801C4FC + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _0801C4C8 + b _0801C5D0 +_0801C4C8: + movs r0, #0 + strb r0, [r6, #0xa] + ldr r3, _0801C4F4 @ =gUnk_02035160 + strh r0, [r3] + strh r0, [r3, #2] + strh r0, [r3, #4] + strh r0, [r3, #6] + strh r0, [r3, #8] + adds r4, r3, #0 + adds r4, #0x40 + strh r0, [r4] + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r0, [r4, #6] + strh r0, [r4, #8] + ldr r1, _0801C4F8 @ =gScreen + movs r0, #1 + strh r0, [r1, #0xe] + b _0801C5D0 + .align 2, 0 +_0801C4F0: .4byte gUnk_0200AF00 +_0801C4F4: .4byte gUnk_02035160 +_0801C4F8: .4byte gScreen +_0801C4FC: + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _0801C560 + movs r0, #2 + strb r0, [r6, #0xa] + ldr r3, _0801C54C @ =gUnk_02035160 + adds r4, r3, #0 + adds r4, #0x40 + ldr r1, _0801C550 @ =gWalletSizes + ldr r2, _0801C554 @ =gSave + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0, #2] + strh r1, [r3] + adds r0, r1, #1 + strh r0, [r3, #2] + adds r0, r1, #2 + strh r0, [r4] + adds r0, r1, #3 + strh r0, [r4, #2] + ldr r1, _0801C558 @ =0x0000F070 + strh r1, [r3, #4] + adds r0, r1, #1 + strh r0, [r4, #4] + adds r0, r1, #2 + strh r0, [r3, #6] + adds r0, r1, #3 + strh r0, [r4, #6] + adds r0, r1, #4 + strh r0, [r3, #8] + adds r0, r1, #5 + strh r0, [r4, #8] + ldr r1, _0801C55C @ =gScreen + movs r0, #1 + strh r0, [r1, #0xe] + movs r4, #1 + b _0801C564 + .align 2, 0 +_0801C54C: .4byte gUnk_02035160 +_0801C550: .4byte gWalletSizes +_0801C554: .4byte gSave +_0801C558: .4byte 0x0000F070 +_0801C55C: .4byte gScreen +_0801C560: + movs r4, #0 + ldr r2, _0801C580 @ =gSave +_0801C564: + adds r5, r6, #0 + adds r0, r2, #0 + adds r0, #0xc0 + ldrh r1, [r5, #0xe] + adds r3, r1, #0 + ldrh r0, [r0] + cmp r3, r0 + beq _0801C58A + cmp r3, r0 + bhs _0801C584 + adds r0, r1, #1 + strh r0, [r5, #0xe] + b _0801C588 + .align 2, 0 +_0801C580: .4byte gSave +_0801C584: + subs r0, r1, #1 + strh r0, [r6, #0xe] +_0801C588: + movs r4, #2 +_0801C58A: + cmp r4, #1 + beq _0801C5A4 + cmp r4, #2 + bne _0801C5CC + ldr r0, _0801C5D4 @ =gUnk_0200AF00 + ldrb r0, [r0, #0xc] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0801C5A4 + movs r0, #0x6f + bl SoundReq +_0801C5A4: + ldr r4, _0801C5D4 @ =gUnk_0200AF00 + ldrh r3, [r4, #0xe] + movs r2, #0 + ldr r1, _0801C5D8 @ =gWalletSizes + ldr r0, _0801C5DC @ =gSave + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bhi _0801C5BE + movs r2, #1 +_0801C5BE: + movs r0, #0x70 + adds r1, r3, #0 + movs r3, #3 + bl sub_0801C5E0 + ldrb r0, [r4, #0xc] + adds r4, r0, #1 +_0801C5CC: + ldr r0, _0801C5D4 @ =gUnk_0200AF00 + strb r4, [r0, #0xc] +_0801C5D0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801C5D4: .4byte gUnk_0200AF00 +_0801C5D8: .4byte gWalletSizes +_0801C5DC: .4byte gSave + + thumb_func_start sub_0801C5E0 +sub_0801C5E0: @ 0x0801C5E0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r7, _0801C650 @ =gUnk_085C4B20 + cmp r2, #0 + bne _0801C5F0 + ldr r0, _0801C654 @ =0xFFFFFD80 + adds r7, r7, r0 +_0801C5F0: + ldr r0, _0801C658 @ =0x000003FF + ands r0, r4 + lsls r6, r0, #5 + ldr r0, _0801C65C @ =0x0600C000 + adds r4, r6, r0 + cmp r3, #2 + beq _0801C620 + cmp r3, #3 + bne _0801C63C + adds r0, r5, #0 + movs r1, #0x64 + bl Div + adds r5, r1, #0 + ldr r1, _0801C660 @ =0x040000D4 + lsls r0, r0, #6 + adds r0, r7, r0 + str r0, [r1] + str r4, [r1, #4] + ldr r0, _0801C664 @ =0x84000010 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _0801C668 @ =0x0600C040 + adds r4, r6, r0 +_0801C620: + adds r0, r5, #0 + movs r1, #0xa + bl Div + adds r5, r1, #0 + ldr r1, _0801C660 @ =0x040000D4 + lsls r0, r0, #6 + adds r0, r7, r0 + str r0, [r1] + str r4, [r1, #4] + ldr r0, _0801C664 @ =0x84000010 + str r0, [r1, #8] + ldr r0, [r1, #8] + adds r4, #0x40 +_0801C63C: + ldr r1, _0801C660 @ =0x040000D4 + lsls r0, r5, #6 + adds r0, r7, r0 + str r0, [r1] + str r4, [r1, #4] + ldr r0, _0801C664 @ =0x84000010 + str r0, [r1, #8] + ldr r0, [r1, #8] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801C650: .4byte gUnk_085C4B20 +_0801C654: .4byte 0xFFFFFD80 +_0801C658: .4byte 0x000003FF +_0801C65C: .4byte 0x0600C000 +_0801C660: .4byte 0x040000D4 +_0801C664: .4byte 0x84000010 +_0801C668: .4byte 0x0600C040 + + thumb_func_start sub_0801C66C +sub_0801C66C: @ 0x0801C66C + push {lr} + ldr r1, _0801C6A4 @ =gUnk_0200AF00 + ldrb r0, [r1, #2] + cmp r0, #0 + beq _0801C6A2 + movs r0, #0 + strb r0, [r1, #2] + ldrb r0, [r1, #4] + movs r2, #1 + cmp r0, #0x28 + bls _0801C684 + movs r2, #2 +_0801C684: + ldr r0, _0801C6A8 @ =gUnk_02034CF0 + ldr r3, _0801C6AC @ =gScreen + movs r1, #0 +_0801C68A: + str r1, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + str r1, [r0, #0xc] + str r1, [r0, #0x10] + str r1, [r0, #0x14] + adds r0, #0x40 + subs r2, #1 + cmp r2, #0 + bgt _0801C68A + movs r0, #1 + strh r0, [r3, #0xe] +_0801C6A2: + pop {pc} + .align 2, 0 +_0801C6A4: .4byte gUnk_0200AF00 +_0801C6A8: .4byte gUnk_02034CF0 +_0801C6AC: .4byte gScreen + + thumb_func_start sub_0801C6B0 +sub_0801C6B0: @ 0x0801C6B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r2, _0801C6CC @ =gUnk_0200AF00 + ldrb r1, [r2, #1] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0801C6D0 + bl sub_0801C824 + bl sub_0801C66C + b _0801C802 + .align 2, 0 +_0801C6CC: .4byte gUnk_0200AF00 +_0801C6D0: + ldr r5, _0801C6F8 @ =gSave + adds r0, r5, #0 + adds r0, #0xab + ldrb r0, [r0] + lsrs r4, r0, #1 + ldrb r0, [r2, #4] + cmp r4, r0 + beq _0801C6EA + strb r4, [r2, #4] + bl sub_0801C824 + bl sub_0801C66C +_0801C6EA: + adds r1, r5, #0 + adds r1, #0xaa + ldrb r0, [r1] + cmp r0, #1 + beq _0801C6FC + lsrs r1, r0, #1 + b _0801C6FE + .align 2, 0 +_0801C6F8: .4byte gSave +_0801C6FC: + movs r1, #1 +_0801C6FE: + cmp r1, r4 + ble _0801C704 + adds r1, r4, #0 +_0801C704: + movs r4, #0 + ldr r0, _0801C748 @ =gUnk_0200AF00 + ldrb r2, [r0, #3] + adds r7, r0, #0 + cmp r1, r2 + beq _0801C718 + movs r4, #1 + cmp r1, r2 + ble _0801C718 + movs r4, #2 +_0801C718: + cmp r4, #1 + beq _0801C750 + cmp r4, #2 + bne _0801C756 + ldrb r0, [r7, #5] + adds r1, r0, #1 + strb r1, [r7, #5] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801C74C + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0801C740 + movs r0, #0x71 + bl SoundReq +_0801C740: + ldrb r0, [r7, #3] + adds r0, #1 + strb r0, [r7, #3] + b _0801C75A + .align 2, 0 +_0801C748: .4byte gUnk_0200AF00 +_0801C74C: + movs r4, #0 + b _0801C75A +_0801C750: + ldrb r0, [r7, #3] + subs r0, #1 + strb r0, [r7, #3] +_0801C756: + movs r0, #0 + strb r0, [r7, #5] +_0801C75A: + ldrb r0, [r7, #2] + cmp r0, #0 + beq _0801C764 + cmp r4, #0 + beq _0801C802 +_0801C764: + movs r0, #2 + strb r0, [r7, #2] + ldrb r0, [r7, #3] + lsrs r3, r0, #2 + cmp r3, #0xa + ble _0801C77A + movs r1, #0xa + mov r8, r1 + adds r6, r3, #0 + subs r6, #0xa + b _0801C77E +_0801C77A: + mov r8, r3 + movs r6, #0 +_0801C77E: + ldrb r0, [r7, #4] + lsrs r4, r0, #2 + adds r1, r4, #0 + cmp r4, #0xa + ble _0801C78A + movs r4, #0xa +_0801C78A: + adds r2, r1, #0 + subs r2, #0xa + ldr r0, _0801C808 @ =gUnk_080C8F2C + mov ip, r0 + cmp r2, #0 + ble _0801C7B8 + ldr r5, _0801C80C @ =gUnk_02034D30 + ldr r1, _0801C810 @ =0x0000F010 + adds r0, r1, #0 + strh r0, [r5] + ldr r1, _0801C814 @ =0x040000D4 + movs r0, #0xa + subs r0, r0, r6 + lsls r0, r0, #1 + add r0, ip + str r0, [r1] + adds r0, r5, #2 + str r0, [r1, #4] + movs r0, #0x80 + lsls r0, r0, #0x18 + orrs r2, r0 + str r2, [r1, #8] + ldr r0, [r1, #8] +_0801C7B8: + ldr r5, _0801C818 @ =gUnk_02034CF0 + ldr r2, _0801C810 @ =0x0000F010 + adds r0, r2, #0 + strh r0, [r5] + ldr r1, _0801C814 @ =0x040000D4 + movs r0, #0xa + mov r2, r8 + subs r0, r0, r2 + lsls r0, r0, #1 + add r0, ip + str r0, [r1] + adds r0, r5, #2 + str r0, [r1, #4] + movs r0, #0x80 + lsls r0, r0, #0x18 + orrs r4, r0 + str r4, [r1, #8] + ldr r0, [r1, #8] + ldrb r0, [r7, #3] + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0801C7FC + cmp r3, #9 + ble _0801C7EE + subs r3, #0xa + adds r5, #0x40 +_0801C7EE: + lsls r0, r3, #1 + adds r0, r0, r5 + adds r1, #0x11 + ldr r3, _0801C81C @ =0xFFFFF000 + adds r2, r3, #0 + orrs r1, r2 + strh r1, [r0, #2] +_0801C7FC: + ldr r1, _0801C820 @ =gScreen + movs r0, #1 + strh r0, [r1, #0xe] +_0801C802: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801C808: .4byte gUnk_080C8F2C +_0801C80C: .4byte gUnk_02034D30 +_0801C810: .4byte 0x0000F010 +_0801C814: .4byte 0x040000D4 +_0801C818: .4byte gUnk_02034CF0 +_0801C81C: .4byte 0xFFFFF000 +_0801C820: .4byte gScreen + + thumb_func_start sub_0801C824 +sub_0801C824: @ 0x0801C824 + push {lr} + ldr r1, _0801C850 @ =gUnk_0200AF00 + ldrb r0, [r1, #6] + cmp r0, #0 + beq _0801C84E + movs r2, #0 + strb r2, [r1, #6] + ldrb r0, [r1, #4] + ldr r1, _0801C854 @ =gUnk_02034D30 + cmp r0, #0x28 + bls _0801C83C + adds r1, #0x40 +_0801C83C: + str r2, [r1] + str r2, [r1, #4] + str r2, [r1, #8] + str r2, [r1, #0xc] + str r2, [r1, #0x10] + str r2, [r1, #0x14] + ldr r1, _0801C858 @ =gScreen + movs r0, #1 + strh r0, [r1, #0xe] +_0801C84E: + pop {pc} + .align 2, 0 +_0801C850: .4byte gUnk_0200AF00 +_0801C854: .4byte gUnk_02034D30 +_0801C858: .4byte gScreen + + thumb_func_start sub_0801C85C +sub_0801C85C: @ 0x0801C85C + push {r4, r5, r6, lr} + movs r2, #0 + ldr r5, _0801C884 @ =gUnk_0200AF00 + ldrb r1, [r5, #1] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0801C878 + ldr r0, _0801C888 @ =gPlayerState + adds r0, #0xa0 + ldrb r1, [r0] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r2, r0, #0x1f +_0801C878: + cmp r2, #0 + bne _0801C88C + bl sub_0801C824 + b _0801C984 + .align 2, 0 +_0801C884: .4byte gUnk_0200AF00 +_0801C888: .4byte gPlayerState +_0801C88C: + ldrb r0, [r5, #4] + ldr r4, _0801C92C @ =gUnk_02034D30 + cmp r0, #0x28 + bls _0801C896 + adds r4, #0x40 +_0801C896: + ldr r0, _0801C930 @ =gPlayerState + adds r0, #0xa4 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r0, #0x13 + movs r1, #0x14 + bl Div + adds r1, r0, #0 + cmp r1, #0x28 + bls _0801C8AE + movs r1, #0x28 +_0801C8AE: + ldrb r0, [r5, #6] + cmp r0, #0 + beq _0801C8BA + ldrb r0, [r5, #7] + cmp r0, r1 + beq _0801C910 +_0801C8BA: + movs r6, #1 + strb r6, [r5, #6] + strb r1, [r5, #7] + adds r0, r1, #0 + movs r1, #4 + bl Div + adds r3, r0, #0 + adds r5, r1, #0 + ldr r1, _0801C934 @ =0x0000F016 + adds r0, r1, #0 + strh r0, [r4] + ldr r1, _0801C938 @ =0x0000F416 + adds r0, r1, #0 + strh r0, [r4, #0x16] + ldr r2, _0801C93C @ =0x040000D4 + movs r0, #0xa + subs r0, r0, r3 + lsls r0, r0, #1 + ldr r1, _0801C940 @ =gUnk_080C8F54 + adds r0, r0, r1 + str r0, [r2] + adds r0, r4, #2 + str r0, [r2, #4] + ldr r0, _0801C944 @ =0x8000000A + str r0, [r2, #8] + ldr r0, [r2, #8] + cmp r5, #0 + beq _0801C90C + lsls r2, r3, #1 + adds r2, r2, r4 + adds r0, r5, #0 + adds r0, #0x17 + ldr r3, _0801C948 @ =0x000003FF + adds r1, r3, #0 + ands r0, r1 + movs r3, #0xf0 + lsls r3, r3, #8 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2, #2] +_0801C90C: + ldr r0, _0801C94C @ =gScreen + strh r6, [r0, #0xe] +_0801C910: + ldr r0, _0801C930 @ =gPlayerState + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #5 + bgt _0801C962 + cmp r0, #4 + blt _0801C962 + ldr r2, _0801C950 @ =gUnk_0200AF00 + ldrb r1, [r2, #9] + adds r4, r2, #0 + cmp r0, #4 + bne _0801C954 + adds r0, r1, #2 + b _0801C956 + .align 2, 0 +_0801C92C: .4byte gUnk_02034D30 +_0801C930: .4byte gPlayerState +_0801C934: .4byte 0x0000F016 +_0801C938: .4byte 0x0000F416 +_0801C93C: .4byte 0x040000D4 +_0801C940: .4byte gUnk_080C8F54 +_0801C944: .4byte 0x8000000A +_0801C948: .4byte 0x000003FF +_0801C94C: .4byte gScreen +_0801C950: .4byte gUnk_0200AF00 +_0801C954: + adds r0, r1, #1 +_0801C956: + strb r0, [r2, #9] + ldrb r0, [r4, #9] + lsrs r3, r0, #4 + movs r0, #3 + ands r3, r0 + b _0801C966 +_0801C962: + movs r3, #0 + ldr r4, _0801C988 @ =gUnk_0200AF00 +_0801C966: + ldrb r0, [r4, #8] + cmp r3, r0 + beq _0801C984 + strb r3, [r4, #8] + ldr r4, _0801C98C @ =0x0600C2C0 + ldr r1, _0801C990 @ =0x040000D4 + ldr r2, _0801C994 @ =gUnk_080C8F7C + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + str r4, [r1, #4] + ldr r0, _0801C998 @ =0x84000030 + str r0, [r1, #8] + ldr r0, [r1, #8] +_0801C984: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801C988: .4byte gUnk_0200AF00 +_0801C98C: .4byte 0x0600C2C0 +_0801C990: .4byte 0x040000D4 +_0801C994: .4byte gUnk_080C8F7C +_0801C998: .4byte 0x84000030 + + thumb_func_start sub_0801C99C +sub_0801C99C: @ 0x0801C99C + push {r4, r5, lr} + ldr r4, _0801C9E0 @ =gUnk_0200AF00 + ldrb r1, [r4, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801C9B2 + bl sub_08052724 + cmp r0, #0 + bne _0801C9EC +_0801C9B2: + ldrb r0, [r4, #0x10] + cmp r0, #0 + beq _0801CA50 + movs r0, #0 + strb r0, [r4, #0x10] + ldr r2, _0801C9E4 @ =gUnk_020350E2 + strh r0, [r2] + strh r0, [r2, #2] + strh r0, [r2, #4] + strh r0, [r2, #6] + adds r1, r2, #0 + adds r1, #0x40 + strh r0, [r1] + adds r1, #2 + strh r0, [r1] + adds r1, #2 + strh r0, [r1] + adds r1, #2 + strh r0, [r1] + ldr r1, _0801C9E8 @ =gScreen + movs r0, #1 + strh r0, [r1, #0xe] + b _0801CA50 + .align 2, 0 +_0801C9E0: .4byte gUnk_0200AF00 +_0801C9E4: .4byte gUnk_020350E2 +_0801C9E8: .4byte gScreen +_0801C9EC: + ldrb r0, [r4, #0x10] + cmp r0, #0 + bne _0801CA1E + ldr r2, _0801CA54 @ =gUnk_020350E2 + adds r1, r2, #0 + adds r1, #0x40 + ldr r3, _0801CA58 @ =0x0000F01C + strh r3, [r2] + adds r0, r3, #1 + strh r0, [r2, #2] + adds r0, r3, #2 + strh r0, [r1] + adds r0, r3, #3 + strh r0, [r1, #2] + adds r3, #0x5a + strh r3, [r2, #4] + adds r0, r3, #1 + strh r0, [r1, #4] + adds r0, r3, #2 + strh r0, [r2, #6] + adds r0, r3, #3 + strh r0, [r1, #6] + ldr r1, _0801CA5C @ =gScreen + movs r0, #1 + strh r0, [r1, #0xe] +_0801CA1E: + ldr r0, _0801CA60 @ =gSave + ldr r3, _0801CA64 @ =gArea + ldrb r1, [r3, #3] + ldr r5, _0801CA68 @ =0x0000045C + adds r2, r0, r5 + adds r1, r1, r2 + ldrb r0, [r4, #0x12] + ldrb r1, [r1] + cmp r0, r1 + bne _0801CA38 + ldrb r0, [r4, #0x10] + cmp r0, #0 + bne _0801CA50 +_0801CA38: + movs r0, #2 + strb r0, [r4, #0x10] + ldrb r0, [r3, #3] + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0x12] + ldrb r1, [r4, #0x12] + movs r0, #0x76 + movs r2, #0 + movs r3, #2 + bl sub_0801C5E0 +_0801CA50: + pop {r4, r5, pc} + .align 2, 0 +_0801CA54: .4byte gUnk_020350E2 +_0801CA58: .4byte 0x0000F01C +_0801CA5C: .4byte gScreen +_0801CA60: .4byte gSave +_0801CA64: .4byte gArea +_0801CA68: .4byte 0x0000045C + + thumb_func_start sub_0801CA6C +sub_0801CA6C: @ 0x0801CA6C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r3, #0 + ldr r7, _0801CAA8 @ =gUnk_0200AF34 + movs r0, #1 + mov ip, r0 + ldr r1, _0801CAAC @ =gUnk_080C8F8C + lsls r0, r5, #4 + adds r4, r0, r1 +_0801CA80: + lsls r0, r3, #5 + adds r1, r0, r7 + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + bne _0801CAB0 + strb r5, [r1, #1] + strb r6, [r1, #2] + movs r0, #0xff + strb r0, [r1, #0x10] + mov r0, ip + orrs r0, r2 + strb r0, [r1] + ldrh r0, [r4, #4] + strh r0, [r1, #0x1a] + ldrb r0, [r4, #0xc] + strb r0, [r1, #3] + b _0801CAB6 + .align 2, 0 +_0801CAA8: .4byte gUnk_0200AF34 +_0801CAAC: .4byte gUnk_080C8F8C +_0801CAB0: + adds r3, #1 + cmp r3, #0x17 + bls _0801CA80 +_0801CAB6: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801CAB8 +sub_0801CAB8: @ 0x0801CAB8 + push {lr} + str r1, [r0, #0x14] + ldrb r2, [r1, #1] + strb r2, [r0, #0x11] + ldrb r2, [r1, #2] + strb r2, [r0, #0x12] + ldrb r2, [r1, #3] + strb r2, [r0, #0x13] + ldrb r1, [r1] + bl sub_0801CAFC + pop {pc} + + thumb_func_start sub_0801CAD0 +sub_0801CAD0: @ 0x0801CAD0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x11] + subs r0, #1 + strb r0, [r2, #0x11] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801CAF8 + ldr r1, [r2, #0x14] + movs r0, #3 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0801CAF0 + ldrb r0, [r1, #4] + lsls r0, r0, #2 + subs r1, r1, r0 +_0801CAF0: + adds r1, #4 + adds r0, r2, #0 + bl sub_0801CAB8 +_0801CAF8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801CAFC +sub_0801CAFC: @ 0x0801CAFC + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldrb r0, [r2, #1] + lsls r0, r0, #4 + ldr r1, _0801CB1C @ =gUnk_080C8F8C + adds r1, r0, r1 + ldrb r0, [r2, #0x10] + cmp r3, r0 + beq _0801CB18 + strb r3, [r2, #0x10] + adds r0, r2, #0 + bl sub_0801CB20 +_0801CB18: + pop {pc} + .align 2, 0 +_0801CB1C: .4byte gUnk_080C8F8C + + thumb_func_start sub_0801CB20 +sub_0801CB20: @ 0x0801CB20 + push {lr} + adds r3, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + bne _0801CB76 + ldrh r1, [r1, #6] + lsls r1, r1, #4 + ldr r0, _0801CB54 @ =gSpritePtrs + adds r1, r1, r0 + ldrb r0, [r3, #0x10] + lsls r0, r0, #2 + ldr r2, [r1, #4] + adds r2, r2, r0 + ldrh r0, [r2, #2] + lsls r0, r0, #5 + ldr r1, [r1, #8] + adds r1, r1, r0 + ldrb r2, [r2] + cmp r2, #0 + bne _0801CB58 + ldrb r1, [r3] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + b _0801CB74 + .align 2, 0 +_0801CB54: .4byte gSpritePtrs +_0801CB58: + ldrb r0, [r3, #0x19] + cmp r0, r2 + bne _0801CB64 + ldr r0, [r3, #0x1c] + cmp r0, r1 + beq _0801CB74 +_0801CB64: + str r1, [r3, #0x1c] + ldrb r0, [r3] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r3] +_0801CB74: + strb r2, [r3, #0x19] +_0801CB76: + pop {pc} + + thumb_func_start sub_0801CB78 +sub_0801CB78: @ 0x0801CB78 + push {lr} + ldr r2, _0801CB8C @ =gUnk_080C903C + ldrb r1, [r0, #4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801CB8C: .4byte gUnk_080C903C + + thumb_func_start sub_0801CB90 +sub_0801CB90: @ 0x0801CB90 + push {lr} + ldr r3, _0801CBC4 @ =gUnk_0200AF00 + ldrb r1, [r0, #1] + lsls r1, r1, #1 + adds r2, r3, #0 + adds r2, #0x16 + adds r1, r1, r2 + ldrh r1, [r1] + strh r1, [r0, #0xc] + ldrb r1, [r0, #1] + lsls r1, r1, #1 + adds r3, #0x1c + adds r1, r1, r3 + ldrh r1, [r1] + subs r1, #0x20 + strh r1, [r0, #0xe] + movs r1, #1 + strb r1, [r0, #4] + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r0, #1] + bl sub_0801CAFC + pop {pc} + .align 2, 0 +_0801CBC4: .4byte gUnk_0200AF00 + + thumb_func_start sub_0801CBC8 +sub_0801CBC8: @ 0x0801CBC8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #2] + movs r6, #8 + cmp r0, #0 + bne _0801CC10 + movs r6, #4 + cmp r0, #0 + bne _0801CC10 + ldr r3, _0801CC08 @ =gUnk_0200AF00 + ldrb r0, [r3, #1] + ldrb r2, [r5, #1] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0801CBF6 + ldr r0, _0801CC0C @ =gMessage + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0801CC10 +_0801CBF6: + lsls r0, r2, #1 + adds r1, r3, #0 + adds r1, #0x1c + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + subs r1, #0x28 + b _0801CC1E + .align 2, 0 +_0801CC08: .4byte gUnk_0200AF00 +_0801CC0C: .4byte gMessage +_0801CC10: + ldr r1, _0801CC7C @ =gUnk_0200AF00 + ldrb r0, [r5, #1] + lsls r0, r0, #1 + adds r1, #0x1c + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] +_0801CC1E: + movs r2, #0xe + ldrsh r0, [r5, r2] + subs r4, r1, r0 + adds r1, r4, #0 + cmp r4, #0 + bge _0801CC2C + rsbs r4, r4, #0 +_0801CC2C: + cmp r6, r4 + bgt _0801CC32 + adds r4, r6, #0 +_0801CC32: + adds r0, r1, #0 + bl sub_08000E44 + muls r4, r0, r4 + cmp r4, #0 + beq _0801CC44 + ldrh r0, [r5, #0xe] + adds r0, r0, r4 + strh r0, [r5, #0xe] +_0801CC44: + ldr r0, _0801CC7C @ =gUnk_0200AF00 + ldrb r1, [r5, #1] + lsls r1, r1, #1 + adds r0, #0x16 + adds r1, r1, r0 + movs r0, #0 + ldrsh r1, [r1, r0] + movs r2, #0xc + ldrsh r0, [r5, r2] + subs r4, r1, r0 + adds r1, r4, #0 + cmp r4, #0 + bge _0801CC60 + rsbs r4, r4, #0 +_0801CC60: + cmp r6, r4 + bgt _0801CC66 + adds r4, r6, #0 +_0801CC66: + adds r0, r1, #0 + bl sub_08000E44 + muls r4, r0, r4 + cmp r4, #0 + beq _0801CC78 + ldrh r0, [r5, #0xc] + adds r0, r0, r4 + strh r0, [r5, #0xc] +_0801CC78: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801CC7C: .4byte gUnk_0200AF00 + + thumb_func_start sub_0801CC80 +sub_0801CC80: @ 0x0801CC80 + push {r4, r5, lr} + ldrb r1, [r0, #1] + movs r0, #3 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + ldr r5, _0801CCAC @ =gSave + adds r1, r5, #0 + adds r1, #0xb4 + adds r0, r0, r1 + ldrb r4, [r0] + adds r0, r4, #0 + bl ItemIsBottle + cmp r0, #0 + beq _0801CCA8 + adds r0, r5, r4 + adds r0, #0x9a + ldrb r4, [r0] +_0801CCA8: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_0801CCAC: .4byte gSave + + thumb_func_start sub_0801CCB0 +sub_0801CCB0: @ 0x0801CCB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + adds r0, r4, #0 + bl sub_0801CC80 + adds r1, r0, #0 + cmp r1, #0 + beq _0801CD90 + ldrb r0, [r4, #8] + cmp r0, r1 + beq _0801CCE0 + strb r1, [r4, #8] + ldr r0, _0801CD1C @ =gSpriteAnimations_322 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl sub_0801CAB8 +_0801CCE0: + ldrb r0, [r4, #1] + movs r1, #3 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r6, r1, #0x1f + ldr r3, _0801CD20 @ =gUnk_0200AF13 + cmp r6, #0 + beq _0801CCF4 + adds r3, #1 +_0801CCF4: + ldrb r0, [r4, #8] + cmp r0, #7 + blt _0801CD60 + cmp r0, #8 + ble _0801CD28 + cmp r0, #0xa + bgt _0801CD60 + ldr r1, _0801CD24 @ =gSave + adds r0, r1, #0 + adds r0, #0xad + ldrb r2, [r0] + ldrb r0, [r3] + adds r5, r1, #0 + cmp r0, r2 + beq _0801CD4C + adds r0, r2, #0 + adds r0, #0x80 + strb r0, [r3] + b _0801CD4C + .align 2, 0 +_0801CD1C: .4byte gSpriteAnimations_322 +_0801CD20: .4byte gUnk_0200AF13 +_0801CD24: .4byte gSave +_0801CD28: + ldr r5, _0801CD44 @ =gSave + adds r0, r5, #0 + adds r0, #0xac + ldrb r2, [r0] + ldrb r0, [r3] + cmp r0, r2 + beq _0801CD3C + adds r0, r2, #0 + adds r0, #0x80 + strb r0, [r3] +_0801CD3C: + ldr r1, _0801CD48 @ =gBombBagSizes + adds r0, r5, #0 + adds r0, #0xae + b _0801CD52 + .align 2, 0 +_0801CD44: .4byte gSave +_0801CD48: .4byte gBombBagSizes +_0801CD4C: + ldr r1, _0801CD5C @ =gQuiverSizes + adds r0, r5, #0 + adds r0, #0xaf +_0801CD52: + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + b _0801CD64 + .align 2, 0 +_0801CD5C: .4byte gQuiverSizes +_0801CD60: + movs r0, #1 + movs r2, #0 +_0801CD64: + movs r1, #3 + cmp r0, r2 + bhi _0801CD6C + movs r1, #4 +_0801CD6C: + strb r1, [r4, #0x18] + adds r0, r6, #0 + bl sub_0801CE24 + adds r1, r0, #0 + cmp r1, #0 + beq _0801CD90 + ldrh r0, [r1, #0xc] + strh r0, [r4, #0xc] + ldrh r0, [r1, #0xe] + strh r0, [r4, #0xe] + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + adds r0, r4, #0 + bl sub_0801CAD0 +_0801CD90: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801CD94 +sub_0801CD94: @ 0x0801CD94 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #2] + ldr r1, _0801CDC0 @ =gUnk_0200AF00 + cmp r0, #9 + bne _0801CDD4 + adds r0, r1, #0 + adds r0, #0x2f + ldrb r2, [r0] + cmp r2, #0 + bne _0801CDCE + ldr r0, _0801CDC4 @ =gArea + ldrb r0, [r0, #0x18] + cmp r0, #2 + beq _0801CDC8 + cmp r0, #3 + beq _0801CDCC + adds r0, r1, #0 + adds r0, #0x2c + ldrb r2, [r0] + b _0801CDCE + .align 2, 0 +_0801CDC0: .4byte gUnk_0200AF00 +_0801CDC4: .4byte gArea +_0801CDC8: + movs r2, #0xb + b _0801CDCE +_0801CDCC: + movs r2, #0xa +_0801CDCE: + adds r0, r1, #0 + adds r0, #0x32 + strb r2, [r0] +_0801CDD4: + adds r0, r1, #0 + adds r0, #0x30 + ldrb r1, [r4, #3] + adds r0, r0, r1 + ldrb r2, [r0] + ldrb r1, [r4] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + cmp r2, #0 + beq _0801CE1E + ldr r1, _0801CE20 @ =gUnk_080C9044 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, r2, r0 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0801CAFC + ldrb r0, [r4, #3] + bl sub_0801CE24 + adds r1, r0, #0 + cmp r1, #0 + beq _0801CE1E + ldrh r0, [r1, #0xc] + strh r0, [r4, #0xc] + ldrh r0, [r1, #0xe] + strh r0, [r4, #0xe] + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] +_0801CE1E: + pop {r4, pc} + .align 2, 0 +_0801CE20: .4byte gUnk_080C9044 + + thumb_func_start sub_0801CE24 +sub_0801CE24: @ 0x0801CE24 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + movs r6, #1 + ldr r3, _0801CE44 @ =gUnk_0200AF34 + adds r2, r3, #0 +_0801CE30: + ldrb r1, [r2] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0801CE48 + ldrb r0, [r2, #1] + cmp r5, r0 + bne _0801CE48 + adds r0, r3, #0 + b _0801CE54 + .align 2, 0 +_0801CE44: .4byte gUnk_0200AF34 +_0801CE48: + adds r2, #0x20 + adds r3, #0x20 + adds r4, #1 + cmp r4, #0x17 + bls _0801CE30 + movs r0, #0 +_0801CE54: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801CE58 +sub_0801CE58: @ 0x0801CE58 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3] + movs r4, #3 + rsbs r4, r4, #0 + ands r4, r0 + strb r4, [r3] + ldr r2, _0801CEB8 @ =gUnk_0200AF00 + ldrb r1, [r2, #1] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0801CEB4 + ldr r0, _0801CEBC @ =gMessage + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0801CEB4 + ldrb r2, [r2, #3] + cmp r2, #0 + beq _0801CEB4 + movs r0, #2 + adds r1, r4, #0 + orrs r1, r0 + strb r1, [r3] + adds r0, r2, #3 + lsrs r0, r0, #2 + lsls r0, r0, #3 + adds r1, r0, #3 + movs r4, #0xc + cmp r2, #0x28 + bls _0801CE9E + movs r4, #0x14 + subs r1, #0x50 +_0801CE9E: + strh r1, [r3, #0xc] + strh r4, [r3, #0xe] + movs r1, #3 + ands r1, r2 + cmp r1, #0 + bne _0801CEAC + movs r1, #4 +_0801CEAC: + adds r1, #0x71 + adds r0, r3, #0 + bl sub_0801CAFC +_0801CEB4: + pop {r4, pc} + .align 2, 0 +_0801CEB8: .4byte gUnk_0200AF00 +_0801CEBC: .4byte gMessage + diff --git a/asm/code_0801D79C.s b/asm/utils.s similarity index 100% rename from asm/code_0801D79C.s rename to asm/utils.s diff --git a/asm/code_08000108.s b/asm/veneer.s similarity index 100% rename from asm/code_08000108.s rename to asm/veneer.s diff --git a/asm/vram.s b/asm/vram.s new file mode 100644 index 00000000..79c3808f --- /dev/null +++ b/asm/vram.s @@ -0,0 +1,1083 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start ResetPalettes +ResetPalettes: @ 0x080ADD30 + push {r4, r5, r6, lr} + ldr r4, _080ADD6C @ =gGFXSlots + movs r1, #0x85 + lsls r1, r1, #2 + adds r0, r4, #0 + bl MemClear + movs r5, #0 + adds r4, #4 + movs r0, #0x10 + rsbs r0, r0, #0 + adds r6, r0, #0 +_080ADD48: + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl ReserveGFXSlots + ldrb r0, [r4] + ands r0, r6 + movs r1, #6 + orrs r0, r1 + strb r0, [r4] + movs r0, #0x80 + strb r0, [r4, #2] + adds r4, #0xc + adds r5, #1 + cmp r5, #3 + bls _080ADD48 + pop {r4, r5, r6, pc} + .align 2, 0 +_080ADD6C: .4byte gGFXSlots + + thumb_func_start sub_080ADD70 +sub_080ADD70: @ 0x080ADD70 +.ifdef EU + push {r4, r5, lr} + ldr r0, _080AD540 @ =gGFXSlots + ldrb r0, [r0] + cmp r0, #0 + beq _080AD56A + movs r4, #0 + movs r5, #0 +_080AD522: + ldr r0, _080AD544 @ =gUnk_02024494 + adds r2, r5, r0 + ldrb r1, [r2] + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #2 + bne _080AD548 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + b _080AD562 + .align 2, 0 +_080AD540: .4byte gGFXSlots +_080AD544: .4byte gUnk_02024494 +_080AD548: + cmp r0, #2 + blt _080AD562 + cmp r0, #6 + bgt _080AD562 + cmp r0, #4 + blt _080AD562 + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x30 + bne _080AD562 + adds r0, r4, #0 + bl sub_080ADE74 +_080AD562: + adds r5, #0xc + adds r4, #1 + cmp r4, #0x2b + bls _080AD522 +_080AD56A: + pop {r4, r5, pc} + +.else + push {r4, r5, lr} + ldr r1, _080ADD88 @ =gGFXSlots + ldrb r0, [r1] + cmp r0, #0 + beq _080ADDD6 + ldrb r0, [r1, #3] + cmp r0, #0 + beq _080ADD8C + bl sub_080ADE24 + b _080ADDD6 + .align 2, 0 +_080ADD88: .4byte gGFXSlots +_080ADD8C: + movs r4, #0 + movs r5, #0 +_080ADD90: + ldr r0, _080ADDB0 @ =gUnk_02024494 + adds r2, r5, r0 + ldrb r1, [r2] + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #2 + bne _080ADDB4 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + b _080ADDCE + .align 2, 0 +_080ADDB0: .4byte gUnk_02024494 +_080ADDB4: + cmp r0, #2 + blt _080ADDCE + cmp r0, #6 + bgt _080ADDCE + cmp r0, #4 + blt _080ADDCE + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x30 + bne _080ADDCE + adds r0, r4, #0 + bl sub_080ADE74 +_080ADDCE: + adds r5, #0xc + adds r4, #1 + cmp r4, #0x2b + bls _080ADD90 +_080ADDD6: + pop {r4, r5, pc} +.endif + + thumb_func_start sub_080ADDD8 +sub_080ADDD8: @ 0x080ADDD8 + push {lr} + adds r2, r1, #0 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080ADDFC @ =gUnk_02024494 + adds r3, r1, r0 + ldr r0, _080ADE00 @ =0x00FFFFFC + ands r0, r2 + ldr r1, _080ADE04 @ =gGlobalGfxAndPalettes + adds r0, r0, r1 + str r0, [r3, #8] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080ADE0C + ldr r0, _080ADE08 @ =0x0000FFFF + b _080ADE14 + .align 2, 0 +_080ADDFC: .4byte gUnk_02024494 +_080ADE00: .4byte 0x00FFFFFC +_080ADE04: .4byte gGlobalGfxAndPalettes +_080ADE08: .4byte 0x0000FFFF +_080ADE0C: + movs r0, #0xfe + lsls r0, r0, #0x17 + ands r0, r2 + lsrs r0, r0, #0x14 +_080ADE14: + strh r0, [r3, #6] + ldrb r0, [r3] + movs r1, #0xf + ands r1, r0 + movs r0, #0x30 + orrs r1, r0 + strb r1, [r3] + pop {pc} + + thumb_func_start sub_080ADE24 +sub_080ADE24: @ 0x080ADE24 + push {r4, r5, lr} + ldr r1, _080ADE50 @ =gGFXSlots + movs r0, #1 + strb r0, [r1, #3] + movs r4, #0 + movs r5, #0 +_080ADE30: + ldr r0, _080ADE54 @ =gUnk_02024494 + adds r1, r5, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #3 + beq _080ADE60 + cmp r0, #3 + blt _080ADE58 + cmp r0, #6 + bgt _080ADE58 + adds r0, r4, #0 + bl sub_080ADE74 + b _080ADE60 + .align 2, 0 +_080ADE50: .4byte gGFXSlots +_080ADE54: .4byte gUnk_02024494 +_080ADE58: + adds r0, r1, #0 + movs r1, #0xc + bl MemClear +_080ADE60: + adds r5, #0xc + adds r4, #1 + cmp r4, #0x2b + bls _080ADE30 + movs r1, #0 + ldr r0, _080ADE70 @ =gGFXSlots + strb r1, [r0, #3] + pop {r4, r5, pc} + .align 2, 0 +_080ADE70: .4byte gGFXSlots + + thumb_func_start sub_080ADE74 +sub_080ADE74: @ 0x080ADE74 + push {r4, r5, r6, lr} + adds r2, r0, #0 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _080ADF00 @ =gUnk_02024494 + adds r3, r0, r1 + ldrb r1, [r3] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + beq _080ADF7C + movs r0, #0xf + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r3] + ldrh r1, [r3, #6] + ldr r0, _080ADF04 @ =0x0000FFFF + cmp r1, r0 + beq _080ADF18 + ldrb r0, [r3, #3] + cmp r0, #0 + beq _080ADF18 + lsls r0, r0, #6 + ldr r1, _080ADF08 @ =gUnk_020000C0 + adds r4, r0, r1 + movs r5, #4 + movs r6, #9 + rsbs r6, r6, #0 +_080ADEB0: + ldrb r1, [r4] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080ADEF6 + ldr r0, _080ADF0C @ =gGFXSlots + ldrb r0, [r0, #3] + cmp r0, #0 + bne _080ADECA + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080ADEF6 +_080ADECA: + adds r0, r6, #0 + ands r0, r1 + strb r0, [r4] + ldrb r0, [r4, #9] + lsls r2, r0, #5 + cmp r2, #0 + beq _080ADEF6 + ldrh r0, [r4, #0xa] + lsls r0, r0, #5 + ldr r3, _080ADF10 @ =0x06010000 + adds r1, r0, r3 + ldr r3, _080ADF14 @ =0x040000D4 + ldr r0, [r4, #0xc] + str r0, [r3] + str r1, [r3, #4] + adds r0, r2, #0 + asrs r0, r0, #2 + movs r1, #0x84 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r3, #8] + ldr r0, [r3, #8] +_080ADEF6: + adds r4, #0x10 + subs r5, #1 + cmp r5, #0 + bgt _080ADEB0 + b _080ADF7C + .align 2, 0 +_080ADF00: .4byte gUnk_02024494 +_080ADF04: .4byte 0x0000FFFF +_080ADF08: .4byte gUnk_020000C0 +_080ADF0C: .4byte gGFXSlots +_080ADF10: .4byte 0x06010000 +_080ADF14: .4byte 0x040000D4 +_080ADF18: + lsls r0, r2, #9 + ldr r2, _080ADF4C @ =0x06012800 + adds r1, r0, r2 + ldrh r2, [r3, #6] + cmp r2, #0 + beq _080ADF58 + ldr r0, _080ADF50 @ =0x0000FFFF + cmp r2, r0 + beq _080ADF62 + ldr r2, _080ADF54 @ =0x040000D4 + ldr r0, [r3, #8] + str r0, [r2] + str r1, [r2, #4] + ldrh r0, [r3, #6] + lsls r0, r0, #3 + movs r1, #0x84 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + ldrh r2, [r3, #6] + subs r2, #0x10 + cmp r2, #0 + ble _080ADF7C + b _080ADF70 + .align 2, 0 +_080ADF4C: .4byte 0x06012800 +_080ADF50: .4byte 0x0000FFFF +_080ADF54: .4byte 0x040000D4 +_080ADF58: + ldrb r1, [r3] + movs r0, #0xf + ands r0, r1 + strb r0, [r3] + b _080ADF7C +_080ADF62: + ldrb r0, [r3, #3] + cmp r0, #0 + bne _080ADF7C + ldr r0, [r3, #8] + bl LZ77UnCompVram + b _080ADF7C +_080ADF70: + adds r3, #0xc + movs r0, #0 + strh r0, [r3, #6] + subs r2, #0x10 + cmp r2, #0 + bgt _080ADF70 +_080ADF7C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start LoadFixedGFX +LoadFixedGFX: @ 0x080ADF80 +.ifdef EU + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r5, r1, #0 + cmp r5, #0 + bne _080AD726 + movs r0, #1 + b _080AD77E +_080AD726: + movs r4, #4 + ldr r0, _080AD774 @ =gGFXSlots + adds r0, #0x30 +_080AD72C: + ldrh r1, [r0, #8] + cmp r5, r1 + beq _080AD766 + adds r0, #0xc + adds r4, #1 + cmp r4, #0x2b + bls _080AD72C + ldr r0, _080AD778 @ =gFixedTypeGfxData + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r7, [r1] + movs r0, #0xfe + lsls r0, r0, #0x17 + ands r0, r7 + lsrs r6, r0, #0x18 + adds r0, r6, #0 + bl FindFreeGFXSlot + adds r4, r0, #0 + cmp r4, #0 + beq _080AD77C + adds r1, r5, #0 + adds r2, r6, #0 + bl ReserveGFXSlots + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_080ADDD8 +_080AD766: + adds r0, r4, #0 + mov r1, r8 + movs r2, #4 + bl sub_080AE0C8 + movs r0, #1 + b _080AD77E + .align 2, 0 +_080AD774: .4byte gGFXSlots +_080AD778: .4byte gFixedTypeGfxData +_080AD77C: + movs r0, #0 +_080AD77E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + +.else + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r7, r1, #0 + cmp r7, #0 + beq _080ADFFC + movs r5, #4 + ldr r0, _080ADFD4 @ =gGFXSlots + adds r0, #0x30 +_080ADF94: + ldrh r1, [r0, #8] + cmp r7, r1 + beq _080ADFF2 + adds r0, #0xc + adds r5, #1 + cmp r5, #0x2b + bls _080ADF94 + ldr r0, _080ADFD8 @ =gFixedTypeGfxData + lsls r4, r7, #2 + adds r0, r4, r0 + ldr r0, [r0] + movs r1, #0xfe + lsls r1, r1, #0x17 + ands r0, r1 + lsrs r6, r0, #0x18 + adds r0, r6, #0 + bl FindFreeGFXSlot + adds r5, r0, #0 + cmp r5, #0 + bne _080ADFDC + bl CleanUpGFXSlots + adds r0, r6, #0 + bl FindFreeGFXSlot + adds r5, r0, #0 + cmp r5, #0 + bne _080ADFDC + movs r0, #0 + b _080ADFFE + .align 2, 0 +_080ADFD4: .4byte gGFXSlots +_080ADFD8: .4byte gFixedTypeGfxData +_080ADFDC: + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl ReserveGFXSlots + ldr r0, _080AE004 @ =gFixedTypeGfxData + adds r0, r4, r0 + ldr r1, [r0] + adds r0, r5, #0 + bl sub_080ADDD8 +_080ADFF2: + adds r0, r5, #0 + mov r1, r8 + movs r2, #4 + bl sub_080AE0C8 +_080ADFFC: + movs r0, #1 +_080ADFFE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AE004: .4byte gFixedTypeGfxData +.endif + + thumb_func_start LoadSwapGFX +LoadSwapGFX: @ 0x080AE008 +.ifdef EU + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + cmp r4, #0 + bne _080AD79C + adds r0, r5, #0 + bl FindFreeGFXSlot + adds r4, r0, #0 + cmp r4, #0 + beq _080AD7C4 +_080AD79C: + ldr r0, _080AD7D0 @ =gGFXSlots + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x1c + lsrs r2, r0, #0x1c + cmp r2, #6 + beq _080AD7BC + adds r0, r4, #0 + movs r1, #0 + adds r2, r5, #0 + bl ReserveGFXSlots + movs r2, #5 +_080AD7BC: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080AE0C8 +_080AD7C4: + adds r0, r4, #0 + cmp r0, #0 + beq _080AD7CC + movs r0, #1 +_080AD7CC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AD7D0: .4byte gGFXSlots + +.else + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + cmp r4, #0 + bne _080AE030 + adds r0, r5, #0 + bl FindFreeGFXSlot + adds r4, r0, #0 + cmp r4, #0 + bne _080AE030 + bl CleanUpGFXSlots + adds r0, r5, #0 + bl FindFreeGFXSlot + adds r4, r0, #0 + cmp r4, #0 + beq _080AE058 +_080AE030: + ldr r0, _080AE064 @ =gGFXSlots + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x1c + lsrs r2, r0, #0x1c + cmp r2, #6 + beq _080AE050 + adds r0, r4, #0 + movs r1, #0 + adds r2, r5, #0 + bl ReserveGFXSlots + movs r2, #5 +_080AE050: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080AE0C8 +_080AE058: + adds r0, r4, #0 + cmp r0, #0 + beq _080AE060 + movs r0, #1 +_080AE060: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AE064: .4byte gGFXSlots +.endif + + thumb_func_start sub_080AE068 +sub_080AE068: @ 0x080AE068 + push {r4, r5, lr} + adds r0, #0x26 + ldrb r2, [r0] + movs r1, #0 + strb r1, [r0] + cmp r2, #0 + beq _080AE0C2 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _080AE0C4 @ =gUnk_02024494 + adds r3, r0, r1 + ldrb r0, [r3] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #5 + bgt _080AE0C2 + cmp r0, #4 + blt _080AE0C2 + ldrb r0, [r3, #2] + cmp r0, #0 + beq _080AE0C2 + subs r0, #1 + strb r0, [r3, #2] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AE0C2 + ldrb r2, [r3, #1] + adds r0, r2, #0 + subs r2, #1 + cmp r0, #0 + ble _080AE0C2 + movs r5, #0x10 + rsbs r5, r5, #0 + movs r4, #1 +_080AE0AE: + ldrb r0, [r3] + adds r1, r5, #0 + ands r1, r0 + orrs r1, r4 + strb r1, [r3] + adds r3, #0xc + adds r0, r2, #0 + subs r2, #1 + cmp r0, #0 + bgt _080AE0AE +_080AE0C2: + pop {r4, r5, pc} + .align 2, 0 +_080AE0C4: .4byte gUnk_02024494 + + thumb_func_start sub_080AE0C8 +sub_080AE0C8: @ 0x080AE0C8 + push {r4, lr} + adds r4, r2, #0 + lsls r2, r0, #4 + movs r3, #0xa0 + lsls r3, r3, #1 + adds r2, r2, r3 + adds r3, r1, #0 + adds r3, #0x60 + strh r2, [r3] + adds r1, #0x26 + strb r0, [r1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080AE100 @ =gUnk_02024494 + adds r1, r1, r0 + ldrb r2, [r1, #2] + movs r0, #2 + ldrsb r0, [r1, r0] + cmp r0, #0 + blt _080AE0F6 + adds r0, r2, #1 + strb r0, [r1, #2] +_080AE0F6: + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_080AE134 + pop {r4, pc} + .align 2, 0 +_080AE100: .4byte gUnk_02024494 + + thumb_func_start ReserveGFXSlots +ReserveGFXSlots: @ 0x080AE104 + push {r4, r5, r6, lr} + adds r6, r1, #0 + adds r5, r2, #0 + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080AE130 @ =gUnk_02024494 + adds r4, r4, r0 + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r0, r4, #0 + bl MemClear + strb r5, [r4, #1] + strh r6, [r4, #4] + adds r0, r4, #0 + movs r1, #4 + bl sub_080AE134 + pop {r4, r5, r6, pc} + .align 2, 0 +_080AE130: .4byte gUnk_02024494 + + thumb_func_start sub_080AE134 +sub_080AE134: @ 0x080AE134 + push {r4, r5, r6, lr} + adds r3, r0, #0 + adds r4, r1, #0 + movs r6, #0xf + adds r0, r4, #0 + ands r0, r6 + ldrb r2, [r3] + movs r5, #0x10 + rsbs r5, r5, #0 + adds r1, r5, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + ldrb r2, [r3, #1] + cmp r4, #6 + beq _080AE156 + movs r4, #3 +_080AE156: + subs r2, #1 + cmp r2, #0 + ble _080AE170 + ands r4, r6 +_080AE15E: + adds r3, #0xc + ldrb r1, [r3] + adds r0, r5, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r3] + subs r2, #1 + cmp r2, #0 + bgt _080AE15E +_080AE170: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start FindFreeGFXSlot +FindFreeGFXSlot: @ 0x080AE174 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #4 + ldr r0, _080AE194 @ =gGFXSlots + adds r3, r0, #0 + adds r3, #0x30 +_080AE182: + ldrb r0, [r3, #4] + lsls r0, r0, #0x1c + cmp r0, #0 + bne _080AE198 + adds r1, #1 + cmp r4, r1 + bhi _080AE19A + b _080AE1BC + .align 2, 0 +_080AE194: .4byte gGFXSlots +_080AE198: + movs r1, #0 +_080AE19A: + adds r3, #0xc + adds r2, #1 + cmp r2, #0x2b + bls _080AE182 + movs r1, #0 + movs r2, #4 + ldr r0, _080AE1C4 @ =gGFXSlots + adds r3, r0, #0 + adds r3, #0x30 +_080AE1AC: + ldrb r0, [r3, #4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #1 +.ifdef EU + bne _080AE1C8 +.else + bhi _080AE1C8 +.endif + adds r1, #1 + cmp r4, r1 + bhi _080AE1CA +_080AE1BC: + subs r0, r2, r1 + adds r0, #1 + b _080AE1D4 + .align 2, 0 +_080AE1C4: .4byte gGFXSlots +_080AE1C8: + movs r1, #0 +_080AE1CA: + adds r3, #0xc + adds r2, #1 + cmp r2, #0x2b + bls _080AE1AC + movs r0, #0 +_080AE1D4: + pop {r4, pc} + .align 2, 0 + +.ifndef EU + thumb_func_start CleanUpGFXSlots +CleanUpGFXSlots: @ 0x080AE1D8 + push {r4, r5, lr} + ldr r0, _080AE1E8 @ =gGFXSlots + ldrb r0, [r0] + cmp r0, #0 + beq _080AE216 + movs r5, #4 + b _080AE20A + .align 2, 0 +_080AE1E8: .4byte gGFXSlots +_080AE1EC: + bl sub_080AE3B8 + adds r4, r0, #0 + cmp r4, r5 + bhi _080AE208 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080AE218 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080AE324 + adds r5, r4, #0 +_080AE208: + adds r5, #1 +_080AE20A: + adds r0, r5, #0 + bl sub_080AE384 + adds r5, r0, #0 + cmp r5, #0 + bne _080AE1EC +_080AE216: + pop {r4, r5, pc} + + thumb_func_start sub_080AE218 +sub_080AE218: @ 0x080AE218 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + mov r8, r1 + lsls r0, r1, #4 + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + mov ip, r0 + mov r2, sl + lsls r0, r2, #4 + adds r3, r0, r1 + ldr r1, _080AE30C @ =gGFXSlots + lsls r0, r2, #1 + add r0, sl + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #5] + lsls r0, r0, #4 + adds r7, r3, r0 + movs r4, #0 + ldr r6, _080AE310 @ =gUnk_020000C0 + mov sb, r6 + ldr r0, _080AE314 @ =gPlayerEntity + adds r2, r0, #0 + adds r2, #0x26 + adds r5, r0, #0 +_080AE254: + ldr r0, [r5, #4] + cmp r0, #0 + beq _080AE276 + ldrb r0, [r2] + cmp sl, r0 + bne _080AE264 + mov r1, r8 + strb r1, [r2] +_080AE264: + ldrh r0, [r2, #0x3a] + cmp r3, r0 + bhi _080AE276 + cmp r7, r0 + bls _080AE276 + subs r0, r0, r3 + mov r6, ip + adds r1, r0, r6 + strh r1, [r2, #0x3a] +_080AE276: + adds r2, #0x88 + adds r5, #0x88 + adds r4, #1 + cmp r4, #0x4f + bls _080AE254 + movs r0, #0 +_080AE282: + movs r4, #0 + adds r1, r0, #1 + mov r8, r1 + lsls r5, r0, #6 +_080AE28A: + lsls r0, r4, #4 + add r0, sb + adds r2, r5, r0 + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AE2B4 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080AE2B4 + ldrh r1, [r2, #0xa] + cmp r3, r1 + bhi _080AE2B4 + cmp r7, r1 + bls _080AE2B4 + subs r0, r1, r3 + mov r6, ip + adds r1, r0, r6 + strh r1, [r2, #0xa] +_080AE2B4: + adds r4, #1 + cmp r4, #3 + bls _080AE28A + mov r0, r8 + cmp r0, #0x2f + bls _080AE282 + movs r4, #0 + ldr r0, _080AE318 @ =0xFFFFFC00 + mov sl, r0 + ldr r5, _080AE31C @ =gUnk_03000000 + adds r5, #0x24 + ldr r1, _080AE320 @ =0x000003FF + mov sb, r1 + movs r2, #1 + mov r8, r2 +_080AE2D2: + ldrh r2, [r5] + lsls r0, r2, #0x16 + lsrs r1, r0, #0x16 + cmp r3, r1 + bhi _080AE2F8 + cmp r7, r1 + bls _080AE2F8 + subs r0, r1, r3 + mov r6, ip + adds r1, r0, r6 + mov r0, sb + ands r1, r0 + mov r0, sl + ands r0, r2 + orrs r0, r1 + strh r0, [r5] + mov r2, r8 + ldr r1, _080AE31C @ =gUnk_03000000 + strb r2, [r1] +_080AE2F8: + adds r5, #8 + adds r4, #1 + cmp r4, #0x7f + bls _080AE2D2 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AE30C: .4byte gGFXSlots +_080AE310: .4byte gUnk_020000C0 +_080AE314: .4byte gPlayerEntity +_080AE318: .4byte 0xFFFFFC00 +_080AE31C: .4byte gUnk_03000000 +_080AE320: .4byte 0x000003FF + + thumb_func_start sub_080AE324 +sub_080AE324: @ 0x080AE324 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r3, r1, #0 + ldr r2, _080AE380 @ =gGFXSlots + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r5, r1, r2 + ldrb r4, [r5, #5] + subs r4, #1 + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + beq _080AE372 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r2 + mov r8, r0 + adds r0, r1, #4 + adds r6, r0, r2 +_080AE350: + mov r0, r8 + adds r0, #4 + adds r1, r5, #4 + ldm r1!, {r2, r3, r7} + stm r0!, {r2, r3, r7} + adds r0, r6, #0 + movs r1, #0xc + bl MemClear + adds r6, #0xc + adds r5, #0xc + movs r0, #0xc + add r8, r0 + subs r4, #1 + subs r0, #0xd + cmp r4, r0 + bne _080AE350 +_080AE372: + ldr r1, _080AE380 @ =gGFXSlots + movs r0, #1 + strb r0, [r1, #3] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AE380: .4byte gGFXSlots + + thumb_func_start sub_080AE384 +sub_080AE384: @ 0x080AE384 + push {lr} + adds r2, r0, #0 + cmp r2, #0x2a + bhi _080AE3B4 + ldr r1, _080AE3A8 @ =gGFXSlots + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r1 +_080AE396: + ldrb r0, [r1, #4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #5 + bgt _080AE3AC + cmp r0, #4 + blt _080AE3AC + adds r0, r2, #0 + b _080AE3B6 + .align 2, 0 +_080AE3A8: .4byte gGFXSlots +_080AE3AC: + adds r1, #0xc + adds r2, #1 + cmp r2, #0x2a + bls _080AE396 +_080AE3B4: + movs r0, #0 +_080AE3B6: + pop {pc} + + thumb_func_start sub_080AE3B8 +sub_080AE3B8: @ 0x080AE3B8 + push {lr} + movs r1, #4 + ldr r0, _080AE3D4 @ =gGFXSlots + adds r2, r0, #0 + adds r2, #0x30 +_080AE3C2: + ldrb r0, [r2, #4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #1 + bgt _080AE3D8 + cmp r0, #0 + blt _080AE3D8 + adds r0, r1, #0 + b _080AE3E2 + .align 2, 0 +_080AE3D4: .4byte gGFXSlots +_080AE3D8: + adds r2, #0xc + adds r1, #1 + cmp r1, #0x2b + bls _080AE3C2 + movs r0, #0 +_080AE3E2: + pop {pc} +.endif + diff --git a/include/main.h b/include/main.h index d5ffda2e..d18e54c0 100644 --- a/include/main.h +++ b/include/main.h @@ -8,20 +8,6 @@ #define NUM_SAVE_SLOTS 3 #define MAX_BRIGHTNESS 3 -typedef struct { // 0x03001000 - u8 field_0x0; - u8 field_0x1; - u8 field_0x2; - u8 field_0x3; - u8 field_0x4; - u16 field_0x6; - u8 field_0x8; - u8 field_0x9; - u8 field_0xa; - u8 field_0xb; - u32 spritePriority; -} MainStruct; - typedef enum { LANGUAGE_JP, LANGUAGE_EN, @@ -64,7 +50,8 @@ typedef struct { u8 pauseFrames; u8 pauseCount; u8 pauseInterval; - u16 ticks; + u8 pad; + union SplitHWord ticks; } Main; typedef struct { diff --git a/include/room.h b/include/room.h index e9fbcc32..08742d2d 100644 --- a/include/room.h +++ b/include/room.h @@ -46,7 +46,10 @@ typedef struct { /*0x18*/ u16 filler2[3]; /*0x1E*/ u16 width; /*0x20*/ u16 height; - /*0x22*/ u8 filler3[6]; + /*0x22*/ u8 filler3[2]; + /*0x24*/ s8 aff_x; + /*0x25*/ s8 aff_y; + /*0x26*/ u8 filler26[2]; /*0x28*/ union SplitWord bg3OffsetX; /*0x2C*/ union SplitWord bg3OffsetY; /*0x30*/ Entity* cameraTarget; diff --git a/include/save.h b/include/save.h index 7b5bc2f7..90e00e60 100644 --- a/include/save.h +++ b/include/save.h @@ -42,8 +42,8 @@ typedef struct { /*0x088*/ PlayerWorldStatus saved_status; /*0x0A8*/ Stats stats; /*0x0D0*/ u8 fillerD0[0x71]; - /*0x141*/ u8 unk141[0x1c1 - 0x141]; - /*0x1C1*/ u8 unk1C1[0x45c - 0x1c1]; + /*0x141*/ u8 unk141[128]; + /*0x1C1*/ u8 unk1C1[667]; /*0x45C*/ u8 unk45C[0x10]; /*0x46C*/ u8 unk46C[0x20]; /*0x48C*/ u32 unk48C[8]; diff --git a/include/structures.h b/include/structures.h index c8843e00..014b0abe 100644 --- a/include/structures.h +++ b/include/structures.h @@ -110,7 +110,7 @@ typedef struct { u16 a; u16 b; } indices; - void (*func)(Entity*); + void (*func)(Entity* e); } data; } Dialog; @@ -148,4 +148,30 @@ typedef struct { void* unk8; } WStruct; +typedef struct { + u16 unk0; + u16 unk2; + u16 unk4; + u8 unk6; + u8 unk7; +} OAMObj; + +typedef struct { + u8 field_0x0; + u8 field_0x1; + u8 spritesOffset; + u8 updated; + u16 _4; + u16 _6; + u8 _0[0x18]; + struct OamData oam[0x80]; + OAMObj unk[0x100]; + u8 fill[10]; + u8 _426; + u8 _427; + u8 _428[6]; + u8 _42e; +} OAMSettings; +extern OAMSettings gUnk_03000000; + #endif diff --git a/linker.ld b/linker.ld index 76401066..24bb0cea 100644 --- a/linker.ld +++ b/linker.ld @@ -312,26 +312,25 @@ SECTIONS { /* handwritten assembly */ asm/crt0.o(.text); - asm/code_08000108.o(.text); + asm/veneer.o(.text); data/data_08000360.o(.rodata); asm/code_08000E44.o(.text); - asm/libgcc.o(.text); + asm/lib/libgcc.o(.text); asm/code_08000F10.o(.text); data/data_08000F54.o(.rodata); - asm/code_080011C4.o(.text); + asm/enemy.o(.text); data/gfx/sprite_ptrs.o(.rodata); asm/code_08003FC4.o(.text); asm/code_080043E8.o(.text); data/gfx/link_animations.o(.rodata); asm/code_08007CAC.o(.text); data/data_08007DF4.o(.rodata); - asm/code_0800857C.o(.text); + asm/player.o(.text); /* scripts */ data/scripts.o(.text); - asm/code_08016984.o(.text); + asm/script.o(.text); asm/projectileUpdate.o(.text); - /* C source compiled with interworking */ src/interrupts.o(.text); src/playerItem.o(.text); @@ -340,29 +339,22 @@ SECTIONS { src/npc.o(.text); src/collision.o(.text); /* C source compiled without interworking */ - asm/code_08018500.o(.text); - src/code_08018C58.o(.text); + asm/kinstone.o(.text); + src/kinstone.o(.text); src/playerItem/playerItem11.o(.text); src/playerItem/playerItemBow.o(.text); src/playerItem/playerItemSwordBeam.o(.text); - asm/code_0801967C.o(.text); + asm/beanstalkSubtask.o(.text); src/playerItem/playerItemBomb.o(.text); src/playerItem/playerItem3.o(.text); src/playerItem/playerItemC.o(.text); src/playerItem/playerItemSwordSpin.o(.text); src/playerItem/playerItemCellOverwriteSet.o(.text); - asm/code_0801C1D4.o(.text); - asm/drawUI.o(.text); - asm/code_0801C370.o(.text); - asm/drawRupees.o(.text); - asm/code_0801C5E0.o(.text); - asm/drawHealth.o(.text); - asm/sub_0801C824.o(.text); - asm/code_0801C85C.o(.text); - src/ezloNag.o(.text); - asm/code_0801CEC0.o(.text); + asm/ui.o(.text); + src/ui.o(.text); + asm/code_0801CEC0.o(.text); /* utils.c */ src/utils.o(.text); - asm/code_0801D79C.o(.text); + asm/utils.o(.text); /* enemies */ src/enemy/octorok.o(.text); src/enemy/chuchu.o(.text); @@ -473,14 +465,13 @@ SECTIONS { src/enemy/treeItem.o(.text); asm/enemy/enemy66.o(.text); /* END enemies */ - src/code_08049CD4.o(.text); + src/code_08049CD4.o(.text); /* enemyUtils.c */ asm/code_08049D30.o(.text); src/enemyUtils.o(.text); - asm/code_0804A720.o(.text); - asm/sub_0804AA30.o(.text); + asm/enemyUtils.o(.text); src/createEnemy.o(.text); - src/code_0804AA84.o(.text); - asm/code_0804AA84.o(.text); + src/enterPortalSubtask.o(.text); + asm/enterPortalSubtask.o(.text); src/room.o(.text); src/roomInit.o(.text); src/fade.o(.text); @@ -491,13 +482,12 @@ SECTIONS { asm/modBombs.o(.text); asm/modArrows.o(.text); src/code_0805436C.o(.text); - asm/code_0805436C.o(.text); + asm/code_0805436C.o(.text); /* game.c */ src/playerItem/playerItemLantern.o(.text); - asm/code_08054C04.o(.text); + asm/code_08054C04.o(.text); /* subtask */ src/sub_08055E08.o(.text); src/main.o(.text); src/message.o(.text); - asm/code_08056418.o(.text); src/manager/manager1.o(.text); src/manager/manager2.o(.text); src/manager/manager3.o(.text); @@ -557,8 +547,9 @@ SECTIONS { src/manager/manager39.o(.text); src/entity.o(.text); src/code_0805EC04.o(.text); - asm/code_0805EC04.o(.text); - src/code_0805F9A0.o(.text); + asm/code_0805EC04.o(.text); /* objaffine? */ + asm/text.o(.text); + src/text.o(.text); src/debugScreen.o(.text); src/playerItem/playerItem14.o(.text); /* npcs */ @@ -651,11 +642,10 @@ SECTIONS { src/npc/npc58.o(.text); /* END npcs */ src/npcUtils.o(.text); - src/coord.o(.text); - asm/code_0806FA6C.o(.text); + src/coord.o(.text); /* physics? */ + asm/coord.o(.text); src/playerItem/playerItem12.o(.text); src/playerItem/playerItemPacciCane.o(.text); - asm/code_0807059C.o(.text); src/player.o(.text); src/item.o(.text); src/item/itemDebug.o(.text); @@ -673,7 +663,7 @@ SECTIONS { src/item/itemGustJar.o(.text); src/item/itemMoleMitts.o(.text); src/item/itemJarEmpty.o(.text); - asm/code_08077698.o(.text); + asm/playerUtils.o(.text); asm/respawnPlayer.o(.text); src/code_08077B98.o(.text); asm/code_08077B98.o(.text); @@ -683,14 +673,14 @@ SECTIONS { asm/code_0807B9B8.o(.text); src/sub_0807CA18.o(.text); asm/getInventoryValue.o(.text); - asm/code_0807CAA0.o(.text); + asm/code_0807CAA0.o(.text); /* playerUtils.c */ src/flags.o(.text); src/save.o(.text); - src/scroll.o(.text); + src/screenTilemap.o(.text); src/script.o(.text); - asm/code_0807F0D8.o(.text); - src/code_0808091C.o(.text); - asm/code_0808091C.o(.text); + asm/scroll.o(.text); + src/scroll.o(.text); + asm/code_0808091C.o(.text); /* scroll.c */ /* objects */ src/object/itemOnGround.o(.text); asm/object/deathFx.o(.text); @@ -754,7 +744,7 @@ SECTIONS { asm/object/bossDoor.o(.text); asm/object/object3A.o(.text); asm/object/macroMushroomStalks.o(.text); - asm/object/object75.o(.text); /* 75 and 76 are mislocated in base game */ + asm/object/object75.o(.text); /* 75 and 76 are mislocated in object table */ asm/object/object76.o(.text); asm/object/code_0808C964.o(.text); asm/object/macroPlayer.o(.text); @@ -895,20 +885,19 @@ SECTIONS { asm/object/enemyItem.o(.text); asm/object/objectC1.o(.text); /* END objects */ - asm/sub_080A276C.o(.text); src/objectUtils.o(.text); - asm/code_080A29BC.o(.text); + asm/objectUtils.o(.text); src/playerItem/playerItemShield.o(.text); src/playerItem/playerItem15.o(.text); #ifdef DEMO_USA src/demoScreen.o(.text); #endif src/sound.o(.text); - asm/code_080A3480.o(.text); - src/sub_080A3B84.o(.text); - asm/code_080A3BD0.o(.text); - src/sub_080A554C.o(.text); - asm/code_080A5574.o(.text); + asm/staffroll.o(.text); + src/subtask.o(.text); + asm/subtask.o(.text); + src/subtask2.o(.text); + asm/subtask2.o(.text); /* subtask.c */ src/playerItem/playerItemSword.o(.text); src/playerItemUtils.o(.text); src/projectileUtils.o(.text); @@ -951,15 +940,15 @@ SECTIONS { src/projectile/v3TennisBallProjectile.o(.text); src/playerItem/playerItem10.o(.text); src/playerItem/playerItem13.o(.text); - src/intro.o(.text); - asm/sub_080AD8F0.o(.text); - asm/code_080AD90C.o(.text); + src/title.o(.text); + src/affine.o(.text); src/playerItem/playerItemGustJar.o(.text); - asm/code_080ADD30.o(.text); + asm/vram.o(.text); + asm/movement.o(.text); /* library functions */ - asm/m4a_asm.o(.text); + asm/lib/m4a_asm.o(.text); src/gba/m4a.o(.text); - asm/libagbsyscall.o(.text); + asm/lib/libagbsyscall.o(.text); src/eeprom.o(.text); *libc.a:memcpy.o(.text); /* handwritten assembly in arm mode */ @@ -1717,7 +1706,7 @@ SECTIONS { src/playerItem/playerItem10.o(.rodata); src/flagDebug.o(.rodata); data/const/playerItem/playerItem13.o(.rodata); - src/intro.o(.rodata); + src/title.o(.rodata); #ifdef DEMO_JP data/data_081320FC.o(.rodata); #endif diff --git a/src/affine.c b/src/affine.c new file mode 100644 index 00000000..3339cc09 --- /dev/null +++ b/src/affine.c @@ -0,0 +1,72 @@ +#include "global.h" +#include "structures.h" +#include "main.h" +#include "room.h" +#include "screen.h" + +extern u32 gFrameObjLists[]; + +extern void gUnk_03006164(void); +extern void gUnk_0300659C(OAMCommand*, void*); +extern void gUnk_03006580(OAMCommand*, u32, u32); + +// regalloc +NONMATCH("asm/non_matching/vram/sub_080AD8F0.inc", void* sub_080AD8F0(u32 sprite, u32 frame)) { + u32 x = gFrameObjLists[sprite]; + u8* y = (u8*)&gFrameObjLists[frame]; + u32 tmp = *(u32*)&y[x]; + + return (u8*)gFrameObjLists + tmp; +} +END_NONMATCH + +void FlushSprites(void) { + gUnk_03000000.updated = 0; +} + +NONMATCH("asm/non_matching/vram/sub_080AD918.inc", void sub_080AD918(void)) { + s32 rem; + u16* d; + + if (gMain.ticks.HALF.LO == 0) { + gUnk_03000000.unk[0x20].unk0 = gMain.ticks.HALF.LO; + gUnk_03000000.unk[0x48].unk4 = gMain.ticks.HALF.LO; + gUnk_03000000.unk[0x71].unk0 = gMain.ticks.HALF.LO; + gUnk_03000000.unk[0x99].unk4 = gMain.ticks.HALF.LO; + } else { + gMain.ticks.HALF.LO--; + } + + rem = 0x80 - gUnk_03000000.updated; + for (d = (u16*)&gUnk_03000000.oam[0x80 + gUnk_03000000.updated]; rem > 0; rem--) { + *d = 0x2A0; + (u8*)d += 6; + } + if (gUnk_03000000.unk[0].unk7) { + gUnk_03000000.unk[0].unk7 = 0; + ObjAffineSet((struct ObjAffineSrcData*)gUnk_03000000.unk, &gUnk_03000000.oam[0].affineParam, 32, 8); + } + gUnk_03000000.field_0x0 = 1; +} +END_NONMATCH + +void sub_080AD9B0(void) { + void (*fn)(void); + + gUnk_03000000._0[6] = gScreenTransition.field_0x2c[3] ? 15 : 0; + gUnk_03000000._4 = gRoomControls.aff_x + gRoomControls.roomScrollX; + gUnk_03000000._6 = gRoomControls.aff_y + gRoomControls.roomScrollY; + gUnk_03000000.field_0x1++; + fn = &gUnk_03006164; + fn(); +} + +void sub_080ADA04(OAMCommand* cmd, void* dst) { + void (*fn)(OAMCommand*, void*) = gUnk_0300659C; + fn(cmd, dst); +} + +void sub_080ADA14(u32 a1, u32 a2) { + void (*fn)(OAMCommand*, u32, u32) = gUnk_03006580; + fn(&gOamCmd, a1, a2); +} diff --git a/src/code_0805EC04.c b/src/code_0805EC04.c index d49bb996..1dfb2465 100644 --- a/src/code_0805EC04.c +++ b/src/code_0805EC04.c @@ -1,25 +1,10 @@ #include "entity.h" #include "player.h" - -typedef struct { - u16 unk0; - u16 unk2; - u16 unk4; - u8 unk6; - u8 unk7; -} VStruct; - -typedef struct { - u8 _0[0x20]; - struct OamData oam[0x80]; - VStruct unk[0x100]; -} UStruct; - -extern UStruct gUnk_03000000; +#include "structures.h" bool32 sub_0805EC04(Entity* this) { u32 i = 1; - UStruct* temp = &gUnk_03000000; + OAMSettings* temp = &gUnk_03000000; u32 j = 1; for (; i < 0x20; i++) { if (temp->unk[i].unk6 == 0) { @@ -34,7 +19,7 @@ bool32 sub_0805EC04(Entity* this) { void sub_0805EC60(Entity* this) { u8 temp; - UStruct* temp2; + OAMSettings* temp2; if (this->spriteRendering.b0 != 0) { this->spriteRendering.b0 = 0; diff --git a/src/code_0808091C.c b/src/code_0808091C.c deleted file mode 100644 index fd82dfa6..00000000 --- a/src/code_0808091C.c +++ /dev/null @@ -1,131 +0,0 @@ -#include "global.h" -#include "entity.h" -#include "structures.h" -#include "functions.h" -#include "game.h" - -extern void sub_08080BC4(void); - -extern u32 gUnk_0200B650; -extern u32 gUnk_02025EB0; -extern u8 gUpdateVisibleTiles; - -void sub_080808D8(void) { - gScreenTransition.transitionType = TRANSITION_DEFAULT; -} - -void sub_080808E4(void) { - if (sub_08052638(gScreenTransition.player_status.area_next)) { - gScreenTransition.transitionType = TRANSITION_DEFAULT; - } else { - gScreenTransition.transitionType = TRANSITION_FADE_BLACK; - } -} - -void sub_08080904(void) { - gScreenTransition.transitionType = TRANSITION_CUT; -} - -void sub_08080910(void) { - gScreenTransition.transitionType = TRANSITION_CUT; -} - -void sub_0808091C(ScreenTransitionData* param_1, u32 param_2) { - DoExitTransition(param_1); - gScreenTransition.transitionType = param_2; -} - -void sub_08080930(void) - -{ - gRoomControls.unk3 = 5; - gRoomControls.unk4 = 0; - gRoomControls.unk2 = 2; - gRoomControls.unk_10 = 0; - SetInitializationPriority(); -} - -u32* GetLayerByIndex(u32 param_1) { - - if (param_1 == 2) { - return &gUnk_0200B650; - } else { - return &gUnk_02025EB0; - } -} - -void InitScreenShake(u32 time, u32 magnitude) { - gRoomControls.screenShakeTime = time; - gRoomControls.screenShakeMagnitude = magnitude & 7; -} - -void sub_08080974(u32 arg0, u32 arg1) { - u32 var0, var1; - RoomControls* roomControls = &gRoomControls; - - var0 = roomControls->roomOriginX; - if (arg0 <= var0 + 120) { - roomControls->roomScrollX = var0; - } else { - var0 += roomControls->width; - var1 = var0 - 120; - if (arg0 < var1) { - var1 = arg0; - } - roomControls->roomScrollX = var1 - 120; - } - - var0 = roomControls->roomOriginY; - if (arg1 <= var0 + 80) { - roomControls->roomScrollY = var0; - } else { - var0 += roomControls->height; - var1 = var0 - 80; - if (arg1 < var1) { - var1 = arg1; - } - roomControls->roomScrollY = var1 - 80; - } - - sub_080809D4(); - gUpdateVisibleTiles = 1; -} - -void sub_080809D4(void) { - register Entity* target asm("r4"); - int x, y; - int var1, var0; - RoomControls* roomControls = &gRoomControls; - roomControls->scroll_flags &= ~4; - - target = roomControls->cameraTarget; - x = target->x.HALF.HI; - var0 = roomControls->roomOriginX; - if (x <= var0 + 120) { - roomControls->roomScrollX = var0; - } else { - var0 += roomControls->width; - var1 = var0 - 120; - if (x < var1) { - var1 = (u16)target->x.HALF.HI; - } - roomControls->roomScrollX = var1 - 120; - } - - target = roomControls->cameraTarget; - y = target->y.HALF.HI; - var0 = roomControls->roomOriginY; - if (y <= var0 + 80) { - roomControls->roomScrollY = var0; - } else { - var0 += roomControls->height; - var1 = var0 - 80; - if (y < var1) { - var1 = (u16)target->y.HALF.HI; - } - roomControls->roomScrollY = var1 - 80; - } - - sub_08080BC4(); - gUpdateVisibleTiles = 1; -} diff --git a/src/createEnemy.c b/src/createEnemy.c index b67546a1..4550f3ad 100644 --- a/src/createEnemy.c +++ b/src/createEnemy.c @@ -1,5 +1,12 @@ -#include "global.h" -#include "entity.h" +#include "enemy.h" + +void sub_0804AA30(Entity* entity, void (*fntable[])()) { + u32 idx; + entity->bitfield &= ~0x80; + idx = GetNextFunction(entity); + entity->bitfield |= 0x80; + fntable[idx](entity); +} Entity* CreateEnemy(u32 subtype, u32 form) { Entity* enemy; diff --git a/src/code_0804AA84.c b/src/enterPortalSubtask.c similarity index 100% rename from src/code_0804AA84.c rename to src/enterPortalSubtask.c diff --git a/src/entity.c b/src/entity.c index 2902c057..41d9b4f1 100644 --- a/src/entity.c +++ b/src/entity.c @@ -220,7 +220,6 @@ void UpdateManagers() { } void EraseAllEntities() { - extern u8 gUnk_03000000[]; DeleteAllEntities(); MemClear(&gPriorityHandler, 12); MemClear(&gPlayerEntity, 10880); @@ -228,9 +227,9 @@ void EraseAllEntities() { sub_0805E98C(); gEntCount = 0; gManagerCount = 0; - gUnk_03000000[0x427] = 1; - gUnk_03000000[0x426] = 1; - gUnk_03000000[0x42e] = 1; + gUnk_03000000.unk[0].unk7 = 1; + gUnk_03000000.unk[0].unk6 = 1; + gUnk_03000000.unk[1].unk6 = 1; } ASM_FUNC("./asm/getEmptyEntity.s", Entity* GetEmptyEntity()); diff --git a/src/fade.c b/src/fade.c index 583294a3..f6abc39c 100644 --- a/src/fade.c +++ b/src/fade.c @@ -1,15 +1,9 @@ #include "global.h" +#include "structures.h" #include "functions.h" #include "screen.h" #include "utils.h" -typedef struct { - u8 field_0x0; - u8 field_0x1; - u8 spritesOffset; -} struct_03000000; -extern struct_03000000 gUnk_03000000; - static u32 sub_080501C0(FadeControl* ctl); static u32 sub_08050230(FadeControl* ctl); static u32 sub_080502A4(FadeControl* ctl); diff --git a/src/interrupts.c b/src/interrupts.c index 253c0aa0..53463318 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -42,12 +42,6 @@ extern void sub_08077FEC(u32); void gIntrMain(void); -struct { - u8 update; - u8 _0[0x1c]; - struct OamData oam[0x80]; -} extern gUnk_03000000; - struct { u8 ready; u16* src; @@ -105,8 +99,8 @@ void sub_08016BF8(void) { } void UpdateDisplayControls(void) { - if (gUnk_03000000.update && (gScreen.lcd.displayControl & DISPCNT_OBJ_ON)) { - gUnk_03000000.update = 0; + if (gUnk_03000000.field_0x0 && (gScreen.lcd.displayControl & DISPCNT_OBJ_ON)) { + gUnk_03000000.field_0x0 = 0; DmaCopy32(3, &gUnk_03000000.oam, OAM, OAM_SIZE); } sub_08016CA8(&gScreen.bg0); diff --git a/src/code_08018C58.c b/src/kinstone.c similarity index 100% rename from src/code_08018C58.c rename to src/kinstone.c diff --git a/src/main.c b/src/main.c index 9cf1eafb..9a2a5dbe 100644 --- a/src/main.c +++ b/src/main.c @@ -80,7 +80,7 @@ void AgbMain(void) { } } - gMain.ticks++; + gMain.ticks.HWORD++; sScreenHandlers[gMain.screen](); MessageMain(); FadeMain(); diff --git a/src/manager/manager14.c b/src/manager/manager14.c index 47baf87c..05c6a46e 100644 --- a/src/manager/manager14.c +++ b/src/manager/manager14.c @@ -179,7 +179,7 @@ void sub_0805A1D8(Manager14* this) { gScreen.bg3.yOffset = gRoomControls.bg3OffsetY.HALF.HI; if (gScreen.lcd.displayControl & DISPCNT_BG3_ON) { sub_0805A114(6, this->unk_20 >> 1); - if (this->unk_22 == 0 && (gMain.ticks & 0x1F) == 0) { + if (this->unk_22 == 0 && (gMain.ticks.HWORD & 0x1F) == 0) { this->unk_24++; this->unk_24 &= 3; gScreen.controls.alphaBlend = gUnk_0810859A[this->unk_24]; diff --git a/src/message.c b/src/message.c index 3560df71..085f0011 100644 --- a/src/message.c +++ b/src/message.c @@ -807,3 +807,11 @@ NONMATCH("asm/non_matching/textbox/sub_08056FEC.inc", u32 sub_08056FEC(u32 this, return iVar4; } END_NONMATCH + +void sub_08057044(u32 a1, u32* a2, u32 a3) { + u32 z[2]; + u32 tmp = sub_08056FEC(a1, (u8*)z); + u32 first = z[0]; + first <<= 8 * (3 - tmp); + *a2 = first | a3; +} diff --git a/src/objectUtils.c b/src/objectUtils.c index 86fe0a2c..3e66732e 100644 --- a/src/objectUtils.c +++ b/src/objectUtils.c @@ -10,6 +10,36 @@ extern const Hitbox* const gObjectHitboxes[]; u32 LoadObjectSprite(Entity* this, s32 type, const ObjectDefinition* definition); extern const ObjectDefinition gObjectDefinitions[]; +extern Entity* sub_0805E744(void); + +Entity* sub_080A276C(Entity* parent, u32 type, u32 type2) { + Entity* e = sub_0805E744(); + if (e != NULL) { + e->id = 0xC1; + e->kind = 6; + e->type = type; + e->type2 = type2; + e->parent = parent; + AppendEntityToList(e, 6); + PrependEntityToList(e, 6); + CopyPosition(&gPlayerEntity, e); + gPriorityHandler.sys_priority = 6; + gUnk_02034490[0] = 1; + e->field_0x68.HALF.HI = gPlayerEntity.flags; + e->field_0x68.HALF.LO = gPlayerEntity.spriteSettings.draw; + e->field_0x6a.HALF.LO = gPlayerEntity.iframes; + e->field_0x6a.HALF.HI = gPlayerState.field_0x7; + e->field_0x6c.HALF.LO = gPlayerState.keepFacing; + e->field_0x6c.HALF.HI = gPlayerState.field_0xa; + e->field_0x6e.HALF.LO = gPlayerState.field_0x27[0]; + e->field_0x6e.HALF.HI = gPlayerState.field_0x1a[0]; + e->field_0x70.WORD = gPlayerState.flags; + e->field_0x74.HALF.LO = gPlayerState.field_0x82[8]; + gPlayerEntity.flags &= ~ENT_COLLIDE; + gPlayerEntity.spriteSettings.draw = 0; + } + return e; +} void ObjectInit(Entity* this) { const ObjectDefinition* definition = &gObjectDefinitions[this->id]; diff --git a/src/playerItem/playerItemPacciCane.c b/src/playerItem/playerItemPacciCane.c index 0e15c369..23d16cd3 100644 --- a/src/playerItem/playerItemPacciCane.c +++ b/src/playerItem/playerItemPacciCane.c @@ -1,10 +1,16 @@ #include "entity.h" #include "sound.h" #include "functions.h" +#include "utils.h" +#include "message.h" +#include "save.h" extern void (*const gUnk_0811B9D8[])(Entity*); void sub_080704FC(Entity*); +extern void sub_080A4D88(void); + +extern u8 gUnk_02034490[0x18]; void PlayerItemPacciCane(Entity* this) { gUnk_0811B9D8[this->action](this); @@ -19,3 +25,26 @@ void sub_080704D4(Entity* this) { } ASM_FUNC("asm/non_matching/playerItemPacciCane/sub_080704FC.inc", void sub_080704FC(Entity* this)) + +void sub_0807059C() { + MemClear(gUnk_02034490, sizeof(gUnk_02034490)); +} + +NONMATCH("asm/non_matching/playerItemPacciCane/sub_080705AC.inc", u32 sub_080705AC(void)) { + if (!((gInput.newKeys & 8) == 0 || gFadeControl.active || gUnk_02034490[0] || (gMessage.doTextBox & 0x7F) != 0 || + !gSave.stats.health || !gSave.fillerD0[34] || gPlayerState.controlMode || gPriorityHandler.priority_timer)) { + u32 tmp = gPlayerState.framestate ? gPlayerState.framestate : gPlayerState.framestate_last; + switch (tmp) { + case 18: + case 19: + case 21: + case 22: + case 28: + return 0; + } + sub_080A4D88(); + return 1; + } + return 0; +} +END_NONMATCH diff --git a/src/screenTilemap.c b/src/screenTilemap.c new file mode 100644 index 00000000..d6079438 --- /dev/null +++ b/src/screenTilemap.c @@ -0,0 +1,7 @@ +#include "global.h" + +ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D280.inc", void sub_0807D280(u32 unk_1, u32 unk_2)) + +ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D46C.inc", void sub_0807D46C(u32 unk_1, u32 unk_2)) + +ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D6D8.inc", void sub_0807D6D8(u32 unk_1, u32 unk_2)) diff --git a/src/scroll.c b/src/scroll.c index d6079438..89057623 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -1,7 +1,128 @@ #include "global.h" +#include "entity.h" +#include "structures.h" +#include "functions.h" +#include "game.h" -ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D280.inc", void sub_0807D280(u32 unk_1, u32 unk_2)) +extern void sub_08080BC4(void); -ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D46C.inc", void sub_0807D46C(u32 unk_1, u32 unk_2)) +extern u32 gUnk_0200B650; +extern u32 gUnk_02025EB0; +extern u8 gUpdateVisibleTiles; -ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D6D8.inc", void sub_0807D6D8(u32 unk_1, u32 unk_2)) +void sub_080808D8(void) { + gScreenTransition.transitionType = TRANSITION_DEFAULT; +} + +void sub_080808E4(void) { + if (sub_08052638(gScreenTransition.player_status.area_next)) { + gScreenTransition.transitionType = TRANSITION_DEFAULT; + } else { + gScreenTransition.transitionType = TRANSITION_FADE_BLACK; + } +} + +void sub_08080904(void) { + gScreenTransition.transitionType = TRANSITION_CUT; +} + +void sub_08080910(void) { + gScreenTransition.transitionType = TRANSITION_CUT; +} + +void sub_0808091C(ScreenTransitionData* param_1, u32 param_2) { + DoExitTransition(param_1); + gScreenTransition.transitionType = param_2; +} + +void sub_08080930(void) { + gRoomControls.unk3 = 5; + gRoomControls.unk4 = 0; + gRoomControls.unk2 = 2; + gRoomControls.unk_10 = 0; + SetInitializationPriority(); +} + +u32* GetLayerByIndex(u32 param_1) { + if (param_1 == 2) { + return &gUnk_0200B650; + } else { + return &gUnk_02025EB0; + } +} + +void InitScreenShake(u32 time, u32 magnitude) { + gRoomControls.screenShakeTime = time; + gRoomControls.screenShakeMagnitude = magnitude & 7; +} + +void sub_08080974(u32 arg0, u32 arg1) { + u32 var0, var1; + RoomControls* roomControls = &gRoomControls; + + var0 = roomControls->roomOriginX; + if (arg0 <= var0 + 120) { + roomControls->roomScrollX = var0; + } else { + var0 += roomControls->width; + var1 = var0 - 120; + if (arg0 < var1) { + var1 = arg0; + } + roomControls->roomScrollX = var1 - 120; + } + + var0 = roomControls->roomOriginY; + if (arg1 <= var0 + 80) { + roomControls->roomScrollY = var0; + } else { + var0 += roomControls->height; + var1 = var0 - 80; + if (arg1 < var1) { + var1 = arg1; + } + roomControls->roomScrollY = var1 - 80; + } + + sub_080809D4(); + gUpdateVisibleTiles = 1; +} + +void sub_080809D4(void) { + register Entity* target asm("r4"); + int x, y; + int var1, var0; + RoomControls* roomControls = &gRoomControls; + roomControls->scroll_flags &= ~4; + + target = roomControls->cameraTarget; + x = target->x.HALF.HI; + var0 = roomControls->roomOriginX; + if (x <= var0 + 120) { + roomControls->roomScrollX = var0; + } else { + var0 += roomControls->width; + var1 = var0 - 120; + if (x < var1) { + var1 = (u16)target->x.HALF.HI; + } + roomControls->roomScrollX = var1 - 120; + } + + target = roomControls->cameraTarget; + y = target->y.HALF.HI; + var0 = roomControls->roomOriginY; + if (y <= var0 + 80) { + roomControls->roomScrollY = var0; + } else { + var0 += roomControls->height; + var1 = var0 - 80; + if (y < var1) { + var1 = (u16)target->y.HALF.HI; + } + roomControls->roomScrollY = var1 - 80; + } + + sub_08080BC4(); + gUpdateVisibleTiles = 1; +} diff --git a/src/sub_080A3B84.c b/src/subtask.c similarity index 100% rename from src/sub_080A3B84.c rename to src/subtask.c diff --git a/src/sub_080A554C.c b/src/subtask2.c similarity index 100% rename from src/sub_080A554C.c rename to src/subtask2.c diff --git a/src/code_0805F9A0.c b/src/text.c similarity index 99% rename from src/code_0805F9A0.c rename to src/text.c index 1ba583b5..7dc44443 100644 --- a/src/code_0805F9A0.c +++ b/src/text.c @@ -141,7 +141,6 @@ void sub_0805F918(u32 idx, u32 idx2, void* dest) { } u32 sub_0805F9A0(u32 r0) { - if (gSaveHeader->gameLanguage == 0) { u16* val = &gUnk_081092D4; u32 i = 0; diff --git a/src/intro.c b/src/title.c similarity index 100% rename from src/intro.c rename to src/title.c diff --git a/src/ezloNag.c b/src/ui.c similarity index 100% rename from src/ezloNag.c rename to src/ui.c From 0e9a7a5e664f0e7de1477ca36a8184dd0556ef8c Mon Sep 17 00:00:00 2001 From: theo3 Date: Wed, 29 Dec 2021 02:59:02 -0800 Subject: [PATCH 061/168] strip fake linker symbols --- asm/beanstalkSubtask.s | 2 +- asm/code_08003FC4.s | 8 +-- asm/code_08077B98.s | 4 +- asm/enemy.s | 6 +- asm/enemy/armos.s | 4 +- asm/enemy/enemy4D.s | 4 +- asm/fileScreen.s | 8 +-- asm/intr.s | 4 +- asm/non_matching/manager16/sub_0805ACC0.inc | 4 +- asm/non_matching/sub_0806FOA4.inc | 4 +- asm/non_matching/sub_08077F24.inc | 2 +- asm/non_matching/textbox/sub_08056750.inc | 2 +- asm/object/enemyItem.s | 4 +- asm/object/fan.s | 4 +- asm/object/object36.s | 4 +- asm/player.s | 8 +-- asm/playerUtils.s | 4 +- asm/scroll.s | 2 +- data/data_081320FC.s | 10 --- include/entity.h | 3 - include/fileScreen.h | 1 - include/player.h | 1 - include/room.h | 26 ++++++-- include/save.h | 3 +- include/screen.h | 1 - linker.ld | 37 ----------- src/demoScreen.c | 2 - src/enemy/code_080300AC.c | 18 ++--- src/fileScreen.c | 2 +- src/flags.c | 8 +-- src/game.c | 25 ++++--- src/interrupts.c | 3 +- src/manager/manager1A.c | 12 ++-- src/manager/manager27.c | 4 +- src/manager/manager28.c | 2 +- src/manager/manager2C.c | 4 +- src/manager/manager2D.c | 3 - src/manager/managerB.c | 4 +- src/manager/managerC.c | 4 +- src/message.c | 3 - src/npc/phonograph.c | 2 - src/object/fileScreenObjects.c | 2 +- src/object/minecart.c | 12 +--- src/object/warpPoint.c | 4 +- src/roomInit.c | 4 +- src/sub_0807CA18.c | 4 +- src/title.c | 73 +++++++++++++++++++-- 47 files changed, 172 insertions(+), 183 deletions(-) delete mode 100755 data/data_081320FC.s diff --git a/asm/beanstalkSubtask.s b/asm/beanstalkSubtask.s index 47feec01..601a47e1 100644 --- a/asm/beanstalkSubtask.s +++ b/asm/beanstalkSubtask.s @@ -168,7 +168,7 @@ sub_080197AC: @ 0x080197AC bx lr .align 2, 0 _080197C4: .4byte gUnk_02025EB0 -_080197C8: .4byte gBGAffSettings +_080197C8: .4byte gScreen + 0x20 _080197CC: .4byte gUnk_080B77C0 _080197D0: .4byte gUnk_0200B650 diff --git a/asm/code_08003FC4.s b/asm/code_08003FC4.s index 9b66ce10..718c0306 100644 --- a/asm/code_08003FC4.s +++ b/asm/code_08003FC4.s @@ -195,10 +195,10 @@ sub_080040EC: @ 0x080040EC b _080040F2 _080040F2: push {r2, r3, r4, lr} - ldr r4, _08004374 @ =gUnk_03000BF6 + ldr r4, _08004374 @ =gRoomControls + 6 ldrh r4, [r4] subs r2, r2, r4 - ldr r4, _08004378 @ =gUnk_03000BF8 + ldr r4, _08004378 @ =gRoomControls + 8 ldrh r4, [r4] subs r3, r3, r4 ldr r4, _0800437C @ =0x000003F0 @@ -607,8 +607,8 @@ _08004364: .4byte gUnk_02024048 _08004368: .4byte gRoomControls _0800436C: .4byte 0x0000016E _08004370: .4byte 0x0000011E -_08004374: .4byte gUnk_03000BF6 -_08004378: .4byte gUnk_03000BF8 +_08004374: .4byte gRoomControls + 6 +_08004378: .4byte gRoomControls + 8 _0800437C: .4byte 0x000003F0 _08004380: .4byte gUnk_08000248 _08004384: .4byte 0x000FFFFF diff --git a/asm/code_08077B98.s b/asm/code_08077B98.s index 6143589a..8228eaf7 100644 --- a/asm/code_08077B98.s +++ b/asm/code_08077B98.s @@ -9,7 +9,7 @@ thumb_func_start sub_08077FEC sub_08077FEC: @ 0x08077FEC push {lr} - ldr r0, _08078000 @ =gUnk_03004020 + ldr r0, _08078000 @ =gPlayerState + 0xA0 ldr r2, _08078004 @ =gUnk_0811BFE8 ldrb r1, [r0] lsls r1, r1, #2 @@ -18,7 +18,7 @@ sub_08077FEC: @ 0x08077FEC bl _call_via_r1 pop {pc} .align 2, 0 -_08078000: .4byte gUnk_03004020 +_08078000: .4byte gPlayerState + 0xA0 _08078004: .4byte gUnk_0811BFE8 thumb_func_start sub_08078008 diff --git a/asm/enemy.s b/asm/enemy.s index 45532f9d..d8bdd174 100644 --- a/asm/enemy.s +++ b/asm/enemy.s @@ -1135,12 +1135,12 @@ _080026A0: .4byte gUnk_08002342 gUnk_080026A4:: @ normal entities .4byte gUnk_020000B0 @ enemy target? (player) - .4byte gUnk_03003D68 @ first linked list - .4byte gUnk_03003DB0 @ last linked list + .4byte gEntityLists - 8 @ first linked list + .4byte gEntityLists + 64 @ last linked list .4byte gUnk_03005FBC @ entity table @ managers .4byte gUnk_020000B0 - .4byte gUnk_03003DA8 + .4byte gEntityLists + 56 .4byte gCollidableCount .4byte gUnk_03005FBC diff --git a/asm/enemy/armos.s b/asm/enemy/armos.s index 6063bff6..c6f036f6 100644 --- a/asm/enemy/armos.s +++ b/asm/enemy/armos.s @@ -130,7 +130,7 @@ sub_0803026C: @ 0x0803026C strb r0, [r3] ldrb r2, [r3] lsls r0, r2, #2 - ldr r5, _080302A8 @ =gUnk_0300110C + ldr r5, _080302A8 @ =armos_data adds r0, r0, r5 ldrh r1, [r0] cmp r1, #0 @@ -150,7 +150,7 @@ sub_0803026C: @ 0x0803026C str r0, [r2] b _080302BA .align 2, 0 -_080302A8: .4byte gUnk_0300110C +_080302A8: .4byte gScreenTransition + 0x6c _080302AC: adds r0, r4, #0 adds r0, #0x84 diff --git a/asm/enemy/enemy4D.s b/asm/enemy/enemy4D.s index f7b116a9..14c588b4 100644 --- a/asm/enemy/enemy4D.s +++ b/asm/enemy/enemy4D.s @@ -474,7 +474,7 @@ _0803EF1C: .4byte gUnk_020000B0 sub_0803EF20: @ 0x0803EF20 push {r4, r5, r6, r7, lr} adds r5, r0, #0 - ldr r6, _0803EF5C @ =gUnk_03003D80 + ldr r6, _0803EF5C @ =gEntityLists + 16 ldr r4, [r6, #4] cmp r4, r6 beq _0803EF6A @@ -503,7 +503,7 @@ _0803EF2E: strb r0, [r1] b _0803EF6C .align 2, 0 -_0803EF5C: .4byte gUnk_03003D80 +_0803EF5C: .4byte gEntityLists + 16 _0803EF60: .4byte gUnk_080D08C8 _0803EF64: ldr r4, [r4, #4] diff --git a/asm/fileScreen.s b/asm/fileScreen.s index c7b8a3ed..699cf86a 100755 --- a/asm/fileScreen.s +++ b/asm/fileScreen.s @@ -39,10 +39,10 @@ HandleGameplayScreen: @ 08051A28 _08051A64: pop {r4, pc} .byte 0x00, 0x00 -_08051A68: .4byte gUnk_030010A0 +_08051A68: .4byte gScreenTransition _08051A6C: .4byte gUnk_080FC9D8 _08051A70x: .4byte gMain -_08051A74x: .4byte gUnk_02002A40 +_08051A74x: .4byte gSave .else thumb_func_start HandleGameplayScreen HandleGameplayScreen: @ 0x08051988 @@ -341,7 +341,7 @@ _08051B5A: ldr r0, _08051BC8 @ =gUnk_02034490 strb r4, [r0] .ifdef DEMO_JP - ldr r0, _08051C30 @ =gUnk_030010A0 + ldr r0, _08051C30 @ =gScreenTransition adds r0,#0x31 ldrb r0,[r0,#0x0] cmp r0,#0x0 @@ -408,7 +408,7 @@ _08051BC0: .4byte 0x800B0000 _08051BC4: .4byte gMain _08051BC8: .4byte gUnk_02034490 .ifdef DEMO_JP -_08051C30: .4byte gUnk_030010A0 +_08051C30: .4byte gScreenTransition .endif _08051BCC: .4byte gRoomVars .endif diff --git a/asm/intr.s b/asm/intr.s index 64f46e95..e2da5340 100644 --- a/asm/intr.s +++ b/asm/intr.s @@ -623,7 +623,7 @@ MakeFadeBuff256: @ 0x080B2124 mul r3, r2, r3 mov r4, #0x400 sub r2, r4, r2, lsl #2 - ldr r7, _080B21A8 @ =gUnk_02000006 + ldr r7, _080B21A8 @ =0x02000006 ldrb r7, [r7] ldr ip, _080B21AC @ =gUnk_08000F54 add ip, ip, r7, lsl #4 @@ -654,7 +654,7 @@ _080B2150: bx lr .align 2, 0 _080B21A4: .4byte 0x01010101 -_080B21A8: .4byte gUnk_02000006 +_080B21A8: .4byte 0x02000000 + 6 @ brightness preference _080B21AC: .4byte gUnk_08000F54 ldr r11, _080B2270 @ =gUpdateContext diff --git a/asm/non_matching/manager16/sub_0805ACC0.inc b/asm/non_matching/manager16/sub_0805ACC0.inc index df4f3ff6..dcf66b6b 100644 --- a/asm/non_matching/manager16/sub_0805ACC0.inc +++ b/asm/non_matching/manager16/sub_0805ACC0.inc @@ -28,7 +28,7 @@ _0805ACF0: movs r0, #0x7f ands r0, r1 subs r5, r0, #1 - ldr r6, _0805AD3C @ =gUnk_03003DA0 + ldr r6, _0805AD3C @ =gEntityLists + 48 ldr r4, [r6, #4] cmp r4, r6 beq _0805AD32 @@ -66,7 +66,7 @@ _0805AD34: mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 -_0805AD3C: .4byte gUnk_03003DA0 +_0805AD3C: .4byte gEntityLists + 48 _0805AD40: .4byte 0x00001609 _0805AD44: .4byte 0x0000FFFF .syntax divided diff --git a/asm/non_matching/sub_0806FOA4.inc b/asm/non_matching/sub_0806FOA4.inc index 53a92f93..18771681 100644 --- a/asm/non_matching/sub_0806FOA4.inc +++ b/asm/non_matching/sub_0806FOA4.inc @@ -1,7 +1,7 @@ .syntax unified push {r4, r5, r6, r7, lr} sub sp, #4 - ldr r7, _0806F114 @ =gUnk_03003DA8 + ldr r7, _0806F114 @ =gEntityLists + 56 ldr r5, [r7, #4] movs r0, #0 cmp r5, r7 @@ -61,5 +61,5 @@ _0806F10E: add sp, #4 pop {r4, r5, r6, r7, pc} .align 2, 0 -_0806F114: .4byte gUnk_03003DA8 +_0806F114: .4byte gEntityLists + 56 .syntax divided diff --git a/asm/non_matching/sub_08077F24.inc b/asm/non_matching/sub_08077F24.inc index 051ccf7a..57df9815 100644 --- a/asm/non_matching/sub_08077F24.inc +++ b/asm/non_matching/sub_08077F24.inc @@ -8,7 +8,7 @@ movs r2, #1 b _08077F42 .align 2, 0 -_08077F34: .4byte gStats +_08077F34: .4byte gSave + 0xa8 _08077F38: ldrb r0, [r2, #0xd] movs r2, #0 diff --git a/asm/non_matching/textbox/sub_08056750.inc b/asm/non_matching/textbox/sub_08056750.inc index 7ed352b6..9939daf0 100644 --- a/asm/non_matching/textbox/sub_08056750.inc +++ b/asm/non_matching/textbox/sub_08056750.inc @@ -124,7 +124,7 @@ _08056844: bl WriteBit b _08056942 .align 2, 0 -_08056854: .4byte gUnk_0200005C +_08056854: .4byte gMessage+0xc _08056858: ldrh r3, [r5, #0x22] cmp r3, #0xe diff --git a/asm/object/enemyItem.s b/asm/object/enemyItem.s index 05916ae8..4ed584b2 100644 --- a/asm/object/enemyItem.s +++ b/asm/object/enemyItem.s @@ -28,7 +28,7 @@ _080A245E: ldrb r0, [r5, #0xe] strb r0, [r5, #0xa] str r1, [r5, #0x54] - ldr r2, _080A24B4 @ =gUnk_03003D90 + ldr r2, _080A24B4 @ =gEntityLists + 32 ldr r4, [r2, #4] cmp r4, r2 beq _080A24BE @@ -63,7 +63,7 @@ _080A2478: str r4, [r5, #0x54] b _080A24BE .align 2, 0 -_080A24B4: .4byte gUnk_03003D90 +_080A24B4: .4byte gEntityLists + 32 _080A24B8: ldr r4, [r4, #4] cmp r4, r2 diff --git a/asm/object/fan.s b/asm/object/fan.s index 86fedf65..42657bff 100644 --- a/asm/object/fan.s +++ b/asm/object/fan.s @@ -37,7 +37,7 @@ _0809EE60: ldrb r1, [r5, #0x15] bl sub_08079E58 _0809EE80: - ldr r6, _0809EEA8 @ =gUnk_03003D80 + ldr r6, _0809EEA8 @ =gEntityLists + 16 ldr r4, [r6, #4] cmp r6, r4 beq _0809EF74 @@ -57,7 +57,7 @@ _0809EE88: mov pc, r0 .align 2, 0 _0809EEA4: .4byte gPlayerEntity -_0809EEA8: .4byte gUnk_03003D80 +_0809EEA8: .4byte gEntityLists + 16 _0809EEAC: .4byte _0809EEB0 _0809EEB0: @ jump table .4byte _0809EF1E @ case 0 diff --git a/asm/object/object36.s b/asm/object/object36.s index 5c47e400..f87da0a8 100644 --- a/asm/object/object36.s +++ b/asm/object/object36.s @@ -342,7 +342,7 @@ _0808BDAE: sub_0808BDB0: @ 0x0808BDB0 push {r4, r5, r6, lr} adds r3, r0, #0 - ldr r4, _0808BDD4 @ =gUnk_03003DA0 + ldr r4, _0808BDD4 @ =gEntityLists + 48 ldr r2, [r4, #4] movs r0, #0 str r0, [r3, #0x50] @@ -359,7 +359,7 @@ _0808BDC4: str r2, [r3, #0x50] b _0808BDE6 .align 2, 0 -_0808BDD4: .4byte gUnk_03003DA0 +_0808BDD4: .4byte gEntityLists + 48 _0808BDD8: .4byte 0x0000FFFF _0808BDDC: .4byte 0x00000C09 _0808BDE0: diff --git a/asm/player.s b/asm/player.s index cd443b88..0811e08e 100644 --- a/asm/player.s +++ b/asm/player.s @@ -101,10 +101,10 @@ _0800861A: ldrh r4, [r0, r2] movs r2, #0x48 ldr r5, [r0, r2] - ldr r1, _080088B4 @ =gUnk_03000BF6 + ldr r1, _080088B4 @ =gRoomControls + 6 ldrh r1, [r1] subs r3, r3, r1 - ldr r1, _080088B8 @ =gUnk_03000BF8 + ldr r1, _080088B8 @ =gRoomControls + 8 ldrh r1, [r1] subs r4, r4, r1 eors r2, r2 @@ -439,8 +439,8 @@ _080088A4: .4byte gUnk_080084BC _080088A8: .4byte gPlayerState _080088AC: .4byte gUnk_0800851C _080088B0: .4byte gUnk_080082DC -_080088B4: .4byte gUnk_03000BF6 -_080088B8: .4byte gUnk_03000BF8 +_080088B4: .4byte gRoomControls + 6 +_080088B8: .4byte gRoomControls + 8 _080088BC: .4byte gPlayerEntity _080088C0: .4byte 0x000003F0 _080088C4: .4byte gUnk_08000248 diff --git a/asm/playerUtils.s b/asm/playerUtils.s index 4203ca77..b9a53489 100644 --- a/asm/playerUtils.s +++ b/asm/playerUtils.s @@ -275,7 +275,7 @@ sub_08077880: @ 0x08077880 lsls r0, r0, #2 ldr r1, _080778C4 @ =gUnk_0811BE48 adds r5, r0, r1 - ldr r1, _080778C8 @ =gUnk_03004010 + ldr r1, _080778C8 @ =gPlayerState + 0x90 ldrb r0, [r5] cmp r0, #0 beq _080778A0 @@ -301,7 +301,7 @@ _080778C0: pop {r4, r5, r6, pc} .align 2, 0 _080778C4: .4byte gUnk_0811BE48 -_080778C8: .4byte gUnk_03004010 +_080778C8: .4byte gPlayerState + 0x90 thumb_func_start sub_080778CC sub_080778CC: @ 0x080778CC diff --git a/asm/scroll.s b/asm/scroll.s index 6a767881..d66162ec 100644 --- a/asm/scroll.s +++ b/asm/scroll.s @@ -379,7 +379,7 @@ sub_0807FEC8: @ 0x0807FEC8 strh r0, [r4, #0x18] pop {r4, r5, pc} .align 2, 0 -_0807FEEC: .4byte gUnk_03003FC0 +_0807FEEC: .4byte gPlayerState+0x40 thumb_func_start sub_0807FEF0 sub_0807FEF0: @ 0x0807FEF0 diff --git a/data/data_081320FC.s b/data/data_081320FC.s deleted file mode 100755 index 7226b9da..00000000 --- a/data/data_081320FC.s +++ /dev/null @@ -1,10 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -.ifdef DEMO_JP - @ TODO check whether this is the same save as one of the DEMO_USA ones - .incbin "data_081320FC/_DEMO_JP.bin" -.endif diff --git a/include/entity.h b/include/entity.h index 9afeafe1..4f163a72 100644 --- a/include/entity.h +++ b/include/entity.h @@ -155,9 +155,6 @@ typedef struct LinkedList { } LinkedList; extern LinkedList gEntityLists[9]; -extern LinkedList gUnk_03003D90; - -extern LinkedList gUnk_03003DA0; enum { ENT_DID_INIT = 0x1, diff --git a/include/fileScreen.h b/include/fileScreen.h index 78a36f90..86f4e8d0 100644 --- a/include/fileScreen.h +++ b/include/fileScreen.h @@ -78,7 +78,6 @@ extern const u8 gGlobalGfxAndPalettes[]; extern void (*const gUnk_080FC93C[])(); extern u32 gUsedPalettes; extern u8 gTextGfxBuffer[]; -extern u8 gUnk_02001B40; extern u8 gUnk_02022030; #endif \ No newline at end of file diff --git a/include/player.h b/include/player.h index 76350008..be58a279 100644 --- a/include/player.h +++ b/include/player.h @@ -274,7 +274,6 @@ extern u8 gQuiverSizes[]; extern u16 gWalletSizes[]; extern PlayerState gPlayerState; -extern Stats gStats; extern Entity gPlayerEntity; void SetPlayerControl(PlayerControlMode mode); diff --git a/include/room.h b/include/room.h index 08742d2d..59c6e094 100644 --- a/include/room.h +++ b/include/room.h @@ -72,7 +72,7 @@ typedef struct { s16 lightLevel; u8 filler3[2]; u8 unk_10[4]; - u32 roomFlags; + u32 flags; u32 unk3; u8 filler4[48]; u8 filler5[28]; @@ -95,13 +95,29 @@ typedef struct { u32 spritePtr; } EntityData; +typedef struct { + u16 field_0x0; + u16 field_0x2; + u8 field_0x4; + u8 field_0x5; + u8 field_0x6; + u8 field_0x7; +} struct_030010EC; + +typedef struct { + u16 data[32]; + u16 field_0xac; + u16 field_0xae; +} struct_0300110C; + // Status of the player's positioning within the scene. typedef struct { u8 area_next; u8 room_next; u8 start_anim; u8 spawn_type; - Coords start_pos; + s16 start_pos_x; + s16 start_pos_y; u8 layer; u8 field_0x15; u8 dungeon_area; @@ -140,10 +156,8 @@ typedef struct { u16 field_0x46; u16 field_0x48; u16 field_0x4a; - u8 minecart_data[0x20]; - u8 field_0x6c[0x40]; - u16 field_0xac; - u16 field_0xae; + struct_030010EC minecart_data[4]; + struct_0300110C armos_data; } ScreenTransition; extern ScreenTransition gScreenTransition; diff --git a/include/save.h b/include/save.h index 90e00e60..5df71806 100644 --- a/include/save.h +++ b/include/save.h @@ -43,7 +43,8 @@ typedef struct { /*0x0A8*/ Stats stats; /*0x0D0*/ u8 fillerD0[0x71]; /*0x141*/ u8 unk141[128]; - /*0x1C1*/ u8 unk1C1[667]; + /*0x1C1*/ u8 unk1C1[155]; + /*0x25C*/ u8 flags[0x200]; /*0x45C*/ u8 unk45C[0x10]; /*0x46C*/ u8 unk46C[0x20]; /*0x48C*/ u32 unk48C[8]; diff --git a/include/screen.h b/include/screen.h index e057442a..f308f19d 100644 --- a/include/screen.h +++ b/include/screen.h @@ -78,7 +78,6 @@ typedef struct { u16 _8; } OAMCommand; -extern BgControls gBgControls; extern Screen gScreen; extern OAMCommand gOamCmd; diff --git a/linker.ld b/linker.ld index 24bb0cea..eee68274 100644 --- a/linker.ld +++ b/linker.ld @@ -11,13 +11,11 @@ MEMORY { SECTIONS { ewram (NOLOAD) : ALIGN(4) { - . = 0x00000006; gUnk_02000006 = .; . = 0x00000010; gUnk_02000010 = .; . = 0x00000020; gUnk_02000020 = .; . = 0x00000030; gUnk_02000030 = .; . = 0x00000040; gUnk_02000040 = .; . = 0x00000050; gMessage = .; - . = 0x0000005C; gUnk_0200005C = .; . = 0x00000070; gUpdateVisibleTiles = .; . = 0x00000080; gMenu = .; . = 0x00000080; gIntroState = .; @@ -30,13 +28,9 @@ SECTIONS { . = 0x00001A00; gPaletteList = .; . = 0x00001A3C; gUnk_02001A3C = .; . = 0x00001A40; gBG3Buffer = .; - . = 0x00001B40; gUnk_02001B40 = .; . = 0x00002A40; gSave = .; - . = 0x00002A40; gUnk_02002A40 = .; - . = 0x00002AA0; gUnk_02002AA0 = .; . = 0x00002AC0; gUnk_02002AC0 = .; . = 0x00002AC8; gUnk_02002AC8 = .; - . = 0x00002AE8; gStats = .; . = 0x00002B0E; gUnk_02002B0E = .; . = 0x00002B32; gUnk_02002B32 = .; . = 0x00002B54; gUnk_02002B54 = .; @@ -46,8 +40,6 @@ SECTIONS { . = 0x00002C81; gUnk_02002C81 = .; . = 0x00002C8E; gUnk_02002C8E = .; . = 0x00002C9C; gGlobalFlags = .; - . = 0x00002E9C; gUnk_02002E9C = .; - . = 0x00002ECC; gUnk_02002ECC = .; . = 0x00002F00; gMapDataTopSpecial = .; . = 0x00006F00; gUnk_02006F00 = .; . = 0x0000AF00; gUnk_0200AF00 = .; @@ -78,7 +70,6 @@ SECTIONS { . = 0x00018EB0; gUnk_02018EB0 = .; . = 0x00018EE0; gUnk_02018EE0 = .; . = 0x00019EE0; gUnk_02019EE0 = .; - . = 0x00019F6C; gUnk_02019F6C = .; . = 0x0001AEE0; gUnk_0201AEE0 = .; . = 0x00021EE0; gSoundPlayingInfo = .; . = 0x00021F00; gUnk_02021F00 = .; @@ -96,7 +87,6 @@ SECTIONS { . = 0x000227F0; gUnk_020227F0 = .; . = 0x000227F8; gUnk_020227F8 = .; . = 0x00022800; gUnk_02022800 = .; - . = 0x0002281E; gUnk_0202281E = .; . = 0x00022830; gUnk_02022830 = .; . = 0x00024030; gMessageChoices = .; . = 0x00024048; gUnk_02024048 = .; @@ -122,11 +112,9 @@ SECTIONS { . = 0x00033A90; gArea = .; . = 0x00033AB8; gUnk_02033AB8 = .; . = 0x00033ACC; gUnk_02033ACC = .; - . = 0x000342CC; gUnk_020342CC = .; . = 0x000342F8; gUnk_020342F8 = .; . = 0x00034330; gUnk_02034330 = .; . = 0x00034350; gRoomVars = .; - . = 0x00034364; gRoomFlags = .; . = 0x00034398; gUnk_02034398 = .; . = 0x00034480; gUnk_02034480 = .; . = 0x00034490; gUnk_02034490 = .; @@ -135,7 +123,6 @@ SECTIONS { . = 0x000344B0; gBG2Buffer = .; . = 0x000344F0; gUnk_020344F0 = .; . = 0x00034CB0; gBG0Buffer = .; - . = 0x00034CB2; gUnk_02034CB2 = .; . = 0x00034CF0; gUnk_02034CF0 = .; . = 0x00034D30; gUnk_02034D30 = .; . = 0x00034DF0; gUnk_02034DF0 = .; @@ -177,41 +164,23 @@ SECTIONS { . = 0x00000B80; gUnk_03000B80 = .; . = 0x00000BD4; gUnk_03000BD4 = .; . = 0x00000BF0; gRoomControls = .; - . = 0x00000BF6; gUnk_03000BF6 = .; - . = 0x00000BF8; gUnk_03000BF8 = .; . = 0x00000C24; gUnk_03000C24 = .; . = 0x00000C30; gUnk_03000C30 = .; . = 0x00000E10; gCollidableList = .; . = 0x00000F50; gScreen = .; - . = 0x00000F58; gBG0Settings = .; - . = 0x00000F64; gBG1Settings = .; - . = 0x00000F70; gBGAffSettings = .; - . = 0x00000F88; gBgControls = .; - . = 0x00000FBC; gUnk_03000FBC = .; . = 0x00000FD0; gFadeControl = .; . = 0x00000FF0; gInput = .; . = 0x00001000; gMain = .; . = 0x00001010; gOamCmd = .; . = 0x00001020; gUnk_03001020 = .; . = 0x000010A0; gScreenTransition = .; - . = 0x000010A0; gUnk_030010A0 = .; - . = 0x000010AC; gUnk_030010AC = .; - . = 0x000010EC; gUnk_030010EC = .; - . = 0x0000110C; gUnk_0300110C = .; . = 0x00001150; gRand = .; . = 0x00001160; gPlayerEntity = .; - . = 0x00001198; gUnk_03001198 = .; . = 0x000011E8; gUnk_030011E8 = .; . = 0x000015A0; gUnk_030015A0 = .; . = 0x00003BE0; gUnk_03003BE0 = .; . = 0x00003C70; gUnk_03003C70 = .; - . = 0x00003D68; gUnk_03003D68 = .; . = 0x00003D70; gEntityLists = .; - . = 0x00003D80; gUnk_03003D80 = .; - . = 0x00003D90; gUnk_03003D90 = .; - . = 0x00003DA0; gUnk_03003DA0 = .; - . = 0x00003DA8; gUnk_03003DA8 = .; - . = 0x00003DB0; gUnk_03003DB0 = .; . = 0x00003DB8; gCollidableCount = .; . = 0x00003DBC; gEntCount = .; . = 0x00003DC0; gPriorityHandler = .; @@ -221,18 +190,12 @@ SECTIONS { . = 0x00003DF0; gUnk_03003DF0 = .; . = 0x00003DF8; gUnk_03003DF8 = .; . = 0x00003F80; gPlayerState = .; - . = 0x00003FC0; gUnk_03003FC0 = .; - . = 0x00004010; gUnk_03004010 = .; - . = 0x00004020; gUnk_03004020 = .; . = 0x00004030; gUnk_03004030 = .; . = 0x00004040; gPlayerClones = .; . = 0x0000404C; SoundMainRAM_Buffer = .; . = 0x0000404D; gUnk_0300404D = .; . = 0x000043D0; gSoundInfo = .; . = 0x00004D50; gMPlayJumpTable = .; - . = 0x00004D54; gUnk_03004D54 = .; - . = 0x00004DD8; gUnk_03004DD8 = .; - . = 0x00004DDC; gUnk_03004DDC = .; . = 0x00004DE0; gCgbChans = .; . = 0x00004EE0; gMPlayInfos = .; . = 0x000055E0; gMPlayMemAccArea = .; diff --git a/src/demoScreen.c b/src/demoScreen.c index e2d7c911..daec74d7 100644 --- a/src/demoScreen.c +++ b/src/demoScreen.c @@ -19,8 +19,6 @@ extern u8 gUnk_08A05751[]; extern void gUnk_089FD1B4; extern void gUnk_089FD2F4; -extern u8 gUnk_02000006; - extern u16 gUnk_08127CC8[4]; extern void* gUnk_08127C98; extern u8 gUnk_08A068BF[129]; diff --git a/src/enemy/code_080300AC.c b/src/enemy/code_080300AC.c index 612df34a..d1af8248 100644 --- a/src/enemy/code_080300AC.c +++ b/src/enemy/code_080300AC.c @@ -2,22 +2,14 @@ #include "utils.h" #include "functions.h" -typedef struct { - u16 unk0; - u16 filler2[32]; - u16 unk66; -} struct_0300110C; - -extern struct_0300110C gUnk_0300110C; - void sub_080300AC(void) { - MemClear(&gUnk_0300110C.unk0, 0x44); - gUnk_0300110C.unk66 = 0xff; + MemClear(&gScreenTransition.armos_data, sizeof(gScreenTransition.armos_data)); + gScreenTransition.armos_data.field_0xae = 0xff; } void sub_080300C4(void) { - if (gScreenTransition.field_0xae == 0xff) { - gScreenTransition.field_0xac = 0; - MemClear(gScreenTransition.field_0x6c, sizeof gScreenTransition.field_0x6c); + if (gScreenTransition.armos_data.field_0xae == 0xff) { + gScreenTransition.armos_data.field_0xac = 0; + MemClear(&gScreenTransition.armos_data.data, sizeof(gScreenTransition.armos_data.data)); } } diff --git a/src/fileScreen.c b/src/fileScreen.c index 8d221ccd..ae44ecb0 100644 --- a/src/fileScreen.c +++ b/src/fileScreen.c @@ -921,7 +921,7 @@ void sub_0805144C(void) { void sub_08051458(void) { sub_080503A8(gMenu.column_idx + 9); - MemCopy(&gUnk_02001B40, &gUnk_02022030, 0x400); + MemCopy(gBG3Buffer + 0x80, &gUnk_02022030, 0x400); } u32 sub_080514BC(u32); diff --git a/src/flags.c b/src/flags.c index ec58ec19..1c153b5a 100644 --- a/src/flags.c +++ b/src/flags.c @@ -36,7 +36,7 @@ u32 CheckGlobalFlag(u32 flag) { } u32 CheckRoomFlag(u32 flag) { - return ReadBit(&gRoomVars.roomFlags, flag); + return ReadBit(&gRoomVars.flags, flag); } u32 CheckLocalFlagsByBank(u32 offset, u32 flag, u32 length) { @@ -53,7 +53,7 @@ u32 CheckGlobalFlags(u32 flag, u32 length) { } u32 CheckRoomFlags(u32 flag, u32 length) { - return CheckBits(&gRoomVars.roomFlags, flag, length); + return CheckBits(&gRoomVars.flags, flag, length); } void SetLocalFlagByBank(u32 offset, u32 flag) { @@ -92,7 +92,7 @@ void SetGlobalFlag(u32 flag) { } void SetRoomFlag(u32 flag) { - WriteBit(&gRoomFlags, flag); + WriteBit(&gRoomVars.flags, flag); } void ClearLocalFlagByBank(u32 offset, u32 flag) { @@ -127,5 +127,5 @@ void ClearGlobalFlag(u32 flag) { } void ClearRoomFlag(u32 flag) { - ClearBit(&gRoomFlags, flag); + ClearBit(&gRoomVars.flags, flag); } diff --git a/src/game.c b/src/game.c index 72fd56c0..33054701 100644 --- a/src/game.c +++ b/src/game.c @@ -15,8 +15,6 @@ #include "message.h" #include "game.h" -extern u32 gUnk_03003FC0; - extern u8 gUnk_080FCA84[]; extern u8 gUnk_080FCAC8[]; extern u8 gUnk_02024090[]; @@ -379,8 +377,8 @@ void InitializePlayer(void) { pl->flags |= ENT_COLLIDE | ENT_20; pl->spritePriority.b0 = 4; pl->health = gSave.stats.health; - pl->x.HALF.HI = gScreenTransition.player_status.start_pos.HALF.x; - pl->y.HALF.HI = gScreenTransition.player_status.start_pos.HALF.y; + pl->x.HALF.HI = gScreenTransition.player_status.start_pos_x; + pl->y.HALF.HI = gScreenTransition.player_status.start_pos_y; pl->animationState = gScreenTransition.player_status.start_anim; pl->collisionLayer = gScreenTransition.player_status.layer; UpdateSpriteForCollisionLayer(pl); @@ -428,22 +426,23 @@ u32 CheckHasMap(void) { s32 ModHealth(s32 delta) { s32 newHealth; + Stats* stats = &gSave.stats; - newHealth = gStats.health + delta; + newHealth = stats->health + delta; if (newHealth < 0) { newHealth = 0; } - if (gStats.maxHealth < newHealth) { - newHealth = (u32)gStats.maxHealth; + if (stats->maxHealth < newHealth) { + newHealth = (u32)stats->maxHealth; } - gStats.health = newHealth; + stats->health = newHealth; gPlayerEntity.health = newHealth; return newHealth; } void ModRupees(s32 delta) { s32 newRupeeCount; - Stats* s = &gStats; + Stats* s = &gSave.stats; newRupeeCount = s->rupees + delta; if (newRupeeCount < 0) { @@ -614,8 +613,8 @@ static u32 StairsAreValid(void) { void InitParachuteRoom(void) { gScreenTransition.transitioningOut = 1; - gScreenTransition.player_status.start_pos.HALF.x = (gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX) & 0x3F8; - gScreenTransition.player_status.start_pos.HALF.y = (gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) & 0x3F8; + gScreenTransition.player_status.start_pos_x = (gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX) & 0x3F8; + gScreenTransition.player_status.start_pos_y = (gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) & 0x3F8; gScreenTransition.player_status.start_anim = 4; gScreenTransition.player_status.spawn_type = PL_SPAWN_PARACHUTE_FORWARD; gScreenTransition.player_status.area_next = gRoomControls.areaID; @@ -983,8 +982,8 @@ void sub_080531F8(void) { void sub_08053250(void) { gScreenTransition.player_status.spawn_type = PL_SPAWN_DEFAULT; - gScreenTransition.player_status.start_pos.HALF.x = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX; - gScreenTransition.player_status.start_pos.HALF.y = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY; + gScreenTransition.player_status.start_pos_x = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX; + gScreenTransition.player_status.start_pos_y = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY; gScreenTransition.player_status.start_anim = gPlayerEntity.animationState; gScreenTransition.player_status.layer = gPlayerEntity.collisionLayer; gScreenTransition.player_status.area_next = gRoomControls.areaID; diff --git a/src/interrupts.c b/src/interrupts.c index 53463318..85c3c16c 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -20,7 +20,6 @@ extern u8 gUnk_03003DF0[]; extern u8 gUnk_03003BE0; extern Entity* gPlayerClones[3]; extern u16 gUnk_080B2CD8[]; -extern u32 gUnk_03000FBC; extern void sub_080ADD70(); extern void sub_0801C25C(); @@ -69,7 +68,7 @@ void VBlankIntr(void) { m4aSoundVSync(); if (gMain.interruptFlag == 0) { DispCtrlSet(); - DmaCopy32(0, &gUnk_03000FBC, &gUnk_02022730, 16); + DmaCopy32(0, &gScreen._6c, &gUnk_02022730, 16); gMain.interruptFlag = 1; } sub_08016BF8(); diff --git a/src/manager/manager1A.c b/src/manager/manager1A.c index dd047611..a0eb2a8b 100644 --- a/src/manager/manager1A.c +++ b/src/manager/manager1A.c @@ -161,18 +161,18 @@ void sub_0805B210(Manager1A* this) { } switch (tmp->unk_00) { case 0: - gScreenTransition.player_status.start_pos.HALF.x = tmp->unk_04; - gScreenTransition.player_status.start_pos.HALF.y = tmp->unk_06; + gScreenTransition.player_status.start_pos_x = tmp->unk_04; + gScreenTransition.player_status.start_pos_y = tmp->unk_06; break; case 1: - gScreenTransition.player_status.start_pos.HALF.x = + gScreenTransition.player_status.start_pos_x = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX + tmp->unk_04; - gScreenTransition.player_status.start_pos.HALF.y = + gScreenTransition.player_status.start_pos_y = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY + tmp->unk_06; break; case 2: - gScreenTransition.player_status.start_pos.HALF.x = tmp->unk_04; - gScreenTransition.player_status.start_pos.HALF.y = tmp->unk_06; + gScreenTransition.player_status.start_pos_x = tmp->unk_04; + gScreenTransition.player_status.start_pos_y = tmp->unk_06; gScreenTransition.player_status.spawn_type = 6; break; } diff --git a/src/manager/manager27.c b/src/manager/manager27.c index a8e66939..e8a2842d 100644 --- a/src/manager/manager27.c +++ b/src/manager/manager27.c @@ -19,9 +19,9 @@ void Manager27_Main(Entity* this) { gUnk_08108D10[this->action](this); if (CheckLocalFlagByBank(0x300, this->type + 0x67)) { - gScreenTransition.field_0xac |= (1 << this->type); + gScreenTransition.armos_data.field_0xac |= (1 << this->type); } else { - gScreenTransition.field_0xac &= ~(1 << this->type); + gScreenTransition.armos_data.field_0xac &= ~(1 << this->type); } } diff --git a/src/manager/manager28.c b/src/manager/manager28.c index 43e4e8d9..6280bc6e 100644 --- a/src/manager/manager28.c +++ b/src/manager/manager28.c @@ -111,7 +111,7 @@ Entity* Manager28_FindMatchingEntity(EntityData* unk1) { LinkedList* tmp; x = unk1->xPos + gRoomControls.roomOriginX; y = unk1->yPos + gRoomControls.roomOriginY; - tmp = &gUnk_03003D90; + tmp = &gEntityLists[4]; for (i = tmp->first; (u32)i != (u32)tmp; i = i->next) { if (x == i->x.HALF.HI && y == i->y.HALF.HI && unk1->id == i->id && 3 == i->kind && unk1->type == i->type) { return i; diff --git a/src/manager/manager2C.c b/src/manager/manager2C.c index f42c0844..125dcc5b 100644 --- a/src/manager/manager2C.c +++ b/src/manager/manager2C.c @@ -29,8 +29,8 @@ void Manager2C_Main(Manager2C* manager) { gScreenTransition.player_status.area_next = manager->manager.unk_0b; gScreenTransition.player_status.room_next = manager->manager.unk_0e; gScreenTransition.player_status.start_anim = manager->field_0x37; - gScreenTransition.player_status.start_pos.HALF.x = manager->field_0x3c; - gScreenTransition.player_status.start_pos.HALF.y = manager->field_0x3e; + gScreenTransition.player_status.start_pos_x = manager->field_0x3c; + gScreenTransition.player_status.start_pos_y = manager->field_0x3e; gScreenTransition.player_status.layer = manager->field_0x36; } } diff --git a/src/manager/manager2D.c b/src/manager/manager2D.c index 20d448e6..8e1b7f65 100644 --- a/src/manager/manager2D.c +++ b/src/manager/manager2D.c @@ -2,9 +2,6 @@ #include "entity.h" #include "functions.h" -extern u32 gUnk_03000BF8; -extern u32 gUnk_03000BF6; - void Manager2D_Main(Entity* this) { SetTile(0x4014, 0x5c3, 1); if ((gRoomControls.roomOriginY + 200 < gPlayerEntity.y.HALF.HI) && diff --git a/src/manager/managerB.c b/src/manager/managerB.c index 9bf28b87..2219470c 100644 --- a/src/manager/managerB.c +++ b/src/manager/managerB.c @@ -165,14 +165,12 @@ void ManagerBHelper_Main(Manager* this) { } } -extern Manager gUnk_03003DB0; - /* * Replace an entity that is currently being monitored with a new one */ void ReplaceMonitoredEntity(Entity* old, Entity* new) { ManagerBHelper* current; - Manager* end = &gUnk_03003DB0; + Manager* end = (Manager*)&gEntityLists[8]; u32 i; for (current = (ManagerBHelper*)end->next; (Manager*)current != end; current = (ManagerBHelper*)current->manager.next) { diff --git a/src/manager/managerC.c b/src/manager/managerC.c index 8f467f8e..d7c3f867 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -209,8 +209,8 @@ void sub_08058B5C(ManagerC* this, u32 unk1) { gScreenTransition.player_status.area_next = gRoomControls.areaID; gScreenTransition.player_status.room_next = 6; gScreenTransition.player_status.start_anim = unk1 & 1 ? 4 : 0; - gScreenTransition.player_status.start_pos.HALF.x = gUnk_081082E8[unk1 * 3]; - gScreenTransition.player_status.start_pos.HALF.y = gUnk_081082E8[unk1 * 3 + 1]; + gScreenTransition.player_status.start_pos_x = gUnk_081082E8[unk1 * 3]; + gScreenTransition.player_status.start_pos_y = gUnk_081082E8[unk1 * 3 + 1]; gSave.unk7 = gUnk_081082E8[unk1 * 3 + 2]; SoundReq(SFX_STAIRS); } diff --git a/src/message.c b/src/message.c index 085f0011..8f2ff53e 100644 --- a/src/message.c +++ b/src/message.c @@ -700,9 +700,6 @@ static void CreateWindow(void) { ASM_FUNC("asm/non_matching/textbox/DispMessageFrame.inc", void DispMessageFrame(u16* buffer, u32 width_, u32 height_, u32 flags_)) -extern u16 gUnk_02034CB2[]; -extern u16 gUnk_0202281E[]; - /* Each character is two tiles tall. They are stored in VRAM in the following order: diff --git a/src/npc/phonograph.c b/src/npc/phonograph.c index 38aa8569..9a471b6c 100644 --- a/src/npc/phonograph.c +++ b/src/npc/phonograph.c @@ -7,8 +7,6 @@ extern void sub_08057044(u32, struct_020227E8*, u32); extern u32 gUnk_081146B8; -extern u16 gBG0Settings[]; - void Phonograph(Entity* this) { if (this->action == 0) { this->action += 1; diff --git a/src/object/fileScreenObjects.c b/src/object/fileScreenObjects.c index ab9e6567..a4b216bc 100644 --- a/src/object/fileScreenObjects.c +++ b/src/object/fileScreenObjects.c @@ -319,7 +319,7 @@ void sub_0808EBB8(Entity* this) { } static Entity* sub_0808EC80(int form) { - Entity* entityA = (Entity*)&gUnk_03003DA0; + Entity* entityA = (Entity*)&gEntityLists[6]; Entity* entityB = entityA->next; while (entityB != entityA) { if ((entityB->kind == 0x6 && entityB->id == 0x48) && form == entityB->type) { diff --git a/src/object/minecart.c b/src/object/minecart.c index 39d1ce44..bf03dfc9 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -7,18 +7,8 @@ extern u32 sub_08007DD6(u32, u32); extern void sub_08017744(Entity*); extern void sub_08091C0C(Entity*); -typedef struct { - u16 field_0x0; - u16 field_0x2; - u8 field_0x4; - u8 field_0x5; - u8 field_0x6; - u8 field_0x7; -} struct_030010EC; - extern void (*const gUnk_081223A8[])(Entity*); -extern struct_030010EC gUnk_030010EC[]; extern Hitbox gUnk_080FD310; extern const s8 gUnk_081223C8[]; @@ -30,7 +20,7 @@ void Minecart(Entity* this) { } void sub_080916EC(Entity* this) { - struct_030010EC* unk = &gUnk_030010EC[this->actionDelay]; + struct_030010EC* unk = &gScreenTransition.minecart_data[this->actionDelay]; *(struct_030010EC**)&this->cutsceneBeh.HWORD = unk; if ((gRoomControls.roomID != unk->field_0x4) || (gPlayerState.flags & 0x1000) != 0) { diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index bfa09ca0..f95971e0 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -148,8 +148,8 @@ void sub_0808B684(Entity* this) { gScreenTransition.transitionType = TRANSITION_DEFAULT; gScreenTransition.player_status.area_next = this->field_0x7c.BYTES.byte0; gScreenTransition.player_status.room_next = this->field_0x7c.BYTES.byte1; - gScreenTransition.player_status.start_pos.HALF.x = ((this->cutsceneBeh.HWORD & 0x3f) << 4) + 8; - gScreenTransition.player_status.start_pos.HALF.y = ((this->cutsceneBeh.HWORD & 0xfc0) >> 2) + 8; + gScreenTransition.player_status.start_pos_x = ((this->cutsceneBeh.HWORD & 0x3f) << 4) + 8; + gScreenTransition.player_status.start_pos_y = ((this->cutsceneBeh.HWORD & 0xfc0) >> 2) + 8; gScreenTransition.player_status.layer = 0; gScreenTransition.player_status.start_anim = 4; gScreenTransition.player_status.spawn_type = 0; diff --git a/src/roomInit.c b/src/roomInit.c index 8c0557c2..384c7b79 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -233,7 +233,7 @@ extern EntityData Entities_HouseInteriors1_Mayor_080D6210; void sub_StateChange_HouseInteriors1_Mayor(void) { - if ((u16)gScreenTransition.player_status.start_pos.HALF.y > 0x40) + if ((u16)gScreenTransition.player_status.start_pos_y > 0x40) LoadRoomEntityList(&Entities_HouseInteriors1_Mayor_080D6210); } @@ -1049,7 +1049,7 @@ void sub_StateChange_RoyalValley_Main(void) { SetTile(0x4072, 0xc47, 1); if (CheckGlobalFlag(MAZE_CLEAR)) - if (gScreenTransition.player_status.start_pos.WORD == 0x2780078) // todo: wtf + if (gScreenTransition.player_status.start_pos_x == 0x78 && gScreenTransition.player_status.start_pos_y == 0x278) SoundReq(SFX_SECRET); ClearGlobalFlag(MAZE_CLEAR); diff --git a/src/sub_0807CA18.c b/src/sub_0807CA18.c index 9c823e2d..6a342989 100644 --- a/src/sub_0807CA18.c +++ b/src/sub_0807CA18.c @@ -53,8 +53,8 @@ u8 sub_0807CA18() { gSave.saved_status.start_anim = 0; gSave.saved_status.spawn_type = 0; gSave.saved_status.layer = 1; - gSave.saved_status.start_pos.HALF.x = 0x90; - gSave.saved_status.start_pos.HALF.y = 0x38; + gSave.saved_status.start_pos_x = 0x90; + gSave.saved_status.start_pos_y = 0x38; } if (gSave.playerName[0] == '\0') { MemCopy(gUnk_0811E470, &gSave.playerName, FILENAME_LENGTH - 1); diff --git a/src/title.c b/src/title.c index c9eb0f73..b31c67e8 100644 --- a/src/title.c +++ b/src/title.c @@ -6,6 +6,9 @@ #include "object.h" #include "message.h" #include "functions.h" +#include "save.h" +#include "area.h" +#include "item.h" typedef struct { u8 filler0[0x4]; @@ -52,6 +55,67 @@ static const u16 sLightRaysAlphaBlends[] = { BLDALPHA_BLEND(5, 13), BLDALPHA_BLEND(6, 12), BLDALPHA_BLEND(7, 11), BLDALPHA_BLEND(8, 10), }; +#define FLAG_BYTE(bank, flag) (((bank) + (flag)) >> 3) +#define FLAG_X(flag) (1 << ((flag)&7)) + +#ifdef DEMO_JP +static const SaveFile gDemoSave = { + .unk_01 = 1, + .messageSpeed = 1, + .brightnessPref = 1, + .global_progress = 1, + .field_0x9 = { [23] = 0x1F }, + .windcrests = 0x00013780, + .unk50 = 7, + .areaVisitFlags = { 0x0114C300 }, + .playerName = "\x97\x7f\xdd", + .saved_status = { + .area_next = AREA_DEEPWOOD_SHRINE, + .room_next = 0xb, + .start_pos_x = 0xa8, + .start_pos_y = 0xc8, + .layer = 1, + .overworld_map_x = 0xd66, + .overworld_map_y = 0xae0, + }, + .stats = { + .health = 40, + .maxHealth = 40, + .itemOnA = ITEM_SHIELD, + .itemOnB = ITEM_SMITH_SWORD, + .rupees = 5, + }, + .fillerD0 = { + [34] = 5, + [37] = 4, + [47] = 6, + [51] = 0x40, + [56] = 0x40, + }, + .flags = { + [FLAG_BYTE(FLAG_BANK_G, START)] = FLAG_X(START) | FLAG_X(EZERO_1ST) | FLAG_X(TABIDACHI), + [FLAG_BYTE(FLAG_BANK_G, OUTDOOR)] = FLAG_X(OUTDOOR), + [FLAG_BYTE(FLAG_BANK_G, ENTRANCE_0)] = FLAG_X(ENTRANCE_0), + [FLAG_BYTE(FLAG_BANK_1, MORI_00_KOBITO)] = FLAG_X(MORI_00_KOBITO) | FLAG_X(MORI_ENTRANCE_1ST), + [FLAG_BYTE(FLAG_BANK_1, SOUGEN_01_ZELDA)] = FLAG_X(SOUGEN_01_ZELDA), + [FLAG_BYTE(FLAG_BANK_1, SOUGEN_06_WAKAGI_1)] = FLAG_X(SOUGEN_06_WAKAGI_1) | FLAG_X(SOUGEN_06_WAKAGI_2) | FLAG_X(SOUGEN_06_WAKAGI_3), + [FLAG_BYTE(FLAG_BANK_1, SOUGEN_06_AKINDO)] = FLAG_X(SOUGEN_06_AKINDO), + [FLAG_BYTE(FLAG_BANK_1, CASTLE_04_MEZAME)] = FLAG_X(CASTLE_04_MEZAME), + [FLAG_BYTE(FLAG_BANK_1, MACHI_01_DEMO)] = FLAG_X(MACHI_01_DEMO), + [FLAG_BYTE(FLAG_BANK_2, MHOUSE15_OP1ST)] = FLAG_X(MHOUSE15_OP1ST), + [FLAG_BYTE(FLAG_BANK_2, M_PRIEST_TALK)] = FLAG_X(M_PRIEST_TALK) | FLAG_X(M_ELDER_TALK1ST) | FLAG_X(M_PRIEST_MOVE), + [FLAG_BYTE(FLAG_BANK_2, KOBITO_MORI_1ST)] = FLAG_X(KOBITO_MORI_1ST), + [FLAG_BYTE(FLAG_BANK_5, LV1_0B_WALK)] = FLAG_X(LV1_0B_WALK), + }, +}; +static const u8 unk[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, + 0xc2, 0xd1, 0xc2, 0xd2, 0xc2, 0xd3, 0xc2, 0xd4, 0xc2, 0xd5, 0xc2, 0xd6, 0xc2, + 0xd7, 0xc2, 0xd8, 0xc2, 0x00, 0xf0, 0x11, 0x90, 0x11, 0x90, 0x05, 0xd3, 0x49, + 0xd3, 0x26, 0xd3, 0x65, 0xdf, 0x11, 0x90, 0x11, 0x90, 0x11, 0x90, 0x11, 0x90, + 0x11, 0x90, 0x11, 0x90, 0x11, 0x90, 0x11, 0x90, 0x11, 0x90, 0x11, 0x90, 0x11, + 0x90, 0x11, 0x90, 0x8a, 0xc2, 0x8b, 0xc2, 0x8c, 0xc2, 0x8d, 0xc2 }; +#endif + static u32 AdvanceIntroSequence(u32 transition) { gUnk_02032EC0.lastState = transition; gMain.funcIndex = 2; @@ -266,7 +330,7 @@ static void UpdateSwordBgAffineData(void) { aff.scrY = DISPLAY_HEIGHT / 2 - 8; aff.alpha = 0; aff.sy = aff.sx = gIntroState.swordBgScaleRatio; - BgAffineSet(&aff, (struct BgAffineDstData*)&gBgControls, 1); + BgAffineSet(&aff, (struct BgAffineDstData*)&gScreen.controls, 1); } static void HandleJapaneseTitlescreenAnimationIntro(void) { @@ -361,15 +425,10 @@ static void HandleTitlescreenAnimationIntro(void) { break; } } - -#ifdef DEMO_JP -extern u8 gUnk_02002A40; -#endif - static void ExitTitlescreen(void) { if (!gFadeControl.active) { #ifdef DEMO_JP - MemCopy(&sLightRaysAlphaBlends[8], &gUnk_02002A40, 0x4B4); + MemCopy(&gDemoSave, &gSave, sizeof(gSave)); InitScreen(SCREEN_GAMEPLAY); #else InitScreen(SCREEN_CHOOSE_FILE); From baf29291f568af3eda312c13dbc64aaf90019724 Mon Sep 17 00:00:00 2001 From: theo3 Date: Wed, 29 Dec 2021 03:05:32 -0800 Subject: [PATCH 062/168] empty From 739dd60180e31b35a005768b56d5c7d29dc49773 Mon Sep 17 00:00:00 2001 From: theo3 Date: Wed, 29 Dec 2021 03:08:59 -0800 Subject: [PATCH 063/168] fix ld --- linker.ld | 3 --- 1 file changed, 3 deletions(-) diff --git a/linker.ld b/linker.ld index eee68274..75806d71 100644 --- a/linker.ld +++ b/linker.ld @@ -1670,9 +1670,6 @@ SECTIONS { src/flagDebug.o(.rodata); data/const/playerItem/playerItem13.o(.rodata); src/title.o(.rodata); -#ifdef DEMO_JP - data/data_081320FC.o(.rodata); -#endif src/projectile.o(.rodata); data/const/playerItem/playerItemGustJar.o(.rodata); data/gfx/fixed_type_gfx.o(.rodata); From 770a98c8bd1b73199e8f84a1e0708dfc2d1d6fd8 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Wed, 29 Dec 2021 14:04:05 +0100 Subject: [PATCH 064/168] GyorgFemale to new entity style --- include/entity.h | 18 +++ src/enemy/gyorgFemale.c | 325 +++++++++++++++++++++------------------- 2 files changed, 189 insertions(+), 154 deletions(-) diff --git a/include/entity.h b/include/entity.h index 43c3b721..dd9c75de 100644 --- a/include/entity.h +++ b/include/entity.h @@ -148,6 +148,24 @@ typedef struct Entity_ { #endif } Entity; +typedef struct { + /*0x00*/ Entity base; + /*0x68*/ union SplitHWord field_0x68; + /*0x6a*/ union SplitHWord field_0x6a; + /*0x6c*/ union SplitHWord field_0x6c; + /*0x6e*/ union SplitHWord field_0x6e; + /*0x70*/ union SplitWord field_0x70; + /*0x74*/ union SplitHWord field_0x74; + /*0x76*/ union SplitHWord field_0x76; + /*0x78*/ union SplitHWord field_0x78; + /*0x7a*/ union SplitHWord field_0x7a; + /*0x7c*/ union SplitWord field_0x7c; + /*0x80*/ union SplitHWord field_0x80; + /*0x82*/ union SplitHWord field_0x82; + /*0x84*/ union SplitHWord cutsceneBeh; + /*0x86*/ union SplitHWord field_0x86; +} GenericEntity; + typedef struct LinkedList { Entity* last; Entity* first; diff --git a/src/enemy/gyorgFemale.c b/src/enemy/gyorgFemale.c index 73f103b8..7e37bfb4 100644 --- a/src/enemy/gyorgFemale.c +++ b/src/enemy/gyorgFemale.c @@ -1,3 +1,4 @@ +#define NENT_DEPRECATED #include "global.h" #include "entity.h" #include "enemy.h" @@ -13,67 +14,96 @@ extern u16 gUnk_02019EE0[]; extern void sub_080197D4(u32); -void sub_08046498(); -void sub_0804660C(Entity*, u32); -void sub_080464C0(Entity*); -void sub_08046634(Entity*, u32); -void sub_080465C8(void); -void sub_080466A8(Entity*); -void sub_08046668(Entity*); -void sub_08046518(void); -void sub_080467DC(Entity*); - extern u32 sub_08000E62(u32); extern void RegisterTransitionManager(void*, void (*)(), void (*)()); typedef struct { - u8 unk_00[0x18]; + Entity base; + u8 unk_68[0x8]; + u16 unk_70; + u8 unk_72[0x6]; + u8 unk_78; + u8 unk_79; + u16 unk_7a; + u8 unk_7c; + u8 unk_7d; + u8 unk_7e[1]; + u8 unk_7f; + u8 unk_80; + u8 unk_81[1]; + u8 unk_82; + u8 unk_83[5]; +} GyorgFemaleEntity; + +typedef struct { + GenericEntity* unk_00; + u8 unk_04[0xC]; + void* unk_10; + void* unk_14; u32 unk_18[0x8]; u16 unk_38; u16 unk_3a; u8 unk_3c; } GyorgFemaleHeap; -extern void (*const gUnk_080D1A64[])(Entity*); +void sub_08046498(); +void sub_0804660C(GyorgFemaleEntity*, u32); +void sub_080464C0(GyorgFemaleEntity*); +void sub_08046634(GyorgFemaleEntity*, u32); +void sub_080465C8(void); +void sub_080466A8(GyorgFemaleEntity*); +void sub_08046668(GyorgFemaleEntity*); +void sub_08046518(void); +void sub_080467DC(GyorgFemaleEntity*); + +extern void (*const gUnk_080D1A64[])(GyorgFemaleEntity*); +extern u32 gUnk_080D1A74[]; +extern u8 gUpdateVisibleTiles; +extern u8 gUnk_080B3E80[]; +extern u8 gUnk_080B37A0[]; +extern u16 gMetatileTypesTop[]; +extern const u16 gUnk_080D1A84[]; +extern const u8 gUnk_080D1AF4[]; +extern const u8 gUnk_080D1AF8[]; void GyorgFemale(Entity* this) { - gUnk_080D1A64[this->action](this); + gUnk_080D1A64[this->action]((GyorgFemaleEntity*)this); } -void sub_0804614C(Entity* this) { +void sub_0804614C(GyorgFemaleEntity* this) { Entity* tmp; if (gEntCount > 0x3d) return; tmp = CreateProjectile(0x22); tmp->type = 0; - tmp->parent = this; - ((Entity**)this->myHeap)[5] = tmp; + tmp->parent = super; + ((GyorgFemaleHeap*)super->myHeap)->unk_14 = tmp; tmp = CreateEnemy(GYORG_FEMALE_MOUTH, 0); - tmp->parent = this; - ((Entity**)this->myHeap)[4] = tmp; + tmp->parent = super; + ((GyorgFemaleHeap*)super->myHeap)->unk_10 = tmp; tmp = CreateEnemy(GYORG_FEMALE_EYE, 0); - tmp->parent = this; + tmp->parent = super; tmp = CreateEnemy(GYORG_FEMALE_EYE, 1); - tmp->parent = this; + tmp->parent = super; tmp = CreateEnemy(GYORG_FEMALE_EYE, 2); - tmp->parent = this; + tmp->parent = super; tmp = CreateEnemy(GYORG_FEMALE_EYE, 3); - tmp->parent = this; + tmp->parent = super; tmp = CreateEnemy(GYORG_FEMALE_EYE, 4); - tmp->parent = this; + tmp->parent = super; tmp = CreateEnemy(GYORG_FEMALE_EYE, 5); - tmp->parent = this; + tmp->parent = super; tmp = CreateEnemy(GYORG_FEMALE_EYE, 6); - tmp->parent = this; + tmp->parent = super; tmp = CreateEnemy(GYORG_FEMALE_EYE, 7); - tmp->parent = this; - this->action = 1; - this->spriteOrientation.flipY = 2; - this->spriteRendering.b3 = 2; - this->collisionLayer = 2; - this->field_0x78.HALF.LO = 0; - this->field_0x78.HALF.HI = 0; - this->field_0x70.HALF.LO = 0x3C; + tmp->parent = super; + super->action = 1; + super->spriteOrientation.flipY = 2; + super->spriteRendering.b3 = 2; + super->collisionLayer = 2; + this->unk_78 = 0; + this->unk_79 = 0; + this->unk_70 = 0x3C; MemClear(&gUnk_02019EE0, 0x8000); MemClear(&gMapDataTopSpecial, 0x8000); sub_0804660C(this, 0); @@ -87,136 +117,133 @@ void sub_0804614C(Entity* this) { #endif } -void sub_0804625C(Entity* this) { - if (this->field_0x78.HALF.HI & 0x80) { - this->field_0x78.HALF.HI &= ~0x80; - this->field_0x78.HALF.HI |= 0x40; - sub_0804660C(this, (this->field_0x78.HALF.HI & 3) << 6); +void sub_0804625C(GyorgFemaleEntity* this) { + if (this->unk_79 & 0x80) { + this->unk_79 &= ~0x80; + this->unk_79 |= 0x40; + sub_0804660C(this, (this->unk_79 & 3) << 6); } else { - if (this->field_0x78.HALF.HI & 0x40) { - this->field_0x78.HALF.HI &= ~0x40; + if (this->unk_79 & 0x40) { + this->unk_79 &= ~0x40; sub_080464C0(this); } } sub_080465C8(); - if (((Entity**)this->myHeap)[0]->field_0x6c.HWORD & 0x38) { - this->action = 2; - this->actionDelay = 0; - this->field_0x7a.HWORD = 0; - this->field_0x7c.BYTES.byte0 = 0; - this->field_0x7c.BYTES.byte1 = 0; - this->field_0x70.HALF.LO = 0x3c; - this->field_0x80.HALF.LO = 0; + if (((GyorgFemaleHeap*)super->myHeap)->unk_00->field_0x6c.HWORD & 0x38) { + super->action = 2; + super->actionDelay = 0; + this->unk_7a = 0; + this->unk_7c = 0; + this->unk_7d = 0; + this->unk_70 = 0x3c; + this->unk_80 = 0; return; } - if (((Entity**)this->myHeap)[0]->field_0x6c.HWORD & 0x40) { - this->action = 3; - this->field_0x70.HALF.LO = 0x3c; - this->actionDelay = 0; - this->field_0x7a.HWORD = 0; - this->field_0x7c.BYTES.byte0 = 0; - this->field_0x7c.BYTES.byte1 = 0; - this->field_0x80.HALF.LO = 0; + if (((GyorgFemaleHeap*)super->myHeap)->unk_00->field_0x6c.HWORD & 0x40) { + super->action = 3; + this->unk_70 = 0x3c; + super->actionDelay = 0; + this->unk_7a = 0; + this->unk_7c = 0; + this->unk_7d = 0; + this->unk_80 = 0; return; } - if (((Entity**)this->myHeap)[0]->field_0x6c.HWORD & 0x100) { - if (--this->field_0x70.HALF.LO == 0) { - this->field_0x70.HALF.LO = 0x168; + if (((GyorgFemaleHeap*)super->myHeap)->unk_00->field_0x6c.HWORD & 0x100) { + if (--this->unk_70 == 0) { + this->unk_70 = 0x168; sub_08046634(this, 1); } } } -void sub_0804632C(Entity* this) { +void sub_0804632C(GyorgFemaleEntity* this) { sub_080465C8(); sub_080466A8(this); - if (++this->field_0x7a.HWORD > 0x59f) { - this->field_0x7a.HWORD = 0; - this->field_0x7c.BYTES.byte0 = 0; - this->field_0x7c.BYTES.byte1 = 0; - this->field_0x80.HALF.LO = 0; + if (++this->unk_7a > 0x59f) { + this->unk_7a = 0; + this->unk_7c = 0; + this->unk_7d = 0; + this->unk_80 = 0; } else { - if (this->field_0x7a.HWORD == 0x78) { + if (this->unk_7a == 0x78) { sub_08046668(this); } else { - if (this->field_0x7a.HWORD == 0x528) { - this->field_0x78.HALF.LO = 0; + if (this->unk_7a == 0x528) { + this->unk_78 = 0; #ifndef EU - this->field_0x7c.BYTES.byte1 = 0; - this->field_0x7c.BYTES.byte3 = 0; + this->unk_7d = 0; + this->unk_7f = 0; #endif } } } - if (((Entity**)this->myHeap)[0]->field_0x6c.HWORD & 0x80 && --this->field_0x70.HALF.LO == 0) { - this->field_0x70.HALF.LO = 0x168; + if (((GyorgFemaleHeap*)super->myHeap)->unk_00->field_0x6c.HWORD & 0x80 && --this->unk_70 == 0) { + this->unk_70 = 0x168; sub_08046634(this, 0); } - if ((((Entity**)this->myHeap)[0]->field_0x6c.HWORD & 0x38) == 0) { - this->action = 1; - this->field_0x70.HALF.LO = 0x3c; + if ((((GyorgFemaleHeap*)super->myHeap)->unk_00->field_0x6c.HWORD & 0x38) == 0) { + super->action = 1; + this->unk_70 = 0x3c; #ifndef EU - this->field_0x78.HALF.LO = 0; + this->unk_78 = 0; #endif - this->field_0x80.HALF.LO = 0; + this->unk_80 = 0; } } -void sub_080463E4(Entity* this) { +void sub_080463E4(GyorgFemaleEntity* this) { sub_080465C8(); - if (--this->field_0x70.HALF_U.LO == 0) { - this->field_0x70.HALF.LO = 0x168; + if (--this->unk_70 == 0) { + this->unk_70 = 0x168; sub_08046634(this, 1); } sub_080466A8(this); - if (++this->field_0x7a.HWORD > 0x59f) { - this->field_0x7a.HWORD = 0; - this->field_0x7c.BYTES.byte0 = 0; - this->field_0x7c.BYTES.byte1 = 0; - this->field_0x80.HALF.LO = 0; + if (++this->unk_7a > 0x59f) { + this->unk_7a = 0; + this->unk_7c = 0; + this->unk_7d = 0; + this->unk_80 = 0; } else { - if (this->field_0x7a.HWORD == 0x78) { + if (this->unk_7a == 0x78) { sub_08046668(this); } else { - if (this->field_0x7a.HWORD == 0x528) { - this->field_0x78.HALF.LO = 0; + if (this->unk_7a == 0x528) { + this->unk_78 = 0; #ifndef EU - this->field_0x7c.BYTES.byte1 = 0; - this->field_0x7c.BYTES.byte3 = 0; + this->unk_7d = 0; + this->unk_7f = 0; #endif } } } - if (this->health == 0) { - this->action = 1; + if (super->health == 0) { + super->action = 1; #ifdef EU - this->field_0x78.HALF.LO = 0; + this->unk_78 = 0; #endif - this->field_0x70.HALF.LO = 0x3c; + this->unk_70 = 0x3c; #ifndef EU - this->field_0x78.HALF.LO = 0; + this->unk_78 = 0; #endif - this->field_0x80.HALF.LO = 0; + this->unk_80 = 0; SoundReq(0x128); } } #ifndef EU -void sub_08046498(Entity* this) { +void sub_08046498(GyorgFemaleEntity* this) { MemClear(&gUnk_02019EE0, 0x8000); MemClear(&gMapDataTopSpecial, 0x8000); sub_080464C0(this); } #endif -extern u32 gUnk_080D1A74[]; -extern u8 gUpdateVisibleTiles; - -void sub_080464C0(Entity* this) { +void sub_080464C0(GyorgFemaleEntity* this) { s32 i; u8* src; u8* dst; - sub_080197D4(gUnk_080D1A74[this->animationState >> 6]); + sub_080197D4(gUnk_080D1A74[super->animationState >> 6]); sub_08046518(); for (i = 0x20, src = ((u8*)&gUnk_02019EE0), dst = ((u8*)&gUnk_02019EE0) + 0x3260; i != 0; i--) { MemCopy(src, dst, 0x40); @@ -227,10 +254,6 @@ void sub_080464C0(Entity* this) { gUpdateVisibleTiles = 1; } -extern u8 gUnk_080B3E80[]; -extern u8 gUnk_080B37A0[]; -extern u16 gMetatileTypesTop[]; - NONMATCH("asm/non_matching/gyorg_female/sub_08046518.inc", void sub_08046518(void)) { u32 r5; u16* stack1; @@ -265,94 +288,88 @@ void sub_080465C8(void) { } } -extern const u16 gUnk_080D1A84[]; - -void sub_0804660C(Entity* this, u32 unk1) { +void sub_0804660C(GyorgFemaleEntity* this, u32 unk1) { const u16* p; - this->animationState = unk1; + super->animationState = unk1; p = &gUnk_080D1A84[unk1 >> 5]; - this->x.HALF.HI = p[0] + gRoomControls.roomOriginX; - this->y.HALF.HI = p[1] + gRoomControls.roomOriginY; + super->x.HALF.HI = p[0] + gRoomControls.roomOriginX; + super->y.HALF.HI = p[1] + gRoomControls.roomOriginY; } -extern const u8 gUnk_080D1AF4[]; - -void sub_08046634(Entity* this, u32 unk1) { +void sub_08046634(GyorgFemaleEntity* this, u32 unk1) { u32 tmp; if (unk1 == 0) { tmp = gUnk_080D1AF4[Random() & 3]; } else { tmp = Random() & 7; } - sub_080A1ED0(tmp, 0, this->animationState >> 3); + sub_080A1ED0(tmp, 0, super->animationState >> 3); } -extern const u8 gUnk_080D1AF8[]; - -void sub_08046668(Entity* this) { - if (this->health == 0) { +void sub_08046668(GyorgFemaleEntity* this) { + if (super->health == 0) { return; } #ifndef EU - if (this->field_0x78.HALF.LO == 0xFF) { + if (this->unk_78 == 0xFF) { return; } #endif - this->field_0x78.HALF.LO = gUnk_080D1AF8[Random() & 3]; - this->field_0x7c.BYTES.byte3 = 0; - this->field_0x82.HALF.LO = 0; + this->unk_78 = gUnk_080D1AF8[Random() & 3]; + this->unk_7f = 0; + this->unk_82 = 0; sub_080467DC(this); } -void sub_080466A8(Entity* this) { - if (this->field_0x7c.BYTES.byte0 != 0) { - this->field_0x7c.BYTES.byte1 |= this->field_0x7c.BYTES.byte0; - if (this->actionDelay == 0 && this->field_0x78.HALF.LO != 0xFF) { +void sub_080466A8(GyorgFemaleEntity* this) { + if (this->unk_7c != 0) { + this->unk_7d |= this->unk_7c; + if (super->actionDelay == 0 && this->unk_78 != 0xFF) { #ifndef EU - this->actionDelay = 4; + super->actionDelay = 4; #else - this->actionDelay = 3; + super->actionDelay = 3; #endif } - if (sub_08000E62(this->field_0x7c.BYTES.byte1) > 2) { - this->actionDelay = 0; - this->field_0x7c.BYTES.byte1 = 0; - this->field_0x78.HALF.LO = 0xFF; + if (sub_08000E62(this->unk_7d) > 2) { + super->actionDelay = 0; + this->unk_7d = 0; + this->unk_78 = 0xFF; SoundReq(0x127); - if (this->health != 0) { + if (super->health != 0) { sub_08080964(8, 0); - if (++this->field_0x82.HALF.LO <= 0xC) { - this->health--; + if (++this->unk_82 <= 0xC) { + super->health--; } - if (this->health == 0) { - this->field_0x78.HALF.LO = 0; - this->field_0x7a.HWORD = 0x528; + if (super->health == 0) { + this->unk_78 = 0; + this->unk_7a = 0x528; } else { - if (this->field_0x7c.BYTES.byte3 == 0) { - this->field_0x7c.BYTES.byte3 = 1; - this->field_0x7a.HWORD = 0x438; + if (this->unk_7f == 0) { + this->unk_7f = 1; + this->unk_7a = 0x438; } } } sub_080467DC(this); } } - if (this->actionDelay != 0 && this->field_0x78.HALF.LO != 0xFF && --this->actionDelay == 0) { + if (super->actionDelay != 0 && this->unk_78 != 0xFF && --super->actionDelay == 0) { Entity* tmp; - this->field_0x80.HALF.LO |= this->field_0x7c.BYTES.byte1; - this->field_0x7c.BYTES.byte1 = 0; + this->unk_80 |= this->unk_7d; + this->unk_7d = 0; sub_080467DC(this); #ifndef EU - if (((GyorgFemaleHeap*)this->myHeap)->unk_3c != 0xFF) { + if (((GyorgFemaleHeap*)super->myHeap)->unk_3c != 0xFF) { #endif tmp = &gPlayerEntity; - tmp->knockbackDirection = ((GyorgFemaleHeap*)this->myHeap)->unk_3c; + tmp->knockbackDirection = ((GyorgFemaleHeap*)super->myHeap)->unk_3c; tmp->iframes = 0xF4; tmp->knockbackDuration = 0xA; - tmp = CreateFx(this, 0x2C, 0); + tmp = CreateFx(super, 0x2C, 0); if (tmp) { - tmp->x.HALF.HI = ((GyorgFemaleHeap*)this->myHeap)->unk_38; - tmp->y.HALF.HI = ((GyorgFemaleHeap*)this->myHeap)->unk_3a; + tmp->x.HALF.HI = ((GyorgFemaleHeap*)super->myHeap)->unk_38; + tmp->y.HALF.HI = ((GyorgFemaleHeap*)super->myHeap)->unk_3a; tmp->collisionLayer = 1; UpdateSpriteForCollisionLayer(tmp); } @@ -360,12 +377,12 @@ void sub_080466A8(Entity* this) { } #endif } - this->field_0x7c.BYTES.byte0 = 0; + this->unk_7c = 0; } -void sub_080467DC(Entity* this) { +void sub_080467DC(GyorgFemaleEntity* this) { u32 i; for (i = 0; i < 8; i++) { - ((GyorgFemaleHeap*)this->myHeap)->unk_18[i] = 0; + ((GyorgFemaleHeap*)super->myHeap)->unk_18[i] = 0; } } From 7f0caf50fafe9f8a28e7a5fd256c5bb071ba2fb8 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Wed, 29 Dec 2021 15:03:34 +0100 Subject: [PATCH 065/168] GyorgFemaleEye to new entity style --- include/enemy/gyorg.h | 37 ++++++++++++++++++++ src/enemy/gyorgFemale.c | 30 +--------------- src/enemy/gyorgFemaleEye.c | 71 ++++++++++++++++---------------------- 3 files changed, 67 insertions(+), 71 deletions(-) create mode 100644 include/enemy/gyorg.h diff --git a/include/enemy/gyorg.h b/include/enemy/gyorg.h new file mode 100644 index 00000000..ea2e9ad1 --- /dev/null +++ b/include/enemy/gyorg.h @@ -0,0 +1,37 @@ +#ifndef ENEMY_GYORG_H +#define ENEMY_GYORG_H + +#include "enemy.h" + +typedef struct { + Entity base; + u8 unk_68[0x8]; + u16 unk_70; + u8 unk_72[0x6]; + u8 unk_78; + u8 unk_79; + u16 unk_7a; + u8 unk_7c; + u8 unk_7d; + u8 unk_7e[1]; + u8 unk_7f; + u8 unk_80; + u8 unk_81[1]; + u8 unk_82; + u8 unk_83[5]; +} GyorgFemaleEntity; + +typedef struct { + GenericEntity* unk_00; + u8 unk_04[0x4]; + Entity* unk_08; + Entity* unk_0c; + void* unk_10; + void* unk_14; + void* unk_18[0x8]; + u16 unk_38; + u16 unk_3a; + u8 unk_3c; +} GyorgFemaleHeap; + +#endif diff --git a/src/enemy/gyorgFemale.c b/src/enemy/gyorgFemale.c index 7e37bfb4..ac7e91ac 100644 --- a/src/enemy/gyorgFemale.c +++ b/src/enemy/gyorgFemale.c @@ -6,6 +6,7 @@ #include "audio.h" #include "asm.h" #include "functions.h" +#include "enemy/gyorg.h" extern u8 gEntCount; extern u8 gMapDataTopSpecial[]; @@ -17,35 +18,6 @@ extern void sub_080197D4(u32); extern u32 sub_08000E62(u32); extern void RegisterTransitionManager(void*, void (*)(), void (*)()); -typedef struct { - Entity base; - u8 unk_68[0x8]; - u16 unk_70; - u8 unk_72[0x6]; - u8 unk_78; - u8 unk_79; - u16 unk_7a; - u8 unk_7c; - u8 unk_7d; - u8 unk_7e[1]; - u8 unk_7f; - u8 unk_80; - u8 unk_81[1]; - u8 unk_82; - u8 unk_83[5]; -} GyorgFemaleEntity; - -typedef struct { - GenericEntity* unk_00; - u8 unk_04[0xC]; - void* unk_10; - void* unk_14; - u32 unk_18[0x8]; - u16 unk_38; - u16 unk_3a; - u8 unk_3c; -} GyorgFemaleHeap; - void sub_08046498(); void sub_0804660C(GyorgFemaleEntity*, u32); void sub_080464C0(GyorgFemaleEntity*); diff --git a/src/enemy/gyorgFemaleEye.c b/src/enemy/gyorgFemaleEye.c index a58cd017..65f84ece 100644 --- a/src/enemy/gyorgFemaleEye.c +++ b/src/enemy/gyorgFemaleEye.c @@ -1,27 +1,14 @@ -// #define NENT_DEPRECATED +#define NENT_DEPRECATED #include "global.h" #include "entity.h" #include "enemy.h" #include "player.h" #include "functions.h" - -typedef struct { - u8 unk_00[0x8]; - Entity* unk_08; - Entity* unk_0c; - u8 unk_10[0x08]; - void* unk_18[0x8]; - u16 unk_38; - u16 unk_3a; - u8 unk_3c; -} GyorgFemaleHeap; - -typedef struct { -} GyorgFemaleEyeHeap; +#include "enemy/gyorg.h" typedef struct { Entity base; - // u8 unk_68[0x20]; + u8 unk_68[0x20]; } GyorgFemaleEyeEntity; extern void (*const gUnk_080D1F64[])(GyorgFemaleEyeEntity*); @@ -32,7 +19,7 @@ extern const u8 gUnk_080D2010[]; void sub_08048D20(GyorgFemaleEyeEntity*); -u32 sub_08048D70(Entity*); // GyorgFemaleEntity* +u32 sub_08048D70(GyorgFemaleEntity*); void GyorgFemaleEye(Entity* this) { if (this->parent->next == NULL) { @@ -46,13 +33,13 @@ void sub_080489B4(GyorgFemaleEyeEntity* this) { } void sub_080489CC(GyorgFemaleEyeEntity* this) { - Entity* parent; + GyorgFemaleEntity* parent; if (super->health != 0xFF) { - parent = super->parent; + parent = (GyorgFemaleEntity*)super->parent; #ifndef EU - if ((parent->field_0x78.HALF.LO >> super->type) & 1) { + if ((parent->unk_78 >> super->type) & 1) { #endif - parent->field_0x7c.BYTES.byte0 |= (1 << super->type); + parent->unk_7c |= (1 << super->type); #ifndef EU switch (super->bitfield & 0x7F) { case 4 ... 6: @@ -60,14 +47,14 @@ void sub_080489CC(GyorgFemaleEyeEntity* this) { case 16 ... 18: case 24 ... 26: #endif - ((GyorgFemaleHeap*)parent->myHeap)->unk_18[super->type] = super->field_0x4c; - ((GyorgFemaleHeap*)parent->myHeap)->unk_38 = (gPlayerEntity.x.HALF.HI + super->x.HALF.HI) / 2; - ((GyorgFemaleHeap*)parent->myHeap)->unk_3a = (gPlayerEntity.y.HALF.HI + super->y.HALF.HI) / 2; - ((GyorgFemaleHeap*)parent->myHeap)->unk_3c = (super->knockbackDirection ^= 0x10); + ((GyorgFemaleHeap*)parent->base.myHeap)->unk_18[super->type] = super->field_0x4c; + ((GyorgFemaleHeap*)parent->base.myHeap)->unk_38 = (gPlayerEntity.x.HALF.HI + super->x.HALF.HI) / 2; + ((GyorgFemaleHeap*)parent->base.myHeap)->unk_3a = (gPlayerEntity.y.HALF.HI + super->y.HALF.HI) / 2; + ((GyorgFemaleHeap*)parent->base.myHeap)->unk_3c = (super->knockbackDirection ^= 0x10); #ifndef EU break; default: - ((GyorgFemaleHeap*)parent->myHeap)->unk_3c = 0xFF; + ((GyorgFemaleHeap*)parent->base.myHeap)->unk_3c = 0xFF; break; } } @@ -88,9 +75,9 @@ void sub_08048AF0(GyorgFemaleEyeEntity* this) { } void sub_08048B2C(GyorgFemaleEyeEntity* this) { - Entity* parent; + GyorgFemaleEntity* parent; sub_08048D20(this); - parent = super->parent; + parent = (GyorgFemaleEntity*)super->parent; if (sub_08048D70(parent)) { if (!super->spriteSettings.draw) { CreateFx(super, 2, 0x40); @@ -99,7 +86,7 @@ void sub_08048B2C(GyorgFemaleEyeEntity* this) { } else { super->spriteSettings.draw = 0; } - if ((parent->field_0x78.HALF.LO >> super->type) & 1) { + if ((parent->unk_78 >> super->type) & 1) { super->action = 2; } } @@ -114,9 +101,9 @@ void sub_08048B84(GyorgFemaleEyeEntity* this) { } void sub_08048BB0(GyorgFemaleEyeEntity* this) { - Entity* parent = super->parent; - if (!((parent->field_0x78.HALF.LO >> super->type) & 1)) { - if (parent->health != 0) { + GyorgFemaleEntity* parent = (GyorgFemaleEntity*)super->parent; + if (!((parent->unk_78 >> super->type) & 1)) { + if (parent->base.health != 0) { super->action = 4; super->flags &= ~0x80; InitializeAnimation(super, gUnk_080D2030[(super->animationState << 3) + super->type]); @@ -128,11 +115,11 @@ void sub_08048BB0(GyorgFemaleEyeEntity* this) { CreateFx(super, 2, 0x40); } } else { - if ((parent->field_0x80.HALF.LO >> super->type) & 1) { + if ((parent->unk_80 >> super->type) & 1) { if (super->animIndex <= 0x13) { super->iframes = 0xF4; super->hitType = 0x89; - InitializeAnimation(super, (parent->animationState >> 6) + 0x14); + InitializeAnimation(super, (parent->base.animationState >> 6) + 0x14); SoundReq(0x119); } GetNextFrame(super); @@ -140,10 +127,10 @@ void sub_08048BB0(GyorgFemaleEyeEntity* this) { super->hitType = 0x1E; InitializeAnimation(super, gUnk_080D2010[(super->animationState << 3) + super->type]); UpdateAnimationVariableFrames(super, 7); - parent->field_0x80.HALF.LO &= ~(1 << super->type); + parent->unk_80 &= ~(1 << super->type); } } else { - if (parent->field_0x78.HALF.LO == 0xFF) { + if (parent->unk_78 == 0xFF) { u32 tmp = super->animIndex; if (tmp < 0x10 || tmp > 0x13) { InitializeAnimation(super, super->animationState + 0x10); @@ -170,9 +157,9 @@ typedef struct { extern const xy gUnk_080D1F90[]; void sub_08048D20(GyorgFemaleEyeEntity* this) { - Entity* parent = super->parent; + GyorgFemaleEntity* parent = (GyorgFemaleEntity*)super->parent; const xy* tmp; - u32 tmp2 = (parent->animationState >> 6); + u32 tmp2 = (parent->base.animationState >> 6); if (tmp2 != super->animationState) { super->animationState = tmp2; tmp = &gUnk_080D1F90[super->type + (tmp2 << 3)]; @@ -182,14 +169,14 @@ void sub_08048D20(GyorgFemaleEyeEntity* this) { } } -u32 sub_08048D70(Entity* parent) { +u32 sub_08048D70(GyorgFemaleEntity* parent) { Entity* tmp; - if (parent->health != 0) { + if (parent->base.health != 0) { return 1; } - tmp = ((GyorgFemaleHeap*)parent->myHeap)->unk_08; + tmp = ((GyorgFemaleHeap*)parent->base.myHeap)->unk_08; if (!tmp) { - tmp = ((GyorgFemaleHeap*)parent->myHeap)->unk_0c; + tmp = ((GyorgFemaleHeap*)parent->base.myHeap)->unk_0c; } if (tmp->health != 0) { return 0; From e589f75cf22b757688f3f2aecd72c4af0455d408 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Wed, 29 Dec 2021 15:25:53 +0100 Subject: [PATCH 066/168] GyorgFemaleMouth.c: ok --- asm/gyorgFemaleMouth.s | 115 ----------------------------------- linker.ld | 2 +- src/enemy/gyorgFemaleMouth.c | 42 +++++++++++++ 3 files changed, 43 insertions(+), 116 deletions(-) delete mode 100644 asm/gyorgFemaleMouth.s create mode 100644 src/enemy/gyorgFemaleMouth.c diff --git a/asm/gyorgFemaleMouth.s b/asm/gyorgFemaleMouth.s deleted file mode 100644 index 007356a9..00000000 --- a/asm/gyorgFemaleMouth.s +++ /dev/null @@ -1,115 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start GyorgFemaleMouth -GyorgFemaleMouth: @ 0x08048F8C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08048F9C - bl DeleteThisEntity -_08048F9C: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08048FD4 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - movs r0, #0xff - strb r0, [r4, #0x14] -_08048FD4: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #5 - lsls r6, r0, #0x18 - lsrs r5, r6, #0x18 - ldrb r0, [r4, #0x14] - cmp r5, r0 - beq _08049018 - strb r5, [r4, #0x14] - ldr r3, _08049010 @ =gUnk_080D28CC - lsls r1, r5, #1 - adds r1, r1, r3 - ldr r2, _08049014 @ =gRoomControls - ldrh r0, [r2, #6] - ldrh r1, [r1] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - adds r1, r5, #1 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r2, #8] - ldrh r1, [r1] - adds r0, r0, r1 - strh r0, [r4, #0x32] - lsrs r1, r6, #0x19 - adds r0, r4, #0 - bl InitializeAnimation - b _0804901E - .align 2, 0 -_08049010: .4byte gUnk_080D28CC -_08049014: .4byte gRoomControls -_08049018: - adds r0, r4, #0 - bl GetNextFrame -_0804901E: - movs r0, #2 - ands r0, r5 - cmp r0, #0 - beq _08049038 - ldr r0, _08049034 @ =gPlayerEntity - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x32 - ldrsh r0, [r0, r2] - b _08049042 - .align 2, 0 -_08049034: .4byte gPlayerEntity -_08049038: - ldr r0, _08049054 @ =gPlayerEntity - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] -_08049042: - cmp r1, r0 - bge _08049048 - adds r5, #1 -_08049048: - ldr r0, _08049058 @ =gUnk_080D28AC - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r4, #0x48] - pop {r4, r5, r6, pc} - .align 2, 0 -_08049054: .4byte gPlayerEntity -_08049058: .4byte gUnk_080D28AC diff --git a/linker.ld b/linker.ld index 25b0b1f9..1cc69720 100644 --- a/linker.ld +++ b/linker.ld @@ -468,7 +468,7 @@ SECTIONS { asm/gyorgChild.o(.text); src/enemy/gyorgFemaleEye.o(.text); asm/enemy62.o(.text); - asm/gyorgFemaleMouth.o(.text); + src/enemy/gyorgFemaleMouth.o(.text); asm/enemy64.o(.text); src/enemy/treeItem.o(.text); asm/enemy66.o(.text); diff --git a/src/enemy/gyorgFemaleMouth.c b/src/enemy/gyorgFemaleMouth.c new file mode 100644 index 00000000..d326f287 --- /dev/null +++ b/src/enemy/gyorgFemaleMouth.c @@ -0,0 +1,42 @@ +#define NENT_DEPRECATED +#include "global.h" +#include "player.h" +#include "room.h" +#include "enemy/gyorg.h" + +extern const u16 gUnk_080D28CC[]; +extern Hitbox* const gUnk_080D28AC[]; + +void GyorgFemaleMouth(Entity* this) { + u32 tmp; + if (this->parent->next == NULL) { + DeleteThisEntity(); + } + if (this->action == 0) { + this->action = 1; + this->spriteOrientation.flipY = 2; + this->spriteRendering.b3 = 2; + this->spritePriority.b0 = 7; + this->collisionLayer = 2; + this->animationState = 0xFF; + } + tmp = this->parent->animationState >> 5; + if (tmp != this->animationState) { + this->animationState = tmp; + this->x.HALF.HI = gUnk_080D28CC[tmp] + gRoomControls.roomOriginX; + this->y.HALF.HI = gUnk_080D28CC[tmp + 1] + gRoomControls.roomOriginY; + InitializeAnimation(this, tmp >> 1); + } else { + GetNextFrame(this); + } + if (tmp & 2) { + if (this->y.HALF.HI < gPlayerEntity.y.HALF.HI) { + tmp++; + } + } else { + if (this->x.HALF.HI < gPlayerEntity.x.HALF.HI) { + tmp++; + } + } + this->hitbox = gUnk_080D28AC[tmp]; +} From 3a2172db8d67cc72bbd098566a2146e43439c3f8 Mon Sep 17 00:00:00 2001 From: notyourav <65437533+notyourav@users.noreply.github.com> Date: Wed, 29 Dec 2021 19:30:31 -0800 Subject: [PATCH 067/168] Update CONTRIBUTING.md --- CONTRIBUTING.md | 98 ++++++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 51 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 630676b4..1b8e5c60 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -83,11 +83,10 @@ Then, start translating the code to `src/evilSpirit.c`, bit by bit: adds r4, r0, #0 ``` ```c - void sub_08086284(u8 *r4) { + void sub_08086284(u8* r0) { ``` --- ```asm - add r4, r0, #0 ldr r1, _080862B4 @ =gUnk_08120668 ldrb r0, [r4, #0xc] lsl r0, r0, #0x2 @@ -97,7 +96,7 @@ Then, start translating the code to `src/evilSpirit.c`, bit by bit: bl _call_via_r1 ``` ```c - gUnk_08120668[*(u8 *)(r4 + 12)](r4); + gUnk_08120668[*(u8 *)(r0 + 0xc)](r0); ``` --- @@ -109,7 +108,7 @@ Then, start translating the code to `src/evilSpirit.c`, bit by bit: strb r0, [r1] ``` ```c - *(u8 *)(r4 + 65) = 0; + *(u8 *)(r0 + 0x41) = 0; ``` --- ```asm @@ -123,7 +122,7 @@ Then, start translating the code to `src/evilSpirit.c`, bit by bit: bl sub_0805EC9C ``` ```c - sub_0805EC9C(r4, *(u16 *)(r4 + 118), *(u16 *)(r4 + 122), 0); + sub_0805EC9C(r0, *(u16 *)(r0 + 0x76), *(u16 *)(r0 + 0x7a), 0); ``` --- ```asm @@ -132,10 +131,14 @@ Then, start translating the code to `src/evilSpirit.c`, bit by bit: ```c return; ``` -The type signature of the function depends on the return type. -* `pop {r4, pc}`: `void` +The type signature of the function depends on the return type. Return values are stored in r0, +so pay attention to how the assembly treats this register toward the end of the function. +ex: * `add r0, r4, #0` - `pop {r4, pc}`: `void`, `*` + + `pop {r4, pc}` + +The compiler chose to move a value into r0 here; the most likely explanation is that it's returning something. You will need to look at the caller and the function prologue to determine the exact type if not void. @@ -145,11 +148,10 @@ Since it only used `pop {r4, pc}`, it's probably `void`. Putting it all together, we get: ```c -void sub_08086284(u8 *r4) { -{ - gUnk_08120668[*(u8 *)(r4 + 12)](r4); - *(u8 *)(r4 + 65) = 0; - sub_0805EC9C(r4, *(u16 *)(r4 + 118), *(u16 *)(r4 + 122), 0); +void sub_08086284(u8 *r0) { + gUnk_08120668[*(u8 *)(r0 + 0xc)](r0); + *(u8 *)(r0 + 0x41) = 0; + sub_0805EC9C(r0, *(u16 *)(r0 + 0x76), *(u16 *)(r0 + 0x7a), 0); return; } ``` @@ -160,10 +162,10 @@ void sub_08086284(u8 *r4) { This line doesn't look quite right. ```c - gUnk_08120668[*(u8 *)(r4 + 12)](r4); + gUnk_08120668[*(u8 *)(r0 + 0xc)](r0); ``` -What is `r4`? Since this function corresponds to an entity, we should first try to assign r4 to an`Entity` struct. +What is `r0`? Since this function corresponds to an entity, we should first try to assign r0 to an `Entity` struct. You can find out what this is with `git grep`: ```sh @@ -176,39 +178,35 @@ include/entity.h:typedef struct Entity So it's a struct called `Entity`. Let's look in `entity.h`: ```c -typedef struct Entity -{ - u32 *field_0x0; - u32 * field_0x4; - EntityType entityType; - u8 action; - u8 subAction; - u8 actionDelay; - u8 field_0xf; - u8 flags; - +typedef struct Entity_ { + /*0x00*/ struct Entity_* prev; + /*0x04*/ struct Entity_* next; + /*0x08*/ u8 kind; + /*0x09*/ u8 id; + /*0x0a*/ u8 type; + /*0x0b*/ u8 type2; + /*0x0c*/ u8 action; + /*0x0d*/ u8 subAction; ... - } Entity; ``` --- What's the 12th byte in this struct? ```c - u32 *field_0x0; //0-3 - u32 * field_0x4; //4-7 - EntityType entityType; //8-11 - u8 action; //12 - u8 subAction; //13 + /*0x00*/ struct Entity_* prev; + /*0x04*/ struct Entity_* next; + ... + /*0x0c*/ u8 action; <- ``` --- -The 12th byte belongs to `action`. We can substitute this in by replacing r4's parameter type and adding in the member names. +The 12th byte belongs to `action`. We can substitute this in by replacing r0's parameter type and adding in the member names. ```c -void sub_08086284(Entity *r4) { - gUnk_08120668[r4->action](r4); +void sub_08086284(Entity *r0) { + gUnk_08120668[r0->action](r0); ``` Much better. @@ -216,35 +214,33 @@ Much better. --- ```c -void sub_08086284(Entity *r4) { - - gUnk_08120668[r4->action](r4); - r4->bitfield = 0; - sub_0805EC9C(r4, *((u16 *)&r4->heldObjectPtr + 1), r4->field_0x7a, 0); +void sub_08086284(Entity *r0) { + gUnk_08120668[r0->action](r0); + r0->bitfield = 0; + sub_0805EC9C(r0, r0->field_0x76.HWORD, r0->field_0x7a.HWORD, 0); return; } ``` -The second of the function that is called uses an offset right in the middle of `heldObjectPtr`. Something seems wrong. -We can ignore this for now, since we can come back to that later. -Right now we are just concerned with making the function match, even if it isn't pretty. +The fields at the end of of `Entity` are general purpose. For this reason the fields are defined as unions so the proper data size may be loaded. +This isn't pretty, but right now we are just concerned with making the function match. Later on we can define these entity-specific fields. ## 5. Build ```sh make ``` -```gcc +``` src/evilSpirit.c: In function `sub_08086284': -src/evilSpirit.c:5: `r4' undeclared (first use in this function) +src/evilSpirit.c:4: syntax error before `*' src/evilSpirit.c:5: `gUnk_08120668' undeclared (first use in this function) src/evilSpirit.c:5: (Each undeclared identifier is reported only once for each function it appears in.) src/evilSpirit.c:7: warning: implicit declaration of function `sub_0805EC9C' ``` -We got some errors. We need to tell the compiler what `gUnk_08120668`, `r4`, and `sub_0805EC9C` are. +We got some errors. We need to tell the compiler what `gUnk_08120668`, `Entity`, and `sub_0805EC9C` are. -We know `r4` is an `Entity`, which is from `entity.h`. We can declare this above the function: +We know `r0` is an `Entity`, which is from `entity.h`. We can declare this above the function: ```c #include "entity.h" ``` @@ -265,10 +261,10 @@ Now our file looks like this: extern void sub_0805EC9C(); extern void (*gUnk_08120668[])(Entity *); -void sub_08086284(Entity *r4) { - gUnk_08120668[r4->action](r4); - r4->bitfield = 0; - sub_0805EC9C(r4, *((u16 *)&r4->heldObjectPtr + 1), r4->field_0x7a, 0); +void sub_08086284(Entity *r0) { + gUnk_08120668[r0->action](r0); + r0->bitfield = 0; + sub_0805EC9C(r0, r0->field_0x76.HWORD, r0->field_0x7a.HWORD, 0); return; } ``` From 10293e00d35eed14f0dafeed345e96d5e7cb58f9 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Thu, 30 Dec 2021 10:51:41 +0200 Subject: [PATCH 068/168] Decompile bowMoblin.s --- asm/enemy/bowMoblin.s | 717 -------------------- asm/non_matching/bowMoblin/sub_0803C4B0.inc | 98 +++ linker.ld | 1 - src/enemy/bowMoblin.c | 339 +++++++++ 4 files changed, 437 insertions(+), 718 deletions(-) delete mode 100644 asm/enemy/bowMoblin.s create mode 100644 asm/non_matching/bowMoblin/sub_0803C4B0.inc diff --git a/asm/enemy/bowMoblin.s b/asm/enemy/bowMoblin.s deleted file mode 100644 index 1a005d0f..00000000 --- a/asm/enemy/bowMoblin.s +++ /dev/null @@ -1,717 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0803C1E0 -sub_0803C1E0: @ 0x0803C1E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r1, #0 - movs r2, #1 - strb r2, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x7b - strb r1, [r0] - adds r0, #5 - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - subs r0, #7 - strb r1, [r0] - adds r0, #8 - strb r2, [r0] - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803C228 - ldrb r1, [r4, #0xb] - lsls r0, r1, #1 - strb r0, [r4, #0x14] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - lsls r1, r1, #3 - strb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_0803C690 - b _0803C232 -_0803C228: - movs r0, #0x10 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803C4B0 -_0803C232: - pop {r4, pc} - - thumb_func_start sub_0803C234 -sub_0803C234: @ 0x0803C234 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - beq _0803C246 - subs r0, #1 - strb r0, [r1] -_0803C246: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803C292 - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r2, r0, #1 - strb r2, [r1] - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0xf - bls _0803C26E - adds r0, r4, #0 - bl sub_0803C5C4 - b _0803C2D2 -_0803C26E: - movs r0, #3 - ands r2, r0 - cmp r2, #0 - bne _0803C28A - bl Random - movs r1, #0x10 - ands r1, r0 - cmp r1, #0 - beq _0803C28A - adds r0, r4, #0 - bl sub_0803C624 - b _0803C2D2 -_0803C28A: - adds r0, r4, #0 - bl sub_0803C4B0 - b _0803C2D2 -_0803C292: - adds r0, r4, #0 - bl sub_0803C6F8 - cmp r0, #0 - beq _0803C2C2 - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x83 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803C690 - b _0803C2D2 -_0803C2C2: - adds r0, r4, #0 - bl sub_0803C568 - cmp r0, #0 - beq _0803C2D2 - adds r0, r4, #0 - bl sub_0803C5F0 -_0803C2D2: - adds r0, r4, #0 - bl sub_0803C6DC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C2DC -sub_0803C2DC: @ 0x0803C2DC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0803C308 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x82 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803C4B0 - b _0803C31E -_0803C308: - adds r0, r4, #0 - bl sub_0803C568 - cmp r0, #0 - beq _0803C31E - adds r2, r4, #0 - adds r2, #0x7b - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_0803C31E: - ldrb r0, [r4, #0xf] - cmp r0, #0xb - bls _0803C336 - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _0803C33A - adds r0, r4, #0 - bl sub_0803C5F0 - b _0803C33A -_0803C336: - adds r0, #1 - strb r0, [r4, #0xf] -_0803C33A: - adds r0, r4, #0 - bl sub_0803C6DC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C344 -sub_0803C344: @ 0x0803C344 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803C3F8 - adds r0, r4, #0 - adds r0, #0x82 - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #5 - bhi _0803C3C8 - lsls r0, r1, #2 - ldr r1, _0803C36C @ =_0803C370 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803C36C: .4byte _0803C370 -_0803C370: @ jump table - .4byte _0803C3C8 @ case 0 - .4byte _0803C3C8 @ case 1 - .4byte _0803C3A6 @ case 2 - .4byte _0803C388 @ case 3 - .4byte _0803C3BE @ case 4 - .4byte _0803C39C @ case 5 -_0803C388: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - b _0803C3E2 -_0803C39C: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - b _0803C3E2 -_0803C3A6: - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strh r1, [r4, #0x24] - bl Random - movs r1, #7 - ands r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x40 - b _0803C3E0 -_0803C3BE: - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] -_0803C3C8: - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r2] - movs r0, #0x80 - strh r0, [r4, #0x24] - bl Random - movs r1, #7 - ands r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x22 -_0803C3E0: - strb r1, [r4, #0xe] -_0803C3E2: - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803C690 -_0803C3F8: - adds r0, r4, #0 - bl sub_0803C6DC - pop {r4, pc} - - thumb_func_start sub_0803C400 -sub_0803C400: @ 0x0803C400 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r1, r0, #0 - cmp r1, #0 - beq _0803C458 - subs r0, #1 - strb r0, [r4, #0xf] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0803C4AC - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #3 - bne _0803C450 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ands r0, r2 - cmp r0, #2 - bhi _0803C450 - bl Random - movs r1, #0xc0 - ands r1, r0 - cmp r1, #0 - beq _0803C450 - strb r5, [r4, #0xe] - adds r0, r4, #0 - bl sub_0803C690 - adds r0, r4, #0 - bl sub_0803C6DC - b _0803C4AC -_0803C450: - adds r0, r4, #0 - bl sub_0803C634 - b _0803C4AC -_0803C458: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0803C46C - cmp r0, #0x18 - beq _0803C494 - b _0803C49A -_0803C46C: - ldrb r2, [r4, #0x14] - lsls r0, r2, #2 - strb r0, [r4, #0x15] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x19 - adds r0, r4, #0 - movs r1, #0xd - bl CreateProjectileWithParent - adds r2, r0, #0 - cmp r2, #0 - beq _0803C49A - str r2, [r4, #0x54] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r2, #0x15] - str r4, [r2, #0x50] - b _0803C49A -_0803C494: - strb r1, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] -_0803C49A: - adds r0, r4, #0 - bl sub_0803C6DC - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0803C4AC - adds r0, r4, #0 - bl sub_0803C714 -_0803C4AC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803C4B0 -sub_0803C4B0: @ 0x0803C4B0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r1, #0 - strb r1, [r5, #0xf] - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #1 - bne _0803C54C - bl Random - ldr r1, _0803C4F0 @ =gUnk_080CFFA4 - movs r7, #7 - ands r0, r7 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xe] - movs r0, #0x80 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0803C4F4 - bl Random - adds r4, r0, #0 - movs r0, #6 - ands r4, r0 - lsls r0, r4, #2 - strb r0, [r5, #0x15] - b _0803C556 - .align 2, 0 -_0803C4F0: .4byte gUnk_080CFFA4 -_0803C4F4: - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - adds r6, r5, #0 - adds r6, #0x83 - ldrb r0, [r6] - cmp r0, #0 - bne _0803C520 - bl Random - ldr r2, _0803C51C @ =gUnk_080CFFAC - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r4, r4, r0 - b _0803C53E - .align 2, 0 -_0803C51C: .4byte gUnk_080CFFAC -_0803C520: - bl Random - ldr r1, _0803C548 @ =gUnk_080CFFAC - ands r0, r7 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r4, r0 - ldrb r0, [r5, #0xe] - adds r0, #0x10 - strb r0, [r5, #0xe] - ldrb r0, [r6] - subs r0, #1 - strb r0, [r6] -_0803C53E: - adds r0, r4, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - b _0803C554 - .align 2, 0 -_0803C548: .4byte gUnk_080CFFAC -_0803C54C: - movs r0, #0xc - strb r0, [r5, #0xe] - strh r1, [r5, #0x24] - ldrb r0, [r5, #0x15] -_0803C554: - lsrs r4, r0, #2 -_0803C556: - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _0803C564 - strb r4, [r5, #0x14] - adds r0, r5, #0 - bl sub_0803C690 -_0803C564: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0803C568 -sub_0803C568: @ 0x0803C568 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - bne _0803C5C0 - movs r0, #1 - bl sub_08049DF4 - adds r4, r0, #0 - cmp r4, #0 - beq _0803C5C0 - adds r0, r5, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #2 - bne _0803C598 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x30 - bl sub_0806FC80 - cmp r0, #0 - bne _0803C5BC -_0803C598: - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x40 - bl sub_0806FC80 - cmp r0, #0 - beq _0803C5C0 - adds r0, r5, #0 - adds r1, r4, #0 - bl GetFacingDirection - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - ldrb r5, [r5, #0x14] - cmp r0, r5 - bne _0803C5C0 -_0803C5BC: - movs r0, #1 - b _0803C5C2 -_0803C5C0: - movs r0, #0 -_0803C5C2: - pop {r4, r5, pc} - - thumb_func_start sub_0803C5C4 -sub_0803C5C4: @ 0x0803C5C4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x83 - ldrb r0, [r1] - lsrs r0, r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803C664 - adds r4, #0x82 - movs r0, #2 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_0803C5F0 -sub_0803C5F0: @ 0x0803C5F0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049F84 - movs r2, #0 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x83 - strb r2, [r0] - subs r0, #9 - strb r2, [r0] - adds r0, r4, #0 - bl sub_0803C664 - adds r4, #0x82 - movs r0, #3 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C624 -sub_0803C624: @ 0x0803C624 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803C664 - adds r4, #0x82 - movs r0, #5 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_0803C634 -sub_0803C634: @ 0x0803C634 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - movs r1, #0 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x83 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0803C664 - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - strb r0, [r4, #0xe] - adds r4, #0x82 - movs r0, #4 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_0803C664 -sub_0803C664: @ 0x0803C664 - push {lr} - adds r2, r0, #0 - movs r1, #0 - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0x20 - strb r0, [r2, #0xe] - strb r1, [r2, #0xf] - adds r0, r2, #0 - adds r0, #0x80 - strb r1, [r0] - subs r0, #5 - strb r1, [r0] - movs r0, #0 - strh r1, [r2, #0x24] - adds r1, r2, #0 - adds r1, #0x82 - strb r0, [r1] - adds r0, r2, #0 - bl sub_0803C690 - pop {pc} - - thumb_func_start sub_0803C690 -sub_0803C690: @ 0x0803C690 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0x14] - lsrs r2, r0, #1 - adds r0, r3, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #5 - bhi _0803C6D2 - lsls r0, r0, #2 - ldr r1, _0803C6AC @ =_0803C6B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803C6AC: .4byte _0803C6B0 -_0803C6B0: @ jump table - .4byte _0803C6D2 @ case 0 - .4byte _0803C6C8 @ case 1 - .4byte _0803C6D0 @ case 2 - .4byte _0803C6CC @ case 3 - .4byte _0803C6C8 @ case 4 - .4byte _0803C6CC @ case 5 -_0803C6C8: - adds r2, #4 - b _0803C6D2 -_0803C6CC: - adds r2, #8 - b _0803C6D2 -_0803C6D0: - adds r2, #0xc -_0803C6D2: - adds r0, r3, #0 - adds r1, r2, #0 - bl InitializeAnimation - pop {pc} - - thumb_func_start sub_0803C6DC -sub_0803C6DC: @ 0x0803C6DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - bne _0803C6EA - strh r0, [r4, #0x24] -_0803C6EA: - adds r0, r4, #0 - bl ProcessMovement - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - - thumb_func_start sub_0803C6F8 -sub_0803C6F8: @ 0x0803C6F8 - ldr r2, _0803C710 @ =gUnk_080CFFBC - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r0, #0x2a] - ldrh r1, [r1] - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_0803C710: .4byte gUnk_080CFFBC - - thumb_func_start sub_0803C714 -sub_0803C714: @ 0x0803C714 - push {lr} - ldr r1, [r0, #0x54] - ldrb r3, [r0, #0x14] - ldr r2, _0803C734 @ =gUnk_080CFFC4 - adds r3, r3, r2 - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - bl PositionRelative - pop {pc} - .align 2, 0 -_0803C734: .4byte gUnk_080CFFC4 diff --git a/asm/non_matching/bowMoblin/sub_0803C4B0.inc b/asm/non_matching/bowMoblin/sub_0803C4B0.inc new file mode 100644 index 00000000..4e3a0ffb --- /dev/null +++ b/asm/non_matching/bowMoblin/sub_0803C4B0.inc @@ -0,0 +1,98 @@ + + + .syntax unified + + .text + + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r1, #0 + strb r1, [r5, #0xf] + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #1 + bne _0803C54C + bl Random + ldr r1, _0803C4F0 @ =gUnk_080CFFA4 + movs r7, #7 + ands r0, r7 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + movs r0, #0x80 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0803C4F4 + bl Random + adds r4, r0, #0 + movs r0, #6 + ands r4, r0 + lsls r0, r4, #2 + strb r0, [r5, #0x15] + b _0803C556 + .align 2, 0 +_0803C4F0: .4byte gUnk_080CFFA4 +_0803C4F4: + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + adds r6, r5, #0 + adds r6, #0x83 + ldrb r0, [r6] + cmp r0, #0 + bne _0803C520 + bl Random + ldr r2, _0803C51C @ =gUnk_080CFFAC + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r4, r4, r0 + b _0803C53E + .align 2, 0 +_0803C51C: .4byte gUnk_080CFFAC +_0803C520: + bl Random + ldr r1, _0803C548 @ =gUnk_080CFFAC + ands r0, r7 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r4, r0 + ldrb r0, [r5, #0xe] + adds r0, #0x10 + strb r0, [r5, #0xe] + ldrb r0, [r6] + subs r0, #1 + strb r0, [r6] +_0803C53E: + adds r0, r4, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _0803C554 + .align 2, 0 +_0803C548: .4byte gUnk_080CFFAC +_0803C54C: + movs r0, #0xc + strb r0, [r5, #0xe] + strh r1, [r5, #0x24] + ldrb r0, [r5, #0x15] +_0803C554: + lsrs r4, r0, #2 +_0803C556: + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _0803C564 + strb r4, [r5, #0x14] + adds r0, r5, #0 + bl sub_0803C690 +_0803C564: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + .syntax divided \ No newline at end of file diff --git a/linker.ld b/linker.ld index 76401066..f3936118 100644 --- a/linker.ld +++ b/linker.ld @@ -438,7 +438,6 @@ SECTIONS { src/enemy/mazaalBracelet.o(.text); asm/enemy/takkuri.o(.text); src/enemy/bowMoblin.o(.text); - asm/enemy/bowMoblin.o(.text); src/enemy/lakitu.o(.text); src/enemy/lakituCloud.o(.text); asm/enemy/enemy49.o(.text); diff --git a/src/enemy/bowMoblin.c b/src/enemy/bowMoblin.c index c9605ce2..74899e8f 100644 --- a/src/enemy/bowMoblin.c +++ b/src/enemy/bowMoblin.c @@ -4,10 +4,27 @@ #include "functions.h" extern void sub_0803C5F0(Entity*); +extern void sub_0803C690(Entity*); +extern void sub_0803C4B0(Entity*); +extern void sub_0803C5C4(Entity*); +extern void sub_0803C624(Entity*); +extern void sub_0803C6DC(Entity*); +extern void sub_0803C714(Entity*); +extern void sub_0803C634(Entity*); +extern u32 sub_0803C6F8(Entity*); +extern u32 sub_0803C568(Entity*); +extern Entity* sub_08049DF4(u32); +extern u32 sub_0806FC80(Entity*, Entity*, s32); +extern void sub_0803C664(Entity*); extern void (*const gUnk_080CFF78[])(Entity*); extern void (*const gUnk_080CFF90[])(Entity*); +extern const s8 gUnk_080CFFC4[8]; +extern const s8 gUnk_080CFFA4[8]; +extern const s8 gUnk_080CFFAC[16]; +extern const u16 gUnk_080CFFBC[4]; + void BowMoblin(Entity* this) { EnemyFunctionHandler(this, gUnk_080CFF78); SetChildOffset(this, 0, 1, -0x18); @@ -35,3 +52,325 @@ void sub_0803C198(Entity* this) { void nullsub_168(Entity* this) { } + +void sub_0803C1E0(Entity* this) { + sub_0804A720(this); + + this->action = 1; + this->field_0x7a.HALF.HI = 0; + this->field_0x80.HALF.LO = 0; + this->field_0x82.HALF.HI = 0; + this->field_0x80.HALF.HI = 0; + this->field_0x7a.HALF.LO = 0; + this->field_0x82.HALF.LO = 1; + + if (this->actionDelay) { + this->animationState = this->type2 << 1; + this->actionDelay = 0x1e; + this->speed = 0x80; + this->direction = this->type2 << 3; + sub_0803C690(this); + } else { + this->animationState = 0x10; + sub_0803C4B0(this); + } +} + +void sub_0803C234(Entity* this) { + u8 mask; + if (this->field_0x80.HALF.HI) { + this->field_0x80.HALF.HI--; + } + mask = 0xff; + if (((--this->actionDelay) & mask) == 0) { + u8 tmp = ++this->field_0x80.HALF.LO; + + if ((tmp) > 0xf) { + sub_0803C5C4(this); + } else if (((this->field_0x80.HALF.LO & 0x3) == 0) && (Random() & 0x10)) { + sub_0803C624(this); + } else { + sub_0803C4B0(this); + } + + } else if (sub_0803C6F8(this)) { + sub_0800417E(this, this->collisions); + this->animationState = ((this->direction + 4) & 0x18) >> 2; + this->field_0x82.HALF.HI++; + sub_0803C690(this); + } else if (sub_0803C568(this)) { + sub_0803C5F0(this); + } + + sub_0803C6DC(this); +} + +void sub_0803C2DC(Entity* this) { + u32 res; + u32 actionDelay = --this->actionDelay; + if (actionDelay == 0) { + this->action = 3; + this->field_0x82.HALF.LO = actionDelay; + this->field_0x80.HALF.LO = actionDelay; + this->animationState = 0x10; + sub_0803C4B0(this); + } else if (res = sub_0803C568(this), res) { + this->field_0x7a.HALF.HI |= 0x1; + } + + if (this->field_0xf > 0xb) { + if (this->field_0x7a.HALF.HI != 0) { + sub_0803C5F0(this); + } + } else { + this->field_0xf++; + } + + sub_0803C6DC(this); +} + +void sub_0803C344(Entity* this) { + if (--this->actionDelay == 0) { + switch (this->field_0x82.HALF.LO) { + case 3: { + this->action = 4; + this->speed = 0x80; + this->direction = sub_08049F84(this, 1); + break; + } + case 5: { + this->action = 4; + this->speed = 0x80; + break; + } + case 2: { + u32 tmp; + this->action = 2; + this->speed = 0; + tmp = Random() & 0x7; + this->actionDelay = (tmp << 1) + tmp + 0x40; + break; + } + case 4: { + this->direction = (this->direction + 0x10) & 0x18; + } + case 0: + case 1: + default: { + u32 tmp; + this->action = 1; + this->field_0x82.HALF.LO = 1; + this->speed = 0x80; + tmp = (Random() & 0x7); + this->actionDelay = (tmp << 1) + tmp + 0x22; + break; + } + } + + this->field_0xf = 0; + this->animationState = ((this->direction + 4) & 0x18) >> 2; + sub_0803C690(this); + } + sub_0803C6DC(this); +} + +void sub_0803C400(Entity* this) { + if (this->field_0xf) { + u8 mask; + this->field_0xf--; + mask = 0xff; + if ((this->field_0xf & mask) == 0) { + if (this->field_0x82.HALF.LO == 3) { + this->field_0x7a.HALF.LO++; + if ((this->field_0x7a.HALF.LO & mask) <= 2) { + if (Random() & 0xc0) { + this->actionDelay = 0; + sub_0803C690(this); + sub_0803C6DC(this); + return; + } + } + } + sub_0803C634(this); + } + } else { + Entity* projectile; + switch (++this->actionDelay) { + case 1: + this->direction = this->animationState << 2; + projectile = CreateProjectileWithParent(this, 0xd, this->animationState >> 1); + if (projectile) { + this->child = projectile; + projectile->direction = (this->direction + 4) & 0x18; + projectile->parent = this; + } + break; + case 24: + this->actionDelay = 0; + this->field_0xf = 0x20; + break; + } + + sub_0803C6DC(this); + if (this->child) { + sub_0803C714(this); + } + } +} + +NONMATCH("asm/non_matching/bowMoblin/sub_0803C4B0.inc", void sub_0803C4B0(Entity* this)) { + u32 dir; + this->field_0xf = 0; + if (this->field_0x82.HALF.LO == 1) { + this->actionDelay = gUnk_080CFFA4[Random() & 7]; + this->speed = 0x80; + + if (sub_08049FA0(this)) { + this->direction = (Random() & 6) << 2; + } else { + dir = sub_08049EE4(this); + if (this->field_0x82.HALF.HI == 0) { + dir += gUnk_080CFFAC[Random() & 0xf]; + } else { + dir += gUnk_080CFFAC[Random() & 0x7]; + this->actionDelay += 0x10; + this->field_0x82.HALF.HI--; + } + + dir = (dir + 4) & 0x18; + this->direction = dir; + dir <<= 2; + } + } else { + this->actionDelay = 0xc; + this->speed = this->field_0xf; + dir = this->direction; + dir <<= 2; + } + + if (this->animationState != dir) { + this->animationState = dir; + sub_0803C690(this); + } +} +END_NONMATCH + +u32 sub_0803C568(Entity* this) { + if (this->field_0x80.HALF.HI == 0) { + Entity* ent = sub_08049DF4(1); + if (ent) { + if (this->field_0x82.HALF.LO == 2) { + if (sub_0806FC80(this, ent, 0x30)) { + return 1; + } + } + + if (sub_0806FC80(this, ent, 0x40)) { + u32 direction = (GetFacingDirection(this, ent) + 4) & 0x18; + direction = direction >> 2; + if (direction == this->animationState) { + return 1; + } + } + } + } + + return 0; +} + +void sub_0803C5C4(Entity* this) { + u32 state = ((this->direction + 4) & 0x18) >> 2; + this->animationState = state; + this->direction = state << 2; + this->field_0x82.HALF.HI >>= 1; + sub_0803C664(this); + this->field_0x82.HALF.LO = 2; +} + +void sub_0803C5F0(Entity* this) { + this->direction = sub_08049F84(this, 1); + this->animationState = ((this->direction + 4) & 0x18) >> 2; + this->field_0x82.HALF.HI = 0; + this->field_0x7a.HALF.LO = 0; + sub_0803C664(this); + this->field_0x82.HALF.LO = 3; +} + +void sub_0803C624(Entity* this) { + sub_0803C664(this); + this->field_0x82.HALF.LO = 5; +} + +void sub_0803C634(Entity* this) { + this->animationState = ((this->direction + 4) & 0x18) >> 2; + this->direction = this->animationState << 2; + this->field_0x82.HALF.HI = 0; + sub_0803C664(this); + this->actionDelay <<= 1; + this->field_0x82.HALF.LO = 4; +} + +void sub_0803C664(Entity* this) { + this->action = 3; + this->actionDelay = 0x20; + this->field_0xf = 0; + this->field_0x80.HALF.LO = 0; + this->field_0x7a.HALF.HI = 0; + this->speed = 0; + this->field_0x82.HALF.LO = 0; + sub_0803C690(this); +} + +void sub_0803C690(Entity* this) { + u32 tmp = this->animationState >> 1; + switch (this->field_0x82.HALF.LO) { + case 1: + case 4: { + tmp += 0x4; + break; + } + case 3: + case 5: { + tmp += 0x8; + break; + } + case 2: { + tmp += 0xc; + break; + } + case 0: { + break; + } + } + + InitializeAnimation(this, tmp); +} + +void sub_0803C6DC(Entity* this) { + u8 tmp = this->field_0x82.HALF.LO; + if (tmp == 0) { + this->speed = tmp; + } + + ProcessMovement(this); + GetNextFrame(this); +} + +u32 sub_0803C6F8(Entity* this) { + u32 tmp = (this->collisions & gUnk_080CFFBC[(this->animationState ^ 1) / 2]); + u32 tmp2 = -tmp; + return (tmp2 | tmp) >> 0x1f; +} + +void sub_0803C714(Entity* this) { + Entity* child = this->child; // Unused + const s8* tmp; + u32 offsetX; + u32 offsetY; + tmp = &gUnk_080CFFC4[this->animationState]; + // TODO fix array access + offsetX = tmp[0] << 0x10; + offsetY = tmp[1] << 0x10; + + PositionRelative(this, child, offsetX, offsetY); +} From 05b2b864de6e601f548a19e1900735553ab11122 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Thu, 30 Dec 2021 10:48:36 +0100 Subject: [PATCH 069/168] gyorgBossObject.c: WIP --- asm/gyorgBossObject.s | 480 ----------------------------------- include/enemy/gyorg.h | 24 +- include/entity.h | 2 +- include/functions.h | 1 - linker.ld | 1 + src/enemy/gyorgFemale.c | 12 +- src/enemy/gyorgFemaleEye.c | 14 +- src/enemy/gyorgMale.c | 3 + src/object/gyorgBossObject.c | 121 +++++++++ src/object/objectAF.c | 2 +- 10 files changed, 161 insertions(+), 499 deletions(-) create mode 100644 src/object/gyorgBossObject.c diff --git a/asm/gyorgBossObject.s b/asm/gyorgBossObject.s index bf2efd4e..673ad56f 100644 --- a/asm/gyorgBossObject.s +++ b/asm/gyorgBossObject.s @@ -7,486 +7,6 @@ .text - thumb_func_start GyorgBossObject -GyorgBossObject: @ 0x080A16DC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080A1700 @ =gUnk_08124ED0 - 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_080A1DCC - adds r0, r4, #0 - bl sub_080A1C9C - pop {r4, pc} - .align 2, 0 -_080A1700: .4byte gUnk_08124ED0 - - thumb_func_start sub_080A1704 -sub_080A1704: @ 0x080A1704 -.ifdef EU - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - movs r0, #0x7b - bl CheckFlags - cmp r0, #0 - beq _080A0F5A - bl DeleteThisEntity -_080A0F5A: - ldr r0, _080A1050 @ =gEntCount - ldrb r0, [r0] - cmp r0, #0x45 - bhi _080A1044 - movs r0, #0x40 - bl zMalloc - adds r7, r0, #0 - cmp r7, #0 - beq _080A1044 - movs r6, #0 - movs r0, #1 - mov sb, r0 - mov r2, sb - mov r1, sl - strb r2, [r1, #0xc] - str r7, [r1, #0x64] - adds r1, #0x6e - movs r3, #0 - mov r8, r3 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r1] - mov r0, sl - adds r0, #0x6c - strh r6, [r0] - mov r0, sl - str r0, [r7] - movs r0, #0x5c - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r7, [r1, #0x64] - str r1, [r7, #4] - movs r0, #0x5d - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - ldr r4, _080A1054 @ =gRoomControls - movs r2, #0x80 - lsls r2, r2, #2 - adds r5, r2, #0 - ldrh r3, [r4, #6] - adds r0, r5, r3 - strh r0, [r1, #0x2e] - movs r2, #0xe0 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r4, #8] - adds r0, r0, r3 - strh r0, [r1, #0x32] - str r7, [r1, #0x64] - str r1, [r7, #8] - movs r0, #0x5d - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - movs r2, #0x98 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r4, #6] - adds r0, r0, r3 - strh r0, [r1, #0x2e] - movs r2, #0xd8 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r4, #8] - adds r0, r0, r3 - strh r0, [r1, #0x32] - str r7, [r1, #0x64] - str r1, [r7, #0xc] - ldr r2, _080A1058 @ =gScreen - ldr r0, _080A105C @ =0x00001E07 - strh r0, [r2, #0x2c] - ldrh r0, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - mov r0, sl - adds r0, #0x70 - strh r6, [r0] - adds r0, #2 - strh r6, [r0] - adds r0, #2 - mov r1, r8 - strb r1, [r0] - adds r0, #6 - strb r1, [r0] - subs r0, #4 - movs r1, #0xc0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - ldr r0, _080A1060 @ =gScreenTransition - adds r0, #0x39 - mov r2, sb - strb r2, [r0] - ldr r2, _080A1064 @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xa - orrs r0, r1 - str r0, [r2, #0x30] - ldrh r3, [r4, #6] - adds r5, r5, r3 - strh r5, [r2, #0x16] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r4, [r4, #8] - adds r0, r0, r4 - strh r0, [r2, #0x18] -_080A1044: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A1050: .4byte gEntCount -_080A1054: .4byte gRoomControls -_080A1058: .4byte gScreen -_080A105C: .4byte 0x00001E07 -_080A1060: .4byte gScreenTransition -_080A1064: .4byte gPlayerState - -.else - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - movs r0, #0x7b - bl CheckFlags - cmp r0, #0 - beq _080A171E - bl DeleteThisEntity -_080A171E: - ldr r0, _080A1828 @ =gEntCount - ldrb r0, [r0] - cmp r0, #0x45 - bhi _080A181C - movs r0, #0x40 - bl zMalloc - adds r7, r0, #0 - cmp r7, #0 - beq _080A181C - movs r6, #0 - movs r0, #1 - mov sb, r0 - mov r2, sb - mov r1, sl - strb r2, [r1, #0xc] - str r7, [r1, #0x64] - adds r1, #0x6e - movs r3, #0 - mov r8, r3 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r1] - mov r0, sl - adds r0, #0x6c - strh r6, [r0] - mov r0, sl - str r0, [r7] - movs r0, #0x5c - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r7, [r1, #0x64] - str r1, [r7, #4] - movs r0, #0x5d - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - ldr r4, _080A182C @ =gRoomControls - movs r2, #0x80 - lsls r2, r2, #2 - adds r5, r2, #0 - ldrh r3, [r4, #6] - adds r0, r5, r3 - strh r0, [r1, #0x2e] - movs r2, #0xcc - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r4, #8] - adds r0, r0, r3 - strh r0, [r1, #0x32] - str r7, [r1, #0x64] - str r1, [r7, #8] - movs r0, #0x5d - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - movs r2, #0x98 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r4, #6] - adds r0, r0, r3 - strh r0, [r1, #0x2e] - adds r2, #0xb0 - adds r0, r2, #0 - ldrh r3, [r4, #8] - adds r0, r0, r3 - strh r0, [r1, #0x32] - str r7, [r1, #0x64] - str r1, [r7, #0xc] - ldr r2, _080A1830 @ =gScreen - ldr r0, _080A1834 @ =0x00001E07 - strh r0, [r2, #0x2c] - ldrh r0, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - mov r0, sl - adds r0, #0x70 - strh r6, [r0] - adds r0, #2 - strh r6, [r0] - adds r0, #2 - mov r1, r8 - strb r1, [r0] - adds r0, #6 - strb r1, [r0] - subs r0, #4 - movs r1, #0xc0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - ldr r0, _080A1838 @ =gScreenTransition - adds r0, #0x39 - mov r2, sb - strb r2, [r0] - ldr r2, _080A183C @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xa - orrs r0, r1 - str r0, [r2, #0x30] - ldrh r3, [r4, #6] - adds r5, r5, r3 - strh r5, [r2, #0x16] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r4, [r4, #8] - adds r0, r0, r4 - strh r0, [r2, #0x18] - ldr r0, _080A1840 @ =0x80100000 - bl SoundReq - ldr r0, _080A1844 @ =gArea - movs r2, #0x86 - lsls r2, r2, #4 - adds r1, r0, r2 - ldr r3, _080A1848 @ =0x00000864 - adds r0, r0, r3 - ldr r0, [r0] - str r0, [r1] -_080A181C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A1828: .4byte gEntCount -_080A182C: .4byte gRoomControls -_080A1830: .4byte gScreen -_080A1834: .4byte 0x00001E07 -_080A1838: .4byte gScreenTransition -_080A183C: .4byte gPlayerState -_080A1840: .4byte 0x80100000 -_080A1844: .4byte gArea -_080A1848: .4byte 0x00000864 -.endif - - thumb_func_start sub_080A184C -sub_080A184C: @ 0x080A184C - push {lr} - adds r3, r0, #0 - adds r1, r3, #0 - adds r1, #0x6e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080A1874 - movs r0, #2 - strb r0, [r3, #0xc] - subs r1, #2 - movs r2, #8 - movs r0, #8 - strh r0, [r1] - ldr r0, [r3, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - strb r2, [r0] -_080A1874: - ldr r2, _080A1894 @ =gPlayerState - ldr r1, _080A1898 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {pc} - .align 2, 0 -_080A1894: .4byte gPlayerState -_080A1898: .4byte gRoomControls - - thumb_func_start sub_080A189C -sub_080A189C: @ 0x080A189C - push {lr} - adds r3, r0, #0 - ldr r0, [r3, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A18E6 - movs r0, #3 - strb r0, [r3, #0xc] - movs r0, #0x23 - strb r0, [r3, #0xe] - adds r1, r3, #0 - adds r1, #0x6c - movs r2, #1 - movs r0, #1 - strh r0, [r1] - adds r1, #0xc - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1] - adds r0, r3, #0 - adds r0, #0x7b - strb r2, [r0] - ldr r0, [r3, #0x64] - ldr r0, [r0, #8] - adds r0, #0x45 - movs r1, #0xc - strb r1, [r0] - movs r0, #0x94 - lsls r0, r0, #1 - bl SoundReq - movs r0, #0x96 - movs r1, #1 - bl sub_08080964 -_080A18E6: - ldr r2, _080A1904 @ =gPlayerState - ldr r1, _080A1908 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {pc} - .align 2, 0 -_080A1904: .4byte gPlayerState -_080A1908: .4byte gRoomControls - - thumb_func_start sub_080A190C -sub_080A190C: @ 0x080A190C - push {r4, lr} - adds r4, r0, #0 - bl sub_080A1FF0 - ldr r3, [r4, #0x64] - ldr r2, [r3, #8] - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A197C - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080A20B8 - cmp r0, #0 - beq _080A1956 - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0x10 - strh r0, [r1] - adds r1, #0xc - movs r0, #0xc0 - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - adds r0, r4, #0 - bl sub_080A1D70 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - movs r1, #0x18 - strb r1, [r0] -_080A1956: - ldr r2, _080A1974 @ =gPlayerState - ldr r1, _080A1978 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - b _080A1988 - .align 2, 0 -_080A1974: .4byte gPlayerState -_080A1978: .4byte gRoomControls -_080A197C: - ldr r1, _080A198C @ =gPlayerState - ldrh r0, [r2, #0x2e] - strh r0, [r1, #0x16] - ldr r0, [r3, #8] - ldrh r0, [r0, #0x32] - strh r0, [r1, #0x18] -_080A1988: - pop {r4, pc} - .align 2, 0 -_080A198C: .4byte gPlayerState - thumb_func_start sub_080A1990 sub_080A1990: @ 0x080A1990 push {lr} diff --git a/include/enemy/gyorg.h b/include/enemy/gyorg.h index ea2e9ad1..58b68fbe 100644 --- a/include/enemy/gyorg.h +++ b/include/enemy/gyorg.h @@ -22,10 +22,26 @@ typedef struct { } GyorgFemaleEntity; typedef struct { - GenericEntity* unk_00; - u8 unk_04[0x4]; - Entity* unk_08; - Entity* unk_0c; + Entity base; + u8 unk_68[4]; + u16 unk_6c; + u16 unk_6e; + u16 unk_70; + u16 unk_72; + u8 unk_74; + // u8 unk_75[1]; + u16 unk_76; + u16 unk_78; + u8 unk_7a; + u8 unk_7b; + u8 unk_7c[0xc]; +} GyorgBossObjectEntity; + +typedef struct { + GyorgBossObjectEntity* boss; + GyorgFemaleEntity* female; + Entity* male1; + Entity* male2; void* unk_10; void* unk_14; void* unk_18[0x8]; diff --git a/include/entity.h b/include/entity.h index dd9c75de..69d6a882 100644 --- a/include/entity.h +++ b/include/entity.h @@ -129,7 +129,7 @@ typedef struct Entity_ { /*0x60*/ u16 spriteVramOffset; /*0x62*/ u8 spriteOffsetX; /*0x63*/ s8 spriteOffsetY; - /*0x64*/ u32* myHeap; + /*0x64*/ void* myHeap; #ifndef NENT_DEPRECATED /*0x68*/ union SplitHWord field_0x68; /*0x6a*/ union SplitHWord field_0x6a; diff --git a/include/functions.h b/include/functions.h index 7c875323..d7494909 100644 --- a/include/functions.h +++ b/include/functions.h @@ -180,7 +180,6 @@ extern void sub_080026F2(u8*, void*, u8*, u32); extern u32 sub_0805F7A0(u32); extern u32* sub_0805F25C(u32); u32 sub_0806FCB8(Entity*, u32, u32, u32); -extern void sub_080A1D70(Entity*, u32); extern void sub_0806F62C(Entity*, u32, u32); extern void sub_080A1ED0(u32, u32, u32); extern u32 sub_0806F5B0(u32); diff --git a/linker.ld b/linker.ld index 1cc69720..d7095703 100644 --- a/linker.ld +++ b/linker.ld @@ -887,6 +887,7 @@ SECTIONS { src/object/well.o(.text); asm/windTribeTeleporter.o(.text); asm/objectB9.o(.text); + src/object/gyorgBossObject.o(.text); asm/gyorgBossObject.o(.text); src/object/windcrest.o(.text); asm/litArea.o(.text); diff --git a/src/enemy/gyorgFemale.c b/src/enemy/gyorgFemale.c index ac7e91ac..aded2572 100644 --- a/src/enemy/gyorgFemale.c +++ b/src/enemy/gyorgFemale.c @@ -101,7 +101,7 @@ void sub_0804625C(GyorgFemaleEntity* this) { } } sub_080465C8(); - if (((GyorgFemaleHeap*)super->myHeap)->unk_00->field_0x6c.HWORD & 0x38) { + if (((GyorgFemaleHeap*)super->myHeap)->boss->unk_6c & 0x38) { super->action = 2; super->actionDelay = 0; this->unk_7a = 0; @@ -111,7 +111,7 @@ void sub_0804625C(GyorgFemaleEntity* this) { this->unk_80 = 0; return; } - if (((GyorgFemaleHeap*)super->myHeap)->unk_00->field_0x6c.HWORD & 0x40) { + if (((GyorgFemaleHeap*)super->myHeap)->boss->unk_6c & 0x40) { super->action = 3; this->unk_70 = 0x3c; super->actionDelay = 0; @@ -121,7 +121,7 @@ void sub_0804625C(GyorgFemaleEntity* this) { this->unk_80 = 0; return; } - if (((GyorgFemaleHeap*)super->myHeap)->unk_00->field_0x6c.HWORD & 0x100) { + if (((GyorgFemaleHeap*)super->myHeap)->boss->unk_6c & 0x100) { if (--this->unk_70 == 0) { this->unk_70 = 0x168; sub_08046634(this, 1); @@ -150,11 +150,11 @@ void sub_0804632C(GyorgFemaleEntity* this) { } } } - if (((GyorgFemaleHeap*)super->myHeap)->unk_00->field_0x6c.HWORD & 0x80 && --this->unk_70 == 0) { + if (((GyorgFemaleHeap*)super->myHeap)->boss->unk_6c & 0x80 && --this->unk_70 == 0) { this->unk_70 = 0x168; sub_08046634(this, 0); } - if ((((GyorgFemaleHeap*)super->myHeap)->unk_00->field_0x6c.HWORD & 0x38) == 0) { + if ((((GyorgFemaleHeap*)super->myHeap)->boss->unk_6c & 0x38) == 0) { super->action = 1; this->unk_70 = 0x3c; #ifndef EU @@ -355,6 +355,6 @@ void sub_080466A8(GyorgFemaleEntity* this) { void sub_080467DC(GyorgFemaleEntity* this) { u32 i; for (i = 0; i < 8; i++) { - ((GyorgFemaleHeap*)super->myHeap)->unk_18[i] = 0; + (*((GyorgFemaleHeap**)(&super->myHeap)))->unk_18[i] = 0; } } diff --git a/src/enemy/gyorgFemaleEye.c b/src/enemy/gyorgFemaleEye.c index 65f84ece..ca6b1d05 100644 --- a/src/enemy/gyorgFemaleEye.c +++ b/src/enemy/gyorgFemaleEye.c @@ -47,10 +47,12 @@ void sub_080489CC(GyorgFemaleEyeEntity* this) { case 16 ... 18: case 24 ... 26: #endif - ((GyorgFemaleHeap*)parent->base.myHeap)->unk_18[super->type] = super->field_0x4c; - ((GyorgFemaleHeap*)parent->base.myHeap)->unk_38 = (gPlayerEntity.x.HALF.HI + super->x.HALF.HI) / 2; - ((GyorgFemaleHeap*)parent->base.myHeap)->unk_3a = (gPlayerEntity.y.HALF.HI + super->y.HALF.HI) / 2; - ((GyorgFemaleHeap*)parent->base.myHeap)->unk_3c = (super->knockbackDirection ^= 0x10); + (*(((GyorgFemaleHeap**)&parent->base.myHeap)))->unk_18[super->type] = super->field_0x4c; + (*(((GyorgFemaleHeap**)&parent->base.myHeap)))->unk_38 = + (gPlayerEntity.x.HALF.HI + super->x.HALF.HI) / 2; + (*(((GyorgFemaleHeap**)&parent->base.myHeap)))->unk_3a = + (gPlayerEntity.y.HALF.HI + super->y.HALF.HI) / 2; + (*(((GyorgFemaleHeap**)&parent->base.myHeap)))->unk_3c = (super->knockbackDirection ^= 0x10); #ifndef EU break; default: @@ -174,9 +176,9 @@ u32 sub_08048D70(GyorgFemaleEntity* parent) { if (parent->base.health != 0) { return 1; } - tmp = ((GyorgFemaleHeap*)parent->base.myHeap)->unk_08; + tmp = ((GyorgFemaleHeap*)parent->base.myHeap)->male1; if (!tmp) { - tmp = ((GyorgFemaleHeap*)parent->base.myHeap)->unk_0c; + tmp = ((GyorgFemaleHeap*)parent->base.myHeap)->male2; } if (tmp->health != 0) { return 0; diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c index 40497928..5e9b4136 100644 --- a/src/enemy/gyorgMale.c +++ b/src/enemy/gyorgMale.c @@ -5,6 +5,9 @@ #include "functions.h" #include "effects.h" +// todo: wrong types +extern void sub_080A1D70(Entity*, u32); + void (*const gUnk_080D1AFC[8])(Entity*); void (*const gUnk_080D1B1C[7])(Entity*); void (*const gUnk_080D1B38[5])(Entity*); diff --git a/src/object/gyorgBossObject.c b/src/object/gyorgBossObject.c new file mode 100644 index 00000000..9c4a2fe5 --- /dev/null +++ b/src/object/gyorgBossObject.c @@ -0,0 +1,121 @@ +#define NENT_DEPRECATED +#include "global.h" +#include "entity.h" +#include "object.h" +#include "area.h" +#include "room.h" +#include "screen.h" +#include "enemy/gyorg.h" + +extern void sub_080A1DCC(GyorgBossObjectEntity*); +extern void sub_080A1C9C(GyorgBossObjectEntity*); + +void sub_080A1FF0(GyorgBossObjectEntity*); +u32 sub_080A20B8(GyorgBossObjectEntity*, Entity*); +void sub_080A1D70(GyorgBossObjectEntity*, u32); + +extern void (*const gUnk_08124ED0[])(GyorgBossObjectEntity*); + +void GyorgBossObject(Entity* this) { + gUnk_08124ED0[this->action]((GyorgBossObjectEntity*)this); + sub_080A1DCC((GyorgBossObjectEntity*)this); + sub_080A1C9C((GyorgBossObjectEntity*)this); +} + +void sub_080A1704(GyorgBossObjectEntity* this) { + GyorgFemaleHeap* heap; + Entity* tmp; + if (CheckFlags(0x7B)) { + DeleteThisEntity(); + } + if (gEntCount > 0x45) + return; + heap = zMalloc(sizeof(GyorgFemaleHeap)); + if (!heap) + return; + super->action = 1; + super->myHeap = heap; + this->unk_6e = 0x258; + this->unk_6c = 0; + heap->boss = this; + tmp = CreateEnemy(GYORG_FEMALE, 0); + tmp->myHeap = heap; + heap->female = (GyorgFemaleEntity*)tmp; + tmp = CreateEnemy(GYORG_MALE, 0); + tmp->x.HALF.HI = gRoomControls.roomOriginX + 0x200; +#ifdef EU + tmp->y.HALF.HI = gRoomControls.roomOriginY + 0x380; +#else + tmp->y.HALF.HI = gRoomControls.roomOriginY + 0x330; +#endif + tmp->myHeap = heap; + heap->male1 = tmp; + tmp = CreateEnemy(GYORG_MALE, 1); + tmp->x.HALF.HI = gRoomControls.roomOriginX + 0x260; +#ifdef EU + tmp->y.HALF.HI = gRoomControls.roomOriginY + 0x360; +#else + tmp->y.HALF.HI = gRoomControls.roomOriginY + 0x310; +#endif + tmp->myHeap = heap; + heap->male2 = tmp; + gScreen.bg3.control = 0x1E07; + gScreen.lcd.displayControl |= 0x800; + this->unk_70 = 0; + this->unk_72 = 0; + this->unk_74 = 0; + this->unk_7a = 0; + this->unk_76 = 0xc0; + this->unk_78 = 0xc0; + gScreenTransition.field_0x39 = 1; + gPlayerState.flags |= 0x20000; + gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200; + gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210; +#ifndef EU + SoundReq(0x80100000); + gArea.musicIndex = gArea.pMusicIndex; +#endif +} + +void sub_080A184C(GyorgBossObjectEntity* this) { + if (--this->unk_6e == 0) { + super->action = 2; + this->unk_6c = 8; + ((GyorgFemaleHeap*)super->myHeap)->female->base.health = 8; + } + gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200; + gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210; +} + +void sub_080A189C(GyorgBossObjectEntity* this) { + if (((GyorgFemaleHeap*)super->myHeap)->female->base.health == 0) { + super->action = 3; + super->actionDelay = 0x23; + this->unk_6c = 1; + this->unk_78 = 0x400; + this->unk_7b = 1; + ((GyorgFemaleHeap*)super->myHeap)->male1->health = 0xC; + SoundReq(0x128); + sub_08080964(0x96, 1); + } + gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200; + gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210; +} + +void sub_080A190C(GyorgBossObjectEntity* this) { + sub_080A1FF0(this); + if (((GyorgFemaleHeap*)super->myHeap)->male1->health == 0) { + if (sub_080A20B8(this, ((GyorgFemaleHeap*)super->myHeap)->male1)) { + super->action = 4; + this->unk_6c = 0x10; + this->unk_78 = 0xC0; + sub_080A1D70(this, ((GyorgFemaleHeap*)super->myHeap)->female->base.animationState); + ((GyorgFemaleHeap*)super->myHeap)->female->base.health = 0x18; + } + gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200; + gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210; + } else { + gPlayerState.startPosX = ((GyorgFemaleHeap*)super->myHeap)->male1->x.HALF.HI; + gPlayerState.startPosY = ((GyorgFemaleHeap*)super->myHeap)->male1->y.HALF.HI; + } +} diff --git a/src/object/objectAF.c b/src/object/objectAF.c index 0aff1ed3..f34ff4f2 100644 --- a/src/object/objectAF.c +++ b/src/object/objectAF.c @@ -47,7 +47,7 @@ void sub_080A0624(Entity* this) { void sub_080A0640(Entity* this) { if (this->type == 0) { - PositionRelative(*(Entity**)(this->parent->myHeap + 0x4), this, 0, 0x80000); + PositionRelative(*(((Entity**)this->parent->myHeap) + 4), this, 0, 0x80000); } else { CopyPosition(this->parent, this); } From 87514fcbf70a4090abcb908e264535e5f6446659 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Thu, 30 Dec 2021 10:51:40 +0100 Subject: [PATCH 070/168] bowMoblin.c: fix nonmatching --- asm/non_matching/bowMoblin/sub_0803C4B0.inc | 98 --------------------- src/enemy/bowMoblin.c | 19 ++-- 2 files changed, 7 insertions(+), 110 deletions(-) delete mode 100644 asm/non_matching/bowMoblin/sub_0803C4B0.inc diff --git a/asm/non_matching/bowMoblin/sub_0803C4B0.inc b/asm/non_matching/bowMoblin/sub_0803C4B0.inc deleted file mode 100644 index 4e3a0ffb..00000000 --- a/asm/non_matching/bowMoblin/sub_0803C4B0.inc +++ /dev/null @@ -1,98 +0,0 @@ - - - .syntax unified - - .text - - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r1, #0 - strb r1, [r5, #0xf] - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #1 - bne _0803C54C - bl Random - ldr r1, _0803C4F0 @ =gUnk_080CFFA4 - movs r7, #7 - ands r0, r7 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xe] - movs r0, #0x80 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0803C4F4 - bl Random - adds r4, r0, #0 - movs r0, #6 - ands r4, r0 - lsls r0, r4, #2 - strb r0, [r5, #0x15] - b _0803C556 - .align 2, 0 -_0803C4F0: .4byte gUnk_080CFFA4 -_0803C4F4: - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - adds r6, r5, #0 - adds r6, #0x83 - ldrb r0, [r6] - cmp r0, #0 - bne _0803C520 - bl Random - ldr r2, _0803C51C @ =gUnk_080CFFAC - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r4, r4, r0 - b _0803C53E - .align 2, 0 -_0803C51C: .4byte gUnk_080CFFAC -_0803C520: - bl Random - ldr r1, _0803C548 @ =gUnk_080CFFAC - ands r0, r7 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r4, r0 - ldrb r0, [r5, #0xe] - adds r0, #0x10 - strb r0, [r5, #0xe] - ldrb r0, [r6] - subs r0, #1 - strb r0, [r6] -_0803C53E: - adds r0, r4, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - b _0803C554 - .align 2, 0 -_0803C548: .4byte gUnk_080CFFAC -_0803C54C: - movs r0, #0xc - strb r0, [r5, #0xe] - strh r1, [r5, #0x24] - ldrb r0, [r5, #0x15] -_0803C554: - lsrs r4, r0, #2 -_0803C556: - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _0803C564 - strb r4, [r5, #0x14] - adds r0, r5, #0 - bl sub_0803C690 -_0803C564: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - .syntax divided \ No newline at end of file diff --git a/src/enemy/bowMoblin.c b/src/enemy/bowMoblin.c index 74899e8f..5f945054 100644 --- a/src/enemy/bowMoblin.c +++ b/src/enemy/bowMoblin.c @@ -218,15 +218,16 @@ void sub_0803C400(Entity* this) { } } -NONMATCH("asm/non_matching/bowMoblin/sub_0803C4B0.inc", void sub_0803C4B0(Entity* this)) { +void sub_0803C4B0(Entity* this) { u32 dir; this->field_0xf = 0; if (this->field_0x82.HALF.LO == 1) { this->actionDelay = gUnk_080CFFA4[Random() & 7]; this->speed = 0x80; - if (sub_08049FA0(this)) { - this->direction = (Random() & 6) << 2; + dir = Random(); + dir &= 6; + this->direction = dir << 2; } else { dir = sub_08049EE4(this); if (this->field_0x82.HALF.HI == 0) { @@ -236,24 +237,18 @@ NONMATCH("asm/non_matching/bowMoblin/sub_0803C4B0.inc", void sub_0803C4B0(Entity this->actionDelay += 0x10; this->field_0x82.HALF.HI--; } - - dir = (dir + 4) & 0x18; - this->direction = dir; - dir <<= 2; + dir = (this->direction = (dir + 4) & 0x18) >> 2; } } else { this->actionDelay = 0xc; this->speed = this->field_0xf; - dir = this->direction; - dir <<= 2; + dir = this->direction >> 2; } - - if (this->animationState != dir) { + if (dir != this->animationState) { this->animationState = dir; sub_0803C690(this); } } -END_NONMATCH u32 sub_0803C568(Entity* this) { if (this->field_0x80.HALF.HI == 0) { From 10562f5898173de0ea84c1277ed2d3851c39ddbc Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Thu, 30 Dec 2021 12:48:00 +0200 Subject: [PATCH 071/168] Tried to decompile dispCtrlSet --- .../dispCtrlSet.inc} | 0 include/screen.h | 37 +++++++------- src/interrupts.c | 50 ++++++++++++++++++- src/manager/managerC.c | 16 +++--- 4 files changed, 74 insertions(+), 29 deletions(-) rename asm/{dispCtrlSet.s => non_matching/dispCtrlSet.inc} (100%) diff --git a/asm/dispCtrlSet.s b/asm/non_matching/dispCtrlSet.inc similarity index 100% rename from asm/dispCtrlSet.s rename to asm/non_matching/dispCtrlSet.inc diff --git a/include/screen.h b/include/screen.h index f308f19d..4c9dc293 100644 --- a/include/screen.h +++ b/include/screen.h @@ -5,10 +5,10 @@ #include "fade.h" typedef struct { - u16 displayControl; - u8 filler2[0x2]; - u16 unk4; - u16 displayControlMask; + u16 displayControl; // 0x0 + u8 filler2[0x2]; // 0x2 + u16 unk4; // 0x4 + u16 displayControlMask; // 0x6 } LcdControls; typedef struct { @@ -28,22 +28,19 @@ typedef struct { } BgAffSettings; typedef struct { - u16 bg2dx; - u16 bg2dmx; - u16 bg2dy; - u16 bg2dmy; - u16 bg2xPointLeastSig; - u16 bg2xPointMostSig; - u16 bg2yPointLeastSig; - u16 bg2yPointMostSig; - u16 bg3dx; - u16 bg3dmx; - u16 bg3dy; - u16 bg3dmy; - u16 bg3xPointLeastSig; - u16 bg3xPointMostSig; - u16 bg3yPointLeastSig; - u16 bg3yPointMostSig; + u16 dx; + u16 dmx; + u16 dy; + u16 dmy; + u16 xPointLeastSig; + u16 xPointMostSig; + u16 yPointLeastSig; + u16 yPointMostSig; +} BgTransformationSettings; + +typedef struct { + BgTransformationSettings bg2; + BgTransformationSettings bg3; u16 window0HorizontalDimensions; u16 window1HorizontalDimensions; u16 window0VerticalDimensions; diff --git a/src/interrupts.c b/src/interrupts.c index 85c3c16c..90556e62 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -117,7 +117,55 @@ void sub_08016CA8(BgSettings* bg) { } } -ASM_FUNC("asm/dispCtrlSet.s", void DispCtrlSet(void)); +NONMATCH("asm/non_matching/dispCtrlSet.inc", void DispCtrlSet(void)) { + BgControls* controls; + u16 tmp = gScreen.lcd.displayControl & gScreen.lcd.displayControlMask; + REG_DISPCNT = tmp; + + REG_BG0CNT = gScreen.bg0.control; + REG_BG1CNT = gScreen.bg1.control; + REG_BG2CNT = gScreen.bg2.control; + REG_BG3CNT = gScreen.bg3.control; + REG_BG0HOFS = gScreen.bg0.xOffset; + REG_BG0VOFS = gScreen.bg0.yOffset; + REG_BG1HOFS = gScreen.bg1.xOffset; + REG_BG1VOFS = gScreen.bg1.yOffset; + REG_BG2HOFS = gScreen.bg2.xOffset; + REG_BG2VOFS = gScreen.bg2.yOffset; + REG_BG3HOFS = gScreen.bg3.xOffset; + REG_BG3VOFS = gScreen.bg3.yOffset; + + controls = &(gScreen.controls); + REG_BG2PA = controls->bg2.dx; + REG_BG2PB = controls->bg2.dmx; + REG_BG2PC = controls->bg2.dy; + REG_BG2PD = controls->bg2.dmy; + REG_BG2X_L = controls->bg2.xPointLeastSig; + REG_BG2X_H = controls->bg2.xPointMostSig; + REG_BG2Y_L = controls->bg2.yPointLeastSig; + REG_BG2Y_H = controls->bg2.yPointMostSig; + + REG_BG3PA = controls->bg3.dx; + REG_BG3PB = controls->bg3.dmx; + REG_BG3PC = controls->bg3.dy; + REG_BG3PD = controls->bg3.dmy; + REG_BG3X_L = controls->bg3.xPointLeastSig; + REG_BG3X_H = controls->bg3.xPointMostSig; + REG_BG3Y_L = controls->bg3.yPointLeastSig; + REG_BG3Y_H = controls->bg3.yPointMostSig; + + REG_WIN0H = controls->window0HorizontalDimensions; + REG_WIN1H = controls->window1HorizontalDimensions; + REG_WIN0V = controls->window0VerticalDimensions; + REG_WIN1V = controls->window1VerticalDimensions; + REG_WININ = controls->windowInsideControl; + REG_WINOUT = controls->windowOutsideControl; + REG_MOSAIC = controls->mosaicSize; + REG_BLDCNT = controls->layerFXControl; + REG_BLDALPHA = controls->alphaBlend; + REG_BLDY = controls->layerBrightness; +} +END_NONMATCH // Load any resources that were requested with LoadResourceAsync void LoadResources(void) { diff --git a/src/manager/managerC.c b/src/manager/managerC.c index d7c3f867..fc77cfc6 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -237,14 +237,14 @@ void sub_08058BC8(ManagerC* this) { tmp++; } while (++tmp3 < 0xA0u); tmp = &gUnk_02017BA0[gUnk_03003DE4[0] * 0xA0]; - gScreen.controls.bg2dx = tmp->pa; - gScreen.controls.bg2dmx = tmp->pb; - gScreen.controls.bg2dy = tmp->pc; - gScreen.controls.bg2dmy = tmp->pd; - gScreen.controls.bg2xPointLeastSig = ((union SplitWord*)&tmp->dx)->HALF.LO; - gScreen.controls.bg2xPointMostSig = ((union SplitWord*)&tmp->dx)->HALF.HI; - gScreen.controls.bg2yPointLeastSig = ((union SplitWord*)&tmp->dy)->HALF.LO; - gScreen.controls.bg2yPointMostSig = ((union SplitWord*)&tmp->dy)->HALF.HI; + gScreen.controls.bg2.dx = tmp->pa; + gScreen.controls.bg2.dmx = tmp->pb; + gScreen.controls.bg2.dy = tmp->pc; + gScreen.controls.bg2.dmy = tmp->pd; + gScreen.controls.bg2.xPointLeastSig = ((union SplitWord*)&tmp->dx)->HALF.LO; + gScreen.controls.bg2.xPointMostSig = ((union SplitWord*)&tmp->dx)->HALF.HI; + gScreen.controls.bg2.yPointLeastSig = ((union SplitWord*)&tmp->dy)->HALF.LO; + gScreen.controls.bg2.yPointMostSig = ((union SplitWord*)&tmp->dy)->HALF.HI; } const u16 gUnk_08108300[4] = { 0xA4, 0x4C, 0xF4, 0x9C }; From a139e43d933bcb9b6baf79c0c68ce4b16e649bfa Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Thu, 30 Dec 2021 13:38:55 +0200 Subject: [PATCH 072/168] Use new Entity style --- src/enemy/bowMoblin.c | 325 ++++++++++++++++++++++-------------------- 1 file changed, 169 insertions(+), 156 deletions(-) diff --git a/src/enemy/bowMoblin.c b/src/enemy/bowMoblin.c index 5f945054..97b79a21 100644 --- a/src/enemy/bowMoblin.c +++ b/src/enemy/bowMoblin.c @@ -1,21 +1,34 @@ +#define NENT_DEPRECATED #include "global.h" #include "entity.h" #include "enemy.h" #include "functions.h" -extern void sub_0803C5F0(Entity*); -extern void sub_0803C690(Entity*); -extern void sub_0803C4B0(Entity*); -extern void sub_0803C5C4(Entity*); -extern void sub_0803C624(Entity*); -extern void sub_0803C6DC(Entity*); -extern void sub_0803C714(Entity*); -extern void sub_0803C634(Entity*); -extern u32 sub_0803C6F8(Entity*); -extern u32 sub_0803C568(Entity*); +typedef struct { + Entity base; + u8 filler[0x12]; + u8 unk_0x7a; + u8 unk_0x7b; + u8 filter[0x4]; + u8 unk_0x80; + u8 unk_0x81; + u8 unk_0x82; + u8 unk_0x83; +} BowMoblinEntity; + +void sub_0803C5F0(BowMoblinEntity*); +void sub_0803C690(BowMoblinEntity*); +void sub_0803C4B0(BowMoblinEntity*); +void sub_0803C5C4(BowMoblinEntity*); +void sub_0803C624(BowMoblinEntity*); +void sub_0803C6DC(BowMoblinEntity*); +void sub_0803C714(BowMoblinEntity*); +void sub_0803C634(BowMoblinEntity*); +u32 sub_0803C6F8(BowMoblinEntity*); +u32 sub_0803C568(BowMoblinEntity*); extern Entity* sub_08049DF4(u32); extern u32 sub_0806FC80(Entity*, Entity*, s32); -extern void sub_0803C664(Entity*); +void sub_0803C664(BowMoblinEntity*); extern void (*const gUnk_080CFF78[])(Entity*); extern void (*const gUnk_080CFF90[])(Entity*); @@ -30,73 +43,73 @@ void BowMoblin(Entity* this) { SetChildOffset(this, 0, 1, -0x18); } -void sub_0803C180(Entity* this) { - gUnk_080CFF90[this->action](this); +void sub_0803C180(BowMoblinEntity* this) { + gUnk_080CFF90[super->action](super); } -void sub_0803C198(Entity* this) { +void sub_0803C198(BowMoblinEntity* this) { Entity* pEVar1; - if (this->field_0x43 != 0) { - sub_0804A9FC(this, 0x1c); + if (super->field_0x43 != 0) { + sub_0804A9FC(super, 0x1c); } - sub_0804AA30(this, gUnk_080CFF78); - if ((this->bitfield & 0x80) != 0) { + sub_0804AA30(super, gUnk_080CFF78); + if ((super->bitfield & 0x80) != 0) { sub_0803C5F0(this); - pEVar1 = this->child; + pEVar1 = super->child; if (pEVar1 != NULL) { pEVar1->field_0xf++; } } } -void nullsub_168(Entity* this) { +void nullsub_168(BowMoblinEntity* this) { } -void sub_0803C1E0(Entity* this) { - sub_0804A720(this); +void sub_0803C1E0(BowMoblinEntity* this) { + sub_0804A720(super); - this->action = 1; - this->field_0x7a.HALF.HI = 0; - this->field_0x80.HALF.LO = 0; - this->field_0x82.HALF.HI = 0; - this->field_0x80.HALF.HI = 0; - this->field_0x7a.HALF.LO = 0; - this->field_0x82.HALF.LO = 1; + super->action = 1; + this->unk_0x7b = 0; + this->unk_0x80 = 0; + this->unk_0x83 = 0; + this->unk_0x81 = 0; + this->unk_0x7a = 0; + this->unk_0x82 = 1; - if (this->actionDelay) { - this->animationState = this->type2 << 1; - this->actionDelay = 0x1e; - this->speed = 0x80; - this->direction = this->type2 << 3; + if (super->actionDelay) { + super->animationState = super->type2 << 1; + super->actionDelay = 0x1e; + super->speed = 0x80; + super->direction = super->type2 << 3; sub_0803C690(this); } else { - this->animationState = 0x10; + super->animationState = 0x10; sub_0803C4B0(this); } } -void sub_0803C234(Entity* this) { +void sub_0803C234(BowMoblinEntity* this) { u8 mask; - if (this->field_0x80.HALF.HI) { - this->field_0x80.HALF.HI--; + if (this->unk_0x81) { + this->unk_0x81--; } mask = 0xff; - if (((--this->actionDelay) & mask) == 0) { - u8 tmp = ++this->field_0x80.HALF.LO; + if (((--super->actionDelay) & mask) == 0) { + u8 tmp = ++this->unk_0x80; if ((tmp) > 0xf) { sub_0803C5C4(this); - } else if (((this->field_0x80.HALF.LO & 0x3) == 0) && (Random() & 0x10)) { + } else if (((this->unk_0x80 & 0x3) == 0) && (Random() & 0x10)) { sub_0803C624(this); } else { sub_0803C4B0(this); } } else if (sub_0803C6F8(this)) { - sub_0800417E(this, this->collisions); - this->animationState = ((this->direction + 4) & 0x18) >> 2; - this->field_0x82.HALF.HI++; + sub_0800417E(super, super->collisions); + super->animationState = ((super->direction + 4) & 0x18) >> 2; + this->unk_0x83++; sub_0803C690(this); } else if (sub_0803C568(this)) { sub_0803C5F0(this); @@ -105,86 +118,86 @@ void sub_0803C234(Entity* this) { sub_0803C6DC(this); } -void sub_0803C2DC(Entity* this) { +void sub_0803C2DC(BowMoblinEntity* this) { u32 res; - u32 actionDelay = --this->actionDelay; + u32 actionDelay = --super->actionDelay; if (actionDelay == 0) { - this->action = 3; - this->field_0x82.HALF.LO = actionDelay; - this->field_0x80.HALF.LO = actionDelay; - this->animationState = 0x10; + super->action = 3; + this->unk_0x82 = actionDelay; + this->unk_0x80 = actionDelay; + super->animationState = 0x10; sub_0803C4B0(this); } else if (res = sub_0803C568(this), res) { - this->field_0x7a.HALF.HI |= 0x1; + this->unk_0x7b |= 0x1; } - if (this->field_0xf > 0xb) { - if (this->field_0x7a.HALF.HI != 0) { + if (super->field_0xf > 0xb) { + if (this->unk_0x7b != 0) { sub_0803C5F0(this); } } else { - this->field_0xf++; + super->field_0xf++; } sub_0803C6DC(this); } -void sub_0803C344(Entity* this) { - if (--this->actionDelay == 0) { - switch (this->field_0x82.HALF.LO) { +void sub_0803C344(BowMoblinEntity* this) { + if (--super->actionDelay == 0) { + switch (this->unk_0x82) { case 3: { - this->action = 4; - this->speed = 0x80; - this->direction = sub_08049F84(this, 1); + super->action = 4; + super->speed = 0x80; + super->direction = sub_08049F84(super, 1); break; } case 5: { - this->action = 4; - this->speed = 0x80; + super->action = 4; + super->speed = 0x80; break; } case 2: { u32 tmp; - this->action = 2; - this->speed = 0; + super->action = 2; + super->speed = 0; tmp = Random() & 0x7; - this->actionDelay = (tmp << 1) + tmp + 0x40; + super->actionDelay = (tmp << 1) + tmp + 0x40; break; } case 4: { - this->direction = (this->direction + 0x10) & 0x18; + super->direction = (super->direction + 0x10) & 0x18; } case 0: case 1: default: { u32 tmp; - this->action = 1; - this->field_0x82.HALF.LO = 1; - this->speed = 0x80; + super->action = 1; + this->unk_0x82 = 1; + super->speed = 0x80; tmp = (Random() & 0x7); - this->actionDelay = (tmp << 1) + tmp + 0x22; + super->actionDelay = (tmp << 1) + tmp + 0x22; break; } } - this->field_0xf = 0; - this->animationState = ((this->direction + 4) & 0x18) >> 2; + super->field_0xf = 0; + super->animationState = ((super->direction + 4) & 0x18) >> 2; sub_0803C690(this); } sub_0803C6DC(this); } -void sub_0803C400(Entity* this) { - if (this->field_0xf) { +void sub_0803C400(BowMoblinEntity* this) { + if (super->field_0xf) { u8 mask; - this->field_0xf--; + super->field_0xf--; mask = 0xff; - if ((this->field_0xf & mask) == 0) { - if (this->field_0x82.HALF.LO == 3) { - this->field_0x7a.HALF.LO++; - if ((this->field_0x7a.HALF.LO & mask) <= 2) { + if ((super->field_0xf & mask) == 0) { + if (this->unk_0x82 == 3) { + this->unk_0x7a++; + if ((this->unk_0x7a & mask) <= 2) { if (Random() & 0xc0) { - this->actionDelay = 0; + super->actionDelay = 0; sub_0803C690(this); sub_0803C6DC(this); return; @@ -195,75 +208,75 @@ void sub_0803C400(Entity* this) { } } else { Entity* projectile; - switch (++this->actionDelay) { + switch (++super->actionDelay) { case 1: - this->direction = this->animationState << 2; - projectile = CreateProjectileWithParent(this, 0xd, this->animationState >> 1); + super->direction = super->animationState << 2; + projectile = CreateProjectileWithParent(super, 0xd, super->animationState >> 1); if (projectile) { - this->child = projectile; - projectile->direction = (this->direction + 4) & 0x18; - projectile->parent = this; + super->child = projectile; + projectile->direction = (super->direction + 4) & 0x18; + projectile->parent = super; } break; case 24: - this->actionDelay = 0; - this->field_0xf = 0x20; + super->actionDelay = 0; + super->field_0xf = 0x20; break; } sub_0803C6DC(this); - if (this->child) { + if (super->child) { sub_0803C714(this); } } } -void sub_0803C4B0(Entity* this) { +void sub_0803C4B0(BowMoblinEntity* this) { u32 dir; - this->field_0xf = 0; - if (this->field_0x82.HALF.LO == 1) { - this->actionDelay = gUnk_080CFFA4[Random() & 7]; - this->speed = 0x80; - if (sub_08049FA0(this)) { + super->field_0xf = 0; + if (this->unk_0x82 == 1) { + super->actionDelay = gUnk_080CFFA4[Random() & 7]; + super->speed = 0x80; + if (sub_08049FA0(super)) { dir = Random(); dir &= 6; - this->direction = dir << 2; + super->direction = dir << 2; } else { - dir = sub_08049EE4(this); - if (this->field_0x82.HALF.HI == 0) { + dir = sub_08049EE4(super); + if (this->unk_0x83 == 0) { dir += gUnk_080CFFAC[Random() & 0xf]; } else { dir += gUnk_080CFFAC[Random() & 0x7]; - this->actionDelay += 0x10; - this->field_0x82.HALF.HI--; + super->actionDelay += 0x10; + this->unk_0x83--; } - dir = (this->direction = (dir + 4) & 0x18) >> 2; + dir = (super->direction = (dir + 4) & 0x18) >> 2; } } else { - this->actionDelay = 0xc; - this->speed = this->field_0xf; - dir = this->direction >> 2; + super->actionDelay = 0xc; + super->speed = super->field_0xf; + dir = super->direction >> 2; } - if (dir != this->animationState) { - this->animationState = dir; + if (dir != super->animationState) { + super->animationState = dir; sub_0803C690(this); } } -u32 sub_0803C568(Entity* this) { - if (this->field_0x80.HALF.HI == 0) { +u32 sub_0803C568(BowMoblinEntity* this) { + if (this->unk_0x81 == 0) { Entity* ent = sub_08049DF4(1); if (ent) { - if (this->field_0x82.HALF.LO == 2) { - if (sub_0806FC80(this, ent, 0x30)) { + if (this->unk_0x82 == 2) { + if (sub_0806FC80(super, ent, 0x30)) { return 1; } } - if (sub_0806FC80(this, ent, 0x40)) { - u32 direction = (GetFacingDirection(this, ent) + 4) & 0x18; + if (sub_0806FC80(super, ent, 0x40)) { + u32 direction = (GetFacingDirection(super, ent) + 4) & 0x18; direction = direction >> 2; - if (direction == this->animationState) { + if (direction == super->animationState) { return 1; } } @@ -273,52 +286,52 @@ u32 sub_0803C568(Entity* this) { return 0; } -void sub_0803C5C4(Entity* this) { - u32 state = ((this->direction + 4) & 0x18) >> 2; - this->animationState = state; - this->direction = state << 2; - this->field_0x82.HALF.HI >>= 1; +void sub_0803C5C4(BowMoblinEntity* this) { + u32 state = ((super->direction + 4) & 0x18) >> 2; + super->animationState = state; + super->direction = state << 2; + this->unk_0x83 >>= 1; sub_0803C664(this); - this->field_0x82.HALF.LO = 2; + this->unk_0x82 = 2; } -void sub_0803C5F0(Entity* this) { - this->direction = sub_08049F84(this, 1); - this->animationState = ((this->direction + 4) & 0x18) >> 2; - this->field_0x82.HALF.HI = 0; - this->field_0x7a.HALF.LO = 0; +void sub_0803C5F0(BowMoblinEntity* this) { + super->direction = sub_08049F84(super, 1); + super->animationState = ((super->direction + 4) & 0x18) >> 2; + this->unk_0x83 = 0; + this->unk_0x7a = 0; sub_0803C664(this); - this->field_0x82.HALF.LO = 3; + this->unk_0x82 = 3; } -void sub_0803C624(Entity* this) { +void sub_0803C624(BowMoblinEntity* this) { sub_0803C664(this); - this->field_0x82.HALF.LO = 5; + this->unk_0x82 = 5; } -void sub_0803C634(Entity* this) { - this->animationState = ((this->direction + 4) & 0x18) >> 2; - this->direction = this->animationState << 2; - this->field_0x82.HALF.HI = 0; +void sub_0803C634(BowMoblinEntity* this) { + super->animationState = ((super->direction + 4) & 0x18) >> 2; + super->direction = super->animationState << 2; + this->unk_0x83 = 0; sub_0803C664(this); - this->actionDelay <<= 1; - this->field_0x82.HALF.LO = 4; + super->actionDelay <<= 1; + this->unk_0x82 = 4; } -void sub_0803C664(Entity* this) { - this->action = 3; - this->actionDelay = 0x20; - this->field_0xf = 0; - this->field_0x80.HALF.LO = 0; - this->field_0x7a.HALF.HI = 0; - this->speed = 0; - this->field_0x82.HALF.LO = 0; +void sub_0803C664(BowMoblinEntity* this) { + super->action = 3; + super->actionDelay = 0x20; + super->field_0xf = 0; + this->unk_0x80 = 0; + this->unk_0x7b = 0; + super->speed = 0; + this->unk_0x82 = 0; sub_0803C690(this); } -void sub_0803C690(Entity* this) { - u32 tmp = this->animationState >> 1; - switch (this->field_0x82.HALF.LO) { +void sub_0803C690(BowMoblinEntity* this) { + u32 tmp = super->animationState >> 1; + switch (this->unk_0x82) { case 1: case 4: { tmp += 0x4; @@ -338,34 +351,34 @@ void sub_0803C690(Entity* this) { } } - InitializeAnimation(this, tmp); + InitializeAnimation(super, tmp); } -void sub_0803C6DC(Entity* this) { - u8 tmp = this->field_0x82.HALF.LO; +void sub_0803C6DC(BowMoblinEntity* this) { + u8 tmp = this->unk_0x82; if (tmp == 0) { - this->speed = tmp; + super->speed = tmp; } - ProcessMovement(this); - GetNextFrame(this); + ProcessMovement(super); + GetNextFrame(super); } -u32 sub_0803C6F8(Entity* this) { - u32 tmp = (this->collisions & gUnk_080CFFBC[(this->animationState ^ 1) / 2]); +u32 sub_0803C6F8(BowMoblinEntity* this) { + u32 tmp = (super->collisions & gUnk_080CFFBC[(super->animationState ^ 1) / 2]); u32 tmp2 = -tmp; return (tmp2 | tmp) >> 0x1f; } -void sub_0803C714(Entity* this) { - Entity* child = this->child; // Unused +void sub_0803C714(BowMoblinEntity* this) { + Entity* child = super->child; // Unused const s8* tmp; u32 offsetX; u32 offsetY; - tmp = &gUnk_080CFFC4[this->animationState]; + tmp = &gUnk_080CFFC4[super->animationState]; // TODO fix array access offsetX = tmp[0] << 0x10; offsetY = tmp[1] << 0x10; - PositionRelative(this, child, offsetX, offsetY); + PositionRelative(super, child, offsetX, offsetY); } From 631d979af1e6d367b1367eaa9201f345f4b4069c Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Thu, 30 Dec 2021 23:04:47 +0200 Subject: [PATCH 073/168] More improvement by Ibot02 --- src/enemy/bombPeahat.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c index 212ee329..79b485f0 100644 --- a/src/enemy/bombPeahat.c +++ b/src/enemy/bombPeahat.c @@ -473,26 +473,25 @@ void sub_0802AF9C(Entity* this) { } NONMATCH("asm/non_matching/bombPeahat/sub_0802AFC8.inc", void sub_0802AFC8(Entity* this)) { - u8 field_0xf = this->field_0xf; + u32 field_0xf = this->field_0xf; u32 flag = 8; if (field_0xf < 0x29) { - u32 tmp; - + u32 tmp, tmp2; flag = 4; if (this->field_0x82.HWORD & 0x8000) { this->field_0x82.HWORD -= 0x10; } else { this->field_0x82.HWORD += 0x10; } - if (0x7f < (this->field_0x82.HWORD & 0xf0) - 1) { + tmp2 = this->field_0x82.HWORD; + tmp = tmp2 & 0xf0; + if (tmp == 0 || tmp > 0x80) { this->field_0x82.HWORD ^= 0x8000; } - tmp = 0x130 - (this->field_0x82.HWORD & 0xf0); sub_0805EC9C(this, tmp, tmp, 0); } - - if ((this->field_0xf & flag) == 0) { + if (this->field_0xf & flag) { this->palette.b.b0 = this->palette.b.b4; } else { this->palette.b.b0 = 0; From 68973c163ba5f6aa26f03d006f472cac4d682fe3 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Fri, 31 Dec 2021 01:06:02 +0200 Subject: [PATCH 074/168] Review Fixes --- include/enemy.h | 2 +- include/entity.h | 4 ++++ include/functions.h | 2 +- src/enemy/bowMoblin.c | 12 ++++++------ src/player.c | 2 -- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/include/enemy.h b/include/enemy.h index 5905ce5b..c4ef561e 100644 --- a/include/enemy.h +++ b/include/enemy.h @@ -12,7 +12,7 @@ #include "entity.h" extern u32 GetNextFunction(Entity*); -extern void EnemyFunctionHandler(Entity*, void (*const func[])(Entity*)); +extern void EnemyFunctionHandler(Entity*, EntityActionArray); extern void sub_08001324(Entity*); extern Entity* sub_0804A9FC(Entity*, u32); diff --git a/include/entity.h b/include/entity.h index 9afeafe1..d98445b4 100644 --- a/include/entity.h +++ b/include/entity.h @@ -149,6 +149,10 @@ typedef struct Entity_ { #endif } Entity; +typedef void(EntityAction)(Entity*); +typedef void(*EntityActionPtr)(Entity*); +typedef void(*const* EntityActionArray)(Entity*); + typedef struct LinkedList { Entity* last; Entity* first; diff --git a/include/functions.h b/include/functions.h index a271ad64..79fe5c2d 100644 --- a/include/functions.h +++ b/include/functions.h @@ -48,7 +48,7 @@ extern void ChangeObjPalette(Entity*, u32); extern void sub_0806FD3C(Entity*); extern void sub_0805ED14(u32*); extern void sub_080A7C18(u32, u32, u32); -extern void sub_0804AA30(Entity*, void (*const funcs[])(Entity*)); +extern void sub_0804AA30(Entity*, EntityActionArray); extern void sub_0804A720(Entity*); extern u32 sub_080AEFE0(Entity*); extern u32 sub_08049FA0(Entity*); diff --git a/src/enemy/bowMoblin.c b/src/enemy/bowMoblin.c index 97b79a21..29fdd6bc 100644 --- a/src/enemy/bowMoblin.c +++ b/src/enemy/bowMoblin.c @@ -30,8 +30,8 @@ extern Entity* sub_08049DF4(u32); extern u32 sub_0806FC80(Entity*, Entity*, s32); void sub_0803C664(BowMoblinEntity*); -extern void (*const gUnk_080CFF78[])(Entity*); -extern void (*const gUnk_080CFF90[])(Entity*); +extern void (*const gUnk_080CFF78[])(BowMoblinEntity*); +extern void (*const gUnk_080CFF90[])(BowMoblinEntity*); extern const s8 gUnk_080CFFC4[8]; extern const s8 gUnk_080CFFA4[8]; @@ -39,12 +39,12 @@ extern const s8 gUnk_080CFFAC[16]; extern const u16 gUnk_080CFFBC[4]; void BowMoblin(Entity* this) { - EnemyFunctionHandler(this, gUnk_080CFF78); + EnemyFunctionHandler(this, (EntityActionArray)gUnk_080CFF78); SetChildOffset(this, 0, 1, -0x18); } void sub_0803C180(BowMoblinEntity* this) { - gUnk_080CFF90[super->action](super); + gUnk_080CFF90[super->action](this); } void sub_0803C198(BowMoblinEntity* this) { @@ -53,7 +53,7 @@ void sub_0803C198(BowMoblinEntity* this) { if (super->field_0x43 != 0) { sub_0804A9FC(super, 0x1c); } - sub_0804AA30(super, gUnk_080CFF78); + sub_0804AA30(super, (EntityActionArray)gUnk_080CFF78); if ((super->bitfield & 0x80) != 0) { sub_0803C5F0(this); pEVar1 = super->child; @@ -371,7 +371,7 @@ u32 sub_0803C6F8(BowMoblinEntity* this) { } void sub_0803C714(BowMoblinEntity* this) { - Entity* child = super->child; // Unused + Entity* child = super->child; const s8* tmp; u32 offsetX; u32 offsetY; diff --git a/src/player.c b/src/player.c index 3a12ef17..65af62d8 100644 --- a/src/player.c +++ b/src/player.c @@ -31,8 +31,6 @@ #define DEFAULT_ANIM 0x100 -typedef void(EntityAction)(Entity*); - static EntityAction PlayerInit; static EntityAction PlayerNormal; // static EntityAction PlayerInit; From 76a10a280874c7524a9d0210c45b8c8a9eed8a29 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Fri, 31 Dec 2021 01:10:21 +0200 Subject: [PATCH 075/168] Fix offset comments --- include/screen.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/screen.h b/include/screen.h index 4c9dc293..784224a8 100644 --- a/include/screen.h +++ b/include/screen.h @@ -5,10 +5,10 @@ #include "fade.h" typedef struct { - u16 displayControl; // 0x0 - u8 filler2[0x2]; // 0x2 - u16 unk4; // 0x4 - u16 displayControlMask; // 0x6 + /*0x00*/ u16 displayControl; + /*0x02*/ u8 filler2[0x2]; + /*0x04*/ u16 unk4; + /*0x06*/ u16 displayControlMask; } LcdControls; typedef struct { From ed98ab4b765cadf545c1e8dce8929a9d12b977ca Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Fri, 31 Dec 2021 02:41:30 +0200 Subject: [PATCH 076/168] Decompiled some coord.c functions --- asm/non_matching/sub_0806F798.inc | 30 ------------------------------ asm/non_matching/sub_0806F824.inc | 25 ------------------------- src/coord.c | 30 +++++++++++++++++++++++++++--- 3 files changed, 27 insertions(+), 58 deletions(-) delete mode 100644 asm/non_matching/sub_0806F798.inc delete mode 100644 asm/non_matching/sub_0806F824.inc diff --git a/asm/non_matching/sub_0806F798.inc b/asm/non_matching/sub_0806F798.inc deleted file mode 100644 index 1ea837b0..00000000 --- a/asm/non_matching/sub_0806F798.inc +++ /dev/null @@ -1,30 +0,0 @@ - .syntax unified - push {r4, r5, lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r4, [r2, #0x48] - movs r1, #0 - ldrsb r1, [r4, r1] - adds r0, r0, r1 - ldr r3, _0806F7CC @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - movs r5, #0x32 - ldrsh r1, [r2, r5] - movs r2, #1 - ldrsb r2, [r4, r2] - adds r1, r1, r2 - ldrh r2, [r3, #8] - subs r1, r1, r2 - movs r2, #0x3f - lsrs r0, r0, #4 - ands r0, r2 - lsrs r1, r1, #4 - ands r1, r2 - lsls r1, r1, #6 - adds r0, r0, r1 - pop {r4, r5, pc} - .align 2, 0 -_0806F7CC: .4byte gRoomControls - .syntax divided diff --git a/asm/non_matching/sub_0806F824.inc b/asm/non_matching/sub_0806F824.inc deleted file mode 100644 index 698d911d..00000000 --- a/asm/non_matching/sub_0806F824.inc +++ /dev/null @@ -1,25 +0,0 @@ - .syntax unified - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r2, #0 - adds r5, r3, #0 - movs r2, #0x2e - ldrsh r6, [r0, r2] - movs r2, #0x32 - ldrsh r3, [r0, r2] - mov r8, r3 - movs r3, #0x2e - ldrsh r2, [r1, r3] - adds r2, r2, r4 - movs r0, #0x32 - ldrsh r3, [r1, r0] - adds r3, r3, r5 - adds r0, r6, #0 - mov r1, r8 - bl sub_080045D4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 - .syntax divided diff --git a/src/coord.c b/src/coord.c index 87108481..fc738068 100644 --- a/src/coord.c +++ b/src/coord.c @@ -194,7 +194,12 @@ u32 sub_0806F730(Entity* ent) { return ((x >> 4) & tmp) + (((y >> 4) & tmp) << 6); } -ASM_FUNC("asm/non_matching/sub_0806F798.inc", u32 sub_0806F798(Entity* ent)); +u32 sub_0806F798(Entity* ent) { + u32 hitboxX = ent->x.HALF.HI + ent->hitbox->offset_x - gRoomControls.roomOriginX; + u32 hitboxY = ent->y.HALF.HI + ent->hitbox->offset_y - gRoomControls.roomOriginY; + u32 mask = 0x3f; + return (mask & (hitboxX >> 4)) + ((mask & (hitboxY >> 4)) << 6); +} u32 sub_0806F7D0(Entity* ent) { return gUnk_02025EB0._2004[sub_0806F730(ent)]; @@ -209,7 +214,9 @@ u32 sub_0806F804(u32 x, u32 y) { return gUnk_02025EB0._4[idx]; } -ASM_FUNC("asm/non_matching/sub_0806F824.inc", void sub_0806F824(Entity* a, Entity* b, u32 x, u32 y)); +void sub_0806F824(Entity* a, Entity* b, s32 x, s32 y) { + sub_080045D4(a->x.HALF.HI, a->y.HALF.HI, b->x.HALF.HI + x, b->y.HALF.HI + y); +} u32 sub_0806F854(Entity* ent, s32 x, s32 y) { if (ent->z.WORD == 0 || (ent->collisionLayer & 2)) @@ -253,7 +260,24 @@ u32 sub_0806F948(Entity* ent) { return ent->animationState; } -ASM_FUNC("asm/non_matching/sub_0806F998.inc", u32 sub_0806F998(Entity* ent)); +NONMATCH("asm/non_matching/sub_0806F998.inc", u32 sub_0806F998(Entity* ent)) { + u8 animationState = ent->animationState; + + if ((ent->direction & 0x80) == 0) { + u8 tmp = ((ent->direction & 0x1c) >> 2); + if ((tmp & 0x1) == 0 || ((tmp - animationState + 1) & 0x4)) { + animationState = ent->animationState = (animationState >> 2) & 0x7e; + if (ent->animationState <= 4) { + ent->spriteSettings.flipX = 0; + } else { + ent->spriteSettings.flipX = 1; + } + } + } + + return animationState; +} +END_NONMATCH s16 FixedMul(s16 r0, s16 r1) { s32 temp = r0 * r1; From 1ab7d57f74dfb384023404e58011b52a89cebc69 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Fri, 31 Dec 2021 06:33:01 +0200 Subject: [PATCH 077/168] Review fix --- src/coord.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/coord.c b/src/coord.c index fc738068..cf8548fc 100644 --- a/src/coord.c +++ b/src/coord.c @@ -261,12 +261,12 @@ u32 sub_0806F948(Entity* ent) { } NONMATCH("asm/non_matching/sub_0806F998.inc", u32 sub_0806F998(Entity* ent)) { - u8 animationState = ent->animationState; - + u8 state = ent->animationState; if ((ent->direction & 0x80) == 0) { u8 tmp = ((ent->direction & 0x1c) >> 2); - if ((tmp & 0x1) == 0 || ((tmp - animationState + 1) & 0x4)) { - animationState = ent->animationState = (animationState >> 2) & 0x7e; + if ((tmp & 0x1) == 0 || ((tmp - state + 1) & 0x4)) { + u8 dir = ent->direction; + state = ent->animationState = (dir >> 2) & 0x7e; if (ent->animationState <= 4) { ent->spriteSettings.flipX = 0; } else { @@ -274,8 +274,7 @@ NONMATCH("asm/non_matching/sub_0806F998.inc", u32 sub_0806F998(Entity* ent)) { } } } - - return animationState; + return state; } END_NONMATCH From f57e040e1626fb2d624c354beb539c8fbaf01b4c Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Fri, 31 Dec 2021 16:46:58 +0200 Subject: [PATCH 078/168] Decompiled getEmptyEntity - still not completely matching --- src/entity.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++-- src/interrupts.c | 2 +- 2 files changed, 69 insertions(+), 4 deletions(-) diff --git a/src/entity.c b/src/entity.c index 41d9b4f1..0c69b550 100644 --- a/src/entity.c +++ b/src/entity.c @@ -22,6 +22,7 @@ extern void sub_08017744(Entity*); extern void UnloadHitbox(); extern void sub_0804AA1C(); +void ClearDeletedEntity(Entity*); extern void _ClearAndUpdateEntities(); extern void UpdateEntities_arm(u32); @@ -232,7 +233,73 @@ void EraseAllEntities() { gUnk_03000000.unk[1].unk6 = 1; } -ASM_FUNC("./asm/getEmptyEntity.s", Entity* GetEmptyEntity()); +extern Entity gUnk_030015A0[0x4848]; +extern Entity gUnk_03003BE0; + +NONMATCH("./asm/getEmptyEntity.s", Entity* GetEmptyEntity()) { + u8 flags_ip; + Entity* ptr; + Entity* end; + Entity* rv; + Entity* currentEnt; + LinkedList* nextList; + + LinkedList* listPtr; + LinkedList* endListPtr; + + if (gEntCount <= 0x46) { + ptr = gUnk_030015A0; + end = ptr + ARRAY_COUNT(gUnk_030015A0); + + do { + if (ptr->prev == 0) { + return ptr; + } + } while (++ptr < end); + } + + ptr = &gPlayerEntity; + + do { + if ((s32)ptr->prev < 0 && (ptr->flags & 0xc) && gUpdateContext.current_entity != ptr) { + ClearDeletedEntity(ptr); + return ptr; + } + } while (++ptr < &gUnk_03003BE0); + + flags_ip = 0; + rv = NULL; + listPtr = gEntityLists; + endListPtr = listPtr + ARRAY_COUNT(gEntityLists); + + do { + currentEnt = listPtr->first; + nextList = listPtr + 1; + while ((u32)currentEnt != (u32)listPtr) { + if (currentEnt->kind != MANAGER && (currentEnt->flags & 0x1c) == flags_ip && + gUpdateContext.current_entity != currentEnt) { + flags_ip = currentEnt->flags & 0x1c; + rv = currentEnt; + } + currentEnt = currentEnt->next; + } + + listPtr = nextList; + } while (listPtr < endListPtr); + + if (rv) { + DeleteEntity(rv); + ClearDeletedEntity(rv); + } + + return rv; +} +END_NONMATCH + +//#define NDEPRECATED + +#include "entity.h" +#include "functions.h" extern Entity gUnk_030011E8[7]; @@ -308,8 +375,6 @@ void DeleteEntity(Entity* ent) { } } -void ClearDeletedEntity(Entity*); - void ClearAllDeletedEntities(void) { Entity* ent = &gPlayerEntity; do { diff --git a/src/interrupts.c b/src/interrupts.c index 90556e62..2993fffb 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -17,7 +17,7 @@ extern u16* gUnk_02025EB0; extern u16* gUnk_0200B650; extern u8 gUpdateVisibleTiles; extern u8 gUnk_03003DF0[]; -extern u8 gUnk_03003BE0; +extern Entity gUnk_03003BE0; extern Entity* gPlayerClones[3]; extern u16 gUnk_080B2CD8[]; From d141b5bfbf9635d22706dd7ba9505d4426ed525f Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Sat, 1 Jan 2022 02:09:40 +0200 Subject: [PATCH 079/168] Fix condition --- src/entity.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/entity.c b/src/entity.c index 0c69b550..710cd609 100644 --- a/src/entity.c +++ b/src/entity.c @@ -276,7 +276,7 @@ NONMATCH("./asm/getEmptyEntity.s", Entity* GetEmptyEntity()) { currentEnt = listPtr->first; nextList = listPtr + 1; while ((u32)currentEnt != (u32)listPtr) { - if (currentEnt->kind != MANAGER && (currentEnt->flags & 0x1c) == flags_ip && + if (currentEnt->kind != MANAGER && (currentEnt->flags & 0x1c) < flags_ip && gUpdateContext.current_entity != currentEnt) { flags_ip = currentEnt->flags & 0x1c; rv = currentEnt; From 442206651de3e8ce376b71008c681547db70dd26 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Sat, 1 Jan 2022 02:13:05 +0200 Subject: [PATCH 080/168] getEmptyEntity: More fixes --- src/entity.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/entity.c b/src/entity.c index 710cd609..4b527a73 100644 --- a/src/entity.c +++ b/src/entity.c @@ -233,7 +233,7 @@ void EraseAllEntities() { gUnk_03000000.unk[1].unk6 = 1; } -extern Entity gUnk_030015A0[0x4848]; +extern Entity gUnk_030015A0[0x48]; extern Entity gUnk_03003BE0; NONMATCH("./asm/getEmptyEntity.s", Entity* GetEmptyEntity()) { @@ -261,7 +261,7 @@ NONMATCH("./asm/getEmptyEntity.s", Entity* GetEmptyEntity()) { ptr = &gPlayerEntity; do { - if ((s32)ptr->prev < 0 && (ptr->flags & 0xc) && gUpdateContext.current_entity != ptr) { + if ((s32)ptr->prev < 0 && (ptr->flags & 0xc) && ptr != gUpdateContext.current_entity) { ClearDeletedEntity(ptr); return ptr; } @@ -276,7 +276,8 @@ NONMATCH("./asm/getEmptyEntity.s", Entity* GetEmptyEntity()) { currentEnt = listPtr->first; nextList = listPtr + 1; while ((u32)currentEnt != (u32)listPtr) { - if (currentEnt->kind != MANAGER && (currentEnt->flags & 0x1c) < flags_ip && + if (currentEnt->kind != MANAGER + && flags_ip < (currentEnt->flags & 0x1c) && gUpdateContext.current_entity != currentEnt) { flags_ip = currentEnt->flags & 0x1c; rv = currentEnt; From 1ff79f2c7e7bd57c288ed53de4aeff2d1484b313 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Sat, 1 Jan 2022 02:25:27 +0200 Subject: [PATCH 081/168] clang format --- src/entity.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/entity.c b/src/entity.c index 4b527a73..930fb6d6 100644 --- a/src/entity.c +++ b/src/entity.c @@ -276,8 +276,7 @@ NONMATCH("./asm/getEmptyEntity.s", Entity* GetEmptyEntity()) { currentEnt = listPtr->first; nextList = listPtr + 1; while ((u32)currentEnt != (u32)listPtr) { - if (currentEnt->kind != MANAGER - && flags_ip < (currentEnt->flags & 0x1c) && + if (currentEnt->kind != MANAGER && flags_ip < (currentEnt->flags & 0x1c) && gUpdateContext.current_entity != currentEnt) { flags_ip = currentEnt->flags & 0x1c; rv = currentEnt; From 09de51bef2ea46b2e6068e07157d464fa54be6b3 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Sat, 1 Jan 2022 13:25:46 +0200 Subject: [PATCH 082/168] Decompile DispMessageFrame --- asm/non_matching/textbox/DispMessageFrame.inc | 135 ------------------ include/message.h | 2 +- src/message.c | 46 +++++- 3 files changed, 45 insertions(+), 138 deletions(-) delete mode 100644 asm/non_matching/textbox/DispMessageFrame.inc diff --git a/asm/non_matching/textbox/DispMessageFrame.inc b/asm/non_matching/textbox/DispMessageFrame.inc deleted file mode 100644 index f7d118df..00000000 --- a/asm/non_matching/textbox/DispMessageFrame.inc +++ /dev/null @@ -1,135 +0,0 @@ - - .syntax unified - - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - mov r8, r3 - adds r3, r7, #0 - lsls r0, r6, #6 - adds r0, #0x40 - adds r2, r3, r0 - mov r0, r8 - strh r0, [r3] - adds r3, #2 - movs r1, #0x80 - lsls r1, r1, #4 - mov sb, r1 - mov r0, r8 - mov r5, sb - orrs r0, r5 - strh r0, [r2] - adds r2, #2 - cmp r4, #0 - ble _08056E4C - mov r0, r8 - adds r0, #1 - strh r0, [r3] - adds r3, #2 - adds r1, r0, #0 - orrs r1, r5 - strh r1, [r2] - adds r2, #2 - subs r4, #2 - adds r1, r4, #0 - subs r4, #1 - mov ip, r0 - cmp r1, #0 - ble _08056E30 - mov r5, r8 - adds r5, #2 - adds r1, r5, #0 - mov r0, sb - orrs r1, r0 -_08056E20: - strh r5, [r3] - adds r3, #2 - strh r1, [r2] - adds r2, #2 - adds r0, r4, #0 - subs r4, #1 - cmp r0, #0 - bgt _08056E20 -_08056E30: - movs r1, #0x80 - lsls r1, r1, #3 - adds r0, r1, #0 - mov r1, ip - orrs r1, r0 - strh r1, [r3] - adds r3, #2 - movs r5, #0xc0 - lsls r5, r5, #4 - adds r0, r5, #0 - mov r1, ip - orrs r1, r0 - strh r1, [r2] - adds r2, #2 -_08056E4C: - movs r0, #0x80 - lsls r0, r0, #3 - adds r5, r0, #0 - mov r0, r8 - orrs r0, r5 - strh r0, [r3] - movs r0, #0xc0 - lsls r0, r0, #4 - adds r1, r0, #0 - mov r0, r8 - orrs r0, r1 - strh r0, [r2] - adds r7, #0x40 - adds r3, #0x40 - cmp r6, #0 - ble _08056EB6 - mov r0, r8 - adds r0, #3 - strh r0, [r7] - adds r1, r0, #0 - orrs r1, r5 - strh r1, [r3] - adds r7, #0x40 - adds r3, #0x40 - subs r6, #2 - adds r1, r6, #0 - subs r6, #1 - adds r2, r0, #0 - cmp r1, #0 - ble _08056EA0 - mov r4, r8 - adds r4, #4 - adds r1, r4, #0 - orrs r1, r5 -_08056E90: - strh r4, [r7] - strh r1, [r3] - adds r7, #0x40 - adds r3, #0x40 - adds r0, r6, #0 - subs r6, #1 - cmp r0, #0 - bgt _08056E90 -_08056EA0: - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r1, #0 - adds r1, r2, #0 - orrs r1, r0 - strh r1, [r7] - movs r5, #0xc0 - lsls r5, r5, #4 - adds r0, r5, #0 - orrs r2, r0 - strh r2, [r3] -_08056EB6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - .syntax divided diff --git a/include/message.h b/include/message.h index f7f8c25d..19d33ee4 100644 --- a/include/message.h +++ b/include/message.h @@ -126,6 +126,6 @@ void MessageFromTarget(u32 index); */ void MessageAtHeight(u32 index, u32 y); -void DispMessageFrame(u16*, u32, u32, u32); +void DispMessageFrame(u16*, s32, s32, u32); #endif // MESSAGE_H diff --git a/src/message.c b/src/message.c index 8f2ff53e..2d68f6f1 100644 --- a/src/message.c +++ b/src/message.c @@ -697,8 +697,50 @@ static void CreateWindow(void) { } // Also used by figurine menu -ASM_FUNC("asm/non_matching/textbox/DispMessageFrame.inc", - void DispMessageFrame(u16* buffer, u32 width_, u32 height_, u32 flags_)) +void DispMessageFrame(u16* buffer, s32 width, s32 height, u32 flags) { + u16* ptr = buffer; + u16* ptr2 = &buffer[(height << 5) + 0x20]; + u32 flags1; + u32 i; + *ptr++ = flags; + *ptr2++ = flags | 0x800; + if (width > 0) { + *ptr++ = flags + 1; + *ptr2++ = (flags + 1) | 0x800; + width -= 2; + while(width-->0){ + *ptr++ = flags + 2; + *ptr2++ = (flags + 2) | 0x800; + } + + *ptr++ = (flags + 1) | (0x80 << 3); + *ptr2++ = (flags + 1) | (0xc0 << 4); + } + + *ptr = flags | 0x400; + *ptr2 = flags | 0xc00; + buffer += 0x20; + ptr += 0x20; + + if (height > 0) { + *buffer = flags + 3; + *ptr = (flags + 3) | 0x400; + buffer += 0x20; + ptr += 0x20; + + height -= 2; + while (height-- > 0) { + *buffer = flags + 4; + *ptr = (flags + 4) | 0x400; + buffer += 0x20; + ptr += 0x20; + } + + + *buffer = (flags + 3) | 0x800; + *ptr++ = (flags + 3) | 0xc00; + } +} /* Each character is two tiles tall. From 1a8ecc4fa44409a3b107aa35a3ff2d6d15287407 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Sat, 1 Jan 2022 13:30:56 +0200 Subject: [PATCH 083/168] clang format --- src/message.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/message.c b/src/message.c index 2d68f6f1..586bee15 100644 --- a/src/message.c +++ b/src/message.c @@ -708,7 +708,7 @@ void DispMessageFrame(u16* buffer, s32 width, s32 height, u32 flags) { *ptr++ = flags + 1; *ptr2++ = (flags + 1) | 0x800; width -= 2; - while(width-->0){ + while (width-- > 0) { *ptr++ = flags + 2; *ptr2++ = (flags + 2) | 0x800; } @@ -727,7 +727,7 @@ void DispMessageFrame(u16* buffer, s32 width, s32 height, u32 flags) { *ptr = (flags + 3) | 0x400; buffer += 0x20; ptr += 0x20; - + height -= 2; while (height-- > 0) { *buffer = flags + 4; @@ -735,7 +735,6 @@ void DispMessageFrame(u16* buffer, s32 width, s32 height, u32 flags) { buffer += 0x20; ptr += 0x20; } - *buffer = (flags + 3) | 0x800; *ptr++ = (flags + 3) | 0xc00; From 9c942d465b475609a3196bb7da9e605510541fb4 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Sat, 1 Jan 2022 15:48:15 +0100 Subject: [PATCH 084/168] gyorgBossObject.c: ok --- asm/gyorgBossObject.s | 986 ----------------------------------- include/enemy/gyorg.h | 28 +- include/functions.h | 4 +- linker.ld | 1 - src/code_0808091C.c | 2 +- src/enemy/gyorgFemale.c | 4 +- src/enemy/gyorgFemaleEye.c | 4 +- src/enemy/vaatiArm.c | 2 - src/enemy/vaatiProjectile.c | 1 - src/object/gyorgBossObject.c | 323 +++++++++++- 10 files changed, 345 insertions(+), 1010 deletions(-) delete mode 100644 asm/gyorgBossObject.s diff --git a/asm/gyorgBossObject.s b/asm/gyorgBossObject.s deleted file mode 100644 index 673ad56f..00000000 --- a/asm/gyorgBossObject.s +++ /dev/null @@ -1,986 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start sub_080A1990 -sub_080A1990: @ 0x080A1990 - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x64] - ldr r0, [r1, #4] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A19D6 - ldr r0, [r1, #8] - adds r0, #0x45 - movs r1, #0xc - strb r1, [r0] - movs r0, #5 - strb r0, [r2, #0xc] - movs r0, #0x23 - strb r0, [r2, #0xe] - adds r1, r2, #0 - adds r1, #0x6c - movs r0, #2 - strh r0, [r1] - adds r1, #0xc - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1] - adds r1, #3 - movs r0, #1 - strb r0, [r1] - movs r0, #0x94 - lsls r0, r0, #1 - bl SoundReq - movs r0, #0x96 - movs r1, #1 - bl sub_08080964 -_080A19D6: - ldr r2, _080A19F4 @ =gPlayerState - ldr r1, _080A19F8 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {pc} - .align 2, 0 -_080A19F4: .4byte gPlayerState -_080A19F8: .4byte gRoomControls - - thumb_func_start sub_080A19FC -sub_080A19FC: @ 0x080A19FC - push {r4, lr} - adds r4, r0, #0 - bl sub_080A1FF0 - ldr r3, [r4, #0x64] - ldr r2, [r3, #0xc] - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A1A6C - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080A20B8 - cmp r0, #0 - beq _080A1A46 - movs r0, #6 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0x20 - strh r0, [r1] - adds r1, #0xc - movs r0, #0xc0 - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - adds r0, r4, #0 - bl sub_080A1D70 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - movs r1, #0x18 - strb r1, [r0] -_080A1A46: - ldr r2, _080A1A64 @ =gPlayerState - ldr r1, _080A1A68 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - b _080A1A78 - .align 2, 0 -_080A1A64: .4byte gPlayerState -_080A1A68: .4byte gRoomControls -_080A1A6C: - ldr r1, _080A1A7C @ =gPlayerState - ldrh r0, [r2, #0x2e] - strh r0, [r1, #0x16] - ldr r0, [r3, #0xc] - ldrh r0, [r0, #0x32] - strh r0, [r1, #0x18] -_080A1A78: - pop {r4, pc} - .align 2, 0 -_080A1A7C: .4byte gPlayerState - - thumb_func_start sub_080A1A80 -sub_080A1A80: @ 0x080A1A80 - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x64] - ldr r0, [r1, #4] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A1AC0 - ldr r0, [r1, #0xc] - adds r0, #0x45 - movs r1, #0xc - strb r1, [r0] - movs r0, #7 - strb r0, [r2, #0xc] - movs r0, #0x23 - strb r0, [r2, #0xe] - adds r1, r2, #0 - adds r1, #0x6c - adds r0, #0xe1 - strh r0, [r1] - adds r1, #0xc - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r1] - movs r0, #0x94 - lsls r0, r0, #1 - bl SoundReq - movs r0, #0x96 - movs r1, #1 - bl sub_08080964 -_080A1AC0: - ldr r2, _080A1AE0 @ =gPlayerState - ldr r1, _080A1AE4 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {pc} - .align 2, 0 -_080A1AE0: .4byte gPlayerState -_080A1AE4: .4byte gRoomControls - - thumb_func_start sub_080A1AE8 -sub_080A1AE8: @ 0x080A1AE8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080A1FF0 - ldr r0, [r4, #0x64] - ldr r1, [r0, #0xc] - adds r0, r1, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A1B24 - adds r0, r4, #0 - bl sub_080A20B8 - cmp r0, #0 - beq _080A1B24 - movs r0, #8 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0x40 - strh r0, [r1] - adds r1, #0xc - movs r0, #0xc0 - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - movs r1, #0xc - strb r1, [r0] -_080A1B24: - ldr r2, _080A1B44 @ =gPlayerState - ldr r1, _080A1B48 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {r4, pc} - .align 2, 0 -_080A1B44: .4byte gPlayerState -_080A1B48: .4byte gRoomControls - - thumb_func_start sub_080A1B4C -sub_080A1B4C: @ 0x080A1B4C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x45 - ldrb r7, [r0] - cmp r7, #0 - bne _080A1BD0 - adds r5, r4, #0 - adds r5, #0x6c - ldrh r0, [r5] - cmp r0, #0 - beq _080A1B80 - movs r0, #0x2d - movs r1, #1 - bl sub_08080964 - movs r0, #0x94 - lsls r0, r0, #1 - bl SoundReq - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0xc0 - lsls r0, r0, #3 - strh r0, [r1] -_080A1B80: - movs r6, #0 - strh r7, [r5] - ldr r0, _080A1BF0 @ =gScreenTransition - adds r0, #0x39 - strb r6, [r0] - bl sub_08079F8C - cmp r0, #0 - beq _080A1BD0 - ldr r3, _080A1BF4 @ =gPlayerEntity - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _080A1BD0 - movs r0, #9 - strb r0, [r4, #0xc] - strb r6, [r4, #0xe] - movs r0, #0xf0 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x6e - adds r0, #0xb4 - strh r0, [r1] - strb r6, [r4, #0x15] - movs r0, #0x60 - strh r0, [r4, #0x24] - ldr r2, _080A1BF8 @ =gPlayerState - ldr r0, [r2, #0x30] - ldr r1, _080A1BFC @ =0xFFFDFFFF - ands r0, r1 - str r0, [r2, #0x30] - adds r0, r3, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r0, _080A1C00 @ =gRoomControls - str r4, [r0, #0x30] - movs r0, #2 - bl SetPlayerControl -_080A1BD0: - ldr r2, _080A1BF8 @ =gPlayerState - ldr r1, _080A1C00 @ =gRoomControls - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x16] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x18] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A1BF0: .4byte gScreenTransition -_080A1BF4: .4byte gPlayerEntity -_080A1BF8: .4byte gPlayerState -_080A1BFC: .4byte 0xFFFDFFFF -_080A1C00: .4byte gRoomControls - - thumb_func_start sub_080A1C04 -sub_080A1C04: @ 0x080A1C04 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x6e - ldrh r0, [r1] - cmp r0, #0 - bne _080A1C52 - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080A1E54 - ldrb r0, [r4, #0xf] - subs r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080A1C40 - movs r0, #0x7b - bl SetFlag - ldr r0, _080A1C3C @ =gUnk_0813ABD0 - movs r1, #8 - bl sub_0808091C - b _080A1C9A - .align 2, 0 -_080A1C3C: .4byte gUnk_0813ABD0 -_080A1C40: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bne _080A1C9A - movs r0, #7 - movs r1, #4 - bl DoFade - b _080A1C9A -_080A1C52: - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xb3 - bhi _080A1C66 - adds r0, r4, #0 - bl sub_080A1E54 - b _080A1C9A -_080A1C66: - ldrh r1, [r1] - cmp r1, #0xb4 - beq _080A1C76 - movs r0, #0x96 - lsls r0, r0, #1 - cmp r1, r0 - beq _080A1C8A - b _080A1C9A -_080A1C76: - movs r0, #0x94 - lsls r0, r0, #1 - bl SoundReq - movs r0, #0xb4 - lsls r0, r0, #2 - movs r1, #2 - bl sub_08080964 - b _080A1C9A -_080A1C8A: - movs r0, #0x94 - lsls r0, r0, #1 - bl SoundReq - movs r0, #0x4b - movs r1, #1 - bl sub_08080964 -_080A1C9A: - pop {r4, pc} - - thumb_func_start sub_080A1C9C -sub_080A1C9C: @ 0x080A1C9C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7a - ldrb r0, [r5] - cmp r0, #0 - beq _080A1D04 - adds r0, r4, #0 - adds r0, #0x74 - adds r7, r4, #0 - adds r7, #0x75 - ldrb r1, [r0] - adds r6, r0, #0 - ldrb r0, [r7] - cmp r1, r0 - beq _080A1CE4 - subs r5, #2 - movs r0, #0 - strh r0, [r5] - adds r0, r4, #0 - movs r1, #0xc - bl sub_080A1D8C - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - bne _080A1D14 - ldrb r0, [r7] - strb r0, [r6] - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - strh r0, [r5] - b _080A1D14 -_080A1CE4: - adds r0, r4, #0 - movs r1, #0xc - bl sub_080A1D8C - adds r0, r4, #0 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r0] - adds r2, r1, #0 - ldrh r1, [r2] - cmp r0, r1 - bne _080A1D14 - movs r0, #0 - strb r0, [r5] - b _080A1D14 -_080A1D04: - adds r0, r4, #0 - movs r1, #8 - bl sub_080A1D8C - adds r6, r4, #0 - adds r6, #0x74 - adds r2, r4, #0 - adds r2, #0x76 -_080A1D14: - adds r3, r4, #0 - adds r3, #0x70 - ldr r5, _080A1D68 @ =gSineTable - ldrb r0, [r6] - lsls r0, r0, #1 - adds r0, r0, r5 - movs r7, #0 - ldrsh r1, [r0, r7] - ldrh r0, [r2] - muls r0, r1, r0 - cmp r0, #0 - bge _080A1D2E - adds r0, #0xff -_080A1D2E: - asrs r0, r0, #8 - ldrh r1, [r3] - adds r0, r0, r1 - strh r0, [r3] - adds r4, #0x72 - ldrb r0, [r6] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r5 - movs r5, #0 - ldrsh r1, [r0, r5] - ldrh r0, [r2] - muls r0, r1, r0 - cmp r0, #0 - bge _080A1D4E - adds r0, #0xff -_080A1D4E: - asrs r0, r0, #8 - ldrh r1, [r4] - subs r1, r1, r0 - strh r1, [r4] - ldr r2, _080A1D6C @ =gScreen - ldrh r0, [r3] - lsrs r0, r0, #8 - strh r0, [r2, #0x2e] - lsls r1, r1, #0x10 - lsrs r1, r1, #0x18 - strh r1, [r2, #0x30] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A1D68: .4byte gSineTable -_080A1D6C: .4byte gScreen - - thumb_func_start sub_080A1D70 -sub_080A1D70: @ 0x080A1D70 - adds r2, r0, #0 - adds r0, #0x75 - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x7a - movs r0, #1 - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r1, [r0] - adds r0, #4 - strh r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_080A1D8C -sub_080A1D8C: @ 0x080A1D8C - push {r4, lr} - adds r4, r1, #0 - adds r3, r0, #0 - adds r3, #0x78 - adds r2, r0, #0 - adds r2, #0x76 - ldrh r1, [r3] - ldrh r0, [r2] - cmp r1, r0 - beq _080A1DC8 - cmp r1, r0 - bls _080A1DB6 - adds r3, r0, #0 - subs r0, r1, r3 - cmp r4, r0 - bge _080A1DB2 - adds r0, r3, r4 - strh r0, [r2] - b _080A1DC8 -_080A1DB2: - strh r1, [r2] - b _080A1DC8 -_080A1DB6: - ldrh r1, [r2] - ldrh r3, [r3] - subs r0, r1, r3 - cmp r4, r0 - bge _080A1DC6 - subs r0, r1, r4 - strh r0, [r2] - b _080A1DC8 -_080A1DC6: - strh r3, [r2] -_080A1DC8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A1DCC -sub_080A1DCC: @ 0x080A1DCC - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x64] - ldr r3, [r1, #8] - cmp r3, #0 - bne _080A1DDE - ldr r3, [r1, #0xc] - cmp r3, #0 - beq _080A1E24 -_080A1DDE: - adds r0, r3, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _080A1E24 - ldrb r0, [r3, #0x19] - lsrs r0, r0, #6 - cmp r0, #2 - bne _080A1E24 - ldr r3, [r1, #0x10] - ldrb r2, [r3, #0x10] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0x10] - ldr r0, [r4, #0x64] - ldr r3, [r0, #0x14] - ldrb r2, [r3, #0x10] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r2, [r3, #0x10] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r2, [r3, #0x10] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r0, [r3, #0x10] - ands r1, r0 - b _080A1E50 -_080A1E24: - ldr r0, [r4, #0x64] - ldr r2, [r0, #0x10] - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - ldr r0, [r4, #0x64] - ldr r3, [r0, #0x14] - ldrb r0, [r3, #0x10] - orrs r0, r1 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r0, [r3, #0x10] - orrs r0, r1 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r0, [r3, #0x10] - orrs r0, r1 - strb r0, [r3, #0x10] - ldr r3, [r3, #0x54] - ldrb r0, [r3, #0x10] - orrs r1, r0 -_080A1E50: - strb r1, [r3, #0x10] - pop {r4, pc} - - thumb_func_start sub_080A1E54 -sub_080A1E54: @ 0x080A1E54 - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - adds r0, #1 - strb r0, [r2, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _080A1ECA - adds r0, r2, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFx - adds r4, r0, #0 - cmp r4, #0 - beq _080A1ECA - bl Random - ldr r3, _080A1ECC @ =gRoomControls - movs r1, #0xf0 - adds r2, r0, #0 - ands r2, r1 - movs r5, #0x80 - lsls r5, r5, #2 - adds r1, r5, #0 - adds r2, r2, r1 - ldrh r1, [r3, #6] - adds r1, r1, r2 - subs r1, #0x78 - strh r1, [r4, #0x2e] - lsrs r0, r0, #8 - movs r1, #0x70 - ands r0, r1 - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrh r3, [r3, #8] - adds r0, r0, r3 - subs r0, #0x38 - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer -_080A1ECA: - pop {r4, r5, pc} - .align 2, 0 -_080A1ECC: .4byte gRoomControls - - thumb_func_start sub_080A1ED0 -sub_080A1ED0: @ 0x080A1ED0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - mov sb, r1 - adds r5, r2, #0 - movs r1, #0 - str r1, [sp] - ldr r4, _080A1F60 @ =gUnk_08124EF8 - lsls r1, r5, #2 - adds r1, r1, r4 - ldrh r2, [r1] - ldr r3, _080A1F64 @ =gRoomControls - ldrh r1, [r3, #6] - adds r2, r2, r1 - mov sl, r2 - lsls r1, r5, #1 - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r2, [r1] - ldrh r1, [r3, #8] - adds r2, r2, r1 - mov r8, r2 - ldr r1, _080A1F68 @ =gUnk_08124FF0 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - beq _080A1FB0 - lsls r7, r5, #3 - movs r0, #0x10 - adds r6, r7, #0 - eors r6, r0 -_080A1F1C: - movs r0, #0x60 - mov r1, sb - bl CreateEnemy - adds r2, r0, #0 - cmp r2, #0 - beq _080A1FA6 - mov r0, sp - ldrb r0, [r0] - strb r0, [r2, #0xb] - ldr r1, [sp] - adds r1, #1 - str r1, [sp] - mov r0, sl - strh r0, [r2, #0x2e] - mov r1, r8 - strh r1, [r2, #0x32] - strb r7, [r2, #0x15] - adds r0, r2, #0 - adds r0, #0x7a - strb r6, [r0] - ldrh r1, [r4, #4] - subs r0, #2 - strh r1, [r0] - cmp r5, #1 - beq _080A1F7A - cmp r5, #1 - blo _080A1F6C - cmp r5, #2 - beq _080A1F80 - cmp r5, #3 - beq _080A1F94 - b _080A1FA6 - .align 2, 0 -_080A1F60: .4byte gUnk_08124EF8 -_080A1F64: .4byte gRoomControls -_080A1F68: .4byte gUnk_08124FF0 -_080A1F6C: - ldrh r1, [r4] - adds r0, r2, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r4, #2] - rsbs r0, r0, #0 - b _080A1F8C -_080A1F7A: - ldrh r0, [r4, #2] - adds r0, #0xf0 - b _080A1F98 -_080A1F80: - ldrh r1, [r4] - adds r0, r2, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r4, #2] - adds r0, #0xa0 -_080A1F8C: - adds r1, r2, #0 - adds r1, #0x76 - strh r0, [r1] - b _080A1FA6 -_080A1F94: - ldrh r0, [r4, #2] - rsbs r0, r0, #0 -_080A1F98: - adds r1, r2, #0 - adds r1, #0x74 - strh r0, [r1] - ldrh r1, [r4] - adds r0, r2, #0 - adds r0, #0x76 - strh r1, [r0] -_080A1FA6: - adds r4, #6 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, #1 - bne _080A1F1C -_080A1FB0: - mov r0, sb - cmp r0, #0 - bne _080A1FE4 - movs r0, #0xf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _080A1FE4 - mov r1, sl - strh r1, [r2, #0x2e] - mov r0, r8 - strh r0, [r2, #0x32] - ldrb r0, [r2, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r2, #0x1b] - ldrb r0, [r2, #0x19] - orrs r0, r1 - strb r0, [r2, #0x19] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] -_080A1FE4: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080A1FF0 -sub_080A1FF0: @ 0x080A1FF0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _080A2066 - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x20 - bhi _080A2066 - movs r0, #0xf - ands r1, r0 - cmp r1, #0 - bne _080A2066 - adds r0, r5, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFx - adds r4, r0, #0 - cmp r4, #0 - beq _080A2066 - bl Random - ldr r3, _080A209C @ =gRoomControls - movs r1, #0x78 - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #2 - adds r2, r1, #0 - adds r2, r0, r2 - ldrh r1, [r3, #6] - adds r1, r1, r2 - subs r1, #0x3c - strh r1, [r4, #0x2e] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrh r3, [r3, #8] - adds r0, r0, r3 - subs r0, #0x3c - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer -_080A2066: - adds r4, r5, #0 - adds r4, #0x7b - ldrb r0, [r4] - cmp r0, #0 - beq _080A20B4 - ldr r0, _080A20A0 @ =gPlayerEntity - ldr r2, _080A209C @ =gRoomControls - ldrh r1, [r2, #6] - movs r3, #0x80 - lsls r3, r3, #2 - adds r1, r1, r3 - ldrh r2, [r2, #8] - adds r3, #0x10 - adds r2, r2, r3 - movs r3, #0x80 - lsls r3, r3, #1 - bl sub_0806FCB8 - cmp r0, #0 - beq _080A20B2 - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _080A20A4 - movs r0, #0x78 - strb r0, [r5, #0xe] - b _080A20B4 - .align 2, 0 -_080A209C: .4byte gRoomControls -_080A20A0: .4byte gPlayerEntity -_080A20A4: - cmp r0, #0x23 - bne _080A20B4 - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 - b _080A20B4 -_080A20B2: - strb r0, [r4] -_080A20B4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A20B8 -sub_080A20B8: @ 0x080A20B8 - push {r4, lr} - adds r4, r1, #0 - cmp r4, #0 - bne _080A20C4 - movs r0, #1 - b _080A20FA -_080A20C4: - bl sub_08079F8C - cmp r0, #0 - beq _080A20F8 - ldr r0, _080A20F0 @ =gPlayerEntity - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _080A20F8 - movs r1, #0 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _080A20EC - ldr r0, _080A20F4 @ =gPlayerState - ldrb r1, [r0, #0x14] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r1, r0, #0x1f -_080A20EC: - adds r0, r1, #0 - b _080A20FA - .align 2, 0 -_080A20F0: .4byte gPlayerEntity -_080A20F4: .4byte gPlayerState -_080A20F8: - movs r0, #0 -_080A20FA: - pop {r4, pc} diff --git a/include/enemy/gyorg.h b/include/enemy/gyorg.h index 58b68fbe..bcd6286c 100644 --- a/include/enemy/gyorg.h +++ b/include/enemy/gyorg.h @@ -21,6 +21,21 @@ typedef struct { u8 unk_83[5]; } GyorgFemaleEntity; +typedef struct { + Entity base; + u8 filler[0x20]; +} GyorgFemaleMouthEntity; + +typedef struct { + Entity base; + u8 unk_68[0xC]; + u16 unk_74; + u16 unk_76; + u16 unk_78; + u8 unk_7a; + u8 unk_7b[0xD]; +} GyorgChildEntity; + typedef struct { Entity base; u8 unk_68[4]; @@ -29,21 +44,22 @@ typedef struct { u16 unk_70; u16 unk_72; u8 unk_74; - // u8 unk_75[1]; + u8 unk_75; u16 unk_76; u16 unk_78; u8 unk_7a; u8 unk_7b; - u8 unk_7c[0xc]; + u16 unk_7c; + u8 unk_7e[0xa]; } GyorgBossObjectEntity; typedef struct { GyorgBossObjectEntity* boss; GyorgFemaleEntity* female; - Entity* male1; - Entity* male2; - void* unk_10; - void* unk_14; + GenericEntity* male1; + GenericEntity* male2; + GyorgFemaleMouthEntity* unk_10; + GenericEntity* unk_14; void* unk_18[0x8]; u16 unk_38; u16 unk_3a; diff --git a/include/functions.h b/include/functions.h index d7494909..99d3d476 100644 --- a/include/functions.h +++ b/include/functions.h @@ -41,7 +41,7 @@ extern void FlushSprites(void); extern Entity* CreateProjectile(u32); extern void RegisterPlayerHitbox(); extern s32 GetItemPrice(); -extern void DoExitTransition(ScreenTransitionData*); +extern void DoExitTransition(const ScreenTransitionData*); extern void CreateDustAt(s32, s32, u32); extern void PutItemOnSlot(u32 itemID); extern Entity* CreateSpeechBubbleQuestionMark(Entity*, s32, s32); @@ -81,7 +81,7 @@ extern void sub_080575C8(u32); extern void sub_08057688(void); extern void sub_080580B0(u32); extern void sub_080751E8(u32, u32, void*); -extern void sub_0808091C(ScreenTransitionData*, u32); +extern void sub_0808091C(const ScreenTransitionData*, u32); extern void sub_0805BC4C(void); extern void sub_0807BB68(u32*, u32, u32); extern void sub_08054570(void); diff --git a/linker.ld b/linker.ld index d7095703..a4921b91 100644 --- a/linker.ld +++ b/linker.ld @@ -888,7 +888,6 @@ SECTIONS { asm/windTribeTeleporter.o(.text); asm/objectB9.o(.text); src/object/gyorgBossObject.o(.text); - asm/gyorgBossObject.o(.text); src/object/windcrest.o(.text); asm/litArea.o(.text); asm/objectBD.o(.text); diff --git a/src/code_0808091C.c b/src/code_0808091C.c index ab3ceb11..a5ba1bdf 100644 --- a/src/code_0808091C.c +++ b/src/code_0808091C.c @@ -31,7 +31,7 @@ void sub_08080910(void) { gScreenTransition.transitionType = TRANSITION_CUT; } -void sub_0808091C(ScreenTransitionData* param_1, u32 param_2) { +void sub_0808091C(const ScreenTransitionData* param_1, u32 param_2) { DoExitTransition(param_1); gScreenTransition.transitionType = param_2; } diff --git a/src/enemy/gyorgFemale.c b/src/enemy/gyorgFemale.c index aded2572..508098bb 100644 --- a/src/enemy/gyorgFemale.c +++ b/src/enemy/gyorgFemale.c @@ -49,10 +49,10 @@ void sub_0804614C(GyorgFemaleEntity* this) { tmp = CreateProjectile(0x22); tmp->type = 0; tmp->parent = super; - ((GyorgFemaleHeap*)super->myHeap)->unk_14 = tmp; + ((GyorgFemaleHeap*)super->myHeap)->unk_14 = (GenericEntity*)tmp; tmp = CreateEnemy(GYORG_FEMALE_MOUTH, 0); tmp->parent = super; - ((GyorgFemaleHeap*)super->myHeap)->unk_10 = tmp; + ((GyorgFemaleHeap*)super->myHeap)->unk_10 = (GyorgFemaleMouthEntity*)tmp; tmp = CreateEnemy(GYORG_FEMALE_EYE, 0); tmp->parent = super; tmp = CreateEnemy(GYORG_FEMALE_EYE, 1); diff --git a/src/enemy/gyorgFemaleEye.c b/src/enemy/gyorgFemaleEye.c index ca6b1d05..69482c7a 100644 --- a/src/enemy/gyorgFemaleEye.c +++ b/src/enemy/gyorgFemaleEye.c @@ -172,7 +172,7 @@ void sub_08048D20(GyorgFemaleEyeEntity* this) { } u32 sub_08048D70(GyorgFemaleEntity* parent) { - Entity* tmp; + GenericEntity* tmp; if (parent->base.health != 0) { return 1; } @@ -180,7 +180,7 @@ u32 sub_08048D70(GyorgFemaleEntity* parent) { if (!tmp) { tmp = ((GyorgFemaleHeap*)parent->base.myHeap)->male2; } - if (tmp->health != 0) { + if (tmp->base.health != 0) { return 0; } return 1; diff --git a/src/enemy/vaatiArm.c b/src/enemy/vaatiArm.c index 8a5dd737..13e8f18a 100644 --- a/src/enemy/vaatiArm.c +++ b/src/enemy/vaatiArm.c @@ -2,8 +2,6 @@ #include "object.h" #include "functions.h" -extern void DoExitTransition(ScreenTransitionData*); - typedef struct VaatiArm_HeapStruct1 { union SplitHWord unk00; u16 unk02; diff --git a/src/enemy/vaatiProjectile.c b/src/enemy/vaatiProjectile.c index 2efae6f5..07bd1540 100644 --- a/src/enemy/vaatiProjectile.c +++ b/src/enemy/vaatiProjectile.c @@ -2,7 +2,6 @@ #include "functions.h" extern bool32 PlayerInRange(Entity*, u32, u32); -extern void DoExitTransition(ScreenTransitionData*); extern u32 sub_080002E0(u32, u32); extern Entity* gUnk_020000B0; extern const ScreenTransitionData gUnk_0813AB94; diff --git a/src/object/gyorgBossObject.c b/src/object/gyorgBossObject.c index 9c4a2fe5..9f68eab8 100644 --- a/src/object/gyorgBossObject.c +++ b/src/object/gyorgBossObject.c @@ -5,13 +5,23 @@ #include "area.h" #include "room.h" #include "screen.h" +#include "functions.h" #include "enemy/gyorg.h" +extern const ScreenTransitionData gUnk_0813ABD0; + +extern u32 sub_08079F8C(void); +extern const u16 gUnk_08124EF8[]; +extern s16* const gUnk_08124FF0[]; + extern void sub_080A1DCC(GyorgBossObjectEntity*); extern void sub_080A1C9C(GyorgBossObjectEntity*); +void sub_080A1E54(GyorgBossObjectEntity*); + +void sub_080A1D8C(GyorgBossObjectEntity*, s32); void sub_080A1FF0(GyorgBossObjectEntity*); -u32 sub_080A20B8(GyorgBossObjectEntity*, Entity*); +u32 sub_080A20B8(GyorgBossObjectEntity*, GenericEntity*); void sub_080A1D70(GyorgBossObjectEntity*, u32); extern void (*const gUnk_08124ED0[])(GyorgBossObjectEntity*); @@ -49,7 +59,7 @@ void sub_080A1704(GyorgBossObjectEntity* this) { tmp->y.HALF.HI = gRoomControls.roomOriginY + 0x330; #endif tmp->myHeap = heap; - heap->male1 = tmp; + heap->male1 = (GenericEntity*)tmp; tmp = CreateEnemy(GYORG_MALE, 1); tmp->x.HALF.HI = gRoomControls.roomOriginX + 0x260; #ifdef EU @@ -58,7 +68,7 @@ void sub_080A1704(GyorgBossObjectEntity* this) { tmp->y.HALF.HI = gRoomControls.roomOriginY + 0x310; #endif tmp->myHeap = heap; - heap->male2 = tmp; + heap->male2 = (GenericEntity*)tmp; gScreen.bg3.control = 0x1E07; gScreen.lcd.displayControl |= 0x800; this->unk_70 = 0; @@ -94,7 +104,7 @@ void sub_080A189C(GyorgBossObjectEntity* this) { this->unk_6c = 1; this->unk_78 = 0x400; this->unk_7b = 1; - ((GyorgFemaleHeap*)super->myHeap)->male1->health = 0xC; + ((GyorgFemaleHeap*)super->myHeap)->male1->base.health = 0xC; SoundReq(0x128); sub_08080964(0x96, 1); } @@ -104,7 +114,7 @@ void sub_080A189C(GyorgBossObjectEntity* this) { void sub_080A190C(GyorgBossObjectEntity* this) { sub_080A1FF0(this); - if (((GyorgFemaleHeap*)super->myHeap)->male1->health == 0) { + if (((GyorgFemaleHeap*)super->myHeap)->male1->base.health == 0) { if (sub_080A20B8(this, ((GyorgFemaleHeap*)super->myHeap)->male1)) { super->action = 4; this->unk_6c = 0x10; @@ -115,7 +125,306 @@ void sub_080A190C(GyorgBossObjectEntity* this) { gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200; gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210; } else { - gPlayerState.startPosX = ((GyorgFemaleHeap*)super->myHeap)->male1->x.HALF.HI; - gPlayerState.startPosY = ((GyorgFemaleHeap*)super->myHeap)->male1->y.HALF.HI; + gPlayerState.startPosX = ((GyorgFemaleHeap*)super->myHeap)->male1->base.x.HALF.HI; + gPlayerState.startPosY = ((GyorgFemaleHeap*)super->myHeap)->male1->base.y.HALF.HI; } } + +void sub_080A1990(GyorgBossObjectEntity* this, u32 unk1) { + if (((GyorgFemaleHeap*)super->myHeap)->female->base.health == 0) { + ((GyorgFemaleHeap*)super->myHeap)->male1->base.health = 0xC; + super->action = 5; + super->actionDelay = 0x23; + this->unk_6c = 2; + this->unk_78 = 0x400; + this->unk_7b = 1; + SoundReq(0x128); + sub_08080964(0x96, 1); + } + gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200; + gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210; +} + +void sub_080A19FC(GyorgBossObjectEntity* this) { + sub_080A1FF0(this); + if (((GyorgFemaleHeap*)super->myHeap)->male2->base.health == 0) { + if (sub_080A20B8(this, ((GyorgFemaleHeap*)super->myHeap)->male2)) { + super->action = 6; + this->unk_6c = 0x20; + this->unk_78 = 0xc0; + sub_080A1D70(this, ((GyorgFemaleHeap*)super->myHeap)->female->base.animationState); + ((GyorgFemaleHeap*)super->myHeap)->female->base.health = 0x18; + } + gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200; + gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210; + } else { + gPlayerState.startPosX = ((GyorgFemaleHeap*)super->myHeap)->male2->base.x.HALF.HI; + gPlayerState.startPosY = ((GyorgFemaleHeap*)super->myHeap)->male2->base.y.HALF.HI; + } +} + +void sub_080A1A80(GyorgBossObjectEntity* this) { + if (((GyorgFemaleHeap*)super->myHeap)->female->base.health == 0) { + ((GyorgFemaleHeap*)super->myHeap)->male2->base.health = 0xC; + super->action = 7; + super->actionDelay = 0x23; + this->unk_6c = 0x104; + this->unk_78 = 0x400; + SoundReq(SFX_BOSS_DIE); + sub_08080964(0x96, 1); + } + gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200; + gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210; +} + +void sub_080A1AE8(GyorgBossObjectEntity* this) { + sub_080A1FF0(this); + if (((GyorgFemaleHeap*)super->myHeap)->male2->base.health == 0) { + if (sub_080A20B8(this, ((GyorgFemaleHeap*)super->myHeap)->male2)) { + super->action = 8; + this->unk_6c = 0x40; + this->unk_78 = 0xC0; + ((GyorgFemaleHeap*)super->myHeap)->female->base.health = 0xC; + } + } + gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200; + gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210; +} + +void sub_080A1B4C(GyorgBossObjectEntity* this) { + if (((GyorgFemaleHeap*)super->myHeap)->female->base.health == 0) { + if (this->unk_6c != 0) { + sub_08080964(0x2d, 1); + SoundReq(SFX_BOSS_DIE); + this->unk_78 = 0x600; + } + this->unk_6c = 0; + gScreenTransition.field_0x39 = 0; + if (sub_08079F8C() && gPlayerEntity.z.HALF.HI == 0) { + super->action = 9; + super->actionDelay = 0; + super->field_0xf = 0xF0; + this->unk_6e = 0x1a4; + super->direction = 0; + super->speed = 0x60; + gPlayerState.flags &= ~0x20000; + CopyPosition(&gPlayerEntity, super); + gRoomControls.cameraTarget = super; + SetPlayerControl(2); + } + } + gPlayerState.startPosX = gRoomControls.roomOriginX + 0x200; + gPlayerState.startPosY = gRoomControls.roomOriginY + 0x210; +} + +void sub_080A1C04(GyorgBossObjectEntity* this) { + if (this->unk_6e == 0) { + sub_0806F69C(super); + sub_080A1E54(this); + if (--super->field_0xf == 0) { + SetFlag(0x7B); + sub_0808091C(&gUnk_0813ABD0, 8); + return; + } + if (super->field_0xf == 0x3C) { + DoFade(7, 4); + } + return; + } + if (--this->unk_6e < 0xb4) { + sub_080A1E54(this); + return; + } + switch (this->unk_6e) { + case 0xb4: + SoundReq(SFX_BOSS_DIE); + sub_08080964(0x2d0, 2); + break; + case 0x12C: + SoundReq(SFX_BOSS_DIE); + sub_08080964(0x4b, 1); + break; + } +} + +void sub_080A1C9C(GyorgBossObjectEntity* this) { + if (this->unk_7a) { + if (this->unk_74 != this->unk_75) { + this->unk_78 = 0; + sub_080A1D8C(this, 0xC); + if (this->unk_76 == 0) { + this->unk_74 = this->unk_75; + this->unk_78 = this->unk_7c; + } + } else { + sub_080A1D8C(this, 0xC); + if (this->unk_78 == this->unk_76) { + this->unk_7a = 0; + } + } + } else { + sub_080A1D8C(this, 8); + } + this->unk_70 += gSineTable[this->unk_74] * this->unk_76 / 0x100; + this->unk_72 -= gSineTable[this->unk_74 + 0x40] * this->unk_76 / 0x100; + gScreen.bg3.xOffset = this->unk_70 >> 0x8; + gScreen.bg3.yOffset = this->unk_72 >> 0x8; +} + +void sub_080A1D70(GyorgBossObjectEntity* this, u32 unk1) { + this->unk_75 = unk1; + this->unk_7a = 1; + this->unk_7c = this->unk_78; +} + +void sub_080A1D8C(GyorgBossObjectEntity* this, s32 unk1) { + if (this->unk_78 != this->unk_76) { + if (this->unk_78 > this->unk_76) { + if (unk1 < this->unk_78 - this->unk_76) { + this->unk_76 += unk1; + } else { + this->unk_76 = this->unk_78; + } + } else { + if (unk1 < this->unk_76 - this->unk_78) { + this->unk_76 -= unk1; + } else { + this->unk_76 = this->unk_78; + } + } + } +} + +void sub_080A1DCC(GyorgBossObjectEntity* this) { + GenericEntity* tmp; + if ((tmp = ((GyorgFemaleHeap*)super->myHeap)->male1) != NULL || + (tmp = ((GyorgFemaleHeap*)super->myHeap)->male2) != NULL) { + if (tmp->field_0x7c.BYTES.byte0 && tmp->base.spriteRendering.b3 == 2) { + ((GyorgFemaleHeap*)super->myHeap)->unk_10->base.flags &= ~0x80; + tmp = ((GyorgFemaleHeap*)super->myHeap)->unk_14; + tmp->base.flags &= ~0x80; + tmp = (GenericEntity*)tmp->base.child; + tmp->base.flags &= ~0x80; + tmp = (GenericEntity*)tmp->base.child; + tmp->base.flags &= ~0x80; + tmp = (GenericEntity*)tmp->base.child; + tmp->base.flags &= ~0x80; + return; + } + } + ((GyorgFemaleHeap*)super->myHeap)->unk_10->base.flags |= 0x80; + tmp = ((GyorgFemaleHeap*)super->myHeap)->unk_14; + tmp->base.flags |= 0x80; + tmp = (GenericEntity*)tmp->base.child; + tmp->base.flags |= 0x80; + tmp = (GenericEntity*)tmp->base.child; + tmp->base.flags |= 0x80; + tmp = (GenericEntity*)tmp->base.child; + tmp->base.flags |= 0x80; +} + +void sub_080A1E54(GyorgBossObjectEntity* this) { + Entity* fx; + if ((++super->actionDelay & 0x1F) == 0) { + fx = CreateFx(super, 0x51, 0); + if (fx) { + u32 r = Random(); + fx->x.HALF.HI = gRoomControls.roomOriginX + 0x200 + (r & 0xf0) - 0x78; + fx->y.HALF.HI = gRoomControls.roomOriginY + 0x210 + ((r >> 8) & 0x70) - 0x38; + fx->spritePriority.b0 = 5; + fx->collisionLayer = 2; + UpdateSpriteForCollisionLayer(fx); + } + } +} + +void sub_080A1ED0(u32 unk0, u32 unk1, u32 unk2) { + u32 i = 0; + s16* p; + u32 x, y; + x = gUnk_08124EF8[unk2 * 2] + gRoomControls.roomOriginX; + y = gUnk_08124EF8[unk2 * 2 + 1] + gRoomControls.roomOriginY; + p = gUnk_08124FF0[unk0]; + while (*p != 1) { + GyorgChildEntity* tmp = (GyorgChildEntity*)CreateEnemy(GYORG_CHILD, unk1); + if (tmp) { + tmp->base.type2 = i++; + tmp->base.x.HALF.HI = x; + tmp->base.y.HALF.HI = y; + tmp->base.direction = DirectionFromAnimationState(unk2); + tmp->unk_7a = DirectionTurnAround(DirectionFromAnimationState(unk2)); + tmp->unk_78 = p[2]; + switch (unk2) { + case 0: + tmp->unk_74 = p[0]; + tmp->unk_76 = -p[1]; + break; + case 1: + tmp->unk_74 = p[1] + 0xF0; + tmp->unk_76 = p[0]; + break; + case 2: + tmp->unk_74 = p[0]; + tmp->unk_76 = p[1] + 0xA0; + break; + case 3: + tmp->unk_74 = -p[1]; + tmp->unk_76 = p[0]; + break; + } + } + p += 3; + } + if (unk1 == 0) { + Entity* tmp; + tmp = CreateObject(SPECIAL_FX, 2, 0); + if (tmp) { + tmp->x.HALF.HI = x; + tmp->y.HALF.HI = y; + tmp->spriteOrientation.flipY = 3; + tmp->spriteRendering.b3 = 3; + tmp->collisionLayer = 1; + } + } +} + +void sub_080A1FF0(GyorgBossObjectEntity* this) { + if (super->actionDelay != 0) { + super->actionDelay--; + if (super->actionDelay <= 0x20 && (super->actionDelay & 0xF) == 0) { + Entity* fx; + fx = CreateFx(super, 0x51, 0); + if (fx) { + u32 r = Random(); + fx->x.HALF.HI = gRoomControls.roomOriginX + 0x200 + (r & 0x78) - 0x3C; + fx->y.HALF.HI = gRoomControls.roomOriginY + 0x210 + (r & 0x78) - 0x3C; + fx->spritePriority.b0 = 6; + fx->collisionLayer = 1; + UpdateSpriteForCollisionLayer(fx); + } + } + } + if (this->unk_7b) { + if (sub_0806FCB8(&gPlayerEntity, gRoomControls.roomOriginX + 0x200, gRoomControls.roomOriginY + 0x210, 0x100)) { + if (super->actionDelay == 0) { + super->actionDelay = 0x78; + } else { + if (super->actionDelay == 0x23) { + sub_08080964(0x1e, 0); + } + } + } else { + this->unk_7b = 0; + } + } +} + +u32 sub_080A20B8(GyorgBossObjectEntity* this, GenericEntity* other) { + if (other == NULL) { + return 1; + } + if (sub_08079F8C() && gPlayerEntity.z.HALF.HI == 0) { + return other->field_0x7c.BYTES.byte0 == 0 && gPlayerState.field_0x14 != 0; + } + return 0; +} From 23736e63a998da62d750f779eb5999f6ded78b7b Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Sat, 1 Jan 2022 18:11:39 +0100 Subject: [PATCH 085/168] gyorgChild.c: ok --- asm/gyorgChild.s | 455 ----------------------------------------- include/enemy/gyorg.h | 3 +- include/functions.h | 2 +- linker.ld | 2 +- src/enemy/gyorgChild.c | 172 ++++++++++++++++ 5 files changed, 176 insertions(+), 458 deletions(-) delete mode 100644 asm/gyorgChild.s create mode 100644 src/enemy/gyorgChild.c diff --git a/asm/gyorgChild.s b/asm/gyorgChild.s deleted file mode 100644 index c812d0ff..00000000 --- a/asm/gyorgChild.s +++ /dev/null @@ -1,455 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start GyorgChild -GyorgChild: @ 0x08048640 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0804867C @ =gScreenTransition - adds r0, #0x39 - ldrb r2, [r0] - cmp r2, #0 - bne _08048664 - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - adds r0, #0x45 - strb r2, [r0] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_08048664: - ldr r4, _08048680 @ =gUnk_080D1E6C - adds r0, r5, #0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_0804867C: .4byte gScreenTransition -_08048680: .4byte gUnk_080D1E6C - - thumb_func_start sub_08048684 -sub_08048684: @ 0x08048684 - push {lr} - ldr r2, _08048698 @ =gUnk_080D1E84 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08048698: .4byte gUnk_080D1E84 - - thumb_func_start sub_0804869C -sub_0804869C: @ 0x0804869C - push {lr} - ldr r1, _080486A8 @ =gUnk_080D1E6C - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_080486A8: .4byte gUnk_080D1E6C - - thumb_func_start sub_080486AC -sub_080486AC: @ 0x080486AC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _080486C8 - ldr r0, _080486CC @ =gUnk_080D1E94 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_080486C8: - pop {r4, pc} - .align 2, 0 -_080486CC: .4byte gUnk_080D1E94 - - thumb_func_start sub_080486D0 -sub_080486D0: @ 0x080486D0 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_080486D8 -sub_080486D8: @ 0x080486D8 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080486E0 -sub_080486E0: @ 0x080486E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080486F2 - adds r0, r4, #0 - bl sub_0804A7D4 -_080486F2: - pop {r4, pc} - - thumb_func_start sub_080486F4 -sub_080486F4: @ 0x080486F4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0x1c] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0804876C - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl InitializeAnimation - strb r5, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - bl Random - movs r1, #0xb - bl __modsi3 - ldrb r1, [r4, #0x15] - adds r1, r1, r0 - subs r1, #5 - movs r2, #0x1f - ands r1, r2 - strb r1, [r4, #0x15] - lsls r0, r0, #1 - ldr r2, _08048768 @ =gUnk_080D1EA0 - adds r1, r0, r2 - ldrb r1, [r1] - strb r1, [r4, #0xe] - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x7b - strb r0, [r1] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - b _0804877A - .align 2, 0 -_08048768: .4byte gUnk_080D1EA0 -_0804876C: - movs r0, #2 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] -_0804877A: - pop {r4, r5, pc} - - thumb_func_start sub_0804877C -sub_0804877C: @ 0x0804877C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080487AA - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _080487AA - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_080487AA: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _080487D4 - cmp r0, #1 - bgt _080487BC - cmp r0, #0 - beq _080487C2 - b _08048804 -_080487BC: - cmp r0, #2 - beq _080487EC - b _08048804 -_080487C2: - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldr r0, _080487D0 @ =gRoomControls - movs r2, #0xc - ldrsh r0, [r0, r2] - b _0804880E - .align 2, 0 -_080487D0: .4byte gRoomControls -_080487D4: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r0, _080487E8 @ =gRoomControls - movs r2, #0xa - ldrsh r0, [r0, r2] - movs r2, #0x84 - lsls r2, r2, #1 - adds r0, r0, r2 - b _080487F8 - .align 2, 0 -_080487E8: .4byte gRoomControls -_080487EC: - movs r0, #0x32 - ldrsh r1, [r4, r0] - ldr r0, _08048800 @ =gRoomControls - movs r2, #0xc - ldrsh r0, [r0, r2] - adds r0, #0xb8 -_080487F8: - cmp r1, r0 - blt _08048824 - b _08048814 - .align 2, 0 -_08048800: .4byte gRoomControls -_08048804: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r0, _08048828 @ =gRoomControls - movs r2, #0xa - ldrsh r0, [r0, r2] -_0804880E: - subs r0, #0x18 - cmp r1, r0 - bgt _08048824 -_08048814: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x5e - ands r0, r1 - strb r0, [r4, #0x18] -_08048824: - pop {r4, pc} - .align 2, 0 -_08048828: .4byte gRoomControls - - thumb_func_start sub_0804882C -sub_0804882C: @ 0x0804882C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080488FA - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - bl Random - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer - adds r0, r4, #0 - adds r0, #0x7a - ldrb r0, [r0] - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1a - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl InitializeAnimation - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _080488D0 - cmp r0, #1 - bgt _080488AA - cmp r0, #0 - beq _080488AE - b _080488D0 -_080488AA: - cmp r0, #2 - bne _080488D0 -_080488AE: - ldr r1, _080488C8 @ =gPlayerEntity - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r1, [r1, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldr r1, _080488CC @ =gRoomControls - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - ldrh r1, [r1, #0xc] - b _080488E8 - .align 2, 0 -_080488C8: .4byte gPlayerEntity -_080488CC: .4byte gRoomControls -_080488D0: - ldr r1, _080488FC @ =gRoomControls - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r1, [r1, #0xa] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldr r1, _08048900 @ =gPlayerEntity - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - ldrh r1, [r1, #0x32] -_080488E8: - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080488FA - movs r0, #0xcc - lsls r0, r0, #1 - bl SoundReq -_080488FA: - pop {r4, pc} - .align 2, 0 -_080488FC: .4byte gRoomControls -_08048900: .4byte gPlayerEntity - - thumb_func_start sub_08048904 -sub_08048904: @ 0x08048904 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl GetNextFrame - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _0804893C - cmp r0, #1 - bgt _08048924 - cmp r0, #0 - beq _0804892A - b _0804896C -_08048924: - cmp r0, #2 - beq _08048954 - b _0804896C -_0804892A: - movs r0, #0x32 - ldrsh r1, [r4, r0] - ldr r0, _08048938 @ =gRoomControls - movs r2, #0xc - ldrsh r0, [r0, r2] - b _08048976 - .align 2, 0 -_08048938: .4byte gRoomControls -_0804893C: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r0, _08048950 @ =gRoomControls - movs r2, #0xa - ldrsh r0, [r0, r2] - movs r2, #0x8c - lsls r2, r2, #1 - adds r0, r0, r2 - b _08048960 - .align 2, 0 -_08048950: .4byte gRoomControls -_08048954: - movs r0, #0x32 - ldrsh r1, [r4, r0] - ldr r0, _08048968 @ =gRoomControls - movs r2, #0xc - ldrsh r0, [r0, r2] - adds r0, #0xc8 -_08048960: - cmp r1, r0 - blt _08048980 - b _0804897C - .align 2, 0 -_08048968: .4byte gRoomControls -_0804896C: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r0, _08048984 @ =gRoomControls - movs r2, #0xa - ldrsh r0, [r0, r2] -_08048976: - subs r0, #0x28 - cmp r1, r0 - bgt _08048980 -_0804897C: - bl DeleteThisEntity -_08048980: - pop {r4, pc} - .align 2, 0 -_08048984: .4byte gRoomControls diff --git a/include/enemy/gyorg.h b/include/enemy/gyorg.h index bcd6286c..cad4e6ec 100644 --- a/include/enemy/gyorg.h +++ b/include/enemy/gyorg.h @@ -33,7 +33,8 @@ typedef struct { u16 unk_76; u16 unk_78; u8 unk_7a; - u8 unk_7b[0xD]; + u8 unk_7b; + u8 unk_7c[0xC]; } GyorgChildEntity; typedef struct { diff --git a/include/functions.h b/include/functions.h index 99d3d476..3d646598 100644 --- a/include/functions.h +++ b/include/functions.h @@ -58,7 +58,7 @@ extern void ChangeObjPalette(Entity*, u32); extern void sub_0806FD3C(Entity*); extern void sub_0805ED14(u32*); extern void sub_080A7C18(u32, u32, u32); -extern void sub_0804AA30(Entity*, void (*const funcs[])(Entity*)); +extern void sub_0804AA30(Entity*, void (*const funcs[])()); extern void sub_0804A720(Entity*); extern u32 sub_080AEFE0(Entity*); extern u32 sub_08049FA0(Entity*); diff --git a/linker.ld b/linker.ld index a4921b91..effaf018 100644 --- a/linker.ld +++ b/linker.ld @@ -465,7 +465,7 @@ SECTIONS { src/enemy/gyorgMale.o(.text); asm/curtain.o(.text); src/enemy/vaatiWrathEye.o(.text); - asm/gyorgChild.o(.text); + src/enemy/gyorgChild.o(.text); src/enemy/gyorgFemaleEye.o(.text); asm/enemy62.o(.text); src/enemy/gyorgFemaleMouth.o(.text); diff --git a/src/enemy/gyorgChild.c b/src/enemy/gyorgChild.c new file mode 100644 index 00000000..87050067 --- /dev/null +++ b/src/enemy/gyorgChild.c @@ -0,0 +1,172 @@ +#define NENT_DEPRECATED +#include "global.h" +#include "room.h" +#include "functions.h" +#include "enemy/gyorg.h" + +extern void (*const gUnk_080D1E6C[])(GyorgChildEntity*); + +void GyorgChild(Entity* this) { + if (gScreenTransition.field_0x39 == 0) { + this->flags &= ~0x80; + this->health = 0; + this->collisionLayer = 2; + } + gUnk_080D1E6C[GetNextFunction(this)]((GyorgChildEntity*)this); +} + +extern void (*const gUnk_080D1E84[])(GyorgChildEntity*); + +void sub_08048684(GyorgChildEntity* this) { + gUnk_080D1E84[super->action](this); +} + +extern void (*const gUnk_080D1E6C[])(GyorgChildEntity*); + +void sub_0804869C(GyorgChildEntity* this) { + sub_0804AA30(super, gUnk_080D1E6C); +} + +extern void (*const gUnk_080D1E94[])(GyorgChildEntity*); + +void sub_080486AC(GyorgChildEntity* this) { + if (sub_0806F520()) { + gUnk_080D1E94[super->subAction](this); + } +} + +void sub_080486D0(GyorgChildEntity* this) { + super->subAction = 2; +} + +void sub_080486D8(GyorgChildEntity* this) { + sub_0806F4E8(super); +} + +void sub_080486E0(GyorgChildEntity* this) { + if (sub_0806F3E4(super)) { + sub_0804A7D4(super); + } +} + +extern const u8 gUnk_080D1EA0[]; + +void sub_080486F4(GyorgChildEntity* this) { + super->field_0x1c = 1; + super->spriteOrientation.flipY = 3; + super->spriteRendering.b3 = 3; + super->spritePriority.b0 = 7; + super->animationState = super->direction >> 2; + if (super->type == 0) { + s32 r; + InitializeAnimation(super, super->animationState); + super->action = 1; + super->flags |= 0x80; + r = (signed)Random() % 0xB; + super->direction += r; + super->direction -= 5; + super->direction &= 0x1F; + r *= 2; + super->actionDelay = gUnk_080D1EA0[r]; + this->unk_7b = gUnk_080D1EA0[r + 1]; + super->speed = 0x200; + } else { + super->action = 2; + super->actionDelay = 1; + super->spriteSettings.draw = 0; + } +} + +void sub_0804877C(GyorgChildEntity* this) { + sub_0806F69C(super); + if (super->actionDelay != 0) { + if ((--super->actionDelay & 0xF) == 0) { + super->direction += this->unk_7b; + super->direction &= 0x1F; + } + } + switch (super->animationState >> 1) { + case 0: + if (super->y.HALF.HI > gRoomControls.roomScrollY - 0x18) { + return; + } + break; + case 1: + if (super->x.HALF.HI < gRoomControls.roomScrollX + 0x108) { + return; + } + break; + case 2: + if (super->y.HALF.HI < gRoomControls.roomScrollY + 0xb8) { + return; + } + break; + default: + if (super->x.HALF.HI > gRoomControls.roomScrollX - 0x18) { + return; + } + break; + } + super->action = 2; + super->actionDelay = 90; + super->spriteSettings.draw = 0; +} + +void sub_0804882C(GyorgChildEntity* this) { + if (--super->actionDelay == 0) { + super->action = 3; + super->flags |= 0x80; + Random(); + super->spriteSettings.draw = 1; + super->spritePriority.b0 = 4; + super->speed = this->unk_78; + super->collisionLayer = 2; + UpdateSpriteForCollisionLayer(super); + super->direction = this->unk_7a; + super->animationState = super->direction >> 2; + InitializeAnimation(super, super->animationState); + switch (super->animationState >> 1) { + case 0: + case 2: + super->x.HALF.HI = gPlayerEntity.x.HALF.HI + this->unk_74; + super->y.HALF.HI = gRoomControls.roomScrollY + this->unk_76; + break; + case 1: + default: + super->x.HALF.HI = gRoomControls.roomScrollX + this->unk_74; + super->y.HALF.HI = gPlayerEntity.y.HALF.HI + this->unk_76; + break; + } + if (super->type2 == 0) { + SoundReq(SFX_198); + } + } +} + +void sub_08048904(GyorgChildEntity* this) { + sub_0806F69C(super); + GetNextFrame(super); + switch (super->animationState >> 1) { + case 0: + if (super->y.HALF.HI > gRoomControls.roomScrollY - 0x28) { + return; + } + break; + case 1: + if (super->x.HALF.HI < gRoomControls.roomScrollX + 0x118) { + return; + } + break; + case 2: + if (super->y.HALF.HI < gRoomControls.roomScrollY + 0xc8) { + return; + } + break; + default: + if (super->x.HALF.HI > gRoomControls.roomScrollX - 0x28) { + return; + } + break; + } + DeleteThisEntity(); +} From 447782f21c011e421f84728a38ed7e1007aca758 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Sun, 2 Jan 2022 03:26:38 +0200 Subject: [PATCH 086/168] Remove uintended includes --- src/entity.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/entity.c b/src/entity.c index 930fb6d6..79040e23 100644 --- a/src/entity.c +++ b/src/entity.c @@ -296,11 +296,6 @@ NONMATCH("./asm/getEmptyEntity.s", Entity* GetEmptyEntity()) { } END_NONMATCH -//#define NDEPRECATED - -#include "entity.h" -#include "functions.h" - extern Entity gUnk_030011E8[7]; Entity* sub_0805E744(void) { From 1ca41b54a984af1da881cb9a01015069a570c195 Mon Sep 17 00:00:00 2001 From: theo3 Date: Sat, 1 Jan 2022 18:26:25 -0800 Subject: [PATCH 087/168] color.c, utils->common.c --- asm/code_0801CEC0.s | 863 ------ asm/code_0805436C.s | 4 +- asm/non_matching/color/CleanUpObjPalettes.inc | 141 + asm/non_matching/color/FindFreeObjPalette.inc | 60 + asm/non_matching/color/FindPalette.inc | 28 + asm/non_matching/color/LoadObjPalette.inc | 100 + .../color/LoadObjPaletteAtIndex.inc | 63 + .../color/SetEntityObjPalette.inc | 80 + asm/non_matching/color/sub_0801D000.inc | 34 + asm/non_matching/color/sub_0801D244.inc | 39 + asm/non_matching/color/sub_0801D48C.inc | 71 + asm/non_matching/common/ClearBit.inc | 14 + .../common/DrawDungeonFeatures.inc | 179 ++ asm/non_matching/common/DrawDungeonMap.inc | 221 ++ asm/non_matching/common/WriteBit.inc | 14 + asm/non_matching/common/sub_0801D898.inc | 39 + asm/non_matching/common/sub_0801DF28.inc | 28 + asm/non_matching/common/sub_0801DFB4.inc | 44 + asm/non_matching/common/sub_0801E24C.inc | 40 + asm/non_matching/common/sub_0801E290.inc | 75 + asm/non_matching/common/sub_0801E31C.inc | 189 ++ asm/non_matching/common/sub_0801E49C.inc | 211 ++ asm/non_matching/common/sub_0801E64C.inc | 72 + asm/non_matching/common/sub_0801E6C8.inc | 59 + asm/non_matching/common/sub_0801E738.inc | 51 + asm/non_matching/common/sub_0801E82C.inc | 69 + asm/non_matching/common/sub_0801E99C.inc | 112 + asm/non_matching/common/zFree.inc | 58 + asm/non_matching/common/zMalloc.inc | 171 ++ asm/non_matching/textbox/sub_08056FEC.inc | 2 +- asm/object/object9.s | 4 +- asm/object/objectB3.s | 4 +- asm/subtask.s | 32 +- asm/subtask2.s | 8 +- asm/utils.s | 2677 ----------------- include/asm.h | 2 - include/color.h | 21 + include/{utils.h => common.h} | 22 +- include/enemy.h | 2 +- include/entity.h | 1 + include/flags.h | 8 +- include/functions.h | 7 +- include/global.h | 3 + include/kinstone.h | 28 + include/main.h | 2 + include/npc.h | 2 +- include/object.h | 2 +- include/room.h | 4 +- include/save.h | 8 +- include/screen.h | 2 +- include/structures.h | 1 - linker.ld | 7 +- src/code_0805436C.c | 2 +- src/code_08078778.c | 9 +- src/collision.c | 2 +- src/color.c | 84 + src/common.c | 681 +++++ src/coord.c | 2 +- src/debugScreen.c | 2 +- src/demoScreen.c | 2 +- src/dungeon.c | 1 + src/enemy/code_080300AC.c | 2 +- src/enterPortalSubtask.c | 2 +- src/entity.c | 3 +- src/fade.c | 2 +- src/fileScreen.c | 2 +- src/flags.c | 25 +- src/game.c | 2 +- src/main.c | 4 +- src/manager/manager10.c | 2 +- src/manager/manager14.c | 1 - src/manager/manager1A.c | 2 +- src/manager/manager2C.c | 2 +- src/manager/manager32.c | 2 +- src/manager/manager39.c | 2 +- src/manager/managerB.c | 2 +- src/manager/managerC.c | 2 +- src/manager/managerF.c | 2 +- src/message.c | 6 +- src/npc/zeldaFollower.c | 2 +- src/npcUtils.c | 3 +- src/object/lockedDoor.c | 1 + src/player.c | 2 +- src/playerItem/playerItemPacciCane.c | 2 +- src/playerItem/playerItemSwordBeam.c | 1 + src/playerItemUtils.c | 2 +- src/projectile/winder.c | 2 +- src/room.c | 2 +- src/roomInit.c | 2 +- src/script.c | 3 +- src/sound.c | 2 +- src/sub_0807CA18.c | 2 +- src/text.c | 2 +- src/title.c | 2 +- src/utils.c | 205 -- 95 files changed, 3196 insertions(+), 3867 deletions(-) delete mode 100644 asm/code_0801CEC0.s create mode 100644 asm/non_matching/color/CleanUpObjPalettes.inc create mode 100644 asm/non_matching/color/FindFreeObjPalette.inc create mode 100644 asm/non_matching/color/FindPalette.inc create mode 100644 asm/non_matching/color/LoadObjPalette.inc create mode 100644 asm/non_matching/color/LoadObjPaletteAtIndex.inc create mode 100644 asm/non_matching/color/SetEntityObjPalette.inc create mode 100644 asm/non_matching/color/sub_0801D000.inc create mode 100644 asm/non_matching/color/sub_0801D244.inc create mode 100644 asm/non_matching/color/sub_0801D48C.inc create mode 100644 asm/non_matching/common/ClearBit.inc create mode 100644 asm/non_matching/common/DrawDungeonFeatures.inc create mode 100644 asm/non_matching/common/DrawDungeonMap.inc create mode 100644 asm/non_matching/common/WriteBit.inc create mode 100644 asm/non_matching/common/sub_0801D898.inc create mode 100644 asm/non_matching/common/sub_0801DF28.inc create mode 100644 asm/non_matching/common/sub_0801DFB4.inc create mode 100644 asm/non_matching/common/sub_0801E24C.inc create mode 100644 asm/non_matching/common/sub_0801E290.inc create mode 100644 asm/non_matching/common/sub_0801E31C.inc create mode 100644 asm/non_matching/common/sub_0801E49C.inc create mode 100644 asm/non_matching/common/sub_0801E64C.inc create mode 100644 asm/non_matching/common/sub_0801E6C8.inc create mode 100644 asm/non_matching/common/sub_0801E738.inc create mode 100644 asm/non_matching/common/sub_0801E82C.inc create mode 100644 asm/non_matching/common/sub_0801E99C.inc create mode 100644 asm/non_matching/common/zFree.inc create mode 100644 asm/non_matching/common/zMalloc.inc delete mode 100644 asm/utils.s create mode 100644 include/color.h rename include/{utils.h => common.h} (87%) create mode 100644 include/kinstone.h create mode 100644 src/color.c create mode 100644 src/common.c create mode 100644 src/dungeon.c delete mode 100644 src/utils.c diff --git a/asm/code_0801CEC0.s b/asm/code_0801CEC0.s deleted file mode 100644 index e7fbc193..00000000 --- a/asm/code_0801CEC0.s +++ /dev/null @@ -1,863 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0801CFA8 -sub_0801CFA8: @ 0x0801CFA8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0801CFCC @ =gPaletteList - movs r1, #0x40 - bl MemClear - movs r4, #0 -_0801CFB6: - adds r0, r4, #0 - bl sub_0801CFD0 - adds r4, #1 - cmp r4, #5 - bls _0801CFB6 - adds r0, r5, #0 - bl sub_0801D000 - pop {r4, r5, pc} - .align 2, 0 -_0801CFCC: .4byte gPaletteList - - thumb_func_start sub_0801CFD0 -sub_0801CFD0: @ 0x0801CFD0 - lsls r0, r0, #2 - ldr r1, _0801CFF8 @ =gPaletteList - adds r0, r0, r1 - ldrb r2, [r0] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - movs r2, #0xf - ands r1, r2 - movs r2, #0x10 - orrs r1, r2 - strb r1, [r0] - movs r1, #0x80 - strb r1, [r0, #1] - ldr r1, _0801CFFC @ =0x0000FFFF - strh r1, [r0, #2] - bx lr - .align 2, 0 -_0801CFF8: .4byte gPaletteList -_0801CFFC: .4byte 0x0000FFFF - - thumb_func_start sub_0801D000 -sub_0801D000: @ 0x0801D000 - push {lr} - adds r2, r0, #0 - ldr r0, _0801D024 @ =gScreenTransition - movs r1, #0 - cmp r2, #0 - beq _0801D00E - movs r1, #0xf -_0801D00E: - adds r0, #0x2f - strb r1, [r0] - cmp r2, #0 - beq _0801D028 - bl CleanUpObjPalettes - movs r0, #0xf - bl sub_0801CFD0 - b _0801D03A - .align 2, 0 -_0801D024: .4byte gScreenTransition -_0801D028: - ldr r3, _0801D03C @ =gUnk_02001A3C - ldrb r1, [r3] - movs r0, #0xf - ands r0, r1 - cmp r0, #4 - bne _0801D03A - strb r2, [r3] - strb r2, [r3, #1] - strh r2, [r3, #2] -_0801D03A: - pop {pc} - .align 2, 0 -_0801D03C: .4byte gUnk_02001A3C - - thumb_func_start LoadObjPalette -LoadObjPalette: @ 0x0801D040 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - str r0, [sp] - adds r6, r1, #0 - adds r0, r6, #0 - bl FindPalette - adds r5, r0, #0 - cmp r5, #0 - bge _0801D0E8 - cmp r6, #0x15 - bhi _0801D064 - movs r4, #1 - b _0801D074 -_0801D064: - ldr r0, _0801D100 @ =gUnk_08133368 - adds r1, r6, #0 - subs r1, #0x16 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r4, [r1, #3] - movs r0, #0xf - ands r4, r0 -_0801D074: - adds r0, r4, #0 - bl FindFreeObjPalette - adds r5, r0, #0 - cmp r5, #0 - bge _0801D090 - bl CleanUpObjPalettes - adds r0, r4, #0 - bl FindFreeObjPalette - adds r5, r0, #0 - cmp r5, #0 - blt _0801D0E8 -_0801D090: - lsls r1, r5, #2 - ldr r0, _0801D104 @ =gPaletteList - adds r3, r1, r0 - movs r0, #0 - strh r6, [r3, #2] - strb r0, [r3, #1] - movs r2, #0x10 - rsbs r2, r2, #0 - lsls r0, r4, #4 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - subs r4, #1 - cmp r4, #0 - beq _0801D0E0 - movs r0, #0 - mov sl, r0 - movs r1, #0 - mov r8, r1 - movs r0, #0xf - mov sb, r0 - mov ip, r2 - movs r7, #2 -_0801D0BE: - adds r3, #4 - mov r1, r8 - strh r1, [r3, #2] - mov r0, sl - strb r0, [r3, #1] - lsls r2, r4, #4 - ldrb r1, [r3] - mov r0, sb - ands r0, r1 - orrs r0, r2 - mov r1, ip - ands r0, r1 - orrs r0, r7 - strb r0, [r3] - subs r4, #1 - cmp r4, #0 - bne _0801D0BE -_0801D0E0: - adds r0, r6, #0 - adds r1, r5, #0 - bl LoadObjPaletteAtIndex -_0801D0E8: - ldr r0, [sp] - adds r1, r5, #0 - bl SetEntityObjPalette - adds r0, r5, #0 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801D100: .4byte gUnk_08133368 -_0801D104: .4byte gPaletteList - - thumb_func_start FindPalette -FindPalette: @ 0x0801D108 - push {lr} - adds r2, r0, #0 - cmp r2, #5 - bhi _0801D116 - b _0801D12E -_0801D112: - adds r0, r1, #0 - b _0801D12E -_0801D116: - movs r1, #6 - ldr r0, _0801D130 @ =gPaletteList - adds r0, #0x18 -_0801D11C: - ldrh r3, [r0, #2] - cmp r2, r3 - beq _0801D112 - adds r0, #4 - adds r1, #1 - cmp r1, #0xf - bls _0801D11C - movs r0, #1 - rsbs r0, r0, #0 -_0801D12E: - pop {pc} - .align 2, 0 -_0801D130: .4byte gPaletteList - - thumb_func_start FindFreeObjPalette -FindFreeObjPalette: @ 0x0801D134 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #6 - ldr r0, _0801D154 @ =gPaletteList - adds r3, r0, #0 - adds r3, #0x18 -_0801D142: - ldrb r0, [r3] - lsls r0, r0, #0x1c - cmp r0, #0 - bne _0801D158 - adds r1, #1 - cmp r4, r1 - bhi _0801D15A - b _0801D180 - .align 2, 0 -_0801D154: .4byte gPaletteList -_0801D158: - movs r1, #0 -_0801D15A: - adds r3, #4 - adds r2, #1 - cmp r2, #0xf - bls _0801D142 - movs r1, #0 - movs r2, #6 - ldr r0, _0801D188 @ =gPaletteList - adds r3, r0, #0 - adds r3, #0x18 -_0801D16C: - ldrb r0, [r3] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #1 - bgt _0801D18C - cmp r0, #0 - blt _0801D18C - adds r1, #1 - cmp r4, r1 - bhi _0801D18E -_0801D180: - subs r0, r1, #1 - subs r0, r2, r0 - b _0801D19A - .align 2, 0 -_0801D188: .4byte gPaletteList -_0801D18C: - movs r1, #0 -_0801D18E: - adds r3, #4 - adds r2, #1 - cmp r2, #0xf - bls _0801D16C - movs r0, #1 - rsbs r0, r0, #0 -_0801D19A: - pop {r4, pc} - - thumb_func_start SetEntityObjPalette -SetEntityObjPalette: @ 0x0801D19C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r3, r1, #0 - cmp r3, #0 - bge _0801D1A8 - movs r3, #0 -_0801D1A8: - adds r0, r4, #0 - adds r0, #0x28 - ldrb r0, [r0] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x7e - bls _0801D1BE - adds r0, r4, #0 - adds r0, #0x27 - strb r3, [r0] -_0801D1BE: - movs r0, #0xf - adds r1, r3, #0 - ands r1, r0 - ldrb r2, [r4, #0x1a] - movs r5, #0x10 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r2 - orrs r0, r1 - movs r2, #0xf - adds r1, r3, #0 - ands r1, r2 - lsls r1, r1, #4 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - lsls r1, r3, #2 - ldr r0, _0801D22C @ =gPaletteList - adds r4, r1, r0 - ldr r0, [r4] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #4 - beq _0801D22A - ldrb r0, [r4, #1] - adds r0, #1 - strb r0, [r4, #1] - ldr r0, [r4] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x1c - ldrb r1, [r4] - adds r0, r5, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r4] - subs r3, #1 - cmp r3, #0 - beq _0801D22A - movs r7, #0xf - adds r6, r5, #0 - movs r5, #2 -_0801D212: - adds r4, #4 - lsls r2, r3, #4 - ldrb r1, [r4] - adds r0, r7, #0 - ands r0, r1 - orrs r0, r2 - ands r0, r6 - orrs r0, r5 - strb r0, [r4] - subs r3, #1 - cmp r3, #0 - bne _0801D212 -_0801D22A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801D22C: .4byte gPaletteList - - thumb_func_start UnloadOBJPalette -UnloadOBJPalette: @ 0x0801D230 - push {lr} - adds r0, #0x27 - ldrb r2, [r0] - movs r1, #0 - strb r1, [r0] - adds r0, r2, #0 - bl sub_0801D244 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801D244 -sub_0801D244: @ 0x0801D244 - push {r4, r5, r6, lr} - lsls r0, r0, #2 - ldr r1, _0801D288 @ =gPaletteList - adds r2, r0, r1 - ldr r0, [r2] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #3 - bne _0801D284 - ldrb r0, [r2, #1] - subs r0, #1 - strb r0, [r2, #1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801D284 - ldr r0, [r2] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x1c - movs r5, #0 - movs r6, #0x10 - rsbs r6, r6, #0 - movs r4, #1 -_0801D270: - strb r5, [r2, #1] - ldrb r1, [r2] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r4 - strb r0, [r2] - adds r2, #4 - subs r3, #1 - cmp r3, #0 - bne _0801D270 -_0801D284: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801D288: .4byte gPaletteList - - thumb_func_start sub_0801D28C -sub_0801D28C: @ 0x0801D28C - push {lr} - adds r3, r1, #0 - adds r0, #0x27 - ldrb r2, [r0] - ldr r1, _0801D2B0 @ =gPaletteList - lsls r0, r2, #2 - adds r1, r0, r1 - ldrb r0, [r1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #3 - bne _0801D2AE - strh r3, [r1, #2] - adds r0, r3, #0 - adds r1, r2, #0 - bl LoadObjPaletteAtIndex -_0801D2AE: - pop {pc} - .align 2, 0 -_0801D2B0: .4byte gPaletteList - - thumb_func_start ChangeObjPalette -ChangeObjPalette: @ 0x0801D2B4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl UnloadOBJPalette - adds r0, r4, #0 - adds r1, r5, #0 - bl LoadObjPalette - pop {r4, r5, pc} - - thumb_func_start LoadObjPaletteAtIndex -LoadObjPaletteAtIndex: @ 0x0801D2C8 - push {r4, lr} - adds r3, r0, #0 - ldr r2, _0801D2F8 @ =gUsedPalettes - adds r4, r1, #0 - adds r4, #0x10 - movs r1, #1 - lsls r1, r4 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - cmp r3, #5 - bls _0801D33C - cmp r3, #0x15 - bne _0801D300 - ldr r2, _0801D2FC @ =gPaletteBuffer - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - lsls r1, r4, #5 - adds r1, r1, r2 - movs r2, #0x20 - bl MemFill16 - b _0801D33C - .align 2, 0 -_0801D2F8: .4byte gUsedPalettes -_0801D2FC: .4byte gPaletteBuffer -_0801D300: - cmp r3, #0x14 - bhi _0801D31C - subs r0, r3, #6 - lsls r0, r0, #5 - ldr r1, _0801D318 @ =gPaletteBuffer - adds r0, r0, r1 - adds r1, r4, #0 - movs r2, #1 - bl LoadPalettes - b _0801D33C - .align 2, 0 -_0801D318: .4byte gPaletteBuffer -_0801D31C: - ldr r1, _0801D340 @ =gUnk_08133368 - adds r0, r3, #0 - subs r0, #0x16 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsrs r2, r0, #0x18 - movs r1, #0xf - ands r2, r1 - ldr r1, _0801D344 @ =0x00FFFFFF - ands r0, r1 - ldr r1, _0801D348 @ =gGlobalGfxAndPalettes - adds r0, r0, r1 - adds r1, r4, #0 - bl LoadPalettes -_0801D33C: - pop {r4, pc} - .align 2, 0 -_0801D340: .4byte gUnk_08133368 -_0801D344: .4byte 0x00FFFFFF -_0801D348: .4byte gGlobalGfxAndPalettes - - thumb_func_start CleanUpObjPalettes -CleanUpObjPalettes: @ 0x0801D34C - push {r4, r5, r6, r7, lr} - sub sp, #0x10 - movs r2, #0 - movs r3, #0 - ldr r1, _0801D37C @ =gPaletteList -_0801D356: - mov r4, sp - adds r0, r4, r2 - strb r2, [r0] - ldrb r0, [r1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #1 - bgt _0801D370 - cmp r0, #0 - blt _0801D370 - strb r3, [r1] - strb r3, [r1, #1] - strh r3, [r1, #2] -_0801D370: - adds r1, #4 - adds r2, #1 - cmp r2, #0xf - bls _0801D356 - movs r4, #6 - b _0801D390 - .align 2, 0 -_0801D37C: .4byte gPaletteList -_0801D380: - cmp r4, r1 - ble _0801D390 - mov r2, sp - adds r0, r2, r4 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0801D48C -_0801D390: - adds r0, r4, #1 - bl sub_0801D458 - adds r4, r0, #0 - cmp r4, #0 - beq _0801D3AC - movs r0, #1 - bl FindFreeObjPalette - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0801D380 -_0801D3AC: - movs r1, #0 - ldr r4, _0801D450 @ =gEntityLists - mov ip, r4 -_0801D3B2: - lsls r0, r1, #3 - mov r2, ip - adds r3, r0, r2 - adds r0, r3, #0 - ldr r3, [r3, #4] - adds r5, r1, #1 - cmp r0, r3 - beq _0801D444 - movs r7, #0x10 - rsbs r7, r7, #0 - adds r4, r0, #0 - ldr r6, _0801D454 @ =gUnk_020000C0 -_0801D3CA: - ldrb r0, [r3, #8] - cmp r0, #9 - beq _0801D43E - adds r1, r3, #0 - adds r1, #0x28 - ldrb r0, [r1] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x7e - bhi _0801D40C - ldrb r1, [r1] - lsls r1, r1, #6 - adds r1, r1, r6 - ldrb r0, [r1, #5] - add r0, sp - ldrb r0, [r0] - strb r0, [r1, #5] - ldrb r0, [r1, #0x15] - add r0, sp - ldrb r0, [r0] - strb r0, [r1, #0x15] - adds r2, r1, #0 - adds r2, #0x25 - ldrb r0, [r2] - add r0, sp - ldrb r0, [r0] - strb r0, [r2] - adds r1, #0x35 - ldrb r0, [r1] - add r0, sp - ldrb r0, [r0] - strb r0, [r1] -_0801D40C: - adds r1, r3, #0 - adds r1, #0x27 - ldrb r0, [r1] - add r0, sp - ldrb r0, [r0] - strb r0, [r1] - ldrb r2, [r3, #0x1a] - lsls r0, r2, #0x1c - lsrs r0, r0, #0x1c - add r0, sp - ldrb r1, [r0] - movs r0, #0xf - ands r1, r0 - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1a] - lsrs r1, r0, #4 - add r1, sp - ldrb r2, [r1] - lsls r2, r2, #4 - movs r1, #0xf - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x1a] -_0801D43E: - ldr r3, [r3, #4] - cmp r4, r3 - bne _0801D3CA -_0801D444: - adds r1, r5, #0 - cmp r1, #8 - bls _0801D3B2 - add sp, #0x10 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801D450: .4byte gEntityLists -_0801D454: .4byte gUnk_020000C0 - - thumb_func_start sub_0801D458 -sub_0801D458: @ 0x0801D458 - push {lr} - adds r2, r0, #0 - cmp r2, #0xf - bhi _0801D488 - ldr r1, _0801D47C @ =gPaletteList - lsls r0, r2, #2 - adds r1, r0, r1 -_0801D466: - ldrb r0, [r1] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - cmp r0, #0 - blt _0801D478 - cmp r0, #1 - ble _0801D480 - cmp r0, #4 - beq _0801D480 -_0801D478: - adds r0, r2, #0 - b _0801D48A - .align 2, 0 -_0801D47C: .4byte gPaletteList -_0801D480: - adds r1, #4 - adds r2, #1 - cmp r2, #0xf - bls _0801D466 -_0801D488: - movs r0, #0 -_0801D48A: - pop {pc} - - thumb_func_start sub_0801D48C -sub_0801D48C: @ 0x0801D48C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r6, r0, #0 - adds r3, r1, #0 - ldr r0, _0801D50C @ =gPaletteList - mov r8, r0 - lsls r0, r6, #2 - mov r1, r8 - adds r4, r0, r1 - ldrb r0, [r4] - lsrs r5, r0, #4 - subs r5, #1 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - beq _0801D4F8 - ldr r2, _0801D510 @ =gPaletteBuffer - lsls r0, r3, #5 - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r0, r1 - adds r7, r0, r2 - lsls r0, r3, #2 - add r8, r0 - lsls r0, r6, #5 - adds r0, r0, r1 - adds r6, r0, r2 - movs r3, #0 -_0801D4C8: - ldr r0, [r4] - mov r1, r8 - adds r1, #4 - mov r8, r1 - subs r1, #4 - stm r1!, {r0} - strb r3, [r4] - strb r3, [r4, #1] - strh r3, [r4, #2] - adds r0, r6, #0 - adds r1, r7, #0 - movs r2, #0x20 - str r3, [sp] - bl MemCopy - adds r6, #0x20 - adds r4, #4 - adds r7, #0x20 - subs r5, #1 - movs r0, #1 - rsbs r0, r0, #0 - ldr r3, [sp] - cmp r5, r0 - bne _0801D4C8 -_0801D4F8: - ldr r0, _0801D514 @ =gUsedPalettes - ldr r1, [r0] - ldr r2, _0801D518 @ =0xFFFF0000 - orrs r1, r2 - str r1, [r0] - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801D50C: .4byte gPaletteList -_0801D510: .4byte gPaletteBuffer -_0801D514: .4byte gUsedPalettes -_0801D518: .4byte 0xFFFF0000 - - thumb_func_start sub_0801D51C -sub_0801D51C: @ 0x0801D51C - push {r4, lr} - adds r2, r0, #0 - ldr r0, _0801D58C @ =0x05F5E0FF - cmp r2, r0 - bhi _0801D5A0 - ldr r1, _0801D590 @ =0x00989680 - adds r0, r2, #0 - bl Div - adds r4, r0, #0 - lsls r4, r4, #0x1c - ldr r2, _0801D594 @ =0x000F4240 - adds r0, r1, #0 - adds r1, r2, #0 - bl Div - lsls r0, r0, #0x18 - adds r4, r4, r0 - ldr r2, _0801D598 @ =0x000186A0 - adds r0, r1, #0 - adds r1, r2, #0 - bl Div - lsls r0, r0, #0x14 - adds r4, r4, r0 - ldr r2, _0801D59C @ =0x00002710 - adds r0, r1, #0 - adds r1, r2, #0 - bl Div - lsls r0, r0, #0x10 - adds r4, r4, r0 - movs r2, #0xfa - lsls r2, r2, #2 - adds r0, r1, #0 - adds r1, r2, #0 - bl Div - lsls r0, r0, #0xc - adds r4, r4, r0 - adds r0, r1, #0 - movs r1, #0x64 - bl Div - lsls r0, r0, #8 - adds r4, r4, r0 - adds r0, r1, #0 - movs r1, #0xa - bl Div - lsls r0, r0, #4 - adds r4, r4, r0 - adds r4, r4, r1 - adds r0, r4, #0 - b _0801D5A2 - .align 2, 0 -_0801D58C: .4byte 0x05F5E0FF -_0801D590: .4byte 0x00989680 -_0801D594: .4byte 0x000F4240 -_0801D598: .4byte 0x000186A0 -_0801D59C: .4byte 0x00002710 -_0801D5A0: - ldr r0, _0801D5A4 @ =0x99999999 -_0801D5A2: - pop {r4, pc} - .align 2, 0 -_0801D5A4: .4byte 0x99999999 - - thumb_func_start ReadBit -ReadBit: @ 0x0801D5A8 - lsrs r2, r1, #3 - adds r0, r0, r2 - ldrb r0, [r0] - movs r2, #7 - ands r2, r1 - asrs r0, r2 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 - - thumb_func_start WriteBit -WriteBit: @ 0x0801D5BC - lsrs r2, r1, #3 - adds r3, r0, r2 - movs r2, #7 - ands r1, r2 - movs r2, #1 - lsls r2, r1 - ldrb r0, [r3] - adds r1, r0, #0 - orrs r1, r2 - strb r1, [r3] - ands r0, r2 - bx lr - - thumb_func_start ClearBit -ClearBit: @ 0x0801D5D4 - lsrs r2, r1, #3 - adds r3, r0, r2 - movs r2, #7 - ands r1, r2 - movs r2, #1 - lsls r2, r1 - ldrb r0, [r3] - adds r1, r0, #0 - bics r1, r2 - strb r1, [r3] - ands r0, r2 - bx lr diff --git a/asm/code_0805436C.s b/asm/code_0805436C.s index 2def72dc..f8afffbf 100644 --- a/asm/code_0805436C.s +++ b/asm/code_0805436C.s @@ -75,7 +75,7 @@ sub_08054920: @ 0x08054920 bl MessageInitialize bl sub_0806F38C ldr r1, _08054948 @ =gUnk_080C9CBC - ldr r0, _0805494C @ =gUnk_02022740 + ldr r0, _0805494C @ =gFuseInfo ldrb r0, [r0, #3] lsls r0, r0, #3 adds r0, r0, r1 @@ -89,7 +89,7 @@ sub_08054920: @ 0x08054920 b _08054962 .align 2, 0 _08054948: .4byte gUnk_080C9CBC -_0805494C: .4byte gUnk_02022740 +_0805494C: .4byte gFuseInfo _08054950: .4byte gUnk_02032EC0 _08054954: ldr r1, _08054964 @ =gUnk_02032EC0 diff --git a/asm/non_matching/color/CleanUpObjPalettes.inc b/asm/non_matching/color/CleanUpObjPalettes.inc new file mode 100644 index 00000000..f59b5a92 --- /dev/null +++ b/asm/non_matching/color/CleanUpObjPalettes.inc @@ -0,0 +1,141 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + movs r2, #0 + movs r3, #0 + ldr r1, _0801D37C @ =gPaletteList +_0801D356: + mov r4, sp + adds r0, r4, r2 + strb r2, [r0] + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #1 + bgt _0801D370 + cmp r0, #0 + blt _0801D370 + strb r3, [r1] + strb r3, [r1, #1] + strh r3, [r1, #2] +_0801D370: + adds r1, #4 + adds r2, #1 + cmp r2, #0xf + bls _0801D356 + movs r4, #6 + b _0801D390 + .align 2, 0 +_0801D37C: .4byte gPaletteList +_0801D380: + cmp r4, r1 + ble _0801D390 + mov r2, sp + adds r0, r2, r4 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0801D48C +_0801D390: + adds r0, r4, #1 + bl sub_0801D458 + adds r4, r0, #0 + cmp r4, #0 + beq _0801D3AC + movs r0, #1 + bl FindFreeObjPalette + adds r1, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0801D380 +_0801D3AC: + movs r1, #0 + ldr r4, _0801D450 @ =gEntityLists + mov ip, r4 +_0801D3B2: + lsls r0, r1, #3 + mov r2, ip + adds r3, r0, r2 + adds r0, r3, #0 + ldr r3, [r3, #4] + adds r5, r1, #1 + cmp r0, r3 + beq _0801D444 + movs r7, #0x10 + rsbs r7, r7, #0 + adds r4, r0, #0 + ldr r6, _0801D454 @ =gUnk_020000C0 +_0801D3CA: + ldrb r0, [r3, #8] + cmp r0, #9 + beq _0801D43E + adds r1, r3, #0 + adds r1, #0x28 + ldrb r0, [r1] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x7e + bhi _0801D40C + ldrb r1, [r1] + lsls r1, r1, #6 + adds r1, r1, r6 + ldrb r0, [r1, #5] + add r0, sp + ldrb r0, [r0] + strb r0, [r1, #5] + ldrb r0, [r1, #0x15] + add r0, sp + ldrb r0, [r0] + strb r0, [r1, #0x15] + adds r2, r1, #0 + adds r2, #0x25 + ldrb r0, [r2] + add r0, sp + ldrb r0, [r0] + strb r0, [r2] + adds r1, #0x35 + ldrb r0, [r1] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] +_0801D40C: + adds r1, r3, #0 + adds r1, #0x27 + ldrb r0, [r1] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] + ldrb r2, [r3, #0x1a] + lsls r0, r2, #0x1c + lsrs r0, r0, #0x1c + add r0, sp + ldrb r1, [r0] + movs r0, #0xf + ands r1, r0 + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1a] + lsrs r1, r0, #4 + add r1, sp + ldrb r2, [r1] + lsls r2, r2, #4 + movs r1, #0xf + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x1a] +_0801D43E: + ldr r3, [r3, #4] + cmp r4, r3 + bne _0801D3CA +_0801D444: + adds r1, r5, #0 + cmp r1, #8 + bls _0801D3B2 + add sp, #0x10 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D450: .4byte gEntityLists +_0801D454: .4byte gUnk_020000C0 + .syntax divided diff --git a/asm/non_matching/color/FindFreeObjPalette.inc b/asm/non_matching/color/FindFreeObjPalette.inc new file mode 100644 index 00000000..a6a641cd --- /dev/null +++ b/asm/non_matching/color/FindFreeObjPalette.inc @@ -0,0 +1,60 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #6 + ldr r0, _0801D154 @ =gPaletteList + adds r3, r0, #0 + adds r3, #0x18 +_0801D142: + ldrb r0, [r3] + lsls r0, r0, #0x1c + cmp r0, #0 + bne _0801D158 + adds r1, #1 + cmp r4, r1 + bhi _0801D15A + b _0801D180 + .align 2, 0 +_0801D154: .4byte gPaletteList +_0801D158: + movs r1, #0 +_0801D15A: + adds r3, #4 + adds r2, #1 + cmp r2, #0xf + bls _0801D142 + movs r1, #0 + movs r2, #6 + ldr r0, _0801D188 @ =gPaletteList + adds r3, r0, #0 + adds r3, #0x18 +_0801D16C: + ldrb r0, [r3] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #1 + bgt _0801D18C + cmp r0, #0 + blt _0801D18C + adds r1, #1 + cmp r4, r1 + bhi _0801D18E +_0801D180: + subs r0, r1, #1 + subs r0, r2, r0 + b _0801D19A + .align 2, 0 +_0801D188: .4byte gPaletteList +_0801D18C: + movs r1, #0 +_0801D18E: + adds r3, #4 + adds r2, #1 + cmp r2, #0xf + bls _0801D16C + movs r0, #1 + rsbs r0, r0, #0 +_0801D19A: + pop {r4, pc} + .syntax divided diff --git a/asm/non_matching/color/FindPalette.inc b/asm/non_matching/color/FindPalette.inc new file mode 100644 index 00000000..c21b6db3 --- /dev/null +++ b/asm/non_matching/color/FindPalette.inc @@ -0,0 +1,28 @@ + .syntax unified + push {lr} + adds r2, r0, #0 + cmp r2, #5 + bhi _0801D116 + b _0801D12E +_0801D112: + adds r0, r1, #0 + b _0801D12E +_0801D116: + movs r1, #6 + ldr r0, _0801D130 @ =gPaletteList + adds r0, #0x18 +_0801D11C: + ldrh r3, [r0, #2] + cmp r2, r3 + beq _0801D112 + adds r0, #4 + adds r1, #1 + cmp r1, #0xf + bls _0801D11C + movs r0, #1 + rsbs r0, r0, #0 +_0801D12E: + pop {pc} + .align 2, 0 +_0801D130: .4byte gPaletteList + .syntax divided diff --git a/asm/non_matching/color/LoadObjPalette.inc b/asm/non_matching/color/LoadObjPalette.inc new file mode 100644 index 00000000..e92d382a --- /dev/null +++ b/asm/non_matching/color/LoadObjPalette.inc @@ -0,0 +1,100 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + str r0, [sp] + adds r6, r1, #0 + adds r0, r6, #0 + bl FindPalette + adds r5, r0, #0 + cmp r5, #0 + bge _0801D0E8 + cmp r6, #0x15 + bhi _0801D064 + movs r4, #1 + b _0801D074 +_0801D064: + ldr r0, _0801D100 @ =gUnk_08133368 + adds r1, r6, #0 + subs r1, #0x16 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r4, [r1, #3] + movs r0, #0xf + ands r4, r0 +_0801D074: + adds r0, r4, #0 + bl FindFreeObjPalette + adds r5, r0, #0 + cmp r5, #0 + bge _0801D090 + bl CleanUpObjPalettes + adds r0, r4, #0 + bl FindFreeObjPalette + adds r5, r0, #0 + cmp r5, #0 + blt _0801D0E8 +_0801D090: + lsls r1, r5, #2 + ldr r0, _0801D104 @ =gPaletteList + adds r3, r1, r0 + movs r0, #0 + strh r6, [r3, #2] + strb r0, [r3, #1] + movs r2, #0x10 + rsbs r2, r2, #0 + lsls r0, r4, #4 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + subs r4, #1 + cmp r4, #0 + beq _0801D0E0 + movs r0, #0 + mov sl, r0 + movs r1, #0 + mov r8, r1 + movs r0, #0xf + mov sb, r0 + mov ip, r2 + movs r7, #2 +_0801D0BE: + adds r3, #4 + mov r1, r8 + strh r1, [r3, #2] + mov r0, sl + strb r0, [r3, #1] + lsls r2, r4, #4 + ldrb r1, [r3] + mov r0, sb + ands r0, r1 + orrs r0, r2 + mov r1, ip + ands r0, r1 + orrs r0, r7 + strb r0, [r3] + subs r4, #1 + cmp r4, #0 + bne _0801D0BE +_0801D0E0: + adds r0, r6, #0 + adds r1, r5, #0 + bl LoadObjPaletteAtIndex +_0801D0E8: + ldr r0, [sp] + adds r1, r5, #0 + bl SetEntityObjPalette + adds r0, r5, #0 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D100: .4byte gUnk_08133368 +_0801D104: .4byte gPaletteList + .syntax divided diff --git a/asm/non_matching/color/LoadObjPaletteAtIndex.inc b/asm/non_matching/color/LoadObjPaletteAtIndex.inc new file mode 100644 index 00000000..43d8ab8e --- /dev/null +++ b/asm/non_matching/color/LoadObjPaletteAtIndex.inc @@ -0,0 +1,63 @@ + .syntax unified + push {r4, lr} + adds r3, r0, #0 + ldr r2, _0801D2F8 @ =gUsedPalettes + adds r4, r1, #0 + adds r4, #0x10 + movs r1, #1 + lsls r1, r4 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + cmp r3, #5 + bls _0801D33C + cmp r3, #0x15 + bne _0801D300 + ldr r2, _0801D2FC @ =gPaletteBuffer + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + lsls r1, r4, #5 + adds r1, r1, r2 + movs r2, #0x20 + bl MemFill16 + b _0801D33C + .align 2, 0 +_0801D2F8: .4byte gUsedPalettes +_0801D2FC: .4byte gPaletteBuffer +_0801D300: + cmp r3, #0x14 + bhi _0801D31C + subs r0, r3, #6 + lsls r0, r0, #5 + ldr r1, _0801D318 @ =gPaletteBuffer + adds r0, r0, r1 + adds r1, r4, #0 + movs r2, #1 + bl LoadPalettes + b _0801D33C + .align 2, 0 +_0801D318: .4byte gPaletteBuffer +_0801D31C: + ldr r1, _0801D340 @ =gUnk_08133368 + adds r0, r3, #0 + subs r0, #0x16 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsrs r2, r0, #0x18 + movs r1, #0xf + ands r2, r1 + ldr r1, _0801D344 @ =0x00FFFFFF + ands r0, r1 + ldr r1, _0801D348 @ =gGlobalGfxAndPalettes + adds r0, r0, r1 + adds r1, r4, #0 + bl LoadPalettes +_0801D33C: + pop {r4, pc} + .align 2, 0 +_0801D340: .4byte gUnk_08133368 +_0801D344: .4byte 0x00FFFFFF +_0801D348: .4byte gGlobalGfxAndPalettes + .syntax divided diff --git a/asm/non_matching/color/SetEntityObjPalette.inc b/asm/non_matching/color/SetEntityObjPalette.inc new file mode 100644 index 00000000..38a34a20 --- /dev/null +++ b/asm/non_matching/color/SetEntityObjPalette.inc @@ -0,0 +1,80 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r3, r1, #0 + cmp r3, #0 + bge _0801D1A8 + movs r3, #0 +_0801D1A8: + adds r0, r4, #0 + adds r0, #0x28 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x7e + bls _0801D1BE + adds r0, r4, #0 + adds r0, #0x27 + strb r3, [r0] +_0801D1BE: + movs r0, #0xf + adds r1, r3, #0 + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r5, #0x10 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r2 + orrs r0, r1 + movs r2, #0xf + adds r1, r3, #0 + ands r1, r2 + lsls r1, r1, #4 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + lsls r1, r3, #2 + ldr r0, _0801D22C @ =gPaletteList + adds r4, r1, r0 + ldr r0, [r4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #4 + beq _0801D22A + ldrb r0, [r4, #1] + adds r0, #1 + strb r0, [r4, #1] + ldr r0, [r4] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x1c + ldrb r1, [r4] + adds r0, r5, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4] + subs r3, #1 + cmp r3, #0 + beq _0801D22A + movs r7, #0xf + adds r6, r5, #0 + movs r5, #2 +_0801D212: + adds r4, #4 + lsls r2, r3, #4 + ldrb r1, [r4] + adds r0, r7, #0 + ands r0, r1 + orrs r0, r2 + ands r0, r6 + orrs r0, r5 + strb r0, [r4] + subs r3, #1 + cmp r3, #0 + bne _0801D212 +_0801D22A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D22C: .4byte gPaletteList + .syntax divided diff --git a/asm/non_matching/color/sub_0801D000.inc b/asm/non_matching/color/sub_0801D000.inc new file mode 100644 index 00000000..5fb7e436 --- /dev/null +++ b/asm/non_matching/color/sub_0801D000.inc @@ -0,0 +1,34 @@ + .syntax unified + push {lr} + adds r2, r0, #0 + ldr r0, _0801D024 @ =gScreenTransition + movs r1, #0 + cmp r2, #0 + beq _0801D00E + movs r1, #0xf +_0801D00E: + adds r0, #0x2f + strb r1, [r0] + cmp r2, #0 + beq _0801D028 + bl CleanUpObjPalettes + movs r0, #0xf + bl sub_0801CFD0 + b _0801D03A + .align 2, 0 +_0801D024: .4byte gScreenTransition +_0801D028: + ldr r3, _0801D03C @ =gUnk_02001A3C + ldrb r1, [r3] + movs r0, #0xf + ands r0, r1 + cmp r0, #4 + bne _0801D03A + strb r2, [r3] + strb r2, [r3, #1] + strh r2, [r3, #2] +_0801D03A: + pop {pc} + .align 2, 0 +_0801D03C: .4byte gUnk_02001A3C + .syntax divided diff --git a/asm/non_matching/color/sub_0801D244.inc b/asm/non_matching/color/sub_0801D244.inc new file mode 100644 index 00000000..e787b46f --- /dev/null +++ b/asm/non_matching/color/sub_0801D244.inc @@ -0,0 +1,39 @@ + .syntax unified + push {r4, r5, r6, lr} + lsls r0, r0, #2 + ldr r1, _0801D288 @ =gPaletteList + adds r2, r0, r1 + ldr r0, [r2] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #3 + bne _0801D284 + ldrb r0, [r2, #1] + subs r0, #1 + strb r0, [r2, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801D284 + ldr r0, [r2] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x1c + movs r5, #0 + movs r6, #0x10 + rsbs r6, r6, #0 + movs r4, #1 +_0801D270: + strb r5, [r2, #1] + ldrb r1, [r2] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r2] + adds r2, #4 + subs r3, #1 + cmp r3, #0 + bne _0801D270 +_0801D284: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801D288: .4byte gPaletteList + .syntax divided diff --git a/asm/non_matching/color/sub_0801D48C.inc b/asm/non_matching/color/sub_0801D48C.inc new file mode 100644 index 00000000..2c51c2f1 --- /dev/null +++ b/asm/non_matching/color/sub_0801D48C.inc @@ -0,0 +1,71 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r6, r0, #0 + adds r3, r1, #0 + ldr r0, _0801D50C @ =gPaletteList + mov r8, r0 + lsls r0, r6, #2 + mov r1, r8 + adds r4, r0, r1 + ldrb r0, [r4] + lsrs r5, r0, #4 + subs r5, #1 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + beq _0801D4F8 + ldr r2, _0801D510 @ =gPaletteBuffer + lsls r0, r3, #5 + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r0, r1 + adds r7, r0, r2 + lsls r0, r3, #2 + add r8, r0 + lsls r0, r6, #5 + adds r0, r0, r1 + adds r6, r0, r2 + movs r3, #0 +_0801D4C8: + ldr r0, [r4] + mov r1, r8 + adds r1, #4 + mov r8, r1 + subs r1, #4 + stm r1!, {r0} + strb r3, [r4] + strb r3, [r4, #1] + strh r3, [r4, #2] + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0x20 + str r3, [sp] + bl MemCopy + adds r6, #0x20 + adds r4, #4 + adds r7, #0x20 + subs r5, #1 + movs r0, #1 + rsbs r0, r0, #0 + ldr r3, [sp] + cmp r5, r0 + bne _0801D4C8 +_0801D4F8: + ldr r0, _0801D514 @ =gUsedPalettes + ldr r1, [r0] + ldr r2, _0801D518 @ =0xFFFF0000 + orrs r1, r2 + str r1, [r0] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D50C: .4byte gPaletteList +_0801D510: .4byte gPaletteBuffer +_0801D514: .4byte gUsedPalettes +_0801D518: .4byte 0xFFFF0000 + .syntax divided diff --git a/asm/non_matching/common/ClearBit.inc b/asm/non_matching/common/ClearBit.inc new file mode 100644 index 00000000..0d34ceb5 --- /dev/null +++ b/asm/non_matching/common/ClearBit.inc @@ -0,0 +1,14 @@ + .syntax unified + lsrs r2, r1, #3 + adds r3, r0, r2 + movs r2, #7 + ands r1, r2 + movs r2, #1 + lsls r2, r1 + ldrb r0, [r3] + adds r1, r0, #0 + bics r1, r2 + strb r1, [r3] + ands r0, r2 + bx lr + .syntax divided diff --git a/asm/non_matching/common/DrawDungeonFeatures.inc b/asm/non_matching/common/DrawDungeonFeatures.inc new file mode 100644 index 00000000..706d8c96 --- /dev/null +++ b/asm/non_matching/common/DrawDungeonFeatures.inc @@ -0,0 +1,179 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r4, r0, #0 + bl CheckHasMap + cmp r0, #0 + bne _0801DDB8 + b _0801DEEA +_0801DDB8: + ldr r1, _0801DDD8 @ =gUnk_080C9C50 + ldr r0, _0801DDDC @ =gArea + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r4, [r0] + ldr r0, _0801DDE0 @ =gUnk_02019EE0 + movs r1, #0x80 + lsls r1, r1, #8 + bl MemClear + b _0801DEE2 + .align 2, 0 +_0801DDD8: .4byte gUnk_080C9C50 +_0801DDDC: .4byte gArea +_0801DDE0: .4byte gUnk_02019EE0 +_0801DDE4: + ldrb r0, [r4] + ldrb r1, [r4, #1] + movs r2, #3 + bl GetRoomProperty + adds r6, r0, #0 + adds r0, r4, #0 + bl sub_0801DF10 + adds r5, r0, #0 + movs r0, #0 + str r0, [sp, #0xc] + ldrh r2, [r4] + ldr r0, _0801DE14 @ =gUnk_02032EC0 + ldrh r3, [r0, #0x20] + ldr r1, _0801DE18 @ =0x0000FFFF + ands r1, r2 + ldr r0, _0801DE18 @ =0x0000FFFF + ands r0, r3 + cmp r1, r0 + bne _0801DE1C + movs r3, #8 + b _0801DE36 + .align 2, 0 +_0801DE14: .4byte gUnk_02032EC0 +_0801DE18: .4byte 0x0000FFFF +_0801DE1C: + bl HasDungeonSmallKey + cmp r0, #0 + beq _0801DE28 + movs r0, #2 + str r0, [sp, #0xc] +_0801DE28: + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0801DF90 + cmp r0, #0 + beq _0801DE38 + movs r3, #3 +_0801DE36: + str r3, [sp, #0xc] +_0801DE38: + ldrb r1, [r4, #2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801DE46 + movs r0, #0 + str r0, [sp, #0xc] +_0801DE46: + adds r3, r4, #0 + adds r3, #8 + str r3, [sp, #0x10] + ldr r0, [sp, #0xc] + cmp r0, #0 + beq _0801DEE0 + ldr r2, _0801DEF8 @ =0x040000D4 + ldr r0, [r4, #4] + ldr r1, _0801DEFC @ =gMapData + adds r0, r0, r1 + str r0, [r2] + ldr r0, _0801DF00 @ =gUnk_02019EE0 + str r0, [r2, #4] + ldr r0, _0801DF04 @ =0x84000100 + str r0, [r2, #8] + ldr r0, [r2, #8] + ldr r0, _0801DF08 @ =gAreaRoomHeaders + ldrb r2, [r4] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r1, [r4, #1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r2, [r2] + adds r2, r2, r0 + ldrh r0, [r2] + lsrs r0, r0, #4 + str r0, [sp] + ldrh r0, [r2, #2] + ldr r1, _0801DF0C @ =0x000007FF + ands r0, r1 + lsrs r0, r0, #4 + str r0, [sp, #4] + ldrh r0, [r2, #4] + lsrs r7, r0, #4 + ldrh r0, [r2, #6] + lsrs r0, r0, #4 + mov sl, r0 + adds r0, r7, #3 + lsrs r0, r0, #2 + str r0, [sp, #8] + movs r6, #0 + cmp r6, sl + bhs _0801DEE0 +_0801DEA0: + ldr r3, [sp, #8] + adds r1, r6, #0 + muls r1, r3, r1 + ldr r0, _0801DF00 @ =gUnk_02019EE0 + adds r1, r1, r0 + mov r8, r1 + movs r5, #0 + adds r0, r6, #1 + mov sb, r0 + cmp r5, r7 + bhs _0801DEDA +_0801DEB6: + ldr r3, [sp] + adds r4, r3, r5 + adds r0, r5, #0 + mov r1, r8 + bl sub_0801DF60 + ldr r1, [sp, #0xc] + bl sub_0801DF78 + adds r2, r0, #0 + adds r0, r4, #0 + ldr r3, [sp, #4] + adds r1, r3, r6 + bl sub_0801DF28 + adds r5, #1 + cmp r5, r7 + blo _0801DEB6 +_0801DEDA: + mov r6, sb + cmp r6, sl + blo _0801DEA0 +_0801DEE0: + ldr r4, [sp, #0x10] +_0801DEE2: + ldrb r0, [r4] + cmp r0, #0 + beq _0801DEEA + b _0801DDE4 +_0801DEEA: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801DEF8: .4byte 0x040000D4 +_0801DEFC: .4byte gMapData +_0801DF00: .4byte gUnk_02019EE0 +_0801DF04: .4byte 0x84000100 +_0801DF08: .4byte gAreaRoomHeaders +_0801DF0C: .4byte 0x000007FF + .syntax divided diff --git a/asm/non_matching/common/DrawDungeonMap.inc b/asm/non_matching/common/DrawDungeonMap.inc new file mode 100644 index 00000000..8d218546 --- /dev/null +++ b/asm/non_matching/common/DrawDungeonMap.inc @@ -0,0 +1,221 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + adds r1, r2, #0 + adds r0, r5, #0 + bl MemClear + movs r0, #1 + strb r0, [r5] + ldr r2, _0801DBE4 @ =gScreenTransition + ldrh r0, [r2, #0x1c] + lsrs r0, r0, #4 + movs r1, #0x7f + ands r0, r1 + strb r0, [r5, #1] + ldrh r0, [r2, #0x1e] + lsrs r0, r0, #4 + ands r0, r1 + strb r0, [r5, #2] + adds r5, #3 + ldr r1, _0801DBE8 @ =gUnk_080C9C50 + ldr r0, _0801DBEC @ =gArea + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r6, [r4] + b _0801DD3A + .align 2, 0 +_0801DBE4: .4byte gScreenTransition +_0801DBE8: .4byte gUnk_080C9C50 +_0801DBEC: .4byte gArea +_0801DBF0: + ldrb r0, [r6] + ldrb r1, [r6, #1] + movs r2, #3 + bl GetRoomProperty + adds r4, r0, #0 + cmp r4, #0 + bne _0801DC04 + adds r6, #8 + b _0801DD3A +_0801DC04: + adds r0, r6, #0 + bl sub_0801DF10 + mov r8, r0 + bl HasDungeonBigKey + movs r1, #8 + adds r1, r1, r6 + mov sb, r1 + cmp r0, #0 + beq _0801DCAE + ldrb r0, [r4] + cmp r0, #0 + beq _0801DCAE + movs r3, #0xfc + lsls r3, r3, #2 + ldr r7, _0801DC84 @ =0x000007FF +_0801DC26: + ldrb r0, [r4] + cmp r0, #3 + bgt _0801DCA6 + cmp r0, #2 + blt _0801DCA6 + ldrb r1, [r4, #1] + mov r0, r8 + str r3, [sp] + bl CheckLocalFlagByBank + ldr r3, [sp] + cmp r0, #0 + bne _0801DCA6 + ldr r0, _0801DC88 @ =gAreaRoomHeaders + ldrb r2, [r6] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r1, [r6, #1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, [r2] + adds r2, r1, r0 + movs r0, #2 + strb r0, [r5] + ldrb r0, [r4] + cmp r0, #2 + bne _0801DC8C + ldrh r0, [r4, #4] + lsls r0, r0, #4 + ands r0, r3 + movs r1, #8 + orrs r0, r1 + ldrh r1, [r2] + ands r1, r7 + adds r0, r0, r1 + asrs r0, r0, #4 + strb r0, [r5, #1] + ldrh r0, [r4, #4] + lsrs r0, r0, #2 + ands r0, r3 + movs r1, #8 + orrs r0, r1 + ldrh r1, [r2, #2] + ands r1, r7 + b _0801DC9E + .align 2, 0 +_0801DC84: .4byte 0x000007FF +_0801DC88: .4byte gAreaRoomHeaders +_0801DC8C: + ldrh r0, [r2] + ands r0, r7 + ldrh r1, [r4, #4] + adds r0, r0, r1 + asrs r0, r0, #4 + strb r0, [r5, #1] + ldrh r0, [r2, #2] + ands r0, r7 + ldrh r1, [r4, #6] +_0801DC9E: + adds r0, r0, r1 + asrs r0, r0, #4 + strb r0, [r5, #2] + adds r5, #3 +_0801DCA6: + adds r4, #8 + ldrb r0, [r4] + cmp r0, #0 + bne _0801DC26 +_0801DCAE: + bl HasDungeonBigKey + cmp r0, #0 + beq _0801DD16 + ldrb r1, [r6, #2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801DD16 + ldr r0, _0801DD4C @ =gArea + ldrb r0, [r0, #3] + adds r0, #1 + bl CheckGlobalFlag + cmp r0, #0 + bne _0801DD16 + ldr r0, _0801DD50 @ =gAreaRoomHeaders + ldrb r2, [r6] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r1, [r6, #1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, [r2] + adds r2, r1, r0 + movs r0, #4 + strb r0, [r5] + ldrh r0, [r2, #4] + lsrs r0, r0, #1 + ldrh r1, [r2] + adds r0, r0, r1 + asrs r1, r0, #4 + adds r0, r1, #0 + cmp r1, #0 + bge _0801DCF8 + adds r0, #0x7f +_0801DCF8: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + strb r0, [r5, #1] + ldrh r0, [r2, #6] + lsrs r0, r0, #1 + ldrh r2, [r2, #2] + adds r0, r0, r2 + asrs r1, r0, #4 + adds r0, r1, #0 + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + strb r0, [r5, #2] + adds r5, #3 +_0801DD16: + ldr r2, _0801DD54 @ =gScreenTransition + ldrh r0, [r6] + ldrh r1, [r2, #0x16] + cmp r0, r1 + bne _0801DD38 + movs r0, #3 + strb r0, [r5] + ldrh r0, [r2, #0x18] + lsrs r0, r0, #4 + movs r1, #0x7f + ands r0, r1 + strb r0, [r5, #1] + ldrh r0, [r2, #0x1a] + lsrs r0, r0, #4 + ands r0, r1 + strb r0, [r5, #2] + adds r5, #3 +_0801DD38: + mov r6, sb +_0801DD3A: + ldrb r0, [r6] + cmp r0, #0 + beq _0801DD42 + b _0801DBF0 +_0801DD42: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801DD4C: .4byte gArea +_0801DD50: .4byte gAreaRoomHeaders +_0801DD54: .4byte gScreenTransition + .syntax divided diff --git a/asm/non_matching/common/WriteBit.inc b/asm/non_matching/common/WriteBit.inc new file mode 100644 index 00000000..7986e488 --- /dev/null +++ b/asm/non_matching/common/WriteBit.inc @@ -0,0 +1,14 @@ + .syntax unified + lsrs r2, r1, #3 + adds r3, r0, r2 + movs r2, #7 + ands r1, r2 + movs r2, #1 + lsls r2, r1 + ldrb r0, [r3] + adds r1, r0, #0 + orrs r1, r2 + strb r1, [r3] + ands r0, r2 + bx lr + .syntax divided diff --git a/asm/non_matching/common/sub_0801D898.inc b/asm/non_matching/common/sub_0801D898.inc new file mode 100644 index 00000000..571024f1 --- /dev/null +++ b/asm/non_matching/common/sub_0801D898.inc @@ -0,0 +1,39 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r3 + movs r1, #0x20 + mov ip, r1 + cmp r0, #0 + beq _0801D8B2 + movs r0, #0x40 + mov ip, r0 +_0801D8B2: + ldr r0, _0801D8D8 @ =0x00007FFF + ands r3, r0 + ldr r1, _0801D8DC @ =0x040000D4 + movs r2, #0x80 + lsls r2, r2, #0x18 + orrs r2, r6 + lsls r7, r6, #1 + mov r0, ip + lsls r6, r0, #1 +_0801D8C4: + str r4, [r1] + str r5, [r1, #4] + str r2, [r1, #8] + ldr r0, [r1, #8] + adds r4, r4, r7 + adds r5, r5, r6 + subs r3, #1 + cmp r3, #0 + bne _0801D8C4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D8D8: .4byte 0x00007FFF +_0801D8DC: .4byte 0x040000D4 + .syntax divided diff --git a/asm/non_matching/common/sub_0801DF28.inc b/asm/non_matching/common/sub_0801DF28.inc new file mode 100644 index 00000000..4d22a8f0 --- /dev/null +++ b/asm/non_matching/common/sub_0801DF28.inc @@ -0,0 +1,28 @@ + .syntax unified + push {r4, lr} + lsrs r4, r1, #3 + lsls r4, r4, #4 + lsrs r3, r0, #3 + adds r4, r4, r3 + lsls r4, r4, #5 + ldr r3, _0801DF58 @ =gUnk_0201AEE0 + adds r4, r4, r3 + movs r3, #7 + ands r1, r3 + lsls r1, r1, #2 + adds r4, r4, r1 + ands r0, r3 + lsls r0, r0, #2 + lsls r2, r0 + ldr r1, _0801DF5C @ =gUnk_080C9460 + adds r0, r0, r1 + ldr r1, [r4] + ldr r0, [r0] + ands r1, r0 + orrs r1, r2 + str r1, [r4] + pop {r4, pc} + .align 2, 0 +_0801DF58: .4byte gUnk_0201AEE0 +_0801DF5C: .4byte gUnk_080C9460 + .syntax divided diff --git a/asm/non_matching/common/sub_0801DFB4.inc b/asm/non_matching/common/sub_0801DFB4.inc new file mode 100644 index 00000000..2dfd039c --- /dev/null +++ b/asm/non_matching/common/sub_0801DFB4.inc @@ -0,0 +1,44 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + ldr r7, _0801E004 @ =gFuseInfo + adds r0, r7, #0 + movs r1, #0x10 + bl MemClear + strh r4, [r7, #6] + strh r5, [r7, #8] + strh r6, [r7, #0xa] + mov r0, r8 + str r0, [r7, #0xc] + ldr r0, _0801E008 @ =gUnk_03003DF0 + ldrb r0, [r0, #2] + strb r0, [r7, #3] + mov r1, r8 + cmp r1, #0 + beq _0801DFF8 + ldrb r1, [r1, #0x11] + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1c + strb r0, [r7, #4] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + mov r1, r8 + strb r0, [r1, #0x11] +_0801DFF8: + movs r0, #0 + strb r0, [r7] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E004: .4byte gFuseInfo +_0801E008: .4byte gUnk_03003DF0 + .syntax divided diff --git a/asm/non_matching/common/sub_0801E24C.inc b/asm/non_matching/common/sub_0801E24C.inc new file mode 100644 index 00000000..c82cd2ad --- /dev/null +++ b/asm/non_matching/common/sub_0801E24C.inc @@ -0,0 +1,40 @@ + .syntax unified + push {r4, r5, lr} + lsls r1, r1, #1 + ldr r2, _0801E278 @ =gUnk_02018EE0 + adds r5, r1, r2 + movs r3, #0 + adds r2, r0, #0 + lsls r4, r2, #1 + movs r0, #3 + subs r1, r0, r4 + cmp r3, r2 + bgt _0801E28E + adds r4, r4, r5 +_0801E264: + lsls r0, r3, #1 + adds r0, r0, r5 + strh r2, [r0] + strh r3, [r4] + cmp r1, #0 + bge _0801E27C + adds r1, #6 + lsls r0, r3, #2 + adds r1, r1, r0 + b _0801E288 + .align 2, 0 +_0801E278: .4byte gUnk_02018EE0 +_0801E27C: + adds r1, #0xa + subs r0, r3, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + subs r4, #2 + subs r2, #1 +_0801E288: + adds r3, #1 + cmp r3, r2 + ble _0801E264 +_0801E28E: + pop {r4, r5, pc} + .syntax divided diff --git a/asm/non_matching/common/sub_0801E290.inc b/asm/non_matching/common/sub_0801E290.inc new file mode 100644 index 00000000..29e1bcc4 --- /dev/null +++ b/asm/non_matching/common/sub_0801E290.inc @@ -0,0 +1,75 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov ip, r0 + adds r6, r2, #0 + ldr r0, _0801E2BC @ =gUnk_03003DE4 + ldrb r0, [r0] + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #9 + lsls r0, r1, #1 + ldr r3, _0801E2C0 @ =gUnk_02017AA0 + adds r0, r0, r3 + adds r2, r2, r0 + adds r4, r2, #0 + adds r5, r1, #0 + mov sb, r5 + ldr r0, _0801E2C4 @ =gUnk_02018EE0 + mov r8, r0 + b _0801E30A + .align 2, 0 +_0801E2BC: .4byte gUnk_03003DE4 +_0801E2C0: .4byte gUnk_02017AA0 +_0801E2C4: .4byte gUnk_02018EE0 +_0801E2C8: + mov r1, r8 + movs r3, #0 + ldrsh r0, [r1, r3] + movs r7, #2 + add r8, r7 + mov r3, ip + subs r1, r3, r0 + adds r3, r3, r0 + cmp r1, #0 + bge _0801E2DE + movs r1, #0 +_0801E2DE: + cmp r3, #0xef + ble _0801E2E4 + movs r3, #0xf0 +_0801E2E4: + mov r7, sb + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x9f + bhi _0801E2F2 + strb r3, [r4] + strb r1, [r4, #1] +_0801E2F2: + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x9f + bhi _0801E2FE + strb r3, [r2] + strb r1, [r2, #1] +_0801E2FE: + subs r4, #2 + adds r2, #2 + movs r0, #1 + rsbs r0, r0, #0 + add sb, r0 + adds r5, #1 +_0801E30A: + adds r0, r6, #0 + subs r6, #1 + cmp r0, #0 + bne _0801E2C8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/common/sub_0801E31C.inc b/asm/non_matching/common/sub_0801E31C.inc new file mode 100644 index 00000000..7db12fb7 --- /dev/null +++ b/asm/non_matching/common/sub_0801E31C.inc @@ -0,0 +1,189 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + str r0, [sp] + str r1, [sp, #4] + mov sl, r2 + mov sb, r3 + ldr r0, _0801E3AC @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0801E3B0 @ =gUnk_02017AA0 + adds r0, r0, r1 + movs r1, #0xa0 + lsls r1, r1, #4 + bl MemClear + cmp sl, sb + bge _0801E3DC + movs r6, #0 + mov r8, sl + mov r7, r8 + mov r0, r8 + lsls r1, r0, #1 + movs r0, #3 + subs r5, r0, r1 + cmp r6, r8 + ble _0801E35E + b _0801E45E +_0801E35E: + mov r1, r8 + lsls r0, r1, #2 + ldr r4, _0801E3B4 @ =gUnk_02018EE0 + adds r0, r0, r4 + str r0, [sp, #0x10] + mov r1, sb + mov r0, r8 + muls r0, r1, r0 + str r0, [sp, #0x14] + movs r3, #0 +_0801E372: + adds r0, r3, #0 + mov r1, sl + str r3, [sp, #0x18] + bl Div + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + str r4, [sp, #0x1c] + ldr r0, [sp, #0x14] + mov r1, sl + bl Div + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r6, #2 + ldr r4, _0801E3B4 @ =gUnk_02018EE0 + adds r1, r2, r4 + str r0, [r1] + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x10] + str r0, [r1] + ldr r3, [sp, #0x18] + cmp r5, #0 + bge _0801E3B8 + adds r0, r5, #6 + adds r5, r0, r2 + b _0801E3D2 + .align 2, 0 +_0801E3AC: .4byte gUnk_03003DE4 +_0801E3B0: .4byte gUnk_02017AA0 +_0801E3B4: .4byte gUnk_02018EE0 +_0801E3B8: + adds r1, r5, #0 + adds r1, #0xa + subs r0, r6, r7 + lsls r0, r0, #2 + adds r5, r1, r0 + ldr r4, [sp, #0x10] + subs r4, #4 + str r4, [sp, #0x10] + ldr r0, [sp, #0x14] + mov r1, sb + subs r0, r0, r1 + str r0, [sp, #0x14] + subs r7, #1 +_0801E3D2: + add r3, sb + adds r6, #1 + cmp r6, r7 + ble _0801E372 + b _0801E45E +_0801E3DC: + movs r6, #0 + mov r8, sb + mov r7, r8 + mov r4, r8 + lsls r1, r4, #1 + movs r0, #3 + subs r5, r0, r1 + cmp r6, r8 + bgt _0801E45E + lsls r0, r4, #2 + ldr r1, _0801E438 @ =gUnk_02018EE0 + adds r0, r0, r1 + str r0, [sp, #8] + mov r0, sl + mov r4, r8 + muls r4, r0, r4 + str r4, [sp, #0xc] + movs r3, #0 +_0801E400: + adds r0, r3, #0 + mov r1, sb + str r3, [sp, #0x18] + bl Div + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + str r4, [sp, #0x1c] + ldr r0, [sp, #0xc] + mov r1, sb + bl Div + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r6, #2 + ldr r4, _0801E438 @ =gUnk_02018EE0 + adds r1, r2, r4 + str r0, [r1] + ldr r0, [sp, #0x1c] + ldr r1, [sp, #8] + str r0, [r1] + ldr r3, [sp, #0x18] + cmp r5, #0 + bge _0801E43C + adds r0, r5, #6 + adds r5, r0, r2 + b _0801E456 + .align 2, 0 +_0801E438: .4byte gUnk_02018EE0 +_0801E43C: + adds r1, r5, #0 + adds r1, #0xa + subs r0, r6, r7 + lsls r0, r0, #2 + adds r5, r1, r0 + ldr r4, [sp, #8] + subs r4, #4 + str r4, [sp, #8] + ldr r0, [sp, #0xc] + mov r1, sl + subs r0, r0, r1 + str r0, [sp, #0xc] + subs r7, #1 +_0801E456: + add r3, sl + adds r6, #1 + cmp r6, r7 + ble _0801E400 +_0801E45E: + ldr r0, [sp] + ldr r1, [sp, #4] + mov r2, r8 + bl sub_0801E290 + ldr r0, _0801E48C @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0801E490 @ =gUnk_02017AA0 + adds r0, r0, r1 + ldr r1, _0801E494 @ =0x04000040 + ldr r2, _0801E498 @ =0xA2600001 + bl sub_0805622C + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E48C: .4byte gUnk_03003DE4 +_0801E490: .4byte gUnk_02017AA0 +_0801E494: .4byte 0x04000040 +_0801E498: .4byte 0xA2600001 + .syntax divided diff --git a/asm/non_matching/common/sub_0801E49C.inc b/asm/non_matching/common/sub_0801E49C.inc new file mode 100644 index 00000000..46bd1ebc --- /dev/null +++ b/asm/non_matching/common/sub_0801E49C.inc @@ -0,0 +1,211 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov r8, r0 + str r1, [sp, #4] + mov sb, r2 + adds r5, r3, #0 + ldr r0, _0801E5E4 @ =0x0000FFFF + movs r2, #0xf0 + lsls r2, r2, #3 + ldr r1, _0801E5E8 @ =gUnk_02018EE0 + bl MemFill16 + adds r3, r5, #0 + subs r3, #0x40 + movs r2, #0xff + ands r3, r2 + ldr r1, _0801E5EC @ =gSineTable + adds r0, r3, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r4, #0 + ldrsh r0, [r0, r4] + mov r4, sb + muls r4, r0, r4 + adds r0, r4, #0 + asrs r0, r0, #8 + mov r4, r8 + adds r7, r4, r0 + lsls r0, r3, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r4, sb + muls r4, r0, r4 + adds r0, r4, #0 + asrs r0, r0, #8 + ldr r3, [sp, #4] + adds r3, r3, r0 + mov sl, r3 + adds r3, r5, #0 + adds r3, #0x68 + ands r3, r2 + adds r0, r3, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r4, #0 + ldrsh r0, [r0, r4] + mov r4, sb + muls r4, r0, r4 + adds r0, r4, #0 + asrs r0, r0, #8 + mov r4, r8 + adds r6, r4, r0 + lsls r0, r3, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r4, sb + muls r4, r0, r4 + adds r0, r4, #0 + asrs r0, r0, #8 + ldr r3, [sp, #4] + adds r4, r3, r0 + adds r3, r5, #0 + subs r3, #0xe8 + ands r3, r2 + adds r0, r3, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + asrs r0, r0, #8 + mov r2, r8 + adds r5, r2, r0 + lsls r0, r3, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + asrs r0, r0, #8 + ldr r2, [sp, #4] + adds r2, r2, r0 + mov r8, r2 + movs r0, #0 + str r0, [sp] + adds r0, r7, #0 + mov r1, sl + adds r2, r6, #0 + adds r3, r4, #0 + bl sub_0801E64C + movs r0, #1 + str r0, [sp] + adds r0, r7, #0 + mov r1, sl + adds r2, r5, #0 + mov r3, r8 + bl sub_0801E64C + movs r0, #2 + str r0, [sp] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + mov r3, r8 + bl sub_0801E64C + ldr r5, _0801E5F0 @ =gUnk_03003DE4 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r6, _0801E5F4 @ =gUnk_02017AA0 + adds r0, r0, r6 + movs r1, #0xa0 + lsls r1, r1, #4 + bl MemClear + ldr r2, _0801E5E8 @ =gUnk_02018EE0 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + adds r1, r0, r6 + movs r3, #0xa0 + mov sl, r3 +_0801E5B0: + ldr r7, [r2] + ldr r6, [r2, #4] + ldr r5, [r2, #8] + adds r2, #0xc + cmp r7, r6 + ble _0801E5C2 + adds r4, r7, #0 + adds r7, r6, #0 + adds r6, r4, #0 +_0801E5C2: + cmp r7, r5 + ble _0801E5CC + adds r4, r7, #0 + adds r7, r5, #0 + adds r5, r4, #0 +_0801E5CC: + cmp r6, r5 + ble _0801E5D6 + adds r4, r6, #0 + adds r6, r5, #0 + adds r5, r4, #0 +_0801E5D6: + movs r0, #1 + rsbs r0, r0, #0 + cmp r7, r0 + beq _0801E5F8 + strb r5, [r1] + strb r7, [r1, #1] + b _0801E60A + .align 2, 0 +_0801E5E4: .4byte 0x0000FFFF +_0801E5E8: .4byte gUnk_02018EE0 +_0801E5EC: .4byte gSineTable +_0801E5F0: .4byte gUnk_03003DE4 +_0801E5F4: .4byte gUnk_02017AA0 +_0801E5F8: + cmp r6, r7 + beq _0801E602 + strb r5, [r1] + strb r6, [r1, #1] + b _0801E60A +_0801E602: + cmp r5, r7 + beq _0801E60A + strb r7, [r1, #1] + strb r7, [r1] +_0801E60A: + movs r4, #1 + rsbs r4, r4, #0 + add sl, r4 + adds r1, #2 + mov r0, sl + cmp r0, #0 + bgt _0801E5B0 + ldr r0, _0801E63C @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0801E640 @ =gUnk_02017AA0 + adds r0, r0, r1 + ldr r1, _0801E644 @ =0x04000040 + ldr r2, _0801E648 @ =0xA2600001 + bl sub_0805622C + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E63C: .4byte gUnk_03003DE4 +_0801E640: .4byte gUnk_02017AA0 +_0801E644: .4byte 0x04000040 +_0801E648: .4byte 0xA2600001 + .syntax divided diff --git a/asm/non_matching/common/sub_0801E64C.inc b/asm/non_matching/common/sub_0801E64C.inc new file mode 100644 index 00000000..03076c44 --- /dev/null +++ b/asm/non_matching/common/sub_0801E64C.inc @@ -0,0 +1,72 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r3, #0 + ldr r7, _0801E6C4 @ =gUnk_02018EE0 + cmp r4, #0 + bge _0801E65E + cmp r6, #0 + blt _0801E6C2 +_0801E65E: + cmp r4, #0x9f + ble _0801E666 + cmp r6, #0x9f + bgt _0801E6C2 +_0801E666: + cmp r4, r6 + ble _0801E676 + adds r1, r4, #0 + adds r4, r6, #0 + adds r6, r1, #0 + adds r1, r5, #0 + adds r5, r2, #0 + adds r2, r1, #0 +_0801E676: + cmp r4, r6 + beq _0801E6C2 + subs r0, r2, r5 + lsls r0, r0, #0x10 + subs r1, r6, r4 + bl Div + adds r3, r0, #0 + cmp r4, #0 + bge _0801E694 + rsbs r0, r4, #0 + muls r0, r3, r0 + asrs r0, r0, #0x10 + adds r5, r5, r0 + movs r4, #0 +_0801E694: + cmp r6, #0x9f + ble _0801E69A + movs r6, #0x9f +_0801E69A: + lsls r2, r5, #0x10 + lsls r0, r4, #1 + adds r0, r0, r4 + ldr r1, [sp, #0x14] + adds r0, r0, r1 + lsls r0, r0, #2 + adds r7, r0, r7 +_0801E6A8: + cmp r5, #0 + bge _0801E6AE + movs r5, #0 +_0801E6AE: + cmp r5, #0xf0 + ble _0801E6B4 + movs r5, #0xf0 +_0801E6B4: + str r5, [r7] + adds r2, r2, r3 + asrs r5, r2, #0x10 + adds r4, #1 + adds r7, #0xc + cmp r4, r6 + ble _0801E6A8 +_0801E6C2: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E6C4: .4byte gUnk_02018EE0 + .syntax divided diff --git a/asm/non_matching/common/sub_0801E6C8.inc b/asm/non_matching/common/sub_0801E6C8.inc new file mode 100644 index 00000000..7bb2b576 --- /dev/null +++ b/asm/non_matching/common/sub_0801E6C8.inc @@ -0,0 +1,59 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r4, r0, #0 + subs r0, r4, #1 + cmp r0, #0x63 + bhi _0801E722 + movs r1, #0 + ldr r5, _0801E724 @ =gFuseInfo + ldr r3, _0801E728 @ =gUnk_02002C01 + movs r2, #0xf1 +_0801E6DA: + adds r0, r1, r3 + ldrb r6, [r0] + cmp r4, r6 + bne _0801E6E4 + strb r2, [r0] +_0801E6E4: + adds r1, #1 + cmp r1, #0x7f + bls _0801E6DA + ldr r0, [r5, #0xc] + bl sub_08002632 + adds r1, r0, #0 + subs r0, r1, #1 + cmp r0, #0x7e + bhi _0801E70A + ldr r0, _0801E72C @ =gSave + ldr r2, _0801E730 @ =0x000001C1 + adds r0, r0, r2 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xf1 + bne _0801E70A + movs r0, #0xf2 + strb r0, [r1] +_0801E70A: + movs r1, #0 + ldr r0, _0801E734 @ =gUnk_03003DF0 + movs r2, #0xf1 + adds r0, #0xb +_0801E712: + ldrb r3, [r0] + cmp r4, r3 + bne _0801E71A + strb r2, [r0] +_0801E71A: + adds r0, #0xc + adds r1, #1 + cmp r1, #0x1f + bls _0801E712 +_0801E722: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801E724: .4byte gFuseInfo +_0801E728: .4byte gUnk_02002C01 +_0801E72C: .4byte gSave +_0801E730: .4byte 0x000001C1 +_0801E734: .4byte gUnk_03003DF0 + .syntax divided diff --git a/asm/non_matching/common/sub_0801E738.inc b/asm/non_matching/common/sub_0801E738.inc new file mode 100644 index 00000000..a6a3df28 --- /dev/null +++ b/asm/non_matching/common/sub_0801E738.inc @@ -0,0 +1,51 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E82C + adds r0, r4, #0 + subs r0, #0x65 + cmp r0, #0x10 + bhi _0801E790 + adds r0, r4, #0 + bl sub_0801E8B0 + adds r1, r0, #0 + cmp r1, #0 + bge _0801E76E + movs r1, #0 + ldr r0, _0801E794 @ =gSave + movs r3, #0x8c + lsls r3, r3, #1 + adds r2, r0, r3 + ldrb r0, [r2] + cmp r0, #0 + beq _0801E76E +_0801E764: + adds r1, #1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _0801E764 +_0801E76E: + cmp r1, #0x11 + bhi _0801E790 + ldr r2, _0801E794 @ =gSave + movs r3, #0x8c + lsls r3, r3, #1 + adds r0, r2, r3 + adds r0, r1, r0 + strb r4, [r0] + adds r3, #0x13 + adds r0, r2, r3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + cmp r0, #0x63 + ble _0801E78E + movs r0, #0x63 +_0801E78E: + strb r0, [r1] +_0801E790: + pop {r4, pc} + .align 2, 0 +_0801E794: .4byte gSave + .syntax divided diff --git a/asm/non_matching/common/sub_0801E82C.inc b/asm/non_matching/common/sub_0801E82C.inc new file mode 100644 index 00000000..3f0f200b --- /dev/null +++ b/asm/non_matching/common/sub_0801E82C.inc @@ -0,0 +1,69 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r1, _0801E8AC @ =gUnk_02002B54 + movs r5, #0 + adds r2, r1, #4 +_0801E83C: + ldrb r0, [r2, #0x13] + adds r3, r1, #4 + mov sl, r3 + cmp r0, #0 + bne _0801E848 + strb r0, [r2] +_0801E848: + adds r2, #1 + adds r5, #1 + cmp r5, #0x12 + bls _0801E83C + movs r0, #0 + strb r0, [r1, #0x16] + adds r2, r1, #0 + adds r2, #0x29 + strb r0, [r2] + movs r5, #0 + movs r0, #0x17 + adds r0, r0, r1 + mov sb, r0 + movs r3, #0x18 + adds r3, r3, r1 + mov r8, r3 + adds r7, r1, #4 + adds r6, r1, #5 +_0801E86C: + mov r1, sl + adds r0, r1, r5 + ldrb r0, [r0] + subs r0, #0x65 + cmp r0, #0x10 + bls _0801E890 + movs r4, #0x12 + subs r4, r4, r5 + adds r0, r6, #0 + adds r1, r7, #0 + adds r2, r4, #0 + bl MemCopy + mov r0, r8 + mov r1, sb + adds r2, r4, #0 + bl MemCopy +_0801E890: + movs r3, #1 + add sb, r3 + add r8, r3 + adds r7, #1 + adds r6, #1 + adds r5, #1 + cmp r5, #0x11 + bls _0801E86C + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E8AC: .4byte gUnk_02002B54 + .syntax divided diff --git a/asm/non_matching/common/sub_0801E99C.inc b/asm/non_matching/common/sub_0801E99C.inc new file mode 100644 index 00000000..7bbda3c9 --- /dev/null +++ b/asm/non_matching/common/sub_0801E99C.inc @@ -0,0 +1,112 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_08002632 + mov r8, r0 + ldr r1, _0801E9E4 @ =gUnk_08001DCC + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r7, [r0] + movs r0, #0x67 + bl GetInventoryValue + cmp r0, #0 + beq _0801EA56 + ldr r1, _0801E9E8 @ =gSave + ldrb r0, [r7] + ldrb r2, [r1, #8] + cmp r0, r2 + bhi _0801EA56 + ldr r2, _0801E9EC @ =0x000001C1 + adds r0, r1, r2 + add r0, r8 + ldrb r5, [r0] + subs r2, #0x80 + adds r0, r1, r2 + add r0, r8 + ldrb r6, [r0] + adds r4, r6, r7 +_0801E9D6: + cmp r5, #0xf1 + beq _0801E9F6 + cmp r5, #0xf1 + bhi _0801E9F0 + cmp r5, #0 + beq _0801E9F6 + b _0801EA10 + .align 2, 0 +_0801E9E4: .4byte gUnk_08001DCC +_0801E9E8: .4byte gSave +_0801E9EC: .4byte 0x000001C1 +_0801E9F0: + cmp r5, #0xf2 + beq _0801EA0A + b _0801EA10 +_0801E9F6: + ldrb r5, [r4, #5] + cmp r5, #0 + beq _0801EA10 + cmp r5, #0xff + beq _0801EA14 + adds r0, r5, #0 + bl CheckKinstoneFused + cmp r0, #0 + beq _0801EA10 +_0801EA0A: + adds r4, #1 + adds r6, #1 + ldrb r5, [r4, #5] +_0801EA10: + cmp r5, #0xff + bne _0801EA1C +_0801EA14: + adds r0, r7, #0 + bl sub_0801EA74 + adds r5, r0, #0 +_0801EA1C: + cmp r5, #0 + beq _0801EA32 + cmp r5, #0xf2 + beq _0801E9D6 + adds r0, r5, #0 + bl CheckKinstoneFused + cmp r0, #0 + beq _0801EA34 + movs r5, #0xf1 + b _0801E9D6 +_0801EA32: + movs r5, #0xf3 +_0801EA34: + ldr r1, _0801EA5C @ =gSave + ldr r2, _0801EA60 @ =0x000001C1 + adds r0, r1, r2 + add r0, r8 + strb r5, [r0] + subs r2, #0x80 + adds r0, r1, r2 + add r0, r8 + strb r6, [r0] + bl Random + ldrb r4, [r7, #1] + movs r1, #0x64 + bl __modsi3 + cmp r4, r0 + bhi _0801EA64 +_0801EA56: + movs r0, #0 + b _0801EA6E + .align 2, 0 +_0801EA5C: .4byte gSave +_0801EA60: .4byte 0x000001C1 +_0801EA64: + subs r0, r5, #1 + cmp r0, #0x63 + bls _0801EA6C + movs r5, #0 +_0801EA6C: + adds r0, r5, #0 +_0801EA6E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .syntax divided diff --git a/asm/non_matching/common/zFree.inc b/asm/non_matching/common/zFree.inc new file mode 100644 index 00000000..7ff819a2 --- /dev/null +++ b/asm/non_matching/common/zFree.inc @@ -0,0 +1,58 @@ + .syntax unified + push {r4, r5, lr} + ldr r3, _0801DA44 @ =gzHeap + subs r1, r0, r3 + ldr r0, _0801DA48 @ =0x00000FFF + cmp r1, r0 + bhi _0801DA74 + adds r4, r3, #0 + ldrh r5, [r4] + adds r4, #2 + movs r2, #0 + cmp r2, r5 + bhs _0801DA74 + ldrh r0, [r4] + cmp r0, r1 + bne _0801DA4C + lsls r0, r5, #2 + subs r1, r3, #2 + adds r0, r0, r1 + ldrh r1, [r0] + strh r1, [r4] + strh r2, [r0] + adds r0, #2 + ldrh r1, [r0] + strh r1, [r4, #2] + strh r2, [r0] + subs r0, r5, #1 + strh r0, [r3] + b _0801DA74 + .align 2, 0 +_0801DA44: .4byte gzHeap +_0801DA48: .4byte 0x00000FFF +_0801DA4C: + adds r4, #4 + adds r2, #1 + cmp r2, r5 + bhs _0801DA74 + ldrh r0, [r4] + cmp r0, r1 + bne _0801DA4C + lsls r1, r5, #2 + ldr r3, _0801DA78 @ =gUnk_0203553E + adds r1, r1, r3 + ldrh r0, [r1] + strh r0, [r4] + movs r2, #0 + strh r2, [r1] + adds r1, #2 + ldrh r0, [r1] + strh r0, [r4, #2] + strh r2, [r1] + subs r0, r5, #1 + strh r0, [r3, #2] +_0801DA74: + pop {r4, r5, pc} + .align 2, 0 +_0801DA78: .4byte gUnk_0203553E + .syntax divided diff --git a/asm/non_matching/common/zMalloc.inc b/asm/non_matching/common/zMalloc.inc new file mode 100644 index 00000000..742dd67c --- /dev/null +++ b/asm/non_matching/common/zMalloc.inc @@ -0,0 +1,171 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov ip, r0 + movs r0, #3 + add ip, r0 + subs r0, #7 + mov r1, ip + ands r1, r0 + mov ip, r1 + ldr r6, _0801D90C @ =gzHeap + mov sb, r6 + ldrh r7, [r6] + movs r5, #1 + movs r3, #0x80 + lsls r3, r3, #5 + add r3, sb + subs r4, r3, r1 + movs r2, #0 + b _0801D926 + .align 2, 0 +_0801D90C: .4byte gzHeap +_0801D910: + cmp r1, r4 + bhi _0801D918 + cmp r3, r0 + bls _0801D952 +_0801D918: + cmp r4, r1 + bhi _0801D920 + cmp r0, r3 + bls _0801D952 +_0801D920: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_0801D926: + cmp r2, r7 + bhs _0801D94A + lsls r0, r2, #2 + add r0, sb + ldrh r1, [r0, #2] + ldr r6, _0801D95C @ =gzHeap + adds r1, r1, r6 + ldrh r0, [r0, #4] + adds r0, r0, r6 + cmp r1, r4 + bhi _0801D940 + cmp r4, r0 + bls _0801D952 +_0801D940: + cmp r1, r3 + bhi _0801D910 + cmp r3, r0 + bhi _0801D910 + movs r5, #0 +_0801D94A: + lsls r0, r7, #2 + mov sl, r0 + cmp r5, #0 + bne _0801D9D8 +_0801D952: + movs r1, #0 + mov r8, r1 + lsls r6, r7, #2 + mov sl, r6 + b _0801D970 + .align 2, 0 +_0801D95C: .4byte gzHeap +_0801D960: + movs r5, #0 +_0801D962: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r8, r7 + bhs _0801D9D4 +_0801D970: + mov r1, r8 + lsls r0, r1, #2 + add r0, sb + ldrh r0, [r0, #2] + ldr r6, _0801D994 @ =gzHeap + adds r3, r0, r6 + mov r0, ip + subs r4, r3, r0 + movs r5, #0 + mov r0, sl + adds r0, #2 + add r0, sb + adds r0, #4 + cmp r4, r0 + blo _0801D962 + movs r5, #1 + movs r2, #0 + b _0801D9AE + .align 2, 0 +_0801D994: .4byte gzHeap +_0801D998: + cmp r1, r4 + bhi _0801D9A0 + cmp r3, r0 + bls _0801D960 +_0801D9A0: + cmp r4, r1 + bhi _0801D9A8 + cmp r0, r3 + bls _0801D960 +_0801D9A8: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_0801D9AE: + cmp r2, r7 + bhs _0801D9D0 + lsls r0, r2, #2 + add r0, sb + ldrh r1, [r0, #2] + adds r1, r1, r6 + ldrh r0, [r0, #4] + adds r0, r0, r6 + cmp r1, r4 + bhi _0801D9C6 + cmp r4, r0 + blo _0801D960 +_0801D9C6: + cmp r1, r3 + bhs _0801D998 + cmp r3, r0 + bhi _0801D998 + movs r5, #0 +_0801D9D0: + cmp r5, #0 + beq _0801D962 +_0801D9D4: + cmp r5, #0 + beq _0801DA00 +_0801D9D8: + ldr r0, _0801D9FC @ =gUnk_02035542 + mov r1, sl + adds r2, r1, r0 + subs r3, r0, #2 + subs r1, r4, r3 + strh r1, [r2] + adds r0, #2 + add r0, sl + add r1, ip + strh r1, [r0] + adds r0, r7, #1 + strh r0, [r3] + adds r0, r4, #0 + mov r1, ip + bl MemClear + adds r0, r4, #0 + b _0801DA02 + .align 2, 0 +_0801D9FC: .4byte gUnk_02035542 +_0801DA00: + movs r0, #0 +_0801DA02: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .syntax divided diff --git a/asm/non_matching/textbox/sub_08056FEC.inc b/asm/non_matching/textbox/sub_08056FEC.inc index aa1b66b2..d8cd552f 100644 --- a/asm/non_matching/textbox/sub_08056FEC.inc +++ b/asm/non_matching/textbox/sub_08056FEC.inc @@ -5,7 +5,7 @@ sub sp, #8 adds r2, r0, #0 adds r5, r1, #0 - bl sub_0801D51C + bl DecToHex adds r2, r0, #0 ldr r0, _08057040 @ =0x0FFFFFFF ands r2, r0 diff --git a/asm/object/object9.s b/asm/object/object9.s index 83e07658..2cbdec01 100644 --- a/asm/object/object9.s +++ b/asm/object/object9.s @@ -17,7 +17,7 @@ Object9: @ 0x0808386C rsbs r0, r1, #0 orrs r0, r1 lsrs r2, r0, #0x1f - ldr r0, _080838CC @ =gUnk_02022740 + ldr r0, _080838CC @ =gFuseInfo ldrb r0, [r0] cmp r0, #2 bgt _08083894 @@ -58,7 +58,7 @@ _080838B6: pop {r4, pc} .align 2, 0 _080838C8: .4byte gPlayerState -_080838CC: .4byte gUnk_02022740 +_080838CC: .4byte gFuseInfo _080838D0: .4byte gMessage _080838D4: .4byte gUnk_03003DF0 _080838D8: .4byte gUnk_0811F754 diff --git a/asm/object/objectB3.s b/asm/object/objectB3.s index 4111e371..41d6458f 100644 --- a/asm/object/objectB3.s +++ b/asm/object/objectB3.s @@ -64,7 +64,7 @@ _080A0A5E: orrs r1, r3 strb r1, [r4, #0x1b] ldr r1, _080A0ABC @ =gUnk_080C9CBC - ldr r0, _080A0AC0 @ =gUnk_02022740 + ldr r0, _080A0AC0 @ =gFuseInfo ldrb r0, [r0, #3] lsls r0, r0, #3 adds r0, r0, r1 @@ -78,7 +78,7 @@ _080A0AB0: .align 2, 0 _080A0AB8: .4byte gUnk_08124A20 _080A0ABC: .4byte gUnk_080C9CBC -_080A0AC0: .4byte gUnk_02022740 +_080A0AC0: .4byte gFuseInfo thumb_func_start sub_080A0AC4 sub_080A0AC4: @ 0x080A0AC4 diff --git a/asm/subtask.s b/asm/subtask.s index fe5e7913..d6bb7811 100644 --- a/asm/subtask.s +++ b/asm/subtask.s @@ -186,7 +186,7 @@ sub_080A3DB8: @ 0x080A3DB8 ldrb r1, [r0, #1] cmp r1, #6 bne _080A3DEE - ldr r0, _080A3DE0 @ =gUnk_02022740 + ldr r0, _080A3DE0 @ =gFuseInfo strb r1, [r0] ldrb r0, [r0, #3] lsls r0, r0, #3 @@ -200,20 +200,20 @@ sub_080A3DB8: @ 0x080A3DB8 b _080A3DF8 .align 2, 0 _080A3DDC: .4byte gMenu -_080A3DE0: .4byte gUnk_02022740 +_080A3DE0: .4byte gFuseInfo _080A3DE4: .4byte gUnk_080C9CBC _080A3DE8: bl sub_080A71DC b _080A3DF8 _080A3DEE: - ldr r1, _080A3DFC @ =gUnk_02022740 + ldr r1, _080A3DFC @ =gFuseInfo movs r0, #5 strb r0, [r1] bl sub_080A71DC _080A3DF8: pop {pc} .align 2, 0 -_080A3DFC: .4byte gUnk_02022740 +_080A3DFC: .4byte gFuseInfo thumb_func_start sub_080A3E00 sub_080A3E00: @ 0x080A3E00 @@ -267,7 +267,7 @@ sub_080A3E48: @ 0x080A3E48 lsls r0, r0, #3 adds r0, r0, r2 ldrb r1, [r0, #5] - ldr r0, _080A3E80 @ =gUnk_02022740 + ldr r0, _080A3E80 @ =gFuseInfo ldrb r0, [r0, #3] lsls r0, r0, #3 adds r0, r0, r2 @@ -283,7 +283,7 @@ sub_080A3E48: @ 0x080A3E48 .align 2, 0 _080A3E78: .4byte gUnk_080C9CBC _080A3E7C: .4byte gMenu -_080A3E80: .4byte gUnk_02022740 +_080A3E80: .4byte gFuseInfo _080A3E84: movs r2, #0 movs r0, #2 @@ -407,7 +407,7 @@ sub_080A3F68: @ 0x080A3F68 movs r0, #5 strb r0, [r5, #1] ldr r4, _080A3FB8 @ =gUnk_02002C81 - ldr r0, _080A3FBC @ =gUnk_02022740 + ldr r0, _080A3FBC @ =gFuseInfo ldrb r1, [r0, #3] adds r0, r4, #0 bl WriteBit @@ -439,7 +439,7 @@ _080A3F96: .align 2, 0 _080A3FB4: .4byte gMenu _080A3FB8: .4byte gUnk_02002C81 -_080A3FBC: .4byte gUnk_02022740 +_080A3FBC: .4byte gFuseInfo _080A3FC0: .4byte 0xFFFFFED6 _080A3FC4: .4byte 0xFFFFFED5 _080A3FC8: .4byte 0x00000702 @@ -924,14 +924,14 @@ _080A42C4: _080A42C6: ldr r0, _080A42D8 @ =gOamCmd strh r4, [r0] - ldr r0, _080A42DC @ =gUnk_02022740 + ldr r0, _080A42DC @ =gFuseInfo ldrb r0, [r0, #3] movs r1, #0 bl sub_080A42E0 pop {r4, r5, pc} .align 2, 0 _080A42D8: .4byte gOamCmd -_080A42DC: .4byte gUnk_02022740 +_080A42DC: .4byte gFuseInfo thumb_func_start sub_080A42E0 sub_080A42E0: @ 0x080A42E0 @@ -1150,7 +1150,7 @@ sub_080A4468: @ 0x080A4468 strb r1, [r0, #2] ldr r0, [r0, #4] strb r1, [r0, #3] - ldr r0, _080A448C @ =gUnk_02022740 + ldr r0, _080A448C @ =gFuseInfo ldrb r0, [r0, #3] bl sub_0801E6C8 ldr r0, _080A4490 @ =gMenu @@ -1160,7 +1160,7 @@ sub_080A4468: @ 0x080A4468 pop {pc} .align 2, 0 _080A4488: .4byte gUnk_03003DF0 -_080A448C: .4byte gUnk_02022740 +_080A448C: .4byte gFuseInfo _080A4490: .4byte gMenu thumb_func_start sub_080A4494 @@ -1181,7 +1181,7 @@ sub_080A4494: @ 0x080A4494 adds r0, r4, #0 movs r2, #0x80 bl sub_080A44E0 - ldr r0, _080A44DC @ =gUnk_02022740 + ldr r0, _080A44DC @ =gFuseInfo ldr r0, [r0, #0xc] bl sub_08002632 adds r0, r4, #0 @@ -1196,7 +1196,7 @@ _080A44D0: .align 2, 0 _080A44D4: .4byte gTextGfxBuffer _080A44D8: .4byte gUnk_02002AC0 -_080A44DC: .4byte gUnk_02022740 +_080A44DC: .4byte gFuseInfo thumb_func_start sub_080A44E0 sub_080A44E0: @ 0x080A44E0 @@ -1237,7 +1237,7 @@ _080A4524: .4byte 0x06010000 thumb_func_start sub_080A4528 sub_080A4528: @ 0x080A4528 push {r4, lr} - ldr r0, _080A4540 @ =gUnk_02022740 + ldr r0, _080A4540 @ =gFuseInfo ldr r2, [r0, #0xc] ldrb r0, [r2, #8] cmp r0, #7 @@ -1248,7 +1248,7 @@ sub_080A4528: @ 0x080A4528 bl CreateNPC b _080A4550 .align 2, 0 -_080A4540: .4byte gUnk_02022740 +_080A4540: .4byte gFuseInfo _080A4544: cmp r0, #3 bne _080A45A2 diff --git a/asm/subtask2.s b/asm/subtask2.s index e62c568e..ceadbd8e 100644 --- a/asm/subtask2.s +++ b/asm/subtask2.s @@ -1258,13 +1258,13 @@ _080A5CFA: sub_080A5CFC: @ 0x080A5CFC push {r4, lr} adds r4, r0, #0 - bl sub_0801DDA0 + bl DrawDungeonFeatures bl LoadDungeonMap ldr r1, _080A5D18 @ =gUnk_02019EE0 movs r2, #0x80 lsls r2, r2, #3 adds r0, r4, #0 - bl sub_0801DBA0 + bl DrawDungeonMap pop {r4, pc} .align 2, 0 _080A5D18: .4byte gUnk_02019EE0 @@ -3818,7 +3818,7 @@ sub_080A6B04: @ 0x080A6B04 bl sub_080A4D34 movs r0, #6 bl sub_080A4DB8 - ldr r0, _080A6BF0 @ =gUnk_02022740 + ldr r0, _080A6BF0 @ =gFuseInfo ldrb r2, [r0, #3] lsls r2, r2, #3 ldr r0, _080A6BF4 @ =gUnk_080C9CBC @@ -3925,7 +3925,7 @@ _080A6BD4: mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 -_080A6BF0: .4byte gUnk_02022740 +_080A6BF0: .4byte gFuseInfo _080A6BF4: .4byte gUnk_080C9CBC _080A6BF8: .4byte gUnk_080FE320 _080A6BFC: .4byte gMenu diff --git a/asm/utils.s b/asm/utils.s deleted file mode 100644 index d3ffd9a8..00000000 --- a/asm/utils.s +++ /dev/null @@ -1,2677 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0801D898 -sub_0801D898: @ 0x0801D898 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r3 - movs r1, #0x20 - mov ip, r1 - cmp r0, #0 - beq _0801D8B2 - movs r0, #0x40 - mov ip, r0 -_0801D8B2: - ldr r0, _0801D8D8 @ =0x00007FFF - ands r3, r0 - ldr r1, _0801D8DC @ =0x040000D4 - movs r2, #0x80 - lsls r2, r2, #0x18 - orrs r2, r6 - lsls r7, r6, #1 - mov r0, ip - lsls r6, r0, #1 -_0801D8C4: - str r4, [r1] - str r5, [r1, #4] - str r2, [r1, #8] - ldr r0, [r1, #8] - adds r4, r4, r7 - adds r5, r5, r6 - subs r3, #1 - cmp r3, #0 - bne _0801D8C4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801D8D8: .4byte 0x00007FFF -_0801D8DC: .4byte 0x040000D4 - - thumb_func_start zMalloc -zMalloc: @ 0x0801D8E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov ip, r0 - movs r0, #3 - add ip, r0 - subs r0, #7 - mov r1, ip - ands r1, r0 - mov ip, r1 - ldr r6, _0801D90C @ =gzHeap - mov sb, r6 - ldrh r7, [r6] - movs r5, #1 - movs r3, #0x80 - lsls r3, r3, #5 - add r3, sb - subs r4, r3, r1 - movs r2, #0 - b _0801D926 - .align 2, 0 -_0801D90C: .4byte gzHeap -_0801D910: - cmp r1, r4 - bhi _0801D918 - cmp r3, r0 - bls _0801D952 -_0801D918: - cmp r4, r1 - bhi _0801D920 - cmp r0, r3 - bls _0801D952 -_0801D920: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_0801D926: - cmp r2, r7 - bhs _0801D94A - lsls r0, r2, #2 - add r0, sb - ldrh r1, [r0, #2] - ldr r6, _0801D95C @ =gzHeap - adds r1, r1, r6 - ldrh r0, [r0, #4] - adds r0, r0, r6 - cmp r1, r4 - bhi _0801D940 - cmp r4, r0 - bls _0801D952 -_0801D940: - cmp r1, r3 - bhi _0801D910 - cmp r3, r0 - bhi _0801D910 - movs r5, #0 -_0801D94A: - lsls r0, r7, #2 - mov sl, r0 - cmp r5, #0 - bne _0801D9D8 -_0801D952: - movs r1, #0 - mov r8, r1 - lsls r6, r7, #2 - mov sl, r6 - b _0801D970 - .align 2, 0 -_0801D95C: .4byte gzHeap -_0801D960: - movs r5, #0 -_0801D962: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r8, r7 - bhs _0801D9D4 -_0801D970: - mov r1, r8 - lsls r0, r1, #2 - add r0, sb - ldrh r0, [r0, #2] - ldr r6, _0801D994 @ =gzHeap - adds r3, r0, r6 - mov r0, ip - subs r4, r3, r0 - movs r5, #0 - mov r0, sl - adds r0, #2 - add r0, sb - adds r0, #4 - cmp r4, r0 - blo _0801D962 - movs r5, #1 - movs r2, #0 - b _0801D9AE - .align 2, 0 -_0801D994: .4byte gzHeap -_0801D998: - cmp r1, r4 - bhi _0801D9A0 - cmp r3, r0 - bls _0801D960 -_0801D9A0: - cmp r4, r1 - bhi _0801D9A8 - cmp r0, r3 - bls _0801D960 -_0801D9A8: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_0801D9AE: - cmp r2, r7 - bhs _0801D9D0 - lsls r0, r2, #2 - add r0, sb - ldrh r1, [r0, #2] - adds r1, r1, r6 - ldrh r0, [r0, #4] - adds r0, r0, r6 - cmp r1, r4 - bhi _0801D9C6 - cmp r4, r0 - blo _0801D960 -_0801D9C6: - cmp r1, r3 - bhs _0801D998 - cmp r3, r0 - bhi _0801D998 - movs r5, #0 -_0801D9D0: - cmp r5, #0 - beq _0801D962 -_0801D9D4: - cmp r5, #0 - beq _0801DA00 -_0801D9D8: - ldr r0, _0801D9FC @ =gUnk_02035542 - mov r1, sl - adds r2, r1, r0 - subs r3, r0, #2 - subs r1, r4, r3 - strh r1, [r2] - adds r0, #2 - add r0, sl - add r1, ip - strh r1, [r0] - adds r0, r7, #1 - strh r0, [r3] - adds r0, r4, #0 - mov r1, ip - bl MemClear - adds r0, r4, #0 - b _0801DA02 - .align 2, 0 -_0801D9FC: .4byte gUnk_02035542 -_0801DA00: - movs r0, #0 -_0801DA02: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start zFree -zFree: @ 0x0801DA0C - push {r4, r5, lr} - ldr r3, _0801DA44 @ =gzHeap - subs r1, r0, r3 - ldr r0, _0801DA48 @ =0x00000FFF - cmp r1, r0 - bhi _0801DA74 - adds r4, r3, #0 - ldrh r5, [r4] - adds r4, #2 - movs r2, #0 - cmp r2, r5 - bhs _0801DA74 - ldrh r0, [r4] - cmp r0, r1 - bne _0801DA4C - lsls r0, r5, #2 - subs r1, r3, #2 - adds r0, r0, r1 - ldrh r1, [r0] - strh r1, [r4] - strh r2, [r0] - adds r0, #2 - ldrh r1, [r0] - strh r1, [r4, #2] - strh r2, [r0] - subs r0, r5, #1 - strh r0, [r3] - b _0801DA74 - .align 2, 0 -_0801DA44: .4byte gzHeap -_0801DA48: .4byte 0x00000FFF -_0801DA4C: - adds r4, #4 - adds r2, #1 - cmp r2, r5 - bhs _0801DA74 - ldrh r0, [r4] - cmp r0, r1 - bne _0801DA4C - lsls r1, r5, #2 - ldr r3, _0801DA78 @ =gUnk_0203553E - adds r1, r1, r3 - ldrh r0, [r1] - strh r0, [r4] - movs r2, #0 - strh r2, [r1] - adds r1, #2 - ldrh r0, [r1] - strh r0, [r4, #2] - strh r2, [r1] - subs r0, r5, #1 - strh r0, [r3, #2] -_0801DA74: - pop {r4, r5, pc} - .align 2, 0 -_0801DA78: .4byte gUnk_0203553E - - thumb_func_start zMallocInit -zMallocInit: @ 0x0801DA7C - push {lr} - ldr r0, _0801DA8C @ =gzHeap - movs r1, #0x80 - lsls r1, r1, #5 - bl MemClear - pop {pc} - .align 2, 0 -_0801DA8C: .4byte gzHeap - - thumb_func_start DispReset -DispReset: @ 0x0801DA90 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _0801DAEC @ =gMain - ldrb r0, [r1] - movs r3, #0 - movs r0, #1 - strb r0, [r1] - ldr r0, _0801DAF0 @ =gUnk_03003DE0 - strb r3, [r0] - ldr r0, _0801DAF4 @ =gFadeControl - strb r3, [r0] - ldr r5, _0801DAF8 @ =gScreen - adds r0, r5, #0 - adds r0, #0x6d - strb r3, [r0] - subs r0, #1 - strb r3, [r0] - ldr r1, _0801DAFC @ =0x040000B0 - ldrh r2, [r1, #0xa] - ldr r0, _0801DB00 @ =0x0000C5FF - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _0801DB04 @ =0x00007FFF - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - movs r0, #0x80 - lsls r0, r0, #0x13 - strh r3, [r0] - bl ClearOAM - bl sub_0801DB34 - ldr r0, _0801DB08 @ =0x0600C000 - movs r1, #0x20 - bl MemClear - ldr r0, _0801DB0C @ =gBG0Buffer - movs r1, #0x80 - lsls r1, r1, #4 - bl MemClear - strh r4, [r5, #0xe] - pop {r4, r5, pc} - .align 2, 0 -_0801DAEC: .4byte gMain -_0801DAF0: .4byte gUnk_03003DE0 -_0801DAF4: .4byte gFadeControl -_0801DAF8: .4byte gScreen -_0801DAFC: .4byte 0x040000B0 -_0801DB00: .4byte 0x0000C5FF -_0801DB04: .4byte 0x00007FFF -_0801DB08: .4byte 0x0600C000 -_0801DB0C: .4byte gBG0Buffer - - thumb_func_start ClearOAM -ClearOAM: @ 0x0801DB10 - push {r4, lr} - ldr r3, _0801DB30 @ =gUnk_03000020 - movs r1, #0xe0 - lsls r1, r1, #0x13 - movs r0, #0x80 - movs r4, #0xa8 - lsls r4, r4, #2 - adds r2, r4, #0 -_0801DB20: - strh r2, [r3] - adds r3, #8 - strh r2, [r1] - adds r1, #8 - subs r0, #1 - cmp r0, #0 - bne _0801DB20 - pop {r4, pc} - .align 2, 0 -_0801DB30: .4byte gUnk_03000020 - - thumb_func_start sub_0801DB34 -sub_0801DB34: @ 0x0801DB34 - push {r4, lr} - ldr r4, _0801DB6C @ =gScreen - adds r0, r4, #0 - movs r1, #0x7c - bl MemClear - ldr r0, _0801DB70 @ =gBG0Buffer - str r0, [r4, #0x10] - ldr r0, _0801DB74 @ =0x00001F0C - strh r0, [r4, #8] - ldr r0, _0801DB78 @ =gBG1Buffer - str r0, [r4, #0x1c] - ldr r0, _0801DB7C @ =0x00001C01 - strh r0, [r4, #0x14] - ldr r0, _0801DB80 @ =gBG2Buffer - str r0, [r4, #0x28] - ldr r0, _0801DB84 @ =0x00001D02 - strh r0, [r4, #0x20] - ldr r0, _0801DB88 @ =gBG3Buffer - str r0, [r4, #0x34] - ldr r0, _0801DB8C @ =0x00001E03 - strh r0, [r4, #0x2c] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r4] - ldr r0, _0801DB90 @ =0x0000FFFF - strh r0, [r4, #6] - pop {r4, pc} - .align 2, 0 -_0801DB6C: .4byte gScreen -_0801DB70: .4byte gBG0Buffer -_0801DB74: .4byte 0x00001F0C -_0801DB78: .4byte gBG1Buffer -_0801DB7C: .4byte 0x00001C01 -_0801DB80: .4byte gBG2Buffer -_0801DB84: .4byte 0x00001D02 -_0801DB88: .4byte gBG3Buffer -_0801DB8C: .4byte 0x00001E03 -_0801DB90: .4byte 0x0000FFFF - - thumb_func_start sub_0801DB94 -sub_0801DB94: @ 0x0801DB94 - ldr r0, _0801DB9C @ =gScreenTransition - ldrh r0, [r0, #0x1e] - lsrs r0, r0, #0xb - bx lr - .align 2, 0 -_0801DB9C: .4byte gScreenTransition - - thumb_func_start sub_0801DBA0 -sub_0801DBA0: @ 0x0801DBA0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - adds r1, r2, #0 - adds r0, r5, #0 - bl MemClear - movs r0, #1 - strb r0, [r5] - ldr r2, _0801DBE4 @ =gScreenTransition - ldrh r0, [r2, #0x1c] - lsrs r0, r0, #4 - movs r1, #0x7f - ands r0, r1 - strb r0, [r5, #1] - ldrh r0, [r2, #0x1e] - lsrs r0, r0, #4 - ands r0, r1 - strb r0, [r5, #2] - adds r5, #3 - ldr r1, _0801DBE8 @ =gUnk_080C9C50 - ldr r0, _0801DBEC @ =gArea - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r6, [r4] - b _0801DD3A - .align 2, 0 -_0801DBE4: .4byte gScreenTransition -_0801DBE8: .4byte gUnk_080C9C50 -_0801DBEC: .4byte gArea -_0801DBF0: - ldrb r0, [r6] - ldrb r1, [r6, #1] - movs r2, #3 - bl GetRoomProperty - adds r4, r0, #0 - cmp r4, #0 - bne _0801DC04 - adds r6, #8 - b _0801DD3A -_0801DC04: - adds r0, r6, #0 - bl sub_0801DF10 - mov r8, r0 - bl HasDungeonBigKey - movs r1, #8 - adds r1, r1, r6 - mov sb, r1 - cmp r0, #0 - beq _0801DCAE - ldrb r0, [r4] - cmp r0, #0 - beq _0801DCAE - movs r3, #0xfc - lsls r3, r3, #2 - ldr r7, _0801DC84 @ =0x000007FF -_0801DC26: - ldrb r0, [r4] - cmp r0, #3 - bgt _0801DCA6 - cmp r0, #2 - blt _0801DCA6 - ldrb r1, [r4, #1] - mov r0, r8 - str r3, [sp] - bl CheckLocalFlagByBank - ldr r3, [sp] - cmp r0, #0 - bne _0801DCA6 - ldr r0, _0801DC88 @ =gAreaRoomHeaders - ldrb r2, [r6] - lsls r2, r2, #2 - adds r2, r2, r0 - ldrb r1, [r6, #1] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, [r2] - adds r2, r1, r0 - movs r0, #2 - strb r0, [r5] - ldrb r0, [r4] - cmp r0, #2 - bne _0801DC8C - ldrh r0, [r4, #4] - lsls r0, r0, #4 - ands r0, r3 - movs r1, #8 - orrs r0, r1 - ldrh r1, [r2] - ands r1, r7 - adds r0, r0, r1 - asrs r0, r0, #4 - strb r0, [r5, #1] - ldrh r0, [r4, #4] - lsrs r0, r0, #2 - ands r0, r3 - movs r1, #8 - orrs r0, r1 - ldrh r1, [r2, #2] - ands r1, r7 - b _0801DC9E - .align 2, 0 -_0801DC84: .4byte 0x000007FF -_0801DC88: .4byte gAreaRoomHeaders -_0801DC8C: - ldrh r0, [r2] - ands r0, r7 - ldrh r1, [r4, #4] - adds r0, r0, r1 - asrs r0, r0, #4 - strb r0, [r5, #1] - ldrh r0, [r2, #2] - ands r0, r7 - ldrh r1, [r4, #6] -_0801DC9E: - adds r0, r0, r1 - asrs r0, r0, #4 - strb r0, [r5, #2] - adds r5, #3 -_0801DCA6: - adds r4, #8 - ldrb r0, [r4] - cmp r0, #0 - bne _0801DC26 -_0801DCAE: - bl HasDungeonBigKey - cmp r0, #0 - beq _0801DD16 - ldrb r1, [r6, #2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801DD16 - ldr r0, _0801DD4C @ =gArea - ldrb r0, [r0, #3] - adds r0, #1 - bl CheckGlobalFlag - cmp r0, #0 - bne _0801DD16 - ldr r0, _0801DD50 @ =gAreaRoomHeaders - ldrb r2, [r6] - lsls r2, r2, #2 - adds r2, r2, r0 - ldrb r1, [r6, #1] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, [r2] - adds r2, r1, r0 - movs r0, #4 - strb r0, [r5] - ldrh r0, [r2, #4] - lsrs r0, r0, #1 - ldrh r1, [r2] - adds r0, r0, r1 - asrs r1, r0, #4 - adds r0, r1, #0 - cmp r1, #0 - bge _0801DCF8 - adds r0, #0x7f -_0801DCF8: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - strb r0, [r5, #1] - ldrh r0, [r2, #6] - lsrs r0, r0, #1 - ldrh r2, [r2, #2] - adds r0, r0, r2 - asrs r1, r0, #4 - adds r0, r1, #0 - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - strb r0, [r5, #2] - adds r5, #3 -_0801DD16: - ldr r2, _0801DD54 @ =gScreenTransition - ldrh r0, [r6] - ldrh r1, [r2, #0x16] - cmp r0, r1 - bne _0801DD38 - movs r0, #3 - strb r0, [r5] - ldrh r0, [r2, #0x18] - lsrs r0, r0, #4 - movs r1, #0x7f - ands r0, r1 - strb r0, [r5, #1] - ldrh r0, [r2, #0x1a] - lsrs r0, r0, #4 - ands r0, r1 - strb r0, [r5, #2] - adds r5, #3 -_0801DD38: - mov r6, sb -_0801DD3A: - ldrb r0, [r6] - cmp r0, #0 - beq _0801DD42 - b _0801DBF0 -_0801DD42: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801DD4C: .4byte gArea -_0801DD50: .4byte gAreaRoomHeaders -_0801DD54: .4byte gScreenTransition - - thumb_func_start sub_0801DD58 -sub_0801DD58: @ 0x0801DD58 - ldr r2, _0801DD7C @ =gAreaRoomHeaders - lsls r0, r0, #2 - adds r0, r0, r2 - lsls r2, r1, #2 - adds r2, r2, r1 - lsls r2, r2, #1 - ldr r3, [r0] - adds r3, r3, r2 - ldr r0, _0801DD80 @ =gArea - ldr r1, _0801DD84 @ =0x0000085C - adds r0, r0, r1 - ldr r2, [r0] - ldrh r1, [r3] - strh r1, [r2, #4] - ldr r1, [r0] - ldrh r0, [r3, #2] - strh r0, [r1, #6] - bx lr - .align 2, 0 -_0801DD7C: .4byte gAreaRoomHeaders -_0801DD80: .4byte gArea -_0801DD84: .4byte 0x0000085C - - thumb_func_start LoadDungeonMap -LoadDungeonMap: @ 0x0801DD88 - push {lr} - ldr r0, _0801DD98 @ =gUnk_0201AEE0 - ldr r1, _0801DD9C @ =0x06006000 - movs r2, #0x80 - lsls r2, r2, #6 - bl LoadResourceAsync - pop {pc} - .align 2, 0 -_0801DD98: .4byte gUnk_0201AEE0 -_0801DD9C: .4byte 0x06006000 - - thumb_func_start sub_0801DDA0 -sub_0801DDA0: @ 0x0801DDA0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - adds r4, r0, #0 - bl CheckHasMap - cmp r0, #0 - bne _0801DDB8 - b _0801DEEA -_0801DDB8: - ldr r1, _0801DDD8 @ =gUnk_080C9C50 - ldr r0, _0801DDDC @ =gArea - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r4, [r0] - ldr r0, _0801DDE0 @ =gUnk_02019EE0 - movs r1, #0x80 - lsls r1, r1, #8 - bl MemClear - b _0801DEE2 - .align 2, 0 -_0801DDD8: .4byte gUnk_080C9C50 -_0801DDDC: .4byte gArea -_0801DDE0: .4byte gUnk_02019EE0 -_0801DDE4: - ldrb r0, [r4] - ldrb r1, [r4, #1] - movs r2, #3 - bl GetRoomProperty - adds r6, r0, #0 - adds r0, r4, #0 - bl sub_0801DF10 - adds r5, r0, #0 - movs r0, #0 - str r0, [sp, #0xc] - ldrh r2, [r4] - ldr r0, _0801DE14 @ =gUnk_02032EC0 - ldrh r3, [r0, #0x20] - ldr r1, _0801DE18 @ =0x0000FFFF - ands r1, r2 - ldr r0, _0801DE18 @ =0x0000FFFF - ands r0, r3 - cmp r1, r0 - bne _0801DE1C - movs r3, #8 - b _0801DE36 - .align 2, 0 -_0801DE14: .4byte gUnk_02032EC0 -_0801DE18: .4byte 0x0000FFFF -_0801DE1C: - bl HasDungeonSmallKey - cmp r0, #0 - beq _0801DE28 - movs r0, #2 - str r0, [sp, #0xc] -_0801DE28: - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0801DF90 - cmp r0, #0 - beq _0801DE38 - movs r3, #3 -_0801DE36: - str r3, [sp, #0xc] -_0801DE38: - ldrb r1, [r4, #2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801DE46 - movs r0, #0 - str r0, [sp, #0xc] -_0801DE46: - adds r3, r4, #0 - adds r3, #8 - str r3, [sp, #0x10] - ldr r0, [sp, #0xc] - cmp r0, #0 - beq _0801DEE0 - ldr r2, _0801DEF8 @ =0x040000D4 - ldr r0, [r4, #4] - ldr r1, _0801DEFC @ =gMapData - adds r0, r0, r1 - str r0, [r2] - ldr r0, _0801DF00 @ =gUnk_02019EE0 - str r0, [r2, #4] - ldr r0, _0801DF04 @ =0x84000100 - str r0, [r2, #8] - ldr r0, [r2, #8] - ldr r0, _0801DF08 @ =gAreaRoomHeaders - ldrb r2, [r4] - lsls r2, r2, #2 - adds r2, r2, r0 - ldrb r1, [r4, #1] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r2, [r2] - adds r2, r2, r0 - ldrh r0, [r2] - lsrs r0, r0, #4 - str r0, [sp] - ldrh r0, [r2, #2] - ldr r1, _0801DF0C @ =0x000007FF - ands r0, r1 - lsrs r0, r0, #4 - str r0, [sp, #4] - ldrh r0, [r2, #4] - lsrs r7, r0, #4 - ldrh r0, [r2, #6] - lsrs r0, r0, #4 - mov sl, r0 - adds r0, r7, #3 - lsrs r0, r0, #2 - str r0, [sp, #8] - movs r6, #0 - cmp r6, sl - bhs _0801DEE0 -_0801DEA0: - ldr r3, [sp, #8] - adds r1, r6, #0 - muls r1, r3, r1 - ldr r0, _0801DF00 @ =gUnk_02019EE0 - adds r1, r1, r0 - mov r8, r1 - movs r5, #0 - adds r0, r6, #1 - mov sb, r0 - cmp r5, r7 - bhs _0801DEDA -_0801DEB6: - ldr r3, [sp] - adds r4, r3, r5 - adds r0, r5, #0 - mov r1, r8 - bl sub_0801DF60 - ldr r1, [sp, #0xc] - bl sub_0801DF78 - adds r2, r0, #0 - adds r0, r4, #0 - ldr r3, [sp, #4] - adds r1, r3, r6 - bl sub_0801DF28 - adds r5, #1 - cmp r5, r7 - blo _0801DEB6 -_0801DEDA: - mov r6, sb - cmp r6, sl - blo _0801DEA0 -_0801DEE0: - ldr r4, [sp, #0x10] -_0801DEE2: - ldrb r0, [r4] - cmp r0, #0 - beq _0801DEEA - b _0801DDE4 -_0801DEEA: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801DEF8: .4byte 0x040000D4 -_0801DEFC: .4byte gMapData -_0801DF00: .4byte gUnk_02019EE0 -_0801DF04: .4byte 0x84000100 -_0801DF08: .4byte gAreaRoomHeaders -_0801DF0C: .4byte 0x000007FF - - thumb_func_start sub_0801DF10 -sub_0801DF10: @ 0x0801DF10 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #3] - cmp r0, #1 - bne _0801DF20 - movs r0, #0xc0 - lsls r0, r0, #2 - b _0801DF26 -_0801DF20: - ldrb r0, [r1] - bl GetFlagBankOffset -_0801DF26: - pop {pc} - - thumb_func_start sub_0801DF28 -sub_0801DF28: @ 0x0801DF28 - push {r4, lr} - lsrs r4, r1, #3 - lsls r4, r4, #4 - lsrs r3, r0, #3 - adds r4, r4, r3 - lsls r4, r4, #5 - ldr r3, _0801DF58 @ =gUnk_0201AEE0 - adds r4, r4, r3 - movs r3, #7 - ands r1, r3 - lsls r1, r1, #2 - adds r4, r4, r1 - ands r0, r3 - lsls r0, r0, #2 - lsls r2, r0 - ldr r1, _0801DF5C @ =gUnk_080C9460 - adds r0, r0, r1 - ldr r1, [r4] - ldr r0, [r0] - ands r1, r0 - orrs r1, r2 - str r1, [r4] - pop {r4, pc} - .align 2, 0 -_0801DF58: .4byte gUnk_0201AEE0 -_0801DF5C: .4byte gUnk_080C9460 - - thumb_func_start sub_0801DF60 -sub_0801DF60: @ 0x0801DF60 - adds r3, r0, #0 - lsrs r0, r3, #2 - adds r0, r0, r1 - ldrb r0, [r0] - movs r2, #3 - adds r1, r2, #0 - bics r1, r3 - lsls r1, r1, #1 - asrs r0, r1 - ands r0, r2 - bx lr - .align 2, 0 - - thumb_func_start sub_0801DF78 -sub_0801DF78: @ 0x0801DF78 - push {lr} - cmp r0, #2 - beq _0801DF88 - cmp r0, #2 - blo _0801DF8E - cmp r0, #3 - beq _0801DF8C - b _0801DF8E -_0801DF88: - adds r0, r1, #0 - b _0801DF8E -_0801DF8C: - movs r0, #7 -_0801DF8E: - pop {pc} - - thumb_func_start sub_0801DF90 -sub_0801DF90: @ 0x0801DF90 - push {lr} - adds r2, r1, #0 - cmp r0, #0 - bne _0801DFAA - b _0801DFB0 -_0801DF9A: - ldrb r1, [r0, #1] - adds r0, r2, #0 - bl CheckLocalFlagByBank - b _0801DFB2 -_0801DFA4: - cmp r1, #1 - beq _0801DF9A - adds r0, #8 -_0801DFAA: - ldrb r1, [r0] - cmp r1, #0 - bne _0801DFA4 -_0801DFB0: - movs r0, #0 -_0801DFB2: - pop {pc} - - thumb_func_start sub_0801DFB4 -sub_0801DFB4: @ 0x0801DFB4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - ldr r7, _0801E004 @ =gUnk_02022740 - adds r0, r7, #0 - movs r1, #0x10 - bl MemClear - strh r4, [r7, #6] - strh r5, [r7, #8] - strh r6, [r7, #0xa] - mov r0, r8 - str r0, [r7, #0xc] - ldr r0, _0801E008 @ =gUnk_03003DF0 - ldrb r0, [r0, #2] - strb r0, [r7, #3] - mov r1, r8 - cmp r1, #0 - beq _0801DFF8 - ldrb r1, [r1, #0x11] - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1c - strb r0, [r7, #4] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - mov r1, r8 - strb r0, [r1, #0x11] -_0801DFF8: - movs r0, #0 - strb r0, [r7] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801E004: .4byte gUnk_02022740 -_0801E008: .4byte gUnk_03003DF0 - - thumb_func_start sub_0801E00C -sub_0801E00C: @ 0x0801E00C - push {r4, lr} - ldr r1, _0801E024 @ =gUnk_080C9CAC - ldr r4, _0801E028 @ =gUnk_02022740 - ldrb r0, [r4, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldrb r0, [r4] - pop {r4, pc} - .align 2, 0 -_0801E024: .4byte gUnk_080C9CAC -_0801E028: .4byte gUnk_02022740 - - thumb_func_start sub_0801E02C -sub_0801E02C: @ 0x0801E02C - push {r4, lr} - ldr r4, _0801E040 @ =gUnk_02022740 - ldrh r0, [r4, #6] - bl sub_0801E0E0 - movs r0, #3 - strb r0, [r4] - movs r0, #1 - strb r0, [r4, #1] - pop {r4, pc} - .align 2, 0 -_0801E040: .4byte gUnk_02022740 - - thumb_func_start sub_0801E044 -sub_0801E044: @ 0x0801E044 - push {lr} - ldr r0, _0801E06C @ =gMessage - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0801E06A - movs r0, #4 - movs r1, #0 - bl MenuFadeIn - ldr r0, _0801E070 @ =gUnk_02022740 - movs r1, #4 - strb r1, [r0] - movs r1, #2 - strb r1, [r0, #1] - movs r0, #0x6b - bl SoundReq -_0801E06A: - pop {pc} - .align 2, 0 -_0801E06C: .4byte gMessage -_0801E070: .4byte gUnk_02022740 - - thumb_func_start sub_0801E074 -sub_0801E074: @ 0x0801E074 - push {lr} - ldr r0, _0801E084 @ =gUnk_02022740 - ldrb r1, [r0] - cmp r1, #5 - beq _0801E088 - cmp r1, #6 - beq _0801E08C - b _0801E098 - .align 2, 0 -_0801E084: .4byte gUnk_02022740 -_0801E088: - ldrh r0, [r0, #8] - b _0801E08E -_0801E08C: - ldrh r0, [r0, #0xa] -_0801E08E: - bl sub_0801E0E0 - ldr r1, _0801E09C @ =gUnk_02022740 - movs r0, #3 - strb r0, [r1, #1] -_0801E098: - pop {pc} - .align 2, 0 -_0801E09C: .4byte gUnk_02022740 - - thumb_func_start sub_0801E0A0 -sub_0801E0A0: @ 0x0801E0A0 - push {r4, lr} - ldr r0, _0801E0D8 @ =gMessage - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0801E0D4 - ldr r4, _0801E0DC @ =gUnk_02022740 - ldr r3, [r4, #0xc] - cmp r3, #0 - beq _0801E0C8 - ldrb r0, [r4, #4] - movs r1, #0xf - ands r1, r0 - ldrb r2, [r3, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x11] -_0801E0C8: - ldrb r0, [r4] - movs r1, #1 - cmp r0, #6 - bne _0801E0D2 - movs r1, #2 -_0801E0D2: - strb r1, [r4] -_0801E0D4: - pop {r4, pc} - .align 2, 0 -_0801E0D8: .4byte gMessage -_0801E0DC: .4byte gUnk_02022740 - - thumb_func_start sub_0801E0E0 -sub_0801E0E0: @ 0x0801E0E0 - push {lr} - adds r2, r0, #0 - cmp r2, #0 - beq _0801E102 - ldr r0, _0801E0F8 @ =gUnk_02022740 - ldr r1, [r0, #0xc] - cmp r1, #0 - beq _0801E0FC - adds r0, r2, #0 - bl MessageNoOverlap - b _0801E102 - .align 2, 0 -_0801E0F8: .4byte gUnk_02022740 -_0801E0FC: - adds r0, r2, #0 - bl MessageFromTarget -_0801E102: - pop {pc} - - thumb_func_start sub_0801E104 -sub_0801E104: @ 0x0801E104 - ldr r1, _0801E118 @ =gScreen - ldrh r2, [r1] - ldr r0, _0801E11C @ =0x00009FFF - ands r0, r2 - movs r2, #0 - strh r0, [r1] - adds r1, #0x6c - strb r2, [r1] - bx lr - .align 2, 0 -_0801E118: .4byte gScreen -_0801E11C: .4byte 0x00009FFF - - thumb_func_start sub_0801E120 -sub_0801E120: @ 0x0801E120 - ldr r3, _0801E14C @ =gScreen - ldrh r1, [r3] - movs r2, #0x80 - lsls r2, r2, #6 - adds r0, r2, #0 - movs r2, #0 - orrs r0, r1 - strh r0, [r3] - adds r1, r3, #0 - adds r1, #0x60 - ldr r0, _0801E150 @ =0x00003F37 - strh r0, [r1] - adds r1, #2 - movs r0, #0x3f - strh r0, [r1] - adds r0, r3, #0 - adds r0, #0x58 - strh r2, [r0] - subs r1, #6 - movs r0, #0xa0 - strh r0, [r1] - bx lr - .align 2, 0 -_0801E14C: .4byte gScreen -_0801E150: .4byte 0x00003F37 - - thumb_func_start sub_0801E154 -sub_0801E154: @ 0x0801E154 - push {lr} - movs r1, #0 - bl sub_0801E24C - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801E160 -sub_0801E160: @ 0x0801E160 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r6, r0, #0 - mov r8, r1 - mov sb, r2 - ldr r5, _0801E1A8 @ =gUnk_03003DE4 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r4, _0801E1AC @ =gUnk_02017AA0 - adds r0, r0, r4 - movs r1, #0xa0 - lsls r1, r1, #4 - bl MemClear - adds r0, r6, #0 - mov r1, r8 - mov r2, sb - bl sub_0801E290 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - adds r0, r0, r4 - ldr r1, _0801E1B0 @ =0x04000040 - ldr r2, _0801E1B4 @ =0xA2600001 - bl sub_0805622C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0801E1A8: .4byte gUnk_03003DE4 -_0801E1AC: .4byte gUnk_02017AA0 -_0801E1B0: .4byte 0x04000040 -_0801E1B4: .4byte 0xA2600001 - - thumb_func_start sub_0801E1B8 -sub_0801E1B8: @ 0x0801E1B8 - push {r4, lr} - ldr r2, _0801E1E8 @ =gScreen - mov ip, r2 - ldrh r3, [r2] - movs r4, #0x80 - lsls r4, r4, #6 - adds r2, r4, #0 - movs r4, #0 - orrs r2, r3 - mov r3, ip - strh r2, [r3] - mov r2, ip - adds r2, #0x60 - strh r0, [r2] - mov r0, ip - adds r0, #0x62 - strh r1, [r0] - subs r0, #0xa - strh r4, [r0] - mov r1, ip - adds r1, #0x5c - movs r0, #0xa0 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_0801E1E8: .4byte gScreen - - thumb_func_start sub_0801E1EC -sub_0801E1EC: @ 0x0801E1EC - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - mov r8, r0 - mov sb, r1 - adds r4, r2, #0 - ldr r6, _0801E23C @ =gUnk_03003DE4 - ldrb r1, [r6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r5, _0801E240 @ =gUnk_02017AA0 - adds r0, r0, r5 - movs r1, #0xa0 - lsls r1, r1, #4 - bl MemClear - adds r0, r4, #0 - movs r1, #0 - bl sub_0801E24C - mov r0, r8 - mov r1, sb - adds r2, r4, #0 - bl sub_0801E290 - ldrb r1, [r6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - adds r0, r0, r5 - ldr r1, _0801E244 @ =0x04000040 - ldr r2, _0801E248 @ =0xA2600001 - bl sub_0805622C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0801E23C: .4byte gUnk_03003DE4 -_0801E240: .4byte gUnk_02017AA0 -_0801E244: .4byte 0x04000040 -_0801E248: .4byte 0xA2600001 - - thumb_func_start sub_0801E24C -sub_0801E24C: @ 0x0801E24C - push {r4, r5, lr} - lsls r1, r1, #1 - ldr r2, _0801E278 @ =gUnk_02018EE0 - adds r5, r1, r2 - movs r3, #0 - adds r2, r0, #0 - lsls r4, r2, #1 - movs r0, #3 - subs r1, r0, r4 - cmp r3, r2 - bgt _0801E28E - adds r4, r4, r5 -_0801E264: - lsls r0, r3, #1 - adds r0, r0, r5 - strh r2, [r0] - strh r3, [r4] - cmp r1, #0 - bge _0801E27C - adds r1, #6 - lsls r0, r3, #2 - adds r1, r1, r0 - b _0801E288 - .align 2, 0 -_0801E278: .4byte gUnk_02018EE0 -_0801E27C: - adds r1, #0xa - subs r0, r3, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - subs r4, #2 - subs r2, #1 -_0801E288: - adds r3, #1 - cmp r3, r2 - ble _0801E264 -_0801E28E: - pop {r4, r5, pc} - - thumb_func_start sub_0801E290 -sub_0801E290: @ 0x0801E290 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov ip, r0 - adds r6, r2, #0 - ldr r0, _0801E2BC @ =gUnk_03003DE4 - ldrb r0, [r0] - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #9 - lsls r0, r1, #1 - ldr r3, _0801E2C0 @ =gUnk_02017AA0 - adds r0, r0, r3 - adds r2, r2, r0 - adds r4, r2, #0 - adds r5, r1, #0 - mov sb, r5 - ldr r0, _0801E2C4 @ =gUnk_02018EE0 - mov r8, r0 - b _0801E30A - .align 2, 0 -_0801E2BC: .4byte gUnk_03003DE4 -_0801E2C0: .4byte gUnk_02017AA0 -_0801E2C4: .4byte gUnk_02018EE0 -_0801E2C8: - mov r1, r8 - movs r3, #0 - ldrsh r0, [r1, r3] - movs r7, #2 - add r8, r7 - mov r3, ip - subs r1, r3, r0 - adds r3, r3, r0 - cmp r1, #0 - bge _0801E2DE - movs r1, #0 -_0801E2DE: - cmp r3, #0xef - ble _0801E2E4 - movs r3, #0xf0 -_0801E2E4: - mov r7, sb - lsls r0, r7, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x9f - bhi _0801E2F2 - strb r3, [r4] - strb r1, [r4, #1] -_0801E2F2: - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x9f - bhi _0801E2FE - strb r3, [r2] - strb r1, [r2, #1] -_0801E2FE: - subs r4, #2 - adds r2, #2 - movs r0, #1 - rsbs r0, r0, #0 - add sb, r0 - adds r5, #1 -_0801E30A: - adds r0, r6, #0 - subs r6, #1 - cmp r0, #0 - bne _0801E2C8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0801E31C -sub_0801E31C: @ 0x0801E31C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - str r0, [sp] - str r1, [sp, #4] - mov sl, r2 - mov sb, r3 - ldr r0, _0801E3AC @ =gUnk_03003DE4 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _0801E3B0 @ =gUnk_02017AA0 - adds r0, r0, r1 - movs r1, #0xa0 - lsls r1, r1, #4 - bl MemClear - cmp sl, sb - bge _0801E3DC - movs r6, #0 - mov r8, sl - mov r7, r8 - mov r0, r8 - lsls r1, r0, #1 - movs r0, #3 - subs r5, r0, r1 - cmp r6, r8 - ble _0801E35E - b _0801E45E -_0801E35E: - mov r1, r8 - lsls r0, r1, #2 - ldr r4, _0801E3B4 @ =gUnk_02018EE0 - adds r0, r0, r4 - str r0, [sp, #0x10] - mov r1, sb - mov r0, r8 - muls r0, r1, r0 - str r0, [sp, #0x14] - movs r3, #0 -_0801E372: - adds r0, r3, #0 - mov r1, sl - str r3, [sp, #0x18] - bl Div - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - str r4, [sp, #0x1c] - ldr r0, [sp, #0x14] - mov r1, sl - bl Div - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r6, #2 - ldr r4, _0801E3B4 @ =gUnk_02018EE0 - adds r1, r2, r4 - str r0, [r1] - ldr r0, [sp, #0x1c] - ldr r1, [sp, #0x10] - str r0, [r1] - ldr r3, [sp, #0x18] - cmp r5, #0 - bge _0801E3B8 - adds r0, r5, #6 - adds r5, r0, r2 - b _0801E3D2 - .align 2, 0 -_0801E3AC: .4byte gUnk_03003DE4 -_0801E3B0: .4byte gUnk_02017AA0 -_0801E3B4: .4byte gUnk_02018EE0 -_0801E3B8: - adds r1, r5, #0 - adds r1, #0xa - subs r0, r6, r7 - lsls r0, r0, #2 - adds r5, r1, r0 - ldr r4, [sp, #0x10] - subs r4, #4 - str r4, [sp, #0x10] - ldr r0, [sp, #0x14] - mov r1, sb - subs r0, r0, r1 - str r0, [sp, #0x14] - subs r7, #1 -_0801E3D2: - add r3, sb - adds r6, #1 - cmp r6, r7 - ble _0801E372 - b _0801E45E -_0801E3DC: - movs r6, #0 - mov r8, sb - mov r7, r8 - mov r4, r8 - lsls r1, r4, #1 - movs r0, #3 - subs r5, r0, r1 - cmp r6, r8 - bgt _0801E45E - lsls r0, r4, #2 - ldr r1, _0801E438 @ =gUnk_02018EE0 - adds r0, r0, r1 - str r0, [sp, #8] - mov r0, sl - mov r4, r8 - muls r4, r0, r4 - str r4, [sp, #0xc] - movs r3, #0 -_0801E400: - adds r0, r3, #0 - mov r1, sb - str r3, [sp, #0x18] - bl Div - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - str r4, [sp, #0x1c] - ldr r0, [sp, #0xc] - mov r1, sb - bl Div - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r6, #2 - ldr r4, _0801E438 @ =gUnk_02018EE0 - adds r1, r2, r4 - str r0, [r1] - ldr r0, [sp, #0x1c] - ldr r1, [sp, #8] - str r0, [r1] - ldr r3, [sp, #0x18] - cmp r5, #0 - bge _0801E43C - adds r0, r5, #6 - adds r5, r0, r2 - b _0801E456 - .align 2, 0 -_0801E438: .4byte gUnk_02018EE0 -_0801E43C: - adds r1, r5, #0 - adds r1, #0xa - subs r0, r6, r7 - lsls r0, r0, #2 - adds r5, r1, r0 - ldr r4, [sp, #8] - subs r4, #4 - str r4, [sp, #8] - ldr r0, [sp, #0xc] - mov r1, sl - subs r0, r0, r1 - str r0, [sp, #0xc] - subs r7, #1 -_0801E456: - add r3, sl - adds r6, #1 - cmp r6, r7 - ble _0801E400 -_0801E45E: - ldr r0, [sp] - ldr r1, [sp, #4] - mov r2, r8 - bl sub_0801E290 - ldr r0, _0801E48C @ =gUnk_03003DE4 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _0801E490 @ =gUnk_02017AA0 - adds r0, r0, r1 - ldr r1, _0801E494 @ =0x04000040 - ldr r2, _0801E498 @ =0xA2600001 - bl sub_0805622C - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801E48C: .4byte gUnk_03003DE4 -_0801E490: .4byte gUnk_02017AA0 -_0801E494: .4byte 0x04000040 -_0801E498: .4byte 0xA2600001 - - thumb_func_start sub_0801E49C -sub_0801E49C: @ 0x0801E49C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov r8, r0 - str r1, [sp, #4] - mov sb, r2 - adds r5, r3, #0 - ldr r0, _0801E5E4 @ =0x0000FFFF - movs r2, #0xf0 - lsls r2, r2, #3 - ldr r1, _0801E5E8 @ =gUnk_02018EE0 - bl MemFill16 - adds r3, r5, #0 - subs r3, #0x40 - movs r2, #0xff - ands r3, r2 - ldr r1, _0801E5EC @ =gSineTable - adds r0, r3, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r4, #0 - ldrsh r0, [r0, r4] - mov r4, sb - muls r4, r0, r4 - adds r0, r4, #0 - asrs r0, r0, #8 - mov r4, r8 - adds r7, r4, r0 - lsls r0, r3, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - mov r4, sb - muls r4, r0, r4 - adds r0, r4, #0 - asrs r0, r0, #8 - ldr r3, [sp, #4] - adds r3, r3, r0 - mov sl, r3 - adds r3, r5, #0 - adds r3, #0x68 - ands r3, r2 - adds r0, r3, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r4, #0 - ldrsh r0, [r0, r4] - mov r4, sb - muls r4, r0, r4 - adds r0, r4, #0 - asrs r0, r0, #8 - mov r4, r8 - adds r6, r4, r0 - lsls r0, r3, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - mov r4, sb - muls r4, r0, r4 - adds r0, r4, #0 - asrs r0, r0, #8 - ldr r3, [sp, #4] - adds r4, r3, r0 - adds r3, r5, #0 - subs r3, #0xe8 - ands r3, r2 - adds r0, r3, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - asrs r0, r0, #8 - mov r2, r8 - adds r5, r2, r0 - lsls r0, r3, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - asrs r0, r0, #8 - ldr r2, [sp, #4] - adds r2, r2, r0 - mov r8, r2 - movs r0, #0 - str r0, [sp] - adds r0, r7, #0 - mov r1, sl - adds r2, r6, #0 - adds r3, r4, #0 - bl sub_0801E64C - movs r0, #1 - str r0, [sp] - adds r0, r7, #0 - mov r1, sl - adds r2, r5, #0 - mov r3, r8 - bl sub_0801E64C - movs r0, #2 - str r0, [sp] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - mov r3, r8 - bl sub_0801E64C - ldr r5, _0801E5F0 @ =gUnk_03003DE4 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r6, _0801E5F4 @ =gUnk_02017AA0 - adds r0, r0, r6 - movs r1, #0xa0 - lsls r1, r1, #4 - bl MemClear - ldr r2, _0801E5E8 @ =gUnk_02018EE0 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - adds r1, r0, r6 - movs r3, #0xa0 - mov sl, r3 -_0801E5B0: - ldr r7, [r2] - ldr r6, [r2, #4] - ldr r5, [r2, #8] - adds r2, #0xc - cmp r7, r6 - ble _0801E5C2 - adds r4, r7, #0 - adds r7, r6, #0 - adds r6, r4, #0 -_0801E5C2: - cmp r7, r5 - ble _0801E5CC - adds r4, r7, #0 - adds r7, r5, #0 - adds r5, r4, #0 -_0801E5CC: - cmp r6, r5 - ble _0801E5D6 - adds r4, r6, #0 - adds r6, r5, #0 - adds r5, r4, #0 -_0801E5D6: - movs r0, #1 - rsbs r0, r0, #0 - cmp r7, r0 - beq _0801E5F8 - strb r5, [r1] - strb r7, [r1, #1] - b _0801E60A - .align 2, 0 -_0801E5E4: .4byte 0x0000FFFF -_0801E5E8: .4byte gUnk_02018EE0 -_0801E5EC: .4byte gSineTable -_0801E5F0: .4byte gUnk_03003DE4 -_0801E5F4: .4byte gUnk_02017AA0 -_0801E5F8: - cmp r6, r7 - beq _0801E602 - strb r5, [r1] - strb r6, [r1, #1] - b _0801E60A -_0801E602: - cmp r5, r7 - beq _0801E60A - strb r7, [r1, #1] - strb r7, [r1] -_0801E60A: - movs r4, #1 - rsbs r4, r4, #0 - add sl, r4 - adds r1, #2 - mov r0, sl - cmp r0, #0 - bgt _0801E5B0 - ldr r0, _0801E63C @ =gUnk_03003DE4 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _0801E640 @ =gUnk_02017AA0 - adds r0, r0, r1 - ldr r1, _0801E644 @ =0x04000040 - ldr r2, _0801E648 @ =0xA2600001 - bl sub_0805622C - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801E63C: .4byte gUnk_03003DE4 -_0801E640: .4byte gUnk_02017AA0 -_0801E644: .4byte 0x04000040 -_0801E648: .4byte 0xA2600001 - - thumb_func_start sub_0801E64C -sub_0801E64C: @ 0x0801E64C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r3, #0 - ldr r7, _0801E6C4 @ =gUnk_02018EE0 - cmp r4, #0 - bge _0801E65E - cmp r6, #0 - blt _0801E6C2 -_0801E65E: - cmp r4, #0x9f - ble _0801E666 - cmp r6, #0x9f - bgt _0801E6C2 -_0801E666: - cmp r4, r6 - ble _0801E676 - adds r1, r4, #0 - adds r4, r6, #0 - adds r6, r1, #0 - adds r1, r5, #0 - adds r5, r2, #0 - adds r2, r1, #0 -_0801E676: - cmp r4, r6 - beq _0801E6C2 - subs r0, r2, r5 - lsls r0, r0, #0x10 - subs r1, r6, r4 - bl Div - adds r3, r0, #0 - cmp r4, #0 - bge _0801E694 - rsbs r0, r4, #0 - muls r0, r3, r0 - asrs r0, r0, #0x10 - adds r5, r5, r0 - movs r4, #0 -_0801E694: - cmp r6, #0x9f - ble _0801E69A - movs r6, #0x9f -_0801E69A: - lsls r2, r5, #0x10 - lsls r0, r4, #1 - adds r0, r0, r4 - ldr r1, [sp, #0x14] - adds r0, r0, r1 - lsls r0, r0, #2 - adds r7, r0, r7 -_0801E6A8: - cmp r5, #0 - bge _0801E6AE - movs r5, #0 -_0801E6AE: - cmp r5, #0xf0 - ble _0801E6B4 - movs r5, #0xf0 -_0801E6B4: - str r5, [r7] - adds r2, r2, r3 - asrs r5, r2, #0x10 - adds r4, #1 - adds r7, #0xc - cmp r4, r6 - ble _0801E6A8 -_0801E6C2: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801E6C4: .4byte gUnk_02018EE0 - - thumb_func_start sub_0801E6C8 -sub_0801E6C8: @ 0x0801E6C8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - subs r0, r4, #1 - cmp r0, #0x63 - bhi _0801E722 - movs r1, #0 - ldr r5, _0801E724 @ =gUnk_02022740 - ldr r3, _0801E728 @ =gUnk_02002C01 - movs r2, #0xf1 -_0801E6DA: - adds r0, r1, r3 - ldrb r6, [r0] - cmp r4, r6 - bne _0801E6E4 - strb r2, [r0] -_0801E6E4: - adds r1, #1 - cmp r1, #0x7f - bls _0801E6DA - ldr r0, [r5, #0xc] - bl sub_08002632 - adds r1, r0, #0 - subs r0, r1, #1 - cmp r0, #0x7e - bhi _0801E70A - ldr r0, _0801E72C @ =gSave - ldr r2, _0801E730 @ =0x000001C1 - adds r0, r0, r2 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0xf1 - bne _0801E70A - movs r0, #0xf2 - strb r0, [r1] -_0801E70A: - movs r1, #0 - ldr r0, _0801E734 @ =gUnk_03003DF0 - movs r2, #0xf1 - adds r0, #0xb -_0801E712: - ldrb r3, [r0] - cmp r4, r3 - bne _0801E71A - strb r2, [r0] -_0801E71A: - adds r0, #0xc - adds r1, #1 - cmp r1, #0x1f - bls _0801E712 -_0801E722: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801E724: .4byte gUnk_02022740 -_0801E728: .4byte gUnk_02002C01 -_0801E72C: .4byte gSave -_0801E730: .4byte 0x000001C1 -_0801E734: .4byte gUnk_03003DF0 - - thumb_func_start sub_0801E738 -sub_0801E738: @ 0x0801E738 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E82C - adds r0, r4, #0 - subs r0, #0x65 - cmp r0, #0x10 - bhi _0801E790 - adds r0, r4, #0 - bl sub_0801E8B0 - adds r1, r0, #0 - cmp r1, #0 - bge _0801E76E - movs r1, #0 - ldr r0, _0801E794 @ =gSave - movs r3, #0x8c - lsls r3, r3, #1 - adds r2, r0, r3 - ldrb r0, [r2] - cmp r0, #0 - beq _0801E76E -_0801E764: - adds r1, #1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _0801E764 -_0801E76E: - cmp r1, #0x11 - bhi _0801E790 - ldr r2, _0801E794 @ =gSave - movs r3, #0x8c - lsls r3, r3, #1 - adds r0, r2, r3 - adds r0, r1, r0 - strb r4, [r0] - adds r3, #0x13 - adds r0, r2, r3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - cmp r0, #0x63 - ble _0801E78E - movs r0, #0x63 -_0801E78E: - strb r0, [r1] -_0801E790: - pop {r4, pc} - .align 2, 0 -_0801E794: .4byte gSave - - thumb_func_start sub_0801E798 -sub_0801E798: @ 0x0801E798 - push {r4, lr} - bl sub_0801E8B0 - adds r1, r0, #0 - cmp r1, #0 - blt _0801E7C4 - ldr r2, _0801E7C8 @ =gSave - ldr r3, _0801E7CC @ =0x0000012B - adds r0, r2, r3 - adds r3, r1, r0 - ldrb r0, [r3] - subs r0, #1 - cmp r0, #0 - bgt _0801E7C2 - movs r4, #0x8c - lsls r4, r4, #1 - adds r0, r2, r4 - adds r0, r1, r0 - movs r1, #0 - strb r1, [r0] - movs r0, #0 -_0801E7C2: - strb r0, [r3] -_0801E7C4: - pop {r4, pc} - .align 2, 0 -_0801E7C8: .4byte gSave -_0801E7CC: .4byte 0x0000012B - - thumb_func_start sub_0801E7D0 -sub_0801E7D0: @ 0x0801E7D0 - push {lr} - bl sub_0801E8B0 - adds r1, r0, #0 - cmp r1, #0 - blt _0801E7F0 - ldr r0, _0801E7E8 @ =gSave - ldr r2, _0801E7EC @ =0x0000012B - adds r0, r0, r2 - adds r0, r1, r0 - ldrb r0, [r0] - b _0801E7F2 - .align 2, 0 -_0801E7E8: .4byte gSave -_0801E7EC: .4byte 0x0000012B -_0801E7F0: - movs r0, #0 -_0801E7F2: - pop {pc} - - thumb_func_start CheckKinstoneFused -CheckKinstoneFused: @ 0x0801E7F4 - push {lr} - adds r1, r0, #0 - subs r0, r1, #1 - cmp r0, #0x63 - bhi _0801E80C - ldr r0, _0801E808 @ =gUnk_02002C81 - bl ReadBit - b _0801E80E - .align 2, 0 -_0801E808: .4byte gUnk_02002C81 -_0801E80C: - movs r0, #0 -_0801E80E: - pop {pc} - - thumb_func_start sub_0801E810 -sub_0801E810: @ 0x0801E810 - push {lr} - adds r1, r0, #0 - subs r0, r1, #1 - cmp r0, #0x63 - bhi _0801E828 - ldr r0, _0801E824 @ =gUnk_02002C8E - bl ReadBit - b _0801E82A - .align 2, 0 -_0801E824: .4byte gUnk_02002C8E -_0801E828: - movs r0, #0 -_0801E82A: - pop {pc} - - thumb_func_start sub_0801E82C -sub_0801E82C: @ 0x0801E82C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r1, _0801E8AC @ =gUnk_02002B54 - movs r5, #0 - adds r2, r1, #4 -_0801E83C: - ldrb r0, [r2, #0x13] - adds r3, r1, #4 - mov sl, r3 - cmp r0, #0 - bne _0801E848 - strb r0, [r2] -_0801E848: - adds r2, #1 - adds r5, #1 - cmp r5, #0x12 - bls _0801E83C - movs r0, #0 - strb r0, [r1, #0x16] - adds r2, r1, #0 - adds r2, #0x29 - strb r0, [r2] - movs r5, #0 - movs r0, #0x17 - adds r0, r0, r1 - mov sb, r0 - movs r3, #0x18 - adds r3, r3, r1 - mov r8, r3 - adds r7, r1, #4 - adds r6, r1, #5 -_0801E86C: - mov r1, sl - adds r0, r1, r5 - ldrb r0, [r0] - subs r0, #0x65 - cmp r0, #0x10 - bls _0801E890 - movs r4, #0x12 - subs r4, r4, r5 - adds r0, r6, #0 - adds r1, r7, #0 - adds r2, r4, #0 - bl MemCopy - mov r0, r8 - mov r1, sb - adds r2, r4, #0 - bl MemCopy -_0801E890: - movs r3, #1 - add sb, r3 - add r8, r3 - adds r7, #1 - adds r6, #1 - adds r5, #1 - cmp r5, #0x11 - bls _0801E86C - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801E8AC: .4byte gUnk_02002B54 - - thumb_func_start sub_0801E8B0 -sub_0801E8B0: @ 0x0801E8B0 - push {lr} - adds r2, r0, #0 - movs r1, #0 - ldr r3, _0801E8C4 @ =gUnk_02002B58 -_0801E8B8: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bne _0801E8C8 - adds r0, r1, #0 - b _0801E8D2 - .align 2, 0 -_0801E8C4: .4byte gUnk_02002B58 -_0801E8C8: - adds r1, #1 - cmp r1, #0x11 - bls _0801E8B8 - movs r0, #1 - rsbs r0, r0, #0 -_0801E8D2: - pop {pc} - - thumb_func_start sub_0801E8D4 -sub_0801E8D4: @ 0x0801E8D4 -.ifdef DEMO_JP - push {r4, r5, lr} - movs r5, #0xa -_0801E914: - adds r0, r5, #0 - bl CheckKinstoneFused - cmp r0, #0 - beq _0801E9C4 - adds r0, r5, #0 - bl sub_0801E810 - cmp r0, #0 - bne _0801E9C4 - ldr r1, _0801E94C @ =0x080C9500 - lsls r0, r5, #3 - adds r0, r0, r1 - ldrb r1, [r0, #4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0801E950 @ =0x080FDB04 - adds r2, r0, r1 - ldrh r3, [r2, #0x12] - ldrb r0, [r2, #0x10] - cmp r0, #9 - bhi _0801E9B0 - lsls r0, r0, #2 - ldr r1, _0801E954 @ =_0801E958 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801E94C: .4byte 0x080C9500 -_0801E950: .4byte 0x080FDB04 -_0801E954: .4byte _0801E958 -_0801E958: @ jump table - .4byte _0801E980 @ case 0 - .4byte _0801E984 @ case 1 - .4byte _0801E988 @ case 2 - .4byte _0801E98C @ case 3 - .4byte _0801E990 @ case 4 - .4byte _0801E994 @ case 5 - .4byte _0801E99A @ case 6 - .4byte _0801E9A0 @ case 7 - .4byte _0801E9A6 @ case 8 - .4byte _0801E9AC @ case 9 -_0801E980: - movs r4, #0 - b _0801E9B0 -_0801E984: - ldrb r4, [r2, #0x11] - b _0801E9B0 -_0801E988: - movs r4, #0xf - b _0801E9B0 -_0801E98C: - movs r4, #0x10 - b _0801E9B0 -_0801E990: - movs r4, #0x11 - b _0801E9B0 -_0801E994: - movs r4, #4 - movs r3, #0x83 - b _0801E9B0 -_0801E99A: - movs r4, #4 - movs r3, #0x84 - b _0801E9B0 -_0801E9A0: - movs r4, #4 - movs r3, #0x87 - b _0801E9B0 -_0801E9A6: - movs r4, #4 - movs r3, #0x88 - b _0801E9B0 -_0801E9AC: - movs r4, #4 - movs r3, #0x8b -_0801E9B0: - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_0807CB24 - cmp r0, #0 - beq _0801E9C4 - ldr r0, _0801E9CC @ =gUnk_02002C8E - adds r1, r5, #0 - bl WriteBit -_0801E9C4: - adds r5, #1 - cmp r5, #0x64 - bls _0801E914 - pop {r4, r5, pc} - .align 2, 0 -_0801E9CC: .4byte gUnk_02002C8E - -.else -.ifdef JP - push {r4, r5, lr} - movs r4, #0xa -_0801E8BC: - adds r0, r4, #0 - bl CheckKinstoneFused - cmp r0, #0 - beq _0801E93A - adds r0, r4, #0 - bl sub_0801E810 - cmp r0, #0 - bne _0801E93A - ldr r1, _0801E8F4 @ =gUnk_080FC3E4 - lsls r0, r4, #3 - adds r0, r0, r1 - ldrb r1, [r0, #4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0801E8F8 @ =gUnk_080FE320 - adds r2, r0, r1 - ldrb r0, [r2, #0x10] - cmp r0, #4 - bhi _0801E926 - lsls r0, r0, #2 - ldr r1, _0801E8FC @ =_0801E900 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801E8F4: .4byte gUnk_080C9CBC -_0801E8F8: .4byte gUnk_080FE320 -_0801E8FC: .4byte _0801E900 -_0801E900: @ jump table - .4byte _0801E914 @ case 0 - .4byte _0801E918 @ case 1 - .4byte _0801E91C @ case 2 - .4byte _0801E920 @ case 3 - .4byte _0801E924 @ case 4 -_0801E914: - movs r5, #0 - b _0801E926 -_0801E918: - ldrb r5, [r2, #0x11] - b _0801E926 -_0801E91C: - movs r5, #0xf - b _0801E926 -_0801E920: - movs r5, #0x10 - b _0801E926 -_0801E924: - movs r5, #0x11 -_0801E926: - ldrh r1, [r2, #0x12] - adds r0, r5, #0 - bl sub_0807CB24 - cmp r0, #0 - beq _0801E93A - ldr r0, _0801E944 @ =0x02002C8E - adds r1, r4, #0 - bl WriteBit -_0801E93A: - adds r4, #1 - cmp r4, #0x64 - bls _0801E8BC - pop {r4, r5, pc} - .align 2, 0 -_0801E944: .4byte 0x02002C8E -.else -.ifdef EU - push {r4, r5, lr} - movs r4, #0xa -_0801E910: - adds r0, r4, #0 - bl CheckKinstoneFused - cmp r0, #0 - beq _0801E98E - adds r0, r4, #0 - bl sub_0801E810 - cmp r0, #0 - bne _0801E98E - ldr r1, _0801E948 @ =gUnk_080C9CBC - lsls r0, r4, #3 - adds r0, r0, r1 - ldrb r1, [r0, #4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0801E94C @ =gUnk_080FE320 - adds r2, r0, r1 - ldrb r0, [r2, #0x10] - cmp r0, #4 - bhi _0801E97A - lsls r0, r0, #2 - ldr r1, _0801E950 @ =_0801E954 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801E948: .4byte gUnk_080C9CBC -_0801E94C: .4byte gUnk_080FE320 -_0801E950: .4byte _0801E954 -_0801E954: @ jump table - .4byte _0801E968 @ case 0 - .4byte _0801E96C @ case 1 - .4byte _0801E970 @ case 2 - .4byte _0801E974 @ case 3 - .4byte _0801E978 @ case 4 -_0801E968: - movs r5, #0 - b _0801E97A -_0801E96C: - ldrb r5, [r2, #0x11] - b _0801E97A -_0801E970: - movs r5, #0xf - b _0801E97A -_0801E974: - movs r5, #0x10 - b _0801E97A -_0801E978: - movs r5, #0x11 -_0801E97A: - ldrh r1, [r2, #0x12] - adds r0, r5, #0 - bl sub_0807CB24 - cmp r0, #0 - beq _0801E98E - ldr r0, _0801E998 @ =gUnk_02002C8E - adds r1, r4, #0 - bl WriteBit -_0801E98E: - adds r4, #1 - cmp r4, #0x64 - bls _0801E910 - pop {r4, r5, pc} - .align 2, 0 -_0801E998: .4byte gUnk_02002C8E - -.else - push {r4, r5, lr} - movs r5, #0xa -_0801E8D8: - adds r0, r5, #0 - bl CheckKinstoneFused - cmp r0, #0 - beq _0801E990 - adds r0, r5, #0 - bl sub_0801E810 - cmp r0, #0 - bne _0801E990 - ldr r1, _0801E910 @ =gUnk_080C9CBC - lsls r0, r5, #3 - adds r0, r0, r1 - ldrb r1, [r0, #4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0801E914 @ =gUnk_080FE320 - adds r2, r0, r1 - ldrh r3, [r2, #0x12] - ldrb r0, [r2, #0x10] - cmp r0, #0xa - bhi _0801E97C - lsls r0, r0, #2 - ldr r1, _0801E918 @ =_0801E91C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801E910: .4byte gUnk_080C9CBC -_0801E914: .4byte gUnk_080FE320 -_0801E918: .4byte _0801E91C -_0801E91C: @ jump table - .4byte _0801E948 @ case 0 - .4byte _0801E94C @ case 1 - .4byte _0801E950 @ case 2 - .4byte _0801E954 @ case 3 - .4byte _0801E958 @ case 4 - .4byte _0801E95C @ case 5 - .4byte _0801E962 @ case 6 - .4byte _0801E968 @ case 7 - .4byte _0801E96E @ case 8 - .4byte _0801E972 @ case 9 - .4byte _0801E978 @ case 10 -_0801E948: - movs r4, #0 - b _0801E97C -_0801E94C: - ldrb r4, [r2, #0x11] - b _0801E97C -_0801E950: - movs r4, #0xf - b _0801E97C -_0801E954: - movs r4, #0x10 - b _0801E97C -_0801E958: - movs r4, #0x11 - b _0801E97C -_0801E95C: - movs r4, #4 - movs r3, #0x83 - b _0801E97C -_0801E962: - movs r4, #4 - movs r3, #0x84 - b _0801E97C -_0801E968: - movs r4, #4 - movs r3, #0x87 - b _0801E97C -_0801E96E: - movs r4, #4 - b _0801E97A -_0801E972: - movs r4, #4 - movs r3, #0x8b - b _0801E97C -_0801E978: - movs r4, #5 -_0801E97A: - movs r3, #0x88 -_0801E97C: - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_0807CB24 - cmp r0, #0 - beq _0801E990 - ldr r0, _0801E998 @ =gUnk_02002C8E - adds r1, r5, #0 - bl WriteBit -_0801E990: - adds r5, #1 - cmp r5, #0x64 - bls _0801E8D8 - pop {r4, r5, pc} - .align 2, 0 -_0801E998: .4byte gUnk_02002C8E -.endif -.endif -.endif - - thumb_func_start sub_0801E99C -sub_0801E99C: @ 0x0801E99C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl sub_08002632 - mov r8, r0 - ldr r1, _0801E9E4 @ =gUnk_08001DCC - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r7, [r0] - movs r0, #0x67 - bl GetInventoryValue - cmp r0, #0 - beq _0801EA56 - ldr r1, _0801E9E8 @ =gSave - ldrb r0, [r7] - ldrb r2, [r1, #8] - cmp r0, r2 - bhi _0801EA56 - ldr r2, _0801E9EC @ =0x000001C1 - adds r0, r1, r2 - add r0, r8 - ldrb r5, [r0] - subs r2, #0x80 - adds r0, r1, r2 - add r0, r8 - ldrb r6, [r0] - adds r4, r6, r7 -_0801E9D6: - cmp r5, #0xf1 - beq _0801E9F6 - cmp r5, #0xf1 - bhi _0801E9F0 - cmp r5, #0 - beq _0801E9F6 - b _0801EA10 - .align 2, 0 -_0801E9E4: .4byte gUnk_08001DCC -_0801E9E8: .4byte gSave -_0801E9EC: .4byte 0x000001C1 -_0801E9F0: - cmp r5, #0xf2 - beq _0801EA0A - b _0801EA10 -_0801E9F6: - ldrb r5, [r4, #5] - cmp r5, #0 - beq _0801EA10 - cmp r5, #0xff - beq _0801EA14 - adds r0, r5, #0 - bl CheckKinstoneFused - cmp r0, #0 - beq _0801EA10 -_0801EA0A: - adds r4, #1 - adds r6, #1 - ldrb r5, [r4, #5] -_0801EA10: - cmp r5, #0xff - bne _0801EA1C -_0801EA14: - adds r0, r7, #0 - bl sub_0801EA74 - adds r5, r0, #0 -_0801EA1C: - cmp r5, #0 - beq _0801EA32 - cmp r5, #0xf2 - beq _0801E9D6 - adds r0, r5, #0 - bl CheckKinstoneFused - cmp r0, #0 - beq _0801EA34 - movs r5, #0xf1 - b _0801E9D6 -_0801EA32: - movs r5, #0xf3 -_0801EA34: - ldr r1, _0801EA5C @ =gSave - ldr r2, _0801EA60 @ =0x000001C1 - adds r0, r1, r2 - add r0, r8 - strb r5, [r0] - subs r2, #0x80 - adds r0, r1, r2 - add r0, r8 - strb r6, [r0] - bl Random - ldrb r4, [r7, #1] - movs r1, #0x64 - bl __modsi3 - cmp r4, r0 - bhi _0801EA64 -_0801EA56: - movs r0, #0 - b _0801EA6E - .align 2, 0 -_0801EA5C: .4byte gSave -_0801EA60: .4byte 0x000001C1 -_0801EA64: - subs r0, r5, #1 - cmp r0, #0x63 - bls _0801EA6C - movs r5, #0 -_0801EA6C: - adds r0, r5, #0 -_0801EA6E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0801EA74 -sub_0801EA74: @ 0x0801EA74 - push {r4, r5, r6, lr} - bl Random - movs r1, #0x12 - bl __modsi3 - adds r5, r0, #0 - movs r6, #0 -_0801EA84: - ldr r0, _0801EA98 @ =gUnk_080CA11C - adds r0, r5, r0 - ldrb r4, [r0] - adds r0, r4, #0 - bl CheckKinstoneFused - cmp r0, #0 - bne _0801EA9C - adds r0, r4, #0 - b _0801EAAE - .align 2, 0 -_0801EA98: .4byte gUnk_080CA11C -_0801EA9C: - adds r0, r5, #1 - movs r1, #0x12 - bl __modsi3 - adds r5, r0, #0 - adds r6, #1 - cmp r6, #0x11 - bls _0801EA84 - movs r0, #0xf2 -_0801EAAE: - pop {r4, r5, r6, pc} diff --git a/include/asm.h b/include/asm.h index fa0476ba..f250ebb1 100644 --- a/include/asm.h +++ b/include/asm.h @@ -3,8 +3,6 @@ #include "global.h" -struct Entity_; - extern u32 Random(void); extern void sub_08000152(u32, u32, u32); extern u32 GetTileTypeByEntity(struct Entity_*); diff --git a/include/color.h b/include/color.h new file mode 100644 index 00000000..14ab24a9 --- /dev/null +++ b/include/color.h @@ -0,0 +1,21 @@ +#ifndef COLOR_H +#define COLOR_H + +#include "global.h" + +typedef struct { + u8 _0; + u8 _1; + u16 _2; +} Palette; +extern Palette gPaletteList[]; + +void sub_0801CFA8(u32 a1); +void sub_0801D000(u32 a1); +void LoadObjPalette(struct Entity_*, u32); +void UnloadOBJPalette(struct Entity_* entity); +void sub_0801D244(u32); +void sub_0801D28C(struct Entity_* entity, u32 palette); +void ChangeObjPalette(struct Entity_* entity, u32 palette); + +#endif // COLOR_H diff --git a/include/utils.h b/include/common.h similarity index 87% rename from include/utils.h rename to include/common.h index 8cb3e8d1..a971ed21 100644 --- a/include/utils.h +++ b/include/common.h @@ -1,5 +1,5 @@ -#ifndef UTILS_H -#define UTILS_H +#ifndef COMMON_H +#define COMMON_H #include "global.h" @@ -13,6 +13,11 @@ typedef struct { extern Input gInput; +void LoadPalettes(const u8*, s32, s32); +void LoadPaletteGroup(u32 group); +void SetColor(u32 colorIndex, u32 color); +void SetFillColor(u32 color, u32 arg1); + /** * Fill memory with 16 bit value. */ @@ -38,11 +43,6 @@ void MemCopy(const void* src, void* dest, u32 size); */ void ReadKeyInput(void); -void LoadPalettes(const u8*, s32, s32); -void LoadPaletteGroup(u32 group); -void SetColor(u32 colorIndex, u32 color); -void SetFillColor(u32 color, u32 arg1); - /** * Allocate memory on heap. * @@ -66,10 +66,12 @@ void zFree(void* ptr); /** * Reset All display hardware registers. * - * @param updateHUD bool32 Request refresh of HUD layer (bg 0) + * @param refresh bool32 Request refresh of HUD layer (bg 0) */ -void DispReset(bool32 updateHUD); +void DispReset(bool32 refresh); u32 CheckPlayerProximity(u32, u32, u32, u32); -#endif +void sub_0801E1EC(u32, u32, u32); + +#endif // COMMON_H diff --git a/include/enemy.h b/include/enemy.h index 5905ce5b..b2f4b628 100644 --- a/include/enemy.h +++ b/include/enemy.h @@ -7,7 +7,7 @@ #include "sound.h" #include "effects.h" #include "flags.h" -#include "utils.h" +#include "common.h" #include "entity.h" diff --git a/include/entity.h b/include/entity.h index 4f163a72..7eb38aa2 100644 --- a/include/entity.h +++ b/include/entity.h @@ -3,6 +3,7 @@ #define ENTITY_H #include "global.h" +#include "color.h" #include "sprite.h" #define MAX_ENTITIES 71 diff --git a/include/flags.h b/include/flags.h index 1d3080ae..10224374 100644 --- a/include/flags.h +++ b/include/flags.h @@ -25,10 +25,10 @@ void SetLocalFlag(u32); void SetLocalFlagByBank(u32, u32); void SetRoomFlag(u32); -extern u32 ReadBit(u32*, u32); -extern u32 CheckBits(u32*, u32, u32); -extern void WriteBit(u32*, u32); -extern void ClearBit(u32*, u32); +extern u32 ReadBit(void*, u32); +extern u32 CheckBits(void*, u32, u32); +extern u32 WriteBit(void*, u32); +extern u32 ClearBit(void*, u32); extern u32 gGlobalFlags; extern u32 gRoomFlags; diff --git a/include/functions.h b/include/functions.h index a271ad64..09cc5981 100644 --- a/include/functions.h +++ b/include/functions.h @@ -44,7 +44,6 @@ extern void sub_0805EC9C(); extern void sub_0805EC60(Entity*); extern void sub_0806D0B0(Entity*); extern void sub_0806D02C(Entity*); -extern void ChangeObjPalette(Entity*, u32); extern void sub_0806FD3C(Entity*); extern void sub_0805ED14(u32*); extern void sub_080A7C18(u32, u32, u32); @@ -101,10 +100,8 @@ extern void sub_0804ED18(); extern void sub_080AF2E4(void); extern void sub_0804F578(void); extern void sub_08059994(void); -extern s32 sub_0801CFA8(u32); extern void sub_080ADA14(u32, u32); // trampoline to sub_080B27F4 extern void sub_0801E1B8(u32, u32); -extern void sub_0801E1EC(s32, s32, s32); extern void sub_080A3B74(void); extern void sub_080A4054(void); extern void sub_0801C1D4(void); @@ -169,7 +166,7 @@ extern void sub_0806F62C(Entity*, u32, u32); extern void sub_080A1ED0(u32, u32, u32); extern u32 sub_0806F5B0(u32); extern void sub_0801DFB4(Entity*, u32, u32, u32); -extern void sub_0801E00C(); +extern u32 sub_0801E00C(void); extern void sub_08078790(Entity*, u32); extern void sub_080788E0(Entity*); extern void sub_08078B48(void); @@ -200,6 +197,4 @@ extern void sub_080042D0(Entity*, u32, u16); extern u32 sub_080002A8(u32, u32, u32); extern void sub_080806BC(u32, u32, u32, u32); -extern void LoadObjPalette(Entity*, u32); - #endif diff --git a/include/global.h b/include/global.h index e7eddd31..512a903d 100644 --- a/include/global.h +++ b/include/global.h @@ -101,4 +101,7 @@ union SplitHWord { #define FORCE_WORD_ALIGNED __attribute__((packed, aligned(2))) +/* forward decls */ +struct Entity_; + #endif // GUARD_GLOBAL_H diff --git a/include/kinstone.h b/include/kinstone.h new file mode 100644 index 00000000..8760673d --- /dev/null +++ b/include/kinstone.h @@ -0,0 +1,28 @@ +#ifndef KINSTONE_H +#define KINSTONE_H + +#include "global.h" + +typedef struct { + u8 unk[4]; + u32 unk2; + u32 unk4; +} Unk_struct; +extern Unk_struct gUnk_03003DF0[]; + +typedef struct { + u8 _0; + u8 action; + u8 _2; + u8 _3; + u8 _4; + u8 _5; + u16 _6; + u16 _8; + u16 _a; + Entity* ent; +} FuseInfo; +static_assert(sizeof(FuseInfo) == 0x10); +extern FuseInfo gFuseInfo; + +#endif // KINSTONE_H diff --git a/include/main.h b/include/main.h index d18e54c0..eda7676c 100644 --- a/include/main.h +++ b/include/main.h @@ -78,6 +78,8 @@ void InitScreen(u32 screen); void InitDMA(void); +void sub_0805622C(void* a1, u32 a2, u32 a3); + extern void sub_08056208(void); extern void ResetPalettes(void); diff --git a/include/npc.h b/include/npc.h index 3e049fb0..3ad4beff 100644 --- a/include/npc.h +++ b/include/npc.h @@ -3,7 +3,7 @@ #include "global.h" #include "asm.h" -#include "utils.h" +#include "common.h" #include "sound.h" #include "effects.h" diff --git a/include/object.h b/include/object.h index 84f9c02c..d4792ecf 100644 --- a/include/object.h +++ b/include/object.h @@ -3,7 +3,7 @@ #include "global.h" #include "asm.h" -#include "utils.h" +#include "common.h" #include "sound.h" #include "flags.h" diff --git a/include/room.h b/include/room.h index 59c6e094..fb2e8398 100644 --- a/include/room.h +++ b/include/room.h @@ -124,8 +124,8 @@ typedef struct { u8 dungeon_room; s16 dungeon_x; s16 dungeon_y; - s16 dungeon_map_x; - s16 dungeon_map_y; + u16 dungeon_map_x; + u16 dungeon_map_y; s16 overworld_map_x; s16 overworld_map_y; u8 field_0x24[0x8]; diff --git a/include/save.h b/include/save.h index 5df71806..9dbba7ff 100644 --- a/include/save.h +++ b/include/save.h @@ -41,9 +41,13 @@ typedef struct { /*0x086*/ u8 filler86[0x2]; /*0x088*/ PlayerWorldStatus saved_status; /*0x0A8*/ Stats stats; - /*0x0D0*/ u8 fillerD0[0x71]; + /*0x0D0*/ u8 fillerD0[0x48]; + /*0x118*/ u8 unk118[0x13]; + /*0x12B*/ u8 unk12B[0x16]; /*0x141*/ u8 unk141[128]; - /*0x1C1*/ u8 unk1C1[155]; + /*0x1C1*/ u8 unk1C1[128]; + /*0x241*/ u8 unk241[13]; + /*0x24E*/ u8 unk24E[14]; /*0x25C*/ u8 flags[0x200]; /*0x45C*/ u8 unk45C[0x10]; /*0x46C*/ u8 unk46C[0x20]; diff --git a/include/screen.h b/include/screen.h index f308f19d..95a2f5bf 100644 --- a/include/screen.h +++ b/include/screen.h @@ -65,7 +65,7 @@ typedef struct { /*0x38*/ BgControls controls; /*0x6c*/ u8 _6c; /*0x6d*/ u8 _6d; - /*0x70*/ u32 _70; + /*0x70*/ void* _70; /*0x74*/ u32 _74; /*0x78*/ u32 _78; } Screen; diff --git a/include/structures.h b/include/structures.h index 014b0abe..1f368dcd 100644 --- a/include/structures.h +++ b/include/structures.h @@ -135,7 +135,6 @@ typedef struct { } PriorityHandler; extern PriorityHandler gPriorityHandler; -extern u8 gUnk_02022740[]; extern u8 gUnk_02034490[]; typedef struct { diff --git a/linker.ld b/linker.ld index 75806d71..289b08d9 100644 --- a/linker.ld +++ b/linker.ld @@ -79,7 +79,7 @@ SECTIONS { . = 0x00022030; gUnk_02022030 = .; . = 0x00022130; gUnk_02022130 = .; . = 0x00022730; gUnk_02022730 = .; - . = 0x00022740; gUnk_02022740 = .; + . = 0x00022740; gFuseInfo = .; . = 0x00022750; gPlayerScriptExecutionContext = .; . = 0x00022780; gTextRender = .; . = 0x000227DC; gUnk_020227DC = .; @@ -315,9 +315,8 @@ SECTIONS { src/playerItem/playerItemCellOverwriteSet.o(.text); asm/ui.o(.text); src/ui.o(.text); - asm/code_0801CEC0.o(.text); /* utils.c */ - src/utils.o(.text); - asm/utils.o(.text); + src/color.o(.text); + src/common.o(.text); /* enemies */ src/enemy/octorok.o(.text); src/enemy/chuchu.o(.text); diff --git a/src/code_0805436C.c b/src/code_0805436C.c index d0df011a..eade294e 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -3,7 +3,7 @@ #include "room.h" #include "menu.h" #include "area.h" -#include "utils.h" +#include "common.h" #include "save.h" #include "item.h" diff --git a/src/code_08078778.c b/src/code_08078778.c index 32e422ff..643cd7bc 100644 --- a/src/code_08078778.c +++ b/src/code_08078778.c @@ -1,14 +1,7 @@ #include "global.h" #include "entity.h" #include "functions.h" - -typedef struct { - u8 unk[4]; - u32 unk2; - u32 unk4; -} Unk_struct; - -extern Unk_struct gUnk_03003DF0[]; +#include "kinstone.h" void sub_08078778(Entity* ent) { sub_0807887C(ent, 1, 0); diff --git a/src/collision.c b/src/collision.c index d39cb4a2..44f53719 100644 --- a/src/collision.c +++ b/src/collision.c @@ -3,7 +3,7 @@ #include "entity.h" #include "player.h" #include "save.h" -#include "utils.h" +#include "common.h" #include "functions.h" #include "enemy.h" #include "object.h" diff --git a/src/color.c b/src/color.c new file mode 100644 index 00000000..8a69184a --- /dev/null +++ b/src/color.c @@ -0,0 +1,84 @@ +#include "global.h" +#include "entity.h" +#include "common.h" +#include "color.h" + +void LoadObjPaletteAtIndex(u32 a1, u32 a2); + +static void sub_0801CFD0(u32 a1); + +void sub_0801CFA8(u32 a1) { + u32 i; + + MemClear(gPaletteList, 0x40); + for (i = 0; i < 6; ++i) { + sub_0801CFD0(i); + } + sub_0801D000(a1); +} + +void sub_0801CFD0(u32 a1) { + Palette* p = &gPaletteList[a1]; + p->_0 = ((s8)p->_0 & ~0xf) | 4; + p->_0 = (p->_0 & 0xf) | 0x10; + p->_1 = 0x80; + p->_2 = 0xFFFF; +} + +ASM_FUNC("asm/non_matching/color/sub_0801D000.inc", void sub_0801D000(u32 a1)); + +ASM_FUNC("asm/non_matching/color/LoadObjPalette.inc", void LoadObjPalette(Entity* entity, u32 a2)); + +ASM_FUNC("asm/non_matching/color/FindPalette.inc", s32 FindPalette(u32 a1)); + +ASM_FUNC("asm/non_matching/color/FindFreeObjPalette.inc", u32 FindFreeObjPalette(u32 a1)); + +ASM_FUNC("asm/non_matching/color/SetEntityObjPalette.inc", void SetEntityObjPalette(Entity* entity, u32 palette)); + +void UnloadOBJPalette(Entity* entity) { + u8* p = &entity->spriteAnimation[1]; + u32 idx = *p; + *p = 0; + sub_0801D244(idx); +} + +ASM_FUNC("asm/non_matching/color/sub_0801D244.inc", void sub_0801D244(u32 a1)); + +void sub_0801D28C(Entity* entity, u32 palette) { + u32 c = entity->spriteAnimation[1]; + Palette* list = gPaletteList; + Palette* p = &list[c]; + u32 lo = (u32)(p->_0 << 0x1C) >> 0x1C; + + if (lo == 3) { + p->_2 = palette; + LoadObjPaletteAtIndex(palette, c); + } +} + +void ChangeObjPalette(Entity* entity, u32 a2) { + UnloadOBJPalette(entity); + LoadObjPalette(entity, a2); +} + +ASM_FUNC("asm/non_matching/color/LoadObjPaletteAtIndex.inc", void LoadObjPaletteAtIndex(u32 a1, u32 a2)); + +ASM_FUNC("asm/non_matching/color/CleanUpObjPalettes.inc", void CleanUpObjPalettes(void)); + +u32 sub_0801D458(u32 a1) { + u32 i; + for (i = a1; i < 16; i++) { + s32 tmp = ((u32)gPaletteList[i]._0 << 28) >> 28; + switch (tmp) { + case 0: + case 1: + case 4: + continue; + default: + return i; + } + } + return 0; +} + +ASM_FUNC("asm/non_matching/color/sub_0801D48C.inc", void sub_0801D48C(u32 a1, u32 a2)); diff --git a/src/common.c b/src/common.c new file mode 100644 index 00000000..2a8fef53 --- /dev/null +++ b/src/common.c @@ -0,0 +1,681 @@ +#include "global.h" +#include "asm.h" +#include "common.h" +#include "structures.h" +#include "screen.h" +#include "main.h" +#include "area.h" +#include "room.h" +#include "fileScreen.h" +#include "game.h" +#include "flags.h" +#include "kinstone.h" +#include "functions.h" +#include "message.h" + +typedef struct { + u8 _0; + u8 _1; + u8 _2; + u8 _3; +} DungeonLayout; + +extern u8 gUnk_03003DE0; +extern u8 gzHeap[0x1000]; +extern u8 gUnk_0201AEE0[0x2000]; +extern u8 gUnk_080CA11C[]; + +extern void (*gUnk_080C9CAC[])(void); + +static void StoreKeyInput(Input* input, u32 keyInput); +void ClearOAM(void); +void ResetScreenRegs(void); +void sub_0801E0E0(u32); +void sub_0801E24C(u32, u32); +void sub_0801E290(u32, u32, u32); +s32 sub_0801E8B0(u32); + +extern u32 sub_0807CB24(u32, u32); + +typedef struct { + u16 paletteId; + u8 destPaletteNum; + u8 numPalettes; +} PaletteGroup; + +typedef struct { + union { + int raw; + struct { + u8 filler0[0x3]; + u8 unk3; + } bytes; + } unk0; + u32 dest; + u32 unk8; +} GfxItem; + +typedef struct { + u8 filler[0xA00]; +} struct_02017AA0; +extern struct_02017AA0 gUnk_02017AA0[]; +extern u8 gUnk_03003DE4; + +typedef struct { + u8 _0[4]; + u8 evt_type; + u8 _5[3]; +} struct_080C9CBC; +extern struct_080C9CBC gUnk_080C9CBC[]; + +typedef struct { + u8 evt_type; + u8 entity_idx; + u8 _2[6]; + u16 x; + u16 y; + u8 _c[4]; + u8 _10; + u8 _11; + u16 flag; +} struct_080FE320; +extern struct_080FE320 gUnk_080FE320[]; + +extern const PaletteGroup* gPaletteGroups[]; +extern const u8 gGlobalGfxAndPalettes[]; +extern u32 gUsedPalettes; +extern u16 gPaletteBuffer[]; +extern const GfxItem* gGfxGroups[]; + +u32 DecToHex(u32 value) { + u32 result; + register u32 r1 asm("r1"); + + if (value >= 100000000) { + return 0x99999999; + } + + result = Div(value, 10000000) * 0x10000000; + result += Div(r1, 1000000) * 0x1000000; + result += Div(r1, 100000) * 0x100000; + result += Div(r1, 10000) * 0x10000; + result += Div(r1, 1000) * 0x1000; + result += Div(r1, 100) * 0x100; + result += Div(r1, 10) * 0x10; + return result + r1; +} + +u32 ReadBit(void* src, u32 bit) { + return (*((u8*)src + bit / 8) >> (bit % 8)) & 1; +} + +NONMATCH("asm/non_matching/common/WriteBit.inc", u32 WriteBit(void* src, u32 bit)) { + u8* b; + u32 mask; + u32 orig; + + b = (u8*)(bit / 8 + (u32)src); + mask = 1 << (bit % 8); + orig = *b; + *b |= mask; + orig &= mask; + return orig; +} +END_NONMATCH + +NONMATCH("asm/non_matching/common/ClearBit.inc", u32 ClearBit(void* src, u32 bit)) { + u8* b; + u32 mask; + u32 orig; + + b = (u8*)(bit / 8 + (u32)src); + mask = 1 << (bit % 8); + orig = *b; + *b &= ~mask; + orig &= mask; + return orig; +} +END_NONMATCH + +void MemFill16(u32 value, void* dest, u32 size) { + DmaFill16(3, value, dest, size); +} + +void MemFill32(u32 value, void* dest, u32 size) { + DmaFill32(3, value, dest, size); +} + +void MemClear(void* dest, u32 size) { + u32 zero = 0; + + // alignment check + switch (((uintptr_t)dest | size) % 4) { + case 0: + MemFill32(0, dest, size); + break; + case 2: + MemFill16(0, dest, size); + break; + default: + do { + *(u8*)dest = zero; + dest++; + size--; + } while (size != 0); + } +} + +void MemCopy(const void* src, void* dest, u32 size) { + switch (((uintptr_t)src | (uintptr_t)dest | size) % 4) { + case 0: + DmaCopy32(3, src, dest, size); + break; + case 2: + DmaCopy16(3, src, dest, size); + break; + default: + do { + *(u8*)dest = *(u8*)src; + src++; + dest++; + } while (--size); + } +} + +void ReadKeyInput(void) { + u32 keyInput = ~REG_KEYINPUT & KEYS_MASK; + StoreKeyInput(&gInput, keyInput); +} + +static void StoreKeyInput(Input* input, u32 keyInput) { + u32 heldKeys = input->heldKeys; + u32 difference = keyInput & ~heldKeys; + input->newKeys = difference; + if (keyInput == heldKeys) { + if (--input->unk7 == 0) { + input->unk7 = 4; + input->unk4 = keyInput; + } else { + input->unk4 = 0; + } + } else { + input->unk7 = 20; + input->unk4 = difference; + } + input->heldKeys = keyInput; +} + +void LoadPaletteGroup(u32 group) { + const PaletteGroup* paletteGroup = gPaletteGroups[group]; + while (1) { + u32 destPaletteNum = paletteGroup->destPaletteNum; + u32 numPalettes = paletteGroup->numPalettes & 0xF; + if (numPalettes == 0) { + numPalettes = 16; + } + LoadPalettes(&gGlobalGfxAndPalettes[paletteGroup->paletteId * 32], destPaletteNum, numPalettes); + if ((paletteGroup->numPalettes & 0x80) == 0) { + break; + } + paletteGroup++; + } +} + +void LoadPalettes(const u8* src, s32 destPaletteNum, s32 numPalettes) { + u16* dest; + u32 size = numPalettes * 32; + u32 usedPalettesMask = 1 << destPaletteNum; + while (--numPalettes > 0) { + usedPalettesMask |= (usedPalettesMask << 1); + } + gUsedPalettes |= usedPalettesMask; + dest = &gPaletteBuffer[destPaletteNum * 16]; + DmaCopy32(3, src, dest, size); +} + +void SetColor(u32 colorIndex, u32 color) { + gPaletteBuffer[colorIndex] = color; + gUsedPalettes |= 1 << (colorIndex / 16); +} + +void SetFillColor(u32 color, u32 disable_layers) { + if (disable_layers) { + gScreen.lcd.displayControlMask = ~(DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON); + } else { + gScreen.lcd.displayControlMask = ~0; + } + SetColor(0, color); +} + +void LoadGfxGroup(u32 group) { + u32 terminator; + u32 dmaCtrl; + int gfxOffset; + const u8* src; + u32 dest; + int size; + const GfxItem* gfxItem = gGfxGroups[group]; + while (1) { + u32 loadGfx = FALSE; + u32 ctrl = gfxItem->unk0.bytes.unk3; + ctrl &= 0xF; + switch (ctrl) { + case 0x7: + loadGfx = TRUE; + break; + case 0xD: + return; + case 0xE: + if (gSaveHeader->gameLanguage != 0 && gSaveHeader->gameLanguage != 1) { + loadGfx = TRUE; + } + break; + case 0xF: + if (gSaveHeader->gameLanguage != 0) { + loadGfx = TRUE; + } + break; + default: + if (ctrl == gSaveHeader->gameLanguage) { + loadGfx = TRUE; + } + break; + } + + if (loadGfx) { + gfxOffset = gfxItem->unk0.raw & 0xFFFFFF; + src = &gGlobalGfxAndPalettes[gfxOffset]; + dest = gfxItem->dest; + size = gfxItem->unk8; + dmaCtrl = 0x80000000; + if (size < 0) { + if (dest >= VRAM) { + LZ77UnCompVram(src, (void*)dest); + } else { + LZ77UnCompWram(src, (void*)dest); + } + } else { + DmaSet(3, src, dest, dmaCtrl | ((u32)size >> 1)); + } + } + + terminator = gfxItem->unk0.bytes.unk3; + terminator &= 0x80; + gfxItem++; + if (!terminator) { + break; + } + } +} + +// regalloc +NONMATCH("asm/non_matching/common/sub_0801D898.inc", void sub_0801D898(void* dest, void* src, u32 word, u32 size)) { + u32 v6; + u32 i; + + if (size & 0x8000) + v6 = 0x40; + else + v6 = 0x20; + + i = size & ~0x8000; + do { + DmaSet(3, src, dest, word | 0x80000000) src += word * 2; + dest += v6 * 2; + } while (--i); +} +END_NONMATCH + +ASM_FUNC("asm/non_matching/common/zMalloc.inc", void* zMalloc(u32 size)); + +ASM_FUNC("asm/non_matching/common/zFree.inc", void zFree(void* ptr)); + +void zMallocInit(void) { + MemClear(gzHeap, sizeof(gzHeap)); +} + +void DispReset(bool32 refresh) { + gMain.interruptFlag = 1; + gUnk_03003DE0 = 0; + gFadeControl.active = 0; + gScreen._6d = 0; + gScreen._6c = 0; + DmaStop(0); + REG_DISPCNT = 0; + ClearOAM(); + ResetScreenRegs(); + MemClear((void*)0x600C000, 0x20); + MemClear(gBG0Buffer, 0x800); + gScreen.bg0.updated = refresh; +} + +void ClearOAM(void) { + u8* d = (u8*)gUnk_03000000.oam; + u8* mem = (u8*)0x07000000; + u32 i; + for (i = 128; i != 0; --i) { + *(u16*)d = 0x2A0; + d += 8; + *(u16*)mem = 0x2A0; + mem += 8; + } +} + +void ResetScreenRegs(void) { + MemClear(&gScreen, sizeof(gScreen)); + gScreen.bg0.tilemap = &gBG0Buffer; + gScreen.bg0.control = 0x1F0C; + gScreen.bg1.tilemap = &gBG1Buffer; + gScreen.bg1.control = 0x1C01; + gScreen.bg2.tilemap = &gBG2Buffer; + gScreen.bg2.control = 0x1D02; + gScreen.bg3.tilemap = &gBG3Buffer; + gScreen.bg3.control = 0x1E03; + gScreen.lcd.displayControl = 0x140; + gScreen.lcd.displayControlMask = 0xffff; +} + +u32 sub_0801DB94(void) { + return gScreenTransition.player_status.dungeon_map_y >> 11; +} + +ASM_FUNC("asm/non_matching/common/DrawDungeonMap.inc", void DrawDungeonMap(u32 floor, struct_02019EE0* data, u32 size)); + +void sub_0801DD58(u32 area, u32 room) { + RoomHeader* hdr = gAreaRoomHeaders[area] + room; + gArea.pCurrentRoomInfo->map_x = hdr->map_x; + gArea.pCurrentRoomInfo->map_y = hdr->map_y; +} + +void LoadDungeonMap(void) { + LoadResourceAsync(gUnk_0201AEE0, 0x6006000, sizeof(gUnk_0201AEE0)); +} + +ASM_FUNC("asm/non_matching/common/DrawDungeonFeatures.inc", void DrawDungeonFeatures(u32 room, void* data, u32 size)); + +u32 sub_0801DF10(DungeonLayout* lyt) { + u32 offset; + + if (lyt->_3 == 1) + offset = 0x300; + else + offset = GetFlagBankOffset(lyt->_0); + return offset; +} + +ASM_FUNC("asm/non_matching/common/sub_0801DF28.inc", void sub_0801DF28(u32 a1, u32 a2, u32 a3)); + +u32 sub_0801DF60(u32 a1, u8* p) { + return (p[a1 >> 2] >> (2 * (~a1 & 3))) & 3; +} + +u32 sub_0801DF78(u32 a1, u32 a2) { + switch (a1) { + case 0: + case 1: + default: + return a1; + case 2: + return a2; + case 3: + return 7; + } +} + +u32 sub_0801DF90(u8* a1, u32 a2) { + if (a1 == NULL) + return 0; + + for (; *a1 != 0; a1 += 8) { + if (*a1 == 1) + return CheckLocalFlagByBank(a2, a1[1]); + } + return 0; +} + +void sub_0801DFB4(Entity* entity, u32 a2, u32 a3, u32 a4) { + MemClear(&gFuseInfo, sizeof(gFuseInfo)); + gFuseInfo._6 = a2; + gFuseInfo._8 = a3; + gFuseInfo._a = a4; + gFuseInfo.ent = entity; + gFuseInfo._3 = gUnk_03003DF0[0].unk[2]; + if (entity != NULL) { + gFuseInfo._4 = entity->updatePriority; + entity->updatePriority = 2; + } + gFuseInfo._0 = 0; +} + +u32 sub_0801E00C(void) { + gUnk_080C9CAC[gFuseInfo.action](); + return gFuseInfo._0; +} + +void sub_0801E02C(void) { + sub_0801E0E0(gFuseInfo._6); + gFuseInfo._0 = 3; + gFuseInfo.action = 1; +} + +void sub_0801E044(void) { + if ((gMessage.doTextBox & 0x7F) == 0) { + MenuFadeIn(4, 0); + gFuseInfo._0 = 4; + gFuseInfo.action = 2; + SoundReq(0x6b); + } +} + +void sub_0801E074(void) { + u32 tmp; + switch (gFuseInfo._0) { + case 5: + tmp = gFuseInfo._8; + break; + case 6: + tmp = gFuseInfo._a; + break; + default: + return; + } + sub_0801E0E0(tmp); + gFuseInfo.action = 3; +} + +void sub_0801E0A0(void) { + if ((gMessage.doTextBox & 0x7f) == 0) { + if (gFuseInfo.ent != NULL) { + gFuseInfo.ent->updatePriority = gFuseInfo._4; + } + gFuseInfo._0 = gFuseInfo._0 == 6 ? 2 : 1; + } +} + +void sub_0801E0E0(u32 idx) { + if (idx != 0) { + if (gFuseInfo.ent != NULL) { + MessageNoOverlap(idx, gFuseInfo.ent); + } else { + MessageFromTarget(idx); + } + } +} + +void sub_0801E104(void) { + gScreen.lcd.displayControl &= ~0x6000; + gScreen._6c = 0; +} + +void sub_0801E120(void) { + gScreen.lcd.displayControl |= 0x2000; + gScreen.controls.windowInsideControl = 0x3F37; + gScreen.controls.windowOutsideControl = 0x3F; + gScreen.controls.window0HorizontalDimensions = 0; + gScreen.controls.window0VerticalDimensions = 160; +} + +void sub_0801E154(u32 a1) { + sub_0801E24C(a1, 0); +} + +void sub_0801E160(u32 a1, u32 a2, u32 a3) { + MemClear(&gUnk_02017AA0[gUnk_03003DE4], sizeof(gUnk_02017AA0[gUnk_03003DE4])); + sub_0801E290(a1, a2, a3); + sub_0805622C(&gUnk_02017AA0[gUnk_03003DE4], 0x4000040, 0xA2600001); +} + +void sub_0801E1B8(u32 a1, u32 a2) { + gScreen.lcd.displayControl |= 0x2000; + gScreen.controls.windowInsideControl = a1; + gScreen.controls.windowOutsideControl = a2; + gScreen.controls.window0HorizontalDimensions = 0; + gScreen.controls.window0VerticalDimensions = 160; +} + +void sub_0801E1EC(u32 a1, u32 a2, u32 a3) { + MemClear(&gUnk_02017AA0[gUnk_03003DE4], sizeof(gUnk_02017AA0[gUnk_03003DE4])); + sub_0801E24C(a3, 0); + sub_0801E290(a1, a2, a3); + sub_0805622C(&gUnk_02017AA0[gUnk_03003DE4], 0x4000040, 0xA2600001); +} + +ASM_FUNC("asm/non_matching/common/sub_0801E24C.inc", void sub_0801E24C(u32 a1, u32 a2)); + +ASM_FUNC("asm/non_matching/common/sub_0801E290.inc", void sub_0801E290(u32 a1, u32 a2, u32 a3)); + +ASM_FUNC("asm/non_matching/common/sub_0801E31C.inc", void sub_0801E31C(u32 a1, u32 a2, u32 a3, u32 a4)); + +ASM_FUNC("asm/non_matching/common/sub_0801E49C.inc", void sub_0801E49C(u32 a1, u32 a2, u32 a3, u32 a4)); + +ASM_FUNC("asm/non_matching/common/sub_0801E64C.inc", void sub_0801E64C(u32 a1, u32 a2, u32 a3, u32 a4, u32 a5)); + +ASM_FUNC("asm/non_matching/common/sub_0801E6C8.inc", void sub_0801E6C8(u32 a1)); + +ASM_FUNC("asm/non_matching/common/sub_0801E738.inc", void sub_0801E738(u32 a1)); + +void sub_0801E798(u32 a1) { + s32 idx = sub_0801E8B0(a1); + if (idx >= 0) { + s32 next = gSave.unk12B[idx] - 1; + if (next <= 0) { + gSave.unk118[idx] = 0; + next = 0; + } + gSave.unk12B[idx] = next; + } +} + +u32 sub_0801E7D0(u32 a1) { + s32 tmp = sub_0801E8B0(a1); + if (tmp < 0) { + return 0; + } + return gSave.unk12B[tmp]; +} + +u32 CheckKinstoneFused(u32 idx) { + if (idx > 100 || idx < 1) { + return 0; + } + return ReadBit(&gSave.unk241, idx); +} + +u32 sub_0801E810(u32 idx) { + if (idx > 100 || idx < 1) { + return 0; + } + return ReadBit(&gSave.unk24E, idx); +} + +ASM_FUNC("asm/non_matching/common/sub_0801E82C.inc", void sub_0801E82C(void)); + +s32 sub_0801E8B0(u32 idx) { + u32 i; + + for (i = 0; i < 18; ++i) { + if (idx == gSave.unk118[i]) + return i; + } + return -1; +} + +void sub_0801E8D4(void) { + u32 i; + for (i = 10; i <= 100; ++i) { + if (CheckKinstoneFused(i) && !sub_0801E810(i)) { + u32 evt_type = gUnk_080C9CBC[i].evt_type; + struct_080FE320* s = &gUnk_080FE320[evt_type]; +#if !defined EU && !defined JP + u32 flag = s->flag; +#endif + u32 tmp; + switch (s->_10) { + case 0: + tmp = 0; + break; + case 1: + tmp = s->_11; + break; + case 2: + tmp = 0xf; + break; + case 3: + tmp = 0x10; + break; + case 4: + tmp = 0x11; + break; +#if !defined EU && !defined JP + case 5: + tmp = 4; + flag = 0x83; + break; + case 6: + tmp = 4; + flag = 0x84; + break; + case 7: + tmp = 4; + flag = 0x87; + break; + case 8: + tmp = 4; + flag = 0x88; + break; + case 9: + tmp = 4; + flag = 0x8b; + break; +#ifndef DEMO_JP + case 10: + tmp = 5; + flag = 0x88; + break; +#endif +#endif + } +#if !defined EU && !defined JP + if (sub_0807CB24(tmp, flag)) { +#else + if (sub_0807CB24(tmp, s->flag)) { +#endif + WriteBit(&gSave.unk24E, i); + } + } + } +} + +ASM_FUNC("asm/non_matching/common/sub_0801E99C.inc", u32 sub_0801E99C(u32 a1)); + +u32 sub_0801EA74(void) { + s32 r = (s32)Random() % 18; + u32 i; + for (i = 0; i < 18; ++i) { + u32 n = gUnk_080CA11C[r]; + if (!CheckKinstoneFused(n)) + return n; + r = (r + 1) % 18; + } + return 0xF2; +} diff --git a/src/coord.c b/src/coord.c index 87108481..b1004759 100644 --- a/src/coord.c +++ b/src/coord.c @@ -2,7 +2,7 @@ #include "area.h" #include "player.h" #include "coord.h" -#include "utils.h" +#include "common.h" #include "sound.h" #include "room.h" #include "functions.h" diff --git a/src/debugScreen.c b/src/debugScreen.c index b3300574..9eded432 100644 --- a/src/debugScreen.c +++ b/src/debugScreen.c @@ -1,6 +1,6 @@ #include "global.h" #include "sound.h" -#include "utils.h" +#include "common.h" #include "functions.h" #include "main.h" #include "menu.h" diff --git a/src/demoScreen.c b/src/demoScreen.c index daec74d7..2f6ad402 100644 --- a/src/demoScreen.c +++ b/src/demoScreen.c @@ -1,7 +1,7 @@ #include "global.h" #include "functions.h" #include "main.h" -#include "utils.h" +#include "common.h" #include "message.h" #include "fileScreen.h" #include "screen.h" diff --git a/src/dungeon.c b/src/dungeon.c new file mode 100644 index 00000000..dc4f98a6 --- /dev/null +++ b/src/dungeon.c @@ -0,0 +1 @@ +#include "global.h" diff --git a/src/enemy/code_080300AC.c b/src/enemy/code_080300AC.c index d1af8248..e3f5c2ef 100644 --- a/src/enemy/code_080300AC.c +++ b/src/enemy/code_080300AC.c @@ -1,5 +1,5 @@ #include "global.h" -#include "utils.h" +#include "common.h" #include "functions.h" void sub_080300AC(void) { diff --git a/src/enterPortalSubtask.c b/src/enterPortalSubtask.c index c9f70c55..0387751a 100644 --- a/src/enterPortalSubtask.c +++ b/src/enterPortalSubtask.c @@ -2,7 +2,7 @@ #include "entity.h" #include "area.h" #include "main.h" -#include "utils.h" +#include "common.h" #include "screen.h" #include "object.h" #include "functions.h" diff --git a/src/entity.c b/src/entity.c index 41d9b4f1..8ed4cbe7 100644 --- a/src/entity.c +++ b/src/entity.c @@ -1,5 +1,5 @@ #include "global.h" -#include "utils.h" +#include "common.h" #include "functions.h" #include "area.h" #include "message.h" @@ -15,7 +15,6 @@ void sub_0805EE88(void); void ClearAllDeletedEntities(void); void DeleteAllEntities(void); void sub_0805E98C(void); -extern void UnloadOBJPalette(); extern void sub_0806FE84(); extern void sub_08078954(); extern void sub_08017744(Entity*); diff --git a/src/fade.c b/src/fade.c index f6abc39c..04cd34e5 100644 --- a/src/fade.c +++ b/src/fade.c @@ -2,7 +2,7 @@ #include "structures.h" #include "functions.h" #include "screen.h" -#include "utils.h" +#include "common.h" static u32 sub_080501C0(FadeControl* ctl); static u32 sub_08050230(FadeControl* ctl); diff --git a/src/fileScreen.c b/src/fileScreen.c index ae44ecb0..691c5999 100644 --- a/src/fileScreen.c +++ b/src/fileScreen.c @@ -1,6 +1,6 @@ #include "fileScreen.h" #include "main.h" -#include "utils.h" +#include "common.h" #include "screen.h" #include "menu.h" #include "message.h" diff --git a/src/flags.c b/src/flags.c index 1c153b5a..57f49892 100644 --- a/src/flags.c +++ b/src/flags.c @@ -13,13 +13,13 @@ u32 CheckLocalFlag(u32 flag) { } u32 CheckFlags(u32 flags) { - s32 type; - s32 index; - s32 length; + u32 type; + u32 index; + u32 length; index = flags & 0x3ff; length = (((flags & (0xf0) << 0x6) >> 0xa) + 1); type = (flags & 0xc000) >> 0xe; - switch ((u32)type) { + switch (type) { case 2: return CheckRoomFlags(index, length); case 0: @@ -40,7 +40,6 @@ u32 CheckRoomFlag(u32 flag) { } u32 CheckLocalFlagsByBank(u32 offset, u32 flag, u32 length) { - return CheckBits(&gGlobalFlags, offset + flag, length); } @@ -67,13 +66,13 @@ void SetLocalFlag(u32 flag) { } void SetFlag(u32 flag) { - s32 uVar1; - s32 index; + u32 type; + u32 index; if (flag != 0) { index = flag & 0x3ff; - uVar1 = (flag & 0xc000) >> 0xe; - switch ((u32)uVar1) { + type = (flag & 0xc000) >> 0xe; + switch (type) { case 2: SetRoomFlag(index); return; @@ -104,12 +103,12 @@ void ClearLocalFlag(u32 flag) { } void ClearFlag(u32 flag) { - s32 uVar1; - s32 index; + u32 type; + u32 index; index = flag & 0x3ff; - uVar1 = (flag & 0xc000) >> 0xe; - switch ((u32)uVar1) { + type = (flag & 0xc000) >> 0xe; + switch (type) { case 2: ClearRoomFlag(index); return; diff --git a/src/game.c b/src/game.c index 33054701..034d9076 100644 --- a/src/game.c +++ b/src/game.c @@ -7,7 +7,7 @@ #include "main.h" #include "flags.h" #include "save.h" -#include "utils.h" +#include "common.h" #include "fileScreen.h" #include "menu.h" #include "functions.h" diff --git a/src/main.c b/src/main.c index 9a2a5dbe..1ce5d2bb 100644 --- a/src/main.c +++ b/src/main.c @@ -2,7 +2,7 @@ #include "functions.h" #include "main.h" #include "screen.h" -#include "utils.h" +#include "common.h" #include "save.h" #include "message.h" #include "interrupts.h" @@ -244,7 +244,7 @@ void sub_08056208() { gScreen._6d = 0; } -void sub_0805622C(u32 a1, u32 a2, u32 a3) { +void sub_0805622C(void* a1, u32 a2, u32 a3) { gScreen._70 = a1; gScreen._74 = a2; gScreen._78 = a3; diff --git a/src/manager/manager10.c b/src/manager/manager10.c index adfbf44c..607463a5 100644 --- a/src/manager/manager10.c +++ b/src/manager/manager10.c @@ -5,7 +5,7 @@ #include "area.h" #include "sound.h" #include "screen.h" -#include "utils.h" +#include "common.h" #include "fileScreen.h" #include "functions.h" diff --git a/src/manager/manager14.c b/src/manager/manager14.c index 05c6a46e..a3771fe9 100644 --- a/src/manager/manager14.c +++ b/src/manager/manager14.c @@ -19,7 +19,6 @@ const u16 gUnk_08108588[] = { 0x1000, 0xF01, 0xE02, 0xD03, 0xC04, 0xB05, 0xA06, const u16 gUnk_0810859A[] = { 0x808, 0x907, 0xA06, 0x907 }; -extern void sub_0805622C(u16*, u32, u32); extern u16 gUnk_02017AA0[]; void sub_08059E80(Manager14*); diff --git a/src/manager/manager1A.c b/src/manager/manager1A.c index a0eb2a8b..2ad78228 100644 --- a/src/manager/manager1A.c +++ b/src/manager/manager1A.c @@ -3,7 +3,7 @@ #include "flags.h" #include "room.h" #include "screen.h" -#include "utils.h" +#include "common.h" #include "object.h" #include "functions.h" diff --git a/src/manager/manager2C.c b/src/manager/manager2C.c index 125dcc5b..c8b3f63d 100644 --- a/src/manager/manager2C.c +++ b/src/manager/manager2C.c @@ -1,7 +1,7 @@ #include "manager.h" #include "asm.h" #include "functions.h" -#include "utils.h" +#include "common.h" typedef struct { struct Manager manager; diff --git a/src/manager/manager32.c b/src/manager/manager32.c index 1e6580d8..77e3d955 100644 --- a/src/manager/manager32.c +++ b/src/manager/manager32.c @@ -3,7 +3,7 @@ #include "room.h" #include "functions.h" #include "area.h" -#include "utils.h" +#include "common.h" #include "game.h" typedef struct { diff --git a/src/manager/manager39.c b/src/manager/manager39.c index bf69d08a..b43de6e8 100644 --- a/src/manager/manager39.c +++ b/src/manager/manager39.c @@ -3,7 +3,7 @@ #include "screen.h" #include "area.h" #include "message.h" -#include "utils.h" +#include "common.h" #include "game.h" #include "functions.h" diff --git a/src/manager/managerB.c b/src/manager/managerB.c index 2219470c..6d0fc1fe 100644 --- a/src/manager/managerB.c +++ b/src/manager/managerB.c @@ -3,7 +3,7 @@ #include "flags.h" #include "room.h" #include "area.h" -#include "utils.h" +#include "common.h" #include "sound.h" /* diff --git a/src/manager/managerC.c b/src/manager/managerC.c index d7c3f867..3ab067fd 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -9,7 +9,7 @@ #include "functions.h" #include "save.h" #include "area.h" -#include "utils.h" +#include "common.h" typedef struct { Manager manager; diff --git a/src/manager/managerF.c b/src/manager/managerF.c index 15fa53fa..3fb57bc2 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -7,7 +7,7 @@ #include "functions.h" #include "area.h" #include "message.h" -#include "utils.h" +#include "common.h" #include "tiles.h" #include "object.h" #include "item.h" diff --git a/src/message.c b/src/message.c index 8f2ff53e..6ff9f902 100644 --- a/src/message.c +++ b/src/message.c @@ -2,7 +2,7 @@ #include "sound.h" #include "asm.h" #include "room.h" -#include "utils.h" +#include "common.h" #include "functions.h" #include "message.h" #include "save.h" @@ -35,7 +35,7 @@ extern void sub_0805EF40(Token* tok, const u8*); extern void RecoverUI(u32 bottomPt, u32 topPt); extern void RefreshUI(void); extern void sub_0805F918(u32, u32, u32); -extern u32 sub_0801D51C(u32, u8*, u32); +extern u32 DecToHex(u32, u8*, u32); u32 sub_08056FEC(u32, u8*); u32 GetCharacter(Token* tok); @@ -790,7 +790,7 @@ NONMATCH("asm/non_matching/textbox/sub_08056FEC.inc", u32 sub_08056FEC(u32 this, int iVar4; u8 local_1c[8]; - uVar1 = sub_0801D51C(this, param_2, this); + uVar1 = DecToHex(this, param_2, this); uVar1 = uVar1 & 0xfffffff; iVar4 = 0; do { diff --git a/src/npc/zeldaFollower.c b/src/npc/zeldaFollower.c index fc0890fb..5cbaa03f 100644 --- a/src/npc/zeldaFollower.c +++ b/src/npc/zeldaFollower.c @@ -1,7 +1,7 @@ #include "global.h" #include "entity.h" #include "functions.h" -#include "utils.h" +#include "common.h" extern void sub_08068318(Entity*); extern void sub_0806854C(Entity*, u32*); diff --git a/src/npcUtils.c b/src/npcUtils.c index e4739226..d44f3336 100644 --- a/src/npcUtils.c +++ b/src/npcUtils.c @@ -5,6 +5,7 @@ #include "definitions.h" #include "save.h" #include "npc.h" +#include "kinstone.h" extern const NPCDefinition gNPCDefinitions[]; @@ -287,7 +288,7 @@ u32 UpdateFuseInteraction(Entity* ent) { u32 ret; sub_0801E00C(); ret = -1; - switch (gUnk_02022740[0]) { + switch (gFuseInfo._0) { default: ret = 0; break; diff --git a/src/object/lockedDoor.c b/src/object/lockedDoor.c index 6f23a9d8..5a38d7a1 100644 --- a/src/object/lockedDoor.c +++ b/src/object/lockedDoor.c @@ -6,6 +6,7 @@ #include "functions.h" #include "effects.h" #include "game.h" +#include "common.h" void sub_08083338(Entity*); void sub_080834B4(Entity*); diff --git a/src/player.c b/src/player.c index 3a12ef17..620c363f 100644 --- a/src/player.c +++ b/src/player.c @@ -4,7 +4,7 @@ #include "entity.h" #include "player.h" #include "message.h" -#include "utils.h" +#include "common.h" #include "area.h" #include "item.h" #include "save.h" diff --git a/src/playerItem/playerItemPacciCane.c b/src/playerItem/playerItemPacciCane.c index 23d16cd3..471f180e 100644 --- a/src/playerItem/playerItemPacciCane.c +++ b/src/playerItem/playerItemPacciCane.c @@ -1,7 +1,7 @@ #include "entity.h" #include "sound.h" #include "functions.h" -#include "utils.h" +#include "common.h" #include "message.h" #include "save.h" diff --git a/src/playerItem/playerItemSwordBeam.c b/src/playerItem/playerItemSwordBeam.c index 0d72189d..671c13b5 100644 --- a/src/playerItem/playerItemSwordBeam.c +++ b/src/playerItem/playerItemSwordBeam.c @@ -4,6 +4,7 @@ #include "functions.h" #include "sound.h" #include "effects.h" +#include "common.h" extern void (*const gUnk_080B43F4[])(Entity*); diff --git a/src/playerItemUtils.c b/src/playerItemUtils.c index be571896..1dd23ad1 100644 --- a/src/playerItemUtils.c +++ b/src/playerItemUtils.c @@ -1,7 +1,7 @@ #include "entity.h" #include "functions.h" #include "save.h" -#include "utils.h" +#include "common.h" #include "sound.h" #include "flags.h" #include "message.h" diff --git a/src/projectile/winder.c b/src/projectile/winder.c index 0075763c..7a0471e6 100644 --- a/src/projectile/winder.c +++ b/src/projectile/winder.c @@ -1,7 +1,7 @@ #include "entity.h" #include "asm.h" #include "functions.h" -#include "utils.h" +#include "common.h" extern void (*const Winder_Actions[])(Entity*); extern const u8 gUnk_0812A6BC[]; diff --git a/src/room.c b/src/room.c index d752abfb..660fcacd 100644 --- a/src/room.c +++ b/src/room.c @@ -3,7 +3,7 @@ #include "room.h" #include "flags.h" #include "functions.h" -#include "utils.h" +#include "common.h" #include "object.h" #include "game.h" diff --git a/src/roomInit.c b/src/roomInit.c index 384c7b79..3872b39e 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -1,7 +1,7 @@ #include "global.h" #include "main.h" -#include "utils.h" +#include "common.h" #include "functions.h" diff --git a/src/script.c b/src/script.c index b2648251..96b6abf9 100644 --- a/src/script.c +++ b/src/script.c @@ -6,6 +6,7 @@ #include "object.h" #include "npc.h" +#include "kinstone.h" #include "functions.h" @@ -1154,7 +1155,7 @@ void ScriptCommand_0807E9F0(Entity* entity, ScriptExecutionContext* context) { u32 tmp; sub_0801E00C(); tmp = 1; - switch (gUnk_02022740[0]) { + switch (gFuseInfo._0) { case 2: gPlayerState.controlMode = CONTROL_DISABLED; gUnk_02034490[0] = tmp; diff --git a/src/sound.c b/src/sound.c index 32dc20c4..aa12853b 100644 --- a/src/sound.c +++ b/src/sound.c @@ -2,7 +2,7 @@ #include "main.h" #include "gba/m4a.h" #include "sound.h" -#include "utils.h" +#include "common.h" #define IS_BGM(song) ((song)-1 <= NUM_BGM - 1) #define IS_SFX(song) ((song)-1 > NUM_BGM - 1) diff --git a/src/sub_0807CA18.c b/src/sub_0807CA18.c index 6a342989..01768a24 100644 --- a/src/sub_0807CA18.c +++ b/src/sub_0807CA18.c @@ -1,6 +1,6 @@ #include "global.h" #include "save.h" -#include "utils.h" +#include "common.h" extern void sub_0807C960(); diff --git a/src/text.c b/src/text.c index 7dc44443..2ca3d929 100644 --- a/src/text.c +++ b/src/text.c @@ -1,5 +1,5 @@ #include "global.h" -#include "utils.h" +#include "common.h" #include "structures.h" #include "functions.h" #include "asm.h" diff --git a/src/title.c b/src/title.c index b31c67e8..7f65c343 100644 --- a/src/title.c +++ b/src/title.c @@ -1,7 +1,7 @@ #include "sound.h" #include "main.h" #include "entity.h" -#include "utils.h" +#include "common.h" #include "screen.h" #include "object.h" #include "message.h" diff --git a/src/utils.c b/src/utils.c deleted file mode 100644 index f8ae7c2d..00000000 --- a/src/utils.c +++ /dev/null @@ -1,205 +0,0 @@ -#include "global.h" -#include "utils.h" -#include "structures.h" -#include "screen.h" - -static void StoreKeyInput(Input* input, u32 keyInput); - -typedef struct { - u16 paletteId; - u8 destPaletteNum; - u8 numPalettes; -} PaletteGroup; - -typedef struct { - union { - int raw; - struct { - u8 filler0[0x3]; - u8 unk3; - } bytes; - } unk0; - u32 dest; - u32 unk8; -} GfxItem; - -extern const PaletteGroup* gPaletteGroups[]; -extern const u8 gGlobalGfxAndPalettes[]; -extern u32 gUsedPalettes; -extern u16 gPaletteBuffer[]; -extern const GfxItem* gGfxGroups[]; - -void MemFill16(u32 value, void* dest, u32 size) { - DmaFill16(3, value, dest, size); -} - -void MemFill32(u32 value, void* dest, u32 size) { - DmaFill32(3, value, dest, size); -} - -void MemClear(void* dest, u32 size) { - u32 zero = 0; - - // alignment check - switch (((intptr_t)dest | size) % 4) { - case 0: - MemFill32(0, dest, size); - break; - case 2: - MemFill16(0, dest, size); - break; - default: - do { - *(u8*)dest = zero; - dest++; - size--; - } while (size != 0); - } -} - -void MemCopy(const void* src, void* dest, u32 size) { - switch (((intptr_t)src | (intptr_t)dest | size) % 4) { - case 0: - DmaCopy32(3, src, dest, size); - break; - case 2: - DmaCopy16(3, src, dest, size); - break; - default: - do { - *(u8*)dest = *(u8*)src; - src++; - dest++; - } while (--size); - } -} - -void ReadKeyInput(void) { - u32 keyInput = ~REG_KEYINPUT & KEYS_MASK; - StoreKeyInput(&gInput, keyInput); -} - -static void StoreKeyInput(Input* input, u32 keyInput) { - u32 heldKeys = input->heldKeys; - u32 difference = keyInput & ~heldKeys; - input->newKeys = difference; - if (keyInput == heldKeys) { - if (--input->unk7 == 0) { - input->unk7 = 4; - input->unk4 = keyInput; - } else { - input->unk4 = 0; - } - } else { - input->unk7 = 20; - input->unk4 = difference; - } - input->heldKeys = keyInput; -} - -void LoadPaletteGroup(u32 group) { - const PaletteGroup* paletteGroup = gPaletteGroups[group]; - while (1) { - u32 destPaletteNum = paletteGroup->destPaletteNum; - u32 numPalettes = paletteGroup->numPalettes & 0xF; - if (numPalettes == 0) { - numPalettes = 16; - } - LoadPalettes(&gGlobalGfxAndPalettes[paletteGroup->paletteId * 32], destPaletteNum, numPalettes); - if ((paletteGroup->numPalettes & 0x80) == 0) { - break; - } - paletteGroup++; - } -} - -void LoadPalettes(const u8* src, s32 destPaletteNum, s32 numPalettes) { - u16* dest; - u32 size = numPalettes * 32; - u32 usedPalettesMask = 1 << destPaletteNum; - while (--numPalettes > 0) { - usedPalettesMask |= (usedPalettesMask << 1); - } - gUsedPalettes |= usedPalettesMask; - dest = &gPaletteBuffer[destPaletteNum * 16]; - DmaCopy32(3, src, dest, size); -} - -void SetColor(u32 colorIndex, u32 color) { - gPaletteBuffer[colorIndex] = color; - gUsedPalettes |= 1 << (colorIndex / 16); -} - -void SetFillColor(u32 color, u32 disable_layers) { - if (disable_layers) { - gScreen.lcd.displayControlMask = ~(DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON); - } else { - gScreen.lcd.displayControlMask = ~0; - } - SetColor(0, color); -} - -void LoadGfxGroup(u32 group) { - u32 terminator; - u32 dmaCtrl; - int gfxOffset; - const u8* src; - u32 dest; - int size; - const GfxItem* gfxItem = gGfxGroups[group]; - while (1) { - u32 loadGfx = FALSE; - u32 ctrl = gfxItem->unk0.bytes.unk3; - ctrl &= 0xF; - switch (ctrl) { - case 0x7: - loadGfx = TRUE; - break; - case 0xD: - return; - case 0xE: - if (gSaveHeader->gameLanguage != 0 && gSaveHeader->gameLanguage != 1) { - loadGfx = TRUE; - } - break; - case 0xF: - if (gSaveHeader->gameLanguage != 0) { - loadGfx = TRUE; - } - break; - default: - if (ctrl == gSaveHeader->gameLanguage) { - loadGfx = TRUE; - } - break; - } - - if (loadGfx) { - gfxOffset = gfxItem->unk0.raw & 0xFFFFFF; - src = &gGlobalGfxAndPalettes[gfxOffset]; - dest = gfxItem->dest; - size = gfxItem->unk8; - dmaCtrl = 0x80000000; - if (size < 0) { - if (dest >= VRAM) { - LZ77UnCompVram(src, (void*)dest); - } else { - LZ77UnCompWram(src, (void*)dest); - } - } else { - DmaSet(3, src, dest, dmaCtrl | ((u32)size >> 1)); - } - } - - terminator = gfxItem->unk0.bytes.unk3; - terminator &= 0x80; - gfxItem++; - if (!terminator) { - break; - } - } -} - -/* TODO: - clear OAM, zMalloc, etc. -*/ From 1e579825e85fbb650421089145ebee9a006a4c74 Mon Sep 17 00:00:00 2001 From: theo3 Date: Sat, 1 Jan 2022 19:11:37 -0800 Subject: [PATCH 088/168] rm dungeon.c --- src/dungeon.c | 1 - 1 file changed, 1 deletion(-) delete mode 100644 src/dungeon.c diff --git a/src/dungeon.c b/src/dungeon.c deleted file mode 100644 index dc4f98a6..00000000 --- a/src/dungeon.c +++ /dev/null @@ -1 +0,0 @@ -#include "global.h" From 3f790d80b490489eb619824e9767cef24f518744 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Sun, 2 Jan 2022 11:47:00 +0100 Subject: [PATCH 089/168] gyorg: extract rodata --- assets/assets.json | 241 ---------------------------- data/const/enemy/gyorgChild.s | 29 ---- data/const/enemy/gyorgFemale.s | 95 ----------- data/const/enemy/gyorgFemaleEye.s | 29 ---- data/const/enemy/gyorgFemaleMouth.s | 42 ----- data/const/object/gyorgBossObject.s | 20 --- include/enemy/gyorg.h | 5 + linker.ld | 10 +- src/enemy/gyorgChild.c | 42 ++++- src/enemy/gyorgFemale.c | 111 ++++++++++++- src/enemy/gyorgFemaleEye.c | 57 +++++-- src/enemy/gyorgFemaleMouth.c | 30 +++- src/object/gyorgBossObject.c | 19 ++- 13 files changed, 233 insertions(+), 497 deletions(-) delete mode 100644 data/const/enemy/gyorgChild.s delete mode 100644 data/const/enemy/gyorgFemale.s delete mode 100644 data/const/enemy/gyorgFemaleEye.s delete mode 100644 data/const/enemy/gyorgFemaleMouth.s delete mode 100644 data/const/object/gyorgBossObject.s diff --git a/assets/assets.json b/assets/assets.json index 67bbda54..eba30550 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -28602,177 +28602,6 @@ "start": 858702, "size": 22 }, - { - "path": "gyorgFemale/gUnk_080D1A84.bin", - "start": 858756, - "size": 16 - }, - { - "path": "gyorgFemale/gUnk_080D1A94_JP.bin", - "variants": [ - "JP" - ], - "starts": { - "JP": 858164 - }, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1A94_1_DEMO_JP.bin", - "variants": [ - "DEMO_JP" - ], - "starts": { - "DEMO_JP": 856792 - }, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1A94_2_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 856512 - }, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1A94_3_USA-DEMO_USA.bin", - "variants": [ - "USA", - "DEMO_USA" - ], - "start": 858772, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1AAC_JP.bin", - "variants": [ - "JP" - ], - "starts": { - "JP": 858188 - }, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1AAC_1_DEMO_JP.bin", - "variants": [ - "DEMO_JP" - ], - "starts": { - "DEMO_JP": 856816 - }, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1AAC_2_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 856536 - }, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1AAC_3_USA-DEMO_USA.bin", - "variants": [ - "USA", - "DEMO_USA" - ], - "start": 858796, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1AC4_JP.bin", - "variants": [ - "JP" - ], - "starts": { - "JP": 858212 - }, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1AC4_1_DEMO_JP.bin", - "variants": [ - "DEMO_JP" - ], - "starts": { - "DEMO_JP": 856840 - }, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1AC4_2_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 856560 - }, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1AC4_3_USA-DEMO_USA.bin", - "variants": [ - "USA", - "DEMO_USA" - ], - "start": 858820, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1ADC_JP.bin", - "variants": [ - "JP" - ], - "starts": { - "JP": 858236 - }, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1ADC_1_DEMO_JP.bin", - "variants": [ - "DEMO_JP" - ], - "starts": { - "DEMO_JP": 856864 - }, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1ADC_2_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 856584 - }, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1ADC_3_USA-DEMO_USA.bin", - "variants": [ - "USA", - "DEMO_USA" - ], - "start": 858844, - "size": 24 - }, - { - "path": "gyorgFemale/gUnk_080D1AF4.bin", - "start": 858868, - "size": 4 - }, - { - "path": "gyorgFemale/gUnk_080D1AF8.bin", - "start": 858872, - "size": 4 - }, { "path": "animations/gSpriteAnimations_GyorgMale_0.bin", "start": 859248, @@ -28959,11 +28788,6 @@ "size": 6, "type": "animation" }, - { - "path": "gyorgChild/gUnk_080D1EA0.bin", - "start": 859808, - "size": 22 - }, { "path": "animations/gSpriteAnimations_GyorgFemaleEye_0.bin", "start": 860240, @@ -29108,21 +28932,6 @@ "size": 16, "type": "animation" }, - { - "path": "gyorgFemaleEye/gUnk_080D1F90.bin", - "start": 860048, - "size": 128 - }, - { - "path": "gyorgFemaleEye/gUnk_080D2010.bin", - "start": 860176, - "size": 32 - }, - { - "path": "gyorgFemaleEye/gUnk_080D2030.bin", - "start": 860208, - "size": 32 - }, { "path": "animations/gSpriteAnimations_Enemy62_0.bin", "start": 861032, @@ -29541,51 +29350,6 @@ "size": 17, "type": "animation" }, - { - "path": "gyorgFemaleMouth/gUnk_080D28CC.bin", - "start": 862412, - "size": 16 - }, - { - "path": "gyorgFemaleMouth/gUnk_080D28DC.bin", - "start": 862428, - "size": 8 - }, - { - "path": "gyorgFemaleMouth/gUnk_080D28E4.bin", - "start": 862436, - "size": 8 - }, - { - "path": "gyorgFemaleMouth/gUnk_080D28EC.bin", - "start": 862444, - "size": 8 - }, - { - "path": "gyorgFemaleMouth/gUnk_080D28F4.bin", - "start": 862452, - "size": 8 - }, - { - "path": "gyorgFemaleMouth/gUnk_080D28FC.bin", - "start": 862460, - "size": 8 - }, - { - "path": "gyorgFemaleMouth/gUnk_080D2904.bin", - "start": 862468, - "size": 8 - }, - { - "path": "gyorgFemaleMouth/gUnk_080D290C.bin", - "start": 862476, - "size": 8 - }, - { - "path": "gyorgFemaleMouth/gUnk_080D2914.bin", - "start": 862484, - "size": 8 - }, { "path": "enemy64/gUnk_080D29B8.bin", "start": 862648, @@ -47121,11 +46885,6 @@ "start": 1200092, "size": 20 }, - { - "path": "gyorgBossObject/gUnk_08124EF8.bin", - "start": 1199864, - "size": 16 - }, { "path": "windcrest/gUnk_08125010.bin", "start": 1200144, diff --git a/data/const/enemy/gyorgChild.s b/data/const/enemy/gyorgChild.s deleted file mode 100644 index aa870879..00000000 --- a/data/const/enemy/gyorgChild.s +++ /dev/null @@ -1,29 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_080D1E6C:: @ 080D1E6C - .4byte sub_08048684 - .4byte sub_0804869C - .4byte sub_08001324 - .4byte sub_0804A7D4 - .4byte sub_08001242 - .4byte sub_080486AC - -gUnk_080D1E84:: @ 080D1E84 - .4byte sub_080486F4 - .4byte sub_0804877C - .4byte sub_0804882C - .4byte sub_08048904 - -gUnk_080D1E94:: @ 080D1E94 - .4byte sub_080486D0 - .4byte sub_080486D8 - .4byte sub_080486E0 - -gUnk_080D1EA0:: @ 080D1EA0 - .incbin "gyorgChild/gUnk_080D1EA0.bin" - - diff --git a/data/const/enemy/gyorgFemale.s b/data/const/enemy/gyorgFemale.s deleted file mode 100644 index 478654f4..00000000 --- a/data/const/enemy/gyorgFemale.s +++ /dev/null @@ -1,95 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_080D1A64:: @ 080D1A64 - .4byte sub_0804614C - .4byte sub_0804625C - .4byte sub_0804632C - .4byte sub_080463E4 - -gUnk_080D1A74:: @ 080D1A74 - .4byte gUnk_080D1A94 - .4byte gUnk_080D1AAC - .4byte gUnk_080D1AC4 - .4byte gUnk_080D1ADC - -gUnk_080D1A84:: @ 080D1A84 - .incbin "gyorgFemale/gUnk_080D1A84.bin" - -gUnk_080D1A94:: @ 080D1A94 -.ifdef JP - @ TODO only small differences - .incbin "gyorgFemale/gUnk_080D1A94_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "gyorgFemale/gUnk_080D1A94_1_DEMO_JP.bin" -.else -.ifdef EU - .incbin "gyorgFemale/gUnk_080D1A94_2_EU.bin" -.else - .incbin "gyorgFemale/gUnk_080D1A94_3_USA-DEMO_USA.bin" -.endif -.endif -.endif - - -gUnk_080D1AAC:: @ 080D1AAC -.ifdef JP - @ TODO only small differences - .incbin "gyorgFemale/gUnk_080D1AAC_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "gyorgFemale/gUnk_080D1AAC_1_DEMO_JP.bin" -.else -.ifdef EU - .incbin "gyorgFemale/gUnk_080D1AAC_2_EU.bin" -.else - .incbin "gyorgFemale/gUnk_080D1AAC_3_USA-DEMO_USA.bin" -.endif -.endif -.endif - -gUnk_080D1AC4:: @ 080D1AC4 -.ifdef JP - @ TODO only small differences - .incbin "gyorgFemale/gUnk_080D1AC4_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "gyorgFemale/gUnk_080D1AC4_1_DEMO_JP.bin" -.else -.ifdef EU - .incbin "gyorgFemale/gUnk_080D1AC4_2_EU.bin" -.else - .incbin "gyorgFemale/gUnk_080D1AC4_3_USA-DEMO_USA.bin" -.endif -.endif -.endif - -gUnk_080D1ADC:: @ 080D1ADC -.ifdef JP - @ TODO only small differences - .incbin "gyorgFemale/gUnk_080D1ADC_JP.bin" -.else -.ifdef DEMO_JP - @ TODO only small differences - .incbin "gyorgFemale/gUnk_080D1ADC_1_DEMO_JP.bin" -.else -.ifdef EU - .incbin "gyorgFemale/gUnk_080D1ADC_2_EU.bin" -.else - .incbin "gyorgFemale/gUnk_080D1ADC_3_USA-DEMO_USA.bin" -.endif -.endif -.endif - -gUnk_080D1AF4:: @ 080D1AF4 - .incbin "gyorgFemale/gUnk_080D1AF4.bin" - -gUnk_080D1AF8:: @ 080D1AF8 - .incbin "gyorgFemale/gUnk_080D1AF8.bin" diff --git a/data/const/enemy/gyorgFemaleEye.s b/data/const/enemy/gyorgFemaleEye.s deleted file mode 100644 index 00881c56..00000000 --- a/data/const/enemy/gyorgFemaleEye.s +++ /dev/null @@ -1,29 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_080D1F64:: @ 080D1F64 - .4byte sub_080489B4 - .4byte sub_080489CC - .4byte sub_08001324 - .4byte sub_0804A7D4 - .4byte sub_08001242 - .4byte sub_080489B4 - -gUnk_080D1F7C:: @ 080D1F7C - .4byte sub_08048AF0 - .4byte sub_08048B2C - .4byte sub_08048B84 - .4byte sub_08048BB0 - .4byte sub_08048CEC - -gUnk_080D1F90:: @ 080D1F90 - .incbin "gyorgFemaleEye/gUnk_080D1F90.bin" - -gUnk_080D2010:: @ 080D2010 - .incbin "gyorgFemaleEye/gUnk_080D2010.bin" - -gUnk_080D2030:: @ 080D2030 - .incbin "gyorgFemaleEye/gUnk_080D2030.bin" diff --git a/data/const/enemy/gyorgFemaleMouth.s b/data/const/enemy/gyorgFemaleMouth.s deleted file mode 100644 index 114c93c2..00000000 --- a/data/const/enemy/gyorgFemaleMouth.s +++ /dev/null @@ -1,42 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_080D28AC:: @ 080D28AC - .4byte gUnk_080D28DC - .4byte gUnk_080D28E4 - .4byte gUnk_080D28EC - .4byte gUnk_080D28F4 - .4byte gUnk_080D28FC - .4byte gUnk_080D2904 - .4byte gUnk_080D290C - .4byte gUnk_080D2914 - -gUnk_080D28CC:: @ 080D28CC - .incbin "gyorgFemaleMouth/gUnk_080D28CC.bin" - -gUnk_080D28DC:: @ 080D28DC - .incbin "gyorgFemaleMouth/gUnk_080D28DC.bin" - -gUnk_080D28E4:: @ 080D28E4 - .incbin "gyorgFemaleMouth/gUnk_080D28E4.bin" - -gUnk_080D28EC:: @ 080D28EC - .incbin "gyorgFemaleMouth/gUnk_080D28EC.bin" - -gUnk_080D28F4:: @ 080D28F4 - .incbin "gyorgFemaleMouth/gUnk_080D28F4.bin" - -gUnk_080D28FC:: @ 080D28FC - .incbin "gyorgFemaleMouth/gUnk_080D28FC.bin" - -gUnk_080D2904:: @ 080D2904 - .incbin "gyorgFemaleMouth/gUnk_080D2904.bin" - -gUnk_080D290C:: @ 080D290C - .incbin "gyorgFemaleMouth/gUnk_080D290C.bin" - -gUnk_080D2914:: @ 080D2914 - .incbin "gyorgFemaleMouth/gUnk_080D2914.bin" diff --git a/data/const/object/gyorgBossObject.s b/data/const/object/gyorgBossObject.s deleted file mode 100644 index eb5c2617..00000000 --- a/data/const/object/gyorgBossObject.s +++ /dev/null @@ -1,20 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08124ED0:: @ 08124ED0 - .4byte sub_080A1704 - .4byte sub_080A184C - .4byte sub_080A189C - .4byte sub_080A190C - .4byte sub_080A1990 - .4byte sub_080A19FC - .4byte sub_080A1A80 - .4byte sub_080A1AE8 - .4byte sub_080A1B4C - .4byte sub_080A1C04 - -gUnk_08124EF8:: @ 08124EF8 - .incbin "gyorgBossObject/gUnk_08124EF8.bin" diff --git a/include/enemy/gyorg.h b/include/enemy/gyorg.h index cad4e6ec..66ef35a2 100644 --- a/include/enemy/gyorg.h +++ b/include/enemy/gyorg.h @@ -21,6 +21,11 @@ typedef struct { u8 unk_83[5]; } GyorgFemaleEntity; +typedef struct { + Entity base; + u8 unk_68[0x20]; +} GyorgFemaleEyeEntity; + typedef struct { Entity base; u8 filler[0x20]; diff --git a/linker.ld b/linker.ld index effaf018..4aefcd27 100644 --- a/linker.ld +++ b/linker.ld @@ -1150,20 +1150,20 @@ SECTIONS { src/enemy/vaatiTransfiguredEye.o(.rodata); data/animations/enemy/vaatiTransfiguredEye.o(.rodata); data/const/enemy/businessScrubPrologue.o(.rodata); - data/const/enemy/gyorgFemale.o(.rodata); + src/enemy/gyorgFemale.o(.rodata); src/enemy/gyorgMale.o(.rodata); data/animations/enemy/gyorgMale.o(.rodata); data/const/enemy/curtain.o(.rodata); data/animations/enemy/curtain.o(.rodata); src/enemy/vaatiWrathEye.o(.rodata); data/animations/enemy/vaatiWrathEye.o(.rodata); - data/const/enemy/gyorgChild.o(.rodata); + src/enemy/gyorgChild.o(.rodata); data/animations/enemy/gyorgChild.o(.rodata); - data/const/enemy/gyorgFemaleEye.o(.rodata); + src/enemy/gyorgFemaleEye.o(.rodata); data/animations/enemy/gyorgFemaleEye.o(.rodata); data/const/enemy/enemy62.o(.rodata); data/animations/enemy/enemy62.o(.rodata); - data/const/enemy/gyorgFemaleMouth.o(.rodata); + src/enemy/gyorgFemaleMouth.o(.rodata); data/animations/enemy/gyorgFemaleMouth.o(.rodata); data/const/enemy/enemy64.o(.rodata); src/enemy/treeItem.o(.rodata); @@ -1637,7 +1637,7 @@ SECTIONS { data/const/object/well.o(.rodata); data/const/object/windTribeTeleporter.o(.rodata); data/const/object/objectB9.o(.rodata); - data/const/object/gyorgBossObject.o(.rodata); + src/object/gyorgBossObject.o(.rodata); data/animations/object/gyorgBossObject.o(.rodata); data/const/object/windcrest.o(.rodata); data/const/object/objectBD.o(.rodata); diff --git a/src/enemy/gyorgChild.c b/src/enemy/gyorgChild.c index 87050067..f02713ea 100644 --- a/src/enemy/gyorgChild.c +++ b/src/enemy/gyorgChild.c @@ -1,10 +1,22 @@ #define NENT_DEPRECATED #include "global.h" #include "room.h" +#include "asm.h" #include "functions.h" #include "enemy/gyorg.h" -extern void (*const gUnk_080D1E6C[])(GyorgChildEntity*); +void sub_08048684(GyorgChildEntity*); +void sub_0804869C(GyorgChildEntity*); +void sub_080486AC(GyorgChildEntity*); + +void (*const gUnk_080D1E6C[])(GyorgChildEntity*) = { + sub_08048684, + sub_0804869C, + (void (*)(GyorgChildEntity*))sub_08001324, + (void (*)(GyorgChildEntity*))sub_0804A7D4, + (void (*)(GyorgChildEntity*))sub_08001242, + sub_080486AC, +}; void GyorgChild(Entity* this) { if (gScreenTransition.field_0x39 == 0) { @@ -15,21 +27,35 @@ void GyorgChild(Entity* this) { gUnk_080D1E6C[GetNextFunction(this)]((GyorgChildEntity*)this); } -extern void (*const gUnk_080D1E84[])(GyorgChildEntity*); +void sub_080486F4(GyorgChildEntity*); +void sub_0804877C(GyorgChildEntity*); +void sub_0804882C(GyorgChildEntity*); +void sub_08048904(GyorgChildEntity*); void sub_08048684(GyorgChildEntity* this) { + static void (*const gUnk_080D1E84[])(GyorgChildEntity*) = { + sub_080486F4, + sub_0804877C, + sub_0804882C, + sub_08048904, + }; gUnk_080D1E84[super->action](this); } -extern void (*const gUnk_080D1E6C[])(GyorgChildEntity*); - void sub_0804869C(GyorgChildEntity* this) { sub_0804AA30(super, gUnk_080D1E6C); } -extern void (*const gUnk_080D1E94[])(GyorgChildEntity*); +void sub_080486D0(GyorgChildEntity*); +void sub_080486D8(GyorgChildEntity*); +void sub_080486E0(GyorgChildEntity*); void sub_080486AC(GyorgChildEntity* this) { + static void (*const gUnk_080D1E94[])(GyorgChildEntity*) = { + sub_080486D0, + sub_080486D8, + sub_080486E0, + }; if (sub_0806F520()) { gUnk_080D1E94[super->subAction](this); } @@ -49,9 +75,11 @@ void sub_080486E0(GyorgChildEntity* this) { } } -extern const u8 gUnk_080D1EA0[]; - void sub_080486F4(GyorgChildEntity* this) { + static const s8 gUnk_080D1EA0[] = { + 0x50, 0x1, 0x40, 0x1, 0x30, 0x1, 0x20, 0x1, 0x10, 0x1, 0, + 0, 0x10, -0x1, 0x20, -0x1, 0x30, -0x1, 0x40, -0x1, 0x50, -0x1, + }; super->field_0x1c = 1; super->spriteOrientation.flipY = 3; super->spriteRendering.b3 = 3; diff --git a/src/enemy/gyorgFemale.c b/src/enemy/gyorgFemale.c index 508098bb..33e96136 100644 --- a/src/enemy/gyorgFemale.c +++ b/src/enemy/gyorgFemale.c @@ -13,7 +13,7 @@ extern u8 gMapDataTopSpecial[]; extern u16 gUnk_02019EE0[]; -extern void sub_080197D4(u32); +extern void sub_080197D4(const void*); extern u32 sub_08000E62(u32); extern void RegisterTransitionManager(void*, void (*)(), void (*)()); @@ -28,17 +28,23 @@ void sub_08046668(GyorgFemaleEntity*); void sub_08046518(void); void sub_080467DC(GyorgFemaleEntity*); -extern void (*const gUnk_080D1A64[])(GyorgFemaleEntity*); -extern u32 gUnk_080D1A74[]; extern u8 gUpdateVisibleTiles; extern u8 gUnk_080B3E80[]; extern u8 gUnk_080B37A0[]; extern u16 gMetatileTypesTop[]; -extern const u16 gUnk_080D1A84[]; -extern const u8 gUnk_080D1AF4[]; -extern const u8 gUnk_080D1AF8[]; + +void sub_0804614C(GyorgFemaleEntity*); +void sub_0804625C(GyorgFemaleEntity*); +void sub_0804632C(GyorgFemaleEntity*); +void sub_080463E4(GyorgFemaleEntity*); void GyorgFemale(Entity* this) { + static void (*const gUnk_080D1A64[])(GyorgFemaleEntity*) = { + sub_0804614C, + sub_0804625C, + sub_0804632C, + sub_080463E4, + }; gUnk_080D1A64[this->action]((GyorgFemaleEntity*)this); } @@ -211,7 +217,18 @@ void sub_08046498(GyorgFemaleEntity* this) { } #endif +extern const u8 gUnk_080D1A94[]; +extern const u8 gUnk_080D1AAC[]; +extern const u8 gUnk_080D1AC4[]; +extern const u8 gUnk_080D1ADC[]; + void sub_080464C0(GyorgFemaleEntity* this) { + static const void* const gUnk_080D1A74[] = { + gUnk_080D1A94, + gUnk_080D1AAC, + gUnk_080D1AC4, + gUnk_080D1ADC, + }; s32 i; u8* src; u8* dst; @@ -261,6 +278,9 @@ void sub_080465C8(void) { } void sub_0804660C(GyorgFemaleEntity* this, u32 unk1) { + static const u16 gUnk_080D1A84[] = { + 0x200, 0x258, 0x1B8, 0x210, 0x200, 0x1C8, 0x248, 0x210, + }; const u16* p; super->animationState = unk1; p = &gUnk_080D1A84[unk1 >> 5]; @@ -268,7 +288,85 @@ void sub_0804660C(GyorgFemaleEntity* this, u32 unk1) { super->y.HALF.HI = p[1] + gRoomControls.roomOriginY; } +// todo: correct type +const u8 gUnk_080D1A94[] = { +#if defined(JP) || defined(DEMO_JP) + 0x7C, +#elif defined(EU) + 0x50, +#else + 0x08, +#endif + 0x41, 0x22, 0x80, 0xE0, 0x9E, 0x01, 0x02, 0x00, 0x08, 0x00, 0x80, +#if defined(JP) || defined(DEMO_JP) + 0x2C, 0xD3, +#elif defined(EU) + 0x00, 0xD3, +#else + 0xB8, 0xD2, +#endif + 0x22, 0x00, 0x54, 0xB6, 0x00, 0x02, 0x80, 0x1F, 0x00, 0x80, +}; + +const u8 gUnk_080D1AAC[] = { +#if defined(JP) || defined(DEMO_JP) + 0xFC, +#elif defined(EU) + 0xD0, +#else + 0x88, +#endif + 0x3D, 0x22, 0x80, 0xE0, 0x9E, 0x01, 0x02, 0x00, 0x08, 0x00, 0x80, +#if defined(JP) || defined(DEMO_JP) + 0xF8, +#elif defined(EU) + 0xCC, +#else + 0x84, +#endif + 0xD6, 0x22, 0x00, 0x54, 0xB6, 0x00, 0x02, 0x80, 0x1F, 0x00, 0x80, +}; + +const u8 gUnk_080D1AC4[] = { +#if defined(JP) || defined(DEMO_JP) + 0xE4, +#elif defined(EU) + 0xB8, +#else + 0x70, +#endif + 0x36, 0x22, 0x80, 0xE0, 0x9E, 0x01, 0x02, 0x00, 0x08, 0x00, 0x80, +#if defined(JP) || defined(DEMO_JP) + 0xC0, +#elif defined(EU) + 0x94, +#else + 0x4C, +#endif + 0xDA, 0x22, 0x00, 0x54, 0xB6, 0x00, 0x02, 0x80, 0x1F, 0x00, 0x80, +}; + +const u8 gUnk_080D1ADC[] = { +#if defined(JP) || defined(DEMO_JP) + 0x78, +#elif defined(EU) + 0x4C, +#else + 0x04, +#endif + 0x3A, 0x22, 0x80, 0xE0, 0x9E, 0x01, 0x02, 0x00, 0x08, 0x00, 0x80, +#if defined(JP) || defined(DEMO_JP) + 0x88, +#elif defined(EU) + 0x5C, +#else + 0x14, +#endif + 0xDE, 0x22, 0x00, 0x54, 0xB6, 0x00, 0x02, 0x80, 0x1F, 0x00, 0x80, +}; + void sub_08046634(GyorgFemaleEntity* this, u32 unk1) { + static const u8 gUnk_080D1AF4[] = { 2, 3, 6, 7 }; u32 tmp; if (unk1 == 0) { tmp = gUnk_080D1AF4[Random() & 3]; @@ -279,6 +377,7 @@ void sub_08046634(GyorgFemaleEntity* this, u32 unk1) { } void sub_08046668(GyorgFemaleEntity* this) { + static const u8 gUnk_080D1AF8[] = { 0x16, 0x92, 0x94, 0x86 }; if (super->health == 0) { return; } diff --git a/src/enemy/gyorgFemaleEye.c b/src/enemy/gyorgFemaleEye.c index 69482c7a..98582230 100644 --- a/src/enemy/gyorgFemaleEye.c +++ b/src/enemy/gyorgFemaleEye.c @@ -6,21 +6,27 @@ #include "functions.h" #include "enemy/gyorg.h" -typedef struct { - Entity base; - u8 unk_68[0x20]; -} GyorgFemaleEyeEntity; +void sub_080489B4(GyorgFemaleEyeEntity*); +void sub_080489CC(GyorgFemaleEyeEntity*); -extern void (*const gUnk_080D1F64[])(GyorgFemaleEyeEntity*); -extern void (*const gUnk_080D1F7C[])(GyorgFemaleEyeEntity*); - -extern const u8 gUnk_080D2030[]; -extern const u8 gUnk_080D2010[]; +void sub_08048AF0(GyorgFemaleEyeEntity*); +void sub_08048B2C(GyorgFemaleEyeEntity*); +void sub_08048B84(GyorgFemaleEyeEntity*); +void sub_08048BB0(GyorgFemaleEyeEntity*); +void sub_08048CEC(GyorgFemaleEyeEntity*); void sub_08048D20(GyorgFemaleEyeEntity*); - u32 sub_08048D70(GyorgFemaleEntity*); +void (*const gUnk_080D1F64[])(GyorgFemaleEyeEntity*) = { + sub_080489B4, + sub_080489CC, + (void (*)(GyorgFemaleEyeEntity*))sub_08001324, + (void (*)(GyorgFemaleEyeEntity*))sub_0804A7D4, + (void (*)(GyorgFemaleEyeEntity*))sub_08001242, + sub_080489B4, +}; + void GyorgFemaleEye(Entity* this) { if (this->parent->next == NULL) { DeleteThisEntity(); @@ -29,9 +35,33 @@ void GyorgFemaleEye(Entity* this) { } void sub_080489B4(GyorgFemaleEyeEntity* this) { + static void (*const gUnk_080D1F7C[])(GyorgFemaleEyeEntity*) = { + sub_08048AF0, sub_08048B2C, sub_08048B84, sub_08048BB0, sub_08048CEC, + }; gUnk_080D1F7C[super->action](this); } +typedef struct { + u16 x, y; +} xy; + +const xy gUnk_080D1F90[] = { + { 0x1e8, 0x1d8 }, { 0x1f8, 0x1d8 }, { 0x208, 0x1d8 }, { 0x218, 0x1d8 }, { 0x1e8, 0x1e8 }, { 0x1f8, 0x1e8 }, + { 0x208, 0x1e8 }, { 0x218, 0x1e8 }, { 0x238, 0x1f8 }, { 0x238, 0x208 }, { 0x238, 0x218 }, { 0x238, 0x228 }, + { 0x228, 0x1f8 }, { 0x228, 0x208 }, { 0x228, 0x218 }, { 0x228, 0x228 }, { 0x218, 0x248 }, { 0x208, 0x248 }, + { 0x1f8, 0x248 }, { 0x1e8, 0x248 }, { 0x218, 0x238 }, { 0x208, 0x238 }, { 0x1f8, 0x238 }, { 0x1e8, 0x238 }, + { 0x1c8, 0x228 }, { 0x1c8, 0x218 }, { 0x1c8, 0x208 }, { 0x1c8, 0x1f8 }, { 0x1d8, 0x228 }, { 0x1d8, 0x218 }, + { 0x1d8, 0x208 }, { 0x1d8, 0x1f8 }, +}; + +const u8 gUnk_080D2010[] = { + 0, 0, 1, 1, 0, 0, 1, 1, 4, 4, 5, 5, 4, 4, 5, 5, 9, 9, 8, 8, 9, 9, 8, 8, 13, 13, 12, 12, 13, 13, 12, 12, +}; + +const u8 gUnk_080D2030[] = { + 2, 2, 3, 3, 2, 2, 3, 3, 6, 6, 7, 7, 6, 6, 7, 7, 11, 11, 10, 10, 11, 11, 10, 10, 15, 15, 14, 14, 15, 15, 14, 14, +}; + void sub_080489CC(GyorgFemaleEyeEntity* this) { GyorgFemaleEntity* parent; if (super->health != 0xFF) { @@ -151,13 +181,6 @@ void sub_08048CEC(GyorgFemaleEyeEntity* this) { InitializeAnimation(super, gUnk_080D2010[(super->animationState << 3) + super->type]); } } - -typedef struct { - u16 x, y; -} xy; - -extern const xy gUnk_080D1F90[]; - void sub_08048D20(GyorgFemaleEyeEntity* this) { GyorgFemaleEntity* parent = (GyorgFemaleEntity*)super->parent; const xy* tmp; diff --git a/src/enemy/gyorgFemaleMouth.c b/src/enemy/gyorgFemaleMouth.c index d326f287..09d8f85f 100644 --- a/src/enemy/gyorgFemaleMouth.c +++ b/src/enemy/gyorgFemaleMouth.c @@ -4,8 +4,32 @@ #include "room.h" #include "enemy/gyorg.h" -extern const u16 gUnk_080D28CC[]; -extern Hitbox* const gUnk_080D28AC[]; +extern const Hitbox gUnk_080D28DC; +extern const Hitbox gUnk_080D28E4; +extern const Hitbox gUnk_080D28EC; +extern const Hitbox gUnk_080D28F4; +extern const Hitbox gUnk_080D28FC; +extern const Hitbox gUnk_080D2904; +extern const Hitbox gUnk_080D290C; +extern const Hitbox gUnk_080D2914; + +const Hitbox* const gUnk_080D28AC[] = { + &gUnk_080D28DC, &gUnk_080D28E4, &gUnk_080D28EC, &gUnk_080D28F4, + &gUnk_080D28FC, &gUnk_080D2904, &gUnk_080D290C, &gUnk_080D2914, +}; + +const u16 gUnk_080D28CC[] = { + 0x200, 0x1C8, 0x248, 0x210, 0x200, 0x258, 0x1b8, 0x210, +}; + +const Hitbox gUnk_080D28DC = { 0xE0, 0xF4, { 0, 0, 0, 0 }, 0x8, 0xA }; +const Hitbox gUnk_080D28E4 = { 0x20, 0xF4, { 0, 0, 0, 0 }, 0x8, 0xA }; +const Hitbox gUnk_080D28EC = { 0x0C, 0xE0, { 0, 0, 0, 0 }, 0xA, 0x8 }; +const Hitbox gUnk_080D28F4 = { 0x0C, 0x20, { 0, 0, 0, 0 }, 0xA, 0x8 }; +const Hitbox gUnk_080D28FC = { 0xE0, 0x0C, { 0, 0, 0, 0 }, 0x8, 0xA }; +const Hitbox gUnk_080D2904 = { 0x20, 0x0C, { 0, 0, 0, 0 }, 0x8, 0xA }; +const Hitbox gUnk_080D290C = { 0xF4, 0xE0, { 0, 0, 0, 0 }, 0xA, 0x8 }; +const Hitbox gUnk_080D2914 = { 0xF4, 0x20, { 0, 0, 0, 0 }, 0xA, 0x8 }; void GyorgFemaleMouth(Entity* this) { u32 tmp; @@ -38,5 +62,5 @@ void GyorgFemaleMouth(Entity* this) { tmp++; } } - this->hitbox = gUnk_080D28AC[tmp]; + this->hitbox = (Hitbox*)gUnk_080D28AC[tmp]; // discarding const qualifier with cast } diff --git a/src/object/gyorgBossObject.c b/src/object/gyorgBossObject.c index 9f68eab8..8a28f1ba 100644 --- a/src/object/gyorgBossObject.c +++ b/src/object/gyorgBossObject.c @@ -11,7 +11,6 @@ extern const ScreenTransitionData gUnk_0813ABD0; extern u32 sub_08079F8C(void); -extern const u16 gUnk_08124EF8[]; extern s16* const gUnk_08124FF0[]; extern void sub_080A1DCC(GyorgBossObjectEntity*); @@ -24,9 +23,22 @@ void sub_080A1FF0(GyorgBossObjectEntity*); u32 sub_080A20B8(GyorgBossObjectEntity*, GenericEntity*); void sub_080A1D70(GyorgBossObjectEntity*, u32); -extern void (*const gUnk_08124ED0[])(GyorgBossObjectEntity*); +void sub_080A1704(GyorgBossObjectEntity*); +void sub_080A184C(GyorgBossObjectEntity*); +void sub_080A189C(GyorgBossObjectEntity*); +void sub_080A190C(GyorgBossObjectEntity*); +void sub_080A1990(GyorgBossObjectEntity*); +void sub_080A19FC(GyorgBossObjectEntity*); +void sub_080A1A80(GyorgBossObjectEntity*); +void sub_080A1AE8(GyorgBossObjectEntity*); +void sub_080A1B4C(GyorgBossObjectEntity*); +void sub_080A1C04(GyorgBossObjectEntity*); void GyorgBossObject(Entity* this) { + static void (*const gUnk_08124ED0[])(GyorgBossObjectEntity*) = { + sub_080A1704, sub_080A184C, sub_080A189C, sub_080A190C, sub_080A1990, + sub_080A19FC, sub_080A1A80, sub_080A1AE8, sub_080A1B4C, sub_080A1C04, + }; gUnk_08124ED0[this->action]((GyorgBossObjectEntity*)this); sub_080A1DCC((GyorgBossObjectEntity*)this); sub_080A1C9C((GyorgBossObjectEntity*)this); @@ -130,7 +142,7 @@ void sub_080A190C(GyorgBossObjectEntity* this) { } } -void sub_080A1990(GyorgBossObjectEntity* this, u32 unk1) { +void sub_080A1990(GyorgBossObjectEntity* this) { if (((GyorgFemaleHeap*)super->myHeap)->female->base.health == 0) { ((GyorgFemaleHeap*)super->myHeap)->male1->base.health = 0xC; super->action = 5; @@ -339,6 +351,7 @@ void sub_080A1E54(GyorgBossObjectEntity* this) { } void sub_080A1ED0(u32 unk0, u32 unk1, u32 unk2) { + static const u16 gUnk_08124EF8[] = { 0x200, 0x1C0, 0x250, 0x210, 0x200, 0x260, 0x1B0, 0x210 }; u32 i = 0; s16* p; u32 x, y; From ba7bb2e2cacbfd49563c33279766e217cb96b882 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Sun, 2 Jan 2022 14:55:56 +0100 Subject: [PATCH 090/168] gyorgMale.c: new entity system --- include/enemy.h | 10 +- include/enemy/gyorg.h | 22 +- src/enemy/gyorgFemaleEye.c | 2 +- src/enemy/gyorgMale.c | 1293 +++++++++++++++++----------------- src/object/gyorgBossObject.c | 14 +- 5 files changed, 681 insertions(+), 660 deletions(-) diff --git a/include/enemy.h b/include/enemy.h index 8595b8f3..479e5273 100644 --- a/include/enemy.h +++ b/include/enemy.h @@ -214,14 +214,14 @@ extern void FireballGuy(Entity*); extern void MiniFireballGuy(Entity*); extern void VaatiTransfiguredEye(Entity*); extern void BusinessScrubPrologue(Entity*); -extern void GyorgFemale(Entity*); -extern void GyorgMale(Entity*); +extern void GyorgFemale(); +extern void GyorgMale(); extern void Curtain(Entity*); extern void VaatiWrathEye(Entity*); -extern void GyorgChild(Entity*); -extern void GyorgFemaleEye(Entity*); +extern void GyorgChild(); +extern void GyorgFemaleEye(); extern void Enemy62(Entity*); -extern void GyorgFemaleMouth(Entity*); +extern void GyorgFemaleMouth(); extern void Enemy64(Entity*); extern void TreeItem(Entity*); extern void Enemy66(Entity*); diff --git a/include/enemy/gyorg.h b/include/enemy/gyorg.h index 66ef35a2..a45b3657 100644 --- a/include/enemy/gyorg.h +++ b/include/enemy/gyorg.h @@ -31,6 +31,24 @@ typedef struct { u8 filler[0x20]; } GyorgFemaleMouthEntity; +typedef struct { + Entity base; + u8 unk_68[0x8]; + u16 unk_70; + u16 unk_72; + u16 unk_74; + u16 unk_76; + u16 unk_78; + u16 unk_7a; + u8 unk_7c; + u8 unk_7d; + u16 unk_7e; + u16 unk_80; + u16 unk_82; + u16 unk_84; + u16 unk_86; +} GyorgMaleEntity; + typedef struct { Entity base; u8 unk_68[0xC]; @@ -62,8 +80,8 @@ typedef struct { typedef struct { GyorgBossObjectEntity* boss; GyorgFemaleEntity* female; - GenericEntity* male1; - GenericEntity* male2; + GyorgMaleEntity* male1; + GyorgMaleEntity* male2; GyorgFemaleMouthEntity* unk_10; GenericEntity* unk_14; void* unk_18[0x8]; diff --git a/src/enemy/gyorgFemaleEye.c b/src/enemy/gyorgFemaleEye.c index 98582230..dd47b6f9 100644 --- a/src/enemy/gyorgFemaleEye.c +++ b/src/enemy/gyorgFemaleEye.c @@ -195,7 +195,7 @@ void sub_08048D20(GyorgFemaleEyeEntity* this) { } u32 sub_08048D70(GyorgFemaleEntity* parent) { - GenericEntity* tmp; + GyorgMaleEntity* tmp; if (parent->base.health != 0) { return 1; } diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c index 5e9b4136..17cf00f9 100644 --- a/src/enemy/gyorgMale.c +++ b/src/enemy/gyorgMale.c @@ -1,392 +1,393 @@ +#define NENT_DEPRECATED #include "global.h" #include "enemy.h" #include "player.h" #include "fileScreen.h" #include "functions.h" #include "effects.h" +#include "enemy/gyorg.h" // todo: wrong types extern void sub_080A1D70(Entity*, u32); -void (*const gUnk_080D1AFC[8])(Entity*); -void (*const gUnk_080D1B1C[7])(Entity*); -void (*const gUnk_080D1B38[5])(Entity*); -void (*const gUnk_080D1B4C[5])(Entity*); +void (*const gUnk_080D1AFC[8])(GyorgMaleEntity*); +void (*const gUnk_080D1B1C[7])(GyorgMaleEntity*); +void (*const gUnk_080D1B38[5])(GyorgMaleEntity*); +void (*const gUnk_080D1B4C[5])(GyorgMaleEntity*); const u16 gUnk_080D1B60[8]; const s16 gUnk_080D1B70[2]; // or 3? const u16 gUnk_080D1B74[0x10]; -void (*const gUnk_080D1B94[0xA])(Entity*); +void (*const gUnk_080D1B94[0xA])(GyorgMaleEntity*); const u16 gUnk_080D1BBC[2]; -void (*const gUnk_080D1BC0[7])(Entity*); -void (*const gUnk_080D1BDC[5])(Entity*); +void (*const gUnk_080D1BC0[7])(GyorgMaleEntity*); +void (*const gUnk_080D1BDC[5])(GyorgMaleEntity*); const s16 gUnk_080D1BF0[2]; -void (*const gUnk_080D1BF4[3])(Entity*); +void (*const gUnk_080D1BF4[3])(GyorgMaleEntity*); const s8 gUnk_080D1C00[4]; const u16 gUnk_080D1C04[0x20]; const u8 gUnk_080D1C44[0xC]; const u16 gUnk_080D1C50[8]; const u16 gUnk_080D1C60[8]; -void sub_08046898(Entity*); // action 0 -void sub_08046910(Entity*); // action 1 -void sub_08046930(Entity*); // action 1 subAction 0 -void sub_0804696C(Entity*); // action 1 subAction 1 -void sub_080469CC(Entity*); // action 1 subAction 2 -void sub_080469F4(Entity*); // action 1 subAction 3 -void sub_08046A30(Entity*); // action 1 subAction 4 -void sub_08046A54(Entity*); // action 1 subAction 5 -void sub_08046A78(Entity*); // action 1 subAction 6 -void sub_08046A9C(Entity*); // action 2 -void sub_08046AE8(Entity*); // action 2 subAction 0 -void sub_08046B18(Entity*); // action 2 subAction 1 -void sub_08046B8C(Entity*); // action 2 subAction 2 -void sub_08046C04(Entity*); // action 2 subAction 3 -void sub_08046C88(Entity*); // action 2 subAction 4 -void sub_08046CEC(Entity*); // action 3 -void sub_08046D44(Entity*); // action 3 subAction 0 -void sub_08046D98(Entity*); // action 3 subAction 1 -void sub_08046E0C(Entity*); // action 3 subAction 2 -void sub_08046E68(Entity*); // action 3 subAction 3 -void sub_08046EF4(Entity*); // action 3 subAction 4 -void sub_08046F64(Entity*); // action 4 -void sub_08046FE8(Entity*); // action 4 subAction 0 -void sub_0804702C(Entity*); // action 4 subAction 1 -void sub_080470B4(Entity*); // action 4 subAction 2 -void sub_08047140(Entity*); // action 4 subAction 3 -void sub_0804717C(Entity*); // action 4 subAction 4 -void sub_080471C8(Entity*); // action 4 subAction 5 -void sub_0804723C(Entity*); // action 4 subAction 6 -void sub_08047284(Entity*); // action 4 subAction 7 -void sub_080472BC(Entity*); // action 4 subAction 8 -void sub_08047310(Entity*); // action 4 subAction 9 -void sub_0804736C(Entity*); // action 5 -void sub_080473B8(Entity*); // action 5 subAction 0 -void sub_080473F0(Entity*); // action 5 subAction 1 -void sub_08047484(Entity*); // action 5 subAction 2 -void sub_08047508(Entity*); // action 5 subAction 3 -void sub_080475F4(Entity*); // action 5 subAction 4 -void sub_0804763C(Entity*); // action 5 subAction 5 -void sub_0804772C(Entity*); // action 5 subAction 6 -void sub_08047778(Entity*); // action 6 -void sub_08047798(Entity*); // action 6 subAction 0 -void sub_080477F0(Entity*); // action 6 subAction 1 -void sub_08047914(Entity*); // action 6 subAction 2 -void sub_08047978(Entity*); // action 6 subAction 3 -void sub_08047B08(Entity*); // action 6 subAction 4 -void sub_08047B84(Entity*); // action 7 -void sub_08047BA4(Entity*); // action 7 subAction 0 -void sub_08047BF0(Entity*); // action 7 subAction 1, also called elsewhere -void sub_08047D24(Entity*); // action 7 subAction 2 -void sub_08047D88(Entity*); // -void sub_08047DF0(Entity*, u32); -void sub_08047E48(Entity*); // -void sub_08047E58(Entity*); // -void sub_08047EA4(Entity*, u32); -u32 sub_08047F68(Entity*); // distance this to player? -void sub_08048004(Entity*); // -void sub_0804813C(Entity*); // +void sub_08046898(GyorgMaleEntity*); // action 0 +void sub_08046910(GyorgMaleEntity*); // action 1 +void sub_08046930(GyorgMaleEntity*); // action 1 subAction 0 +void sub_0804696C(GyorgMaleEntity*); // action 1 subAction 1 +void sub_080469CC(GyorgMaleEntity*); // action 1 subAction 2 +void sub_080469F4(GyorgMaleEntity*); // action 1 subAction 3 +void sub_08046A30(GyorgMaleEntity*); // action 1 subAction 4 +void sub_08046A54(GyorgMaleEntity*); // action 1 subAction 5 +void sub_08046A78(GyorgMaleEntity*); // action 1 subAction 6 +void sub_08046A9C(GyorgMaleEntity*); // action 2 +void sub_08046AE8(GyorgMaleEntity*); // action 2 subAction 0 +void sub_08046B18(GyorgMaleEntity*); // action 2 subAction 1 +void sub_08046B8C(GyorgMaleEntity*); // action 2 subAction 2 +void sub_08046C04(GyorgMaleEntity*); // action 2 subAction 3 +void sub_08046C88(GyorgMaleEntity*); // action 2 subAction 4 +void sub_08046CEC(GyorgMaleEntity*); // action 3 +void sub_08046D44(GyorgMaleEntity*); // action 3 subAction 0 +void sub_08046D98(GyorgMaleEntity*); // action 3 subAction 1 +void sub_08046E0C(GyorgMaleEntity*); // action 3 subAction 2 +void sub_08046E68(GyorgMaleEntity*); // action 3 subAction 3 +void sub_08046EF4(GyorgMaleEntity*); // action 3 subAction 4 +void sub_08046F64(GyorgMaleEntity*); // action 4 +void sub_08046FE8(GyorgMaleEntity*); // action 4 subAction 0 +void sub_0804702C(GyorgMaleEntity*); // action 4 subAction 1 +void sub_080470B4(GyorgMaleEntity*); // action 4 subAction 2 +void sub_08047140(GyorgMaleEntity*); // action 4 subAction 3 +void sub_0804717C(GyorgMaleEntity*); // action 4 subAction 4 +void sub_080471C8(GyorgMaleEntity*); // action 4 subAction 5 +void sub_0804723C(GyorgMaleEntity*); // action 4 subAction 6 +void sub_08047284(GyorgMaleEntity*); // action 4 subAction 7 +void sub_080472BC(GyorgMaleEntity*); // action 4 subAction 8 +void sub_08047310(GyorgMaleEntity*); // action 4 subAction 9 +void sub_0804736C(GyorgMaleEntity*); // action 5 +void sub_080473B8(GyorgMaleEntity*); // action 5 subAction 0 +void sub_080473F0(GyorgMaleEntity*); // action 5 subAction 1 +void sub_08047484(GyorgMaleEntity*); // action 5 subAction 2 +void sub_08047508(GyorgMaleEntity*); // action 5 subAction 3 +void sub_080475F4(GyorgMaleEntity*); // action 5 subAction 4 +void sub_0804763C(GyorgMaleEntity*); // action 5 subAction 5 +void sub_0804772C(GyorgMaleEntity*); // action 5 subAction 6 +void sub_08047778(GyorgMaleEntity*); // action 6 +void sub_08047798(GyorgMaleEntity*); // action 6 subAction 0 +void sub_080477F0(GyorgMaleEntity*); // action 6 subAction 1 +void sub_08047914(GyorgMaleEntity*); // action 6 subAction 2 +void sub_08047978(GyorgMaleEntity*); // action 6 subAction 3 +void sub_08047B08(GyorgMaleEntity*); // action 6 subAction 4 +void sub_08047B84(GyorgMaleEntity*); // action 7 +void sub_08047BA4(GyorgMaleEntity*); // action 7 subAction 0 +void sub_08047BF0(GyorgMaleEntity*); // action 7 subAction 1, also called elsewhere +void sub_08047D24(GyorgMaleEntity*); // action 7 subAction 2 +void sub_08047D88(GyorgMaleEntity*); // +void sub_08047DF0(GyorgMaleEntity*, u32); +void sub_08047E48(GyorgMaleEntity*); // +void sub_08047E58(GyorgMaleEntity*); // +void sub_08047EA4(GyorgMaleEntity*, u32); +u32 sub_08047F68(GyorgMaleEntity*); // distance this to player? +void sub_08048004(GyorgMaleEntity*); // +void sub_0804813C(GyorgMaleEntity*); // u32 sub_08048158(u32); -void sub_08048178(Entity*, u32); +void sub_08048178(GyorgMaleEntity*, u32); -void (*const gUnk_080D1AFC[8])(Entity*) = { sub_08046898, sub_08046910, sub_08046A9C, sub_08046CEC, - sub_08046F64, sub_0804736C, sub_08047778, sub_08047B84 }; +void (*const gUnk_080D1AFC[8])(GyorgMaleEntity*) = { sub_08046898, sub_08046910, sub_08046A9C, sub_08046CEC, + sub_08046F64, sub_0804736C, sub_08047778, sub_08047B84 }; -void GyorgMale(Entity* this) { - if (this->action) { - this->spriteSettings.draw = this->field_0x7c.BYTES.byte1; +void GyorgMale(GyorgMaleEntity* this) { + if (super->action) { + super->spriteSettings.draw = this->unk_7d; } - gUnk_080D1AFC[this->action](this); - if (this->action != 7) { - sub_0805EC9C(this, 0xaa, 0xaa, this->field_0x78.HWORD); + gUnk_080D1AFC[super->action](this); + if (super->action != 7) { + sub_0805EC9C(this, 0xaa, 0xaa, this->unk_78); } - this->animationState = -(this->field_0x78.HWORD >> 8); + super->animationState = -(this->unk_78 >> 8); sub_08048004(this); - this->field_0x7c.BYTES.byte1 = this->spriteSettings.draw; - if (this->spriteSettings.draw == 1 && (this->y.HALF.HI - gRoomControls.roomScrollY + 0x30) > 0x100u) { - this->spriteSettings.draw = 0; + this->unk_7d = super->spriteSettings.draw; + if (super->spriteSettings.draw == 1 && (super->y.HALF.HI - gRoomControls.roomScrollY + 0x30) > 0x100u) { + super->spriteSettings.draw = 0; } - this->cutsceneBeh.HWORD = gPlayerEntity.x.HALF.HI; - this->field_0x86.HWORD = gPlayerEntity.y.HALF.HI; + this->unk_84 = gPlayerEntity.x.HALF.HI; + this->unk_86 = gPlayerEntity.y.HALF.HI; } -void sub_08046898(Entity* this) { +void sub_08046898(GyorgMaleEntity* this) { Entity* tmp = CreateProjectile(0x22); u32 tmp2; if (!tmp) return; tmp->type = 1; - tmp->parent = this; - this->child = tmp; - this->action = 1; - this->subAction = 0; - this->spriteRendering.b0 = 3; - this->spriteSettings.draw = 1; - this->spriteOrientation.flipY = 2; - this->spriteRendering.b3 = 2; - this->field_0x3c |= 0x10; - this->collisionLayer = 2; - this->field_0x7c.BYTES.byte0 = 0; - this->field_0x78.HWORD = 0; - this->field_0x7a.HWORD = 0; - this->field_0x70.HALF.HI = 0; - InitAnimationForceUpdate(this, 0); + tmp->parent = super; + super->child = tmp; + super->action = 1; + super->subAction = 0; + super->spriteRendering.b0 = 3; + super->spriteSettings.draw = 1; + super->spriteOrientation.flipY = 2; + super->spriteRendering.b3 = 2; + super->field_0x3c |= 0x10; + super->collisionLayer = 2; + this->unk_7c = 0; + this->unk_78 = 0; + this->unk_7a = 0; + this->unk_72 = 0; + InitAnimationForceUpdate(super, 0); } -void (*const gUnk_080D1B1C[7])(Entity*) = { sub_08046930, sub_0804696C, sub_080469CC, sub_080469F4, - sub_08046A30, sub_08046A54, sub_08046A78 }; +void (*const gUnk_080D1B1C[7])(GyorgMaleEntity*) = { sub_08046930, sub_0804696C, sub_080469CC, sub_080469F4, + sub_08046A30, sub_08046A54, sub_08046A78 }; -void sub_08046910(Entity* this) { - gUnk_080D1B1C[this->subAction](this); - UpdateAnimationSingleFrame(this); +void sub_08046910(GyorgMaleEntity* this) { + gUnk_080D1B1C[super->subAction](this); + UpdateAnimationSingleFrame(super); } -void sub_08046930(Entity* this) { - if (this->type) { - this->subAction = 5; - this->direction = 0x20; +void sub_08046930(GyorgMaleEntity* this) { + if (super->type) { + super->subAction = 5; + super->direction = 0x20; #ifdef EU - this->speed = 0x200; + super->speed = 0x200; #else - this->speed = 0x280; + super->speed = 0x280; #endif } sub_08047D88(this); - if (this->field_0x7c.BYTES.byte0 == 0) + if (this->unk_7c == 0) return; - this->subAction = 1; - this->actionDelay = 1; - this->animationState = 0; - this->direction = 0; + super->subAction = 1; + super->actionDelay = 1; + super->animationState = 0; + super->direction = 0; #ifdef EU - this->speed = 0x200; + super->speed = 0x200; #else - this->speed = 0x280; + super->speed = 0x280; #endif } -void sub_0804696C(Entity* this) { +void sub_0804696C(GyorgMaleEntity* this) { sub_08047E48(this); - if (gRoomControls.roomOriginY + 0x130 > this->y.HALF.HI) { - this->subAction = 2; - this->direction = 0x80; - this->speed = 0x100; - this->spriteOrientation.flipY = 3; - this->spriteRendering.b3 = 3; + if (gRoomControls.roomOriginY + 0x130 > super->y.HALF.HI) { + super->subAction = 2; + super->direction = 0x80; + super->speed = 0x100; + super->spriteOrientation.flipY = 3; + super->spriteRendering.b3 = 3; #ifndef EU SoundReq(BGM_BOSS_THEME); #endif } - if (this->actionDelay) { + if (super->actionDelay) { #ifdef EU - if (gRoomControls.roomOriginY + 0x210 > this->y.HALF.HI) { + if (gRoomControls.roomOriginY + 0x210 > super->y.HALF.HI) { #else - if (gRoomControls.roomOriginY + 0x258 > this->y.HALF.HI) { + if (gRoomControls.roomOriginY + 0x258 > super->y.HALF.HI) { #endif - this->actionDelay = 0; + super->actionDelay = 0; SoundReq(SFX_APPARATE); } } } -void sub_080469CC(Entity* this) { +void sub_080469CC(GyorgMaleEntity* this) { sub_08047E48(this); - if (gRoomControls.roomOriginY + 0x210 < this->y.HALF.HI) { - this->subAction = 3; - this->direction = 0x90; + if (gRoomControls.roomOriginY + 0x210 < super->y.HALF.HI) { + super->subAction = 3; + super->direction = 0x90; } } -void sub_080469F4(Entity* this) { +void sub_080469F4(GyorgMaleEntity* this) { sub_08047E48(this); - if (gRoomControls.roomOriginY + 0x290 < this->y.HALF.HI) { - this->subAction = 4; - this->spriteOrientation.flipY = 2; - this->spriteRendering.b3 = 2; + if (gRoomControls.roomOriginY + 0x290 < super->y.HALF.HI) { + super->subAction = 4; + super->spriteOrientation.flipY = 2; + super->spriteRendering.b3 = 2; } } -void sub_08046A30(Entity* this) { +void sub_08046A30(GyorgMaleEntity* this) { sub_08047D88(this); - if (((Entity*)this->myHeap)->prev->field_0x6c.HWORD & 1) { - this->action = 2; - this->subAction = 0; + if (((GyorgFemaleHeap*)super->myHeap)->boss->unk_6c & 1) { + super->action = 2; + super->subAction = 0; } } -void sub_08046A54(Entity* this) { +void sub_08046A54(GyorgMaleEntity* this) { sub_08047E48(this); - if (gRoomControls.roomOriginX + 0x380 < this->x.HALF.HI) { - this->subAction = 6; + if (gRoomControls.roomOriginX + 0x380 < super->x.HALF.HI) { + super->subAction = 6; } } -void sub_08046A78(Entity* this) { +void sub_08046A78(GyorgMaleEntity* this) { sub_08047D88(this); - if (((Entity*)this->myHeap)->prev->field_0x6c.HWORD & 0x10) { - this->action = 3; - this->subAction = 0; + if (((GyorgFemaleHeap*)super->myHeap)->boss->unk_6c & 0x10) { + super->action = 3; + super->subAction = 0; } } -void (*const gUnk_080D1B38[5])(Entity*) = { sub_08046AE8, sub_08046B18, sub_08046B8C, sub_08046C04, sub_08046C88 }; +void (*const gUnk_080D1B38[5])(GyorgMaleEntity*) = { sub_08046AE8, sub_08046B18, sub_08046B8C, sub_08046C04, + sub_08046C88 }; -void sub_08046A9C(Entity* this) { - if (this->animIndex == 1) { - if (this->frame == 1) { - InitAnimationForceUpdate(this, 0); +void sub_08046A9C(GyorgMaleEntity* this) { + if (super->animIndex == 1) { + if (super->frame == 1) { + InitAnimationForceUpdate(super, 0); } } - gUnk_080D1B38[this->subAction](this); - UpdateAnimationSingleFrame(this); - if (this->field_0x7c.BYTES.byte0) { - this->action = 6; - this->subAction = 0; + gUnk_080D1B38[super->subAction](this); + UpdateAnimationSingleFrame(super); + if (this->unk_7c) { + super->action = 6; + super->subAction = 0; } } -void sub_08046AE8(Entity* this) { - this->subAction = 1; - this->speed = 0x180; - sub_08048178(this, ((Entity*)this->myHeap)->next->animationState >> 5); - this->field_0x76.HWORD = this->direction << 8; +void sub_08046AE8(GyorgMaleEntity* this) { + super->subAction = 1; + super->speed = 0x180; + sub_08048178(this, ((GyorgFemaleHeap*)super->myHeap)->female->base.animationState >> 5); + this->unk_76 = super->direction << 8; sub_08047D88(this); } -void sub_08046B18(Entity* this) { - u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); - if (tmp != this->direction) { - if (((tmp - this->direction) & 0xFF) > 0x80) { - this->field_0x76.HWORD -= 0x100; +void sub_08046B18(GyorgMaleEntity* this) { + u32 tmp = sub_080045DA(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI); + if (tmp != super->direction) { + if (((tmp - super->direction) & 0xFF) > 0x80) { + this->unk_76 -= 0x100; } else { - this->field_0x76.HWORD += 0x100; + this->unk_76 += 0x100; } - this->direction = this->field_0x76.HWORD >> 8; + super->direction = this->unk_76 >> 8; } else { - this->subAction = 2; + super->subAction = 2; } sub_08047D88(this); - sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + sub_08047EA4(this, ((0x100 - super->direction) & 0xFF) << 8); } -void sub_08046B8C(Entity* this) { - if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { - this->subAction = 3; - this->field_0x76.HWORD = this->direction << 8; - this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x200; - this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x210; +void sub_08046B8C(GyorgMaleEntity* this) { + if (sub_0806FCB8(super, this->unk_80, this->unk_82, 4)) { + super->subAction = 3; + this->unk_76 = super->direction << 8; + this->unk_80 = gRoomControls.roomOriginX + 0x200; + this->unk_82 = gRoomControls.roomOriginY + 0x210; sub_08047D88(this); } else { - this->direction = - sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + super->direction = sub_080045DA(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI); + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); } } -void sub_08046C04(Entity* this) { - u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); - if (tmp != this->direction) { - if (((tmp - this->direction) & 0xFF) > 0x80) { - this->field_0x76.HWORD -= 0x100; +void sub_08046C04(GyorgMaleEntity* this) { + u32 tmp = sub_080045DA(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI); + if (tmp != super->direction) { + if (((tmp - super->direction) & 0xFF) > 0x80) { + this->unk_76 -= 0x100; } else { - this->field_0x76.HWORD += 0x100; + this->unk_76 += 0x100; } - this->direction = this->field_0x76.HWORD >> 8; + super->direction = this->unk_76 >> 8; } else { - this->subAction = 4; - this->field_0x70.HALF.LO = ((tmp + 0x20) & 0xC0) >> 6; + super->subAction = 4; + this->unk_70 = ((tmp + 0x20) & 0xC0) >> 6; } sub_08047D88(this); - sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + sub_08047EA4(this, ((0x100 - super->direction) & 0xFF) << 8); } -void sub_08046C88(Entity* this) { - if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { - this->subAction = 1; - sub_08048178(this, sub_08048158(this->field_0x70.HALF_U.LO)); +void sub_08046C88(GyorgMaleEntity* this) { + if (sub_0806FCB8(super, this->unk_80, this->unk_82, 4)) { + super->subAction = 1; + sub_08048178(this, sub_08048158(this->unk_70)); sub_08047D88(this); } else { - this->direction = - sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + super->direction = sub_080045DA(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI); + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); } } -void (*const gUnk_080D1B4C[5])(Entity*) = { sub_08046D44, sub_08046D98, sub_08046E0C, sub_08046E68, sub_08046EF4 }; +void (*const gUnk_080D1B4C[5])(GyorgMaleEntity*) = { sub_08046D44, sub_08046D98, sub_08046E0C, sub_08046E68, + sub_08046EF4 }; -void sub_08046CEC(Entity* this) { - if (this->animIndex == 0) { - if (this->frame == 1) { - InitAnimationForceUpdate(this, 1); +void sub_08046CEC(GyorgMaleEntity* this) { + if (super->animIndex == 0) { + if (super->frame == 1) { + InitAnimationForceUpdate(super, 1); } } - gUnk_080D1B4C[this->subAction](this); - UpdateAnimationSingleFrame(this); - if (((Entity*)this->myHeap)->prev->field_0x6c.HWORD & 2) { - this->action = 2; - this->subAction = 0; - this->animationState = this->speed; + gUnk_080D1B4C[super->subAction](this); + UpdateAnimationSingleFrame(super); + if (((GyorgFemaleHeap*)super->myHeap)->boss->unk_6c & 2) { + super->action = 2; + super->subAction = 0; + super->animationState = super->speed; } } const u16 gUnk_080D1B60[8] = { 0x200, 0x184, 0x28C, 0x210, 0x200, 0x29C, 0x174, 0x210 }; -void sub_08046D44(Entity* this) { +void sub_08046D44(GyorgMaleEntity* this) { const u16* tmp; - this->subAction = 1; - this->speed = 0x200; - tmp = gUnk_080D1B60 + (((Entity*)this->myHeap)->next->animationState >> 5); - this->field_0x80.HWORD = tmp[0] + gRoomControls.roomOriginX; - this->field_0x82.HWORD = tmp[1] + gRoomControls.roomOriginY; - this->field_0x76.HWORD = this->direction << 8; + super->subAction = 1; + super->speed = 0x200; + tmp = gUnk_080D1B60 + (((Entity*)super->myHeap)->next->animationState >> 5); + this->unk_80 = tmp[0] + gRoomControls.roomOriginX; + this->unk_82 = tmp[1] + gRoomControls.roomOriginY; + this->unk_76 = super->direction << 8; sub_08047D88(this); } -void sub_08046D98(Entity* this) { - u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); - if (tmp != this->direction) { - if (((tmp - this->direction) & 0xFF) > 0x80) { - this->field_0x76.HWORD -= 0x100; +void sub_08046D98(GyorgMaleEntity* this) { + u32 tmp = sub_080045DA(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI); + if (tmp != super->direction) { + if (((tmp - super->direction) & 0xFF) > 0x80) { + this->unk_76 -= 0x100; } else { - this->field_0x76.HWORD += 0x100; + this->unk_76 += 0x100; } - this->direction = this->field_0x76.HWORD >> 8; + super->direction = this->unk_76 >> 8; } else { - this->subAction = 2; + super->subAction = 2; } sub_08047D88(this); - sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + sub_08047EA4(this, ((0x100 - super->direction) & 0xFF) << 8); } -void sub_08046E0C(Entity* this) { - if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { - this->subAction = 3; - this->field_0x76.HWORD = this->direction << 8; +void sub_08046E0C(GyorgMaleEntity* this) { + if (sub_0806FCB8(super, this->unk_80, this->unk_82, 4)) { + super->subAction = 3; + this->unk_76 = super->direction << 8; sub_08047D88(this); } else { - this->direction = - sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + super->direction = sub_080045DA(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI); + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); } } const s16 gUnk_080D1B70[2] = { 0x40, -0x40 }; -void sub_08046E68(Entity* this) { - u32 tmp = ((Entity*)this->myHeap)->next->animationState ^ 0x80; - if (tmp != this->direction) { - if (((tmp - this->direction) & 0xFF) > 0x80) { - this->field_0x76.HWORD -= 0x100; +void sub_08046E68(GyorgMaleEntity* this) { + u32 tmp = ((GyorgFemaleHeap*)super->myHeap)->female->base.animationState ^ 0x80; + if (tmp != super->direction) { + if (((tmp - super->direction) & 0xFF) > 0x80) { + this->unk_76 -= 0x100; } else { - this->field_0x76.HWORD += 0x100; + this->unk_76 += 0x100; } - this->direction = this->field_0x76.HWORD >> 8; + super->direction = this->unk_76 >> 8; sub_08047D88(this); - sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + sub_08047EA4(this, ((0x100 - super->direction) & 0xFF) << 8); } else { - this->subAction = 4; - this->actionDelay = 0x3F; - this->field_0xf = 1; - this->direction = (gUnk_080D1B70[Random() & 1] + tmp) & 0xC0; + super->subAction = 4; + super->actionDelay = 0x3F; + super->field_0xf = 1; + super->direction = (gUnk_080D1B70[Random() & 1] + tmp) & 0xC0; sub_08047D88(this); } } @@ -394,534 +395,536 @@ void sub_08046E68(Entity* this) { const u16 gUnk_080D1B74[0x10] = { 0x20, 0x40, 0x60, 0x80, 0xA0, 0xC0, 0xE0, 0x100, 0x100, 0xE0, 0xC0, 0xA0, 0x80, 0x60, 0x40, 0x20 }; -void sub_08046EF4(Entity* this) { - if (--this->actionDelay == 0) { - this->actionDelay = 0x7F; - this->direction ^= 0x80; +void sub_08046EF4(GyorgMaleEntity* this) { + if (--super->actionDelay == 0) { + super->actionDelay = 0x7F; + super->direction ^= 0x80; } - this->speed = gUnk_080D1B74[(this->actionDelay >> 3) & 0xF]; - if ((--this->field_0xf & 0xFF) == 0) { + super->speed = gUnk_080D1B74[(super->actionDelay >> 3) & 0xF]; + if ((--super->field_0xf & 0xFF) == 0) { Entity* tmp; - this->field_0xf = (Random() & 0x38) + 0x78; + super->field_0xf = (Random() & 0x38) + 0x78; tmp = CreateProjectile(0x23); if (tmp) { tmp->collisionLayer = 2; - tmp->parent = this; + tmp->parent = super; UpdateSpriteForCollisionLayer(tmp); } } sub_08047E48(this); } -void (*const gUnk_080D1B94[0xA])(Entity*) = { sub_08046FE8, sub_0804702C, sub_080470B4, sub_08047140, sub_0804717C, - sub_080471C8, sub_0804723C, sub_08047284, sub_080472BC, sub_08047310 }; +void (*const gUnk_080D1B94[0xA])(GyorgMaleEntity*) = { sub_08046FE8, sub_0804702C, sub_080470B4, sub_08047140, + sub_0804717C, sub_080471C8, sub_0804723C, sub_08047284, + sub_080472BC, sub_08047310 }; -void sub_08046F64(Entity* this) { - if (this->animIndex == 0) { - if (this->frame == 1) { - InitAnimationForceUpdate(this, 1); +void sub_08046F64(GyorgMaleEntity* this) { + if (super->animIndex == 0) { + if (super->frame == 1) { + InitAnimationForceUpdate(super, 1); } } - gUnk_080D1B94[this->subAction](this); - UpdateAnimationSingleFrame(this); - if (--this->field_0x7c.HALF.HI == 0) { + gUnk_080D1B94[super->subAction](this); + UpdateAnimationSingleFrame(super); + if (--this->unk_7e == 0) { Entity* tmp; - this->field_0x7c.HALF.HI = 0x78; + this->unk_7e = 0x78; tmp = CreateProjectile(0x23); if (tmp) { tmp->collisionLayer = 2; - tmp->parent = this; + tmp->parent = super; UpdateSpriteForCollisionLayer(tmp); } } - if (((Entity*)this->myHeap)->prev->field_0x6c.HWORD & 4) { - this->action = 5; - this->subAction = 0; + if (((GyorgFemaleHeap*)super->myHeap)->boss->unk_6c & 4) { + super->action = 5; + super->subAction = 0; } } -void sub_08046FE8(Entity* this) { - this->subAction = 1; - this->speed = 0x1c0; - this->field_0x7c.HALF.HI = 0x1e; - this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x290; - this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x190; +void sub_08046FE8(GyorgMaleEntity* this) { + super->subAction = 1; + super->speed = 0x1c0; + this->unk_7e = 0x1e; + this->unk_80 = gRoomControls.roomOriginX + 0x290; + this->unk_82 = gRoomControls.roomOriginY + 0x190; sub_08047D88(this); } -void sub_0804702C(Entity* this) { - u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); - if (((this->direction - tmp + 2) & 0xFF) > 4) { - if ((tmp - this->direction) & 0x80) { - this->direction--; +void sub_0804702C(GyorgMaleEntity* this) { + u32 tmp = sub_080045DA(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI); + if (((super->direction - tmp + 2) & 0xFF) > 4) { + if ((tmp - super->direction) & 0x80) { + super->direction--; } else { - this->direction++; + super->direction++; } } - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); - if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, (this->speed >> 0x10) + 0x10)) { - this->subAction = 2; - this->field_0x76.HWORD = this->direction << 8; - this->speed = 0x280; + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); + if (sub_0806FCB8(super, this->unk_80, this->unk_82, (super->speed >> 0x10) + 0x10)) { + super->subAction = 2; + this->unk_76 = super->direction << 8; + super->speed = 0x280; } } const u16 gUnk_080D1BBC[2] = { 0x1A0, 0xE0 }; -void sub_080470B4(Entity* this) { +void sub_080470B4(GyorgMaleEntity* this) { u32 tmp = 0x40; - if (tmp != this->direction) { - if (((tmp - this->direction) & 0xFF) > 0x80) { - this->field_0x76.HWORD -= 0x100; + if (tmp != super->direction) { + if (((tmp - super->direction) & 0xFF) > 0x80) { + this->unk_76 -= 0x100; } else { - this->field_0x76.HWORD += 0x100; + this->unk_76 += 0x100; } - this->direction = this->field_0x76.HWORD >> 8; + super->direction = this->unk_76 >> 8; sub_08047D88(this); - sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + sub_08047EA4(this, ((0x100 - super->direction) & 0xFF) << 8); } else { - this->subAction = 3; - this->speed = 0x200; - this->field_0x76.HWORD = this->direction << 8; - this->field_0x74.HWORD = gUnk_080D1BBC[Random() & 1]; + super->subAction = 3; + super->speed = 0x200; + this->unk_76 = super->direction << 8; + this->unk_74 = gUnk_080D1BBC[Random() & 1]; sub_08047D88(this); } } -void sub_08047140(Entity* this) { - this->field_0x76.HWORD += this->field_0x74.HWORD; - this->direction = this->field_0x76.HWORD >> 8; - if (this->direction > 0xbf) { - this->direction = 0xC0; - this->subAction = 4; +void sub_08047140(GyorgMaleEntity* this) { + this->unk_76 += this->unk_74; + super->direction = this->unk_76 >> 8; + if (super->direction > 0xbf) { + super->direction = 0xC0; + super->subAction = 4; } - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); } -void sub_0804717C(Entity* this) { - if (this->speed < 0x280) { - this->speed += 8; +void sub_0804717C(GyorgMaleEntity* this) { + if (super->speed < 0x280) { + super->speed += 8; } - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); - if (gRoomControls.roomOriginX + 0x200 > this->x.HALF.HI) { - this->subAction = 5; + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); + if (gRoomControls.roomOriginX + 0x200 > super->x.HALF.HI) { + super->subAction = 5; } } -void sub_080471C8(Entity* this) { - if (this->speed > 0x180) { - this->speed -= 0x10; +void sub_080471C8(GyorgMaleEntity* this) { + if (super->speed > 0x180) { + super->speed -= 0x10; } - if (this->direction < 0xe0) { - this->direction++; + if (super->direction < 0xe0) { + super->direction++; } - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); - if (gRoomControls.roomOriginY + 0x190 <= this->y.HALF.HI) + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); + if (gRoomControls.roomOriginY + 0x190 <= super->y.HALF.HI) return; - if (this->field_0x74.HWORD > 0x100) { + if (this->unk_74 > 0x100) { if (Random() & 1) { - this->subAction = 6; + super->subAction = 6; } else { - this->subAction = 0; + super->subAction = 0; } } else { - this->subAction = 0; + super->subAction = 0; } } -void sub_0804723C(Entity* this) { - this->direction -= 2; - if (this->direction < 0xc0) { - this->subAction = 7; - this->speed = 0x200; - this->direction = 0xc0; - this->field_0x76.HWORD = 0xc000; +void sub_0804723C(GyorgMaleEntity* this) { + super->direction -= 2; + if (super->direction < 0xc0) { + super->subAction = 7; + super->speed = 0x200; + super->direction = 0xc0; + this->unk_76 = 0xc000; } sub_08047D88(this); - sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + sub_08047EA4(this, ((0x100 - super->direction) & 0xFF) << 8); } -void sub_08047284(Entity* this) { - this->field_0x76.HWORD -= 0xe0; - this->direction = this->field_0x76.HWORD >> 8; - if (this->direction < 0x40) { - this->direction = 0x40; - this->subAction = 8; +void sub_08047284(GyorgMaleEntity* this) { + this->unk_76 -= 0xe0; + super->direction = this->unk_76 >> 8; + if (super->direction < 0x40) { + super->direction = 0x40; + super->subAction = 8; } - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); } -void sub_080472BC(Entity* this) { - if (this->speed < 0x300) { - this->speed += 8; +void sub_080472BC(GyorgMaleEntity* this) { + if (super->speed < 0x300) { + super->speed += 8; } - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); - if (gRoomControls.roomOriginX + 0x2B0 >= this->x.HALF.HI) + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); + if (gRoomControls.roomOriginX + 0x2B0 >= super->x.HALF.HI) return; - this->subAction = 9; - this->field_0x76.HWORD = this->direction << 8; + super->subAction = 9; + this->unk_76 = super->direction << 8; } -void sub_08047310(Entity* this) { - if (this->speed < 0x180) { - this->speed -= 0x10; +void sub_08047310(GyorgMaleEntity* this) { + if (super->speed < 0x180) { + super->speed -= 0x10; } - this->field_0x76.HWORD -= 0x1D0; - this->direction = this->field_0x76.HWORD >> 8; - if ((u8)(this->direction + 0x7F) < 0x40) { - this->direction = 0xC0; - this->subAction = 4; + this->unk_76 -= 0x1D0; + super->direction = this->unk_76 >> 8; + if ((u8)(super->direction + 0x7F) < 0x40) { + super->direction = 0xC0; + super->subAction = 4; } - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); } -void (*const gUnk_080D1BC0[7])(Entity*) = { sub_080473B8, sub_080473F0, sub_08047484, sub_08047508, - sub_080475F4, sub_0804763C, sub_0804772C }; +void (*const gUnk_080D1BC0[7])(GyorgMaleEntity*) = { sub_080473B8, sub_080473F0, sub_08047484, sub_08047508, + sub_080475F4, sub_0804763C, sub_0804772C }; -void sub_0804736C(Entity* this) { - if (this->animIndex == 1) { - if (this->frame == 1) { - InitAnimationForceUpdate(this, 0); +void sub_0804736C(GyorgMaleEntity* this) { + if (super->animIndex == 1) { + if (super->frame == 1) { + InitAnimationForceUpdate(super, 0); } } - gUnk_080D1BC0[this->subAction](this); - UpdateAnimationSingleFrame(this); - if (this->health == 0) { - this->action = 7; - this->subAction = 0; + gUnk_080D1BC0[super->subAction](this); + UpdateAnimationSingleFrame(super); + if (super->health == 0) { + super->action = 7; + super->subAction = 0; } } -void sub_080473B8(Entity* this) { - this->subAction = 1; - this->speed = 0x120; - this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x200; - this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x1D0; +void sub_080473B8(GyorgMaleEntity* this) { + super->subAction = 1; + super->speed = 0x120; + this->unk_80 = gRoomControls.roomOriginX + 0x200; + this->unk_82 = gRoomControls.roomOriginY + 0x1D0; sub_08047D88(this); } -void sub_080473F0(Entity* this) { - u32 tmp = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); - if (((this->direction - tmp + 2) & 0xFF) > 4) { - s32 tmp2 = tmp - this->direction; +void sub_080473F0(GyorgMaleEntity* this) { + u32 tmp = sub_080045DA(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI); + if (((super->direction - tmp + 2) & 0xFF) > 4) { + s32 tmp2 = tmp - super->direction; if (tmp2 & 0x80) { if (tmp2 < -1) { - this->direction -= 2; + super->direction -= 2; } else { - this->direction -= 1; + super->direction -= 1; } } else { if (tmp2 > 1) { - this->direction += 2; + super->direction += 2; } else { - this->direction += 1; + super->direction += 1; } } } - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); - if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 8)) { - this->subAction = 2; - this->field_0x76.HWORD = this->direction << 8; - this->speed = 0x180; + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); + if (sub_0806FCB8(super, this->unk_80, this->unk_82, 8)) { + super->subAction = 2; + this->unk_76 = super->direction << 8; + super->speed = 0x180; } } -void sub_08047484(Entity* this) { +void sub_08047484(GyorgMaleEntity* this) { u32 tmp = 0x40; - if (tmp != this->direction) { - if (((tmp - this->direction) & 0xFF) > 0x80) { - this->field_0x76.HWORD -= 0x100; + if (tmp != super->direction) { + if (((tmp - super->direction) & 0xFF) > 0x80) { + this->unk_76 -= 0x100; } else { - this->field_0x76.HWORD += 0x100; + this->unk_76 += 0x100; } - this->direction = this->field_0x76.HWORD >> 8; + super->direction = this->unk_76 >> 8; sub_08047D88(this); - sub_08047EA4(this, ((0x100 - this->direction) & 0xFF) << 8); + sub_08047EA4(this, ((0x100 - super->direction) & 0xFF) << 8); } else { - this->subAction = 3; - this->speed = 0x200; - this->direction = 0x40; - this->field_0x76.HWORD = 0x4000; - this->field_0x74.HWORD = 0x180; - this->field_0x7c.HALF.HI = 0xF0; + super->subAction = 3; + super->speed = 0x200; + super->direction = 0x40; + this->unk_76 = 0x4000; + this->unk_74 = 0x180; + this->unk_7e = 0xF0; sub_08047D88(this); } } -void sub_08047508(Entity* this) { - if (gRoomControls.roomOriginX + 0x1A0 < this->x.HALF.HI) { - if (this->direction == 0) { - if (gRoomControls.roomOriginY + 0x208 >= this->y.HALF.HI) { - this->field_0x74.HWORD = -this->field_0x74.HWORD; - this->field_0x76.HWORD += this->field_0x74.HWORD; - this->direction = this->field_0x76.HWORD >> 8; +void sub_08047508(GyorgMaleEntity* this) { + if (gRoomControls.roomOriginX + 0x1A0 < super->x.HALF.HI) { + if (super->direction == 0) { + if (gRoomControls.roomOriginY + 0x208 >= super->y.HALF.HI) { + this->unk_74 = -this->unk_74; + this->unk_76 += this->unk_74; + super->direction = this->unk_76 >> 8; } } else { - s32 tmp = (s16)this->field_0x74.HWORD; + s32 tmp = (s16)this->unk_74; if (tmp < 0) { - this->field_0x76.HWORD += tmp; - this->direction = this->field_0x76.HWORD >> 8; - if (this->direction & 0x80) { - this->direction = 0; - this->field_0x76.HWORD = 0; + this->unk_76 += tmp; + super->direction = this->unk_76 >> 8; + if (super->direction & 0x80) { + super->direction = 0; + this->unk_76 = 0; } } else { - if (this->direction < 0x40) { - this->field_0x76.HWORD += tmp; - this->direction = this->field_0x76.HWORD >> 8; - if (this->direction >= 0x40) { - this->direction = 0x40; + if (super->direction < 0x40) { + this->unk_76 += tmp; + super->direction = this->unk_76 >> 8; + if (super->direction >= 0x40) { + super->direction = 0x40; } } } } } sub_08047E48(this); - if (gRoomControls.roomOriginX + 0x280 < this->x.HALF.HI) { - this->subAction = 4; - this->speed = 0x200; - this->animationState = this->direction; - this->field_0x76.HWORD = this->direction << 8; + if (gRoomControls.roomOriginX + 0x280 < super->x.HALF.HI) { + super->subAction = 4; + super->speed = 0x200; + super->animationState = super->direction; + this->unk_76 = super->direction << 8; } - if (--this->field_0x7c.HALF.HI == 0) { + if (--this->unk_7e == 0) { Entity* tmp = CreateEnemy(ENEMY_62, Random() & 3); if (tmp) { - tmp->parent = this; + tmp->parent = super; } } } -void sub_080475F4(Entity* this) { - this->field_0x76.HWORD += 0x180; - this->direction = this->field_0x76.HWORD >> 8; - if (this->direction >= 0xc0) { - this->direction = 0xc0; - this->subAction = 5; - this->speed = 0x200; - this->field_0x7c.HALF.HI = 0x3c; +void sub_080475F4(GyorgMaleEntity* this) { + this->unk_76 += 0x180; + super->direction = this->unk_76 >> 8; + if (super->direction >= 0xc0) { + super->direction = 0xc0; + super->subAction = 5; + super->speed = 0x200; + this->unk_7e = 0x3c; } - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); } -void sub_0804763C(Entity* this) { - if (gRoomControls.roomOriginX + 0x1F0 > this->x.HALF.HI) { - if (this->direction == 0) { - if (gRoomControls.roomOriginY + 0x208 >= this->y.HALF.HI) { - this->field_0x74.HWORD = -this->field_0x74.HWORD; - this->field_0x76.HWORD += this->field_0x74.HWORD; - this->direction = this->field_0x76.HWORD >> 8; +void sub_0804763C(GyorgMaleEntity* this) { + if (gRoomControls.roomOriginX + 0x1F0 > super->x.HALF.HI) { + if (super->direction == 0) { + if (gRoomControls.roomOriginY + 0x208 >= super->y.HALF.HI) { + this->unk_74 = -this->unk_74; + this->unk_76 += this->unk_74; + super->direction = this->unk_76 >> 8; } } else { - s32 tmp = (s16)this->field_0x74.HWORD; + s32 tmp = (s16)this->unk_74; if (tmp > 0) { - this->field_0x76.HWORD += tmp; - this->direction = this->field_0x76.HWORD >> 8; - if ((this->direction & 0x80) == 0) { - this->direction = 0; - this->field_0x76.HWORD = 0; + this->unk_76 += tmp; + super->direction = this->unk_76 >> 8; + if ((super->direction & 0x80) == 0) { + super->direction = 0; + this->unk_76 = 0; } } else { - if (this->direction > 0xC0) { - this->field_0x76.HWORD += tmp; - this->direction = this->field_0x76.HWORD >> 8; - if (this->direction <= 0xC0) { - this->direction = 0xC0; + if (super->direction > 0xC0) { + this->unk_76 += tmp; + super->direction = this->unk_76 >> 8; + if (super->direction <= 0xC0) { + super->direction = 0xC0; } } } } } sub_08047E48(this); - if (gRoomControls.roomOriginX + 0x180 > this->x.HALF.HI) { - this->subAction = 6; - this->speed = 0x200; - this->animationState = this->direction; - this->field_0x76.HWORD = this->direction << 8; + if (gRoomControls.roomOriginX + 0x180 > super->x.HALF.HI) { + super->subAction = 6; + super->speed = 0x200; + super->animationState = super->direction; + this->unk_76 = super->direction << 8; } - if (--this->field_0x7c.HALF.HI == 0) { + if (--this->unk_7e == 0) { Entity* tmp = CreateEnemy(ENEMY_62, Random() & 3); if (tmp) { - tmp->parent = this; + tmp->parent = super; } } } -void sub_0804772C(Entity* this) { - this->field_0x76.HWORD -= 0x180; - this->direction = this->field_0x76.HWORD >> 8; - if (this->direction <= 0x40) { - this->direction = 0x40; - this->subAction = 3; - this->speed = 0x200; - this->field_0x7c.HALF.HI = 0x1e; +void sub_0804772C(GyorgMaleEntity* this) { + this->unk_76 -= 0x180; + super->direction = this->unk_76 >> 8; + if (super->direction <= 0x40) { + super->direction = 0x40; + super->subAction = 3; + super->speed = 0x200; + this->unk_7e = 0x1e; } - sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); + sub_08047DF0(this, ((0x100 - super->direction) & 0xFF) << 8); } -void (*const gUnk_080D1BDC[5])(Entity*) = { sub_08047798, sub_080477F0, sub_08047914, sub_08047978, sub_08047B08 }; +void (*const gUnk_080D1BDC[5])(GyorgMaleEntity*) = { sub_08047798, sub_080477F0, sub_08047914, sub_08047978, + sub_08047B08 }; -void sub_08047778(Entity* this) { - gUnk_080D1BDC[this->subAction](this); - UpdateAnimationSingleFrame(this); +void sub_08047778(GyorgMaleEntity* this) { + gUnk_080D1BDC[super->subAction](this); + UpdateAnimationSingleFrame(super); } -void sub_08047798(Entity* this) { - this->subAction = 1; - this->speed = 0x80; - if (this->x.HALF.HI - gRoomControls.roomOriginX < 0x1F8) { - this->field_0x80.HWORD = 0xa8; +void sub_08047798(GyorgMaleEntity* this) { + super->subAction = 1; + super->speed = 0x80; + if (super->x.HALF.HI - gRoomControls.roomOriginX < 0x1F8) { + this->unk_80 = 0xa8; } else { - this->field_0x80.HWORD = 0x348; + this->unk_80 = 0x348; } - this->field_0x80.HWORD += gRoomControls.roomOriginX; - this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x348; + this->unk_80 += gRoomControls.roomOriginX; + this->unk_82 = gRoomControls.roomOriginY + 0x348; sub_08047D88(this); } const s16 gUnk_080D1BF0[2] = { 0x80, -0x80 }; -void sub_080477F0(Entity* this) { - if (this->speed < 0x300) { - this->speed += 8; +void sub_080477F0(GyorgMaleEntity* this) { + if (super->speed < 0x300) { + super->speed += 8; } - this->direction = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); + super->direction = sub_080045DA(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI); sub_08047E48(this); - if (!sub_0806FCB8(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x80)) { - this->action = 2; - this->subAction = 0; - this->spriteOrientation.flipY = 2; - this->spriteRendering.b3 = 2; - this->direction = this->animationState; + if (!sub_0806FCB8(super, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x80)) { + super->action = 2; + super->subAction = 0; + super->spriteOrientation.flipY = 2; + super->spriteRendering.b3 = 2; + super->direction = super->animationState; return; } - if (!sub_0806FCB8(this, gRoomControls.roomOriginX + 0x200, gRoomControls.roomOriginY + 0x210, 0x100)) { - this->spriteOrientation.flipY = 3; - this->spriteRendering.b3 = 3; + if (!sub_0806FCB8(super, gRoomControls.roomOriginX + 0x200, gRoomControls.roomOriginY + 0x210, 0x100)) { + super->spriteOrientation.flipY = 3; + super->spriteRendering.b3 = 3; } - if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { - this->subAction = 2; - this->field_0x76.HWORD = this->animationState << 8; - this->field_0x74.HWORD = gUnk_080D1BF0[Random() & 1]; - if (((Entity*)this->myHeap)->prev->field_0x6c.HWORD & 1) { - ((Entity*)this->myHeap)->next->field_0x78.HALF.HI = - gRoomControls.roomOriginX + 0x200 > this->x.HALF.HI ? 0x81 : 0x83; + if (sub_0806FCB8(super, this->unk_80, this->unk_82, 4)) { + super->subAction = 2; + this->unk_76 = super->animationState << 8; + this->unk_74 = gUnk_080D1BF0[Random() & 1]; + if (((GyorgFemaleHeap*)super->myHeap)->boss->unk_6c & 1) { + ((GyorgFemaleHeap*)super->myHeap)->female->unk_79 = + gRoomControls.roomOriginX + 0x200 > super->x.HALF.HI ? 0x81 : 0x83; } else { - ((Entity*)this->myHeap)->next->field_0x78.HALF.HI = 0x80; + ((GyorgFemaleHeap*)super->myHeap)->female->unk_79 = 0x80; } } } -void sub_08047914(Entity* this) { +void sub_08047914(GyorgMaleEntity* this) { sub_08047D88(this); - if (this->animationState & 0x1F) { - this->field_0x76.HWORD += this->field_0x74.HWORD; - this->animationState = this->field_0x76.HWORD >> 8; - sub_08047EA4(this, ((0x100 - this->animationState) & 0xFF) << 8); + if (super->animationState & 0x1F) { + this->unk_76 += this->unk_74; + super->animationState = this->unk_76 >> 8; + sub_08047EA4(this, ((0x100 - super->animationState) & 0xFF) << 8); } else { - this->subAction = 3; - this->field_0x70.HALF.LO = 0x3C; - this->field_0x7c.HALF.HI = ((this->type * 0xF) << 2) + 0x78; - sub_080A1D70(((Entity*)this->myHeap)->prev, this->animationState); + super->subAction = 3; + this->unk_70 = 0x3C; + this->unk_7e = ((super->type * 0xF) << 2) + 0x78; + sub_080A1D70(&(((GyorgFemaleHeap*)super->myHeap)->boss->base), super->animationState); } } -void sub_08047978(Entity* this) { +void sub_08047978(GyorgMaleEntity* this) { sub_08047D88(this); - if (this->health != 0) { - if (--this->field_0x70.HALF_U.LO == 0) { - this->field_0x70.HALF.HI = 1; - if (this->type == 0) { - this->field_0x70.HALF.LO = 0xB4; + if (super->health != 0) { + if (--this->unk_70 == 0) { + this->unk_72 = 1; + if (super->type == 0) { + this->unk_70 = 0xB4; } else { - this->field_0x70.HALF.LO = 0x168; + this->unk_70 = 0x168; } } else { - if (this->field_0x70.HALF_U.LO == 0xF0) { + if (this->unk_70 == 0xF0) { sub_0804813C(this); } } } else { - this->field_0x70.HALF.HI = 0; + this->unk_72 = 0; } - if (--this->field_0x7c.HALF.HI == 0) { + if (--this->unk_7e == 0) { Entity* tmp; - this->field_0x7c.HALF.HI = 0xF0; + this->unk_7e = 0xF0; tmp = CreateEnemy(ENEMY_62, Random() & 3); if (tmp) { - tmp->parent = this; + tmp->parent = super; } } - if (!sub_0806FCB8(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x80)) { - this->action = 2; - this->subAction = 0; - this->spriteOrientation.flipY = 2; - this->spriteRendering.b3 = 2; - this->direction = this->animationState; + if (!sub_0806FCB8(super, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x80)) { + super->action = 2; + super->subAction = 0; + super->spriteOrientation.flipY = 2; + super->spriteRendering.b3 = 2; + super->direction = super->animationState; } - if (this->health != 0) + if (super->health != 0) return; - if (this->child->action != 1) + if (super->child->action != 1) return; - this->subAction = 4; - if (this->type == 0) { - if ((((Entity*)this->myHeap)->next->animationState >> 6) == 1) { - this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x1C0; - this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x250; + super->subAction = 4; + if (super->type == 0) { + if ((((GyorgFemaleHeap*)super->myHeap)->female->base.animationState >> 6) == 1) { + this->unk_80 = gRoomControls.roomOriginX + 0x1C0; + this->unk_82 = gRoomControls.roomOriginY + 0x250; } else { - this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x240; - this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x250; + this->unk_80 = gRoomControls.roomOriginX + 0x240; + this->unk_82 = gRoomControls.roomOriginY + 0x250; } } else { - if (gRoomControls.roomOriginX + 0x200 < this->x.HALF.HI) { - this->field_0x80.HWORD = 0x190; + if (gRoomControls.roomOriginX + 0x200 < super->x.HALF.HI) { + this->unk_80 = 0x190; } else { - this->field_0x80.HWORD = 0x270; + this->unk_80 = 0x270; } - this->field_0x80.HWORD += gRoomControls.roomOriginX; - if (gRoomControls.roomOriginY + 0x210 < this->y.HALF.HI) { - this->field_0x82.HWORD = 0x1A0; + this->unk_80 += gRoomControls.roomOriginX; + if (gRoomControls.roomOriginY + 0x210 < super->y.HALF.HI) { + this->unk_82 = 0x1A0; } else { - this->field_0x82.HWORD = 0x280; + this->unk_82 = 0x280; } - this->field_0x82.HWORD += gRoomControls.roomOriginY; + this->unk_82 += gRoomControls.roomOriginY; } } -void sub_08047B08(Entity* this) { +void sub_08047B08(GyorgMaleEntity* this) { sub_08047D88(this); - this->direction = sub_080045DA(this->field_0x80.HWORD - this->x.HALF.HI, this->field_0x82.HWORD - this->y.HALF.HI); - this->speed = 0x200; + super->direction = sub_080045DA(this->unk_80 - super->x.HALF.HI, this->unk_82 - super->y.HALF.HI); + super->speed = 0x200; sub_08047E58(this); - if (!sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) + if (!sub_0806FCB8(super, this->unk_80, this->unk_82, 4)) return; - if (this->type == 0) { - this->action = 7; - this->subAction = 0; - this->direction ^= 0x80; + if (super->type == 0) { + super->action = 7; + super->subAction = 0; + super->direction ^= 0x80; } else { - this->action = 4; - this->subAction = 0; - this->spriteOrientation.flipY = 2; - this->spriteRendering.b3 = 2; - this->direction = this->animationState; + super->action = 4; + super->subAction = 0; + super->spriteOrientation.flipY = 2; + super->spriteRendering.b3 = 2; + super->direction = super->animationState; } } -void (*const gUnk_080D1BF4[3])(Entity*) = { sub_08047BA4, sub_08047BF0, sub_08047D24 }; +void (*const gUnk_080D1BF4[3])(GyorgMaleEntity*) = { sub_08047BA4, sub_08047BF0, sub_08047D24 }; -void sub_08047B84(Entity* this) { - gUnk_080D1BF4[this->subAction](this); - UpdateAnimationSingleFrame(this); +void sub_08047B84(GyorgMaleEntity* this) { + gUnk_080D1BF4[super->subAction](this); + UpdateAnimationSingleFrame(super); } -void sub_08047BA4(Entity* this) { - this->subAction = 1; - this->actionDelay = 0x78; - this->field_0xf = 0; - if (gRoomControls.roomOriginX + 0x200 < this->x.HALF.HI) { - this->field_0x76.HWORD = 0x78; +void sub_08047BA4(GyorgMaleEntity* this) { + super->subAction = 1; + super->actionDelay = 0x78; + super->field_0xf = 0; + if (gRoomControls.roomOriginX + 0x200 < super->x.HALF.HI) { + this->unk_76 = 0x78; } else { - this->field_0x76.HWORD = 0x88; + this->unk_76 = 0x88; } SoundReq(SFX_1B5); sub_08047BF0(this); @@ -929,14 +932,14 @@ void sub_08047BA4(Entity* this) { const s8 gUnk_080D1C00[4] = { 0x40, -0x40, -0x40, 0x40 }; -void sub_08047BF0(Entity* this) { +void sub_08047BF0(GyorgMaleEntity* this) { Entity* tmp; - this->direction = gUnk_080D1C00[this->actionDelay & 3]; - this->speed = 0x100; + super->direction = gUnk_080D1C00[super->actionDelay & 3]; + super->speed = 0x100; sub_08047E48(this); - if (this->actionDelay == 0) { - if ((this->field_0xf++ & 0xF) == 0) { - tmp = CreateFx(this, FX_GIANT_EXPLOSION4, 0); + if (super->actionDelay == 0) { + if ((super->field_0xf++ & 0xF) == 0) { + tmp = CreateFx(super, FX_GIANT_EXPLOSION4, 0); if (tmp) { u32 rand = Random(); tmp->x.HALF.HI += (rand & 0x1E) + 0xFFF1; @@ -947,135 +950,135 @@ void sub_08047BF0(Entity* this) { UpdateSpriteForCollisionLayer(tmp); } } - this->direction = this->field_0x76.HWORD; - this->speed = 0x140; + super->direction = this->unk_76; + super->speed = 0x140; sub_08047E48(this); - if (this->y.HALF.HI > gRoomControls.roomOriginY + 0x270) { - this->subAction = 2; - this->field_0x7c.HALF.HI = 0xAA; + if (super->y.HALF.HI > gRoomControls.roomOriginY + 0x270) { + super->subAction = 2; + this->unk_7e = 0xAA; SoundReq(SFX_12D); - InitAnimationForceUpdate(this, 1); + InitAnimationForceUpdate(super, 1); } } else { - this->actionDelay--; - if (this->actionDelay == 0x5A) { - tmp = this->child; + super->actionDelay--; + if (super->actionDelay == 0x5A) { + tmp = super->child; tmp->spriteSettings.draw = 0; CreateFx(tmp, FX_GIANT_EXPLOSION4, 0); } else { - if (this->actionDelay == 0x3C) { - tmp = this->child->child; + if (super->actionDelay == 0x3C) { + tmp = super->child->child; tmp->spriteSettings.draw = 0; CreateFx(tmp, FX_GIANT_EXPLOSION4, 0); } else { - if (this->actionDelay == 0x1E) { - tmp = this->child->child->child; + if (super->actionDelay == 0x1E) { + tmp = super->child->child->child; tmp->spriteSettings.draw = 0; CreateFx(tmp, FX_GIANT_EXPLOSION4, 0); } } } } - sub_0805EC9C(this, 0xAA, 0xAA, this->field_0x78.HWORD); + sub_0805EC9C(this, 0xAA, 0xAA, this->unk_78); } -void sub_08047D24(Entity* this) { - this->field_0x7c.HALF_U.HI += 8; - if (this->field_0x7c.HALF_U.HI > 0x800) { - if (this->type == 0) { - ((u32*)this->myHeap)[2] = 0; +void sub_08047D24(GyorgMaleEntity* this) { + this->unk_7e += 8; + if (this->unk_7e > 0x800) { + if (super->type == 0) { + ((u32*)super->myHeap)[2] = 0; } else { - ((u32*)this->myHeap)[3] = 0; + ((u32*)super->myHeap)[3] = 0; } - this->myHeap = NULL; + super->myHeap = NULL; DeleteThisEntity(); } else { - if (this->field_0x7c.HALF_U.HI < 0x200) { + if (this->unk_7e < 0x200) { sub_08047E48(this); } else { sub_08047E58(this); } - sub_0805EC9C(this, this->field_0x7c.HALF_U.HI, this->field_0x7c.HALF_U.HI, this->field_0x78.HWORD); + sub_0805EC9C(this, this->unk_7e, this->unk_7e, this->unk_78); } } -void sub_08047D88(Entity* this) { +void sub_08047D88(GyorgMaleEntity* this) { u32 tmp2; - u32 tmp = this->field_0x7c.BYTES.byte0; + u32 tmp = this->unk_7c; tmp = ((tmp << 1) & 0x7F) | (tmp & 0x80); - this->field_0x7c.BYTES.byte0 = tmp; - tmp2 = this->spriteRendering.b3; + this->unk_7c = tmp; + tmp2 = super->spriteRendering.b3; if (tmp2 == 3 && gPlayerState.field_0x14 != 0) return; - if (this->animIndex == 1) + if (super->animIndex == 1) return; - if (!sub_0806FCB8(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x20)) + if (!sub_0806FCB8(super, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 0x20)) return; gPlayerState.field_0x14 = 1; if (gPlayerEntity.z.HALF.HI != 0) return; - this->field_0x7c.BYTES.byte0 |= 1; + this->unk_7c |= 1; } -void sub_08047DF0(Entity* this, u32 unk1) { +void sub_08047DF0(GyorgMaleEntity* this, u32 unk1) { u32 oldX, oldY; sub_08047D88(this); sub_08047EA4(this, unk1); - oldX = this->x.HALF.HI; - oldY = this->y.HALF.HI; - sub_0806F62C(this, this->speed, this->direction); - if (this->field_0x7c.BYTES.byte0 & 1) { + oldX = super->x.HALF.HI; + oldY = super->y.HALF.HI; + sub_0806F62C(super, super->speed, super->direction); + if (this->unk_7c & 1) { if (sub_08079F8C()) { - gPlayerEntity.x.HALF.HI += this->x.HALF.HI - oldX; - gPlayerEntity.y.HALF.HI += this->y.HALF.HI - oldY; + gPlayerEntity.x.HALF.HI += super->x.HALF.HI - oldX; + gPlayerEntity.y.HALF.HI += super->y.HALF.HI - oldY; } } } -void sub_08047E48(Entity* this) { +void sub_08047E48(GyorgMaleEntity* this) { sub_08047D88(this); sub_08047E58(this); } -void sub_08047E58(Entity* this) { +void sub_08047E58(GyorgMaleEntity* this) { u32 oldX, oldY; - oldX = this->x.HALF.HI; - oldY = this->y.HALF.HI; - sub_0806F62C(this, this->speed, this->direction); - if (this->field_0x7c.BYTES.byte0 & 1) { + oldX = super->x.HALF.HI; + oldY = super->y.HALF.HI; + sub_0806F62C(super, super->speed, super->direction); + if (this->unk_7c & 1) { if (sub_08079F8C()) { - gPlayerEntity.x.HALF.HI += this->x.HALF.HI - oldX; - gPlayerEntity.y.HALF.HI += this->y.HALF.HI - oldY; + gPlayerEntity.x.HALF.HI += super->x.HALF.HI - oldX; + gPlayerEntity.y.HALF.HI += super->y.HALF.HI - oldY; } } } -void sub_08047EA4(Entity* this, u32 unk1) { +void sub_08047EA4(GyorgMaleEntity* this, u32 unk1) { s32 tmp; u32 tmp2, dir; - this->field_0x78.HWORD = unk1; - tmp = this->field_0x78.HWORD - this->field_0x7a.HWORD; + this->unk_78 = unk1; + tmp = this->unk_78 - this->unk_7a; if (tmp + 0x100 < 0x200u) return; - if (this->field_0x7c.BYTES.byte0 & 1) { + if (this->unk_7c & 1) { tmp2 = sub_08047F68(this) << 8; - dir = sub_080045DA(gPlayerEntity.x.HALF.HI - this->x.HALF.HI, gPlayerEntity.y.HALF.HI - this->y.HALF.HI); + dir = sub_080045DA(gPlayerEntity.x.HALF.HI - super->x.HALF.HI, gPlayerEntity.y.HALF.HI - super->y.HALF.HI); tmp = dir - (tmp / 256); tmp &= 0xFF; gPlayerEntity.x.WORD += (gSineTable[tmp] - gSineTable[dir]) * tmp2; gPlayerEntity.y.WORD -= (gSineTable[tmp + 0x40] - gSineTable[dir + 0x40]) * tmp2; } - this->field_0x7a.HWORD = this->field_0x78.HWORD; + this->unk_7a = this->unk_78; } const u16 gUnk_080D1C04[0x20] = { 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961 }; -u32 sub_08047F68(Entity* this) { +u32 sub_08047F68(GyorgMaleEntity* this) { s32 diffX, diffY; s32 distSquared, approx; - diffX = gPlayerEntity.x.HALF.HI - this->x.HALF.HI; - diffY = gPlayerEntity.y.HALF.HI - this->y.HALF.HI; + diffX = gPlayerEntity.x.HALF.HI - super->x.HALF.HI; + diffY = gPlayerEntity.y.HALF.HI - super->y.HALF.HI; distSquared = (diffX * diffX) + (diffY * diffY); if (distSquared == 0x400) return 0x20; @@ -1109,53 +1112,53 @@ u32 sub_08047F68(Entity* this) { return approx; } -void sub_08048004(Entity* this) { - if (this->action == 0) +void sub_08048004(GyorgMaleEntity* this) { + if (super->action == 0) return; - if (this->animIndex == 0) { - COLLISION_OFF(this); + if (super->animIndex == 0) { + COLLISION_OFF(super); if (gPlayerEntity.z.HALF.HI != 0) return; if (!sub_08079F8C()) return; - if (this->field_0x7c.BYTES.byte0 & 1) { - u32 b = this->spriteRendering.b3; + if (this->unk_7c & 1) { + u32 b = super->spriteRendering.b3; if (b == 3) { s32 posX = ((gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX) >> 3); s32 posY = ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) >> 3); u16* tmp = (u16*)&gUnk_02019EE0; if (tmp[(posY << 7) + posX]) { - if (!(this->field_0x7c.BYTES.byte0 & 2)) { - this->field_0x7c.BYTES.byte0 |= 0x80; + if (!(this->unk_7c & 2)) { + this->unk_7c |= 0x80; } - if ((this->field_0x7c.BYTES.byte0 & 0x80)) + if ((this->unk_7c & 0x80)) return; - gPlayerEntity.x.HALF.HI = this->cutsceneBeh.HWORD; - gPlayerEntity.y.HALF.HI = this->field_0x86.HWORD; + gPlayerEntity.x.HALF.HI = this->unk_84; + gPlayerEntity.y.HALF.HI = this->unk_86; return; } } - this->field_0x7c.BYTES.byte0 &= ~0x80; + this->unk_7c &= ~0x80; } else { - u32 b = this->spriteRendering.b3; + u32 b = super->spriteRendering.b3; if (b != 3) { - if (sub_0806FCB8(&gPlayerEntity, this->x.HALF.HI, this->y.HALF.HI, 0x24)) { - if (!(this->field_0x7c.BYTES.byte0 & 2)) { - u32 tmp = sub_080045DA(gPlayerEntity.x.HALF.HI - this->x.HALF.HI, - gPlayerEntity.y.HALF.HI - this->y.HALF.HI); - gPlayerEntity.x.WORD = this->x.WORD + (gSineTable[tmp] * 9216); - gPlayerEntity.y.WORD = this->y.WORD - (gSineTable[tmp + 0x40] * 9216); + if (sub_0806FCB8(&gPlayerEntity, super->x.HALF.HI, super->y.HALF.HI, 0x24)) { + if (!(this->unk_7c & 2)) { + u32 tmp = sub_080045DA(gPlayerEntity.x.HALF.HI - super->x.HALF.HI, + gPlayerEntity.y.HALF.HI - super->y.HALF.HI); + gPlayerEntity.x.WORD = super->x.WORD + (gSineTable[tmp] * 9216); + gPlayerEntity.y.WORD = super->y.WORD - (gSineTable[tmp + 0x40] * 9216); } } } - this->field_0x7c.BYTES.byte0 = 0; + this->unk_7c = 0; } } else { - COLLISION_ON(this); + COLLISION_ON(super); } } -void sub_0804813C(Entity* this) { +void sub_0804813C(GyorgMaleEntity* this) { u32 rand = Random(); sub_080A1ED0(rand & 7, 1, (rand >> 8) & 3); } @@ -1170,9 +1173,9 @@ const u16 gUnk_080D1C50[8] = { 0x200, 0x180, 0x2C0, 0x210, 0x200, 0x2A0, 0x140, const u16 gUnk_080D1C60[8] = { 0x200, 0x150, 0x290, 0x210, 0x200, 0x2D0, 0x170, 0x210 }; -void sub_08048178(Entity* this, u32 unk1) { - const u16* tmp = - ((((Entity*)this->myHeap)->next->animationState >> 6 & 1) ? gUnk_080D1C60 + unk1 : gUnk_080D1C50 + unk1); - this->field_0x80.HWORD = *tmp + gRoomControls.roomOriginX; - this->field_0x82.HWORD = *(tmp + 1) + gRoomControls.roomOriginY; +void sub_08048178(GyorgMaleEntity* this, u32 unk1) { + const u16* tmp = ((((GyorgFemaleHeap*)super->myHeap)->female->base.animationState >> 6 & 1) ? gUnk_080D1C60 + unk1 + : gUnk_080D1C50 + unk1); + this->unk_80 = *tmp + gRoomControls.roomOriginX; + this->unk_82 = *(tmp + 1) + gRoomControls.roomOriginY; } diff --git a/src/object/gyorgBossObject.c b/src/object/gyorgBossObject.c index 8a28f1ba..9647e4c6 100644 --- a/src/object/gyorgBossObject.c +++ b/src/object/gyorgBossObject.c @@ -20,7 +20,7 @@ void sub_080A1E54(GyorgBossObjectEntity*); void sub_080A1D8C(GyorgBossObjectEntity*, s32); void sub_080A1FF0(GyorgBossObjectEntity*); -u32 sub_080A20B8(GyorgBossObjectEntity*, GenericEntity*); +u32 sub_080A20B8(GyorgBossObjectEntity*, GyorgMaleEntity*); void sub_080A1D70(GyorgBossObjectEntity*, u32); void sub_080A1704(GyorgBossObjectEntity*); @@ -71,7 +71,7 @@ void sub_080A1704(GyorgBossObjectEntity* this) { tmp->y.HALF.HI = gRoomControls.roomOriginY + 0x330; #endif tmp->myHeap = heap; - heap->male1 = (GenericEntity*)tmp; + heap->male1 = (GyorgMaleEntity*)tmp; tmp = CreateEnemy(GYORG_MALE, 1); tmp->x.HALF.HI = gRoomControls.roomOriginX + 0x260; #ifdef EU @@ -80,7 +80,7 @@ void sub_080A1704(GyorgBossObjectEntity* this) { tmp->y.HALF.HI = gRoomControls.roomOriginY + 0x310; #endif tmp->myHeap = heap; - heap->male2 = (GenericEntity*)tmp; + heap->male2 = (GyorgMaleEntity*)tmp; gScreen.bg3.control = 0x1E07; gScreen.lcd.displayControl |= 0x800; this->unk_70 = 0; @@ -309,8 +309,8 @@ void sub_080A1D8C(GyorgBossObjectEntity* this, s32 unk1) { void sub_080A1DCC(GyorgBossObjectEntity* this) { GenericEntity* tmp; - if ((tmp = ((GyorgFemaleHeap*)super->myHeap)->male1) != NULL || - (tmp = ((GyorgFemaleHeap*)super->myHeap)->male2) != NULL) { + if ((tmp = (GenericEntity*)((GyorgFemaleHeap*)super->myHeap)->male1) != NULL || + (tmp = (GenericEntity*)((GyorgFemaleHeap*)super->myHeap)->male2) != NULL) { if (tmp->field_0x7c.BYTES.byte0 && tmp->base.spriteRendering.b3 == 2) { ((GyorgFemaleHeap*)super->myHeap)->unk_10->base.flags &= ~0x80; tmp = ((GyorgFemaleHeap*)super->myHeap)->unk_14; @@ -432,12 +432,12 @@ void sub_080A1FF0(GyorgBossObjectEntity* this) { } } -u32 sub_080A20B8(GyorgBossObjectEntity* this, GenericEntity* other) { +u32 sub_080A20B8(GyorgBossObjectEntity* this, GyorgMaleEntity* other) { if (other == NULL) { return 1; } if (sub_08079F8C() && gPlayerEntity.z.HALF.HI == 0) { - return other->field_0x7c.BYTES.byte0 == 0 && gPlayerState.field_0x14 != 0; + return other->unk_7c == 0 && gPlayerState.field_0x14 != 0; } return 0; } From 415f5213a92c2abcc78388c600b95b9a5f12cd8c Mon Sep 17 00:00:00 2001 From: theo3 Date: Sun, 2 Jan 2022 16:10:29 -0800 Subject: [PATCH 091/168] PlayerNormal ok --- asm/beanstalkSubtask.s | 4 +- asm/non_matching/player/PlayerNormal.inc | 2 +- data/data_0811BE38.s | 8 +- include/player.h | 54 +-- src/code_08077B98.c | 4 +- src/collision.c | 20 +- src/enemy/beetle.c | 4 +- src/enemy/gibdo.c | 4 +- src/enemy/likeLike.c | 4 +- src/enemy/mazaalBracelet.c | 8 +- src/enemy/moldworm.c | 6 +- src/enemy/octorokBoss.c | 6 +- src/enemy/pesto.c | 12 +- src/enemy/rupeeLike.c | 6 +- src/enemy/vaatiProjectile.c | 4 +- src/enemy/wallMaster.c | 4 +- src/enemy/wallMaster2.c | 6 +- src/game.c | 2 +- src/interrupts.c | 16 +- src/item/itemBomb.c | 2 +- src/item/itemLantern.c | 12 +- src/item/itemMoleMitts.c | 2 +- src/item/itemPegasusBoots.c | 4 +- src/item/itemRocsCape.c | 20 +- src/item/itemSword.c | 22 +- src/manager/manager3.c | 2 +- src/manager/managerA.c | 5 +- src/manager/managerF.c | 2 +- src/npc/npc5.c | 2 +- src/npc/picolyteBottle.c | 2 +- src/object/button.c | 2 +- src/object/houseDoorExterior.c | 2 +- src/object/itemOnGround.c | 4 +- src/object/jarPortal.c | 2 +- src/object/minecart.c | 16 +- src/objectUtils.c | 2 +- src/player.c | 450 ++++++++++++++++------- src/projectile/v1DarkMagicProjectile.c | 6 +- src/script.c | 4 +- 39 files changed, 471 insertions(+), 266 deletions(-) diff --git a/asm/beanstalkSubtask.s b/asm/beanstalkSubtask.s index 601a47e1..4fc5e17c 100644 --- a/asm/beanstalkSubtask.s +++ b/asm/beanstalkSubtask.s @@ -227,8 +227,8 @@ _0801982E: pop {r4, r5, pc} .align 2, 0 - thumb_func_start sub_08019840 -sub_08019840: @ 0x08019840 + thumb_func_start UpdatePlayerCollision +UpdatePlayerCollision: @ 0x08019840 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 diff --git a/asm/non_matching/player/PlayerNormal.inc b/asm/non_matching/player/PlayerNormal.inc index ed25e815..7cf020f9 100644 --- a/asm/non_matching/player/PlayerNormal.inc +++ b/asm/non_matching/player/PlayerNormal.inc @@ -211,7 +211,7 @@ _08070924: orrs r1, r0 cmp r1, #0 bne _080709D8 - bl sub_08019840 + bl UpdatePlayerCollision cmp r0, #0xf bls _08070940 b _08070BE4 diff --git a/data/data_0811BE38.s b/data/data_0811BE38.s index 5a8aebd2..eb7ed5ab 100644 --- a/data/data_0811BE38.s +++ b/data/data_0811BE38.s @@ -103,10 +103,10 @@ gUnk_0811C120:: @ 0811C120 .4byte SurfaceAction_A .4byte SurfaceAction_B .4byte SurfaceAction_SlopeGndWater - .4byte SurfaceAction_D - .4byte SurfaceAction_E - .4byte SurfaceAction_F - .4byte SurfaceAction_10 + .4byte SurfaceAction_ConveyerNorth + .4byte SurfaceAction_ConveyerSouth + .4byte SurfaceAction_ConveyerWest + .4byte SurfaceAction_ConveyerEast .4byte SurfaceAction_Swamp .4byte SurfaceAction_DoNothing .4byte SurfaceAction_DoNothing diff --git a/include/player.h b/include/player.h index be58a279..2a09e2e2 100644 --- a/include/player.h +++ b/include/player.h @@ -95,27 +95,30 @@ typedef enum { } PlayerControlMode; enum PlayerFlags { - PL_BUSY = (1 << 0), - PL_DROWNING = (1 << 2), - PL_NO_CAP = (1 << 3), - PL_USE_PORTAL = (1 << 5), - PL_HIDDEN = (1 << 6), - PL_MINISH = (1 << 7), - PL_FALLING = (1 << 9), - PL_BURNING = (1 << 10), - PL_FROZEN = (1 << 11), - PL_DRUGGED = (1 << 14), - PL_ROLLING = (1 << 18), - PL_TRAPPED = (1 << 19), - PL_IN_HOLE = (1 << 20), - PL_RELEASED = (1 << 21), - PL_CLONING = (1 << 22), - PL_USE_LANTERN = (1 << 23), - PL_PARACHUTE = (1 << 24), - PL_MINECART = (1 << 26), - PL_SWORD_THRUST = (1 << 27), - PL_USE_OCARINA = (1 << 28), - PL_CLIMBING = (1 << 29), + PL_BUSY = 0x1, + PL_DROWNING = 0x4, + PL_NO_CAP = 0x8, + PL_CAPTURED = 0x10, + PL_USE_PORTAL = 0x20, + PL_HIDDEN = 0x40, + PL_MINISH = 0x80, + PL_DISABLE_ITEMS = 0x100, + PL_FALLING = 0x200, + PL_BURNING = 0x400, + PL_FROZEN = 0x800, + PL_IN_MINECART = 0x1000, + PL_DRUGGED = 0x4000, + PL_ROLLING = 0x40000, + PL_MOLDWORM_CAPTURED = 0x80000, + PL_IN_HOLE = 0x100000, + PL_MOLDWORM_RELEASED = 0x200000, + PL_CLONING = 0x400000, + PL_USE_LANTERN = 0x800000, + PL_PARACHUTE = 0x1000000, + PL_ENTER_MINECART = 0x4000000, + PL_SWORD_THRUST = 0x8000000, + PL_USE_OCARINA = 0x10000000, + PL_CLIMBING = 0x20000000, }; enum SurfaceType { @@ -168,7 +171,7 @@ enum SurfaceType { typedef struct { /*0x00*/ u8 field_0x0[2]; - /*0x02*/ u8 jumpStatus; + /*0x02*/ u8 jump_status; /*0x03*/ u8 field_0x3[2]; /*0x05*/ u8 heldObject; /*0x06*/ u8 pushedObject; @@ -188,13 +191,14 @@ typedef struct { /*0x15*/ u8 field_0x15; /*0x16*/ u16 startPosX; /*0x18*/ u16 startPosY; - /*0x1a*/ u8 field_0x1a[2]; + /*0x1a*/ u8 mobility; + /*0x1b*/ u8 sword_state; /*0x1c*/ u8 field_0x1c; /*0x1d*/ u8 field_0x1d; /*0x1e*/ u8 dash_state; /*0x1f*/ u8 field_0x1f[3]; /*0x22*/ u16 field_0x22[2]; - /*0x26*/ u8 swimState; + /*0x26*/ u8 swim_state; /*0x27*/ u8 field_0x27[5]; /*0x2c*/ Entity* item; /*0x30*/ u32 flags; @@ -210,7 +214,7 @@ typedef struct { /* */ u8 swordBlueParticle : 1; /* */ u8 filler14 : 6; /*0x3f*/ u8 field_0x3f; - /*0x40*/ u8 hurtType[64]; + /*0x40*/ u8 path_memory[64]; /*0x80*/ u16 speed_modifier; /*0x82*/ u8 field_0x82[9]; /*0x8b*/ u8 controlMode; diff --git a/src/code_08077B98.c b/src/code_08077B98.c index dc3d5a0a..7ad3703f 100644 --- a/src/code_08077B98.c +++ b/src/code_08077B98.c @@ -182,7 +182,7 @@ void sub_08077E78(ItemBehavior* arg0, u32 bits) { u32 sub_08077EC8(ItemBehavior* beh) { Unk_struct* arg0 = (Unk_struct*)beh; // @nocheckin - if ((gPlayerState.field_0x1a[1] & 8) != 0) { + if ((gPlayerState.sword_state & 8) != 0) { sub_08077DF4(beh, 0x170); arg0->unk[7] = 0x28; arg0->unk[4] = 7; @@ -225,7 +225,7 @@ void sub_08077F84(void) { if (((gPlayerEntity.collisionLayer & 2) == 0) && GetTileTypeByPos(gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI - 0xc, 2) - 0x343U < 4) { sub_0807AA80(&gPlayerEntity); - gPlayerState.jumpStatus |= 8; + gPlayerState.jump_status |= 8; obj = CreateObject(OBJECT_44, 0, 0); if (obj != NULL) { obj->x = gPlayerEntity.x; diff --git a/src/collision.c b/src/collision.c index 44f53719..32e963e6 100644 --- a/src/collision.c +++ b/src/collision.c @@ -444,7 +444,7 @@ s32 sub_08017CBC(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) } s32 sub_08017D28(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) { - gPlayerState.field_0x1a[0] = 1; + gPlayerState.mobility = 1; org->field_0x7a.HWORD = 600; org->knockbackDuration = 12; org->iframes = 16; @@ -538,11 +538,11 @@ s32 sub_08017F40(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) #else (gPlayerState.flags & PL_MINISH) == 0 && #endif - !gPlayerState.swimState) { - gPlayerState.field_0x1a[0] |= 0x80u; - gPlayerState.field_0xa |= 0x80u; - gPlayerState.flags |= 0x10u; - gPlayerState.jumpStatus = 0; + !gPlayerState.swim_state) { + gPlayerState.mobility |= 0x80; + gPlayerState.field_0xa |= 0x80; + gPlayerState.flags |= PL_CAPTURED; + gPlayerState.jump_status = 0; if (tgt->kind == ENEMY && (tgt->id == GHINI || tgt->id == ENEMY_50)) { org->z.HALF.HI = 0; PositionRelative(org, tgt, 0, 0x10000); @@ -632,11 +632,11 @@ s32 sub_08018168(Entity* org, Entity* tgt, u32 direction, ColSettings* settings) #else (gPlayerState.flags & (PL_MINISH | PL_ROLLING)) == 0 && #endif - gPlayerState.swimState == 0) { - gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.swim_state == 0) { + gPlayerState.mobility |= 0x80; gPlayerState.field_0xa |= 0x80; - gPlayerState.flags |= 0x100; - gPlayerState.jumpStatus = 0; + gPlayerState.flags |= PL_DISABLE_ITEMS; + gPlayerState.jump_status = 0; COLLISION_OFF(&gPlayerEntity); gPlayerEntity.spriteRendering.b3 = tgt->spriteRendering.b3; gPlayerEntity.spriteOrientation.flipY = tgt->spriteOrientation.flipY; diff --git a/src/enemy/beetle.c b/src/enemy/beetle.c index e286f6f4..24e01379 100644 --- a/src/enemy/beetle.c +++ b/src/enemy/beetle.c @@ -230,7 +230,7 @@ void sub_08021B64(Entity* this) { this->actionDelay = (u8)iVar4; } - if (gPlayerState.flags & 0x110) + if (gPlayerState.flags & (PL_DISABLE_ITEMS | PL_CAPTURED)) iVar4 = 0; if (iVar4 == 0) { @@ -244,7 +244,7 @@ void sub_08021B64(Entity* this) { } InitializeAnimation(this, 5); } else { - gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.mobility |= 0x80; gPlayerState.speed_modifier -= 0x50; gPlayerState.field_0xaa++; CopyPositionAndSpriteOffset(&gPlayerEntity, this); diff --git a/src/enemy/gibdo.c b/src/enemy/gibdo.c index 7102f85d..0649b7a9 100644 --- a/src/enemy/gibdo.c +++ b/src/enemy/gibdo.c @@ -160,7 +160,7 @@ NONMATCH("asm/non_matching/gibdo/sub_080376D0.inc", void sub_080376D0(Entity* th u8* x; if (sub_080379EC(this) == 0) { ResetPlayer(); - gPlayerState.field_0x1a[0] = gPlayerState.field_0x1a[0] | 0x80; + gPlayerState.mobility = gPlayerState.mobility | 0x80; gPlayerState.field_0xa = gPlayerState.field_0xa | 0x80; CopyPositionAndSpriteOffset(&gPlayerEntity, this); UpdateAnimationSingleFrame(this); @@ -347,7 +347,7 @@ void sub_08037A58(Entity* this) { } void sub_08037ACC(Entity* this) { - gPlayerState.flags &= ~0x100; + gPlayerState.flags &= ~PL_DISABLE_ITEMS; COLLISION_ON(&gPlayerEntity); gPlayerEntity.iframes = 0x1e; gPlayerEntity.knockbackDirection = DirectionFromAnimationState(this->animationState); diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c index f0b08684..37ee4055 100644 --- a/src/enemy/likeLike.c +++ b/src/enemy/likeLike.c @@ -184,7 +184,7 @@ void sub_0802805C(Entity* this) { sub_0802810C(this); } else { ResetPlayer(); - gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.mobility |= 0x80; PositionRelative(this, &gPlayerEntity, 0, 0x10000); tmp = GetSpriteSubEntryOffsetDataPointer((u16)this->spriteIndex, this->frameIndex); @@ -203,7 +203,7 @@ void sub_0802805C(Entity* this) { } NONMATCH("asm/non_matching/likeLike/sub_0802810C.inc", void sub_0802810C(Entity* this)) { - gPlayerState.jumpStatus = 0x41; + gPlayerState.jump_status = 0x41; gPlayerState.field_0xa = 0; gPlayerState.flags &= 0xffffffef; gPlayerEntity.flags |= 0x80; diff --git a/src/enemy/mazaalBracelet.c b/src/enemy/mazaalBracelet.c index 8076c212..2aa1f808 100644 --- a/src/enemy/mazaalBracelet.c +++ b/src/enemy/mazaalBracelet.c @@ -1220,9 +1220,9 @@ void sub_0803B724(Entity* param_1) { } void sub_0803B798(void) { - gPlayerState.jumpStatus = 0x41; + gPlayerState.jump_status = 0x41; gPlayerState.field_0xa = 0; - gPlayerState.flags &= 0xffef; + gPlayerState.flags &= ~(0xffff0000 | PL_CAPTURED); gPlayerEntity.flags |= 0x80; gPlayerEntity.zVelocity = 0x18000; gPlayerEntity.z.HALF.HI = -10; @@ -1242,7 +1242,7 @@ void sub_0803B804(Entity* this) { void sub_0803B824(Entity* this) { ResetPlayer(); - gPlayerState.field_0x1a[0] = gPlayerState.field_0x1a[0] | 0x80; + gPlayerState.mobility = gPlayerState.mobility | 0x80; sub_0806FA90(this, &gPlayerEntity, gUnk_080CFD1D[this->type], 1); gPlayerEntity.spriteOffsetY = -6; gPlayerEntity.spritePriority.b1 = 0; @@ -1252,7 +1252,7 @@ u32 sub_0803B870(Entity* this) { Entity* entity; entity = this->child; - if ((entity->bitfield & 0x80) != 0 && (gPlayerState.flags & 0x10) != 0) { + if ((entity->bitfield & 0x80) != 0 && (gPlayerState.flags & PL_CAPTURED)) { this->action = 0x18; this->actionDelay = 0x44; this->spriteSettings.draw = 0; diff --git a/src/enemy/moldworm.c b/src/enemy/moldworm.c index 350fb3fc..f2331c1f 100644 --- a/src/enemy/moldworm.c +++ b/src/enemy/moldworm.c @@ -83,7 +83,7 @@ void sub_080230E4(Entity* this) { gPlayerEntity.zVelocity = 0x18000; gPlayerEntity.direction = 0xff; gPlayerEntity.iframes = -0x14; - gPlayerState.jumpStatus = 0x41; + gPlayerState.jump_status = 0x41; gPlayerState.flags &= 0xfff7ffff; } @@ -262,7 +262,7 @@ void sub_0802351C(Entity* this) { if (this->field_0x7c.BYTES.byte3 == 0) { if (this->type2 == 0) { gPlayerEntity.animationState = this->animationState & 7; - gPlayerState.flags |= PL_TRAPPED; + gPlayerState.flags |= PL_MOLDWORM_CAPTURED; PositionRelative(this, &gPlayerEntity, 0, gUnk_080CBC90[this->animationState & 7] << 0x10); gPlayerEntity.spriteOffsetY = -gUnk_080CBC90[this->animationState & 7]; } @@ -397,7 +397,7 @@ void sub_08023894(Entity* this) { this->parent->field_0x7c.BYTES.byte3 = 1; InitializeAnimation(this, this->animationState); if (this->parent->type2 == 0) { - gPlayerState.flags |= PL_RELEASED; + gPlayerState.flags |= PL_MOLDWORM_RELEASED; gPlayerEntity.x.HALF.HI = this->x.HALF.HI; gPlayerEntity.y.HALF.HI = this->y.HALF.HI; gPlayerEntity.direction = DirectionRoundUp(GetFacingDirection(*(Entity**)&this->field_0x74, this)); diff --git a/src/enemy/octorokBoss.c b/src/enemy/octorokBoss.c index b6e207d3..ee480e46 100644 --- a/src/enemy/octorokBoss.c +++ b/src/enemy/octorokBoss.c @@ -931,8 +931,8 @@ void OctorokBoss_ExecuteAttackVacuum(Entity* this) { } if (tmp < 0x10) { if (sub_0806FC80(this, &gPlayerEntity, 0xf0) != 0) { - if ((gPlayerState.flags & 0x800) == 0) { - if ((gPlayerEntity.flags & 0x80) != 0) { + if ((gPlayerState.flags & PL_FROZEN) == 0) { + if ((gPlayerEntity.flags & PL_MINISH) != 0) { sub_0806F62C(&gPlayerEntity, 0x280, -GET_ANGLE_HI(this)); if (sub_0806FC80(this, &gPlayerEntity, 0x48) != 0) { this->field_0x80.HALF.LO = 1; @@ -981,7 +981,7 @@ void OctorokBoss_ExecuteAttackVacuum(Entity* this) { OctorokBoss_SetAttackTimer(this); } else { GET_TIMER(this)--; - if ((gPlayerState.flags == 0x800) && (GET_TIMER(this) == 0x3c)) { + if ((gPlayerState.flags == PL_FROZEN) && (GET_TIMER(this) == 0x3c)) { tmp = sub_080045DA(gPlayerEntity.x.WORD - this->x.WORD, gPlayerEntity.y.WORD - this->y.WORD); if ((u8)((tmp - ((u8)-GET_ANGLE_HI(this) ^ 0x80))) > 0x80) { GET_HELPER(this)->targetAngle = GET_ANGLE_HI(this) + 0x30; diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index 676ecfcf..008869fd 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -392,10 +392,10 @@ void sub_080244E8(Entity* this) { sub_080249DC(this); this->cutsceneBeh.HALF.HI = gPlayerEntity.spritePriority.b1; gPlayerEntity.flags &= 0x7f; - gPlayerState.flags |= 0x100; + gPlayerState.flags |= PL_DISABLE_ITEMS; gPlayerState.field_0xa |= 0x80; - if (gPlayerState.swimState != 0) { - gPlayerState.swimState = 0; + if (gPlayerState.swim_state != 0) { + gPlayerState.swim_state = 0; } } break; @@ -636,7 +636,7 @@ bool32 sub_08024B38(Entity* this) { Entity* ent; if (gPlayerState.hurtBlinkSpeed != 0) { - if (gPlayerState.swimState == 1) { + if (gPlayerState.swim_state == 1) { if (gPlayerState.hurtBlinkSpeed > 3) { gPlayerState.hurtBlinkSpeed -= 3; } else { @@ -806,7 +806,7 @@ NONMATCH("asm/non_matching/pesto/sub_08024E4C.inc", void sub_08024E4C(Entity* th Entity* player = &gPlayerEntity; ResetPlayer(); - gPlayerState.flags |= 0x100; + gPlayerState.flags |= PL_DISABLE_ITEMS; gPlayerState.field_0xa |= 0x80; gPlayerState.queued_action = PLAYER_0807204C; gPlayerState.field_0x38 = 0x14; @@ -829,7 +829,7 @@ END_NONMATCH void sub_08024F50(Entity* this) { gPlayerState.field_0xa = 0; - gPlayerState.flags &= ~0x100; + gPlayerState.flags &= ~PL_DISABLE_ITEMS; CopyPosition(this, &gPlayerEntity); gPlayerEntity.action = 1; COLLISION_ON(&gPlayerEntity); diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c index 7aacbee9..ffa409cd 100644 --- a/src/enemy/rupeeLike.c +++ b/src/enemy/rupeeLike.c @@ -163,7 +163,7 @@ void sub_0802953C(Entity* this) { sub_080296D8(this); } else { ResetPlayer(); - gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.mobility |= 0x80; PositionRelative(this, &gPlayerEntity, 0, 0x10000); pbVar3 = GetSpriteSubEntryOffsetDataPointer((u16)this->spriteIndex, this->frameIndex); gPlayerEntity.spriteOffsetX = pbVar3[0]; @@ -230,8 +230,8 @@ void sub_080296C8(Entity* this) { } void sub_080296D8(Entity* this) { - gPlayerState.jumpStatus = 0x41; - gPlayerState.flags &= ~0x10; + gPlayerState.jump_status = 0x41; + gPlayerState.flags &= ~PL_CAPTURED; gPlayerEntity.flags |= 0x80; gPlayerEntity.zVelocity = 0x18000; gPlayerEntity.iframes = 0xa6; diff --git a/src/enemy/vaatiProjectile.c b/src/enemy/vaatiProjectile.c index b708275f..6277fc21 100644 --- a/src/enemy/vaatiProjectile.c +++ b/src/enemy/vaatiProjectile.c @@ -71,7 +71,7 @@ void VaatiProjectileFunction1(Entity* this) { entity->flags = entity->flags & 0x7f; } } else { - gPlayerState.flags &= 0xfffffeff; // using b.unk8 does not match + gPlayerState.flags &= ~PL_DISABLE_ITEMS; entity = &gPlayerEntity; entity->flags = gPlayerEntity.flags | 0x80; } @@ -222,7 +222,7 @@ void VaatiProjectileFunction0Action9(Entity* this) { void sub_0803E444(Entity* this) { ResetPlayer(); - gPlayerState.field_0x1a[0] = gPlayerState.field_0x1a[0] | 0x80; + gPlayerState.mobility = gPlayerState.mobility | 0x80; gPlayerState.field_0xa = gPlayerState.field_0xa | 0x80; sub_0806FA90(this, this->field_0x4c, 0, -2); gPlayerEntity.spriteOffsetY += 0xe; diff --git a/src/enemy/wallMaster.c b/src/enemy/wallMaster.c index e548e329..05848590 100644 --- a/src/enemy/wallMaster.c +++ b/src/enemy/wallMaster.c @@ -134,7 +134,7 @@ void sub_0802A69C(Entity* this) { sub_0802A7D0(this); gPlayerState.field_0xa |= 0x80; - gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.mobility |= 0x80; gPlayerEntity.x.HALF.HI = this->field_0x7c.HALF.HI; gPlayerEntity.y.HALF.HI = this->field_0x80.HWORD; gPlayerEntity.z.HALF.HI = this->field_0x82.HWORD; @@ -168,7 +168,7 @@ void sub_0802A734(Entity* this) { } else { this->z.WORD -= 0x20000; gPlayerState.field_0xa |= 0x80; - gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.mobility |= 0x80; } } diff --git a/src/enemy/wallMaster2.c b/src/enemy/wallMaster2.c index 05778ce1..c034989b 100644 --- a/src/enemy/wallMaster2.c +++ b/src/enemy/wallMaster2.c @@ -116,8 +116,8 @@ void sub_0802CE68(Entity* this) { u8 frames; gPlayerState.field_0xa |= 0x80; - gPlayerState.field_0x1a[0] |= 0x80; - gPlayerState.flags |= 0x100; + gPlayerState.mobility |= 0x80; + gPlayerState.flags |= PL_DISABLE_ITEMS; if (!sub_0806FCB8(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI, 4)) { this->direction = GetFacingDirection(this, &gPlayerEntity); LinearMoveUpdate(this); @@ -145,7 +145,7 @@ void sub_0802CEF4(Entity* this) { this->spriteSettings.shadow = 1; } gPlayerState.field_0xa |= 0x80; - gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.mobility |= 0x80; } } diff --git a/src/game.c b/src/game.c index 034d9076..fee68b34 100644 --- a/src/game.c +++ b/src/game.c @@ -337,7 +337,7 @@ void InitializePlayer(void) { sub_080784C8(); MemClear(&gUnk_03000B80, sizeof gUnk_03000B80); MemClear(&gPlayerState, sizeof gPlayerState); - MemFill32(0xffffffff, &gPlayerState.hurtType, sizeof gPlayerState.hurtType); + MemFill32(0xffffffff, &gPlayerState.path_memory, sizeof gPlayerState.path_memory); MemClear(&gPlayerEntity, sizeof gPlayerEntity); pl = &gPlayerEntity; diff --git a/src/interrupts.c b/src/interrupts.c index 2993fffb..82dd574d 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -221,11 +221,11 @@ void PlayerUpdate(Entity* this) { gPlayerState.flags &= ~PL_DRUGGED; if (CheckDontUpdate(this) == 0) { - if (gPlayerState.flags & PL_TRAPPED) { + if (gPlayerState.flags & PL_MOLDWORM_CAPTURED) { sub_08077B20(); - if (gPlayerState.flags & PL_RELEASED) { + if (gPlayerState.flags & PL_MOLDWORM_RELEASED) { gPlayerState.queued_action = PLAYER_ROLL; - gPlayerState.flags &= ~PL_TRAPPED; + gPlayerState.flags &= ~PL_MOLDWORM_CAPTURED; gPlayerState.hurtBlinkSpeed = 240; COLLISION_ON(this); } else { @@ -272,8 +272,8 @@ void HandlePlayerLife(Entity* this) { gPlayerState.framestate_last = gPlayerState.framestate; gPlayerState.framestate = PL_STATE_IDLE; - if (gPlayerState.hurtType[0x4a] != 0) { - gPlayerState.hurtType[0x4a]--; + if (gPlayerState.field_0x82[0x8] != 0) { + gPlayerState.field_0x82[0x8]--; return; } @@ -321,7 +321,7 @@ void HandlePlayerLife(Entity* this) { #endif void sub_080171F0(void) { - if (gPlayerState.field_0x1a[0] != 0) + if (gPlayerState.mobility != 0) ResetPlayer(); if (gPlayerState.field_0x14 != 0) gPlayerState.field_0x14--; @@ -342,7 +342,7 @@ void sub_080171F0(void) { gPlayerState.field_0x7 &= ~0x80; gPlayerState.field_0xa &= 0xf; gPlayerState.keepFacing &= ~0x80; - gPlayerState.field_0x1a[0] = 0; + gPlayerState.mobility = 0; gPlayerState.speed_modifier = 0; gPlayerState.field_0xaa = 0; MemClear(&gUnk_03003BE0, 0x8c); @@ -359,7 +359,7 @@ void sub_080171F0(void) { gPlayerState.flags &= ~PL_CLIMBING; sub_0807A8D8(&gPlayerEntity); - if (gPlayerState.jumpStatus & 0xc0) + if (gPlayerState.jump_status & 0xc0) gPlayerEntity.iframes = 0xfe; if (gPlayerEntity.action != PLAYER_ROOMTRANSITION) { diff --git a/src/item/itemBomb.c b/src/item/itemBomb.c index c0ce310c..4cba1598 100644 --- a/src/item/itemBomb.c +++ b/src/item/itemBomb.c @@ -21,7 +21,7 @@ void sub_08075FF8(ItemBehavior* this, u32 arg1) { s32 x; s32 y; - if ((gPlayerState.jumpStatus | gPlayerState.field_0x3[1]) == 0) { + if ((gPlayerState.jump_status | gPlayerState.field_0x3[1]) == 0) { bombCount = 0; for (entity = FindEntityByID(8, 2, 2); entity != NULL; entity = FindNextDuplicateID(entity, 2)) { bombCount += 1; diff --git a/src/item/itemLantern.c b/src/item/itemLantern.c index 9399ef1b..6a171d8c 100644 --- a/src/item/itemLantern.c +++ b/src/item/itemLantern.c @@ -21,7 +21,7 @@ void sub_08075A0C(ItemBehavior* this, u32 arg1) { u32 itemSlot; s8* tmp; itemSlot = IsItemEquipped(this->behaviorID); - if (gPlayerState.heldObject != 0 || gPlayerState.queued_action == PLAYER_ROLL || gPlayerState.jumpStatus != 0 || + if (gPlayerState.heldObject != 0 || gPlayerState.queued_action == PLAYER_ROLL || gPlayerState.jump_status != 0 || gPlayerState.item != NULL || (gPlayerState.flags & PL_MINISH) != 0) { ForceEquipItem(0xf, itemSlot); gPlayerState.flags &= ~PL_USE_LANTERN; @@ -50,8 +50,8 @@ ASM_FUNC("asm/non_matching/eu/sub_08075ADC.inc", void sub_08075ADC(ItemBehavior* void sub_08075ADC(ItemBehavior* this, u32 arg1) { u32 bVar1; - if (gPlayerState.item != NULL || (this->field_0x5[9] & 1) == 0 || (gPlayerState.flags & 0x110) != 0 || - sub_08079D48() == 0) { + if (gPlayerState.item != NULL || (this->field_0x5[9] & 1) == 0 || + (gPlayerState.flags & (PL_DISABLE_ITEMS | PL_CAPTURED)) != 0 || sub_08079D48() == 0) { this->field_0xf = 0; this->stateID += 1; gPlayerState.flags |= PL_USE_LANTERN; @@ -73,9 +73,9 @@ void sub_08075B54(ItemBehavior* this, u32 arg1) { Entity* object; s8* tmp; - if ((gPlayerState.flags & 0x110) == 0) { + if ((gPlayerState.flags & (PL_CAPTURED | PL_DISABLE_ITEMS)) == 0) { itemSlot = IsItemEquipped(this->behaviorID); - if (!(((sub_08077F10(this) == 0) && (itemSlot < 2)) || (gPlayerState.jumpStatus != 0))) { + if (!(((sub_08077F10(this) == 0) && (itemSlot < 2)) || (gPlayerState.jump_status != 0))) { ForceEquipItem(0xf, itemSlot); gPlayerState.flags &= ~PL_USE_LANTERN; sub_08077E78(this, arg1); @@ -85,7 +85,7 @@ void sub_08075B54(ItemBehavior* this, u32 arg1) { ((u16)gPlayerEntity.spriteIndex == 6)) { tmp = &gUnk_08126EEC[gPlayerEntity.animationState & 6]; - if ((gPlayerState.jumpStatus == 0) && + if ((gPlayerState.jump_status == 0) && (sub_080002F0(TILE(gPlayerEntity.x.HALF.HI + tmp[0], gPlayerEntity.y.HALF.HI + tmp[1]), gPlayerEntity.collisionLayer, 0x40) != 0)) { this->field_0xf = 0xf; diff --git a/src/item/itemMoleMitts.c b/src/item/itemMoleMitts.c index 9bce54e5..5fdeb0b6 100644 --- a/src/item/itemMoleMitts.c +++ b/src/item/itemMoleMitts.c @@ -19,7 +19,7 @@ void ItemMoleMitts(ItemBehavior* this, u32 arg1) { void sub_08077130(ItemBehavior* this, u32 arg1) { s32 iVar1; - if (gPlayerState.jumpStatus == 0) { + if (gPlayerState.jump_status == 0) { sub_08077D38(this, arg1); gPlayerState.field_0x3c[1] = 1; this->field_0x5[4] |= 0x80; diff --git a/src/item/itemPegasusBoots.c b/src/item/itemPegasusBoots.c index cf2bd6ac..755362bf 100644 --- a/src/item/itemPegasusBoots.c +++ b/src/item/itemPegasusBoots.c @@ -52,8 +52,8 @@ void sub_080768F8(ItemBehavior* this, u32 arg1) { u32 bVar1; u32 bVar2; - bVar1 = gPlayerState.field_0x1c | gPlayerState.field_0x3[1] | gPlayerState.heldObject | gPlayerState.jumpStatus; - bVar2 = (gPlayerState.flags & 0x1000); + bVar1 = gPlayerState.field_0x1c | gPlayerState.field_0x3[1] | gPlayerState.heldObject | gPlayerState.jump_status; + bVar2 = (gPlayerState.flags & PL_IN_MINECART); bVar1 |= bVar2; if (bVar1 == 0) { gPlayerState.dash_state = 1; diff --git a/src/item/itemRocsCape.c b/src/item/itemRocsCape.c index cad38c43..ddba77c5 100644 --- a/src/item/itemRocsCape.c +++ b/src/item/itemRocsCape.c @@ -12,16 +12,16 @@ extern void sub_08077F84(void); } if (gPlayerState.item == NULL) { if (gPlayerState.field_0x0[1] == 0) { - if (((u8)(gPlayerState.field_0x1a[1] | gPlayerState.field_0xa | gPlayerState.field_0x3[1] | + if (((u8)(gPlayerState.sword_state | gPlayerState.field_0xa | gPlayerState.field_0x3[1] | gPlayerState.heldObject | gPlayerState.field_0x1c | gPlayerState.field_0x3c[1]) == 0) && ((((1 < (u8)(gPlayerState.field_0x10[2] - 0x12) && (gPlayerState.field_0x10[2] != 1)) || (gPlayerEntity.z.WORD != 0)) || (gPlayerState.field_0x14 != 0)))) { - if ((gPlayerState.jumpStatus != 0) && ((gPlayerState.jumpStatus & 7) != 3)) + if ((gPlayerState.jump_status != 0) && ((gPlayerState.jump_status & 7) != 3)) goto _08076710; if (-1 < gPlayerEntity.z.WORD) { gPlayerEntity.zVelocity = 0x20000; - gPlayerState.jumpStatus = 1; + gPlayerState.jump_status = 1; gPlayerState.item = NULL; this->stateID += 1; goto _0807673C; @@ -31,7 +31,7 @@ extern void sub_08077F84(void); if (((gPlayerState.heldObject | gPlayerState.field_0x3[1]) == 0) && (((gPlayerState.field_0x10[2] != 0x12 && (gPlayerState.field_0x10[2] != 1)) || ((gPlayerEntity.z.WORD != 0 || (gPlayerState.field_0x14 != 0)))))) { - if ((gPlayerState.jumpStatus != 0) && ((gPlayerState.jumpStatus & 7) != 3)) { + if ((gPlayerState.jump_status != 0) && ((gPlayerState.jump_status & 7) != 3)) { _08076710: sub_08076758(this, arg1); return; @@ -40,7 +40,7 @@ extern void sub_08077F84(void); gPlayerState.field_0x0[1] = 0; this->stateID += 1; gPlayerState.keepFacing = 0; - gPlayerState.jumpStatus = 1; + gPlayerState.jump_status = 1; gPlayerState.field_0xe = -1; gPlayerState.item = NULL; gPlayerEntity.zVelocity = 0x20000; @@ -61,15 +61,15 @@ void sub_08076758(ItemBehavior* this, u32 arg1) { s32 iVar1; gPlayerState.field_0xe = 0; - if ((((gPlayerState.jumpStatus & 0x28) == 0) && (gPlayerState.jumpStatus != 0)) && - ((gPlayerState.jumpStatus & 7) != 3)) { + if ((((gPlayerState.jump_status & 0x28) == 0) && (gPlayerState.jump_status != 0)) && + ((gPlayerState.jump_status & 7) != 3)) { if (sub_08077EFC(this)) { if (this->stateID < 2) { - if ((gPlayerEntity.zVelocity < 1) && ((gPlayerState.jumpStatus & 0x10) == 0)) { + if ((gPlayerEntity.zVelocity < 1) && ((gPlayerState.jump_status & 0x10) == 0)) { this->stateID = 2; gPlayerEntity.field_0x7a.HWORD = 2; gPlayerEntity.zVelocity = 0x20000; - gPlayerState.jumpStatus |= 0x10; + gPlayerState.jump_status |= 0x10; gPlayerState.animation = 0x288; SoundReq(SFX_172); } @@ -79,7 +79,7 @@ void sub_08076758(ItemBehavior* this, u32 arg1) { } else { if (this->stateID > 1) { gPlayerEntity.field_0x7a.HWORD += 1; - gPlayerState.jumpStatus &= 0xef; + gPlayerState.jump_status &= 0xef; } } } else { diff --git a/src/item/itemSword.c b/src/item/itemSword.c index 773403fa..2c888629 100644 --- a/src/item/itemSword.c +++ b/src/item/itemSword.c @@ -25,9 +25,9 @@ ASM_FUNC("asm/non_matching/itemSword/sub_08075338.inc", void sub_08075338(ItemBe ASM_FUNC("asm/non_matching/itemSword/sub_080754B8.inc", void sub_080754B8(ItemBehavior* this, u32 arg1)) void sub_08075580(ItemBehavior* this, u32 arg1) { - if ((sub_08077EFC(this) != 0) && (gPlayerState.jumpStatus == 0)) { + if ((sub_08077EFC(this) != 0) && (gPlayerState.jump_status == 0)) { gPlayerState.field_0xa = gPlayerState.field_0xa & ~(8 >> arg1); - gPlayerState.field_0x1a[1] = 1; + gPlayerState.sword_state = 1; gPlayerState.item->hurtType = 0xd; this->field_0xf = 0; this->stateID = 2; @@ -46,11 +46,11 @@ void sub_08075580(ItemBehavior* this, u32 arg1) { void sub_080755F0(ItemBehavior* this, u32 arg1) { if (sub_08077EFC(this) != 0) { if (sub_08077EC8(this) == 0) { - if ((gPlayerState.field_0x1a[1] | gPlayerState.field_0x3[1]) != 0) { + if ((gPlayerState.sword_state | gPlayerState.field_0x3[1]) != 0) { if (--this->field_0x5[2] == 0) { this->stateID = 3; this->field_0x5[4] |= 0x80; - gPlayerState.field_0x1a[1] = gPlayerState.field_0x1a[1] | 0x20; + gPlayerState.sword_state = gPlayerState.sword_state | 0x20; } } else { sub_080759B8(this, arg1); @@ -62,10 +62,10 @@ void sub_080755F0(ItemBehavior* this, u32 arg1) { } void sub_0807564C(ItemBehavior* this, u32 arg1) { - if ((gPlayerState.field_0x1a[1] | gPlayerState.field_0x3[1]) == 0) { + if ((gPlayerState.sword_state | gPlayerState.field_0x3[1]) == 0) { sub_080759B8(this, arg1); } else { - if ((sub_08077EC8(this) == 0) && ((sub_08077EFC(this) == 0 || ((gPlayerState.field_0x1a[1] & 0x80) != 0)))) { + if ((sub_08077EC8(this) == 0) && ((sub_08077EFC(this) == 0 || ((gPlayerState.sword_state & 0x80) != 0)))) { sub_08075694(this, arg1); } } @@ -85,8 +85,8 @@ void sub_08075694(ItemBehavior* this, u32 arg1) { this->stateID = 4; this->field_0xf = 6; gPlayerEntity.hurtType = 0x1e; - gPlayerState.field_0x1a[1] |= 0x40; - gPlayerState.field_0x1a[1] &= 0xdf; + gPlayerState.sword_state |= 0x40; + gPlayerState.sword_state &= 0xdf; if ((gPlayerState.field_0xa0[0] == 0x04) && ((gPlayerState.flags & PL_CLONING) == 0)) { gPlayerState.field_0xa0[0] = 0x01; DeleteClones(); @@ -109,12 +109,12 @@ void sub_080758B0(ItemBehavior* this, u32 arg1) { UpdateItemAnim(this); if ((this->field_0x5[9] & 0x80) != 0) { this->field_0xf = 0; - if ((gPlayerState.field_0x1a[1] & 0x20) != 0) { + if ((gPlayerState.sword_state & 0x20) != 0) { this->stateID = 3; } else { this->stateID = 5; } - gPlayerState.field_0x1a[1] &= 0xf7; + gPlayerState.sword_state &= 0xf7; } } } @@ -126,7 +126,7 @@ void sub_080759B8(ItemBehavior* this, u32 arg1) { gPlayerEntity.hurtType = 0; } gPlayerState.flags &= ~PL_SWORD_THRUST; - gPlayerState.field_0x1a[1] = 0; + gPlayerState.sword_state = 0; gPlayerState.item = NULL; sub_08077E78(this, arg1); } diff --git a/src/manager/manager3.c b/src/manager/manager3.c index b31a3f1c..91450576 100644 --- a/src/manager/manager3.c +++ b/src/manager/manager3.c @@ -46,7 +46,7 @@ void Manager3_Main(Manager3* this) { gArea.field_0x18 = 1; gArea.curPortalType = 5; } else { - if ((gPlayerState.flags & 0x20) && gPlayerState.jumpStatus == 0) { + if ((gPlayerState.flags & PL_USE_PORTAL) && gPlayerState.jump_status == 0) { gArea.field_0x18 = 2; } else { if (sub_08057810()) { diff --git a/src/manager/managerA.c b/src/manager/managerA.c index 0554ea1b..8eda3b70 100644 --- a/src/manager/managerA.c +++ b/src/manager/managerA.c @@ -116,11 +116,12 @@ static u32 PlayerStateValid(ManagerA* this) { static void sub_08058514(ManagerA* this) { switch (this->manager.unk_0d) { case 1: - if (gPlayerState.flags & (PL_BUSY | PL_DROWNING | PL_USE_PORTAL | PL_FALLING | 0x1010)) + if (gPlayerState.flags & + (PL_BUSY | PL_DROWNING | PL_USE_PORTAL | PL_FALLING | PL_IN_MINECART | PL_CAPTURED)) return; if (gPlayerEntity.z.HALF.HI != 0) return; - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; CreateEzloHint(this->msg_idx, this->msg_height); this->manager.unk_0d++; this->manager.unk_0e = 30; diff --git a/src/manager/managerF.c b/src/manager/managerF.c index 3fb57bc2..82b33d19 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -359,7 +359,7 @@ void sub_0805938C(ManagerF* this) { } u32 sub_080593CC(ManagerF* this) { - if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.swimState != 0 && gPlayerEntity.animationState == 0 && + if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.swim_state != 0 && gPlayerEntity.animationState == 0 && (gPlayerState.field_0x90 & 0xF00) == 0x400) { return sub_0806FCB8(&gPlayerEntity, this->unk_38, this->unk_3a + 0xC, 6); } diff --git a/src/npc/npc5.c b/src/npc/npc5.c index 05d2c7e0..900d3e79 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -88,7 +88,7 @@ void NPC5(Entity* this) { void sub_08060A00(Entity* this) { u32 tmp; - if ((gPlayerState.jumpStatus & 0x80) != 0) { + if ((gPlayerState.jump_status & 0x80) != 0) { if (this->action != 0) { if (((((UnkHeap*)this->myHeap)->unk_0) & 4) == 0) { ((UnkHeap*)this->myHeap)->unk_0 |= 4; diff --git a/src/npc/picolyteBottle.c b/src/npc/picolyteBottle.c index 962ca337..9b65c735 100644 --- a/src/npc/picolyteBottle.c +++ b/src/npc/picolyteBottle.c @@ -19,7 +19,7 @@ extern Hitbox gHitbox_0; void PicolyteBottle(Entity* this) { gUnk_081142BC[this->action](this); if (this->type == 0) { - gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.mobility |= 0x80; } } diff --git a/src/object/button.c b/src/object/button.c index 21c31891..5f36262d 100644 --- a/src/object/button.c +++ b/src/object/button.c @@ -147,7 +147,7 @@ Entity* sub_08081D74(Entity* this) { } ent = 0; if (sub_08081E0C(this)) { - if (!(gPlayerState.flags & 0x10) && !(gPlayerState.flags & PL_MINISH)) { + if ((gPlayerState.flags & PL_CAPTURED) == 0 && (gPlayerState.flags & PL_MINISH) == 0) { ent = &gPlayerEntity; } } else { diff --git a/src/object/houseDoorExterior.c b/src/object/houseDoorExterior.c index 77736989..8f48956b 100644 --- a/src/object/houseDoorExterior.c +++ b/src/object/houseDoorExterior.c @@ -168,7 +168,7 @@ void sub_0808692C(Entity* this) { static u8 sub_08086954(Entity* this) { if (sub_0800445C(this)) { if (sub_0806ED9C(this, 6, 20) >= 0 && gPlayerEntity.animationState == 0 && - (u16)gPlayerState.field_0x90 == 0x400 && gPlayerState.jumpStatus == 0) { + (u16)gPlayerState.field_0x90 == 0x400 && gPlayerState.jump_status == 0) { this->actionDelay--; } } else { diff --git a/src/object/itemOnGround.c b/src/object/itemOnGround.c index d0874cba..35cb741b 100644 --- a/src/object/itemOnGround.c +++ b/src/object/itemOnGround.c @@ -269,9 +269,9 @@ void sub_080812A8(Entity* this) { void sub_080812E8(Entity* this) { PlayerState* playerState = &gPlayerState; #ifdef EU - if ((playerState->swimState & 0x80) && sub_080177A0(this, &gPlayerEntity)) { + if ((playerState->swim_state & 0x80) && sub_080177A0(this, &gPlayerEntity)) { #else - if ((playerState->swimState & 0x80) && (playerState->flags & PL_MINISH) == 0 && + if ((playerState->swim_state & 0x80) && (playerState->flags & PL_MINISH) == 0 && sub_080177A0(this, &gPlayerEntity)) { #endif sub_080810FC(this); diff --git a/src/object/jarPortal.c b/src/object/jarPortal.c index 89142cbc..61ebb19a 100644 --- a/src/object/jarPortal.c +++ b/src/object/jarPortal.c @@ -108,7 +108,7 @@ void sub_0808C01C(Entity* this, u32 r1) { type = 2; gArea.curPortalType = type; if (r1 == 1) { - if ((gPlayerState.flags & PL_USE_PORTAL) && (gPlayerState.jumpStatus == 0)) { + if ((gPlayerState.flags & PL_USE_PORTAL) && (gPlayerState.jump_status == 0)) { gArea.field_0x18 = 2; } else { if (sub_08057810() != 0) { diff --git a/src/object/minecart.c b/src/object/minecart.c index bf03dfc9..92929f83 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -23,7 +23,7 @@ void sub_080916EC(Entity* this) { struct_030010EC* unk = &gScreenTransition.minecart_data[this->actionDelay]; *(struct_030010EC**)&this->cutsceneBeh.HWORD = unk; - if ((gRoomControls.roomID != unk->field_0x4) || (gPlayerState.flags & 0x1000) != 0) { + if ((gRoomControls.roomID != unk->field_0x4) || (gPlayerState.flags & PL_IN_MINECART) != 0) { DeleteThisEntity(); } this->x.HALF.HI = gRoomControls.roomOriginX + ((unk->field_0x0 & 0x3f) << 4) + 8; @@ -53,7 +53,7 @@ void sub_080917DC(Entity* this) { } else { if (sub_0800445C(this) != 0) { if (!((gPlayerState.flags & (PL_MINISH | PL_ROLLING)) || gPlayerState.field_0x1c || - gPlayerState.heldObject || gPlayerState.jumpStatus)) { + gPlayerState.heldObject || gPlayerState.jump_status)) { this->actionDelay++; } else { this->actionDelay = 0; @@ -64,8 +64,8 @@ void sub_080917DC(Entity* this) { if (this->type2 == 0) { if (this->actionDelay > 8) { this->action++; - gPlayerState.jumpStatus = 0x81; - gPlayerState.flags |= PL_MINECART; + gPlayerState.jump_status = 0x81; + gPlayerState.flags |= PL_ENTER_MINECART; gPlayerEntity.zVelocity = 0x20000; gPlayerEntity.speed = 0x100; gPlayerEntity.flags &= ~PL_MINISH; @@ -88,7 +88,7 @@ void sub_080918A4(Entity* this) { return; } gPlayerEntity.animationState = this->animationState << 1; - gPlayerState.flags = (gPlayerState.flags ^ PL_MINECART) | 0x1000; + gPlayerState.flags = (gPlayerState.flags ^ PL_ENTER_MINECART) | PL_IN_MINECART; this->action++; this->field_0xf = 1; this->flags |= ENT_20; @@ -114,7 +114,7 @@ void sub_080919AC(Entity* this) { u32 uVar3; gRoomControls.unk5 = 7; - if ((gPlayerState.flags & 0x1000) == 0) { + if ((gPlayerState.flags & PL_IN_MINECART) == 0) { this->action = 1; return; } @@ -159,8 +159,8 @@ void sub_080919AC(Entity* this) { this->flags2 = 0x80; this->action = 6; sub_08017744(this); - gPlayerState.jumpStatus = 0x41; - gPlayerState.flags = (gPlayerState.flags ^ 0x1000) | PL_MINECART; + gPlayerState.jump_status = 0x41; + gPlayerState.flags = (gPlayerState.flags ^ PL_IN_MINECART) | PL_ENTER_MINECART; gPlayerEntity.zVelocity = 0x20000; gPlayerEntity.speed = 0x200; gPlayerEntity.animationState = this->animationState << 1; diff --git a/src/objectUtils.c b/src/objectUtils.c index 3e66732e..901d323e 100644 --- a/src/objectUtils.c +++ b/src/objectUtils.c @@ -32,7 +32,7 @@ Entity* sub_080A276C(Entity* parent, u32 type, u32 type2) { e->field_0x6c.HALF.LO = gPlayerState.keepFacing; e->field_0x6c.HALF.HI = gPlayerState.field_0xa; e->field_0x6e.HALF.LO = gPlayerState.field_0x27[0]; - e->field_0x6e.HALF.HI = gPlayerState.field_0x1a[0]; + e->field_0x6e.HALF.HI = gPlayerState.mobility; e->field_0x70.WORD = gPlayerState.flags; e->field_0x74.HALF.LO = gPlayerState.field_0x82[8]; gPlayerEntity.flags &= ~ENT_COLLIDE; diff --git a/src/player.c b/src/player.c index dad3ec08..61cafe8c 100644 --- a/src/player.c +++ b/src/player.c @@ -18,14 +18,23 @@ #define GRAVITY_RATE 0x2000 #define SLOPE_SPEED_MODIFIER 0x50 +#define WALK_SPEED 0x140 +#define ROLL_SPEED 0x200 +#define SHIELDING_SPEED 0xC0 +#define GUST_JAR_SPEED 0x80 +#define SWORD_CHARGE_SPEED 0xE0 +#define BURNING_SPEED 0x300 + #define JUMP_SPEED_FWD 0x100 +/* Jumping out of a hole */ +#define JUMP_SPEED_HOLE_FWD 0x78 +#define JUMP_SPEED_HOLE_Z 0x1a000 +/* Bouncing off a wall */ #define BOUNCE_SPEED_FWD 0x100 #define BOUNCE_SPEED_Z 0x20000 -#define HOLE_SPEED_FWD 0x78 -#define HOLE_SPEED_Z 0x1a000 + #define PULL_SPEED 0x80 #define PUSH_SPEED 0x80 -#define ROLL_SPEED 0x200 #define PIT_DAMAGE 0x2 @@ -232,14 +241,15 @@ static EntityAction sub_0807518C; static EntityAction sub_080751B4; static void sub_080717F8(Entity*); -static void ResetPlayerPriority(); -static void BreakOut(Entity* this); +static void reset_priority(); +static void break_out(Entity* this); static void sub_08073AD4(Entity* this); static void sub_08073B60(Entity*); static void sub_08074244(Entity*, u32, u32); static void hide(Entity*); -static void sub_08074BF8(Entity*); +static void conveyer_push(Entity*); static void sub_08074D34(Entity*, ScriptExecutionContext*); +static void sub_08070BEC(Entity*, u32); // exports void SurfaceAction_Water(Entity*); @@ -257,7 +267,7 @@ extern void sub_08079708(); extern void sub_080792D8(); extern Entity* CreatePlayerBomb(); extern u32 sub_0806F854(); -extern u32 sub_08019840(); +extern u32 UpdatePlayerCollision(); extern void sub_08079744(); extern void sub_0807AE20(); extern u32 sub_0807A894(); @@ -276,7 +286,7 @@ extern void DoJump(Entity*); extern void SetZeldaFollowTarget(Entity*); u32 ItemIsSword(u32 item); extern u32 sub_0807A2B8(); -extern u32 sub_08079550(u32); +extern u32 sub_08079550(); extern u32 sub_080782C0(); extern u32 sub_080793E4(u32); extern void sub_08008AC6(Entity*); @@ -285,6 +295,20 @@ extern void sub_08077AEC(); extern u32 RunQueuedAction(); extern void UpdatePlayerSkills(); +void sub_08077698(Entity*); +u32 sub_080782C0(void); +u32 UpdatePlayerCollision(void); +void sub_080797EC(void); +u32 sub_0807AC54(Entity*); +void sub_080792D8(void); +u32 sub_08078F74(Entity*); +void DoJump(Entity*); +void sub_08008926(Entity*); +void UpdatePlayerMovement(void); +void CreateWaterTrace(Entity*); +void sub_08008AC6(Entity*); +void sub_08008AA0(Entity*); + extern ScreenTransitionData gUnk_0813AB58; extern ScreenTransitionData gUnk_0813AD88[]; extern u8 gUnk_080082DC[]; @@ -365,9 +389,9 @@ static void PlayerInit(Entity* this) { if (RunQueuedAction() == 0) { sub_0807921C(); UpdateFloorType(); - if (gPlayerState.swimState != 0) { + if (gPlayerState.swim_state != 0) { Entity* ent; - gPlayerState.swimState = 1; + gPlayerState.swim_state = 1; ResolvePlayerAnimation(); gPlayerState.framestate = PL_STATE_SWIM; sub_0807ACCC(this); @@ -379,8 +403,183 @@ static void PlayerInit(Entity* this) { } } -// PlayerState.flags need to be 100% before this one can reasonably be done -static ASM_FUNC("asm/non_matching/player/PlayerNormal.inc", void PlayerNormal(Entity* this)); +static void PlayerNormal(Entity* this) { + gPlayerState.framestate = PL_STATE_IDLE; + if (gPlayerState.flags & PL_CAPTURED) { + this->spritePriority.b1 = 0; + this->knockbackDuration = 0; + this->speed = WALK_SPEED; + gPlayerState.pushedObject = 0x80; + gPlayerState.framestate = PL_STATE_TRAPPED; + if ((this->animationState >> 1) + 92 == this->animIndex && (u16)this->spriteIndex == 2) + UpdateAnimationSingleFrame(&gPlayerEntity); + else + gPlayerState.animation = 604; + sub_0806F948(&gPlayerEntity); + ResetPlayer(); + sub_08077698(this); + return; + } + if (gPlayerState.flags & PL_IN_MINECART) { + u32 x; + this->hurtType = 30; + gPlayerState.framestate = PL_STATE_C; + sub_08070BEC(this, this->speed == 0 ? 1 : 0); + return; + } + if (gPlayerState.flags & PL_MOLDWORM_CAPTURED) { + ResolvePlayerAnimation(); + return; + } + sub_080085B0(this); + this->hurtType = 0; + if (RunQueuedAction()) { + return; + } + if (!gPlayerState.swim_state && (gPlayerState.jump_status & 0xC0) == 0) { + if (gPlayerState.field_0x3[0] || gPlayerState.field_0x1f[2]) { + this->speed = SHIELDING_SPEED; + } else { + if (gPlayerState.sword_state) { + this->speed = SWORD_CHARGE_SPEED; + } else if (gPlayerState.field_0x1c) { + this->speed = GUST_JAR_SPEED; + } else { + this->speed = WALK_SPEED; + } + } + } + gPlayerState.pushedObject |= 0x80; + if ((gPlayerState.flags & (PL_USE_OCARINA | 2)) == 0) { + UpdateFloorType(); + } + + if (RunQueuedAction()) { + return; + } + + if (gPlayerState.jump_status == 0 && (gPlayerState.flags & PL_BURNING) == 0) { + if (this->knockbackDuration == 0 && sub_080782C0()) { + if (gRoomVars.shopItemType == 0) { + ResetPlayer(); + } + if ((gPlayerState.flags & (PL_USE_OCARINA | 2)) == 0) { + UpdateFloorType(); + RunQueuedAction(); + } + return; + } + if (((gPlayerState.flags & + (PL_BUSY | PL_DROWNING | PL_USE_PORTAL | 0x10 | PL_FALLING | PL_BURNING | 0x1000 | PL_ROLLING)) | + gPlayerState.field_0xaa) == 0) { + switch (UpdatePlayerCollision()) { + case 0: + gPlayerState.pushedObject ^= 0x80; + break; + case 3: + gPlayerState.pushedObject = 0x80; + break; + case 15: + this->flags &= ~ENT_COLLIDE; + sub_080797EC(); + return; + case 4: + gPlayerState.pushedObject ^= 0x80; + sub_080797EC(); + return; + case 1: + case 2: + case 5 ... 14: + default: + return; + } + } + } + + this->field_0x3c = 0; + this->spritePriority.b0 = 4; + if (sub_0807AC54(this)) { + return; + } + sub_08077698(this); + + if (RunQueuedAction()) + return; + + sub_080792D8(); + if ((gPlayerState.jump_status | gPlayerState.field_0xa) == 0 && (sub_08079550() || sub_08078F74(this))) { + return; + } + DoJump(this); + + if (RunQueuedAction()) + return; + + if (gPlayerState.jump_status) { + gPlayerState.framestate = PL_STATE_CAPE; + if ((gPlayerState.jump_status & 0xC0) == 0) { + if ((gPlayerState.jump_status & 7) != 3 && (gPlayerState.jump_status & 0x20) == 0) { + this->speed = gPlayerState.jump_status & 0x20; + sub_08008926(this); + } else { + this->direction = 0xff; + } + } + UpdatePlayerMovement(); + if ((this->frame & 2) == 0 && !gPlayerState.field_0x3[1]) + UpdateAnimationSingleFrame(this); + return; + } + if (this->knockbackDuration == 0) { + u32 v13; + + if (gPlayerState.swim_state) { + gPlayerState.framestate = PL_STATE_SWIM; + sub_0807ACCC(this); + } else { + if ((gPlayerState.flags & 0x2000000) == 0) + this->spritePriority.b1 = 1; + if (gPlayerState.dash_state & 0x40) { + sub_08008AA0(this); + } else { + if (gPlayerState.floor_type == SURFACE_ICE) { + sub_08008926(this); + } else if (gPlayerState.floor_type == SURFACE_PIT) { + ResetPlayerVelocity(); + } else { + sub_08008AA0(this); + } + } + if ((gPlayerState.sword_state & 0x10) == 0) { + this->direction = gPlayerState.field_0xd; + if (gPlayerState.flags & PL_BURNING) { + this->speed = BURNING_SPEED; + if ((gPlayerState.field_0xd & 0x80) != 0) + this->direction = 4 * (this->animationState & 0xE); + DeleteClones(); + } + } + } + v13 = 0; + if ((((gPlayerState.field_0x7 | this->direction) & 0x80) | gPlayerState.field_0xa) == 0 && + (gPlayerState.field_0x7 & 0x10) == 0) { + v13 = 1; + if (this->knockbackDuration == 0 && + ((gPlayerState.dash_state & 0x40) || gPlayerState.floor_type != SURFACE_ICE)) + v13 = 3; + } + sub_08070BEC(this, v13); + sub_08008AC6(this); + if (this->knockbackDuration == 0 && gPlayerState.keepFacing == 0 && gPlayerState.floor_type != SURFACE_LADDER) + sub_0806F948(this); + } else { + if (gPlayerState.item == NULL) + UpdateAnimationSingleFrame(this); + if (gPlayerState.swim_state != 0 && (gScreenTransition.frameCount & 7) == 0) + CreateWaterTrace(this); + return; + } +} static void sub_08070BEC(Entity* this, u32 r0) { if (r0 & 1) @@ -411,7 +610,7 @@ static void PlayerFallInit(Entity* this) { gPlayerState.flags |= PL_BUSY | PL_DROWNING; gPlayerState.flags &= ~PL_BURNING; - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; if (gPlayerState.flags & PL_MINISH) gPlayerState.animation = 0x1ba; @@ -472,7 +671,7 @@ static void PlayerBounceInit(Entity* this) { this->zVelocity = (BOUNCE_SPEED_Z * 3) / 4; } - gPlayerState.jumpStatus = 0x80; + gPlayerState.jump_status = 0x80; SoundReq(SFX_14C); ResetPlayer(); ResetPlayerVelocity(); @@ -488,13 +687,13 @@ static NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void PlayerBounceUpd if (RunQueuedAction() || GravityUpdate(this, GRAVITY_RATE)) return; - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; if (RunQueuedAction() || sub_08079D48()) return; - if (gPlayerState.swimState != 0) { - gPlayerState.jumpStatus = 0; + if (gPlayerState.swim_state != 0) { + gPlayerState.jump_status = 0; ResetPlayerAnimationAndAction(); return; } @@ -524,7 +723,7 @@ END_NONMATCH static void sub_08070E7C(Entity* this) { if (--this->actionDelay == 0) { - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; ResetPlayerAnimationAndAction(); } } @@ -593,7 +792,7 @@ static void PlayerItemGetInit(Entity* this) { this->animationState = IdleSouth; gPlayerState.flags |= PL_BUSY; - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; if ((gPlayerState.flags & PL_MINISH) == 0) { u32 anim; @@ -634,7 +833,7 @@ static void sub_08071038(Entity* this) { this->child = NULL; this->knockbackDuration = 0; this->iframes = 248; - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; ResetPlayerAnimationAndAction(); } } @@ -660,7 +859,7 @@ static void PlayerJumpInit(Entity* this) { gPlayerState.queued_action = 0; - if ((gPlayerState.heldObject | gPlayerState.field_0x1a[1]) == 0) { + if ((gPlayerState.heldObject | gPlayerState.sword_state) == 0) { if ((gPlayerState.flags & PL_MINISH) == 0) { ResetPlayer(); if (gPlayerState.flags & PL_NO_CAP) { @@ -685,10 +884,10 @@ static void PlayerJumpInit(Entity* this) { } static void sub_08071130(Entity* this) { - if (RunQueuedAction(this)) + if (RunQueuedAction()) return; - if (gPlayerState.field_0x1a[1] == 0) { + if (gPlayerState.sword_state == 0) { UpdateAnimationSingleFrame(this); if (this->frame & 1) @@ -700,7 +899,7 @@ static void sub_08071130(Entity* this) { if (GravityUpdate(this, GRAVITY_RATE)) return; - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; ResetCollisionLayer(this); if (*(Entity**)&this->field_0x74 != NULL) @@ -716,8 +915,8 @@ static void sub_08071130(Entity* this) { if (RunQueuedAction()) return; - if ((sub_08079D48() == 0) || (gPlayerState.swimState != 0)) { - gPlayerState.jumpStatus = 0; + if ((sub_08079D48() == 0) || (gPlayerState.swim_state != 0)) { + gPlayerState.jump_status = 0; ResetPlayerAnimationAndAction(); return; } @@ -747,7 +946,7 @@ static void sub_08071208(Entity* this) { } if (--this->actionDelay == 0xff) { - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; ResetPlayerAnimationAndAction(); } } @@ -810,7 +1009,7 @@ static void sub_080712F0(Entity* this) { this->iframes = 32; this->spritePriority.b1 = 1; this->spriteSettings.draw = FALSE; - gPlayerState.flags &= ~0x4; + gPlayerState.flags &= ~PL_DROWNING; RespawnPlayer(); } @@ -862,7 +1061,7 @@ static void PortalJumpOnUpdate(Entity* this) { DoJump(this); UpdateAnimationSingleFrame(this); - if (gPlayerState.jumpStatus == 0) { + if (gPlayerState.jump_status == 0) { gPlayerState.flags |= PL_USE_PORTAL; this->subAction = 1; this->animationState = IdleSouth; @@ -1022,7 +1221,7 @@ static void PlayerTalkEzlo(Entity* this) { if (RunQueuedAction()) { MessageClose(); - ResetPlayerPriority(); + reset_priority(); } else { gPlayerState.framestate = PL_STATE_TALKEZLO; COLLISION_OFF(this); @@ -1044,7 +1243,7 @@ static void PlayerTalkEzloInit(Entity* this) { return; } - if (gPlayerState.jumpStatus == 0) { + if (gPlayerState.jump_status == 0) { this->subAction++; if (this->animationState == IdleEast) @@ -1057,7 +1256,7 @@ static void PlayerTalkEzloInit(Entity* this) { } if (!GravityUpdate(this, GRAVITY_RATE)) - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; } static void sub_0807193C(Entity* this) { @@ -1089,7 +1288,7 @@ static void sub_08071990(Entity* this) { else gPlayerState.animation = 0x3c9; } else { - ResetPlayerPriority(); + reset_priority(); sub_08079258(); } return; @@ -1120,12 +1319,12 @@ static void sub_08071990(Entity* this) { static void sub_08071A4C(Entity* this) { UpdateAnimationSingleFrame(this); if (this->frame & 0x80) { - ResetPlayerPriority(); + reset_priority(); sub_0807921C(); } } -static void ResetPlayerPriority(void) { +static void reset_priority(void) { gPriorityHandler.sys_priority = PRIO_MIN; gPlayerEntity.updatePriority = gPlayerEntity.updatePriorityPrev; } @@ -1231,7 +1430,7 @@ static void PlayerMinishDie(Entity* this) { static void PlayerMinishDieInit(Entity* this) { u32 temp; - if (gPlayerState.flags & (0x10 | 0x100)) + if (gPlayerState.flags & (PL_CAPTURED | PL_DISABLE_ITEMS)) return; if (GravityUpdate(this, GRAVITY_RATE)) { @@ -1252,16 +1451,17 @@ static void PlayerMinishDieInit(Entity* this) { } temp = 0xc1a; } else { - temp = (gPlayerState.flags & 8) ? 0x459 : 0x1bc; + temp = (gPlayerState.flags & PL_NO_CAP) ? 0x459 : 0x1bc; } gPlayerState.animation = temp; - gPlayerState.flags &= ~(PL_PARACHUTE | PL_RELEASED | PL_ROLLING | PL_FROZEN | PL_BURNING | 0x100 | PL_BUSY); + gPlayerState.flags &= + ~(PL_PARACHUTE | PL_MOLDWORM_RELEASED | PL_ROLLING | PL_FROZEN | PL_BURNING | 0x100 | PL_BUSY); this->subAction = 1; this->animationState = IdleSouth; this->spritePriority.b1 = 1; this->spriteSettings.draw = 3; - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; gPlayerState.pushedObject = 0; sub_0800451C(this); ResetPlayer(); @@ -1307,8 +1507,8 @@ static void sub_08071D04(Entity* this) { this->direction = 0xff; this->speed = 0; this->zVelocity = 0x18000; - gPlayerState.jumpStatus = 1; - gPlayerState.swimState = 0; + gPlayerState.jump_status = 1; + gPlayerState.swim_state = 0; return; } @@ -1319,8 +1519,8 @@ static void sub_08071D80(Entity* this) { UpdateAnimationSingleFrame(this); gPlayerState.field_0x14 = 1; DoJump(this); - if ((gPlayerState.jumpStatus & 7) == 3) { - gPlayerState.jumpStatus = 0; + if ((gPlayerState.jump_status & 7) == 3) { + gPlayerState.jump_status = 0; this->iframes = 226; ResetPlayerEventPriority(); ResetPlayerAnimationAndAction(); @@ -1447,10 +1647,10 @@ static void PlayerFrozenInit(Entity* this) { static void PlayerFrozenUpdate(Entity* this) { if (GravityUpdate(this, GRAVITY_RATE) == 0) { UpdateSpriteForCollisionLayer(this); - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; if (gPlayerState.field_0x14 == 0) { if (sub_08079D48() == 0) { - BreakOut(this); + break_out(this); return; } } @@ -1470,10 +1670,10 @@ static void PlayerFrozenUpdate(Entity* this) { } } } - BreakOut(this); + break_out(this); } -static void BreakOut(Entity* this) { +static void break_out(Entity* this) { this->iframes = 160; this->knockbackDuration = 0; COLLISION_ON(this); @@ -1556,7 +1756,7 @@ static void sub_08072168(Entity* this) { UpdatePlayerMovement(); } gPlayerState.field_0xd = this->direction; - sub_08019840(); + UpdatePlayerCollision(); if (--this->actionDelay == 0xff) { this->knockbackDuration = 0; COLLISION_ON(this); @@ -1718,7 +1918,7 @@ static void sub_080724DC(Entity* this) { this->knockbackDuration = 0; DeleteClones(); if (sub_080002B8(this) != 0x29) { - if ((gPlayerState.field_0x82[7] == 0) && (gPlayerState.swimState != 0)) { + if ((gPlayerState.field_0x82[7] == 0) && (gPlayerState.swim_state != 0)) { sub_0807AE20(this); } if (gRoomControls.unk2 == 0) { @@ -1760,7 +1960,7 @@ static void sub_0807258C(Entity* this) { PlayerWaitForScroll(this); } } - if ((gPlayerState.field_0x82[7] == 0) && (gPlayerState.swimState != 0)) { + if ((gPlayerState.field_0x82[7] == 0) && (gPlayerState.swim_state != 0)) { sub_0807AE20(this); } } @@ -1778,7 +1978,7 @@ static void PlayerRoll(Entity* this) { static void PlayerRollInit(Entity* this) { u32 temp; - if ((gPlayerState.flags & PL_RELEASED) == 0) { + if ((gPlayerState.flags & PL_MOLDWORM_RELEASED) == 0) { sub_0806F948(&gPlayerEntity); this->direction = Direction8FromAnimationState(this->animationState); } @@ -1807,8 +2007,8 @@ static void PlayerRollInit(Entity* this) { } static void PlayerRollUpdate(Entity* this) { - if (((gPlayerState.flags & (PL_ROLLING | PL_TRAPPED)) != PL_ROLLING) || - ((gPlayerState.flags & PL_RELEASED) == 0 && (this->iframes != 0) && (this->bitfield & 0x80))) { + if (((gPlayerState.flags & (PL_ROLLING | PL_MOLDWORM_CAPTURED)) != PL_ROLLING) || + ((gPlayerState.flags & PL_MOLDWORM_RELEASED) == 0 && (this->iframes != 0) && (this->bitfield & 0x80))) { gPlayerState.flags &= ~PL_ROLLING; if (RunQueuedAction()) return; @@ -1830,7 +2030,7 @@ static void PlayerRollUpdate(Entity* this) { return; } - if (gPlayerState.flags & PL_TRAPPED) { + if (gPlayerState.flags & PL_MOLDWORM_CAPTURED) { gPlayerState.flags &= ~PL_ROLLING; return; } @@ -1839,7 +2039,7 @@ static void PlayerRollUpdate(Entity* this) { return; } - if (gPlayerState.flags & (PL_FALLING | PL_HIDDEN | 0x10)) { + if (gPlayerState.flags & (PL_FALLING | PL_HIDDEN | PL_CAPTURED)) { gPlayerState.flags &= ~PL_ROLLING; PlayerWaitForScroll(this); return; @@ -1879,7 +2079,7 @@ static void PlayerRollUpdate(Entity* this) { ResetPlayerAnimationAndAction(); } if (this->frame & 0x80) { - gPlayerState.flags &= ~(PL_RELEASED | PL_ROLLING); + gPlayerState.flags &= ~(PL_MOLDWORM_RELEASED | PL_ROLLING); } UpdateAnimationSingleFrame(this); } @@ -1891,7 +2091,7 @@ static void PlayerWaitForScroll(Entity* this) { else ResetPlayerVelocity(); - if (gPlayerState.swimState != 0) + if (gPlayerState.swim_state != 0) this->speed = 0; if ((gPlayerState.flags & PL_HIDDEN) == 0) gPlayerEntity.spriteSettings.draw = 3; @@ -1969,11 +2169,11 @@ static void sub_08072ACC(Entity* this) { } else if (this->field_0xf > 7) { COLLISION_ON(this); this->direction = gPlayerState.field_0xd; - this->zVelocity = HOLE_SPEED_Z; - this->speed = HOLE_SPEED_FWD; + this->zVelocity = JUMP_SPEED_HOLE_Z; + this->speed = JUMP_SPEED_HOLE_FWD; this->spritePriority.b0 = 4; this->spritePriority.b1 = 1; - gPlayerState.jumpStatus = 0x41; + gPlayerState.jump_status = 0x41; sub_0807921C(); sub_0807BA8C(COORD_TO_TILE(this), this->collisionLayer); } else { @@ -2001,7 +2201,7 @@ static void sub_08072B5C(Entity* this) { this->speed = 0x40; this->zVelocity = 0x39000; this->z.WORD--; - gPlayerState.jumpStatus = 0x41; + gPlayerState.jump_status = 0x41; sub_0806F854(this, 0, -12); sub_0807921C(); return; @@ -2163,7 +2363,7 @@ static NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(En } } } else { - if ((gPlayerState.flags & 8)) { + if ((gPlayerState.flags & PL_NO_CAP)) { gPlayerState.animation = 0x424; } else { gPlayerState.animation = 0x820; @@ -2270,7 +2470,7 @@ static void sub_08073094(Entity* this) { this->spritePriority.b1 = 0; this->speed = sSpeeds[this->frame & 0xf]; UpdatePlayerMovement(); - if (!sub_08019840()) { + if (!UpdatePlayerCollision()) { gPlayerState.pushedObject ^= 0x80; if ((gPlayerState.floor_type != SURFACE_AUTO_LADDER) && (gPlayerState.floor_type != SURFACE_2C)) { UpdateFloorType(); @@ -2453,7 +2653,7 @@ static void PlayerParachute(Entity* this) { static void sub_08073468(Entity* this) { gPlayerState.animation = 1792; - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; this->zVelocity = -0x10000; this->subAction++; this->field_0x7c.WORD = 480; @@ -2513,7 +2713,7 @@ static NONMATCH("asm/non_matching/player/sub_08073584.inc", void sub_08073584(En if ((gPlayerState.field_0x92 & 0x80) || this->iframes > 0 || gPlayerState.field_0x3c[0] || (gPlayerState.flags & PL_PARACHUTE) == 0) { - gPlayerState.jumpStatus |= 0x40; + gPlayerState.jump_status |= 0x40; sub_0807921C(); DoJump(this); gPlayerState.animation = 1840; @@ -2591,7 +2791,7 @@ static NONMATCH("asm/non_matching/player/sub_08073584.inc", void sub_08073584(En gPlayerState.animation = gUnk_0811BC30[this->field_0x86.HALF.LO]; } if (--this->field_0x7c.WORD == -1) { - gPlayerState.jumpStatus |= 0x40; + gPlayerState.jump_status |= 0x40; sub_0807921C(); } else { u32 di = (this->field_0x7c.WORD / 20); @@ -2622,7 +2822,7 @@ static void sub_080737BC(Entity* this) { tmp = 0xf; tmp &= pos; if (tmp == 8 && !sub_080002D0(this)) { - gPlayerState.jumpStatus |= 0x40; + gPlayerState.jump_status |= 0x40; sub_0807921C(); } } @@ -2682,12 +2882,12 @@ void DoJump(Entity* this) { sub_08073924, sub_08073968, sub_080739EC, sub_08073A94, sub_08073B8C, sub_08073C30, }; - sStates[gPlayerState.jumpStatus & 7](this); + sStates[gPlayerState.jump_status & 7](this); } void sub_08073924(Entity* this) { if ((gPlayerState.flags & PL_ROLLING) == 0 && (this->z.HALF.HI & 0x8000) && !gPlayerState.field_0xa) { - gPlayerState.jumpStatus = 0x40; + gPlayerState.jump_status = 0x40; gPlayerState.field_0xd = 0xff; this->direction = 0xff; sub_08077B20(); @@ -2696,7 +2896,7 @@ void sub_08073924(Entity* this) { } static void sub_08073968(Entity* this) { - if ((gPlayerState.jumpStatus & 0xC0) == 0) { + if ((gPlayerState.jump_status & 0xC0) == 0) { this->direction = gPlayerState.field_0xd; } sub_08078F24(); @@ -2705,45 +2905,45 @@ static void sub_08073968(Entity* this) { gPlayerState.animation = 1052; } else { if ((gPlayerState.flags & PL_MINISH) == 0) { - if (gPlayerState.flags & PL_MINECART) { + if (gPlayerState.flags & PL_ENTER_MINECART) { gPlayerState.animation = 2064; } else { gPlayerState.animation = 2060; } } } - if ((gPlayerState.jumpStatus & 0xC0) == 0) { + if ((gPlayerState.jump_status & 0xC0) == 0) { sub_0806F948(this); } SoundReq(SFX_PLY_JUMP); } - gPlayerState.jumpStatus = (gPlayerState.jumpStatus & ~7) | 2; + gPlayerState.jump_status = (gPlayerState.jump_status & ~7) | 2; } static void sub_080739EC(Entity* this) { u32 v; - if ((gPlayerState.jumpStatus & 0xC0) != 0) { + if ((gPlayerState.jump_status & 0xC0) != 0) { gPlayerState.field_0xd = this->direction; - if (gPlayerState.jumpStatus & 0x80) + if (gPlayerState.jump_status & 0x80) this->collisions = 0; v = GRAVITY_RATE; } else { if ((u16)sub_0806F854(this, 0, -12)) { - gPlayerState.jumpStatus |= 8; + gPlayerState.jump_status |= 8; v = GRAVITY_RATE * 2; } else { v = GRAVITY_RATE; - if (gPlayerState.jumpStatus & 0x10) + if (gPlayerState.jump_status & 0x10) v /= 2; } } - if ((gPlayerState.jumpStatus & 0xC0) == 0) { - if ((gPlayerState.jumpStatus & 0x20) && this->zVelocity == 0) { + if ((gPlayerState.jump_status & 0xC0) == 0) { + if ((gPlayerState.jump_status & 0x20) && this->zVelocity == 0) { this->zVelocity = 0x28000; this->actionDelay = 10; this->direction = 0xff; - gPlayerState.jumpStatus += 2; + gPlayerState.jump_status += 2; gPlayerState.animation = 372; ResetPlayerVelocity(); return; @@ -2758,7 +2958,7 @@ void sub_08073A94(Entity* this) { sub_08073B60(this); } if (gPlayerEntity.z.WORD != 0) { - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; sub_08073924(this); } } @@ -2770,18 +2970,18 @@ static void sub_08073AD4(Entity* this) { this->spriteOrientation.flipY = 2; this->spriteRendering.b3 = 2; } - tmp = (gPlayerState.jumpStatus & ~0xC0); + tmp = (gPlayerState.jump_status & ~0xC0); if (this->action != PLAYER_MINISHDIE) { sub_0807A2B8(); - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; UpdateFloorType(); - if (gPlayerState.queued_action != 0 || gPlayerState.swimState != 0) { + if (gPlayerState.queued_action != 0 || gPlayerState.swim_state != 0) { return; } if (gPlayerState.field_0x3[1]) sub_08073B60(this); } - gPlayerState.jumpStatus = tmp + 1; + gPlayerState.jump_status = tmp + 1; if (gPlayerState.flags & PL_NO_CAP) gPlayerState.animation = 1060; else @@ -2790,9 +2990,9 @@ static void sub_08073AD4(Entity* this) { } static void sub_08073B60(Entity* this) { - gPlayerState.field_0x1a[1] = 0; + gPlayerState.sword_state = 0; gPlayerState.field_0x3[1] = 0; - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; ResolvePlayerAnimation(); sub_080085B0(this); if ((gPlayerState.flags & PL_USE_PORTAL) == 0) { @@ -2820,7 +3020,7 @@ void sub_08073B8C(Entity* this) { sub_08073B60(this); return; } - gPlayerState.jumpStatus++; + gPlayerState.jump_status++; this->actionDelay = 15; InitScreenShake(0x10, 0); SoundReq(SFX_14C); @@ -2876,8 +3076,8 @@ static void sub_08073D20(Entity* this) { this->spritePriority.b1 = 3; this->hurtType = 1; ResetPlayerVelocity(); - if (!gPlayerState.swimState) - this->speed = 0xC0; + if (!gPlayerState.swim_state) + this->speed = 0xC0; /* todo: shielding speed? */ if (!sub_08079B24()) { sub_08079708(this); return; @@ -2885,17 +3085,17 @@ static void sub_08073D20(Entity* this) { if (!RunQueuedAction()) { DoJump(this); UpdateFloorType(); - if (gPlayerState.jumpStatus) + if (gPlayerState.jump_status) gPlayerState.framestate = PL_STATE_CAPE; if (gPlayerState.floor_type != SURFACE_SHALLOW_WATER && gPlayerState.floor_type != SURFACE_WATER) { - gPlayerState.swimState = 0; + gPlayerState.swim_state = 0; this->field_0x3c &= ~4; } if (!RunQueuedAction() && this->subAction != 2) { if ((gPlayerState.flags & PL_HIDDEN) == 0) { sub_080085B0(this); sub_080792D8(); - if (!gPlayerState.field_0xa && sub_08079550(gPlayerState.field_0xa)) + if (!gPlayerState.field_0xa && sub_08079550()) return; if (this->knockbackDuration) { this->direction = this->knockbackDirection; @@ -2907,13 +3107,13 @@ static void sub_08073D20(Entity* this) { } COLLISION_ON(this); } - if (!sub_08019840()) { + if (!UpdatePlayerCollision()) { sub_08077698(this); if (!GravityUpdate(this, GRAVITY_RATE)) - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; if ((gPlayerState.field_0x7 & 0x80) == 0 && !gPlayerState.field_0xa) { if (this->iframes <= 8) { - if (gPlayerState.swimState) { + if (gPlayerState.swim_state) { gPlayerState.framestate = PL_STATE_SWIM; sub_0807ACCC(this); UpdatePlayerMovement(); @@ -3074,7 +3274,7 @@ static NONMATCH("asm/non_matching/player/sub_080740D8.inc", void sub_080740D8(En END_NONMATCH u32 sub_080741C4() { - if ((gPlayerState.jumpStatus && (gPlayerState.jumpStatus & 7) != 3) || gPlayerEntity.z.WORD != 0) { + if ((gPlayerState.jump_status && (gPlayerState.jump_status & 7) != 3) || gPlayerEntity.z.WORD != 0) { gPlayerState.field_0x11 = 0; gPlayerState.field_0x37 = 0; return 1; @@ -3122,8 +3322,8 @@ static void sub_08074244(Entity* this, u32 a1, u32 a2) { } void SurfaceAction_6(Entity* this) { - if (gPlayerState.swimState != 0) { - gPlayerState.swimState = 0; + if (gPlayerState.swim_state != 0) { + gPlayerState.swim_state = 0; } this->spritePriority.b0 = 4; this->field_0x3c &= ~4; @@ -3233,7 +3433,7 @@ void SurfaceAction_CloneTile(Entity* this) { CopyPosition(this, e); } } else { - gPlayerState.field_0x1a[1] |= 0x80; + gPlayerState.sword_state |= 0x80; gPlayerState.flags |= PL_CLONING; this->x.WORD = (this->x.WORD & ~0xFFFFF) | 0x80000; this->y.WORD = (this->y.WORD & ~0xFFFFF) | 0x80000; @@ -3269,11 +3469,11 @@ void SurfaceAction_ShallowWater(Entity* this) { this->spritePriority.b1 = 0; SurfaceAction_Water(this); } else { - if (gPlayerState.swimState) { + if (gPlayerState.swim_state) { COLLISION_ON(this); this->field_0x3c &= ~4; this->spritePriority.b0 = 4; - gPlayerState.swimState = 0; + gPlayerState.swim_state = 0; } if ((gPlayerState.field_0x92 & 0xF00) || gPlayerState.field_0x11 == 1) SoundReq(SFX_WATER_WALK); @@ -3282,11 +3482,11 @@ void SurfaceAction_ShallowWater(Entity* this) { } void SurfaceAction_SlopeGndWater(Entity* this) { - if (gPlayerState.swimState) { + if (gPlayerState.swim_state) { COLLISION_ON(this); this->field_0x3c &= ~4; this->spritePriority.b0 = 4; - gPlayerState.swimState = 0; + gPlayerState.swim_state = 0; } } @@ -3297,11 +3497,11 @@ void SurfaceAction_Water(Entity* this) { if (gPlayerState.field_0x14 == 0) { gPlayerState.field_0x3f += 2; } else { - gPlayerState.swimState = 0; + gPlayerState.swim_state = 0; this->spritePriority.b0 = 4; this->field_0x3c &= ~4; } - if ((gPlayerState.swimState & 0xF) || sub_08079C30(this)) { + if ((gPlayerState.swim_state & 0xF) || sub_08079C30(this)) { sub_08074808(this); } } @@ -3310,11 +3510,11 @@ void SurfaceAction_Water(Entity* this) { void sub_08074808(Entity* this) { sub_08077AEC(this); if (GetInventoryValue(ITEM_FLIPPERS) == 1) { - if (!gPlayerState.swimState) { + if (!gPlayerState.swim_state) { if ((gPlayerState.flags & 0x10000) != 0) - gPlayerState.swimState = 1; + gPlayerState.swim_state = 1; else - gPlayerState.swimState = 8; + gPlayerState.swim_state = 8; this->speed = 0; gPlayerState.field_0x82[7] = 0; if ((gPlayerState.flags & PL_MINISH) == 0) @@ -3322,9 +3522,9 @@ void sub_08074808(Entity* this) { SoundReq(SFX_1A5); ResetPlayer(); } - if ((gPlayerState.swimState & 0xF) != 1) { + if ((gPlayerState.swim_state & 0xF) != 1) { sub_08079744(this); - --gPlayerState.swimState; + --gPlayerState.swim_state; } gPlayerState.flags &= ~(PL_BURNING | PL_FROZEN); if ((gPlayerState.flags & PL_DRUGGED) != 0 && this->field_0x7a.HWORD <= 0xEu) @@ -3372,7 +3572,7 @@ void SurfaceAction_ClimbWall(Entity* this) { void SurfaceAction_Ladder(Entity* this) { if (!sub_080741C4()) { - gPlayerState.jumpStatus = 0; + gPlayerState.jump_status = 0; this->spriteRendering.b3 = 1; this->spriteOrientation.flipY = 1; this->animationState = IdleNorth; @@ -3396,7 +3596,7 @@ void SurfaceAction_AutoLadder(Entity* this) { this->spriteOrientation.flipY = 1; this->animationState = IdleNorth; this->collisionLayer = 3; - gPlayerState.swimState = 0; + gPlayerState.swim_state = 0; this->field_0x3c &= ~4; if ((this->y.HALF.HI & 0xF) <= 7) { gPlayerState.animation = 723; @@ -3410,7 +3610,7 @@ void SurfaceAction_AutoLadder(Entity* this) { } void SurfaceAction_20(Entity* this) { - if (gPlayerState.swimState & 0x80) { + if (gPlayerState.swim_state & 0x80) { Entity* e = CreateObjectWithParent(&gPlayerEntity, GROUND_ITEM, ITEM_RUPEE1, 0); if (e != NULL) { e->actionDelay = 1; @@ -3455,45 +3655,45 @@ void SurfaceAction_Hole(Entity* this) { } } -void SurfaceAction_D(Entity* this) { +void SurfaceAction_ConveyerNorth(Entity* this) { if (!sub_080741C4() && (gPlayerState.flags & PL_MINISH) == 0) { this->animationState = IdleNorth; this->direction = DirectionNorth; - sub_08074BF8(this); + conveyer_push(this); } } -void SurfaceAction_E(Entity* this) { +void SurfaceAction_ConveyerSouth(Entity* this) { if (!sub_080741C4() && (gPlayerState.flags & PL_MINISH) == 0) { this->animationState = IdleSouth; this->direction = DirectionSouth; - sub_08074BF8(this); + conveyer_push(this); } } -void SurfaceAction_F(Entity* this) { +void SurfaceAction_ConveyerWest(Entity* this) { if (!sub_080741C4() && (gPlayerState.flags & PL_MINISH) == 0) { this->animationState = IdleWest; this->direction = DirectionWest; - sub_08074BF8(this); + conveyer_push(this); } } -void SurfaceAction_10(Entity* this) { +void SurfaceAction_ConveyerEast(Entity* this) { if (!sub_080741C4() && (gPlayerState.flags & PL_MINISH) == 0) { this->animationState = IdleEast; this->direction = DirectionEast; - sub_08074BF8(this); + conveyer_push(this); } } -static void sub_08074BF8(Entity* this) { +static void conveyer_push(Entity* this) { ResetPlayer(); this->spritePriority.b1 = 0; - this->speed = 320; + this->speed = WALK_SPEED; gPlayerState.flags |= 0x2000000; gPlayerState.field_0xa |= 0x80; - gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.mobility |= 0x80; gPlayerState.field_0x27[0]++; LinearMoveUpdate(this); } diff --git a/src/projectile/v1DarkMagicProjectile.c b/src/projectile/v1DarkMagicProjectile.c index 27fe3c98..531d009c 100644 --- a/src/projectile/v1DarkMagicProjectile.c +++ b/src/projectile/v1DarkMagicProjectile.c @@ -36,7 +36,7 @@ void sub_080AAC44(Entity* this) { ResolveEntityOnTop(this->parent, this); } ResetPlayer(); - gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.mobility |= 0x80; gPlayerState.field_0xa |= 0x80; } if (gPlayerEntity.health == 0) { @@ -180,11 +180,11 @@ void sub_080AAF74(Entity* this) { this->action = 1; this->field_0x80.HALF.LO = 0; gPlayerEntity.iframes = 0xf0; - gPlayerState.field_0x1a[0] = 0; + gPlayerState.mobility = 0; this->health = 0; } else { ResetPlayer(); - gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.mobility |= 0x80; gPlayerState.field_0xa |= 0x80; CopyPosition(&gPlayerEntity, this); this->z.HALF.HI = gPlayerEntity.z.HALF.HI - 4; diff --git a/src/script.c b/src/script.c index 96b6abf9..5aed7fc3 100644 --- a/src/script.c +++ b/src/script.c @@ -2095,7 +2095,7 @@ void sub_0807FB64(Entity* entity, ScriptExecutionContext* context) { } void sub_0807FB74(Entity* entity, ScriptExecutionContext* context) { - gPlayerState.swimState = 0; + gPlayerState.swim_state = 0; gPlayerEntity.field_0x3c &= ~4; } @@ -2109,7 +2109,7 @@ void sub_0807FBA0(Entity* entity, ScriptExecutionContext* context) { } void sub_0807FBB4(Entity* entity, ScriptExecutionContext* context) { - gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.mobility |= 0x80; } void sub_0807FBC4(Entity* entity, ScriptExecutionContext* context) { From 028006591481eed1142879887d98b2f90e9d9799 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 3 Jan 2022 04:51:04 +0200 Subject: [PATCH 092/168] Decompile EU sub_0801F428 --- asm/non_matching/eu/sub_0801F428.inc | 47 ---------------------------- src/enemy/chuchu.c | 13 +++++--- 2 files changed, 9 insertions(+), 51 deletions(-) delete mode 100644 asm/non_matching/eu/sub_0801F428.inc diff --git a/asm/non_matching/eu/sub_0801F428.inc b/asm/non_matching/eu/sub_0801F428.inc deleted file mode 100644 index 6c876322..00000000 --- a/asm/non_matching/eu/sub_0801F428.inc +++ /dev/null @@ -1,47 +0,0 @@ -.syntax unified - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0804A720 - movs r4, #0 - movs r0, #1 - strb r0, [r5, #0xc] - bl Random - strb r0, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r0, #0x3b - strb r1, [r0] - adds r0, #2 - strb r4, [r0] - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _0801F484 - movs r0, #3 - strb r0, [r5, #0xc] - movs r0, #0x1e - strb r0, [r5, #0xf] - adds r0, r5, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r5, #0x15] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - movs r1, #2 - bl InitializeAnimation -_0801F484: - pop {r4, r5, pc} - .align 2, 0 -.syntax divided diff --git a/src/enemy/chuchu.c b/src/enemy/chuchu.c index 9f10023a..308fb47f 100644 --- a/src/enemy/chuchu.c +++ b/src/enemy/chuchu.c @@ -331,9 +331,6 @@ void sub_0801F3AC(Entity* this) { } } -#ifdef EU -ASM_FUNC("asm/non_matching/eu/sub_0801F428.inc", void sub_0801F428(Entity* this)) -#else void sub_0801F428(Entity* this) { sub_0804A720(this); this->action = 1; @@ -345,12 +342,20 @@ void sub_0801F428(Entity* this) { this->action = 3; this->field_0xf = 30; + +#ifdef EU + this->direction = sub_08049F84(this, 1); +#endif + COLLISION_ON(this); this->spritePriority.b1 = 3; + +#ifndef EU this->spriteSettings.draw = 1; +#endif + InitializeAnimation(this, 2); } -#endif void sub_0801F48C(Entity* this) { GetNextFrame(this); From 6e6517d2872d88569a927f47e21cd2ca428ddc1c Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 3 Jan 2022 08:29:21 +0200 Subject: [PATCH 093/168] Decompile EU sub_08075ADC --- asm/non_matching/eu/sub_08075ADC.inc | 58 ---------------------------- src/item/itemLantern.c | 12 +++--- 2 files changed, 6 insertions(+), 64 deletions(-) delete mode 100644 asm/non_matching/eu/sub_08075ADC.inc diff --git a/asm/non_matching/eu/sub_08075ADC.inc b/asm/non_matching/eu/sub_08075ADC.inc deleted file mode 100644 index e9bdb235..00000000 --- a/asm/non_matching/eu/sub_08075ADC.inc +++ /dev/null @@ -1,58 +0,0 @@ - .syntax unified - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r1, [r4, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075532 - ldr r0, _08075570 @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #0x88 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08075532 - bl sub_08079D48 - cmp r0, #0 - bne _08075578 -_08075532: - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - ldr r3, _08075570 @ =gPlayerState - ldr r0, [r3, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - orrs r0, r1 - str r0, [r3, #0x30] - movs r2, #8 - asrs r2, r5 - lsls r1, r2, #4 - orrs r1, r2 - ldrb r0, [r3, #4] - bics r0, r1 - strb r0, [r3, #4] - mvns r2, r2 - ldrb r1, [r3, #0xa] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - ands r2, r0 - strb r2, [r3, #0xb] - ldr r0, _08075574 @ =0x0000013D - bl SoundReq - b _0807557E - .align 2, 0 -_08075570: .4byte gPlayerState -_08075574: .4byte 0x0000013D -_08075578: - adds r0, r4, #0 - bl UpdateItemAnim -_0807557E: - pop {r4, r5, pc} - .syntax divided diff --git a/src/item/itemLantern.c b/src/item/itemLantern.c index 6a171d8c..fbcf618c 100644 --- a/src/item/itemLantern.c +++ b/src/item/itemLantern.c @@ -44,14 +44,15 @@ void sub_08075A0C(ItemBehavior* this, u32 arg1) { } } -#ifdef EU -ASM_FUNC("asm/non_matching/eu/sub_08075ADC.inc", void sub_08075ADC(ItemBehavior* this, u32 arg1)) -#else void sub_08075ADC(ItemBehavior* this, u32 arg1) { u32 bVar1; - if (gPlayerState.item != NULL || (this->field_0x5[9] & 1) == 0 || - (gPlayerState.flags & (PL_DISABLE_ITEMS | PL_CAPTURED)) != 0 || sub_08079D48() == 0) { + if ( +#ifndef EU + gPlayerState.item != NULL || +#endif + (this->field_0x5[9] & 1) == 0 || (gPlayerState.flags & (PL_DISABLE_ITEMS | PL_CAPTURED)) != 0 || + sub_08079D48() == 0) { this->field_0xf = 0; this->stateID += 1; gPlayerState.flags |= PL_USE_LANTERN; @@ -65,7 +66,6 @@ void sub_08075ADC(ItemBehavior* this, u32 arg1) { UpdateItemAnim(this); } } -#endif void sub_08075B54(ItemBehavior* this, u32 arg1) { u32 bVar1; From f26b2e286a7f462947b395da259e185fc8ecfa7f Mon Sep 17 00:00:00 2001 From: theo3 Date: Mon, 3 Jan 2022 20:16:58 -0800 Subject: [PATCH 094/168] more game.c --- asm/fileScreen.s | 1032 -------------------------- include/asm.h | 1 + include/common.h | 2 + include/main.h | 3 +- include/player.h | 1 + include/room.h | 4 + linker.ld | 1 - src/game.c | 488 +++++++++++- src/npc/npc5.c | 12 + src/npc/postman.c | 12 - src/player.c | 21 + src/playerItem/playerItemPacciCane.c | 20 - 12 files changed, 530 insertions(+), 1067 deletions(-) delete mode 100755 asm/fileScreen.s diff --git a/asm/fileScreen.s b/asm/fileScreen.s deleted file mode 100755 index 699cf86a..00000000 --- a/asm/fileScreen.s +++ /dev/null @@ -1,1032 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - -.ifdef DEMO_USA - thumb_func_start HandleGameplayScreen -HandleGameplayScreen: @ 08051A28 - push {r4, lr} - ldr r1, _08051A68 @ =0x030010A0 - ldr r0, [r1, #0x00] - adds r0, #0x01 - str r0, [r1, #0x00] - ldr r1, _08051A6C @ =0x080FC55C - ldr r4, _08051A70x @ =0x03001000 - ldrb r0, [r4, #0x03] - lsls r0, r0, #0x02 - adds r0, r0, r1 - ldr r0, [r0, #0x00] - bl _call_via_r0 - ldr r0, _08051A74x @ =0x02002A40 - movs r2, #0x95 - lsls r2, r2, #0x03 - adds r1, r0, r2 - ldr r0, [r1, #0x00] - cmp r0, #0x00 - beq _08051A64 - subs r0, #0x01 - str r0, [r1, #0x00] - cmp r0, #0x00 - bne _08051A64 - movs r0, #0x07 - movs r1, #0x02 - bl DoFade - movs r0, #0x03 - strb r0, [r4, #0x03] -_08051A64: - pop {r4, pc} - .byte 0x00, 0x00 -_08051A68: .4byte gScreenTransition -_08051A6C: .4byte gUnk_080FC9D8 -_08051A70x: .4byte gMain -_08051A74x: .4byte gSave -.else - thumb_func_start HandleGameplayScreen -HandleGameplayScreen: @ 0x08051988 - push {lr} - ldr r1, _080519A4 @ =gScreenTransition - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r1, _080519A8 @ =gUnk_080FC9D8 - ldr r0, _080519AC @ =gMain - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080519A4: .4byte gScreenTransition -_080519A8: .4byte gUnk_080FC9D8 -_080519AC: .4byte gMain -.endif - - - thumb_func_start sub_080519B0 -sub_080519B0: @ 0x080519B0 - push {r4, r5, lr} - ldr r0, _08051A04 @ =gFadeControl - ldrb r5, [r0] - cmp r5, #0 - bne _08051A02 - movs r0, #1 - bl DispReset - bl InitSoundPlayingInfo - bl zMallocInit - bl sub_080A7124 - bl sub_0807059C - ldr r4, _08051A08 @ =gScreenTransition - adds r0, r4, #0 - movs r1, #0xb0 - bl MemClear - bl sub_08049CD4 - bl sub_080300AC - bl sub_0807CA18 - ldr r0, _08051A0C @ =gUnk_02002AC8 - adds r1, r4, #0 - adds r1, #0xc - movs r2, #0x20 - bl MemCopy - movs r0, #4 - strb r0, [r4, #9] - bl sub_08053518 - ldr r1, _08051A10 @ =gMain - movs r0, #1 - strb r0, [r1, #3] - strb r5, [r1, #4] -_08051A02: - pop {r4, r5, pc} - .align 2, 0 -_08051A04: .4byte gFadeControl -_08051A08: .4byte gScreenTransition -_08051A0C: .4byte gUnk_02002AC8 -_08051A10: .4byte gMain - - thumb_func_start sub_08051A14 -sub_08051A14: @ 0x08051A14 - push {lr} - movs r0, #1 - bl DispReset - ldr r1, _08051A70 @ =gFadeControl - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1, #4] - ldr r0, _08051A74 @ =gUnk_03000000 - ldr r1, _08051A78 @ =0x00000B74 - bl MemClear - ldr r0, _08051A7C @ =gUnk_02032EC0 - movs r1, #0xed - lsls r1, r1, #2 - bl MemClear - bl EraseAllEntities - bl sub_080197AC - bl sub_08080668 - bl ResetPalettes - movs r0, #1 - bl sub_0801CFA8 - bl sub_0806FD8C - ldr r2, _08051A80 @ =gRoomControls - ldr r1, _08051A84 @ =gScreenTransition - ldrb r0, [r1, #0xc] - strb r0, [r2, #4] - ldrb r0, [r1, #0xd] - strb r0, [r2, #5] - bl sub_08053320 - ldr r1, _08051A88 @ =gGFXSlots - movs r0, #1 - strb r0, [r1] - ldr r1, _08051A8C @ =gMain - movs r0, #2 - strb r0, [r1, #3] - pop {pc} - .align 2, 0 -_08051A70: .4byte gFadeControl -_08051A74: .4byte gUnk_03000000 -_08051A78: .4byte 0x00000B74 -_08051A7C: .4byte gUnk_02032EC0 -_08051A80: .4byte gRoomControls -_08051A84: .4byte gScreenTransition -_08051A88: .4byte gGFXSlots -_08051A8C: .4byte gMain - - thumb_func_start sub_08051A90 -sub_08051A90: @ 0x08051A90 - push {lr} - ldr r1, _08051AA4 @ =gUnk_080FC9E8 - ldr r0, _08051AA8 @ =gMain - ldrb r0, [r0, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08051AA4: .4byte gUnk_080FC9E8 -_08051AA8: .4byte gMain - - thumb_func_start InitializeNewRoom -InitializeNewRoom: @ 0x08051AAC - push {lr} - bl SetInitializationPriority - ldr r1, _08051AE4 @ =gScreen - movs r2, #0 - movs r0, #0xba - lsls r0, r0, #5 - strh r0, [r1] - ldr r1, _08051AE8 @ =gMain - movs r0, #1 - strb r0, [r1, #4] - ldr r0, _08051AEC @ =gScreenTransition - strb r2, [r0, #8] - strb r2, [r0, #4] - strb r2, [r0, #5] - bl MessageInitialize - bl sub_08052CFC - movs r0, #0 - bl sub_0801C370 - bl InitializeEntities -.ifndef EU - bl sub_0801855C -.endif - pop {pc} - .align 2, 0 -_08051AE4: .4byte gScreen -_08051AE8: .4byte gMain -_08051AEC: .4byte gScreenTransition - - thumb_func_start sub_08051AF0 -sub_08051AF0: @ 0x08051AF0 -.ifdef EU - push {r4, lr} - bl UpdateEntities - bl sub_0805BBBC - cmp r0, #0 - bne _0805173E - bl UpdateScroll -_0805173E: - bl UpdateBgAnim - bl sub_08000108 - bl sub_0801C344 - bl UpdateManagers - bl FlushSprites - bl sub_0801C208 - bl sub_08078CB4 - bl sub_080AD9B0 - bl sub_080AD918 - ldr r0, _080517E0 @ =gFadeControl - ldrb r0, [r0] - cmp r0, #0 - bne _080517DC - ldr r0, _080517E4 @ =gRoomControls - ldrh r0, [r0] - cmp r0, #0 - bne _080517DC - bl sub_08052F1C - ldr r0, _080517E8 @ =gArea - movs r1, #0x86 - lsls r1, r1, #4 - adds r3, r0, r1 - adds r1, #4 - adds r0, r0, r1 - ldr r1, [r3] - ldr r2, [r0] - cmp r1, r2 - beq _08051796 - str r2, [r3] - ldr r0, _080517EC @ =0x800B0000 - orrs r2, r0 - adds r0, r2, #0 - bl SoundReq -_08051796: - bl DeleteSleepingEntities - bl sub_0805BC04 - adds r4, r0, #0 - cmp r4, #0 - bne _080517DC - bl sub_08052C5C - bl ResetSystemPriority - bl sub_08051E04 - bl sub_080300C4 - ldr r1, _080517F0 @ =gMain - movs r0, #2 - strb r0, [r1, #4] - movs r0, #0 - bl SetPlayerControl - ldr r0, _080517F4 @ =gUnk_02034490 - strb r4, [r0] - bl sub_08053178 - bl sub_0801855C - ldr r0, _080517F8 @ =gRoomVars - ldrb r0, [r0] - cmp r0, #0 - bne _080517DC - movs r0, #0 - movs r1, #1 - bl RequestPriorityDuration -_080517DC: - pop {r4, pc} - .align 2, 0 -_080517E0: .4byte gFadeControl -_080517E4: .4byte gRoomControls -_080517E8: .4byte gArea -_080517EC: .4byte 0x800B0000 -_080517F0: .4byte gMain -_080517F4: .4byte gUnk_02034490 -_080517F8: .4byte gRoomVars - -.else - push {r4, r5, lr} - bl UpdateEntities - bl sub_0805BBBC - cmp r0, #0 - bne _08051B02 - bl UpdateScroll -_08051B02: - bl UpdateBgAnim - bl sub_08000108 - bl sub_0801C344 - bl UpdateManagers - bl FlushSprites - bl sub_0801C208 - bl sub_08078CB4 - bl sub_080AD9B0 - bl sub_080AD918 - ldr r0, _08051BB0 @ =gFadeControl - ldrb r0, [r0] - cmp r0, #0 - bne _08051BAE - ldr r0, _08051BB4 @ =gRoomControls - ldrh r0, [r0] - cmp r0, #0 - bne _08051BAE - bl sub_08052F1C - ldr r5, _08051BB8 @ =gArea - movs r0, #0x86 - lsls r0, r0, #4 - adds r3, r5, r0 -.ifdef EU - adds r1, 4 -.else - ldr r1, _08051BBC @ =0x00000864 -.endif - adds r0, r5, r1 - ldr r1, [r3] - ldr r2, [r0] - cmp r1, r2 - beq _08051B5A - str r2, [r3] - ldr r0, _08051BC0 @ =0x800B0000 - orrs r2, r0 - adds r0, r2, #0 - bl SoundReq -_08051B5A: - bl DeleteSleepingEntities - bl sub_0805BC04 - adds r4, r0, #0 - cmp r4, #0 - bne _08051BAE - bl sub_08052C5C - bl ResetSystemPriority - bl sub_08051E04 - bl sub_080300C4 - ldr r1, _08051BC4 @ =gMain - movs r0, #2 - strb r0, [r1, #4] - movs r0, #0 - bl SetPlayerControl - ldr r0, _08051BC8 @ =gUnk_02034490 - strb r4, [r0] -.ifdef DEMO_JP - ldr r0, _08051C30 @ =gScreenTransition - adds r0,#0x31 - ldrb r0,[r0,#0x0] - cmp r0,#0x0 - beq _08051bee - - bl sub_08053178 -_08051bee: - adds r0,r5,#0x0 - adds r0,#0x28 - ldrb r0,[r0,#0x0] - cmp r0,#0xff - beq _08051bfc - bl sub_0801855C -_08051bfc: - bl sub_08052BF8 - -.else - -.ifdef JP - bl sub_08053178 -.endif - -.ifndef EU - adds r0, r5, #0 - adds r0, #0x28 - ldrb r0, [r0] - cmp r0, #0xff - beq _08051B96 - bl sub_0801855C -.endif -_08051B96: -.ifdef EU - bl sub_08053178 @ TODO fix addresses - bl sub_08053178 -.else -.ifdef DEMO_JP - bl sub_08053178 @ TODO fix addresses - bl sub_08053178 -.else -.ifndef JP - bl sub_08052BF8 - bl sub_08053178 -.endif -.endif -.endif -.endif - ldr r0, _08051BCC @ =gRoomVars - ldrb r0, [r0] - cmp r0, #0 - bne _08051BAE - movs r0, #0 - movs r1, #1 - bl RequestPriorityDuration -_08051BAE: - pop {r4, r5, pc} - .align 2, 0 -_08051BB0: .4byte gFadeControl -_08051BB4: .4byte gRoomControls -_08051BB8: .4byte gArea -.ifndef EU -_08051BBC: .4byte 0x00000864 -.endif -_08051BC0: .4byte 0x800B0000 -_08051BC4: .4byte gMain -_08051BC8: .4byte gUnk_02034490 -.ifdef DEMO_JP -_08051C30: .4byte gScreenTransition -.endif -_08051BCC: .4byte gRoomVars -.endif - - thumb_func_start sub_08051BD0 -sub_08051BD0: @ 0x08051BD0 - push {lr} - bl sub_080705AC - cmp r0, #0 - bne _08051C9C - bl sub_0804AA84 - cmp r0, #0 - bne _08051C9C - bl sub_0805340C - ldr r0, _08051C5C @ =gMain - ldrb r0, [r0, #4] - cmp r0, #2 - bne _08051C9C - ldr r0, _08051C60 @ =gMessage - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08051C02 - ldr r0, _08051C64 @ =gPriorityHandler - ldrh r0, [r0, #8] - cmp r0, #0 - beq _08051C06 -_08051C02: - bl sub_08078B48 -_08051C06: - bl FlushSprites - bl UpdateEntities - bl sub_08080A40 - bl CollisionMain - bl UpdateScroll - bl UpdateBgAnim - bl sub_08000108 - bl sub_08052C3C - bl sub_0801C344 - bl UpdateManagers - bl sub_0801C208 - bl sub_08078CB4 - bl sub_080AD9B0 - bl HandleRoomExit - bl sub_08052C5C - bl sub_080528B4 - bl sub_080185F8 - bl sub_080AD918 - ldr r0, _08051C68 @ =gRoomControls - ldrh r2, [r0] - cmp r2, #1 - beq _08051C6C - cmp r2, #2 - beq _08051C88 - b _08051C9C - .align 2, 0 -_08051C5C: .4byte gMain -_08051C60: .4byte gMessage -_08051C64: .4byte gPriorityHandler -_08051C68: .4byte gRoomControls -_08051C6C: - ldr r0, _08051C80 @ =gPlayerState - movs r1, #0x17 - strb r1, [r0, #0xc] - ldr r0, _08051C84 @ =gMain - strb r2, [r0, #4] - bl SetRoomReloadPriority - bl sub_08051D98 - b _08051C9C - .align 2, 0 -_08051C80: .4byte gPlayerState -_08051C84: .4byte gMain -_08051C88: - ldr r1, _08051CA0 @ =gPlayerState - movs r0, #0x17 - strb r0, [r1, #0xc] - ldr r1, _08051CA4 @ =gMain - movs r0, #1 - strb r0, [r1, #4] - bl SetRoomReloadPriority - bl sub_08051DCC -_08051C9C: - pop {pc} - .align 2, 0 -_08051CA0: .4byte gPlayerState -_08051CA4: .4byte gMain - - thumb_func_start sub_08051CA8 -sub_08051CA8: @ 0x08051CA8 - push {lr} - bl sub_080705AC - cmp r0, #0 - bne _08051CEA - bl UpdateEntities - bl CollisionMain - bl sub_0801C344 - bl UpdateManagers - bl FlushSprites - bl sub_0801C208 - bl sub_08078CB4 - bl sub_080AD9B0 - bl HandleRoomExit - bl sub_080528B4 - bl sub_080AD918 - ldr r0, _08051CEC @ =gFadeControl - ldrb r0, [r0] - cmp r0, #0 - bne _08051CEA - bl ResetSystemPriority -_08051CEA: - pop {pc} - .align 2, 0 -_08051CEC: .4byte gFadeControl - - thumb_func_start sub_08051CF0 -sub_08051CF0: @ 0x08051CF0 - push {r4, r5, r6, lr} - bl FlushSprites - bl sub_0801C208 - bl sub_080AD9B0 - ldr r5, _08051D20 @ =gMain - movs r6, #1 - strb r6, [r5, #0xb] - bl sub_080AD918 - ldr r0, _08051D24 @ =gFadeControl - ldrb r4, [r0] - cmp r4, #0 - bne _08051D1E - movs r0, #1 - bl DispReset - strb r6, [r5, #3] - strb r4, [r5, #4] - ldr r0, _08051D28 @ =gScreenTransition - strb r6, [r0, #8] -_08051D1E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08051D20: .4byte gMain -_08051D24: .4byte gFadeControl -_08051D28: .4byte gScreenTransition - - thumb_func_start sub_08051D2C -sub_08051D2C: @ 0x08051D2C -.ifdef DEMO_USA - push {lr} - ldr r0, _08051E04 @ =0x03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08051E02 - bl DoSoftReset -_08051E02: - pop {pc} - .align 2, 0 -_08051E04: .4byte 0x03000FD0 -.else - push {lr} - movs r0, #7 - movs r1, #8 - bl DoFade - movs r0, #3 - bl InitScreen - pop {pc} - .align 2, 0 -.endif - - thumb_func_start InitializeEntities -InitializeEntities: @ 0x08051D40 - push {lr} - bl sub_08052EA0 - bl sub_0804AF90 - bl sub_0804AFDC - bl InitializePlayer - ldr r1, _08051D90 @ =gUnk_03004030 - movs r0, #0 - str r0, [r1] - bl sub_0807C740 - ldr r1, _08051D94 @ =gUpdateVisibleTiles - movs r0, #1 - strb r0, [r1] - bl sub_0805283C - movs r0, #0 - movs r1, #0 - bl SetColor - bl LoadRoom - bl CreateZeldaFollower - bl sub_0804AFF4 - bl sub_0805329C - bl sub_08000108 - movs r0, #1 - rsbs r0, r0, #0 - bl sub_0805BB74 - bl sub_080531F8 - pop {pc} - .align 2, 0 -_08051D90: .4byte gUnk_03004030 -_08051D94: .4byte gUpdateVisibleTiles - - thumb_func_start sub_08051D98 -sub_08051D98: @ 0x08051D98 - push {lr} - bl sub_08052EA0 - ldr r1, _08051DC8 @ =gRoomVars - movs r0, #1 - strb r0, [r1] - bl sub_0805E9A8 - bl sub_0804AF90 - bl sub_0804AFDC - bl sub_0807C0DC - bl sub_0805283C - bl LoadRoom - bl sub_0804AFF4 - movs r0, #1 - bl SetPlayerControl - pop {pc} - .align 2, 0 -_08051DC8: .4byte gRoomVars - - thumb_func_start sub_08051DCC -sub_08051DCC: @ 0x08051DCC - push {r4, lr} - ldr r1, _08051DFC @ =gRoomControls - ldr r4, _08051E00 @ =gScreenTransition - ldrb r0, [r4, #0xc] - strb r0, [r1, #4] - ldrb r0, [r4, #0xd] - strb r0, [r1, #5] - bl RoomExitCallback - movs r0, #3 - strb r0, [r4, #9] - bl sub_08052CFC - bl sub_08052EA0 - bl sub_0805E9A8 - bl sub_0804AF90 - bl sub_0804AFDC - bl sub_0805283C - pop {r4, pc} - .align 2, 0 -_08051DFC: .4byte gRoomControls -_08051E00: .4byte gScreenTransition - - thumb_func_start sub_08051E04 -sub_08051E04: @ 0x08051E04 - push {lr} - bl CheckIsOverworld - cmp r0, #0 - beq _08051E60 - ldr r1, _08051E2C @ =gPlayerEntity - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #0 - bge _08051E1A - adds r0, #0xf -_08051E1A: - asrs r2, r0, #4 - movs r3, #0x32 - ldrsh r0, [r1, r3] - cmp r0, #0 - bge _08051E26 - adds r0, #0xf -_08051E26: - asrs r1, r0, #4 - ldr r3, _08051E30 @ =gUnk_08127F94 - b _08051E36 - .align 2, 0 -_08051E2C: .4byte gPlayerEntity -_08051E30: .4byte gUnk_08127F94 -_08051E34: - adds r3, #8 -_08051E36: - ldrb r0, [r3] - cmp r0, #0xff - beq _08051E60 - cmp r0, r2 - bhi _08051E34 - ldrb r0, [r3, #2] - cmp r0, r2 - blo _08051E34 - ldrb r0, [r3, #1] - cmp r0, r1 - bhi _08051E34 - ldrb r0, [r3, #3] - cmp r0, r1 - blo _08051E34 - ldr r2, _08051E64 @ =gSave - movs r1, #1 - ldrb r3, [r3, #4] - lsls r1, r3 - ldr r0, [r2, #0x40] - orrs r0, r1 - str r0, [r2, #0x40] -_08051E60: - pop {pc} - .align 2, 0 -_08051E64: .4byte gSave - - thumb_func_start sub_08051E68 -sub_08051E68: @ 0x08051E68 - push {lr} - ldr r1, _08051E7C @ =gUnk_080FCA08 - ldr r0, _08051E80 @ =gMenu - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08051E7C: .4byte gUnk_080FCA08 -_08051E80: .4byte gMenu - - thumb_func_start sub_08051E84 -sub_08051E84: @ 0x08051E84 - push {r4, r5, r6, lr} - ldr r0, _08051EF0 @ =gUnk_02032EC0 - ldrb r4, [r0, #3] - lsls r4, r4, #3 - ldr r0, _08051EF4 @ =gUnk_080FCA20 - adds r4, r4, r0 - ldr r5, _08051EF8 @ =gRoomControls - ldrb r0, [r4] - strb r0, [r5, #4] - ldrb r0, [r4, #1] - strb r0, [r5, #5] - bl sub_08053320 - ldrb r0, [r5, #4] - bl GetFlagBankOffset - ldr r1, _08051EFC @ =gArea - movs r6, #0 - strh r0, [r1, #4] - ldrb r0, [r4] - ldrb r1, [r4, #1] - bl SetCurrentRoomPropertyList - ldrb r0, [r4] - ldrb r1, [r4, #1] - bl sub_08052FD8 - ldrh r0, [r4, #4] - ldrh r1, [r5, #6] - adds r0, r0, r1 - strh r0, [r5, #0xa] - ldrh r0, [r4, #6] - ldrh r1, [r5, #8] - adds r0, r0, r1 - strh r0, [r5, #0xc] - ldr r1, _08051F00 @ =gMenu - ldrb r0, [r4, #2] - strb r0, [r1] - ldrb r2, [r4, #3] - movs r0, #0xf - ands r0, r2 - strb r0, [r1, #3] - str r4, [r1, #0xc] - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] - strb r6, [r1, #6] - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1, #8] - bl sub_08051F04 - pop {r4, r5, r6, pc} - .align 2, 0 -_08051EF0: .4byte gUnk_02032EC0 -_08051EF4: .4byte gUnk_080FCA20 -_08051EF8: .4byte gRoomControls -_08051EFC: .4byte gArea -_08051F00: .4byte gMenu - - thumb_func_start sub_08051F04 -sub_08051F04: @ 0x08051F04 - push {lr} - ldr r1, _08051F38 @ =gUnk_080FCA14 - ldr r0, _08051F3C @ =gMenu - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl FlushSprites - bl UpdateEntities - bl sub_080AD9B0 - bl sub_080AD918 - bl UpdateScroll - bl UpdateBgAnim - bl UpdateManagers - bl sub_08000108 - pop {pc} - .align 2, 0 -_08051F38: .4byte gUnk_080FCA14 -_08051F3C: .4byte gMenu - - thumb_func_start sub_08051F40 -sub_08051F40: @ 0x08051F40 - push {lr} - ldr r0, _08051F60 @ =gUnk_080FCA20 - ldr r2, _08051F64 @ =gUnk_02032EC0 - ldrb r1, [r2, #3] - lsls r1, r1, #3 - adds r1, r1, r0 - ldrb r1, [r1, #3] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0 - beq _08051F68 - lsrs r1, r1, #4 - movs r0, #2 - bl MenuFadeIn - b _08051F76 - .align 2, 0 -_08051F60: .4byte gUnk_080FCA20 -_08051F64: .4byte gUnk_02032EC0 -_08051F68: - movs r0, #3 - strb r0, [r2] - movs r0, #0x10 - bl sub_080500F4 - bl MessageInitialize -_08051F76: - pop {pc} - - thumb_func_start sub_08051F78 -sub_08051F78: @ 0x08051F78 - push {lr} - ldr r0, _08051F94 @ =gUnk_02032EC0 - ldrb r3, [r0, #3] - lsls r3, r3, #3 - ldr r0, _08051F98 @ =gUnk_080FCA20 - adds r3, r3, r0 - ldrb r0, [r3] - ldrb r1, [r3, #1] - ldrh r2, [r3, #4] - ldrh r3, [r3, #6] - bl sub_08051F9C - pop {pc} - .align 2, 0 -_08051F94: .4byte gUnk_02032EC0 -_08051F98: .4byte gUnk_080FCA20 - - thumb_func_start sub_08051F9C -sub_08051F9C: @ 0x08051F9C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r6, r2, #0 - mov r8, r3 - ldr r5, _08051FE0 @ =gScreen - ldrh r2, [r5] - movs r4, #0xc0 - lsls r4, r4, #7 - ands r4, r2 - bl sub_08052FF4 - ldr r1, _08051FE4 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, r0, r6 - movs r6, #0 - strh r0, [r1, #0xa] - ldrh r0, [r1, #8] - add r0, r8 - strh r0, [r1, #0xc] - bl sub_0807C740 - ldr r1, _08051FE8 @ =gUpdateVisibleTiles - movs r0, #1 - strb r0, [r1] - ldr r0, _08051FEC @ =gUsedPalettes - str r6, [r0] - ldrh r0, [r5] - orrs r4, r0 - strh r4, [r5] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_08051FE0: .4byte gScreen -_08051FE4: .4byte gRoomControls -_08051FE8: .4byte gUpdateVisibleTiles -_08051FEC: .4byte gUsedPalettes - - thumb_func_start sub_08051FF0 -sub_08051FF0: @ 0x08051FF0 - push {lr} - ldr r0, _08052000 @ =gMenu - ldr r1, [r0, #0xc] - ldrb r0, [r1] - ldrb r1, [r1, #1] - bl sub_0804B0B0 - pop {pc} - .align 2, 0 -_08052000: .4byte gMenu - - thumb_func_start sub_08052004 -sub_08052004: @ 0x08052004 - ldr r1, _0805200C @ =gMenu - movs r0, #2 - strb r0, [r1, #5] - bx lr - .align 2, 0 -_0805200C: .4byte gMenu - - thumb_func_start sub_08052010 -sub_08052010: @ 0x08052010 - push {r4, lr} - bl InitSoundPlayingInfo - bl MessageInitialize - movs r0, #1 - bl DispReset - ldr r0, _0805207C @ =gBG1Buffer - movs r4, #0x80 - lsls r4, r4, #4 - adds r1, r4, #0 - bl MemClear - ldr r0, _08052080 @ =gBG2Buffer - adds r1, r4, #0 - bl MemClear - bl sub_080A4D34 - movs r0, #0xa - bl LoadPaletteGroup - movs r0, #0 - movs r1, #0 - bl SetColor - movs r0, #4 - bl LoadGfxGroup - movs r0, #0xc0 - lsls r0, r0, #0x13 - movs r1, #0x20 - bl MemClear - ldr r0, _08052084 @ =gMenu - movs r1, #0x30 - bl MemClear - ldr r1, _08052088 @ =gScreen - ldrh r2, [r1] - movs r3, #0x80 - lsls r3, r3, #5 - adds r0, r3, #0 - orrs r0, r2 - strh r0, [r1] - ldr r0, _0805208C @ =0x00001C01 - strh r0, [r1, #0x14] - ldr r0, _08052090 @ =0x00001D05 - strh r0, [r1, #0x20] - movs r0, #1 - strh r0, [r1, #0x1a] - strh r0, [r1, #0x26] - pop {r4, pc} - .align 2, 0 -_0805207C: .4byte gBG1Buffer -_08052080: .4byte gBG2Buffer -_08052084: .4byte gMenu -_08052088: .4byte gScreen -_0805208C: .4byte 0x00001C01 -_08052090: .4byte 0x00001D05 - - thumb_func_start HandleGameOverScreen -HandleGameOverScreen: @ 0x08052094 - push {r4, lr} - ldr r1, _080520BC @ =gUnk_080FCA70 - ldr r4, _080520C0 @ =gMain - ldrb r0, [r4, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldrb r0, [r4, #3] - cmp r0, #0 - beq _080520B8 - bl FlushSprites - bl DrawGameOverText - bl sub_080AD918 -_080520B8: - pop {r4, pc} - .align 2, 0 -_080520BC: .4byte gUnk_080FCA70 -_080520C0: .4byte gMain - - thumb_func_start sub_080520C4 -sub_080520C4: @ 0x080520C4 - push {lr} - ldr r1, _080520D4 @ =gMain - strb r0, [r1, #3] - movs r0, #0 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_080520D4: .4byte gMain - - thumb_func_start sub_080520D8 -sub_080520D8: @ 0x080520D8 - push {r4, lr} - ldr r4, _08052118 @ =gFadeControl - ldrb r0, [r4] - cmp r0, #0 - bne _08052114 - bl sub_08052010 - ldr r1, _0805211C @ =gMenu - movs r0, #0x50 - strb r0, [r1, #0x10] - movs r2, #0x3c - movs r0, #0x3c - strh r0, [r1, #8] - ldr r0, _08052120 @ =gSave - adds r0, #0xaa - movs r1, #0x18 - strb r1, [r0] - ldr r0, _08052124 @ =gMain - strb r2, [r0, #5] - movs r0, #0xa - bl SoundReq - movs r0, #4 - bl sub_080500F4 - ldr r0, _08052128 @ =0xFFFF0001 - str r0, [r4, #4] - movs r0, #1 - bl sub_080520C4 -_08052114: - pop {r4, pc} - .align 2, 0 -_08052118: .4byte gFadeControl -_0805211C: .4byte gMenu -_08052120: .4byte gSave -_08052124: .4byte gMain -_08052128: .4byte 0xFFFF0001 - diff --git a/include/asm.h b/include/asm.h index f250ebb1..5fe8a9e0 100644 --- a/include/asm.h +++ b/include/asm.h @@ -9,6 +9,7 @@ extern u32 GetTileTypeByEntity(struct Entity_*); extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer); extern u32 GetTileType(u32 pos, u32 layer); extern void SetTile(u32 index, u32 position, u32 layer); +extern void sub_08000108(void); extern u32 sub_080002D0(struct Entity_*); extern void LoadResourceAsync(const void*, u32, u32); extern void sub_08001242(struct Entity_*); diff --git a/include/common.h b/include/common.h index a971ed21..e46df918 100644 --- a/include/common.h +++ b/include/common.h @@ -43,6 +43,8 @@ void MemCopy(const void* src, void* dest, u32 size); */ void ReadKeyInput(void); +void zMallocInit(void); + /** * Allocate memory on heap. * diff --git a/include/main.h b/include/main.h index eda7676c..0e830bab 100644 --- a/include/main.h +++ b/include/main.h @@ -55,7 +55,8 @@ typedef struct { } Main; typedef struct { - /*0x00*/ u16 nextToLoad; + /*0x00*/ u8 nextToLoad; + /*0x01*/ u8 _1; /*0x02*/ u8 lastState; /*0x03*/ u8 field_0x3; /*0x04*/ u8 state; diff --git a/include/player.h b/include/player.h index 2a09e2e2..36fd7303 100644 --- a/include/player.h +++ b/include/player.h @@ -280,6 +280,7 @@ extern u16 gWalletSizes[]; extern PlayerState gPlayerState; extern Entity gPlayerEntity; +u32 sub_080705AC(void); void SetPlayerControl(PlayerControlMode mode); void ResetPlayer(void); void ResetPlayerVelocity(void); diff --git a/include/room.h b/include/room.h index fb2e8398..bb09730f 100644 --- a/include/room.h +++ b/include/room.h @@ -192,9 +192,13 @@ typedef enum { extern void SetTileType(u32, u32, u32); extern void InitScreenShake(u32 time, u32 magnitude); +void sub_0804AFF4(void); +void LoadRoom(void); +void SetCurrentRoomPropertyList(u32 area, u32 room); extern void* GetCurrentRoomProperty(u32); extern void LoadRoomTileEntities(); void sub_0804B3C4(void*); +void sub_0804B0B0(u32 arg0, u32 arg1); #endif diff --git a/linker.ld b/linker.ld index fc7f630c..9b1bf7e4 100644 --- a/linker.ld +++ b/linker.ld @@ -437,7 +437,6 @@ SECTIONS { src/roomInit.o(.text); src/fade.o(.text); src/fileScreen.o(.text); - asm/fileScreen.o(.text); src/game.o(.text); asm/code_080526F8.o(.text); asm/modBombs.o(.text); diff --git a/src/game.c b/src/game.c index fee68b34..9b5616e4 100644 --- a/src/game.c +++ b/src/game.c @@ -1,4 +1,5 @@ #include "global.h" +#include "asm.h" #include "sound.h" #include "screen.h" #include "entity.h" @@ -15,6 +16,8 @@ #include "message.h" #include "game.h" +extern u8 gUpdateVisibleTiles; + extern u8 gUnk_080FCA84[]; extern u8 gUnk_080FCAC8[]; extern u8 gUnk_02024090[]; @@ -30,6 +33,39 @@ extern void** gAreaTable[]; extern u8 gUnk_080FCAF8[]; extern u16 gUnk_020178E0[]; +extern void (*gUnk_080FC9D8[])(); +extern void (*gUnk_080FC9E8[])(); +extern void (*gUnk_080FCA08[])(); +extern void (*gUnk_080FCA14[])(); +extern void (*gUnk_080FCA70[])(void); + +void sub_0807CA18(void); +void sub_080300AC(void); +void sub_08049CD4(void); +void sub_0807059C(void); +void sub_080A7124(void); +void sub_0806FD8C(void); +void sub_080300C4(void); +u32 sub_0805BC04(void); +void DeleteSleepingEntities(void); +u32 sub_0805BBBC(void); +void sub_080185F8(void); +void sub_08080A40(void); +u32 sub_0804AA84(void); +void sub_08078CB4(void); +void sub_0801C344(); +u32 sub_080705AC(); +void CollisionMain(); +void sub_0805BB74(); +void CreateZeldaFollower(void); +void sub_0807C0DC(); +void sub_0805E9A8(); +void sub_0804AF90(); +void sub_0804AFDC(); +void sub_0805283C(); +void UpdateScroll(); +void UpdateBgAnim(); +void sub_08052010(); void sub_080520C4(); void CleanUpGFXSlots(); void sub_080ADE24(); @@ -48,6 +84,25 @@ void sub_0807C740(void); void sub_080197AC(void); void sub_08053390(void); +static void sub_08053518(void); +static void InitializeEntities(void); +static void sub_08053178(void); +static void sub_08052BF8(void); +static void sub_08051E04(void); +static void sub_08052F1C(void); +/* static */ void sub_08052C5C(void); +static void sub_08052C3C(void); +static void sub_0805340C(void); +static void sub_08051D98(void); +static void sub_08051DCC(void); +/* static */ u32 sub_080528B4(void); +/* static */ u32 HandleRoomExit(void); +static void sub_080531F8(void); +static void sub_0805329C(void); +static void InitializePlayer(void); +/* static */ void sub_08051F04(void); +/* static */ void sub_08051F9C(u32 a1, u32 a2, u32 a3, u32 a4); +static void DrawGameOverText(void); static u32 StairsAreValid(); static void ClearFlagArray(const u16*); static void DummyHandler(u32* a1); @@ -58,6 +113,26 @@ static void InitRoomResInfo(RoomResInfo* info, RoomHeader* hdr, u32 area, u32 ro static void sub_080532E4(void); static void sub_08053460(void); +typedef struct { + u8 _0; + u8 _1; + u8 _2; + u8 _3; + u8 _4; + u16 _6; +} struct_08127F94; +extern struct_08127F94 gUnk_08127F94[]; + +typedef struct { + u8 _0; + u8 _1; + u8 _2; + u8 _3; + u16 _4; + u16 _6; +} struct_080FCA20; +extern struct_080FCA20 gUnk_080FCA20[]; + typedef struct { u16* dest; void* gfx_dest; @@ -85,6 +160,417 @@ typedef struct { extern void CreateDialogBox(); +void HandleGameplayScreen(void) { + gScreenTransition.frameCount++; + gUnk_080FC9D8[gMain.funcIndex](); +#ifdef DEMO_USA + if (gSave.unk48C[7] != 0) { + if (--gSave.unk48C[7] == 0) { + DoFade(7, 2); + gMain.funcIndex = 3; + } + } +#endif +} + +void sub_080519B0(void) { + if (gFadeControl.active) + return; + + DispReset(1); + InitSoundPlayingInfo(); + zMallocInit(); + sub_080A7124(); + sub_0807059C(); + MemClear(&gScreenTransition, 0xB0); + sub_08049CD4(); + sub_080300AC(); + sub_0807CA18(); + MemCopy(&gSave.saved_status, &gScreenTransition.player_status, 0x20); + gScreenTransition.transitionType = 4; + sub_08053518(); + gMain.funcIndex = 1; + gMain.transition = 0; +} + +void sub_08051A14(void) { + DispReset(1); + gFadeControl.mask = 0xffffffff; + MemClear(&gUnk_03000000, 0xB74); + MemClear(&gUnk_02032EC0, 0x3B4); + EraseAllEntities(); + sub_080197AC(); + sub_08080668(); + ResetPalettes(); + sub_0801CFA8(1); + sub_0806FD8C(); + gRoomControls.areaID = gScreenTransition.player_status.area_next; + gRoomControls.roomID = gScreenTransition.player_status.room_next; + sub_08053320(); + gGFXSlots.unk0 = 1; + gMain.funcIndex = 2; +} + +void sub_08051A90(void) { + gUnk_080FC9E8[gMain.transition](); +} + +void InitializeNewRoom(void) { + SetInitializationPriority(); + gScreen.lcd.displayControl = 0x1740; + gMain.transition = 1; + gScreenTransition.transitioningOut = 0; + gScreenTransition.field_0x4[0] = 0; + gScreenTransition.field_0x4[1] = 0; + MessageInitialize(); + sub_08052CFC(); + sub_0801C370(0); + InitializeEntities(); +#ifndef EU + sub_0801855C(); +#endif +} + +void sub_08051AF0(void) { + UpdateEntities(); + if (!sub_0805BBBC()) + UpdateScroll(); + UpdateBgAnim(); + sub_08000108(); + sub_0801C344(); + UpdateManagers(); + FlushSprites(); + sub_0801C208(); + sub_08078CB4(); + sub_080AD9B0(); + sub_080AD918(); + + if (gFadeControl.active || gRoomControls.unk2 != 0) + return; + + sub_08052F1C(); + if (gArea.musicIndex != gArea.pMusicIndex) { + gArea.musicIndex = gArea.pMusicIndex; + SoundReq(gArea.pMusicIndex | 0x800B0000); + } + + DeleteSleepingEntities(); + + if (sub_0805BC04()) + return; + + sub_08052C5C(); + ResetSystemPriority(); + sub_08051E04(); + sub_080300C4(); + gMain.transition = 2; + SetPlayerControl(0); + gUnk_02034490[0] = 0; +#if defined(USA) || defined(DEMO_USA) + if (gArea.inventoryGfxIdx != 0xff) { + sub_0801855C(); + } + sub_08052BF8(); + sub_08053178(); +#elif defined(EU) + sub_08053178(); + sub_0801855C(); +#elif defined(JP) + sub_08053178(); + if (gArea.inventoryGfxIdx != 0xff) { + sub_0801855C(); + } +#elif defined(DEMO_JP) + if (gScreenTransition.field_0x2c[5]) + sub_08053178(); + if (gArea.inventoryGfxIdx != 0xff) { + sub_0801855C(); + } + sub_08052BF8(); +#endif + if (!gRoomVars.field_0x0) { + RequestPriorityDuration(NULL, 1); + } +} + +void sub_08051BD0(void) { + if (sub_080705AC() || sub_0804AA84()) { + return; + } + sub_0805340C(); + + if (gMain.transition != 2) { + return; + } + + if ((gMessage.doTextBox & 0x7f) || gPriorityHandler.priority_timer != 0) + sub_08078B48(); + + FlushSprites(); + UpdateEntities(); + sub_08080A40(); + CollisionMain(); + UpdateScroll(); + UpdateBgAnim(); + sub_08000108(); + sub_08052C3C(); + sub_0801C344(); + UpdateManagers(); + sub_0801C208(); + sub_08078CB4(); + sub_080AD9B0(); + HandleRoomExit(); + sub_08052C5C(); + sub_080528B4(); + sub_080185F8(); + sub_080AD918(); + switch (gRoomControls.unk2) { + case 1: + gPlayerState.queued_action = 0x17; + gMain.transition = 1; + SetRoomReloadPriority(); + sub_08051D98(); + break; + case 2: + gPlayerState.queued_action = 0x17; + gMain.transition = 1; + SetRoomReloadPriority(); + sub_08051DCC(); + break; + } +} + +void sub_08051CA8(void) { + if (sub_080705AC()) + return; + + UpdateEntities(); + CollisionMain(); + sub_0801C344(); + UpdateManagers(); + FlushSprites(); + sub_0801C208(); + sub_08078CB4(); + sub_080AD9B0(); + HandleRoomExit(); + sub_080528B4(); + sub_080AD918(); + if (!gFadeControl.active) + ResetSystemPriority(); +} + +void sub_08051CF0(void) { + FlushSprites(); + sub_0801C208(); + sub_080AD9B0(); + gMain.pad = 1; + sub_080AD918(); + if (!gFadeControl.active) { + DispReset(1); + gMain.funcIndex = 1; + gMain.transition = 0; + gScreenTransition.transitioningOut = 1; + } +} + +void sub_08051D2C(void) { +#ifdef DEMO_USA + if (!gFadeControl.active) + DoSoftReset(); +#else + DoFade(7, 8); + InitScreen(3); +#endif +} + +static void InitializeEntities(void) { + sub_08052EA0(); + sub_0804AF90(); + sub_0804AFDC(); + InitializePlayer(); + gUnk_03004030.unk_00 = NULL; + sub_0807C740(); + gUpdateVisibleTiles = 1; + sub_0805283C(); + SetColor(0, 0); + LoadRoom(); + CreateZeldaFollower(); + sub_0804AFF4(); + sub_0805329C(); + sub_08000108(); + sub_0805BB74(0xffffffff); + sub_080531F8(); +} + +void sub_08051D98(void) { + sub_08052EA0(); + gRoomVars.field_0x0 = 1; + sub_0805E9A8(); + sub_0804AF90(); + sub_0804AFDC(); + sub_0807C0DC(); + sub_0805283C(); + LoadRoom(); + sub_0804AFF4(); + SetPlayerControl(1); +} + +void sub_08051DCC(void) { + gRoomControls.areaID = gScreenTransition.player_status.area_next; + gRoomControls.roomID = gScreenTransition.player_status.room_next; + RoomExitCallback(); + gScreenTransition.transitionType = 3; + sub_08052CFC(); + sub_08052EA0(); + sub_0805E9A8(); + sub_0804AF90(); + sub_0804AFDC(); + sub_0805283C(); +} + +void sub_08051E04() { + if (CheckIsOverworld()) { + struct_08127F94* i; + u32 hi_x, hi_y; + s32 x, y; + + x = gPlayerEntity.x.HALF.HI; + if (x < 0) + x += 0xf; + hi_x = x >> 4; + + y = gPlayerEntity.y.HALF.HI; + if (y < 0) + y += 0xf; + hi_y = y >> 4; + + for (i = gUnk_08127F94; i->_0 != 0xFF; i++) { + if (i->_0 <= hi_x && i->_2 >= hi_x && i->_1 <= hi_y && i->_3 >= hi_y) { + gSave.windcrests |= 1 << i->_4; + break; + } + } + } +} + +void sub_08051E68() { + gUnk_080FCA08[gMenu.menuType](); +} + +void sub_08051E84() { + struct_080FCA20* p = &gUnk_080FCA20[gUnk_02032EC0.field_0x3]; + gRoomControls.areaID = p->_0; + gRoomControls.roomID = p->_1; + sub_08053320(); + gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.areaID); + SetCurrentRoomPropertyList(p->_0, p->_1); + sub_08052FD8(p->_0, p->_1); + gRoomControls.roomScrollX = gRoomControls.roomOriginX + p->_4; + gRoomControls.roomScrollY = gRoomControls.roomOriginY + p->_6; + gMenu.field_0x0 = p->_2; + gMenu.field_0x3 = p->_3 & 0xf; + gMenu.field_0xc = (void*)p; + gMenu.menuType++; + gMenu.overlayType = 0; + gMenu.transitionTimer = 300; + sub_08051F04(); +} + +void sub_08051F04(void) { + gUnk_080FCA14[gMenu.field_0x0](); + FlushSprites(); + UpdateEntities(); + sub_080AD9B0(); + sub_080AD918(); + UpdateScroll(); + UpdateBgAnim(); + UpdateManagers(); + sub_08000108(); +} + +void sub_08051F40(u32 a1, u32 a2, u32 a3, u32 a4) { + u32 flag = gUnk_080FCA20[gUnk_02032EC0.field_0x3]._3; + if (flag & 0xF0) { + MenuFadeIn(2, flag >> 4); + } else { + gUnk_02032EC0.nextToLoad = 3; + sub_080500F4(0x10); + MessageInitialize(); + } +} + +void sub_08051F78(u32 a1, u32 a2, u32 a3, u32 a4) { + u32 idx = gUnk_02032EC0.field_0x3; + struct_080FCA20* p = &gUnk_080FCA20[idx]; + sub_08051F9C(p->_0, p->_1, p->_4, p->_6); +} + +void sub_08051F9C(u32 a1, u32 a2, u32 a3, u32 a4) { + u32 tmp = gScreen.lcd.displayControl & 0x6000; + sub_08052FF4(a1, a2); + gRoomControls.roomScrollX = gRoomControls.roomOriginX + a3; + gRoomControls.roomScrollY = gRoomControls.roomOriginY + a4; + sub_0807C740(); + gUpdateVisibleTiles = 1; + gUsedPalettes = 0; + gScreen.lcd.displayControl |= tmp; +} + +void sub_08051FF0() { + sub_0804B0B0(gMenu.field_0xc[0], gMenu.field_0xc[1]); +} + +void sub_08052004() { + gMenu.menuType = 2; +} + +void sub_08052010() { + InitSoundPlayingInfo(); + MessageInitialize(); + DispReset(1); + MemClear(gBG1Buffer, 0x800); + MemClear(gBG2Buffer, 0x800); + sub_080A4D34(); + LoadPaletteGroup(0xA); + SetColor(0, 0); + LoadGfxGroup(4); + MemClear((void*)0x06000000, 0x20); + MemClear(&gMenu, 0x30); + gScreen.lcd.displayControl |= 0x1000; + gScreen.bg1.control = 0x1C01; + gScreen.bg2.control = 0x1D05; + gScreen.bg1.updated = 1; + gScreen.bg2.updated = 1; +} + +void HandleGameOverScreen() { + gUnk_080FCA70[gMain.funcIndex](); + if (gMain.funcIndex != 0) { + FlushSprites(); + DrawGameOverText(); + sub_080AD918(); + } +} + +void sub_080520C4(u32 idx) { + gMain.funcIndex = idx; + sub_080A7114(0); +} + +void sub_080520D8(void) { + if (gFadeControl.active) + return; + sub_08052010(); + gMenu.focusCoords[0] = 80; + gMenu.transitionTimer = 60; + gSave.stats.health = 24; + gMain.field_0x5 = 60; + SoundReq(BGM_GAMEOVER); + sub_080500F4(4); + gFadeControl.mask = 0xFFFF0001; + sub_080520C4(1); +} + void sub_0805212C(void) { if (gFadeControl.active) return; @@ -251,7 +737,7 @@ void sub_080522F4(void) { void nullsub_107(void) { } -void DrawGameOverText(void) { +static void DrawGameOverText(void) { static const u8 sOffsets[] = { 48, 68, 88, 108, 137, 156, 174, 192, }; diff --git a/src/npc/npc5.c b/src/npc/npc5.c index 900d3e79..4a620dcd 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -80,6 +80,18 @@ void sub_08061AFC(Entity*); extern u16* gUnk_0810B660[8]; +void CreateZeldaFollower(void) { + Entity* npc; + if (CheckGlobalFlag(0x1c) != 0) { + npc = CreateNPC(0x2e, 0, 0); + if (npc != NULL) { + CopyPosition(&gPlayerEntity, npc); + npc->flags |= 0x20; + npc->animationState = GetAnimationState(npc); + } + } +} + // UNUSED zelda follower, probably because it was too resource heavy void NPC5(Entity* this) { gUnk_0810AC1C[this->type](this); diff --git a/src/npc/postman.c b/src/npc/postman.c index f72ec6d3..1f958c09 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -205,15 +205,3 @@ void Postman_Fusion(Entity* this) { UpdateAnimationSingleFrame(this); } } - -void CreateZeldaFollower(void) { - Entity* npc; - if (CheckGlobalFlag(0x1c) != 0) { - npc = CreateNPC(0x2e, 0, 0); - if (npc != NULL) { - CopyPosition(&gPlayerEntity, npc); - npc->flags |= 0x20; - npc->animationState = GetAnimationState(npc); - } - } -} diff --git a/src/player.c b/src/player.c index 61cafe8c..ff9826fb 100644 --- a/src/player.c +++ b/src/player.c @@ -256,6 +256,7 @@ void SurfaceAction_Water(Entity*); void SurfaceAction_Ladder(Entity*); void SurfaceAction_AutoLadder(Entity*); +extern void sub_080A4D88(void); extern void RespawnPlayer(); extern void sub_080797EC(); extern void UpdatePlayerMovement(); @@ -319,6 +320,26 @@ extern u16 script_BedAtSimons; extern Entity* gPlayerClones[]; extern ScriptExecutionContext gPlayerScriptExecutionContext; +NONMATCH("asm/non_matching/playerItemPacciCane/sub_080705AC.inc", u32 sub_080705AC(void)) { + if (!((gInput.newKeys & START_BUTTON) == 0 || gFadeControl.active || gUnk_02034490[0] || + (gMessage.doTextBox & 0x7F) || gSave.stats.health == 0 || !gSave.fillerD0[34] || + gPlayerState.controlMode != 0 || gPriorityHandler.priority_timer != 0)) { + u32 tmp = gPlayerState.framestate ? gPlayerState.framestate : gPlayerState.framestate_last; + switch (tmp) { + case PL_STATE_DIE: + case PL_STATE_TALKEZLO: + case PL_STATE_ITEMGET: + case PL_STATE_DROWN: + case PL_STATE_STAIRS: + return 0; + } + sub_080A4D88(); + return 1; + } + return 0; +} +END_NONMATCH + void DoPlayerAction(Entity* this) { static void (*const sPlayerActions[])(Entity*) = { [PLAYER_INIT] = PlayerInit, diff --git a/src/playerItem/playerItemPacciCane.c b/src/playerItem/playerItemPacciCane.c index 471f180e..580d65a5 100644 --- a/src/playerItem/playerItemPacciCane.c +++ b/src/playerItem/playerItemPacciCane.c @@ -8,7 +8,6 @@ extern void (*const gUnk_0811B9D8[])(Entity*); void sub_080704FC(Entity*); -extern void sub_080A4D88(void); extern u8 gUnk_02034490[0x18]; @@ -29,22 +28,3 @@ ASM_FUNC("asm/non_matching/playerItemPacciCane/sub_080704FC.inc", void sub_08070 void sub_0807059C() { MemClear(gUnk_02034490, sizeof(gUnk_02034490)); } - -NONMATCH("asm/non_matching/playerItemPacciCane/sub_080705AC.inc", u32 sub_080705AC(void)) { - if (!((gInput.newKeys & 8) == 0 || gFadeControl.active || gUnk_02034490[0] || (gMessage.doTextBox & 0x7F) != 0 || - !gSave.stats.health || !gSave.fillerD0[34] || gPlayerState.controlMode || gPriorityHandler.priority_timer)) { - u32 tmp = gPlayerState.framestate ? gPlayerState.framestate : gPlayerState.framestate_last; - switch (tmp) { - case 18: - case 19: - case 21: - case 22: - case 28: - return 0; - } - sub_080A4D88(); - return 1; - } - return 0; -} -END_NONMATCH From 52db70bb9d63a801f76b2fe6b359bd402a2c5b2a Mon Sep 17 00:00:00 2001 From: theo3 Date: Mon, 3 Jan 2022 23:58:02 -0800 Subject: [PATCH 095/168] naming work --- asm/beanstalkSubtask.s | 26 +- asm/code_08049D30.s | 12 +- asm/code_080526F8.s | 18 +- asm/code_0805436C.s | 8 +- asm/code_08054C04.s | 4 +- asm/code_0805EC04.s | 4 +- asm/code_08078778.s | 24 +- asm/code_0807B9B8.s | 20 +- asm/code_0808091C.s | 12 +- asm/coord.s | 4 +- asm/enemy/armos.s | 6 +- asm/enemy/chuchuBoss.s | 14 +- asm/enemy/code_080300AC.s | 12 +- asm/enemy/gleerok.s | 20 +- asm/enemy/gyorgChild.s | 4 +- asm/enemyUtils.s | 4 +- asm/enterPortalSubtask.s | 10 +- asm/intr.s | 12 +- asm/kinstone.s | 4 +- asm/non_matching/color/sub_0801D000.inc | 4 +- asm/non_matching/common/DrawDungeonMap.inc | 8 +- asm/non_matching/eu/HandlePlayerLife.inc | 4 +- asm/non_matching/eu/sub_08057A18.inc | 4 +- .../guardWithSpear/sub_08064198.inc | 4 +- .../guardWithSpear/sub_080642B8.inc | 4 +- asm/non_matching/itemSword/sub_08075900.inc | 4 +- asm/non_matching/manager1/sub_080573AC.inc | 4 +- asm/non_matching/manager1/sub_08057450.inc | 4 +- asm/non_matching/manager22/Manager22_Main.inc | 4 +- .../picolyteBottles/sub_0806E140.inc | 4 +- asm/non_matching/player/PlayerNormal.inc | 4 +- asm/non_matching/player/sub_08074678.inc | 4 +- .../playerItemSword/sub_080A78B8.inc | 4 +- asm/non_matching/rem/sub_0806A674.inc | 8 +- asm/non_matching/sub_0804C258.inc | 4 +- asm/non_matching/sub_08054524.inc | 4 +- asm/non_matching/sub_0805EC9C.inc | 4 +- asm/non_matching/sub_unk3_HyruleTown_0.inc | 6 +- asm/non_matching/vaati/sub_08043770.inc | 4 +- asm/non_matching/vram/sub_080AD918.inc | 8 +- asm/object/bigBarrel.s | 4 +- asm/object/bossDoor.s | 4 +- asm/object/gyorgBossObject.s | 12 +- asm/object/lilypadLarge.s | 8 +- asm/object/mazaalBossObject.s | 8 +- asm/object/object17.s | 4 +- asm/object/object3D.s | 6 +- asm/object/object3E.s | 12 +- asm/object/object43.s | 8 +- asm/object/object8E.s | 20 +- asm/object/object91.s | 16 +- asm/object/objectA8.s | 4 +- asm/object/windTribeTeleporter.s | 52 +- asm/scroll.s | 16 +- asm/staffroll.s | 16 +- asm/subtask.s | 32 +- asm/subtask2.s | 100 ++-- asm/ui.s | 16 +- asm/veneer.s | 4 +- asm/vram.s | 6 +- data/data_080FC8A4.s | 20 +- data/data_08128BF4.s | 32 +- include/asm.h | 2 +- include/color.h | 2 +- include/entity.h | 8 +- include/{fileScreen.h => fileselect.h} | 2 +- include/functions.h | 8 +- include/game.h | 22 +- include/main.h | 20 +- include/manager.h | 6 +- include/message.h | 2 +- include/player.h | 2 +- include/room.h | 175 +++--- include/save.h | 19 +- include/structures.h | 31 +- linker.ld | 10 +- src/affine.c | 34 +- src/code_08049CD4.c | 8 +- src/code_0805436C.c | 4 +- src/code_0805EC04.c | 10 +- src/color.c | 2 +- src/common.c | 12 +- src/coord.c | 12 +- src/debugScreen.c | 14 +- src/demoScreen.c | 26 +- src/enemy/bombPeahat.c | 22 +- src/enemy/code_080300AC.c | 12 +- src/enemy/fallingBoulder.c | 4 +- src/enemy/gyorgMale.c | 88 +-- src/enemy/mazaalBracelet.c | 8 +- src/enemy/mazaalHead.c | 24 +- src/enemy/mazaalMacro.c | 32 +- src/enemy/moldworm.c | 2 +- src/enemy/octorokBoss.c | 48 +- src/enemy/peahat.c | 2 +- src/enemy/puffstool.c | 24 +- src/enemy/slime.c | 4 +- src/enemy/vaatiArm.c | 92 +-- src/enemy/vaatiEyesMacro.c | 14 +- src/enemy/vaatiProjectile.c | 6 +- src/enemy/vaatiRebornEnemy.c | 10 +- src/enemy/vaatiTransfigured.c | 16 +- src/enemy/vaatiWrath.c | 42 +- src/enemy/vaatiWrathEye.c | 4 +- src/enemy/waterDrop.c | 8 +- src/enterPortalSubtask.c | 12 +- src/entity.c | 22 +- src/fade.c | 6 +- src/{fileScreen.c => fileselect.c} | 94 +-- src/game.c | 533 +++++++++--------- src/interrupts.c | 8 +- src/item/itemTryPickupObject.c | 2 +- src/main.c | 76 +-- src/manager/manager10.c | 8 +- src/manager/manager12.c | 6 +- src/manager/manager13.c | 6 +- src/manager/manager14.c | 4 +- src/manager/manager15.c | 32 +- src/manager/manager17.c | 4 +- src/manager/manager18.c | 8 +- src/manager/manager19.c | 8 +- src/manager/manager1A.c | 68 +-- src/manager/manager1B.c | 16 +- src/manager/manager1C.c | 4 +- src/manager/manager1D.c | 8 +- src/manager/manager2.c | 8 +- src/manager/manager20.c | 4 +- src/manager/manager21.c | 4 +- src/manager/manager22.c | 2 +- src/manager/manager23.c | 4 +- src/manager/manager24.c | 40 +- src/manager/manager26.c | 6 +- src/manager/manager27.c | 4 +- src/manager/manager28.c | 4 +- src/manager/manager2B.c | 4 +- src/manager/manager2C.c | 24 +- src/manager/manager2D.c | 4 +- src/manager/manager2F.c | 8 +- src/manager/manager3.c | 6 +- src/manager/manager31.c | 4 +- src/manager/manager32.c | 8 +- src/manager/manager33.c | 8 +- src/manager/manager34.c | 2 +- src/manager/manager35.c | 10 +- src/manager/manager37.c | 28 +- src/manager/manager39.c | 4 +- src/manager/manager4.c | 58 +- src/manager/manager7.c | 2 +- src/manager/manager8.c | 16 +- src/manager/manager9.c | 6 +- src/manager/managerC.c | 38 +- src/manager/managerF.c | 24 +- src/message.c | 16 +- src/npc.c | 4 +- src/npc/bigGoron.c | 4 +- src/npc/bladeBrothers.c | 4 +- src/npc/castorWildsStatue.c | 2 +- src/npc/dampe.c | 4 +- src/npc/goronMerchant.c | 4 +- src/npc/guard.c | 2 +- src/npc/kid.c | 4 +- src/npc/npc23.c | 2 +- src/npc/npc4E.c | 4 +- src/npc/npc5.c | 8 +- src/npc/phonograph.c | 2 +- src/npc/picolyteBottle.c | 10 +- src/npc/postman.c | 4 +- src/npc/rem.c | 6 +- src/npc/simon.c | 4 +- src/npc/sturgeon.c | 2 +- src/npc/syrup.c | 2 +- src/npc/vaati.c | 2 +- src/npc/zelda.c | 6 +- src/npcUtils.c | 4 +- src/object/backgroundCloud.c | 4 +- src/object/bakerOven.c | 4 +- src/object/bird.c | 2 +- src/object/book.c | 2 +- src/object/button.c | 4 +- src/object/cloud.c | 20 +- src/object/fileScreenObjects.c | 12 +- src/object/giantLeaf.c | 4 +- src/object/greatFairy.c | 8 +- src/object/houseDoorExterior.c | 4 +- src/object/lockedDoor.c | 2 +- src/object/mask.c | 2 +- src/object/minecart.c | 14 +- src/object/object49.c | 2 +- src/object/object6A.c | 24 +- src/object/objectA.c | 2 +- src/object/objectA2.c | 2 +- src/object/objectB5.c | 2 +- src/object/octorokBossObject.c | 6 +- src/object/treeHidingPortal.c | 2 +- src/object/warpPoint.c | 20 +- src/objectUtils.c | 4 +- src/player.c | 46 +- src/playerItem/playerItem10.c | 4 +- src/playerItem/playerItemPacciCane.c | 2 +- src/projectile/gleerokProjectile.c | 2 +- src/projectile/v1FireProjectile.c | 2 +- src/projectileUtils.c | 4 +- src/room.c | 16 +- src/roomInit.c | 84 +-- src/save.c | 4 +- src/script.c | 94 +-- src/scroll.c | 50 +- src/sub_08055E08.c | 2 +- src/sub_0807CA18.c | 24 +- src/subtask.c | 12 +- src/text.c | 2 +- src/title.c | 40 +- 212 files changed, 1762 insertions(+), 1736 deletions(-) rename include/{fileScreen.h => fileselect.h} (98%) rename src/{fileScreen.c => fileselect.c} (93%) diff --git a/asm/beanstalkSubtask.s b/asm/beanstalkSubtask.s index 4fc5e17c..5efd2b1a 100644 --- a/asm/beanstalkSubtask.s +++ b/asm/beanstalkSubtask.s @@ -50,7 +50,7 @@ sub_08019698: @ 0x08019698 ldr r1, _08019730 @ =gUpdateVisibleTiles movs r0, #1 strb r0, [r1] - bl sub_08000108 + bl UpdateScrollVram ldr r2, _08019734 @ =gScreen ldrh r1, [r2] ldr r0, _08019738 @ =0x0000FEFF @@ -75,8 +75,8 @@ _08019700: movs r0, #0x11 bl LoadGfxGroup bl FlushSprites - bl sub_080AD9B0 - bl sub_080AD918 + bl DrawEntities + bl CopyOAM movs r0, #4 movs r1, #8 bl DoFade @@ -119,8 +119,8 @@ sub_08019764: @ 0x08019764 push {lr} bl FlushSprites bl UpdateEntities - bl sub_080AD9B0 - bl sub_080AD918 + bl DrawEntities + bl CopyOAM ldr r2, _08019798 @ =gUnk_02018EB0 ldrh r0, [r2, #4] subs r0, #1 @@ -152,8 +152,8 @@ sub_080197A0: @ 0x080197A0 bl MenuFadeIn pop {pc} - thumb_func_start sub_080197AC -sub_080197AC: @ 0x080197AC + thumb_func_start SetBGDefaults +SetBGDefaults: @ 0x080197AC ldr r0, _080197C4 @ =gUnk_02025EB0 ldr r1, _080197C8 @ =gBGAffSettings str r1, [r0] @@ -3178,11 +3178,11 @@ sub_0801AE44: @ 0x0801AE44 bl sub_0807BFD0 cmp r4, #0 beq _0801AE5A - bl sub_0807C0DC + bl LoadRoomGfx _0801AE5A: bl sub_080809D4 bl sub_080805F8 - ldr r0, _0801AEE4 @ =gScreenTransition + ldr r0, _0801AEE4 @ =gRoomTransition adds r0, #0x2d ldrb r0, [r0] cmp r0, #0 @@ -3244,7 +3244,7 @@ _0801AED0: b _0801AF10 .align 2, 0 _0801AEE0: .4byte gRoomControls -_0801AEE4: .4byte gScreenTransition +_0801AEE4: .4byte gRoomTransition _0801AEE8: .4byte gArea _0801AEEC: .4byte 0x0600F000 _0801AEF0: .4byte gUnk_03004030 @@ -3257,7 +3257,7 @@ _0801AF08: .4byte gMapDataTopSpecial _0801AF0C: bl sub_0807C4F8 _0801AF10: - bl sub_08000108 + bl UpdateScrollVram pop {r4, pc} .align 2, 0 @@ -3298,7 +3298,7 @@ sub_0801AF48: @ 0x0801AF48 ldr r0, _0801AF7C @ =0x00003FFF cmp r4, r0 bhi _0801AF7A - ldr r0, _0801AF80 @ =gScreenTransition + ldr r0, _0801AF80 @ =gRoomTransition adds r0, #0x30 ldrb r0, [r0] cmp r0, #0 @@ -3320,7 +3320,7 @@ _0801AF7A: pop {r4, r5, r6, pc} .align 2, 0 _0801AF7C: .4byte 0x00003FFF -_0801AF80: .4byte gScreenTransition +_0801AF80: .4byte gRoomTransition _0801AF84: .4byte gRoomVars _0801AF88: .4byte gUnk_0200B240 diff --git a/asm/code_08049D30.s b/asm/code_08049D30.s index 77b661aa..c15be316 100644 --- a/asm/code_08049D30.s +++ b/asm/code_08049D30.s @@ -10,7 +10,7 @@ UpdateRoomTracker: @ 0x08049D30 push {r4, r5, r6, lr} ldr r1, _08049D58 @ =gUnk_020354B0 - ldr r0, _08049D5C @ =gUnk_02024050 + ldr r0, _08049D5C @ =gRoomMemory str r0, [r1] adds r5, r1, #0 ldr r6, _08049D60 @ =gRoomControls @@ -30,7 +30,7 @@ _08049D3E: b _08049D7C .align 2, 0 _08049D58: .4byte gUnk_020354B0 -_08049D5C: .4byte gUnk_02024050 +_08049D5C: .4byte gRoomMemory _08049D60: .4byte gRoomControls _08049D64: .4byte 0x0000FFFF _08049D68: @@ -52,7 +52,7 @@ _08049D84: .4byte gUnk_020354B0 thumb_func_start sub_08049D88 sub_08049D88: @ 0x08049D88 push {r4, r5, lr} - ldr r4, _08049DC0 @ =gUnk_02024050 + ldr r4, _08049DC0 @ =gRoomMemory adds r1, r4, #0 adds r1, #8 ldr r3, _08049DC4 @ =gRoomControls @@ -81,7 +81,7 @@ _08049DA0: adds r0, r4, #0 pop {r4, r5, pc} .align 2, 0 -_08049DC0: .4byte gUnk_02024050 +_08049DC0: .4byte gRoomMemory _08049DC4: .4byte gRoomControls _08049DC8: .4byte 0x0000FFFF @@ -89,7 +89,7 @@ _08049DC8: .4byte 0x0000FFFF sub_08049DCC: @ 0x08049DCC push {r4, lr} adds r2, r0, #0 - ldr r1, _08049DF0 @ =gUnk_02024050 + ldr r1, _08049DF0 @ =gRoomMemory adds r3, r1, #0 adds r3, #0x40 _08049DD6: @@ -107,7 +107,7 @@ _08049DE2: strh r0, [r2, #2] pop {r4, pc} .align 2, 0 -_08049DF0: .4byte gUnk_02024050 +_08049DF0: .4byte gRoomMemory thumb_func_start sub_08049DF4 sub_08049DF4: @ 0x08049DF4 diff --git a/asm/code_080526F8.s b/asm/code_080526F8.s index 402a840e..7843be88 100644 --- a/asm/code_080526F8.s +++ b/asm/code_080526F8.s @@ -409,7 +409,7 @@ sub_08053894: @ 0x08053894 _080538B4: .4byte gFadeControl _080538B8: .4byte gMenu _080538BC: - ldr r0, _080538FC @ =gScreenTransition + ldr r0, _080538FC @ =gRoomTransition ldr r0, [r0] movs r1, #1 ands r0, r1 @@ -442,7 +442,7 @@ _080538E4: _080538F8: pop {r4, pc} .align 2, 0 -_080538FC: .4byte gScreenTransition +_080538FC: .4byte gRoomTransition _08053900: .4byte gScreen thumb_func_start sub_08053904 @@ -467,7 +467,7 @@ sub_08053904: @ 0x08053904 _08053924: .4byte gFadeControl _08053928: .4byte gMenu _0805392C: - ldr r0, _0805396C @ =gScreenTransition + ldr r0, _0805396C @ =gRoomTransition ldr r0, [r0] movs r1, #1 ands r0, r1 @@ -500,7 +500,7 @@ _08053954: _08053968: pop {r4, pc} .align 2, 0 -_0805396C: .4byte gScreenTransition +_0805396C: .4byte gRoomTransition _08053970: .4byte gScreen thumb_func_start sub_08053974 @@ -513,7 +513,7 @@ sub_08053974: @ 0x08053974 bl InitFade movs r0, #1 bl DispReset - bl sub_080197AC + bl SetBGDefaults bl sub_08051F78 ldr r0, _080539B0 @ =gUnk_080FCBC4 bl LoadRoomEntityList @@ -540,7 +540,7 @@ nullsub_482: @ 0x080539B8 thumb_func_start sub_080539BC sub_080539BC: @ 0x080539BC push {lr} - bl sub_080197AC + bl SetBGDefaults bl DeleteAllEntities movs r0, #0x22 movs r1, #0x11 @@ -652,7 +652,7 @@ sub_08053A90: @ 0x08053A90 ldr r1, _08053AAC @ =gUnk_02032EC0 movs r0, #3 strb r0, [r1] - bl sub_080197AC + bl SetBGDefaults _08053AA4: pop {pc} .align 2, 0 @@ -887,7 +887,7 @@ sub_08053C60: @ 0x08053C60 ldr r0, _08053C80 @ =0x80100000 bl SoundReq movs r0, #3 - bl InitScreen + bl SetTask pop {pc} .align 2, 0 _08053C80: .4byte 0x80100000 @@ -1537,7 +1537,7 @@ _080541AA: movs r0, #0x63 bl ModBombs _080541B0: - bl sub_08053390 + bl LoadItemGfx b _0805427C _080541B6: cmp r5, #0 diff --git a/asm/code_0805436C.s b/asm/code_0805436C.s index f8afffbf..6f49c29e 100644 --- a/asm/code_0805436C.s +++ b/asm/code_0805436C.s @@ -59,11 +59,11 @@ sub_080548E8: @ 0x080548E8 bl _call_via_r0 bl FlushSprites bl UpdateEntities - bl sub_080AD9B0 - bl sub_080AD918 + bl DrawEntities + bl CopyOAM bl UpdateScroll bl UpdateBgAnim - bl sub_08000108 + bl UpdateScrollVram pop {pc} .align 2, 0 _08054918: .4byte gUnk_080FE2AC @@ -129,7 +129,7 @@ sub_08054974: @ 0x08054974 strb r0, [r4, #4] ldrb r0, [r6, #3] strb r0, [r4, #5] - bl sub_08053320 + bl LoadGfxGroups ldrb r0, [r4, #4] bl GetFlagBankOffset ldr r1, _080549B8 @ =gArea diff --git a/asm/code_08054C04.s b/asm/code_08054C04.s index 8cf1ccc5..82cf774f 100644 --- a/asm/code_08054C04.s +++ b/asm/code_08054C04.s @@ -853,7 +853,7 @@ sub_0805524C: @ 0x0805524C .align 2, 0 _08055270: .4byte gMenu _08055274: - ldr r0, _080552A4 @ =gScreenTransition + ldr r0, _080552A4 @ =gRoomTransition ldr r0, [r0] movs r1, #7 ands r0, r1 @@ -877,7 +877,7 @@ _08055274: strh r0, [r1] b _080552D6 .align 2, 0 -_080552A4: .4byte gScreenTransition +_080552A4: .4byte gRoomTransition _080552A8: .4byte gUnk_080FF204 _080552AC: .4byte 0x0000FFFF _080552B0: .4byte gScreen diff --git a/asm/code_0805EC04.s b/asm/code_0805EC04.s index 58307ec8..a4fecfbf 100644 --- a/asm/code_0805EC04.s +++ b/asm/code_0805EC04.s @@ -200,7 +200,7 @@ _0805EE82: thumb_func_start sub_0805EE88 sub_0805EE88: @ 0x0805EE88 push {lr} - ldr r1, _0805EEB0 @ =gScreenTransition + ldr r1, _0805EEB0 @ =gRoomTransition adds r0, r1, #0 adds r0, #0x2f ldrb r0, [r0] @@ -219,5 +219,5 @@ sub_0805EE88: @ 0x0805EE88 _0805EEAC: pop {pc} .align 2, 0 -_0805EEB0: .4byte gScreenTransition +_0805EEB0: .4byte gRoomTransition diff --git a/asm/code_08078778.s b/asm/code_08078778.s index ebd35258..266d4bdc 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -310,7 +310,7 @@ CreateEzloHint: @ 0x08078AA8 ldr r3, _08078AB8 @ =gPlayerState movs r2, #0x16 strb r2, [r3, #0xc] - ldr r2, _08078ABC @ =gScreenTransition + ldr r2, _08078ABC @ =gRoomTransition strh r0, [r2, #0x36] .ifdef JP adds r2, #0x34 @@ -325,7 +325,7 @@ CreateEzloHint: @ 0x08078AA8 bx lr .align 2, 0 _08078AB8: .4byte gPlayerState -_08078ABC: .4byte gScreenTransition +_08078ABC: .4byte gRoomTransition thumb_func_start sub_08078AC0 sub_08078AC0: @ 0x08078AC0 @@ -556,8 +556,8 @@ sub_08078C24: @ 0x08078C24 _08078CAC: .4byte gPlayerState _08078CB0: .4byte gUnk_03003DF0 - thumb_func_start sub_08078CB4 -sub_08078CB4: @ 0x08078CB4 + thumb_func_start UpdateCarriedObject +UpdateCarriedObject: @ 0x08078CB4 push {lr} ldr r0, _08078CCC @ =gPlayerState ldrb r0, [r0, #5] @@ -744,7 +744,7 @@ _08078DE0: ands r0, r1 cmp r0, #2 bne _08078E82 - ldr r0, _08078E38 @ =gScreenTransition + ldr r0, _08078E38 @ =gRoomTransition ldr r1, [r0] movs r0, #3 ands r1, r0 @@ -755,7 +755,7 @@ _08078DE0: b _08078E82 .align 2, 0 _08078E34: .4byte gPlayerState -_08078E38: .4byte gScreenTransition +_08078E38: .4byte gRoomTransition _08078E3C: ldrh r0, [r4, #0x2e] adds r0, #1 @@ -5105,7 +5105,7 @@ _0807AEA8: ands r0, r1 cmp r0, #0 beq _0807AECC - ldr r0, _0807AEC8 @ =gScreenTransition + ldr r0, _0807AEC8 @ =gRoomTransition ldr r0, [r0] movs r1, #0xf ands r0, r1 @@ -5116,9 +5116,9 @@ _0807AEA8: bl sub_080A2A84 b _0807AEDE .align 2, 0 -_0807AEC8: .4byte gScreenTransition +_0807AEC8: .4byte gRoomTransition _0807AECC: - ldr r0, _0807AEE0 @ =gScreenTransition + ldr r0, _0807AEE0 @ =gRoomTransition ldr r0, [r0] movs r1, #7 ands r0, r1 @@ -5129,7 +5129,7 @@ _0807AECC: _0807AEDE: pop {r4, pc} .align 2, 0 -_0807AEE0: .4byte gScreenTransition +_0807AEE0: .4byte gRoomTransition thumb_func_start UpdatePlayerSkills UpdatePlayerSkills: @ 0x0807AEE4 @@ -5518,7 +5518,7 @@ sub_0807B1A8: @ 0x0807B1A8 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 - ldr r0, _0807B1D8 @ =gScreenTransition + ldr r0, _0807B1D8 @ =gRoomTransition ldr r0, [r0] movs r1, #7 ands r0, r1 @@ -5530,7 +5530,7 @@ _0807B1D0: pop {r4, pc} .align 2, 0 _0807B1D4: .4byte gUnk_0811C298 -_0807B1D8: .4byte gScreenTransition +_0807B1D8: .4byte gRoomTransition thumb_func_start sub_0807B1DC sub_0807B1DC: @ 0x0807B1DC diff --git a/asm/code_0807B9B8.s b/asm/code_0807B9B8.s index 5a9cf42e..33b19f0b 100644 --- a/asm/code_0807B9B8.s +++ b/asm/code_0807B9B8.s @@ -931,8 +931,8 @@ _0807C0D0: .4byte gPaletteBuffer _0807C0D4: .4byte gUsedPalettes _0807C0D8: .4byte 0x000007FF - thumb_func_start sub_0807C0DC -sub_0807C0DC: @ 0x0807C0DC + thumb_func_start LoadRoomGfx +LoadRoomGfx: @ 0x0807C0DC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 @@ -1003,7 +1003,7 @@ _0807C178: movs r3, #1 mov sb, r3 _0807C184: - ldr r0, _0807C1B0 @ =gScreenTransition + ldr r0, _0807C1B0 @ =gRoomTransition adds r0, #0x2d ldrb r0, [r0] cmp r0, #0 @@ -1024,7 +1024,7 @@ _0807C184: bl MemCopy b _0807C26C .align 2, 0 -_0807C1B0: .4byte gScreenTransition +_0807C1B0: .4byte gRoomTransition _0807C1B4: .4byte gMapDataBottom _0807C1B8: .4byte gMapDataTop _0807C1BC: @@ -1710,7 +1710,7 @@ _0807C736: sub_0807C740: @ 0x0807C740 push {r4, r5, lr} bl sub_0807BFD0 - bl sub_0807C0DC + bl LoadRoomGfx ldr r4, _0807C780 @ =gRoomControls ldr r2, [r4, #0x30] cmp r2, #0 @@ -1859,7 +1859,7 @@ _0807C85C: .4byte gUpdateVisibleTiles thumb_func_start sub_0807C860 sub_0807C860: @ 0x0807C860 push {r4, lr} - ldr r0, _0807C88C @ =gScreenTransition + ldr r0, _0807C88C @ =gRoomTransition adds r0, #0x2d movs r1, #1 strb r1, [r0] @@ -1879,23 +1879,23 @@ sub_0807C860: @ 0x0807C860 bl MemCopy pop {r4, pc} .align 2, 0 -_0807C88C: .4byte gScreenTransition +_0807C88C: .4byte gRoomTransition _0807C890: .4byte gMapDataBottom _0807C894: .4byte gMapDataTop thumb_func_start sub_0807C898 sub_0807C898: @ 0x0807C898 push {r4, r5, lr} - ldr r4, _0807C8AC @ =gScreenTransition + ldr r4, _0807C8AC @ =gRoomTransition adds r4, #0x2d movs r5, #0 movs r0, #2 strb r0, [r4] - bl sub_0807C0DC + bl LoadRoomGfx strb r5, [r4] pop {r4, r5, pc} .align 2, 0 -_0807C8AC: .4byte gScreenTransition +_0807C8AC: .4byte gRoomTransition thumb_func_start sub_0807C8B0 sub_0807C8B0: @ 0x0807C8B0 diff --git a/asm/code_0808091C.s b/asm/code_0808091C.s index b89bd1db..c0d02198 100755 --- a/asm/code_0808091C.s +++ b/asm/code_0808091C.s @@ -6,8 +6,8 @@ .text - thumb_func_start sub_08080A40 -sub_08080A40: @ 0x08080A40 + thumb_func_start UpdateDoorTransition +UpdateDoorTransition: @ 0x08080A40 push {r4, r5, r6, r7, lr} ldr r7, _08080A70 @ =gRoomControls ldr r1, [r7, #0x30] @@ -100,7 +100,7 @@ _08080AFA: adds r0, r5, #0 adds r1, r6, #0 bl sub_080002A8 - ldr r1, _08080B48 @ =gScreenTransition + ldr r1, _08080B48 @ =gRoomTransition strh r0, [r1, #0xa] cmp r4, #0x3f beq _08080B50 @@ -112,7 +112,7 @@ _08080AFA: blo _08080B5C b _08080B50 .align 2, 0 -_08080B48: .4byte gScreenTransition +_08080B48: .4byte gRoomTransition _08080B4C: cmp r4, #0xf1 bne _08080B5C @@ -422,7 +422,7 @@ _08080DB4: bl ResolveEntityOnTop b _08080E00 _08080DEE: - ldr r0, _08080E04 @ =gScreenTransition + ldr r0, _08080E04 @ =gRoomTransition ldr r0, [r0] movs r1, #0xf ands r0, r1 @@ -433,4 +433,4 @@ _08080DEE: _08080E00: pop {r4, r5, pc} .align 2, 0 -_08080E04: .4byte gScreenTransition +_08080E04: .4byte gRoomTransition diff --git a/asm/coord.s b/asm/coord.s index 361f5d37..60061063 100644 --- a/asm/coord.s +++ b/asm/coord.s @@ -106,7 +106,7 @@ _0806FBB2: sub_0806FBB4: @ 0x0806FBB4 push {lr} adds r1, r0, #0 - ldr r0, _0806FBD0 @ =gScreenTransition + ldr r0, _0806FBD0 @ =gRoomTransition ldrb r0, [r0, #5] cmp r0, #0 bne _0806FBC8 @@ -120,7 +120,7 @@ _0806FBC8: _0806FBCC: pop {pc} .align 2, 0 -_0806FBD0: .4byte gScreenTransition +_0806FBD0: .4byte gRoomTransition _0806FBD4: .4byte gPlayerState thumb_func_start AllocMutableHitbox diff --git a/asm/enemy/armos.s b/asm/enemy/armos.s index c6f036f6..51aea16b 100644 --- a/asm/enemy/armos.s +++ b/asm/enemy/armos.s @@ -150,7 +150,7 @@ sub_0803026C: @ 0x0803026C str r0, [r2] b _080302BA .align 2, 0 -_080302A8: .4byte gScreenTransition + 0x6c +_080302A8: .4byte gRoomTransition + 0x6c _080302AC: adds r0, r4, #0 adds r0, #0x84 @@ -1014,7 +1014,7 @@ _0803088E: strb r0, [r2] ldr r0, [r5, #0x7c] bl DoExitTransition - ldr r0, _08030938 @ =gScreenTransition + ldr r0, _08030938 @ =gRoomTransition adds r1, r5, #0 adds r1, #0x80 ldrb r1, [r1] @@ -1027,7 +1027,7 @@ _08030928: .4byte gPlayerState _0803092C: .4byte gRoomControls _08030930: .4byte 0x00004049 _08030934: .4byte gPlayerEntity -_08030938: .4byte gScreenTransition +_08030938: .4byte gRoomTransition _0803093C: ldr r0, _0803094C @ =0x00004022 mov r3, r8 diff --git a/asm/enemy/chuchuBoss.s b/asm/enemy/chuchuBoss.s index b2b3b1d9..12f1451d 100644 --- a/asm/enemy/chuchuBoss.s +++ b/asm/enemy/chuchuBoss.s @@ -1333,7 +1333,7 @@ _080266B0: strh r0, [r4, #0x24] b _08026742 _080266D6: - ldr r0, _08026700 @ =gScreenTransition + ldr r0, _08026700 @ =gRoomTransition ldr r0, [r0] movs r1, #0x7f ands r0, r1 @@ -1354,7 +1354,7 @@ _080266EC: lsls r0, r0, #1 b _0802670A .align 2, 0 -_08026700: .4byte gScreenTransition +_08026700: .4byte gRoomTransition _08026704: .4byte gPlayerEntity _08026708: movs r0, #0xc0 @@ -1363,7 +1363,7 @@ _0802670A: ldrb r0, [r4, #0xe] cmp r0, #0 beq _0802672C - ldr r0, _0802674C @ =gScreenTransition + ldr r0, _0802674C @ =gRoomTransition ldr r0, [r0] movs r1, #7 ands r0, r1 @@ -1394,7 +1394,7 @@ _08026748: add sp, #4 pop {r4, r5, pc} .align 2, 0 -_0802674C: .4byte gScreenTransition +_0802674C: .4byte gRoomTransition thumb_func_start sub_08026750 sub_08026750: @ 0x08026750 @@ -2885,7 +2885,7 @@ sub_08027064: @ 0x08027064 ldrb r0, [r0] cmp r0, #0xa beq _08027098 - ldr r0, _080270C8 @ =gScreenTransition + ldr r0, _080270C8 @ =gRoomTransition ldr r0, [r0] movs r1, #0xf ands r0, r1 @@ -2908,7 +2908,7 @@ _08027098: ldrsh r2, [r0, r1] cmp r4, r2 beq _080270E0 - ldr r0, _080270C8 @ =gScreenTransition + ldr r0, _080270C8 @ =gRoomTransition ldr r1, [r0] movs r0, #0xf ands r1, r0 @@ -2919,7 +2919,7 @@ _08027098: strb r1, [r3, #0xc] b _080270D4 .align 2, 0 -_080270C8: .4byte gScreenTransition +_080270C8: .4byte gRoomTransition _080270CC: .4byte gPlayerEntity _080270D0: movs r0, #0x10 diff --git a/asm/enemy/code_080300AC.s b/asm/enemy/code_080300AC.s index 2b7e1ec0..c288eea4 100644 --- a/asm/enemy/code_080300AC.s +++ b/asm/enemy/code_080300AC.s @@ -9,7 +9,7 @@ thumb_func_start sub_080300E8 sub_080300E8: @ 0x080300E8 push {lr} - ldr r1, _08030110 @ =gScreenTransition + ldr r1, _08030110 @ =gRoomTransition adds r3, r1, #0 adds r3, #0xae ldrh r0, [r3] @@ -29,14 +29,14 @@ sub_080300E8: @ 0x080300E8 _0803010C: pop {pc} .align 2, 0 -_08030110: .4byte gScreenTransition +_08030110: .4byte gRoomTransition _08030114: .4byte gPlayerEntity thumb_func_start sub_08030118 sub_08030118: @ 0x08030118 push {lr} adds r2, r0, #0 - ldr r0, _0803013C @ =gScreenTransition + ldr r0, _0803013C @ =gRoomTransition adds r0, #0xac ldrh r0, [r0] asrs r0, r2 @@ -51,7 +51,7 @@ sub_08030118: @ 0x08030118 bl SetLocalFlagByBank b _0803014C .align 2, 0 -_0803013C: .4byte gScreenTransition +_0803013C: .4byte gRoomTransition _08030140: movs r0, #0xc0 lsls r0, r0, #2 @@ -66,7 +66,7 @@ _0803014C: sub_08030150: @ 0x08030150 push {r4, r5, lr} mov ip, r0 - ldr r2, _08030194 @ =gScreenTransition + ldr r2, _08030194 @ =gRoomTransition adds r5, r2, #0 adds r5, #0xac mov r3, ip @@ -98,4 +98,4 @@ sub_08030150: @ 0x08030150 strh r1, [r0] pop {r4, r5, pc} .align 2, 0 -_08030194: .4byte gScreenTransition +_08030194: .4byte gRoomTransition diff --git a/asm/enemy/gleerok.s b/asm/enemy/gleerok.s index bd9d72e9..308afc87 100644 --- a/asm/enemy/gleerok.s +++ b/asm/enemy/gleerok.s @@ -364,7 +364,7 @@ _0802D2D0: movs r2, #0x40 bl sub_0802EA68 _0802D2E4: - ldr r5, _0802D338 @ =gScreenTransition + ldr r5, _0802D338 @ =gRoomTransition ldr r0, [r5] movs r1, #0x1f ands r0, r1 @@ -405,7 +405,7 @@ _0802D32E: _0802D334: pop {r4, r5, pc} .align 2, 0 -_0802D338: .4byte gScreenTransition +_0802D338: .4byte gRoomTransition thumb_func_start sub_0802D33C sub_0802D33C: @ 0x0802D33C @@ -964,7 +964,7 @@ _0802D77A: sub_0802D77C: @ 0x0802D77C push {r4, r5, lr} adds r5, r0, #0 - ldr r0, _0802D7B0 @ =gScreenTransition + ldr r0, _0802D7B0 @ =gRoomTransition ldr r4, [r0] movs r0, #1 ands r4, r0 @@ -988,7 +988,7 @@ sub_0802D77C: @ 0x0802D77C _0802D7AC: pop {r4, r5, pc} .align 2, 0 -_0802D7B0: .4byte gScreenTransition +_0802D7B0: .4byte gRoomTransition thumb_func_start sub_0802D7B4 sub_0802D7B4: @ 0x0802D7B4 @@ -1325,7 +1325,7 @@ _0802D99C: bl DeleteThisEntity b _0802DB7E _0802D9A2: - ldr r0, _0802D9F4 @ =gScreenTransition + ldr r0, _0802D9F4 @ =gRoomTransition ldr r0, [r0] movs r1, #1 ands r0, r1 @@ -1367,9 +1367,9 @@ _0802D9CE: str r1, [r0] b _0802D99C .align 2, 0 -_0802D9F4: .4byte gScreenTransition +_0802D9F4: .4byte gRoomTransition _0802D9F8: - ldr r0, _0802DA50 @ =gScreenTransition + ldr r0, _0802DA50 @ =gRoomTransition ldr r0, [r0] movs r1, #1 ands r0, r1 @@ -1414,7 +1414,7 @@ _0802DA24: str r1, [r0] b _0802D99C .align 2, 0 -_0802DA50: .4byte gScreenTransition +_0802DA50: .4byte gRoomTransition _0802DA54: adds r0, r4, #0 adds r0, #0x74 @@ -2702,7 +2702,7 @@ _0802E400: .align 2, 0 _0802E408: .4byte gPlayerEntity _0802E40C: - ldr r0, _0802E42C @ =gScreenTransition + ldr r0, _0802E42C @ =gRoomTransition ldr r0, [r0] movs r1, #0xf ands r0, r1 @@ -2718,7 +2718,7 @@ _0802E422: _0802E428: pop {r4, r5, r6, pc} .align 2, 0 -_0802E42C: .4byte gScreenTransition +_0802E42C: .4byte gRoomTransition thumb_func_start sub_0802E430 sub_0802E430: @ 0x0802E430 diff --git a/asm/enemy/gyorgChild.s b/asm/enemy/gyorgChild.s index 44b4fa64..4eae2a9a 100644 --- a/asm/enemy/gyorgChild.s +++ b/asm/enemy/gyorgChild.s @@ -11,7 +11,7 @@ GyorgChild: @ 0x08048640 push {r4, r5, lr} adds r5, r0, #0 - ldr r0, _0804867C @ =gScreenTransition + ldr r0, _0804867C @ =gRoomTransition adds r0, #0x39 ldrb r2, [r0] cmp r2, #0 @@ -38,7 +38,7 @@ _08048664: bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 -_0804867C: .4byte gScreenTransition +_0804867C: .4byte gRoomTransition _08048680: .4byte gUnk_080D1E6C thumb_func_start sub_08048684 diff --git a/asm/enemyUtils.s b/asm/enemyUtils.s index 480ab1df..87d302b2 100644 --- a/asm/enemyUtils.s +++ b/asm/enemyUtils.s @@ -162,7 +162,7 @@ _0804A81C: ldrb r0, [r5, #9] cmp r0, #0x37 bne _0804A84A - ldr r0, _0804A85C @ =gScreenTransition + ldr r0, _0804A85C @ =gRoomTransition adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 @@ -175,7 +175,7 @@ _0804A84A: bl DeleteThisEntity b _0804A982 .align 2, 0 -_0804A85C: .4byte gScreenTransition +_0804A85C: .4byte gRoomTransition _0804A860: .4byte 0x80100000 _0804A864: adds r4, r5, #0 diff --git a/asm/enterPortalSubtask.s b/asm/enterPortalSubtask.s index 0f934d58..5a9688cb 100644 --- a/asm/enterPortalSubtask.s +++ b/asm/enterPortalSubtask.s @@ -121,8 +121,8 @@ _0804AC5E: ldrh r0, [r1, #0xc] strh r0, [r2, #0x18] bl FlushSprites - bl sub_080AD9B0 - bl sub_080AD918 + bl DrawEntities + bl CopyOAM ldr r0, _0804AC98 @ =gUnk_02018EB0 ldrb r0, [r0, #0x1b] cmp r0, #0 @@ -248,7 +248,7 @@ sub_0804AD6C: @ 0x0804AD6C push {r4, r5, r6, lr} mov r6, r8 push {r6} - ldr r3, _0804ADD0 @ =gScreenTransition + ldr r3, _0804ADD0 @ =gRoomTransition movs r1, #0 movs r6, #1 strb r6, [r3, #8] @@ -287,12 +287,12 @@ sub_0804AD6C: @ 0x0804AD6C strb r0, [r3, #0xd] mov r0, r8 strb r0, [r3, #0x14] - bl sub_080300AC + bl ClearArmosData bl sub_080300C4 pop {r3} mov r8, r3 pop {r4, r5, r6, pc} .align 2, 0 -_0804ADD0: .4byte gScreenTransition +_0804ADD0: .4byte gRoomTransition _0804ADD4: .4byte gArea _0804ADD8: .4byte gUnk_080D4140 diff --git a/asm/intr.s b/asm/intr.s index e2da5340..4e926b62 100644 --- a/asm/intr.s +++ b/asm/intr.s @@ -835,7 +835,7 @@ _080B23EC: .4byte gUnk_0800464E sub_080B23F0: @ 0x080B23F0 .ifdef EU push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr fp, _080B2A30 @ =gUnk_03000000 + ldr fp, _080B2A30 @ =gOAMControls ldrb r2, [fp, #3] cmp r2, #0x80 bhs _080B19C0EU @@ -885,7 +885,7 @@ sub_080B19C8: @ 0x080B19C8 .else .ifdef DEMO_JP @ TODO deduplicate same as EU push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr fp, _080B2A30 @ =gUnk_03000000 + ldr fp, _080B2A30 @ =gOAMControls ldrb r2, [fp, #3] cmp r2, #0x80 bhs _080B19C0EU @@ -934,7 +934,7 @@ sub_080B19C8: @ 0x080B19C8 b _080B1C40EU .else push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr fp, _080B2A30 @ =gUnk_03000000 + ldr fp, _080B2A30 @ =gOAMControls ldrb r2, [fp, #3] cmp r2, #0x80 bhs _080B2440 @@ -1527,7 +1527,7 @@ sub_080B280C: @ 0x080B280C cmp r2, #0 bxeq lr push {r4, r5, r6, r7, r8, sb, sl, fp, lr} - ldr fp, _080B2A64 @ =gUnk_03000000 + ldr fp, _080B2A64 @ =gOAMControls ldrb r3, [fp, #3] cmp r3, #0x80 bhs _080B286C @@ -1898,7 +1898,7 @@ _080B2144: .4byte gUnk_0300689C .endif -_080B2A30: .4byte gUnk_03000000 +_080B2A30: .4byte gOAMControls .ifdef EU _080B2154: .4byte 0x03006958 @TODO make pointer? .endif @@ -1917,7 +1917,7 @@ _080B2A54: .4byte gUnk_0300694C _080B2A58: .4byte gUnk_020000C0 _080B2A5C: .4byte gFrameObjLists _080B2A60: .4byte gFrameObjLists -_080B2A64: .4byte gUnk_03000000 +_080B2A64: .4byte gOAMControls _080B2A68: .4byte gUnk_0300695C _080B2A6C: .4byte 0x3E003F00 .ifdef EU diff --git a/asm/kinstone.s b/asm/kinstone.s index 0e2026d7..adc9fdf8 100644 --- a/asm/kinstone.s +++ b/asm/kinstone.s @@ -167,7 +167,7 @@ GenerateAreaHint: @ 0x0801862C movs r2, #0 movs r0, #0x16 strb r0, [r1, #0xc] - ldr r5, _08018650 @ =gScreenTransition + ldr r5, _08018650 @ =gRoomTransition adds r0, r5, #0 .ifdef JP adds r0, #0x34 @@ -188,7 +188,7 @@ GenerateAreaHint: @ 0x0801862C b _0801868C .align 2, 0 _0801864C: .4byte gPlayerState -_08018650: .4byte gScreenTransition +_08018650: .4byte gRoomTransition _08018654: .4byte gUnk_02033AB8 _08018658: ldrb r0, [r4, #2] diff --git a/asm/non_matching/color/sub_0801D000.inc b/asm/non_matching/color/sub_0801D000.inc index 5fb7e436..e4f3e757 100644 --- a/asm/non_matching/color/sub_0801D000.inc +++ b/asm/non_matching/color/sub_0801D000.inc @@ -1,7 +1,7 @@ .syntax unified push {lr} adds r2, r0, #0 - ldr r0, _0801D024 @ =gScreenTransition + ldr r0, _0801D024 @ =gRoomTransition movs r1, #0 cmp r2, #0 beq _0801D00E @@ -16,7 +16,7 @@ _0801D00E: bl sub_0801CFD0 b _0801D03A .align 2, 0 -_0801D024: .4byte gScreenTransition +_0801D024: .4byte gRoomTransition _0801D028: ldr r3, _0801D03C @ =gUnk_02001A3C ldrb r1, [r3] diff --git a/asm/non_matching/common/DrawDungeonMap.inc b/asm/non_matching/common/DrawDungeonMap.inc index 8d218546..d71568a1 100644 --- a/asm/non_matching/common/DrawDungeonMap.inc +++ b/asm/non_matching/common/DrawDungeonMap.inc @@ -11,7 +11,7 @@ bl MemClear movs r0, #1 strb r0, [r5] - ldr r2, _0801DBE4 @ =gScreenTransition + ldr r2, _0801DBE4 @ =gRoomTransition ldrh r0, [r2, #0x1c] lsrs r0, r0, #4 movs r1, #0x7f @@ -33,7 +33,7 @@ ldr r6, [r4] b _0801DD3A .align 2, 0 -_0801DBE4: .4byte gScreenTransition +_0801DBE4: .4byte gRoomTransition _0801DBE8: .4byte gUnk_080C9C50 _0801DBEC: .4byte gArea _0801DBF0: @@ -184,7 +184,7 @@ _0801DCF8: strb r0, [r5, #2] adds r5, #3 _0801DD16: - ldr r2, _0801DD54 @ =gScreenTransition + ldr r2, _0801DD54 @ =gRoomTransition ldrh r0, [r6] ldrh r1, [r2, #0x16] cmp r0, r1 @@ -217,5 +217,5 @@ _0801DD42: .align 2, 0 _0801DD4C: .4byte gArea _0801DD50: .4byte gAreaRoomHeaders -_0801DD54: .4byte gScreenTransition +_0801DD54: .4byte gRoomTransition .syntax divided diff --git a/asm/non_matching/eu/HandlePlayerLife.inc b/asm/non_matching/eu/HandlePlayerLife.inc index c1f4727b..3054b708 100644 --- a/asm/non_matching/eu/HandlePlayerLife.inc +++ b/asm/non_matching/eu/HandlePlayerLife.inc @@ -111,7 +111,7 @@ _08017112: ldrb r0, [r0, #1] cmp r0, #0 bne _0801714E - ldr r0, _08017168 @ =gScreenTransition + ldr r0, _08017168 @ =gRoomTransition ldr r0, [r0] movs r1, #0x5a bl __modsi3 @@ -150,7 +150,7 @@ _0801714E: .align 2, 0 _08017160: .4byte gMessage _08017164: .4byte gUnk_0200AF00 -_08017168: .4byte gScreenTransition +_08017168: .4byte gRoomTransition _0801716C: .4byte gSave _08017170: .4byte 0x0000011F _08017174: diff --git a/asm/non_matching/eu/sub_08057A18.inc b/asm/non_matching/eu/sub_08057A18.inc index 3787ba7e..e5c40648 100644 --- a/asm/non_matching/eu/sub_08057A18.inc +++ b/asm/non_matching/eu/sub_08057A18.inc @@ -11,7 +11,7 @@ ldr r3, _080575EC @ =gRoomControls ldrb r0, [r3, #4] strb r0, [r5, #9] - ldr r1, _080575F0 @ =gScreenTransition + ldr r1, _080575F0 @ =gRoomTransition ldrb r0, [r4, #4] strb r0, [r1, #0xc] ldrb r0, [r4, #5] @@ -51,6 +51,6 @@ .align 2, 0 _080575E8: .4byte gUnk_03004030 _080575EC: .4byte gRoomControls -_080575F0: .4byte gScreenTransition +_080575F0: .4byte gRoomTransition _080575F4: .4byte gPlayerEntity .syntax divided diff --git a/asm/non_matching/guardWithSpear/sub_08064198.inc b/asm/non_matching/guardWithSpear/sub_08064198.inc index 40e2c114..89fc6a7f 100644 --- a/asm/non_matching/guardWithSpear/sub_08064198.inc +++ b/asm/non_matching/guardWithSpear/sub_08064198.inc @@ -63,7 +63,7 @@ _080641E6: lsls r0, r0, #1 cmp r1, r0 ble _08064222 - ldr r0, _080642B4 @ =gScreenTransition + ldr r0, _080642B4 @ =gRoomTransition ldr r0, [r0] movs r1, #6 bl __modsi3 @@ -140,5 +140,5 @@ _080642AC: pop {r4, r5, r6, pc} .align 2, 0 _080642B0: .4byte gPlayerEntity -_080642B4: .4byte gScreenTransition +_080642B4: .4byte gRoomTransition .syntax divided diff --git a/asm/non_matching/guardWithSpear/sub_080642B8.inc b/asm/non_matching/guardWithSpear/sub_080642B8.inc index 108c643e..cf29a63e 100644 --- a/asm/non_matching/guardWithSpear/sub_080642B8.inc +++ b/asm/non_matching/guardWithSpear/sub_080642B8.inc @@ -63,7 +63,7 @@ _08064306: lsls r0, r0, #1 cmp r1, r0 ble _08064342 - ldr r0, _080643D4 @ =gScreenTransition + ldr r0, _080643D4 @ =gRoomTransition ldr r0, [r0] movs r1, #6 bl __modsi3 @@ -140,5 +140,5 @@ _080643CC: pop {r4, r5, r6, pc} .align 2, 0 _080643D0: .4byte gPlayerEntity -_080643D4: .4byte gScreenTransition +_080643D4: .4byte gRoomTransition .syntax divided diff --git a/asm/non_matching/itemSword/sub_08075900.inc b/asm/non_matching/itemSword/sub_08075900.inc index bf48f659..d10ea4ab 100644 --- a/asm/non_matching/itemSword/sub_08075900.inc +++ b/asm/non_matching/itemSword/sub_08075900.inc @@ -55,7 +55,7 @@ _08075962: lsls r0, r0, #2 strh r0, [r4, #0x24] bl UpdatePlayerMovement - ldr r0, _08075994 @ =gScreenTransition + ldr r0, _08075994 @ =gRoomTransition ldr r0, [r0] movs r1, #3 ands r0, r1 @@ -68,7 +68,7 @@ _08075962: b _080759B2 .align 2, 0 _08075990: .4byte gPlayerEntity -_08075994: .4byte gScreenTransition +_08075994: .4byte gRoomTransition _08075998: ldrb r1, [r4, #0xe] adds r0, r2, #0 diff --git a/asm/non_matching/manager1/sub_080573AC.inc b/asm/non_matching/manager1/sub_080573AC.inc index e38472fe..fe845fce 100644 --- a/asm/non_matching/manager1/sub_080573AC.inc +++ b/asm/non_matching/manager1/sub_080573AC.inc @@ -28,7 +28,7 @@ adds r0, r0, r2 strh r0, [r5, #0x30] ldr r2, _08057444 @ =gSineTable - ldr r4, _08057448 @ =gScreenTransition + ldr r4, _08057448 @ =gRoomTransition ldr r1, [r4] ldrb r0, [r4] adds r0, #0x40 @@ -72,6 +72,6 @@ _08057438: .4byte 0xFFFFE000 _0805743C: .4byte 0xFFFFF000 _08057440: .4byte gScreen _08057444: .4byte gSineTable -_08057448: .4byte gScreenTransition +_08057448: .4byte gRoomTransition _0805744C: .4byte gUnk_08107C30 .syntax divided diff --git a/asm/non_matching/manager1/sub_08057450.inc b/asm/non_matching/manager1/sub_08057450.inc index 62143543..2ce93081 100644 --- a/asm/non_matching/manager1/sub_08057450.inc +++ b/asm/non_matching/manager1/sub_08057450.inc @@ -33,7 +33,7 @@ _0805748A: adds r0, r3, #0 adds r0, #0x22 ldrb r0, [r0] - ldr r5, _08057510 @ =gScreenTransition + ldr r5, _08057510 @ =gRoomTransition cmp r0, #0 bne _080574BE ldr r0, [r5] @@ -96,7 +96,7 @@ _08057502: _08057504: .4byte gScreen _08057508: .4byte gRoomControls _0805750C: .4byte gBG3Buffer -_08057510: .4byte gScreenTransition +_08057510: .4byte gRoomTransition _08057514: .4byte gUnk_08107C30 _08057518: .4byte gUnk_085B4180 .syntax divided diff --git a/asm/non_matching/manager22/Manager22_Main.inc b/asm/non_matching/manager22/Manager22_Main.inc index 2c07a5d9..7ff6c934 100644 --- a/asm/non_matching/manager22/Manager22_Main.inc +++ b/asm/non_matching/manager22/Manager22_Main.inc @@ -121,7 +121,7 @@ _0805B9EC: .4byte 0x0000DFFF _0805B9F0: .4byte gPlayerState _0805B9F4: .4byte gArea _0805B9F8: - ldr r0, _0805BA24 @ =gScreenTransition + ldr r0, _0805BA24 @ =gRoomTransition ldr r0, [r0] movs r1, #3 ands r0, r1 @@ -142,7 +142,7 @@ _0805B9F8: bl sub_0801E154 b _0805BA42 .align 2, 0 -_0805BA24: .4byte gScreenTransition +_0805BA24: .4byte gRoomTransition _0805BA28: .4byte gSineTable _0805BA2C: movs r0, #0 diff --git a/asm/non_matching/picolyteBottles/sub_0806E140.inc b/asm/non_matching/picolyteBottles/sub_0806E140.inc index e67e3237..019b2b3d 100644 --- a/asm/non_matching/picolyteBottles/sub_0806E140.inc +++ b/asm/non_matching/picolyteBottles/sub_0806E140.inc @@ -62,7 +62,7 @@ _0806E1AC: ldr r0, _0806E1D4 @ =0x0000421C bl MessageFromTarget _0806E1C0: - ldr r1, _0806E1D8 @ =gScreenTransition + ldr r1, _0806E1D8 @ =gRoomTransition ldrh r0, [r4] strh r0, [r1, #6] ldr r2, _0806E1DC @ =gActiveScriptInfo @@ -73,6 +73,6 @@ _0806E1C0: pop {r4, r5, pc} .align 2, 0 _0806E1D4: .4byte 0x0000421C -_0806E1D8: .4byte gScreenTransition +_0806E1D8: .4byte gRoomTransition _0806E1DC: .4byte gActiveScriptInfo .syntax divided diff --git a/asm/non_matching/player/PlayerNormal.inc b/asm/non_matching/player/PlayerNormal.inc index 7cf020f9..fb4b93a2 100644 --- a/asm/non_matching/player/PlayerNormal.inc +++ b/asm/non_matching/player/PlayerNormal.inc @@ -529,7 +529,7 @@ _08070BC8: ldrb r0, [r0] cmp r0, #0 beq _08070BE4 - ldr r0, _08070BE8 @ =gScreenTransition + ldr r0, _08070BE8 @ =gRoomTransition ldr r0, [r0] movs r1, #7 ands r0, r1 @@ -540,5 +540,5 @@ _08070BC8: _08070BE4: pop {r4, r5, r6, r7, pc} .align 2, 0 -_08070BE8: .4byte gScreenTransition +_08070BE8: .4byte gRoomTransition .syntax divided diff --git a/asm/non_matching/player/sub_08074678.inc b/asm/non_matching/player/sub_08074678.inc index 3a3206b0..24b96bf6 100644 --- a/asm/non_matching/player/sub_08074678.inc +++ b/asm/non_matching/player/sub_08074678.inc @@ -85,7 +85,7 @@ _08074714: .align 2, 0 _0807471C: .4byte 0x00000161 _08074720: - ldr r0, _08074760 @ =gScreenTransition + ldr r0, _08074760 @ =gRoomTransition ldr r0, [r0] movs r1, #0xf ands r0, r1 @@ -118,7 +118,7 @@ _08074732: strb r0, [r1] b _08074792 .align 2, 0 -_08074760: .4byte gScreenTransition +_08074760: .4byte gRoomTransition _08074764: .4byte 0x00000161 _08074768: .4byte gPlayerState _0807476C: diff --git a/asm/non_matching/playerItemSword/sub_080A78B8.inc b/asm/non_matching/playerItemSword/sub_080A78B8.inc index c4d52960..e2ea0ab8 100644 --- a/asm/non_matching/playerItemSword/sub_080A78B8.inc +++ b/asm/non_matching/playerItemSword/sub_080A78B8.inc @@ -13,7 +13,7 @@ ldrb r0, [r6, #0x1e] subs r0, #0x6a strb r0, [r4, #0x1e] - ldr r0, _080A78EC @ =gScreenTransition + ldr r0, _080A78EC @ =gRoomTransition ldr r0, [r0] movs r1, #4 ands r0, r1 @@ -25,7 +25,7 @@ b _080A78F2 .align 2, 0 _080A78E8: .4byte gPlayerState -_080A78EC: .4byte gScreenTransition +_080A78EC: .4byte gRoomTransition _080A78F0: ldrb r1, [r4, #0x1e] _080A78F2: diff --git a/asm/non_matching/rem/sub_0806A674.inc b/asm/non_matching/rem/sub_0806A674.inc index d95609e6..21b97e01 100644 --- a/asm/non_matching/rem/sub_0806A674.inc +++ b/asm/non_matching/rem/sub_0806A674.inc @@ -89,7 +89,7 @@ _0806A6E4: strb r1, [r0] b _0806A75A _0806A724: - ldr r0, _0806A780 @ =gScreenTransition + ldr r0, _0806A780 @ =gRoomTransition ldr r0, [r0] movs r1, #3 ands r0, r1 @@ -137,9 +137,9 @@ _0806A75A: strb r1, [r0] b _0806A82A .align 2, 0 -_0806A780: .4byte gScreenTransition +_0806A780: .4byte gRoomTransition _0806A784: - ldr r0, _0806A7C4 @ =gScreenTransition + ldr r0, _0806A7C4 @ =gRoomTransition ldr r0, [r0] lsrs r0, r0, #4 movs r1, #3 @@ -174,7 +174,7 @@ _0806A7BA: strb r0, [r3] b _0806A82A .align 2, 0 -_0806A7C4: .4byte gScreenTransition +_0806A7C4: .4byte gRoomTransition _0806A7C8: adds r2, r4, #0 adds r2, #0x29 diff --git a/asm/non_matching/sub_0804C258.inc b/asm/non_matching/sub_0804C258.inc index f0ef6329..46510ccd 100644 --- a/asm/non_matching/sub_0804C258.inc +++ b/asm/non_matching/sub_0804C258.inc @@ -10,7 +10,7 @@ movs r0, #0xf ands r2, r0 strb r2, [r3, #0xd] - ldr r0, _0804C28C @ =gScreenTransition + ldr r0, _0804C28C @ =gRoomTransition ldrb r0, [r0, #0xe] cmp r0, #4 bne _0804C284 @@ -24,5 +24,5 @@ _0804C284: pop {pc} .align 2, 0 _0804C288: .4byte gArea -_0804C28C: .4byte gScreenTransition +_0804C28C: .4byte gRoomTransition .syntax divided diff --git a/asm/non_matching/sub_08054524.inc b/asm/non_matching/sub_08054524.inc index 90a65e1f..79c2b1a1 100644 --- a/asm/non_matching/sub_08054524.inc +++ b/asm/non_matching/sub_08054524.inc @@ -4,7 +4,7 @@ ldrb r1, [r0, #1] cmp r1, #0 bne _08054534 - ldr r0, _08054554 @ =gScreenTransition + ldr r0, _08054554 @ =gRoomTransition adds r0, #0x2e ldrb r1, [r0] _08054534: @@ -24,7 +24,7 @@ _0805453A: pop {pc} .align 2, 0 _08054550: .4byte gArea -_08054554: .4byte gScreenTransition +_08054554: .4byte gRoomTransition _08054558: .4byte gUnk_080FE1C6 _0805455C: .4byte gUnk_080015BC _08054560: .4byte gUnk_02034398 diff --git a/asm/non_matching/sub_0805EC9C.inc b/asm/non_matching/sub_0805EC9C.inc index 7c876fec..ae3e7a77 100644 --- a/asm/non_matching/sub_0805EC9C.inc +++ b/asm/non_matching/sub_0805EC9C.inc @@ -16,7 +16,7 @@ movs r0, #0 b _0805ECE0 _0805ECBE: - ldr r1, _0805ECE4 @ =gUnk_03000000 + ldr r1, _0805ECE4 @ =gOAMControls ldr r0, _0805ECE8 @ =0x00000427 adds r2, r1, r0 movs r0, #1 @@ -36,6 +36,6 @@ _0805ECBE: _0805ECE0: pop {r4, r5, r6, r7, pc} .align 2, 0 -_0805ECE4: .4byte gUnk_03000000 +_0805ECE4: .4byte gOAMControls _0805ECE8: .4byte 0x00000427 .syntax divided diff --git a/asm/non_matching/sub_unk3_HyruleTown_0.inc b/asm/non_matching/sub_unk3_HyruleTown_0.inc index b2cdc19e..0dc72abe 100644 --- a/asm/non_matching/sub_unk3_HyruleTown_0.inc +++ b/asm/non_matching/sub_unk3_HyruleTown_0.inc @@ -52,7 +52,7 @@ _0804DE5C: movs r0, #0x15 strb r0, [r1, #4] strb r2, [r1, #5] - bl sub_08052CFC + bl InitRoom ldr r0, [r4] movs r1, #0x98 lsls r1, r1, #1 @@ -60,7 +60,7 @@ _0804DE5C: strh r5, [r0, #4] ldr r0, [r4] strh r6, [r0, #6] - ldr r1, _0804DEC0 @ =gScreenTransition + ldr r1, _0804DEC0 @ =gRoomTransition ldr r0, [r4] ldrh r0, [r0] lsrs r0, r0, #1 @@ -92,7 +92,7 @@ _0804DE5C: _0804DEB4: .4byte gArea _0804DEB8: .4byte 0x0000085C _0804DEBC: .4byte gRoomControls -_0804DEC0: .4byte gScreenTransition +_0804DEC0: .4byte gRoomTransition _0804DEC4: movs r0, #6 movs r1, #0x10 diff --git a/asm/non_matching/vaati/sub_08043770.inc b/asm/non_matching/vaati/sub_08043770.inc index 7858154d..b053185b 100644 --- a/asm/non_matching/vaati/sub_08043770.inc +++ b/asm/non_matching/vaati/sub_08043770.inc @@ -10,7 +10,7 @@ bne _080437D8 ldr r0, [r2, #0x64] ldr r3, [r0, #0x14] - ldr r0, _080437AC @ =gScreenTransition + ldr r0, _080437AC @ =gRoomTransition adds r5, r0, #0 adds r5, #0x39 ldrb r1, [r5] @@ -30,7 +30,7 @@ _0804379A: movs r0, #0xfe b _080437B8 .align 2, 0 -_080437AC: .4byte gScreenTransition +_080437AC: .4byte gRoomTransition _080437B0: ldr r0, [r3, #0x64] str r4, [r0, #0x18] diff --git a/asm/non_matching/vram/sub_080AD918.inc b/asm/non_matching/vram/sub_080AD918.inc index 6b2c5705..d9213f65 100644 --- a/asm/non_matching/vram/sub_080AD918.inc +++ b/asm/non_matching/vram/sub_080AD918.inc @@ -5,7 +5,7 @@ adds r2, r0, #0 cmp r2, #0 bne _080AD958 - ldr r1, _080AD94C @ =gUnk_03000000 + ldr r1, _080AD94C @ =gOAMControls movs r3, #0xa4 lsls r3, r3, #3 adds r0, r1, r3 @@ -24,13 +24,13 @@ b _080AD95E .align 2, 0 _080AD948: .4byte gMain -_080AD94C: .4byte gUnk_03000000 +_080AD94C: .4byte gOAMControls _080AD950: .4byte 0x00000664 _080AD954: .4byte 0x000008EC _080AD958: subs r0, #1 strb r0, [r1, #0xb] - ldr r4, _080AD9A8 @ =gUnk_03000000 + ldr r4, _080AD9A8 @ =gOAMControls _080AD95E: ldrb r1, [r4, #3] movs r0, #0x80 @@ -71,6 +71,6 @@ _080AD9A0: strb r0, [r4] pop {r4, pc} .align 2, 0 -_080AD9A8: .4byte gUnk_03000000 +_080AD9A8: .4byte gOAMControls _080AD9AC: .4byte 0x00000427 .syntax divided diff --git a/asm/object/bigBarrel.s b/asm/object/bigBarrel.s index 237d053a..f22fefa0 100644 --- a/asm/object/bigBarrel.s +++ b/asm/object/bigBarrel.s @@ -586,7 +586,7 @@ _08088E94: .align 2, 0 _08088EB0: .4byte gRoomVars _08088EB4: - ldr r0, _08088F18 @ =gScreenTransition + ldr r0, _08088F18 @ =gRoomTransition ldr r0, [r0] movs r1, #7 ands r0, r1 @@ -635,7 +635,7 @@ _08088EB4: _08088F14: pop {r4, pc} .align 2, 0 -_08088F18: .4byte gScreenTransition +_08088F18: .4byte gRoomTransition _08088F1C: .4byte gUnk_08120C52 thumb_func_start sub_08088F20 diff --git a/asm/object/bossDoor.s b/asm/object/bossDoor.s index 44e5991b..0f95c9f3 100644 --- a/asm/object/bossDoor.s +++ b/asm/object/bossDoor.s @@ -196,7 +196,7 @@ sub_0808C348: @ 0x0808C348 ands r0, r1 cmp r0, #0 bne _0808C37C - ldr r0, _0808C374 @ =gScreenTransition + ldr r0, _0808C374 @ =gRoomTransition ldr r0, [r0] movs r1, #3 ands r0, r1 @@ -209,7 +209,7 @@ _0808C36A: bl GetNextFrame b _0808C382 .align 2, 0 -_0808C374: .4byte gScreenTransition +_0808C374: .4byte gRoomTransition _0808C378: .4byte 0x00000185 _0808C37C: adds r0, r4, #0 diff --git a/asm/object/gyorgBossObject.s b/asm/object/gyorgBossObject.s index 92dafc65..4066ef56 100644 --- a/asm/object/gyorgBossObject.s +++ b/asm/object/gyorgBossObject.s @@ -135,7 +135,7 @@ _080A0F5A: strh r1, [r0] adds r0, #2 strh r1, [r0] - ldr r0, _080A1060 @ =gScreenTransition + ldr r0, _080A1060 @ =gRoomTransition adds r0, #0x39 mov r2, sb strb r2, [r0] @@ -165,7 +165,7 @@ _080A1050: .4byte gEntCount _080A1054: .4byte gRoomControls _080A1058: .4byte gScreen _080A105C: .4byte 0x00001E07 -_080A1060: .4byte gScreenTransition +_080A1060: .4byte gRoomTransition _080A1064: .4byte gPlayerState .else @@ -274,7 +274,7 @@ _080A171E: strh r1, [r0] adds r0, #2 strh r1, [r0] - ldr r0, _080A1838 @ =gScreenTransition + ldr r0, _080A1838 @ =gRoomTransition adds r0, #0x39 mov r2, sb strb r2, [r0] @@ -314,7 +314,7 @@ _080A1828: .4byte gEntCount _080A182C: .4byte gRoomControls _080A1830: .4byte gScreen _080A1834: .4byte 0x00001E07 -_080A1838: .4byte gScreenTransition +_080A1838: .4byte gRoomTransition _080A183C: .4byte gPlayerState _080A1840: .4byte 0x80100000 _080A1844: .4byte gArea @@ -740,7 +740,7 @@ sub_080A1B4C: @ 0x080A1B4C _080A1B80: movs r6, #0 strh r7, [r5] - ldr r0, _080A1BF0 @ =gScreenTransition + ldr r0, _080A1BF0 @ =gRoomTransition adds r0, #0x39 strb r6, [r0] bl sub_08079F8C @@ -792,7 +792,7 @@ _080A1BD0: strh r0, [r2, #0x18] pop {r4, r5, r6, r7, pc} .align 2, 0 -_080A1BF0: .4byte gScreenTransition +_080A1BF0: .4byte gRoomTransition _080A1BF4: .4byte gPlayerEntity _080A1BF8: .4byte gPlayerState _080A1BFC: .4byte 0xFFFDFFFF diff --git a/asm/object/lilypadLarge.s b/asm/object/lilypadLarge.s index e2e96fc6..c178744a 100644 --- a/asm/object/lilypadLarge.s +++ b/asm/object/lilypadLarge.s @@ -417,7 +417,7 @@ _080857F6: _08085806: str r1, [r7, #0x6c] _08085808: - ldr r0, _080858B0 @ =gScreenTransition + ldr r0, _080858B0 @ =gRoomTransition ldr r0, [r0] movs r1, #0xf ands r0, r1 @@ -495,7 +495,7 @@ _08085884: .align 2, 0 _080858A8: .4byte gSineTable _080858AC: .4byte 0xFFFF0000 -_080858B0: .4byte gScreenTransition +_080858B0: .4byte gRoomTransition _080858B4: .4byte 0x00000FFF _080858B8: movs r0, #0 @@ -679,7 +679,7 @@ _080859E6: bl sub_08085D60 b _08085A0A _080859F4: - ldr r0, _08085A18 @ =gScreenTransition + ldr r0, _08085A18 @ =gRoomTransition ldr r0, [r0] movs r1, #0x1f ands r0, r1 @@ -696,7 +696,7 @@ _08085A0A: mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 -_08085A18: .4byte gScreenTransition +_08085A18: .4byte gRoomTransition thumb_func_start sub_08085A1C sub_08085A1C: @ 0x08085A1C diff --git a/asm/object/mazaalBossObject.s b/asm/object/mazaalBossObject.s index 1a02086b..ffe7e4a1 100644 --- a/asm/object/mazaalBossObject.s +++ b/asm/object/mazaalBossObject.s @@ -44,7 +44,7 @@ _0809AB22: adds r1, r4, #0 bl CopyPosition str r4, [r5, #0x54] - ldr r2, _0809AB68 @ =gScreenTransition + ldr r2, _0809AB68 @ =gRoomTransition adds r0, r2, #0 adds r0, #0x38 ldrb r1, [r0] @@ -67,7 +67,7 @@ _0809AB52: bl sub_080809D4 b _0809AB9C .align 2, 0 -_0809AB68: .4byte gScreenTransition +_0809AB68: .4byte gRoomTransition _0809AB6C: .4byte gRoomControls _0809AB70: movs r0, #1 @@ -253,7 +253,7 @@ sub_0809ACA0: @ 0x0809ACA0 ldr r1, [r2, #0x54] movs r0, #6 strb r0, [r1, #0xd] - ldr r0, _0809ACC8 @ =gScreenTransition + ldr r0, _0809ACC8 @ =gRoomTransition adds r0, #0x38 movs r1, #0xf1 strb r1, [r0] @@ -262,7 +262,7 @@ sub_0809ACA0: @ 0x0809ACA0 _0809ACC4: pop {pc} .align 2, 0 -_0809ACC8: .4byte gScreenTransition +_0809ACC8: .4byte gRoomTransition thumb_func_start sub_0809ACCC sub_0809ACCC: @ 0x0809ACCC diff --git a/asm/object/object17.s b/asm/object/object17.s index 23b434a2..2dee5055 100644 --- a/asm/object/object17.s +++ b/asm/object/object17.s @@ -84,7 +84,7 @@ sub_08086234: @ 0x08086234 ldrb r0, [r4, #0xa] cmp r0, #0 beq _08086258 - ldr r0, _08086254 @ =gScreenTransition + ldr r0, _08086254 @ =gRoomTransition ldr r0, [r0] movs r1, #1 ands r0, r1 @@ -94,7 +94,7 @@ sub_08086234: @ 0x08086234 bl GetNextFrame b _0808625E .align 2, 0 -_08086254: .4byte gScreenTransition +_08086254: .4byte gRoomTransition _08086258: adds r0, r4, #0 bl GetNextFrame diff --git a/asm/object/object3D.s b/asm/object/object3D.s index 3a81976a..c04687c7 100644 --- a/asm/object/object3D.s +++ b/asm/object/object3D.s @@ -88,7 +88,7 @@ _0808CF82: strh r1, [r0] bl sub_0808D030 movs r0, #0 - bl sub_0801CFA8 + bl ResetPaletteTable bl ResetPalettes ldr r0, _0808D024 @ =gGFXSlots movs r6, #1 @@ -180,14 +180,14 @@ _0808D046: subs r5, #1 cmp r5, #0 bne _0808D046 - ldr r1, _0808D060 @ =gUnk_03000000 + ldr r1, _0808D060 @ =gOAMControls movs r0, #1 strb r0, [r1] pop {r4, r5, pc} .align 2, 0 _0808D058: .4byte gUnk_03000020 _0808D05C: .4byte 0x00000B74 -_0808D060: .4byte gUnk_03000000 +_0808D060: .4byte gOAMControls thumb_func_start sub_0808D064 sub_0808D064: @ 0x0808D064 diff --git a/asm/object/object3E.s b/asm/object/object3E.s index 2345a89d..e40bcee1 100644 --- a/asm/object/object3E.s +++ b/asm/object/object3E.s @@ -171,7 +171,7 @@ _0808D1AE: _0808D1F4: .4byte 0x00004069 _0808D1F8: .4byte gRoomControls _0808D1FC: - ldr r0, _0808D274 @ =gScreenTransition + ldr r0, _0808D274 @ =gRoomTransition ldr r3, [r0] movs r0, #3 ands r3, r0 @@ -233,7 +233,7 @@ _0808D24E: _0808D272: pop {r4, r5, r6, pc} .align 2, 0 -_0808D274: .4byte gScreenTransition +_0808D274: .4byte gRoomTransition _0808D278: .4byte gScreen _0808D27C: .4byte gUnk_08121704 @@ -339,7 +339,7 @@ _0808D31C: ldrsh r0, [r4, r1] cmp r5, r0 beq _0808D350 - ldr r0, _0808D358 @ =gScreenTransition + ldr r0, _0808D358 @ =gRoomTransition ldr r0, [r0] movs r1, #8 ands r0, r1 @@ -351,7 +351,7 @@ _0808D350: pop {r4, r5, pc} .align 2, 0 _0808D354: .4byte gRoomControls -_0808D358: .4byte gScreenTransition +_0808D358: .4byte gRoomTransition _0808D35C: .4byte 0x0000010F thumb_func_start sub_0808D360 @@ -585,7 +585,7 @@ _0808D514: .4byte 0x00004069 sub_0808D518: @ 0x0808D518 push {r4, r5, r6, lr} adds r5, r0, #0 - ldr r0, _0808D58C @ =gScreenTransition + ldr r0, _0808D58C @ =gRoomTransition ldr r2, [r0] movs r0, #3 ands r2, r0 @@ -642,7 +642,7 @@ sub_0808D518: @ 0x0808D518 _0808D58A: pop {r4, r5, r6, pc} .align 2, 0 -_0808D58C: .4byte gScreenTransition +_0808D58C: .4byte gRoomTransition _0808D590: .4byte gScreen _0808D594: .4byte 0x00004069 _0808D598: .4byte gRoomControls diff --git a/asm/object/object43.s b/asm/object/object43.s index 7ad10e72..24d96cfa 100644 --- a/asm/object/object43.s +++ b/asm/object/object43.s @@ -240,7 +240,7 @@ _0808E084: ldrh r0, [r5] cmp r0, #0 beq _0808E0BC - ldr r0, _0808E0B8 @ =gScreenTransition + ldr r0, _0808E0B8 @ =gRoomTransition ldr r1, [r0] movs r0, #0x1f ands r1, r0 @@ -260,7 +260,7 @@ _0808E084: strb r1, [r0] b _0808E0E4 .align 2, 0 -_0808E0B8: .4byte gScreenTransition +_0808E0B8: .4byte gRoomTransition _0808E0BC: ldr r0, _0808E140 @ =0x00000115 bl EnqueueSFX @@ -446,7 +446,7 @@ sub_0808E208: @ 0x0808E208 ldrb r0, [r0, #0x1b] cmp r0, #0 beq _0808E248 - ldr r0, _0808E244 @ =gScreenTransition + ldr r0, _0808E244 @ =gRoomTransition ldr r0, [r0] movs r1, #3 ands r0, r1 @@ -464,7 +464,7 @@ sub_0808E208: @ 0x0808E208 b _0808E24C .align 2, 0 _0808E240: .4byte gPlayerState -_0808E244: .4byte gScreenTransition +_0808E244: .4byte gRoomTransition _0808E248: bl DeleteThisEntity _0808E24C: diff --git a/asm/object/object8E.s b/asm/object/object8E.s index 94969da8..16e40405 100644 --- a/asm/object/object8E.s +++ b/asm/object/object8E.s @@ -90,7 +90,7 @@ _0809B8D8: ldrb r0, [r4, #0xf] cmp r0, #0x1f bhi _0809B914 - ldr r5, _0809B90C @ =gScreenTransition + ldr r5, _0809B90C @ =gRoomTransition ldr r0, [r5] movs r1, #0x1f ands r0, r1 @@ -113,7 +113,7 @@ _0809B8F0: bl sub_0809B97C b _0809B972 .align 2, 0 -_0809B90C: .4byte gScreenTransition +_0809B90C: .4byte gRoomTransition _0809B910: .4byte 0x00000133 _0809B914: movs r0, #2 @@ -273,7 +273,7 @@ _0809BA40: ldrb r0, [r4, #0xf] cmp r0, #0 beq _0809BA7C - ldr r5, _0809BA74 @ =gScreenTransition + ldr r5, _0809BA74 @ =gRoomTransition ldr r0, [r5] movs r1, #0x1f ands r0, r1 @@ -296,7 +296,7 @@ _0809BA58: bl sub_0809B97C b _0809BAC2 .align 2, 0 -_0809BA74: .4byte gScreenTransition +_0809BA74: .4byte gRoomTransition _0809BA78: .4byte 0x00000133 _0809BA7C: movs r0, #2 @@ -436,7 +436,7 @@ _0809BB88: ldrh r0, [r5] cmp r0, #0xdf bhi _0809BBC4 - ldr r4, _0809BBBC @ =gScreenTransition + ldr r4, _0809BBBC @ =gRoomTransition ldr r0, [r4] movs r1, #0x1f ands r0, r1 @@ -456,7 +456,7 @@ _0809BBA6: b _0809BC68 .align 2, 0 _0809BBB8: .4byte gScreen -_0809BBBC: .4byte gScreenTransition +_0809BBBC: .4byte gRoomTransition _0809BBC0: .4byte 0x00000133 _0809BBC4: movs r0, #2 @@ -631,7 +631,7 @@ _0809BD20: ldrb r0, [r4, #0xd] cmp r0, #0 beq _0809BD64 - ldr r6, _0809BD58 @ =gScreenTransition + ldr r6, _0809BD58 @ =gRoomTransition ldr r0, [r6] movs r1, #0x1f ands r0, r1 @@ -656,7 +656,7 @@ _0809BD38: strh r0, [r1] b _0809BDAE .align 2, 0 -_0809BD58: .4byte gScreenTransition +_0809BD58: .4byte gRoomTransition _0809BD5C: .4byte 0x00000133 _0809BD60: .4byte gScreen _0809BD64: @@ -753,7 +753,7 @@ _0809BE0C: lsls r0, r0, #0x18 cmp r0, #0 beq _0809BE34 - ldr r0, _0809BE2C @ =gScreenTransition + ldr r0, _0809BE2C @ =gRoomTransition ldr r0, [r0] movs r1, #0x1f ands r0, r1 @@ -763,7 +763,7 @@ _0809BE0C: bl SoundReq b _0809BE70 .align 2, 0 -_0809BE2C: .4byte gScreenTransition +_0809BE2C: .4byte gRoomTransition _0809BE30: .4byte 0x00000133 _0809BE34: movs r0, #2 diff --git a/asm/object/object91.s b/asm/object/object91.s index 6c4c5fba..6a8d37f8 100644 --- a/asm/object/object91.s +++ b/asm/object/object91.s @@ -463,7 +463,7 @@ _0809C74A: ldrb r0, [r5, #0xf] cmp r0, #0 beq _0809C7BC - ldr r0, _0809C7AC @ =gScreenTransition + ldr r0, _0809C7AC @ =gRoomTransition ldr r0, [r0] movs r1, #7 ands r0, r1 @@ -502,7 +502,7 @@ _0809C7A0: b _0809C7BC .align 2, 0 _0809C7A8: .4byte gUnk_08123DF8 -_0809C7AC: .4byte gScreenTransition +_0809C7AC: .4byte gRoomTransition _0809C7B0: .4byte 0xFFFFD000 _0809C7B4: ldr r0, [r5, #0x50] @@ -776,7 +776,7 @@ sub_0809C988: @ 0x0809C988 strb r0, [r2, #0xb] b _0809C9DC _0809C9AC: - ldr r0, _0809C9C8 @ =gScreenTransition + ldr r0, _0809C9C8 @ =gRoomTransition ldr r0, [r0] movs r1, #8 ands r0, r1 @@ -791,7 +791,7 @@ _0809C9AC: subs r0, #4 b _0809C9DA .align 2, 0 -_0809C9C8: .4byte gScreenTransition +_0809C9C8: .4byte gRoomTransition _0809C9CC: adds r0, r2, #0 adds r0, #0x84 @@ -810,7 +810,7 @@ _0809C9DC: sub_0809C9E0: @ 0x0809C9E0 push {r4, r5, r6, r7, lr} adds r4, r0, #0 - ldr r0, _0809CA04 @ =gScreenTransition + ldr r0, _0809CA04 @ =gRoomTransition ldr r1, [r0] movs r2, #2 ands r1, r2 @@ -826,7 +826,7 @@ sub_0809C9E0: @ 0x0809C9E0 subs r0, #8 b _0809CA16 .align 2, 0 -_0809CA04: .4byte gScreenTransition +_0809CA04: .4byte gRoomTransition _0809CA08: adds r2, r4, #0 adds r2, #0x84 @@ -971,7 +971,7 @@ sub_0809CAC8: @ 0x0809CAC8 movs r0, #7 strb r0, [r5, #0xd] _0809CB26: - ldr r0, _0809CB44 @ =gScreenTransition + ldr r0, _0809CB44 @ =gRoomTransition ldr r0, [r0] movs r1, #0xf ands r0, r1 @@ -984,7 +984,7 @@ _0809CB38: .align 2, 0 _0809CB3C: .4byte gRoomControls _0809CB40: .4byte gPlayerEntity -_0809CB44: .4byte gScreenTransition +_0809CB44: .4byte gRoomTransition _0809CB48: .4byte 0x00000163 thumb_func_start sub_0809CB4C diff --git a/asm/object/objectA8.s b/asm/object/objectA8.s index 52c6a36d..c7b728bc 100644 --- a/asm/object/objectA8.s +++ b/asm/object/objectA8.s @@ -283,7 +283,7 @@ _0809FCAC: ldrb r0, [r4, #0xa] cmp r0, #0 bne _0809FCF8 - ldr r0, _0809FCFC @ =gScreenTransition + ldr r0, _0809FCFC @ =gRoomTransition ldr r0, [r0] movs r1, #1 ands r0, r1 @@ -314,7 +314,7 @@ _0809FCE0: _0809FCF8: pop {r4, r5, pc} .align 2, 0 -_0809FCFC: .4byte gScreenTransition +_0809FCFC: .4byte gRoomTransition thumb_func_start sub_0809FD00 sub_0809FD00: @ 0x0809FD00 diff --git a/asm/object/windTribeTeleporter.s b/asm/object/windTribeTeleporter.s index 15a1b7a2..34541e9e 100644 --- a/asm/object/windTribeTeleporter.s +++ b/asm/object/windTribeTeleporter.s @@ -163,12 +163,12 @@ _080A0B60: bl SoundReq b _080A0BF0 _080A0B7E: - ldr r0, _080A0B88 @ =gScreenTransition + ldr r0, _080A0B88 @ =gRoomTransition ldr r0, [r0] movs r1, #7 b _080A0BDE .align 2, 0 -_080A0B88: .4byte gScreenTransition +_080A0B88: .4byte gRoomTransition _080A0B8C: ldrb r0, [r4, #0xe] subs r0, #1 @@ -184,11 +184,11 @@ _080A0B98: strb r0, [r4, #0xe] b _080A0BF0 _080A0BA4: - ldr r0, _080A0BAC @ =gScreenTransition + ldr r0, _080A0BAC @ =gRoomTransition ldr r0, [r0] b _080A0BDE .align 2, 0 -_080A0BAC: .4byte gScreenTransition +_080A0BAC: .4byte gRoomTransition _080A0BB0: ldrb r0, [r4, #0xe] subs r0, #1 @@ -209,7 +209,7 @@ _080A0BB0: .align 2, 0 _080A0BD4: .4byte 0x0813AA10 _080A0BD8: - ldr r0, _080A0BF4 @ =gScreenTransition + ldr r0, _080A0BF4 @ =gRoomTransition ldr r0, [r0] movs r1, #1 _080A0BDE: @@ -225,7 +225,7 @@ _080A0BDE: _080A0BF0: pop {r4, pc} .align 2, 0 -_080A0BF4: .4byte gScreenTransition +_080A0BF4: .4byte gRoomTransition _080A0BF8: .4byte gPlayerEntity @@ -391,12 +391,12 @@ _080A0884: bl SoundReq b _080A0910 _080A08A2: - ldr r0, _080A08AC @ =gScreenTransition + ldr r0, _080A08AC @ =gRoomTransition ldr r0, [r0] movs r1, #7 b _080A08FE .align 2, 0 -_080A08AC: .4byte gScreenTransition +_080A08AC: .4byte gRoomTransition _080A08B0: ldrb r0, [r1, #0xe] subs r0, #1 @@ -412,12 +412,12 @@ _080A08BC: strb r0, [r1, #0xe] b _080A0910 _080A08C8: - ldr r0, _080A08D0 @ =gScreenTransition + ldr r0, _080A08D0 @ =gRoomTransition ldr r0, [r0] ands r0, r2 b _080A0900 .align 2, 0 -_080A08D0: .4byte gScreenTransition +_080A08D0: .4byte gRoomTransition _080A08D4: ldrb r0, [r1, #0xe] subs r0, #1 @@ -436,7 +436,7 @@ _080A08D4: .align 2, 0 _080A08F4: .4byte gUnk_0813ADEC _080A08F8: - ldr r0, _080A0914 @ =gScreenTransition + ldr r0, _080A0914 @ =gRoomTransition ldr r0, [r0] movs r1, #1 _080A08FE: @@ -453,7 +453,7 @@ _080A0900: _080A0910: pop {pc} .align 2, 0 -_080A0914: .4byte gScreenTransition +_080A0914: .4byte gRoomTransition _080A0918: .4byte gPlayerEntity .else @@ -504,12 +504,12 @@ _080A1038: bl SoundReq b _080A10D4 _080A1056: - ldr r0, _080A1060 @ =gScreenTransition + ldr r0, _080A1060 @ =gRoomTransition ldr r0, [r0] movs r1, #7 b _080A10C2 .align 2, 0 -_080A1060: .4byte gScreenTransition +_080A1060: .4byte gRoomTransition _080A1064: ldrb r0, [r4, #0xe] subs r0, #1 @@ -525,11 +525,11 @@ _080A1070: strb r0, [r4, #0xe] b _080A10D4 _080A107C: - ldr r0, _080A1084 @ =gScreenTransition + ldr r0, _080A1084 @ =gRoomTransition ldr r0, [r0] b _080A10C2 .align 2, 0 -_080A1084: .4byte gScreenTransition +_080A1084: .4byte gRoomTransition _080A1088: ldrb r0, [r4, #0xe] subs r0, #1 @@ -556,7 +556,7 @@ _080A10A2: _080A10B4: .4byte gRoomControls _080A10B8: .4byte gUnk_0813ADEC _080A10BC: - ldr r0, _080A10D8 @ =gScreenTransition + ldr r0, _080A10D8 @ =gRoomTransition ldr r0, [r0] movs r1, #1 _080A10C2: @@ -572,7 +572,7 @@ _080A10C2: _080A10D4: pop {r4, pc} .align 2, 0 -_080A10D8: .4byte gScreenTransition +_080A10D8: .4byte gRoomTransition _080A10DC: .4byte gPlayerEntity .endif .endif @@ -611,11 +611,11 @@ _080A110E: lsls r0, r0, #0x18 cmp r0, #0 beq _080A1130 - ldr r0, _080A1120 @ =gScreenTransition + ldr r0, _080A1120 @ =gRoomTransition ldr r0, [r0] b _080A1162 .align 2, 0 -_080A1120: .4byte gScreenTransition +_080A1120: .4byte gRoomTransition _080A1124: ldrb r0, [r2, #0xe] subs r0, #1 @@ -631,12 +631,12 @@ _080A1130: strb r0, [r2, #0xe] b _080A11BA _080A113C: - ldr r0, _080A1144 @ =gScreenTransition + ldr r0, _080A1144 @ =gRoomTransition ldr r0, [r0] movs r1, #3 b _080A1162 .align 2, 0 -_080A1144: .4byte gScreenTransition +_080A1144: .4byte gRoomTransition _080A1148: ldrb r0, [r2, #0xe] subs r0, #1 @@ -649,7 +649,7 @@ _080A1148: strb r0, [r2, #0xd] b _080A11BA _080A115C: - ldr r0, _080A1178 @ =gScreenTransition + ldr r0, _080A1178 @ =gRoomTransition ldr r0, [r0] movs r1, #7 _080A1162: @@ -664,14 +664,14 @@ _080A1162: strb r1, [r0, #0x14] b _080A11BA .align 2, 0 -_080A1178: .4byte gScreenTransition +_080A1178: .4byte gRoomTransition _080A117C: .4byte gPlayerEntity _080A1180: ldr r4, _080A11A0 @ =gPlayerEntity ldrb r3, [r4, #0x14] cmp r3, #4 beq _080A11A8 - ldr r0, _080A11A4 @ =gScreenTransition + ldr r0, _080A11A4 @ =gRoomTransition ldr r0, [r0] movs r1, #7 ands r0, r1 @@ -684,7 +684,7 @@ _080A1180: b _080A11BA .align 2, 0 _080A11A0: .4byte gPlayerEntity -_080A11A4: .4byte gScreenTransition +_080A11A4: .4byte gRoomTransition _080A11A8: movs r0, #0 movs r1, #1 diff --git a/asm/scroll.s b/asm/scroll.s index d66162ec..9401d782 100644 --- a/asm/scroll.s +++ b/asm/scroll.s @@ -228,7 +228,7 @@ sub_0807FDC8: @ 0x0807FDC8 ldr r4, _0807FDE0 @ =gUpdateVisibleTiles movs r0, #1 strb r0, [r4] - bl sub_08000108 + bl UpdateScrollVram movs r1, #0 movs r0, #1 strb r0, [r5, #3] @@ -411,7 +411,7 @@ _0807FF18: .4byte gUpdateVisibleTiles sub_0807FF1C: @ 0x0807FF1C push {lr} adds r2, r0, #0 - ldr r0, _0807FF4C @ =gScreenTransition + ldr r0, _0807FF4C @ =gRoomTransition ldr r0, [r0] movs r1, #1 ands r0, r1 @@ -433,7 +433,7 @@ sub_0807FF1C: @ 0x0807FF1C _0807FF48: pop {pc} .align 2, 0 -_0807FF4C: .4byte gScreenTransition +_0807FF4C: .4byte gRoomTransition _0807FF50: .4byte gUpdateVisibleTiles thumb_func_start sub_0807FF54 @@ -716,7 +716,7 @@ sub_08080198: @ 0x08080198 movs r1, #0xff strh r1, [r0, #0x1c] bl LoadRoom - bl sub_0804AFF4 + bl CallRoomProp5And7 ldr r0, _080801B8 @ =gUpdateVisibleTiles strb r4, [r0] bl sub_080805F8 @@ -1335,8 +1335,8 @@ _08080660: .align 2, 0 _08080664: .4byte gUnk_03004030 - thumb_func_start sub_08080668 -sub_08080668: @ 0x08080668 + thumb_func_start ClearTilemaps +ClearTilemaps: @ 0x08080668 push {r4, r5, lr} ldr r5, _080806A4 @ =gRoomControls adds r0, r5, #0 @@ -1587,7 +1587,7 @@ _0808083E: DoExitTransition: @ 0x08080840 push {r4, lr} adds r4, r0, #0 - ldr r0, _0808085C @ =gScreenTransition + ldr r0, _0808085C @ =gRoomTransition movs r1, #1 strb r1, [r0, #8] adds r2, r0, #0 @@ -1599,7 +1599,7 @@ DoExitTransition: @ 0x08080840 strh r1, [r2, #4] b _08080872 .align 2, 0 -_0808085C: .4byte gScreenTransition +_0808085C: .4byte gRoomTransition _08080860: .4byte 0x000003FF _08080864: ldr r0, _08080880 @ =gRoomControls diff --git a/asm/staffroll.s b/asm/staffroll.s index 43c751e4..cf064177 100644 --- a/asm/staffroll.s +++ b/asm/staffroll.s @@ -6,10 +6,10 @@ .text - thumb_func_start HandleCreditsScreen -HandleCreditsScreen: @ 0x080A35E0 + thumb_func_start StaffrollTask +StaffrollTask: @ 0x080A35E0 push {lr} - ldr r1, _080A35FC @ =gScreenTransition + ldr r1, _080A35FC @ =gRoomTransition ldr r0, [r1] adds r0, #1 str r0, [r1] @@ -22,7 +22,7 @@ HandleCreditsScreen: @ 0x080A35E0 bl _call_via_r0 pop {pc} .align 2, 0 -_080A35FC: .4byte gScreenTransition +_080A35FC: .4byte gRoomTransition _080A3600: .4byte gUnk_08127D00 _080A3604: .4byte gMain @@ -242,7 +242,7 @@ _080A37C4: ldrb r0, [r0] cmp r0, #0 bne _080A385E - ldr r0, _080A37FC @ =gScreenTransition + ldr r0, _080A37FC @ =gRoomTransition ldr r0, [r0] ands r0, r1 cmp r0, #0 @@ -266,7 +266,7 @@ _080A37C4: b _080A383C .align 2, 0 _080A37F8: .4byte gFadeControl -_080A37FC: .4byte gScreenTransition +_080A37FC: .4byte gRoomTransition _080A3800: .4byte gScreen _080A3804: ldrh r0, [r4, #8] @@ -277,7 +277,7 @@ _080A3804: bne _080A385E b _080A383C _080A3812: - ldr r0, _080A3844 @ =gScreenTransition + ldr r0, _080A3844 @ =gRoomTransition ldr r0, [r0] movs r1, #1 ands r0, r1 @@ -304,7 +304,7 @@ _080A383C: strb r0, [r4, #6] b _080A385E .align 2, 0 -_080A3844: .4byte gScreenTransition +_080A3844: .4byte gRoomTransition _080A3848: .4byte gScreen _080A384C: ldr r1, _080A3860 @ =gFadeControl diff --git a/asm/subtask.s b/asm/subtask.s index d6bb7811..dfec5a59 100644 --- a/asm/subtask.s +++ b/asm/subtask.s @@ -203,13 +203,13 @@ _080A3DDC: .4byte gMenu _080A3DE0: .4byte gFuseInfo _080A3DE4: .4byte gUnk_080C9CBC _080A3DE8: - bl sub_080A71DC + bl Subtask_Exit b _080A3DF8 _080A3DEE: ldr r1, _080A3DFC @ =gFuseInfo movs r0, #5 strb r0, [r1] - bl sub_080A71DC + bl Subtask_Exit _080A3DF8: pop {pc} .align 2, 0 @@ -1300,8 +1300,8 @@ _080A4576: _080A45A2: pop {r4, pc} - thumb_func_start sub_080A45A4 -sub_080A45A4: @ 0x080A45A4 + thumb_func_start Subtask_FigurineMenu +Subtask_FigurineMenu: @ 0x080A45A4 .ifdef DEMO_USA bx lr .align 2, 0 @@ -1339,10 +1339,10 @@ _080A45D0: _080A45E0: bl UpdateEntities bl sub_0801C1D4 - bl sub_0801C208 - bl sub_080AD9B0 + bl DrawOAMCmd + bl DrawEntities bl sub_080A4978 - bl sub_080AD918 + bl CopyOAM bl sub_080A4B44 pop {pc} .align 2, 0 @@ -1445,7 +1445,7 @@ sub_080A46C0: @ 0x080A46C0 bl SoundReq movs r0, #2 bl ClearRoomFlag - bl sub_080A71DC + bl Subtask_Exit pop {pc} thumb_func_start sub_080A46DC @@ -2499,7 +2499,7 @@ _080A4D2E: thumb_func_start sub_080A4D34 sub_080A4D34: @ 0x080A4D34 push {lr} - bl sub_08053320 + bl LoadGfxGroups movs r0, #0xb5 bl LoadPaletteGroup ldr r1, _080A4D50 @ =gSave @@ -2669,8 +2669,8 @@ sub_080A4E90: @ 0x080A4E90 .align 2, 0 _080A4E9C: .4byte gUnk_02034490 - thumb_func_start sub_080A4EA0 -sub_080A4EA0: @ 0x080A4EA0 + thumb_func_start Subtask_PauseMenu +Subtask_PauseMenu: @ 0x080A4EA0 push {r4, lr} ldr r4, _080A4EB8 @ =gUnk_02034490 ldrb r0, [r4, #0x11] @@ -2679,7 +2679,7 @@ sub_080A4EA0: @ 0x080A4EA0 movs r0, #0x80 lsls r0, r0, #1 bl SetBgmVolume - bl sub_080A71DC + bl Subtask_Exit b _080A4F14 .align 2, 0 _080A4EB8: .4byte gUnk_02034490 @@ -2693,7 +2693,7 @@ _080A4EBC: bl _call_via_r0 bl sub_080A5128 bl sub_0801C1D4 - bl sub_0801C208 + bl DrawOAMCmd ldrb r0, [r4, #0x11] cmp r0, #4 beq _080A4EF0 @@ -2705,7 +2705,7 @@ _080A4EBC: ldr r0, [r1] bl _call_via_r0 _080A4EF0: - bl sub_080AD918 + bl CopyOAM movs r3, #0x16 ldrsb r3, [r4, r3] movs r1, #0 @@ -2745,7 +2745,7 @@ _080A4F38: adds r1, #1 cmp r1, #0xd ble _080A4F38 - ldr r1, _080A4F94 @ =gScreenTransition + ldr r1, _080A4F94 @ =gRoomTransition ldrh r0, [r1, #0x20] ldrh r1, [r1, #0x22] bl sub_080A6A80 @@ -2779,7 +2779,7 @@ _080A4F66: pop {r4, pc} .align 2, 0 _080A4F90: .4byte gUnk_02034492 -_080A4F94: .4byte gScreenTransition +_080A4F94: .4byte gRoomTransition _080A4F98: .4byte gUnk_02034490 _080A4F9C: .4byte gUnk_08128A38 diff --git a/asm/subtask2.s b/asm/subtask2.s index ceadbd8e..da4d4861 100644 --- a/asm/subtask2.s +++ b/asm/subtask2.s @@ -2480,7 +2480,7 @@ _080A5B86: ands r0, r1 cmp r0, #0 bne _080A5BE0 - ldr r4, _080A5C20 @ =gScreenTransition + ldr r4, _080A5C20 @ =gRoomTransition ldrh r1, [r4, #0x20] lsls r0, r1, #2 adds r0, r0, r1 @@ -2538,7 +2538,7 @@ _080A5BE0: .align 2, 0 _080A5C18: .4byte gChooseFileState _080A5C1C: .4byte gOamCmd -_080A5C20: .4byte gScreenTransition +_080A5C20: .4byte gRoomTransition _080A5C24: .4byte gPlayerState _080A5C28: .4byte gUnk_08128DE8 @@ -2570,7 +2570,7 @@ _080A6392: ands r0, r1 cmp r0, #0 bne _080A63EA - ldr r4, _080A6428 @ =gScreenTransition + ldr r4, _080A6428 @ =gRoomTransition ldrh r1, [r4, #0x20] lsls r0, r1, #2 adds r0, r0, r1 @@ -2626,7 +2626,7 @@ _080A63EA: .align 2, 0 _080A6420: .4byte gMenu _080A6424: .4byte gOamCmd -_080A6428: .4byte gScreenTransition +_080A6428: .4byte gRoomTransition _080A642C: .4byte gPlayerState _080A6430: .4byte 0x000001FB _080A6434: .4byte gUnk_08128DE8 @@ -2830,8 +2830,8 @@ _080A64F4: .4byte gScreen _080A64F8: .4byte 0x00003D3F .endif - thumb_func_start sub_080A64FC -sub_080A64FC: @ 0x080A64FC + thumb_func_start Subtask_MapHint +Subtask_MapHint: @ 0x080A64FC push {r4, lr} bl FlushSprites ldr r1, _080A652C @ =gUnk_08128E70 @@ -2850,7 +2850,7 @@ sub_080A64FC: @ 0x080A64FC bl sub_080A6438 _080A6522: bl sub_080A6498 - bl sub_080AD918 + bl CopyOAM pop {r4, pc} .align 2, 0 _080A652C: .4byte gUnk_08128E70 @@ -2949,7 +2949,7 @@ _080A65EC: cmp r0, #8 bne _080A6600 _080A65FC: - bl sub_080A71DC + bl Subtask_Exit _080A6600: pop {r4, pc} .align 2, 0 @@ -3448,7 +3448,7 @@ sub_080A68D4: @ 0x080A68D4 beq _080A60DA movs r4, #0x65 _080A60DA: - ldr r1, _080A6104EU @ =gScreenTransition + ldr r1, _080A6104EU @ =gRoomTransition ldrh r0, [r1, #0x20] ldrh r1, [r1, #0x22] movs r2, #0xfd @@ -3467,7 +3467,7 @@ _080A60DA: b _080A612C .align 2, 0 _080A6100EU: .4byte gPlayerState -_080A6104EU: .4byte gScreenTransition +_080A6104EU: .4byte gRoomTransition _080A6108: .4byte gSave _080A610C: .4byte gUnk_08128F58 _080A6110: @@ -3536,7 +3536,7 @@ _080A6178EU: .4byte gUnk_080FE320 beq _080A68E6 movs r4, #0x65 _080A68E6: - ldr r1, _080A6910 @ =gScreenTransition + ldr r1, _080A6910 @ =gRoomTransition ldrh r0, [r1, #0x20] ldrh r1, [r1, #0x22] ldr r2, _080A6914 @ =0x000001FB @@ -3554,7 +3554,7 @@ _080A68E6: b _080A693A .align 2, 0 _080A690C: .4byte gPlayerState -_080A6910: .4byte gScreenTransition +_080A6910: .4byte gRoomTransition _080A6914: .4byte 0x000001FB _080A6918: .4byte gSave _080A691C: .4byte gUnk_08128F58 @@ -3776,8 +3776,8 @@ _080A6AAE: _080A6AB6: pop {pc} - thumb_func_start sub_080A6AB8 -sub_080A6AB8: @ 0x080A6AB8 + thumb_func_start Subtask_LocalMapHint +Subtask_LocalMapHint: @ 0x080A6AB8 push {r4, lr} bl FlushSprites ldr r1, _080A6AF4 @ =gUnk_08128F1C @@ -3802,7 +3802,7 @@ sub_080A6AB8: @ 0x080A6AB8 ldrh r0, [r4, #0xa] subs r0, r0, r1 strh r0, [r2, #0x24] - bl sub_080AD918 + bl CopyOAM pop {r4, pc} .align 2, 0 _080A6AF4: .4byte gUnk_08128F1C @@ -3869,7 +3869,7 @@ sub_080A6B04: @ 0x080A6B04 beq _080A6B84 movs r2, #0x65 _080A6B84: - ldr r1, _080A6C10 @ =gScreenTransition + ldr r1, _080A6C10 @ =gRoomTransition ldrh r0, [r1, #0x20] ldrh r1, [r1, #0x22] .ifdef EU @@ -3933,7 +3933,7 @@ _080A6C00: .4byte 0x0000475F _080A6C04: .4byte 0x00005001 _080A6C08: .4byte gBG3Buffer _080A6C0C: .4byte gPlayerState -_080A6C10: .4byte gScreenTransition +_080A6C10: .4byte gRoomTransition .ifndef EU _080A6C14: .4byte 0x000001FB .endif @@ -3967,7 +3967,7 @@ _080A6C3C: cmp r0, #8 bne _080A6C6A _080A6C50: - bl sub_080A71DC + bl Subtask_Exit b _080A6C6A .align 2, 0 _080A6C58: .4byte gInput @@ -3985,8 +3985,8 @@ _080A6C6A: _080A6C6C: .4byte 0x00000103 _080A6C70: .4byte gMenu - thumb_func_start sub_080A6C74 -sub_080A6C74: @ 0x080A6C74 + thumb_func_start Subtask_FastTravel +Subtask_FastTravel: @ 0x080A6C74 push {r4, lr} bl FlushSprites ldr r1, _080A6CA0 @ =gUnk_08128F24 @@ -4002,7 +4002,7 @@ sub_080A6C74: @ 0x080A6C74 bl sub_080A6E70 _080A6C94: bl sub_080A6498 - bl sub_080AD918 + bl CopyOAM pop {r4, pc} .align 2, 0 _080A6CA0: .4byte gUnk_08128F24 @@ -4241,7 +4241,7 @@ _080A6E18: ldrb r1, [r1] ldrh r2, [r0, #0x12] bl sub_080042D0 - bl sub_080A71DC + bl Subtask_Exit ldr r1, _080A6E40 @ =gUnk_02034490 movs r0, #0 strb r0, [r1] @@ -4677,8 +4677,8 @@ sub_080A7114: @ 0x080A7114 .align 2, 0 _080A7120: .4byte gMenu - thumb_func_start sub_080A7124 -sub_080A7124: @ 0x080A7124 + thumb_func_start ResetUI +ResetUI: @ 0x080A7124 push {lr} ldr r0, _080A7134 @ =gUnk_02032EC0 movs r1, #0xed @@ -4773,8 +4773,8 @@ sub_080A71C4: @ 0x080A71C4 .align 2, 0 _080A71D8: .4byte gUnk_02032EC0 - thumb_func_start sub_080A71DC -sub_080A71DC: @ 0x080A71DC + thumb_func_start Subtask_Exit +Subtask_Exit: @ 0x080A71DC push {lr} ldr r1, _080A71F0 @ =gUnk_02032EC0 movs r0, #3 @@ -4805,8 +4805,8 @@ _080A71FE: .align 2, 0 _080A7218: .4byte gMain - thumb_func_start sub_080A721C -sub_080A721C: @ 0x080A721C + thumb_func_start GameMain_Subtask +GameMain_Subtask: @ 0x080A721C push {lr} ldr r0, _080A7248 @ =gUnk_02032EC0 ldrb r1, [r0] @@ -4833,8 +4833,8 @@ _080A7238: _080A7248: .4byte gUnk_02032EC0 _080A724C: .4byte gUnk_0812901C - thumb_func_start sub_080A7250 -sub_080A7250: @ 0x080A7250 + thumb_func_start Subtask_FadeIn +Subtask_FadeIn: @ 0x080A7250 push {r4, lr} ldr r0, _080A72E8 @ =gFadeControl ldrb r0, [r0] @@ -4882,7 +4882,7 @@ sub_080A7250: @ 0x080A7250 bl sub_0805E958 adds r1, r4, #0 subs r1, #0x54 - ldr r0, _080A7314 @ =gScreenTransition + ldr r0, _080A7314 @ =gRoomTransition adds r0, #0x2f ldrb r0, [r0] strb r0, [r1, #0xd] @@ -4915,14 +4915,14 @@ _080A7304: .4byte gPaletteList _080A7308: .4byte gRoomControls _080A730C: .4byte gUnk_03000420 _080A7310: .4byte gActiveScriptInfo -_080A7314: .4byte gScreenTransition +_080A7314: .4byte gRoomTransition _080A7318: .4byte gPlayerState _080A731C: .4byte gCurrentRoomProperties _080A7320: .4byte gUnk_02025EB0 _080A7324: .4byte gUnk_0200B650 - thumb_func_start sub_080A7328 -sub_080A7328: @ 0x080A7328 + thumb_func_start Subtask_Init +Subtask_Init: @ 0x080A7328 push {r4, lr} ldr r0, _080A7388 @ =gFadeControl ldrb r0, [r0] @@ -4950,14 +4950,14 @@ sub_080A7328: @ 0x080A7328 bl MessageInitialize bl ResetPalettes movs r0, #0 - bl sub_0801CFA8 + bl ResetPaletteTable ldr r0, _080A739C @ =gGFXSlots movs r2, #1 strb r2, [r0] ldr r1, _080A73A0 @ =gUnk_02032EC0 movs r0, #2 strb r0, [r1] - ldr r0, _080A73A4 @ =gScreenTransition + ldr r0, _080A73A4 @ =gRoomTransition adds r0, #0x30 strb r2, [r0] _080A7384: @@ -4970,10 +4970,10 @@ _080A7394: .4byte gUnk_03000420 _080A7398: .4byte gActiveScriptInfo _080A739C: .4byte gGFXSlots _080A73A0: .4byte gUnk_02032EC0 -_080A73A4: .4byte gScreenTransition +_080A73A4: .4byte gRoomTransition - thumb_func_start sub_080A73A8 -sub_080A73A8: @ 0x080A73A8 + thumb_func_start Subtask_FadeOut +Subtask_FadeOut: @ 0x080A73A8 push {r4, r5, lr} ldr r0, _080A7468 @ =gFadeControl ldrb r0, [r0] @@ -5081,17 +5081,17 @@ _080A74AE: movs r2, #0 movs r0, #4 strb r0, [r1] - ldr r0, _080A74C4 @ =gScreenTransition + ldr r0, _080A74C4 @ =gRoomTransition adds r0, #0x30 strb r2, [r0] _080A74BC: pop {r4, r5, pc} .align 2, 0 _080A74C0: .4byte gUnk_02032EC0 -_080A74C4: .4byte gScreenTransition +_080A74C4: .4byte gRoomTransition - thumb_func_start sub_080A74C8 -sub_080A74C8: @ 0x080A74C8 + thumb_func_start Subtask_Die +Subtask_Die: @ 0x080A74C8 push {lr} bl sub_080A74F4 ldr r0, _080A74E8 @ =gFadeControl @@ -5122,17 +5122,17 @@ sub_080A74F4: @ 0x080A74F4 bl FlushSprites bl UpdateEntities bl UpdateManagers - bl sub_0801C344 - bl sub_0801C208 - bl sub_08078CB4 - bl sub_080AD9B0 - bl sub_080AD918 + bl DrawUI + bl DrawOAMCmd + bl UpdateCarriedObject + bl DrawEntities + bl CopyOAM pop {pc} .align 2, 0 _080A7524: .4byte gMain - thumb_func_start sub_080A7528 -sub_080A7528: @ 0x080A7528 + thumb_func_start Subtask_Update +Subtask_Update: @ 0x080A7528 push {lr} ldr r1, _080A753C @ =gUnk_08129030 ldr r0, _080A7540 @ =gUnk_02032EC0 diff --git a/asm/ui.s b/asm/ui.s index 8cb7208b..b7bd7df2 100644 --- a/asm/ui.s +++ b/asm/ui.s @@ -35,8 +35,8 @@ _0801C1F8: _0801C200: .4byte gUnk_0200AF34 _0801C204: .4byte gUnk_080C8F8C - thumb_func_start sub_0801C208 -sub_0801C208: @ 0x0801C208 + thumb_func_start DrawOAMCmd +DrawOAMCmd: @ 0x0801C208 push {r4, r5, lr} movs r5, #0 ldr r4, _0801C250 @ =gOamCmd @@ -195,8 +195,8 @@ _0801C338: .4byte gUnk_085C4620 _0801C33C: .4byte 0x84000008 _0801C340: .4byte 0x06010020 - thumb_func_start sub_0801C344 -sub_0801C344: @ 0x0801C344 + thumb_func_start DrawUI +DrawUI: @ 0x0801C344 push {r4, r5, lr} ldr r4, _0801C36C @ =gUnk_0200AF00 ldrb r1, [r4, #1] @@ -214,8 +214,8 @@ sub_0801C344: @ 0x0801C344 .align 2, 0 _0801C36C: .4byte gUnk_0200AF00 - thumb_func_start sub_0801C370 -sub_0801C370: @ 0x0801C370 + thumb_func_start InitUI +InitUI: @ 0x0801C370 push {r4, r5, r6, lr} cmp r0, #0 bne _0801C390 @@ -267,7 +267,7 @@ _0801C398: adds r0, r3, #0 orrs r0, r2 strh r0, [r1] - ldr r1, _0801C484 @ =gUnk_03000000 + ldr r1, _0801C484 @ =gOAMControls ldr r2, _0801C488 @ =0x00000427 adds r0, r1, r2 movs r2, #1 @@ -333,7 +333,7 @@ _0801C474: .4byte gSave _0801C478: .4byte gBG0Buffer _0801C47C: .4byte gScreen _0801C480: .4byte 0x00001F0C -_0801C484: .4byte gUnk_03000000 +_0801C484: .4byte gOAMControls _0801C488: .4byte 0x00000427 _0801C48C: .4byte 0x00000426 _0801C490: .4byte 0x0000042E diff --git a/asm/veneer.s b/asm/veneer.s index 34e292f2..d265b16f 100644 --- a/asm/veneer.s +++ b/asm/veneer.s @@ -79,8 +79,8 @@ _08000144EU: .endif .endif - thumb_func_start sub_08000108 -sub_08000108: @ 0x08000108 + thumb_func_start UpdateScrollVram +UpdateScrollVram: @ 0x08000108 push {r4, lr} ldr r0, _080001E8 @ =gUpdateVisibleTiles ldrb r1, [r0] diff --git a/asm/vram.s b/asm/vram.s index 79c3808f..89e66f11 100644 --- a/asm/vram.s +++ b/asm/vram.s @@ -924,7 +924,7 @@ _080AE2B4: movs r4, #0 ldr r0, _080AE318 @ =0xFFFFFC00 mov sl, r0 - ldr r5, _080AE31C @ =gUnk_03000000 + ldr r5, _080AE31C @ =gOAMControls adds r5, #0x24 ldr r1, _080AE320 @ =0x000003FF mov sb, r1 @@ -948,7 +948,7 @@ _080AE2D2: orrs r0, r1 strh r0, [r5] mov r2, r8 - ldr r1, _080AE31C @ =gUnk_03000000 + ldr r1, _080AE31C @ =gOAMControls strb r2, [r1] _080AE2F8: adds r5, #8 @@ -965,7 +965,7 @@ _080AE30C: .4byte gGFXSlots _080AE310: .4byte gUnk_020000C0 _080AE314: .4byte gPlayerEntity _080AE318: .4byte 0xFFFFFC00 -_080AE31C: .4byte gUnk_03000000 +_080AE31C: .4byte gOAMControls _080AE320: .4byte 0x000003FF thumb_func_start sub_080AE324 diff --git a/data/data_080FC8A4.s b/data/data_080FC8A4.s index ce05a4c6..77171f38 100644 --- a/data/data_080FC8A4.s +++ b/data/data_080FC8A4.s @@ -59,20 +59,20 @@ gUnk_080FC9C8:: @ 080FC9C8 .4byte sub_080518E4 gUnk_080FC9D8:: @ 080FC9D8 - .4byte sub_080519B0 - .4byte sub_08051A14 - .4byte sub_08051A90 + .4byte GameTask_Transition + .4byte GameTask_Init + .4byte GameTask_Main .4byte sub_08051D2C gUnk_080FC9E8:: @ 080FC9E8 - .4byte InitializeNewRoom - .4byte sub_08051AF0 - .4byte sub_08051BD0 - .4byte sub_08051CF0 - .4byte sub_0804AAB8 - .4byte sub_08051CA8 + .4byte GameMain_InitRoom + .4byte GameMain_ChangeRoom + .4byte GameMain_Update + .4byte GameMain_ChangeArea + .4byte GameMain_MinishPortal + .4byte GameMain_BarrelUpdate .4byte 00000000 - .4byte sub_080A721C + .4byte GameMain_Subtask gUnk_080FCA08:: @ 080FCA08 .4byte sub_08051E84 diff --git a/data/data_08128BF4.s b/data/data_08128BF4.s index 79404fac..c9612a8d 100644 --- a/data/data_08128BF4.s +++ b/data/data_08128BF4.s @@ -136,21 +136,21 @@ gUnk_08129004:: @ 08129004 .incbin "data_08127280/gUnk_08129004.bin" gUnk_0812901C:: @ 0812901C - .4byte sub_080A7250 - .4byte sub_080A7328 - .4byte sub_080A7528 - .4byte sub_080A73A8 - .4byte sub_080A74C8 + .4byte Subtask_FadeIn + .4byte Subtask_Init + .4byte Subtask_Update + .4byte Subtask_FadeOut + .4byte Subtask_Die gUnk_08129030:: @ 08129030 - .4byte sub_080A71DC - .4byte sub_080A4EA0 - .4byte sub_080A71DC - .4byte sub_080A64FC - .4byte DrawKinstoneMenu - .4byte sub_08051E68 - .4byte sub_0804AB54 - .4byte sub_080A45A4 - .4byte sub_08054870 - .4byte sub_080A6C74 - .4byte sub_080A6AB8 + .4byte Subtask_Exit + .4byte Subtask_PauseMenu + .4byte Subtask_Exit + .4byte Subtask_MapHint + .4byte Subtask_KinstoneMenu + .4byte Subtask_ChuchuCutscene + .4byte Subtask_PortalCutscene + .4byte Subtask_FigurineMenu + .4byte Subtask_WorldEvent + .4byte Subtask_FastTravel + .4byte Subtask_LocalMapHint diff --git a/include/asm.h b/include/asm.h index 5fe8a9e0..fed7a35b 100644 --- a/include/asm.h +++ b/include/asm.h @@ -9,7 +9,7 @@ extern u32 GetTileTypeByEntity(struct Entity_*); extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer); extern u32 GetTileType(u32 pos, u32 layer); extern void SetTile(u32 index, u32 position, u32 layer); -extern void sub_08000108(void); +extern void UpdateScrollVram(void); extern u32 sub_080002D0(struct Entity_*); extern void LoadResourceAsync(const void*, u32, u32); extern void sub_08001242(struct Entity_*); diff --git a/include/color.h b/include/color.h index 14ab24a9..9ff53264 100644 --- a/include/color.h +++ b/include/color.h @@ -10,7 +10,7 @@ typedef struct { } Palette; extern Palette gPaletteList[]; -void sub_0801CFA8(u32 a1); +void ResetPaletteTable(u32 a1); void sub_0801D000(u32 a1); void LoadObjPalette(struct Entity_*, u32); void UnloadOBJPalette(struct Entity_* entity); diff --git a/include/entity.h b/include/entity.h index e3fca5d4..898661f8 100644 --- a/include/entity.h +++ b/include/entity.h @@ -164,8 +164,8 @@ extern LinkedList gEntityLists[9]; enum { ENT_DID_INIT = 0x1, ENT_SCRIPTED = 0x2, - ENT_ASLEEP = 0x10, - ENT_20 = 0x20, + ENT_DELETED = 0x10, + ENT_PERSIST = 0x20, ENT_COLLIDE = 0x80, }; @@ -173,8 +173,8 @@ enum { #define COLLISION_ON(entity) ((entity)->flags |= ENT_COLLIDE) #define TILE(x, y) \ - (((((x) - gRoomControls.roomOriginX) >> 4) & 0x3F) | \ - ((((y) - gRoomControls.roomOriginY) >> 4) & 0x3F) << 6) + (((((x) - gRoomControls.origin_x) >> 4) & 0x3F) | \ + ((((y) - gRoomControls.origin_y) >> 4) & 0x3F) << 6) #define COORD_TO_TILE(entity) \ TILE((entity)->x.HALF.HI, (entity)->y.HALF.HI) diff --git a/include/fileScreen.h b/include/fileselect.h similarity index 98% rename from include/fileScreen.h rename to include/fileselect.h index 86f4e8d0..d2a2f52e 100644 --- a/include/fileScreen.h +++ b/include/fileselect.h @@ -63,7 +63,7 @@ extern struct_02019EE0 gUnk_02019EE0; extern void sub_08056FEC(u32, struct_020227E8*); extern void sub_0805F46C(u32, void*); extern void RecoverUI(u32 bottomPt, u32 topPt); -extern void sub_08080668(void); +extern void ClearTilemaps(void); extern void sub_0805194C(u32); extern struct_02036540* sub_0805F2C8(void); extern void sub_0805F7DC(u32, struct_02036540*); diff --git a/include/functions.h b/include/functions.h index 0a6c0ca9..a3716730 100644 --- a/include/functions.h +++ b/include/functions.h @@ -61,8 +61,8 @@ extern void sub_08077F50(ItemBehavior* beh, u32 arg1); extern void sub_0807AA80(Entity*); extern s32 sub_0807887C(Entity*, u32, u32); extern s32 sub_08078904(); -extern void sub_080AD9B0(void); -extern void sub_080AD918(void); +extern void DrawEntities(void); +extern void CopyOAM(void); extern void sub_0801E104(void); extern void sub_080A57F4(void); extern void sub_08030118(u32); @@ -105,7 +105,7 @@ extern void sub_0801E1B8(u32, u32); extern void sub_080A3B74(void); extern void sub_080A4054(void); extern void sub_0801C1D4(void); -extern void sub_0801C208(void); +extern void DrawOAMCmd(void); extern void sub_080A4D34(void); extern u32 sub_080A4494(void); extern void sub_080A4528(void); @@ -152,7 +152,7 @@ extern void sub_0807B7D8(u32, u32, u32); extern void sub_0800451C(Entity*); extern u32 sub_080002F0(u32, u32, u32); extern u32 sub_080040D8(Entity*, u8*, s32, s32); -extern void sub_08053320(); +extern void LoadGfxGroups(); extern void SetColor(u32, u32); extern u32 sub_0805F8F8(u32); extern void sub_08002724(void*, u8*); diff --git a/include/game.h b/include/game.h index 8fb5253f..5155376b 100644 --- a/include/game.h +++ b/include/game.h @@ -4,6 +4,24 @@ #include "global.h" #include "area.h" +enum { + GAMETASK_TRANSITION, + GAMETASK_INIT, + GAMETASK_MAIN, + GAMETASK_EXIT, +}; + +enum { + GAMEMAIN_INITROOM, + GAMEMAIN_CHANGEROOM, + GAMEMAIN_UPDATE, + GAMEMAIN_CHANGEAREA, + GAMEMAIN_MINISHPORTAL, + GAMEMAIN_BARRELUPDATE, + GAMEMAIN_RESERVED, + GAMEMAIN_SUBTASK, +}; + void ChangeLightLevel(s32); void SetPopupState(u32 type, u32 choice_idx); @@ -39,7 +57,7 @@ void DisplayEzloMessage(void); void sub_08052CA4(u32 area, u32 room, u32 x, u32 y); void sub_08052CD0(u32 area, u32 room, u32 x, u32 y); -void sub_08052CFC(void); +void InitRoom(void); /** * @brief Get bank offset for area @@ -50,7 +68,7 @@ RoomResInfo* GetCurrentRoomInfo(void); void sub_08052EA0(void); void sub_08052FD8(u32 room, u32 area); void sub_08053250(void); -void sub_08053320(void); +void LoadGfxGroups(void); void sub_080533CC(void); void sub_08053494(void); void sub_080534AC(void); diff --git a/include/main.h b/include/main.h index 0e830bab..988b4233 100644 --- a/include/main.h +++ b/include/main.h @@ -25,12 +25,12 @@ typedef enum { #endif enum { - SCREEN_INTRO, - SCREEN_CHOOSE_FILE, - SCREEN_GAMEPLAY, - SCREEN_GAME_OVER, - SCREEN_CREDITS, - SCREEN_DEBUG_TEXT, + TASK_TITLE, + TASK_FILE_SELECT, + TASK_GAME, + TASK_GAMEOVER, + TASK_STAFFROLL, + TASK_DEBUG, }; enum { @@ -41,9 +41,9 @@ enum { typedef struct { vu8 interruptFlag; u8 sleepStatus; - u8 screen; - u8 funcIndex; - u8 transition; + u8 task; + u8 state; + u8 substate; u8 field_0x5; u8 muteAudio; u8 field_0x7; @@ -75,7 +75,7 @@ extern UI gUnk_02032EC0; /** * @brief Begin a subroutine. */ -void InitScreen(u32 screen); +void SetTask(u32 screen); void InitDMA(void); diff --git a/include/manager.h b/include/manager.h index 44852146..28a27922 100644 --- a/include/manager.h +++ b/include/manager.h @@ -130,10 +130,10 @@ typedef struct Manager11 { typedef struct { u16 unk_00; - u8 source_roomID; + u8 source_room; u8 unk_03; - u8 target_areaID; - u8 target_roomID; + u8 target_area; + u8 target_room; u16 unk_06; } DiggingCaveEntrance; diff --git a/include/message.h b/include/message.h index 19d33ee4..c8d3e7b9 100644 --- a/include/message.h +++ b/include/message.h @@ -39,7 +39,7 @@ typedef struct { Message message; Token curToken; WStruct _50; - char playerName[10]; + char player_name[10]; u8 _66[0x10]; u8 _76; u8 _77[0x11]; diff --git a/include/player.h b/include/player.h index 36fd7303..bf9e151e 100644 --- a/include/player.h +++ b/include/player.h @@ -280,7 +280,7 @@ extern u16 gWalletSizes[]; extern PlayerState gPlayerState; extern Entity gPlayerEntity; -u32 sub_080705AC(void); +u32 CheckPlayerActivity(void); void SetPlayerControl(PlayerControlMode mode); void ResetPlayer(void); void ResetPlayerVelocity(void); diff --git a/include/room.h b/include/room.h index bb09730f..074cc8d5 100644 --- a/include/room.h +++ b/include/room.h @@ -4,13 +4,6 @@ #include "global.h" #include "entity.h" -/* -typedef struct { - u8 areaID; - u8 roomID; -} RoomID; -*/ - enum RoomTransition { TRANSITION_DEFAULT, TRANSITION_CUT, @@ -24,25 +17,30 @@ enum RoomTransition { TRANSITION_CUT_FAST, }; +enum RoomReloadType { + RELOAD_ALL = 1, + RELOAD_ENTITIES = 2, +}; + typedef struct { - /*0x00*/ u16 unk2; + /*0x00*/ u16 reload_flags; /*0x02*/ u8 unk3; /*0x03*/ u8 unk4; - /*0x04*/ u8 areaID; - /*0x05*/ u8 roomID; - /*0x06*/ u16 roomOriginX; - /*0x08*/ u16 roomOriginY; - /*0x0A*/ s16 roomScrollX; - /*0x0C*/ s16 roomScrollY; + /*0x04*/ u8 area; + /*0x05*/ u8 room; + /*0x06*/ u16 origin_x; + /*0x08*/ u16 origin_y; + /*0x0A*/ s16 scroll_x; + /*0x0C*/ s16 scroll_y; /*0x0E*/ u8 unk5; /*0x0F*/ u8 scroll_flags; // 0x2 = ??, 0x4 = camera scrolling - /*0x10*/ u8 unk_10; + /*0x10*/ u8 scroll_direction; /*0x11*/ s8 oam_offset_x; /*0x12*/ s8 oam_offset_y; /*0x13*/ u8 unk13; - /*0x14*/ u8 screenShakeMagnitude; + /*0x14*/ u8 shake_magnitude; /*0x15*/ u8 unk7; - /*0x16*/ u16 screenShakeTime; + /*0x16*/ u16 shake_duration; /*0x18*/ u16 filler2[3]; /*0x1E*/ u16 width; /*0x20*/ u16 height; @@ -52,33 +50,33 @@ typedef struct { /*0x26*/ u8 filler26[2]; /*0x28*/ union SplitWord bg3OffsetX; /*0x2C*/ union SplitWord bg3OffsetY; - /*0x30*/ Entity* cameraTarget; + /*0x30*/ Entity* camera_target; } RoomControls; extern RoomControls gRoomControls; typedef struct { - u8 field_0x0; - u8 filler_0x1; - u8 field_0x2; - u8 field_0x3; - u8 field_0x4; - u8 filler1[1]; - u8 shopItemType; - u8 shopItemType2; - u8 field_0x8; - u8 field_0x9; - u8 unk2; - u8 filler2; - s16 lightLevel; - u8 filler3[2]; - u8 unk_10[4]; - u32 flags; - u32 unk3; - u8 filler4[48]; - u8 filler5[28]; - u32 animFlags; - void* field_0x6c[8]; - void* field_0x8c[16]; + /* 0x00 */ u8 field_0x0; + /* 0x01 */ u8 filler_0x1; + /* 0x02 */ u8 field_0x2; + /* 0x03 */ u8 field_0x3; + /* 0x04 */ u8 field_0x4; + /* 0x05 */ u8 filler1[1]; + /* 0x06 */ u8 shopItemType; + /* 0x07 */ u8 shopItemType2; + /* 0x08 */ u8 field_0x8; + /* 0x09 */ u8 field_0x9; + /* 0x0a */ u8 unk2; + /* 0x0b */ u8 filler2; + /* 0x0c */ s16 lightLevel; + /* 0x0e */ u8 filler3[2]; + /* 0x10 */ u8 unk_10[4]; + /* 0x14 */ u32 flags; + /* 0x18 */ u32 unk3; + /* 0x1c */ u8 filler4[48]; + /* 0x4c */ u8 filler5[28]; + /* 0x68 */ u32 animFlags; + /* 0x6c */ void* field_0x6c[8]; + /* 0x8c */ void* field_0x8c[16]; } RoomVars; static_assert(sizeof(RoomVars) == 0xCC); extern RoomVars gRoomVars; @@ -112,54 +110,55 @@ typedef struct { // Status of the player's positioning within the scene. typedef struct { - u8 area_next; - u8 room_next; - u8 start_anim; - u8 spawn_type; - s16 start_pos_x; - s16 start_pos_y; - u8 layer; - u8 field_0x15; - u8 dungeon_area; - u8 dungeon_room; - s16 dungeon_x; - s16 dungeon_y; - u16 dungeon_map_x; - u16 dungeon_map_y; - s16 overworld_map_x; - s16 overworld_map_y; - u8 field_0x24[0x8]; -} PlayerWorldStatus; -static_assert(sizeof(PlayerWorldStatus) == 0x20); + /* 0x00 */ u8 area_next; + /* 0x01 */ u8 room_next; + /* 0x02 */ u8 start_anim; + /* 0x03 */ u8 spawn_type; + /* 0x04 */ s16 start_pos_x; + /* 0x06 */ s16 start_pos_y; + /* 0x08 */ u8 layer; + /* 0x09 */ u8 field_0x15; + /* 0x0a */ u8 dungeon_area; + /* 0x0b */ u8 dungeon_room; + /* 0x0c */ s16 dungeon_x; + /* 0x0e */ s16 dungeon_y; + /* 0x10 */ u16 dungeon_map_x; + /* 0x12 */ u16 dungeon_map_y; + /* 0x14 */ s16 overworld_map_x; + /* 0x16 */ s16 overworld_map_y; + /* 0x18 */ u8 field_0x24[0x8]; +} PlayerRoomStatus; +static_assert(sizeof(PlayerRoomStatus) == 0x20); typedef struct { - s32 frameCount; // regular frame count? does anything reset it? - u8 field_0x4[0x2]; - u16 field_0x6; - bool8 transitioningOut; - u8 transitionType; // transition when changing areas - u16 stairs_idx; // seems to be a tile type - PlayerWorldStatus player_status; - u8 field_0x2c[0x9]; - u8 hint_height; - u16 hint_idx; - u8 field_0x38; - u8 field_0x39; - u8 field_0x3a; - u8 field_0x3b; - u8 field_0x3c; - u8 field_0x3d; - u16 field_0x3e; - u16 hurtType; - u16 field_0x42; - u16 field_0x44; - u16 field_0x46; - u16 field_0x48; - u16 field_0x4a; - struct_030010EC minecart_data[4]; - struct_0300110C armos_data; -} ScreenTransition; -extern ScreenTransition gScreenTransition; + /* 0x00 */ s32 frameCount; // regular frame count? does anything reset it? + /* 0x04 */ u8 field_0x4[0x2]; + /* 0x06 */ u16 field_0x6; + /* 0x08 */ bool8 transitioningOut; + /* 0x09 */ u8 type; // transition when changing areas + /* 0x0a */ u16 stairs_idx; // seems to be a tile type + /* 0x0c */ PlayerRoomStatus player_status; + /* 0x2c */ u8 field_0x2c[0x9]; + /* 0x35 */ u8 hint_height; + /* 0x36 */ u16 hint_idx; + /* 0x38 */ u8 field_0x38; + /* 0x39 */ u8 field_0x39; + /* 0x3a */ u8 field_0x3a; + /* 0x3b */ u8 field_0x3b; + /* 0x3c */ u8 field_0x3c; + /* 0x3d */ u8 field_0x3d; + /* 0x3e */ u16 field_0x3e; + /* 0x40 */ u16 hurtType; + /* 0x42 */ u16 field_0x42; + /* 0x44 */ u16 field_0x44; + /* 0x46 */ u16 field_0x46; + /* 0x48 */ u16 field_0x48; + /* 0x4a */ u16 field_0x4a; + /* 0x4c */ struct_030010EC minecart_data[4]; + /* 0x6c */ struct_0300110C armos_data; +} RoomTransition; +static_assert(sizeof(RoomTransition) == 0xB0); +extern RoomTransition gRoomTransition; typedef struct { u8 type; @@ -186,13 +185,13 @@ typedef enum { DESTRUCTIBLE_TILE, GRASS_DROP_CHANGER, LOCATION_CHANGER, - TILE_ENTITY_D + TILE_ENTITY_D, } TileEntityType; extern void SetTileType(u32, u32, u32); extern void InitScreenShake(u32 time, u32 magnitude); -void sub_0804AFF4(void); +void CallRoomProp5And7(void); void LoadRoom(void); void SetCurrentRoomPropertyList(u32 area, u32 room); extern void* GetCurrentRoomProperty(u32); diff --git a/include/save.h b/include/save.h index 9dbba7ff..2e8015e1 100644 --- a/include/save.h +++ b/include/save.h @@ -23,10 +23,10 @@ typedef enum { extern SaveResult HandleSave(u32 arg0); typedef struct { - /*0x000*/ u8 unk_00; - /*0x000*/ u8 unk_01; - /*0x002*/ u8 messageSpeed; - /*0x003*/ u8 brightnessPref; + /*0x000*/ u8 invalid; + /*0x000*/ u8 initialized; + /*0x002*/ u8 msg_speed; + /*0x003*/ u8 brightness; /*0x004*/ u8 filler4[0x2]; /*0x006*/ u8 unk6; /*0x007*/ u8 unk7; @@ -37,9 +37,9 @@ typedef struct { /*0x050*/ u32 unk50; /*0x054*/ u8 filler54[0xC]; /*0x060*/ u32 areaVisitFlags[8]; - /*0x080*/ u8 playerName[FILENAME_LENGTH]; + /*0x080*/ char name[FILENAME_LENGTH]; /*0x086*/ u8 filler86[0x2]; - /*0x088*/ PlayerWorldStatus saved_status; + /*0x088*/ PlayerRoomStatus saved_status; /*0x0A8*/ Stats stats; /*0x0D0*/ u8 fillerD0[0x48]; /*0x118*/ u8 unk118[0x13]; @@ -51,7 +51,8 @@ typedef struct { /*0x25C*/ u8 flags[0x200]; /*0x45C*/ u8 unk45C[0x10]; /*0x46C*/ u8 unk46C[0x20]; - /*0x48C*/ u32 unk48C[8]; + /*0x48C*/ u32 unk48C[7]; + /*0x4A8*/ u32 demo_timer; /*0x4AC*/ u8 filler4ac[0x8]; } SaveFile; @@ -59,9 +60,9 @@ extern SaveFile gSave; u32 InitSaveData(void); -u32 Write_02000000(struct_02000000*); +u32 Write_02000000(SaveHeader*); s32 ReadSaveFile(u32, SaveFile*); -u32 Read_02000000(struct_02000000*); +u32 Read_02000000(SaveHeader*); void SetFileStatusDeleted(u32 index); extern const char gUnk_0811E470[]; diff --git a/include/structures.h b/include/structures.h index 1f368dcd..c6c8f80b 100644 --- a/include/structures.h +++ b/include/structures.h @@ -8,15 +8,15 @@ typedef struct { int signature; u8 saveFileId; - u8 messageSpeed; - u8 brightnessPref; - u8 gameLanguage; + u8 msg_speed; + u8 brightness; + u8 language; u8 name[6]; - u8 _e; + u8 invalid; u8 _f; -} struct_02000000; -#define gSaveHeader ((struct_02000000*)(0x2000000)) -// extern struct_02000000 gSaveHeader; +} SaveHeader; +#define gSaveHeader ((SaveHeader*)(0x2000000)) +// extern SaveHeader gSaveHeader; typedef struct { u8 unk_00; @@ -39,13 +39,13 @@ static_assert(sizeof(struct_02000010) == 0x20); extern struct_02000010 gUnk_02000010; typedef struct { - u16 transitionType; + u16 type; u8 field_0x2[4]; s16 playerXPos; s16 playerYPos; u8 field_0xa; - u8 areaID; - u8 roomID; + u8 area; + u8 room; u8 playerLayer; u8 field_0xe; u8 playerState; @@ -164,13 +164,8 @@ typedef struct { u16 _6; u8 _0[0x18]; struct OamData oam[0x80]; - OAMObj unk[0x100]; - u8 fill[10]; - u8 _426; - u8 _427; - u8 _428[6]; - u8 _42e; -} OAMSettings; -extern OAMSettings gUnk_03000000; + OAMObj unk[0xA0]; /* todo: affine */ +} OAMControls; +extern OAMControls gOAMControls; #endif diff --git a/linker.ld b/linker.ld index 9b1bf7e4..bd9ec0de 100644 --- a/linker.ld +++ b/linker.ld @@ -90,7 +90,7 @@ SECTIONS { . = 0x00022830; gUnk_02022830 = .; . = 0x00024030; gMessageChoices = .; . = 0x00024048; gUnk_02024048 = .; - . = 0x00024050; gUnk_02024050 = .; + . = 0x00024050; gRoomMemory = .; . = 0x00024090; gUnk_02024090 = .; . = 0x00024490; gGFXSlots = .; . = 0x00024494; gUnk_02024494 = .; @@ -158,7 +158,7 @@ SECTIONS { } >ewram iwram (NOLOAD) : ALIGN(4) { - . = 0x00000000; gUnk_03000000 = .; + . = 0x00000000; gOAMControls = .; . = 0x00000020; gUnk_03000020 = .; . = 0x00000420; gUnk_03000420 = .; . = 0x00000B80; gUnk_03000B80 = .; @@ -173,7 +173,7 @@ SECTIONS { . = 0x00001000; gMain = .; . = 0x00001010; gOamCmd = .; . = 0x00001020; gUnk_03001020 = .; - . = 0x000010A0; gScreenTransition = .; + . = 0x000010A0; gRoomTransition = .; . = 0x00001150; gRand = .; . = 0x00001160; gPlayerEntity = .; . = 0x000011E8; gUnk_030011E8 = .; @@ -436,7 +436,7 @@ SECTIONS { src/room.o(.text); src/roomInit.o(.text); src/fade.o(.text); - src/fileScreen.o(.text); + src/fileselect.o(.text); src/game.o(.text); asm/code_080526F8.o(.text); asm/modBombs.o(.text); @@ -1120,7 +1120,7 @@ SECTIONS { data/data_080D3D94.o(.rodata); data/map/entity_headers.o(.rodata); data/data_080FC3C4.o(.rodata); - src/fileScreen.o(.rodata); + src/fileselect.o(.rodata); data/data_080FC8A4.o(.rodata); src/game.o(.rodata); data/data_080FCAC8.o(.rodata); diff --git a/src/affine.c b/src/affine.c index 3339cc09..9656d7f3 100644 --- a/src/affine.c +++ b/src/affine.c @@ -21,42 +21,42 @@ NONMATCH("asm/non_matching/vram/sub_080AD8F0.inc", void* sub_080AD8F0(u32 sprite END_NONMATCH void FlushSprites(void) { - gUnk_03000000.updated = 0; + gOAMControls.updated = 0; } -NONMATCH("asm/non_matching/vram/sub_080AD918.inc", void sub_080AD918(void)) { +NONMATCH("asm/non_matching/vram/sub_080AD918.inc", void CopyOAM(void)) { s32 rem; u16* d; if (gMain.ticks.HALF.LO == 0) { - gUnk_03000000.unk[0x20].unk0 = gMain.ticks.HALF.LO; - gUnk_03000000.unk[0x48].unk4 = gMain.ticks.HALF.LO; - gUnk_03000000.unk[0x71].unk0 = gMain.ticks.HALF.LO; - gUnk_03000000.unk[0x99].unk4 = gMain.ticks.HALF.LO; + gOAMControls.unk[0x20].unk0 = gMain.ticks.HALF.LO; + gOAMControls.unk[0x48].unk4 = gMain.ticks.HALF.LO; + gOAMControls.unk[0x71].unk0 = gMain.ticks.HALF.LO; + gOAMControls.unk[0x99].unk4 = gMain.ticks.HALF.LO; } else { gMain.ticks.HALF.LO--; } - rem = 0x80 - gUnk_03000000.updated; - for (d = (u16*)&gUnk_03000000.oam[0x80 + gUnk_03000000.updated]; rem > 0; rem--) { + rem = 0x80 - gOAMControls.updated; + for (d = (u16*)&gOAMControls.oam[0x80 + gOAMControls.updated]; rem > 0; rem--) { *d = 0x2A0; (u8*)d += 6; } - if (gUnk_03000000.unk[0].unk7) { - gUnk_03000000.unk[0].unk7 = 0; - ObjAffineSet((struct ObjAffineSrcData*)gUnk_03000000.unk, &gUnk_03000000.oam[0].affineParam, 32, 8); + if (gOAMControls.unk[0].unk7) { + gOAMControls.unk[0].unk7 = 0; + ObjAffineSet((struct ObjAffineSrcData*)gOAMControls.unk, &gOAMControls.oam[0].affineParam, 32, 8); } - gUnk_03000000.field_0x0 = 1; + gOAMControls.field_0x0 = 1; } END_NONMATCH -void sub_080AD9B0(void) { +void DrawEntities(void) { void (*fn)(void); - gUnk_03000000._0[6] = gScreenTransition.field_0x2c[3] ? 15 : 0; - gUnk_03000000._4 = gRoomControls.aff_x + gRoomControls.roomScrollX; - gUnk_03000000._6 = gRoomControls.aff_y + gRoomControls.roomScrollY; - gUnk_03000000.field_0x1++; + gOAMControls._0[6] = gRoomTransition.field_0x2c[3] ? 15 : 0; + gOAMControls._4 = gRoomControls.aff_x + gRoomControls.scroll_x; + gOAMControls._6 = gRoomControls.aff_y + gRoomControls.scroll_y; + gOAMControls.field_0x1++; fn = &gUnk_03006164; fn(); } diff --git a/src/code_08049CD4.c b/src/code_08049CD4.c index c7012cfa..68f78d10 100644 --- a/src/code_08049CD4.c +++ b/src/code_08049CD4.c @@ -1,13 +1,13 @@ #include "global.h" extern u32* gUnk_020354B0; -extern u32 gUnk_02024050; +extern u32 gRoomMemory; extern void MemFill32(u32, void*, u32); -void sub_08049CD4() { - MemFill32(0xFFFFFFFF, &gUnk_02024050, 0x40); - gUnk_020354B0 = &gUnk_02024050; +void ClearRoomMemory() { + MemFill32(0xFFFFFFFF, &gRoomMemory, 0x40); + gUnk_020354B0 = &gRoomMemory; } void sub_08049CF4(u8* arg0) { diff --git a/src/code_0805436C.c b/src/code_0805436C.c index eade294e..a1ef817c 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -149,7 +149,7 @@ NONMATCH("asm/non_matching/sub_08054524.inc", void sub_08054524(void)) { bVar1 = gArea.locationIndex; if (gArea.locationIndex == 0) { - bVar1 = gScreenTransition.player_status.field_0x24[0xa]; + bVar1 = gRoomTransition.player_status.field_0x24[0xa]; } if (bVar1 > 0x16) { bVar1 = 0; @@ -263,7 +263,7 @@ u32 CreateItemDrop(Entity* arg0, u32 itemID, u32 itemParameter) { } */ -void sub_08054870(void) { +void Subtask_WorldEvent(void) { #if !(defined(DEMO_USA) || defined(DEMO_JP)) gUnk_080FE2A0[gMenu.menuType](); #endif diff --git a/src/code_0805EC04.c b/src/code_0805EC04.c index 1dfb2465..93b41d3f 100644 --- a/src/code_0805EC04.c +++ b/src/code_0805EC04.c @@ -4,7 +4,7 @@ bool32 sub_0805EC04(Entity* this) { u32 i = 1; - OAMSettings* temp = &gUnk_03000000; + OAMControls* temp = &gOAMControls; u32 j = 1; for (; i < 0x20; i++) { if (temp->unk[i].unk6 == 0) { @@ -19,13 +19,13 @@ bool32 sub_0805EC04(Entity* this) { void sub_0805EC60(Entity* this) { u8 temp; - OAMSettings* temp2; + OAMControls* temp2; if (this->spriteRendering.b0 != 0) { this->spriteRendering.b0 = 0; temp = this->spriteOrientation.b1; this->spriteOrientation.b1 = 0; - temp2 = &gUnk_03000000; + temp2 = &gOAMControls; temp2->unk[temp].unk6 = 0; } } @@ -35,9 +35,9 @@ ASM_FUNC("asm/non_matching/sub_0805EC9C.inc", bool32 sub_0805EC9C(Entity* ent, u void sub_0805ECEC(int param_1, u32 param_2, u32 param_3, u32 param_4) { u16* temp; - gUnk_03000000.unk[0].unk7 = 1; + gOAMControls.unk[0].unk7 = 1; - temp = &gUnk_03000000.unk[param_1].unk0; + temp = &gOAMControls.unk[param_1].unk0; temp[0] = param_2; temp[1] = param_3; temp[2] = param_4; diff --git a/src/color.c b/src/color.c index 8a69184a..4a5e0ed5 100644 --- a/src/color.c +++ b/src/color.c @@ -7,7 +7,7 @@ void LoadObjPaletteAtIndex(u32 a1, u32 a2); static void sub_0801CFD0(u32 a1); -void sub_0801CFA8(u32 a1) { +void ResetPaletteTable(u32 a1) { u32 i; MemClear(gPaletteList, 0x40); diff --git a/src/common.c b/src/common.c index 2a8fef53..ef97b516 100644 --- a/src/common.c +++ b/src/common.c @@ -6,7 +6,7 @@ #include "main.h" #include "area.h" #include "room.h" -#include "fileScreen.h" +#include "fileselect.h" #include "game.h" #include "flags.h" #include "kinstone.h" @@ -266,17 +266,17 @@ void LoadGfxGroup(u32 group) { case 0xD: return; case 0xE: - if (gSaveHeader->gameLanguage != 0 && gSaveHeader->gameLanguage != 1) { + if (gSaveHeader->language != 0 && gSaveHeader->language != 1) { loadGfx = TRUE; } break; case 0xF: - if (gSaveHeader->gameLanguage != 0) { + if (gSaveHeader->language != 0) { loadGfx = TRUE; } break; default: - if (ctrl == gSaveHeader->gameLanguage) { + if (ctrl == gSaveHeader->language) { loadGfx = TRUE; } break; @@ -350,7 +350,7 @@ void DispReset(bool32 refresh) { } void ClearOAM(void) { - u8* d = (u8*)gUnk_03000000.oam; + u8* d = (u8*)gOAMControls.oam; u8* mem = (u8*)0x07000000; u32 i; for (i = 128; i != 0; --i) { @@ -376,7 +376,7 @@ void ResetScreenRegs(void) { } u32 sub_0801DB94(void) { - return gScreenTransition.player_status.dungeon_map_y >> 11; + return gRoomTransition.player_status.dungeon_map_y >> 11; } ASM_FUNC("asm/non_matching/common/DrawDungeonMap.inc", void DrawDungeonMap(u32 floor, struct_02019EE0* data, u32 size)); diff --git a/src/coord.c b/src/coord.c index 3ee708e6..5eb5c81d 100644 --- a/src/coord.c +++ b/src/coord.c @@ -169,14 +169,14 @@ void LinearMoveUpdate(Entity* ent) { } void sub_0806F704(Entity* ent, u32 a2) { - ent->x.HALF.HI = (((16 * a2) & 0x3F0) | 8) + gRoomControls.roomOriginX; - ent->y.HALF.HI = (((a2 >> 2) & 0x3F0) | 8) + gRoomControls.roomOriginY; + ent->x.HALF.HI = (((16 * a2) & 0x3F0) | 8) + gRoomControls.origin_x; + ent->y.HALF.HI = (((a2 >> 2) & 0x3F0) | 8) + gRoomControls.origin_y; } u32 sub_0806F730(Entity* ent) { u32 tmp = 0x3F; - u32 x = ent->x.HALF.HI + ent->hitbox->offset_x - gRoomControls.roomOriginX; - u32 y = ent->y.HALF.HI + ent->hitbox->offset_y - gRoomControls.roomOriginY; + u32 x = ent->x.HALF.HI + ent->hitbox->offset_x - gRoomControls.origin_x; + u32 y = ent->y.HALF.HI + ent->hitbox->offset_y - gRoomControls.origin_y; switch (ent->animationState) { case 0: y -= ent->hitbox->unk2[3]; @@ -195,8 +195,8 @@ u32 sub_0806F730(Entity* ent) { } u32 sub_0806F798(Entity* ent) { - u32 hitboxX = ent->x.HALF.HI + ent->hitbox->offset_x - gRoomControls.roomOriginX; - u32 hitboxY = ent->y.HALF.HI + ent->hitbox->offset_y - gRoomControls.roomOriginY; + u32 hitboxX = ent->x.HALF.HI + ent->hitbox->offset_x - gRoomControls.origin_x; + u32 hitboxY = ent->y.HALF.HI + ent->hitbox->offset_y - gRoomControls.origin_y; u32 mask = 0x3f; return (mask & (hitboxX >> 4)) + ((mask & (hitboxY >> 4)) << 6); } diff --git a/src/debugScreen.c b/src/debugScreen.c index 9eded432..de141619 100644 --- a/src/debugScreen.c +++ b/src/debugScreen.c @@ -9,8 +9,8 @@ extern void (*const gUnk_08109A30[])(); -void HandleDebugTextScreen() { - gUnk_08109A30[gMain.funcIndex](); +void DebugTask() { + gUnk_08109A30[gMain.state](); } void sub_0805FA04(void) { @@ -27,10 +27,10 @@ void sub_0805FA04(void) { MessageInitialize(); MemClear((void*)&gUnk_02032EC0, sizeof(UI)); MemClear((void*)&gMenu, sizeof(Menu)); - gMenu.unk16 = gSaveHeader->gameLanguage; - sub_08053320(); + gMenu.unk16 = gSaveHeader->language; + LoadGfxGroups(); SetColor(0, 0x1144); - gMain.funcIndex = 1; + gMain.state = 1; InitSoundPlayingInfo(); sub_08050008(); } @@ -56,7 +56,7 @@ void sub_0805FA98(void) { } break; case R_BUTTON: - gSaveHeader->gameLanguage = gMenu.unk16; + gSaveHeader->language = gMenu.unk16; MessageFromTarget(gMenu.unk14 * 0x100 + gMenu.unk15); break; case B_BUTTON: @@ -91,5 +91,5 @@ void sub_0805FA98(void) { } void sub_0805FBC4() { - InitScreen(0); + SetTask(TASK_TITLE); } diff --git a/src/demoScreen.c b/src/demoScreen.c index 2f6ad402..e3185859 100644 --- a/src/demoScreen.c +++ b/src/demoScreen.c @@ -3,7 +3,7 @@ #include "main.h" #include "common.h" #include "message.h" -#include "fileScreen.h" +#include "fileselect.h" #include "screen.h" extern void (*const demoFunctions[])(void); @@ -23,11 +23,11 @@ extern u16 gUnk_08127CC8[4]; extern void* gUnk_08127C98; extern u8 gUnk_08A068BF[129]; -void HandleChooseDemoScreen(void) { +void DemoTask(void) { FlushSprites(); - demoFunctions[gMain.funcIndex](); + demoFunctions[gMain.state](); sub_080A30AC(); - sub_080AD918(); + CopyOAM(); } void sub_080A2E40(void) { @@ -37,11 +37,11 @@ void sub_080A2E40(void) { MessageInitialize(); EraseAllEntities(); ResetPalettes(); - sub_0801CFA8(0); + ResetPaletteTable(0); MemClear(&gUnk_02032EC0, sizeof gUnk_02032EC0); MemClear(&gChooseFileState, sizeof gChooseFileState); MemClear(&gBG0Buffer, sizeof gBG0Buffer); - sub_08053320(); + LoadGfxGroups(); LoadPaletteGroup(0xb5); LoadGfxGroup(0x56); MemCopy(&gUnk_089FD1B4, &gUnk_02017760[0], 0x100); @@ -65,27 +65,27 @@ void sub_080A2E40(void) { *(u8*)(addr + 4) = 0; } sub_080A3198(0, 0); - gMain.funcIndex = 1; + gMain.state = 1; SoundReq(BGM_FILE_SELECT); DoFade(4, 8); } void sub_080A2F8C(void) { if (gFadeControl.active == 0) { - switch (gMain.transition) { + switch (gMain.substate) { case 0: - gMain.transition = 1; + gMain.substate = 1; { // TODO write to 0x2000005 u32 addr = (0x80 << 0x12); *(u8*)(addr + 5) = 1; *(u8*)(addr + 6) = 1; } - gMain.funcIndex = 2; + gMain.state = 2; DoFade(5, 8); break; case 1: - InitScreen(2); + SetTask(TASK_GAME); break; } } @@ -125,8 +125,8 @@ NONMATCH("asm/non_matching/demoScreen/sub_080A2FD0.inc", void sub_080A2FD0(void) case START_BUTTON: case A_BUTTON: { if (gChooseFileState.unk_0x0 == 0) { - gMain.screen = 2; - gMain.funcIndex = gChooseFileState.unk_0x0; + gMain.task = 2; + gMain.state = gChooseFileState.unk_0x0; SoundReq(SFX_TEXTBOX_SELECT); } } diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c index 79b485f0..3a3eddc7 100644 --- a/src/enemy/bombPeahat.c +++ b/src/enemy/bombPeahat.c @@ -136,19 +136,19 @@ void sub_0802A9A8(Entity* this) { sub_0802ACDC(this, 8); } } else { - if (gRoomControls.unk2 != 0) { + if (gRoomControls.reload_flags != 0) { return; } this->spriteSettings.draw = 1; this->field_0x82.HWORD = 1; if (this->field_0x80.HALF.LO) { - this->x.HALF.HI = gRoomControls.roomScrollX - 0x10; + this->x.HALF.HI = gRoomControls.scroll_x - 0x10; this->direction = 8; } else { - this->x.HALF.HI = gRoomControls.roomScrollX + 0x100; + this->x.HALF.HI = gRoomControls.scroll_x + 0x100; this->direction = 0x18; } - this->y.HALF.HI = gRoomControls.roomScrollY + 0x40; + this->y.HALF.HI = gRoomControls.scroll_y + 0x40; this->actionDelay = 0x80; sub_0802ADDC(this); } @@ -311,9 +311,9 @@ void sub_0802AC40(Entity* this) { void sub_0802ACDC(Entity* this, u32 param_2) { u32 x; if (this->field_0x80.HALF.LO) { - x = sub_080045B4(this, gRoomControls.roomScrollX + 0x20, gRoomControls.roomScrollY + 0x60); + x = sub_080045B4(this, gRoomControls.scroll_x + 0x20, gRoomControls.scroll_y + 0x60); } else { - x = sub_080045B4(this, gRoomControls.roomScrollX + 0xd0, gRoomControls.roomScrollY + 0x60); + x = sub_080045B4(this, gRoomControls.scroll_x + 0xd0, gRoomControls.scroll_y + 0x60); } sub_08004596(this, x); this->field_0xf = param_2; @@ -333,13 +333,13 @@ void sub_0802AD1C(Entity* this, u32 param_2) { void sub_0802AD54(Entity* this) { if (this->field_0x82.HWORD != 0) { - if (gRoomControls.unk2 != 0) { + if (gRoomControls.reload_flags != 0) { this->spriteSettings.draw = 0; DeleteEntity(this); return; } - if (gRoomControls.roomOriginY > this->y.HALF.HI || - (gRoomControls.roomOriginY + gRoomControls.height + 0x20) < this->y.HALF.HI) { + if (gRoomControls.origin_y > this->y.HALF.HI || + (gRoomControls.origin_y + gRoomControls.height + 0x20) < this->y.HALF.HI) { this->spriteSettings.draw = 0; } else { this->spriteSettings.draw = 1; @@ -504,8 +504,8 @@ void sub_0802B048(Entity* this) { u32 action; if (this->field_0x7a.HALF.HI) { - if (gRoomControls.roomOriginY > this->y.HALF.HI || - (gRoomControls.roomOriginY + gRoomControls.height + 0x20) < this->y.HALF.HI) { + if (gRoomControls.origin_y > this->y.HALF.HI || + (gRoomControls.origin_y + gRoomControls.height + 0x20) < this->y.HALF.HI) { COLLISION_OFF(this); } else { COLLISION_ON(this); diff --git a/src/enemy/code_080300AC.c b/src/enemy/code_080300AC.c index e3f5c2ef..ef851cc2 100644 --- a/src/enemy/code_080300AC.c +++ b/src/enemy/code_080300AC.c @@ -2,14 +2,14 @@ #include "common.h" #include "functions.h" -void sub_080300AC(void) { - MemClear(&gScreenTransition.armos_data, sizeof(gScreenTransition.armos_data)); - gScreenTransition.armos_data.field_0xae = 0xff; +void ClearArmosData(void) { + MemClear(&gRoomTransition.armos_data, sizeof(gRoomTransition.armos_data)); + gRoomTransition.armos_data.field_0xae = 0xff; } void sub_080300C4(void) { - if (gScreenTransition.armos_data.field_0xae == 0xff) { - gScreenTransition.armos_data.field_0xac = 0; - MemClear(&gScreenTransition.armos_data.data, sizeof(gScreenTransition.armos_data.data)); + if (gRoomTransition.armos_data.field_0xae == 0xff) { + gRoomTransition.armos_data.field_0xac = 0; + MemClear(&gRoomTransition.armos_data.data, sizeof(gRoomTransition.armos_data.data)); } } diff --git a/src/enemy/fallingBoulder.c b/src/enemy/fallingBoulder.c index e7edf50f..bac04237 100644 --- a/src/enemy/fallingBoulder.c +++ b/src/enemy/fallingBoulder.c @@ -61,7 +61,7 @@ void sub_0802C318(Entity* this) { NONMATCH("asm/non_matching/fallingBoulder/sub_0802C334.inc", void sub_0802C334(Entity* this)) { if ((u16)this->field_0x7c.HALF.LO == 0) { - u32 tmp = gRoomControls.roomOriginY; + u32 tmp = gRoomControls.origin_y; if (&gPlayerEntity == NULL) return; if (tmp - gPlayerEntity.y.HALF.HI <= 0x38) { @@ -106,7 +106,7 @@ NONMATCH("asm/non_matching/fallingBoulder/sub_0802C334.inc", void sub_0802C334(E } } - y = gRoomControls.roomOriginY + gRoomControls.height - this->y.HALF.HI; + y = gRoomControls.origin_y + gRoomControls.height - this->y.HALF.HI; if (y >= 5) { sub_080AEFB4(this); } else { diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c index 95aac9ab..dc99d749 100644 --- a/src/enemy/gyorgMale.c +++ b/src/enemy/gyorgMale.c @@ -1,7 +1,7 @@ #include "global.h" #include "enemy.h" #include "player.h" -#include "fileScreen.h" +#include "fileselect.h" #include "functions.h" void (*const gUnk_080D1AFC[8])(Entity*); @@ -98,7 +98,7 @@ void GyorgMale(Entity* this) { this->animationState = -(this->field_0x78.HWORD >> 8); sub_08048004(this); this->field_0x7c.BYTES.byte1 = this->spriteSettings.draw; - if (this->spriteSettings.draw == 1 && (this->y.HALF.HI - gRoomControls.roomScrollY + 0x30) > 0x100u) { + if (this->spriteSettings.draw == 1 && (this->y.HALF.HI - gRoomControls.scroll_y + 0x30) > 0x100u) { this->spriteSettings.draw = 0; } this->cutsceneBeh.HWORD = gPlayerEntity.x.HALF.HI; @@ -162,7 +162,7 @@ void sub_08046930(Entity* this) { void sub_0804696C(Entity* this) { sub_08047E48(this); - if (gRoomControls.roomOriginY + 0x130 > this->y.HALF.HI) { + if (gRoomControls.origin_y + 0x130 > this->y.HALF.HI) { this->subAction = 2; this->direction = 0x80; this->speed = 0x100; @@ -174,9 +174,9 @@ void sub_0804696C(Entity* this) { } if (this->actionDelay) { #ifdef EU - if (gRoomControls.roomOriginY + 0x210 > this->y.HALF.HI) { + if (gRoomControls.origin_y + 0x210 > this->y.HALF.HI) { #else - if (gRoomControls.roomOriginY + 0x258 > this->y.HALF.HI) { + if (gRoomControls.origin_y + 0x258 > this->y.HALF.HI) { #endif this->actionDelay = 0; SoundReq(SFX_APPARATE); @@ -186,7 +186,7 @@ void sub_0804696C(Entity* this) { void sub_080469CC(Entity* this) { sub_08047E48(this); - if (gRoomControls.roomOriginY + 0x210 < this->y.HALF.HI) { + if (gRoomControls.origin_y + 0x210 < this->y.HALF.HI) { this->subAction = 3; this->direction = 0x90; } @@ -194,7 +194,7 @@ void sub_080469CC(Entity* this) { void sub_080469F4(Entity* this) { sub_08047E48(this); - if (gRoomControls.roomOriginY + 0x290 < this->y.HALF.HI) { + if (gRoomControls.origin_y + 0x290 < this->y.HALF.HI) { this->subAction = 4; this->spriteOrientation.flipY = 2; this->spriteRendering.b3 = 2; @@ -211,7 +211,7 @@ void sub_08046A30(Entity* this) { void sub_08046A54(Entity* this) { sub_08047E48(this); - if (gRoomControls.roomOriginX + 0x380 < this->x.HALF.HI) { + if (gRoomControls.origin_x + 0x380 < this->x.HALF.HI) { this->subAction = 6; } } @@ -268,8 +268,8 @@ void sub_08046B8C(Entity* this) { if (sub_0806FCB8(this, this->field_0x80.HWORD, this->field_0x82.HWORD, 4)) { this->subAction = 3; this->field_0x76.HWORD = this->direction << 8; - this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x200; - this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x210; + this->field_0x80.HWORD = gRoomControls.origin_x + 0x200; + this->field_0x82.HWORD = gRoomControls.origin_y + 0x210; sub_08047D88(this); } else { this->direction = @@ -331,8 +331,8 @@ void sub_08046D44(Entity* this) { this->subAction = 1; this->speed = 0x200; tmp = gUnk_080D1B60 + (((Entity*)this->myHeap)->next->animationState >> 5); - this->field_0x80.HWORD = tmp[0] + gRoomControls.roomOriginX; - this->field_0x82.HWORD = tmp[1] + gRoomControls.roomOriginY; + this->field_0x80.HWORD = tmp[0] + gRoomControls.origin_x; + this->field_0x82.HWORD = tmp[1] + gRoomControls.origin_y; this->field_0x76.HWORD = this->direction << 8; sub_08047D88(this); } @@ -440,8 +440,8 @@ void sub_08046FE8(Entity* this) { this->subAction = 1; this->speed = 0x1c0; this->field_0x7c.HALF.HI = 0x1e; - this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x290; - this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x190; + this->field_0x80.HWORD = gRoomControls.origin_x + 0x290; + this->field_0x82.HWORD = gRoomControls.origin_y + 0x190; sub_08047D88(this); } @@ -499,7 +499,7 @@ void sub_0804717C(Entity* this) { this->speed += 8; } sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); - if (gRoomControls.roomOriginX + 0x200 > this->x.HALF.HI) { + if (gRoomControls.origin_x + 0x200 > this->x.HALF.HI) { this->subAction = 5; } } @@ -512,7 +512,7 @@ void sub_080471C8(Entity* this) { this->direction++; } sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); - if (gRoomControls.roomOriginY + 0x190 <= this->y.HALF.HI) + if (gRoomControls.origin_y + 0x190 <= this->y.HALF.HI) return; if (this->field_0x74.HWORD > 0x100) { if (Random() & 1) { @@ -552,7 +552,7 @@ void sub_080472BC(Entity* this) { this->speed += 8; } sub_08047DF0(this, ((0x100 - this->direction) & 0xFF) << 8); - if (gRoomControls.roomOriginX + 0x2B0 >= this->x.HALF.HI) + if (gRoomControls.origin_x + 0x2B0 >= this->x.HALF.HI) return; this->subAction = 9; this->field_0x76.HWORD = this->direction << 8; @@ -591,8 +591,8 @@ void sub_0804736C(Entity* this) { void sub_080473B8(Entity* this) { this->subAction = 1; this->speed = 0x120; - this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x200; - this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x1D0; + this->field_0x80.HWORD = gRoomControls.origin_x + 0x200; + this->field_0x82.HWORD = gRoomControls.origin_y + 0x1D0; sub_08047D88(this); } @@ -645,9 +645,9 @@ void sub_08047484(Entity* this) { } void sub_08047508(Entity* this) { - if (gRoomControls.roomOriginX + 0x1A0 < this->x.HALF.HI) { + if (gRoomControls.origin_x + 0x1A0 < this->x.HALF.HI) { if (this->direction == 0) { - if (gRoomControls.roomOriginY + 0x208 >= this->y.HALF.HI) { + if (gRoomControls.origin_y + 0x208 >= this->y.HALF.HI) { this->field_0x74.HWORD = -this->field_0x74.HWORD; this->field_0x76.HWORD += this->field_0x74.HWORD; this->direction = this->field_0x76.HWORD >> 8; @@ -673,7 +673,7 @@ void sub_08047508(Entity* this) { } } sub_08047E48(this); - if (gRoomControls.roomOriginX + 0x280 < this->x.HALF.HI) { + if (gRoomControls.origin_x + 0x280 < this->x.HALF.HI) { this->subAction = 4; this->speed = 0x200; this->animationState = this->direction; @@ -700,9 +700,9 @@ void sub_080475F4(Entity* this) { } void sub_0804763C(Entity* this) { - if (gRoomControls.roomOriginX + 0x1F0 > this->x.HALF.HI) { + if (gRoomControls.origin_x + 0x1F0 > this->x.HALF.HI) { if (this->direction == 0) { - if (gRoomControls.roomOriginY + 0x208 >= this->y.HALF.HI) { + if (gRoomControls.origin_y + 0x208 >= this->y.HALF.HI) { this->field_0x74.HWORD = -this->field_0x74.HWORD; this->field_0x76.HWORD += this->field_0x74.HWORD; this->direction = this->field_0x76.HWORD >> 8; @@ -728,7 +728,7 @@ void sub_0804763C(Entity* this) { } } sub_08047E48(this); - if (gRoomControls.roomOriginX + 0x180 > this->x.HALF.HI) { + if (gRoomControls.origin_x + 0x180 > this->x.HALF.HI) { this->subAction = 6; this->speed = 0x200; this->animationState = this->direction; @@ -764,13 +764,13 @@ void sub_08047778(Entity* this) { void sub_08047798(Entity* this) { this->subAction = 1; this->speed = 0x80; - if (this->x.HALF.HI - gRoomControls.roomOriginX < 0x1F8) { + if (this->x.HALF.HI - gRoomControls.origin_x < 0x1F8) { this->field_0x80.HWORD = 0xa8; } else { this->field_0x80.HWORD = 0x348; } - this->field_0x80.HWORD += gRoomControls.roomOriginX; - this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x348; + this->field_0x80.HWORD += gRoomControls.origin_x; + this->field_0x82.HWORD = gRoomControls.origin_y + 0x348; sub_08047D88(this); } @@ -790,7 +790,7 @@ void sub_080477F0(Entity* this) { this->direction = this->animationState; return; } - if (!sub_0806FCB8(this, gRoomControls.roomOriginX + 0x200, gRoomControls.roomOriginY + 0x210, 0x100)) { + if (!sub_0806FCB8(this, gRoomControls.origin_x + 0x200, gRoomControls.origin_y + 0x210, 0x100)) { this->spriteOrientation.flipY = 3; this->spriteRendering.b3 = 3; } @@ -800,7 +800,7 @@ void sub_080477F0(Entity* this) { this->field_0x74.HWORD = gUnk_080D1BF0[Random() & 1]; if (((Entity*)this->myHeap)->prev->field_0x6c.HWORD & 1) { ((Entity*)this->myHeap)->next->field_0x78.HALF.HI = - gRoomControls.roomOriginX + 0x200 > this->x.HALF.HI ? 0x81 : 0x83; + gRoomControls.origin_x + 0x200 > this->x.HALF.HI ? 0x81 : 0x83; } else { ((Entity*)this->myHeap)->next->field_0x78.HALF.HI = 0x80; } @@ -861,25 +861,25 @@ void sub_08047978(Entity* this) { this->subAction = 4; if (this->type == 0) { if ((((Entity*)this->myHeap)->next->animationState >> 6) == 1) { - this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x1C0; - this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x250; + this->field_0x80.HWORD = gRoomControls.origin_x + 0x1C0; + this->field_0x82.HWORD = gRoomControls.origin_y + 0x250; } else { - this->field_0x80.HWORD = gRoomControls.roomOriginX + 0x240; - this->field_0x82.HWORD = gRoomControls.roomOriginY + 0x250; + this->field_0x80.HWORD = gRoomControls.origin_x + 0x240; + this->field_0x82.HWORD = gRoomControls.origin_y + 0x250; } } else { - if (gRoomControls.roomOriginX + 0x200 < this->x.HALF.HI) { + if (gRoomControls.origin_x + 0x200 < this->x.HALF.HI) { this->field_0x80.HWORD = 0x190; } else { this->field_0x80.HWORD = 0x270; } - this->field_0x80.HWORD += gRoomControls.roomOriginX; - if (gRoomControls.roomOriginY + 0x210 < this->y.HALF.HI) { + this->field_0x80.HWORD += gRoomControls.origin_x; + if (gRoomControls.origin_y + 0x210 < this->y.HALF.HI) { this->field_0x82.HWORD = 0x1A0; } else { this->field_0x82.HWORD = 0x280; } - this->field_0x82.HWORD += gRoomControls.roomOriginY; + this->field_0x82.HWORD += gRoomControls.origin_y; } } @@ -914,7 +914,7 @@ void sub_08047BA4(Entity* this) { this->subAction = 1; this->actionDelay = 0x78; this->field_0xf = 0; - if (gRoomControls.roomOriginX + 0x200 < this->x.HALF.HI) { + if (gRoomControls.origin_x + 0x200 < this->x.HALF.HI) { this->field_0x76.HWORD = 0x78; } else { this->field_0x76.HWORD = 0x88; @@ -946,7 +946,7 @@ void sub_08047BF0(Entity* this) { this->direction = this->field_0x76.HWORD; this->speed = 0x140; sub_08047E48(this); - if (this->y.HALF.HI > gRoomControls.roomOriginY + 0x270) { + if (this->y.HALF.HI > gRoomControls.origin_y + 0x270) { this->subAction = 2; this->field_0x7c.HALF.HI = 0xAA; SoundReq(SFX_12D); @@ -1117,8 +1117,8 @@ void sub_08048004(Entity* this) { if (this->field_0x7c.BYTES.byte0 & 1) { u32 b = this->spriteRendering.b3; if (b == 3) { - s32 posX = ((gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX) >> 3); - s32 posY = ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) >> 3); + s32 posX = ((gPlayerEntity.x.HALF.HI - gRoomControls.origin_x) >> 3); + s32 posY = ((gPlayerEntity.y.HALF.HI - gRoomControls.origin_y) >> 3); u16* tmp = (u16*)&gUnk_02019EE0; if (tmp[(posY << 7) + posX]) { if (!(this->field_0x7c.BYTES.byte0 & 2)) { @@ -1169,6 +1169,6 @@ const u16 gUnk_080D1C60[8] = { 0x200, 0x150, 0x290, 0x210, 0x200, 0x2D0, 0x170, void sub_08048178(Entity* this, u32 unk1) { const u16* tmp = ((((Entity*)this->myHeap)->next->animationState >> 6 & 1) ? gUnk_080D1C60 + unk1 : gUnk_080D1C50 + unk1); - this->field_0x80.HWORD = *tmp + gRoomControls.roomOriginX; - this->field_0x82.HWORD = *(tmp + 1) + gRoomControls.roomOriginY; + this->field_0x80.HWORD = *tmp + gRoomControls.origin_x; + this->field_0x82.HWORD = *(tmp + 1) + gRoomControls.origin_y; } diff --git a/src/enemy/mazaalBracelet.c b/src/enemy/mazaalBracelet.c index 2aa1f808..9f40f40c 100644 --- a/src/enemy/mazaalBracelet.c +++ b/src/enemy/mazaalBracelet.c @@ -196,7 +196,7 @@ void sub_0803A274(Entity* this) { this->spriteSettings.flipX = 1; PositionRelative(this->parent, this, -0x100000, 0x200000); } - if (gScreenTransition.field_0x38 != 0) { + if (gRoomTransition.field_0x38 != 0) { this->action = 3; COLLISION_ON(this); this->spriteSettings.draw = 1; @@ -1210,8 +1210,8 @@ void sub_0803B724(Entity* param_1) { pEVar1->type2 = 1; random_value = Random(); temp = gUnk_080CFD1B[param_1->type]; - pEVar1->x.HALF.HI = (random_value & 0x70) + temp + gRoomControls.roomOriginX; - pEVar1->y.HALF.HI = ((random_value >> 0x10) & 7) * 10 + 0x5c + gRoomControls.roomOriginY; + pEVar1->x.HALF.HI = (random_value & 0x70) + temp + gRoomControls.origin_x; + pEVar1->y.HALF.HI = ((random_value >> 0x10) & 7) * 10 + 0x5c + gRoomControls.origin_y; pEVar1->parent = param_1; ResolveCollisionLayer(pEVar1); param_1->field_0xf++; @@ -1282,7 +1282,7 @@ void sub_0803B8F8(Entity* this) { } void sub_0803B910(Entity* this) { - if (gScreenTransition.field_0x38 != 0) { + if (gRoomTransition.field_0x38 != 0) { this->action = 2; this->spriteSettings.draw = 1; *(u8*)&this->field_0x74 = 0; diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c index 64f9b1c1..3898f0c0 100644 --- a/src/enemy/mazaalHead.c +++ b/src/enemy/mazaalHead.c @@ -119,7 +119,7 @@ void sub_08033F3C(Entity* this) { Entity* pEVar2; if (gEntCount < 0x43) { - if (gScreenTransition.field_0x38 != 0) { + if (gRoomTransition.field_0x38 != 0) { sub_08034420(this); this->field_0x80.HALF.HI = 1; } else { @@ -133,7 +133,7 @@ void sub_08033F3C(Entity* this) { pEVar1->parent = this; pEVar2 = CreateObject(OBJECT_7E, 0, 0); pEVar2->parent = this; - if (gScreenTransition.field_0x39 == 0) { + if (gRoomTransition.field_0x39 == 0) { this->action = 0xd; this->subAction = 0; this->actionDelay = 0xfc; @@ -215,7 +215,7 @@ void sub_08033FFC(Entity* this) { break; default: if (((*(Entity**)&this->field_0x74)->flags & 0x80) != 0) { - gRoomControls.cameraTarget = &gPlayerEntity; + gRoomControls.camera_target = &gPlayerEntity; sub_08034420(this); gPlayerState.controlMode = 1; ResetPlayerAnimationAndAction(); @@ -227,8 +227,8 @@ void sub_08033FFC(Entity* this) { void sub_0803414C(Entity* this) { u32 x, y; - x = gRoomControls.roomOriginX + 0xb8; - y = gRoomControls.roomOriginY + 0x48; + x = gRoomControls.origin_x + 0xb8; + y = gRoomControls.origin_y + 0x48; if (this->x.HALF.HI - x + 1 < 3 && this->y.HALF.HI - y + 1 < 3) { if (sub_080349D8(this)) { @@ -377,10 +377,10 @@ void sub_0803442C(Entity* this, u32 unk) { void sub_0803443C(Entity* this) { this->field_0x7c.BYTES.byte1 = 0; - if (gScreenTransition.field_0x39 < 0x1f) { + if (gRoomTransition.field_0x39 < 0x1f) { sub_080344BC(this); } else { - if (gScreenTransition.field_0x39 < 0x3d) { + if (gRoomTransition.field_0x39 < 0x3d) { sub_08034498(this); } else { sub_08034474(this); @@ -544,7 +544,7 @@ NONMATCH("asm/non_matching/mazaal/sub_0803473C.inc", void sub_0803473C(Entity* t } playerX = gPlayerEntity.x.HALF.HI + 0x60; } - roomX = gRoomControls.roomOriginX; + roomX = gRoomControls.origin_x; if (playerX - 4 > this->x.HALF.HI) { if (roomX + 0xe0 < this->x.HALF.HI) { return; @@ -567,7 +567,7 @@ END_NONMATCH NONMATCH("asm/non_matching/mazaal/sub_080347B4.inc", void sub_080347B4(Entity* this)) { u32 direction; u32 playerX = gPlayerEntity.x.HALF.HI; - u32 roomX = gRoomControls.roomOriginX; + u32 roomX = gRoomControls.origin_x; if (playerX - 4 > this->x.HALF.HI) { if (roomX + 0xe0 < this->x.HALF.HI) { return; @@ -810,9 +810,9 @@ void sub_08034BC8(Entity* this) { void sub_08034C00(Entity* this) { if (((gPlayerState.flags & PL_MINISH) != 0) && - CheckPlayerInRegion(this->x.HALF.HI - gRoomControls.roomOriginX, - this->y.HALF.HI - gRoomControls.roomOriginY + 0xd, 3, 3) != 0) { - if (gScreenTransition.field_0x39 >= 0x3d) { + CheckPlayerInRegion(this->x.HALF.HI - gRoomControls.origin_x, + this->y.HALF.HI - gRoomControls.origin_y + 0xd, 3, 3) != 0) { + if (gRoomTransition.field_0x39 >= 0x3d) { DoExitTransition((ScreenTransitionData*)&gUnk_080CED88); } else { DoExitTransition((ScreenTransitionData*)&gUnk_080CED9C); diff --git a/src/enemy/mazaalMacro.c b/src/enemy/mazaalMacro.c index f9977d2f..c13bea87 100644 --- a/src/enemy/mazaalMacro.c +++ b/src/enemy/mazaalMacro.c @@ -94,8 +94,8 @@ void sub_08034D4C(Entity* this) { if (--this->field_0x78.HWORD == 0) { if ((this->field_0xf < 8) && (entity = CreateEnemy(VAATI_PROJECTILE, 0), entity != (Entity*)0x0)) { entity->direction = (s32)Random() % 5 + 0xc; - entity->x.HALF.HI = (gRoomControls.width / 2) + gRoomControls.roomOriginX; - entity->y.HALF.HI = gRoomControls.roomOriginY + 8; + entity->x.HALF.HI = (gRoomControls.width / 2) + gRoomControls.origin_x; + entity->y.HALF.HI = gRoomControls.origin_y + 8; entity->collisionLayer = 3; entity->parent = this; UpdateSpriteForCollisionLayer(entity); @@ -108,7 +108,7 @@ void sub_08034D4C(Entity* this) { } void sub_08034DC8(Entity* this) { - if (gScreenTransition.field_0x39 == 0) { + if (gRoomTransition.field_0x39 == 0) { CreateFx(this, FX_GIANT_EXPLOSION4, 0); sub_0807BA8C(COORD_TO_TILE(this), this->collisionLayer); DeleteThisEntity(); @@ -136,7 +136,7 @@ void sub_08034E68(Entity* this) { this->spriteSettings.draw = 0; sub_08035120(this); } - if (gScreenTransition.field_0x39 == 0) { + if (gRoomTransition.field_0x39 == 0) { if (sub_08079F8C() != 0) { this->action = 3; scriptExecutionContext = StartCutscene(this, (u16*)script_MazaalMacroDefeated); @@ -167,8 +167,8 @@ void sub_08034EE4(Entity* this) { randomValue = Random(); entity = CreateFx(this, gUnk_080CEEC8[randomValue & 3], 0); if (entity != NULL) { - entity->x.HALF.HI = (((randomValue >> 2) & 0x77) << 1) + 1 + gRoomControls.roomScrollX; - entity->y.HALF.HI = ((randomValue >> 9) & 0x7e) + 1 + gRoomControls.roomScrollY; + entity->x.HALF.HI = (((randomValue >> 2) & 0x77) << 1) + 1 + gRoomControls.scroll_x; + entity->y.HALF.HI = ((randomValue >> 9) & 0x7e) + 1 + gRoomControls.scroll_y; entity->collisionLayer = 2; UpdateSpriteForCollisionLayer(entity); } @@ -182,10 +182,10 @@ void sub_08034F58(Entity* this) { } void sub_08034F70(Entity* this) { - this->health = gScreenTransition.field_0x39; - if (gScreenTransition.field_0x39 >= 0x3d) { + this->health = gRoomTransition.field_0x39; + if (gRoomTransition.field_0x39 >= 0x3d) { this->type2 = 0; - } else if (gScreenTransition.field_0x39 >= 0x1f) { + } else if (gRoomTransition.field_0x39 >= 0x1f) { this->type2 = 1; } else { this->type2 = 2; @@ -200,14 +200,14 @@ void sub_08034FA0(Entity* this) { switch (this->type2) { case 0: if (this->health < 0x3c) { - gScreenTransition.field_0x39 = 0x3c; + gRoomTransition.field_0x39 = 0x3c; sub_08035050(this); return; } break; case 1: if (this->health < 0x1e) { - gScreenTransition.field_0x39 = 0x1e; + gRoomTransition.field_0x39 = 0x1e; sub_08035050(this); return; } @@ -218,7 +218,7 @@ void sub_08034FA0(Entity* this) { } break; } - gScreenTransition.field_0x39 = this->health; + gRoomTransition.field_0x39 = this->health; } void sub_08035050(Entity* this) { @@ -247,16 +247,16 @@ u32 sub_08035084(Entity* this) { } do { vulnPillar = (s32)Random() % 6; - } while (vulnPillar == gScreenTransition.field_0x38 >> 4); - gScreenTransition.field_0x38 = (gScreenTransition.field_0x38 & 0xf) | (vulnPillar << 4); + } while (vulnPillar == gRoomTransition.field_0x38 >> 4); + gRoomTransition.field_0x38 = (gRoomTransition.field_0x38 & 0xf) | (vulnPillar << 4); for (i = 0, coords = gUnk_080CEECC; i < 6; i++, coords += 2) { if (i == vulnPillar) { entity = this; } else { entity = CreateEnemy(MAZAAL_MACRO, 1); } - entity->x.HALF.HI = gRoomControls.roomOriginX + *coords; - entity->y.HALF.HI = gRoomControls.roomOriginY + *(coords + 1); + entity->x.HALF.HI = gRoomControls.origin_x + *coords; + entity->y.HALF.HI = gRoomControls.origin_y + *(coords + 1); entity->collisionLayer = 1; UpdateSpriteForCollisionLayer(entity); } diff --git a/src/enemy/moldworm.c b/src/enemy/moldworm.c index f2331c1f..3eb92c55 100644 --- a/src/enemy/moldworm.c +++ b/src/enemy/moldworm.c @@ -217,7 +217,7 @@ void sub_08023398(Entity* this) { this->field_0x7c.BYTES.byte0--; } - if ((gScreenTransition.frameCount & 7) == 0) { + if ((gRoomTransition.frameCount & 7) == 0) { u32 uVar4; sub_08004596(this, sub_08049F84(this, 1)); diff --git a/src/enemy/octorokBoss.c b/src/enemy/octorokBoss.c index ee480e46..d368dc5b 100644 --- a/src/enemy/octorokBoss.c +++ b/src/enemy/octorokBoss.c @@ -167,7 +167,7 @@ Hit SubActions void OctorokBoss_Hit(Entity* this) { if (GET_BOSS_PHASE(this) == 0) { if (this->subAction != 3) { - gRoomControls.cameraTarget = GET_HELPER(this)->tailObjects[0]; + gRoomControls.camera_target = GET_HELPER(this)->tailObjects[0]; GET_HELPER(this)->field_0x7 = 0x5a; sub_08078B48(); } @@ -219,17 +219,17 @@ void OctorokBoss_Hit_SubAction1(Entity* this) { GET_HELPER(this)->tailObjects[0]->field_0x7c.BYTES.byte1--; } // Move to the center of the screen before freezing - diffX = 0x108 + gRoomControls.roomOriginX - this->x.HALF.HI + 0x4; - diffY = gRoomControls.roomOriginY - this->y.HALF.HI + 0x8c; + diffX = 0x108 + gRoomControls.origin_x - this->x.HALF.HI + 0x4; + diffY = gRoomControls.origin_y - this->y.HALF.HI + 0x8c; if (diffX > 8 || diffY > 8) { GET_HELPER(this)->field_0x2 = 1; #if defined(JP) || defined(DEMO_JP) || defined(EU) - this->direction = ((s32)sub_080045DA((((gRoomControls.roomOriginX + 0x108) << 0x10) - this->x.WORD), - (((gRoomControls.roomOriginY + 0x88) << 0x10) - this->y.WORD))) >> + this->direction = ((s32)sub_080045DA((((gRoomControls.origin_x + 0x108) << 0x10) - this->x.WORD), + (((gRoomControls.origin_y + 0x88) << 0x10) - this->y.WORD))) >> 3; #else - this->direction = ((s32)sub_080045DA(gRoomControls.roomOriginX + 0x108 - this->x.HALF.HI, - gRoomControls.roomOriginY + 0x88 - this->y.HALF.HI)) >> + this->direction = ((s32)sub_080045DA(gRoomControls.origin_x + 0x108 - this->x.HALF.HI, + gRoomControls.origin_y + 0x88 - this->y.HALF.HI)) >> 3; #endif this->speed = 0x100; @@ -253,7 +253,7 @@ void OctorokBoss_Hit_SubAction1(Entity* this) { Entity* tail = GET_HELPER(this)->tailObjects[i - 1]; tail->spriteSettings.draw |= 1; } - if ((gScreenTransition.frameCount & 2) != 0) { + if ((gRoomTransition.frameCount & 2) != 0) { CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 6, 0); } GET_TIMER(this)--; @@ -285,7 +285,7 @@ void OctorokBoss_Hit_SubAction2(Entity* this) { } else { this->subAction = 3; GET_TIMER(this) = 0x96; - gRoomControls.cameraTarget = &gPlayerEntity; + gRoomControls.camera_target = &gPlayerEntity; } } @@ -305,7 +305,7 @@ void OctorokBoss_Hit_SubAction4(Entity* this) { this->subAction = 5; object = CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 9, 0); if (object != NULL) { - gRoomControls.cameraTarget = object; + gRoomControls.camera_target = object; } } @@ -340,7 +340,7 @@ void OctorokBoss_Hit_SubAction6(Entity* this) { tmp = FixedDiv(tmp, 0x100); this->spriteOffsetY = -((tmp << 0x10) >> 8) >> 0x10; if (GET_TIMER(this) == 0) { - if ((gScreenTransition.frameCount & 0xfU) == 0) { + if ((gRoomTransition.frameCount & 0xfU) == 0) { // Explosion in the center CreateFx(this, FX_GIANT_EXPLOSION3, 0); // Explosion at the front right leg @@ -448,7 +448,7 @@ ASM_FUNC("asm/non_matching/octorokBoss/OctorokBoss_Init.inc", void OctorokBoss_I gPlayerEntity.spriteSettings.draw = 0; gPlayerEntity.x.HALF.HI = this->x.HALF.HI; gPlayerEntity.y.HALF.HI = this->y.HALF.HI - 0xa0; - gRoomControls.cameraTarget = this; + gRoomControls.camera_target = this; break; case LEG_BR: @@ -533,7 +533,7 @@ void OctorokBoss_Intro_SubAction2(Entity* this) { this->subAction = 3; GET_TIMER(this) = 0x3c; gPlayerEntity.spriteSettings.draw |= 1; - gRoomControls.cameraTarget = &gPlayerEntity; + gRoomControls.camera_target = &gPlayerEntity; gRoomControls.unk5 = 1; } } @@ -714,7 +714,7 @@ void OctorokBoss_Action1(Entity* this) { sub_08036F60(this); if (GET_HELPER(this)->fallingStonesTimer != 0) { GET_HELPER(this)->fallingStonesTimer--; - if ((gScreenTransition.frameCount & 3) == 0) { + if ((gRoomTransition.frameCount & 3) == 0) { // Falling stones CreateProjectileWithParent(this, OCTOROK_BOSS_PROJECTILE, 3); } @@ -892,7 +892,7 @@ void OctorokBoss_Action1_Attack_Type2_2(Entity* this) { } void OctorokBoss_Action1_Attack_Type2_3(Entity* this) { - if ((gScreenTransition.frameCount & 2) != 0) { + if ((gRoomTransition.frameCount & 2) != 0) { GET_HELPER(this)->mouthObject->field_0x76.HWORD -= 8; } else { GET_HELPER(this)->mouthObject->field_0x76.HWORD += 8; @@ -938,8 +938,8 @@ void OctorokBoss_ExecuteAttackVacuum(Entity* this) { this->field_0x80.HALF.LO = 1; GET_TIMER(this) = 2; GET_HELPER(this)->targetAngle = - sub_080045DA((gRoomControls.roomOriginX + 0x108) * 0x10000 - this->x.WORD, - (gRoomControls.roomOriginY + 0x88) * 0x10000 - this->y.WORD); + sub_080045DA((gRoomControls.origin_x + 0x108) * 0x10000 - this->x.WORD, + (gRoomControls.origin_y + 0x88) * 0x10000 - this->y.WORD); GET_HELPER(this)->targetAngle = (u8) - (GET_HELPER(this)->targetAngle + 0x80); SoundReq(SFX_ED); } @@ -949,7 +949,7 @@ void OctorokBoss_ExecuteAttackVacuum(Entity* this) { } } } - if ((gScreenTransition.frameCount & 3) == 0) { + if ((gRoomTransition.frameCount & 3) == 0) { CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 2, 0); } } else { @@ -1012,8 +1012,8 @@ void OctorokBoss_ExecuteAttackSmoke(Entity* this) { } else { GET_TIMER(this)++; ChangeLightLevel(-1); - if ((gScreenTransition.frameCount & 3) == 0) { - if ((gScreenTransition.frameCount & 7) == 0) { + if ((gRoomTransition.frameCount & 3) == 0) { + if ((gRoomTransition.frameCount & 7) == 0) { SoundReq(SFX_124); } CreateObjectWithParent(this, OCTOROK_BOSS_OBJECT, 3, 0); @@ -1027,7 +1027,7 @@ void OctorokBoss_ExecuteAttackFreeze(Entity* this) { OctorokBoss_SetAttackTimer(this); } else { GET_TIMER(this)--; - if ((gScreenTransition.frameCount & 3) == 0) { + if ((gRoomTransition.frameCount & 3) == 0) { this->child = CreateProjectileWithParent(this, OCTOROK_BOSS_PROJECTILE, 2); if (this->child != NULL) { this->child->parent = this; @@ -1041,7 +1041,7 @@ void OctorokBoss_Burning(Entity* this) { OctorokBoss_Burning_SubActions[this->subAction](this); if (GET_HELPER(this)->fallingStonesTimer != 0) { GET_HELPER(this)->fallingStonesTimer--; - if ((gScreenTransition.frameCount & 7) == 0) { + if ((gRoomTransition.frameCount & 7) == 0) { // Falling stones CreateProjectileWithParent(this, OCTOROK_BOSS_PROJECTILE, 3); } @@ -1083,7 +1083,7 @@ void OctorokBoss_Burning_SubAction1(Entity* this) { if (GET_TIMER(this)-- == 0) { this->health = 0; } - if ((gScreenTransition.frameCount & 0x1f) == 0) { + if ((gRoomTransition.frameCount & 0x1f) == 0) { SoundReq(SFX_159); } } @@ -1410,7 +1410,7 @@ void sub_08036F60(Entity* this) { } void OctorokBoss_StepSound(Entity* this, u32 frameMask) { - if ((gScreenTransition.frameCount & frameMask) == 0) { + if ((gRoomTransition.frameCount & frameMask) == 0) { if (IS_FROZEN(this) == FALSE) { SoundReq(SFX_163); } else { diff --git a/src/enemy/peahat.c b/src/enemy/peahat.c index 08ec53a4..e8353ae5 100644 --- a/src/enemy/peahat.c +++ b/src/enemy/peahat.c @@ -195,7 +195,7 @@ void Peahat_ChargeTarget(Entity* this) { if (this->actionDelay & 1) this->speed += 4; - if ((gScreenTransition.frameCount & 3) == 0) + if ((gRoomTransition.frameCount & 3) == 0) sub_08004596(this, GetFacingDirection(this, gUnk_020000B0)); } sub_080AEFE0(this); diff --git a/src/enemy/puffstool.c b/src/enemy/puffstool.c index 93ac0dca..be5b30d0 100644 --- a/src/enemy/puffstool.c +++ b/src/enemy/puffstool.c @@ -386,8 +386,8 @@ void sub_080256B4(Entity* this) { bool32 sub_0802571C(Entity* this) { RoomControls* ctrl = &gRoomControls; - u16 xDiff = (this->x.HALF.HI - ctrl->roomOriginX + 8) & -0x10; - u16 yDiff = (this->y.HALF.HI - ctrl->roomOriginY + 8) & -0x10; + u16 xDiff = (this->x.HALF.HI - ctrl->origin_x + 8) & -0x10; + u16 yDiff = (this->y.HALF.HI - ctrl->origin_y + 8) & -0x10; u16 unk = this->field_0x7a.HALF.LO; u16 i; @@ -396,8 +396,8 @@ bool32 sub_0802571C(Entity* this) { u16 sVar4 = yDiff + gUnk_080CC020[unk + 1]; if (sub_080257EC(this, sVar3, sVar4)) { - this->field_0x7c.HALF.LO = sVar3 + ctrl->roomOriginX; - this->field_0x7c.HALF.HI = sVar4 + ctrl->roomOriginY; + this->field_0x7c.HALF.LO = sVar3 + ctrl->origin_x; + this->field_0x7c.HALF.HI = sVar4 + ctrl->origin_y; return TRUE; } @@ -472,8 +472,8 @@ NONMATCH("asm/non_matching/puffstool/sub_0802594C.inc", bool32 sub_0802594C(Enti const s8* unk = gUnk_080CC090[param_2]; u32 uVar1 = this->collisionLayer; RoomControls* ctrl = &gRoomControls; - xDiff = (this->x.HALF.HI - ctrl->roomOriginX + 8) & -0x10; - yDiff = (this->y.HALF.HI - ctrl->roomOriginY + 8) & -0x10; + xDiff = (this->x.HALF.HI - ctrl->origin_x + 8) & -0x10; + yDiff = (this->y.HALF.HI - ctrl->origin_y + 8) & -0x10; do { s16 iVar9 = xDiff + unk[0]; s16 iVar11 = yDiff + unk[1]; @@ -482,8 +482,8 @@ NONMATCH("asm/non_matching/puffstool/sub_0802594C.inc", bool32 sub_0802594C(Enti u8 bVar6 = sub_080002D4(iVar9 - 0x00, iVar11 - 0x10, uVar1); u8 bVar7 = sub_080002D4(iVar9 - 0x10, iVar11 - 0x10, uVar1); if ((bVar6 | bVar4 | bVar5 | bVar7) == 0) { - this->field_0x7c.HALF.LO = ctrl->roomOriginX + iVar9; - this->field_0x7c.HALF.HI = ctrl->roomOriginY + iVar11; + this->field_0x7c.HALF.LO = ctrl->origin_x + iVar9; + this->field_0x7c.HALF.HI = ctrl->origin_y + iVar11; return TRUE; } unk += 2; @@ -495,8 +495,8 @@ END_NONMATCH void sub_08025A54(Entity* this) { u32 layer = this->collisionLayer; - s16 x = this->x.HALF.HI - gRoomControls.roomOriginX; - s16 y = this->y.HALF.HI - gRoomControls.roomOriginY; + s16 x = this->x.HALF.HI - gRoomControls.origin_x; + s16 y = this->y.HALF.HI - gRoomControls.origin_y; const s8* offset = gUnk_080CC0A0; u32 i = 0; @@ -535,8 +535,8 @@ void sub_08025AE8(Entity* this) { void sub_08025B18(Entity* this) { Entity* ent; - s32 x = this->x.HALF.HI - gRoomControls.roomOriginX; - s32 y = this->y.HALF.HI - gRoomControls.roomOriginY; + s32 x = this->x.HALF.HI - gRoomControls.origin_x; + s32 y = this->y.HALF.HI - gRoomControls.origin_y; u32 layer = this->collisionLayer; const s8* offset = gUnk_080CC0A8; diff --git a/src/enemy/slime.c b/src/enemy/slime.c index 06297e37..2f2a18ee 100644 --- a/src/enemy/slime.c +++ b/src/enemy/slime.c @@ -127,10 +127,10 @@ void sub_08045178(Entity* this, Entity* child, int h, int v) { return; x = child->x.HALF.HI + h; - if (0 <= x && x < (gRoomControls.roomOriginX + gRoomControls.width)) + if (0 <= x && x < (gRoomControls.origin_x + gRoomControls.width)) child->x.HALF.HI = x; y = child->y.HALF.HI + v; - if (0 <= y && y < (gRoomControls.roomOriginY + gRoomControls.height)) + if (0 <= y && y < (gRoomControls.origin_y + gRoomControls.height)) child->y.HALF.HI = y; } diff --git a/src/enemy/vaatiArm.c b/src/enemy/vaatiArm.c index 27a946f5..78a49cf7 100644 --- a/src/enemy/vaatiArm.c +++ b/src/enemy/vaatiArm.c @@ -189,11 +189,11 @@ void sub_080425B4(Entity* this) { if (sub_080437DC(this)) { this->field_0x7c.BYTES.byte0 = 0; this->field_0x7c.BYTES.byte1 = 0; - if ((gScreenTransition.field_0x38 & 1) != 0) { - if (gScreenTransition.field_0x3c == this->type2) { + if ((gRoomTransition.field_0x38 & 1) != 0) { + if (gRoomTransition.field_0x3c == this->type2) { sub_08043EB8(this); sub_08043ABC(this); - if ((gScreenTransition.field_0x39 >> (this->type2 + 2) & 1U) != 0) { + if ((gRoomTransition.field_0x39 >> (this->type2 + 2) & 1U) != 0) { this->action = 7; this->subAction = 4; } else { @@ -207,7 +207,7 @@ void sub_080425B4(Entity* this) { } } else { this->action = 1; - this->subAction = gScreenTransition.field_0x38 & 1; + this->subAction = gRoomTransition.field_0x38 & 1; ((VaatiArm_HeapStruct*)this->myHeap)->s1[0].unk08 = gUnk_080D1280[this->type2]; sub_08042654(this); } @@ -528,28 +528,28 @@ void sub_08042C34(Entity* this) { temp = &gUnk_080D12F8[random]; x = gPlayerEntity.x.HALF.HI + *temp; y = gPlayerEntity.y.HALF.HI + *(temp + 1); - if ((gRoomControls.roomOriginX + 0x20) > x) { - x = gRoomControls.roomOriginX + 0x20; + if ((gRoomControls.origin_x + 0x20) > x) { + x = gRoomControls.origin_x + 0x20; } - if (gRoomControls.roomOriginX + gRoomControls.width + -0x20 < x) { - x = gRoomControls.roomOriginX + gRoomControls.width + -0x20; + if (gRoomControls.origin_x + gRoomControls.width + -0x20 < x) { + x = gRoomControls.origin_x + gRoomControls.width + -0x20; } - if ((gRoomControls.roomOriginY + 0x20) > y) { - y = gRoomControls.roomOriginY + 0x20; + if ((gRoomControls.origin_y + 0x20) > y) { + y = gRoomControls.origin_y + 0x20; } #if defined EU || defined JP || defined DEMO_JP - if (gRoomControls.roomOriginY + gRoomControls.height + -0x20 < y) { - y = gRoomControls.roomOriginY + gRoomControls.height + -0x20; + if (gRoomControls.origin_y + gRoomControls.height + -0x20 < y) { + y = gRoomControls.origin_y + gRoomControls.height + -0x20; } #else - if (gRoomControls.roomOriginY + gRoomControls.height + -0x40 < y) { - y = gRoomControls.roomOriginY + gRoomControls.height + -0x40; + if (gRoomControls.origin_y + gRoomControls.height + -0x40 < y) { + y = gRoomControls.origin_y + gRoomControls.height + -0x40; } #endif - if (((u32)((x - gRoomControls.roomOriginX) - 0x90) < 0x41) && - ((u32)((y - gRoomControls.roomOriginY) - 8) < 0x41)) { - x = gRoomControls.roomOriginX + 0xb0; - y = gRoomControls.roomOriginY + 0x40; + if (((u32)((x - gRoomControls.origin_x) - 0x90) < 0x41) && + ((u32)((y - gRoomControls.origin_y) - 8) < 0x41)) { + x = gRoomControls.origin_x + 0xb0; + y = gRoomControls.origin_y + 0x40; } for (i = 0; i < 4; i++) { entity = ((VaatiArm_HeapStruct*)this->myHeap)->entities[i]; @@ -636,8 +636,8 @@ void sub_08042E30(Entity* this) { this->actionDelay = (Random() & 0x38) + 0x28; this->speed = 0x200; this->direction = pVVar9->unk00.HALF.HI >> 3; - uVar6 = sub_080045D4(this->x.HALF.HI, this->y.HALF.HI, gRoomControls.roomOriginX + 0x110, - gRoomControls.roomOriginY + 0x60); + uVar6 = sub_080045D4(this->x.HALF.HI, this->y.HALF.HI, gRoomControls.origin_x + 0x110, + gRoomControls.origin_y + 0x60); this->field_0x78.HALF.HI = (gUnk_080D1304[Random() & 7] + uVar6) & 0x1f; } pVVar9->unk00.HWORD += pVVar9->unk08; @@ -1079,15 +1079,15 @@ NONMATCH("asm/non_matching/vaati/sub_08043770.inc", void sub_08043770(Entity* th if (--this->actionDelay == 0) { entity = ((VaatiArm_HeapStruct*)this->myHeap)->parent; - if ((gScreenTransition.field_0x39 & 0xc) == 0) { + if ((gRoomTransition.field_0x39 & 0xc) == 0) { entity->subAction = 2; } if (this->type2 == 0) { ((VaatiArm_HeapStruct*)this->myHeap)->parent = NULL; - gScreenTransition.field_0x39 &= 0xfe; + gRoomTransition.field_0x39 &= 0xfe; } else { *(u32*)((VaatiArm_HeapStruct*)this->myHeap)->s1 = 0; - gScreenTransition.field_0x39 &= 0xfd; + gRoomTransition.field_0x39 &= 0xfd; } ((VaatiArm_HeapStruct*)this->myHeap)->entities[4]->myHeap = NULL; ((VaatiArm_HeapStruct*)this->myHeap)->entities[4]->health = 0; @@ -1291,7 +1291,7 @@ u32 sub_08043C98(Entity* this) { Entity* e2 = ((VaatiArm_HeapStruct*)this->myHeap)->entities[3]; if ((e1->bitfield == 0x9d) || (e2->bitfield == 0x9d)) { sub_08043D08(this); - gScreenTransition.field_0x38 |= 2; + gRoomTransition.field_0x38 |= 2; return 1; } else { return 0; @@ -1345,33 +1345,33 @@ void sub_08043DB0(Entity* this) { if (((gPlayerState.flags & PL_MINISH) != 0)) { pEVar3 = ((VaatiArm_HeapStruct*)this->myHeap)->entities[3]; - if (CheckPlayerInRegion(pEVar3->x.HALF.HI - gRoomControls.roomOriginX, - pEVar3->y.HALF.HI - gRoomControls.roomOriginY + 2, 3, 3)) { + if (CheckPlayerInRegion(pEVar3->x.HALF.HI - gRoomControls.origin_x, + pEVar3->y.HALF.HI - gRoomControls.origin_y + 2, 3, 3)) { DoExitTransition((ScreenTransitionData*)&gUnk_080D13EC); - if ((gScreenTransition.field_0x39 & 3) != 3) { - gScreenTransition.player_status.room_next = 1; + if ((gRoomTransition.field_0x39 & 3) != 3) { + gRoomTransition.player_status.room_next = 1; } cVar1 = this->field_0x7a.HWORD; - gScreenTransition.field_0x3d = 0x1e - (cVar1 / 0x3c); - gScreenTransition.field_0x3c = this->type2; + gRoomTransition.field_0x3d = 0x1e - (cVar1 / 0x3c); + gRoomTransition.field_0x3c = this->type2; pEVar2 = ((VaatiArm_HeapStruct*)this->myHeap)->parent; - gScreenTransition.hurtType = pEVar2->x.HALF.HI; - gScreenTransition.field_0x42 = pEVar2->y.HALF.HI; + gRoomTransition.hurtType = pEVar2->x.HALF.HI; + gRoomTransition.field_0x42 = pEVar2->y.HALF.HI; pEVar4 = ((VaatiArm_HeapStruct*)pEVar2->myHeap)->parent; if (pEVar4 != NULL) { - gScreenTransition.field_0x44 = pEVar4->x.HALF.HI; - gScreenTransition.field_0x46 = pEVar4->y.HALF.HI; + gRoomTransition.field_0x44 = pEVar4->x.HALF.HI; + gRoomTransition.field_0x46 = pEVar4->y.HALF.HI; } else { - gScreenTransition.field_0x44 = gRoomControls.roomOriginX + 0x110; - gScreenTransition.field_0x46 = gRoomControls.roomOriginY + 0x60; + gRoomTransition.field_0x44 = gRoomControls.origin_x + 0x110; + gRoomTransition.field_0x46 = gRoomControls.origin_y + 0x60; } pEVar4 = (Entity*)(*(int*)((VaatiArm_HeapStruct*)pEVar2->myHeap)->s1); if (pEVar4 != NULL) { - gScreenTransition.field_0x48 = pEVar4->x.HALF.HI; - gScreenTransition.field_0x4a = pEVar4->y.HALF.HI; + gRoomTransition.field_0x48 = pEVar4->x.HALF.HI; + gRoomTransition.field_0x4a = pEVar4->y.HALF.HI; } else { - gScreenTransition.field_0x48 = gRoomControls.roomOriginX + 0x110; - gScreenTransition.field_0x4a = gRoomControls.roomOriginY + 0x60; + gRoomTransition.field_0x48 = gRoomControls.origin_x + 0x110; + gRoomTransition.field_0x4a = gRoomControls.origin_y + 0x60; } } } @@ -1399,8 +1399,8 @@ void sub_08043EB8(Entity* this) { pEVar4->flags = pEVar4->flags | 0x80; pEVar4->spriteSettings.draw = 1; pEVar4->spritePriority.b0 = 4; - pEVar4->x.HALF.HI = (this->type2 == 0) ? gScreenTransition.field_0x44 : gScreenTransition.field_0x48; - pEVar4->y.HALF.HI = (this->type2 == 0) ? gScreenTransition.field_0x46 : gScreenTransition.field_0x4a; + pEVar4->x.HALF.HI = (this->type2 == 0) ? gRoomTransition.field_0x44 : gRoomTransition.field_0x48; + pEVar4->y.HALF.HI = (this->type2 == 0) ? gRoomTransition.field_0x46 : gRoomTransition.field_0x4a; pEVar4->z.HALF.HI = 0; pEVar4->field_0x3c = pEVar4->field_0x3c & 0xef; pEVar4->hitType = 0x3a; @@ -1442,8 +1442,8 @@ void sub_08044078(Entity* this) { if (this->action == 0) { this->action = 1; if (this->type != 3 || - !(((gScreenTransition.field_0x38 & 1) == 0 || - (((VaatiArm_HeapStruct*)this->myHeap)->entities[0]->type2 != gScreenTransition.field_0x3c)))) { + !(((gRoomTransition.field_0x38 & 1) == 0 || + (((VaatiArm_HeapStruct*)this->myHeap)->entities[0]->type2 != gRoomTransition.field_0x3c)))) { InitializeAnimation(this, 0x12); } else { InitializeAnimation(this, 0x11); @@ -1455,8 +1455,8 @@ void sub_08044078(Entity* this) { void sub_080440CC(Entity* this) { if (this->action == 0) { this->action = 1; - if ((gScreenTransition.field_0x38 & 1) != 0 && - ((VaatiArm_HeapStruct*)this->myHeap)->entities[0]->type2 == gScreenTransition.field_0x3c) { + if ((gRoomTransition.field_0x38 & 1) != 0 && + ((VaatiArm_HeapStruct*)this->myHeap)->entities[0]->type2 == gRoomTransition.field_0x3c) { InitializeAnimation(this, 0x13); } else { InitializeAnimation(this, 0x11); diff --git a/src/enemy/vaatiEyesMacro.c b/src/enemy/vaatiEyesMacro.c index 89fb894f..6d187547 100644 --- a/src/enemy/vaatiEyesMacro.c +++ b/src/enemy/vaatiEyesMacro.c @@ -58,12 +58,12 @@ void VaatiEyesMacroFunction0(Entity* this) { void VaatiEyesMacroFunction1(Entity* this) { if (this->type == 0) { if (this->health == 0) { - gScreenTransition.field_0x39 &= ~(1 << (gScreenTransition.field_0x3c + 2)); + gRoomTransition.field_0x39 &= ~(1 << (gRoomTransition.field_0x3c + 2)); } - if (gRoomControls.roomID == 0) { - gScreenTransition.field_0x3a = this->health; + if (gRoomControls.room == 0) { + gRoomTransition.field_0x3a = this->health; } else { - gScreenTransition.field_0x3b = this->health; + gRoomTransition.field_0x3b = this->health; } if (this->field_0x78.HALF.HI != this->health) { EnqueueSFX(SFX_17A); @@ -102,10 +102,10 @@ void VaatiEyesMacroFunction0Type0Action0(Entity* this) { enemy = CreateEnemy(VAATI_EYES_MACRO, 2); enemy->parent = this; this->action = 1; - if (gRoomControls.roomID == 0) { - this->field_0x78.HALF.HI = this->health = gScreenTransition.field_0x3a; + if (gRoomControls.room == 0) { + this->field_0x78.HALF.HI = this->health = gRoomTransition.field_0x3a; } else { - this->field_0x78.HALF.HI = this->health = gScreenTransition.field_0x3b; + this->field_0x78.HALF.HI = this->health = gRoomTransition.field_0x3b; } this->field_0x78.HALF.LO = Random(); sub_0802EFB8(this); diff --git a/src/enemy/vaatiProjectile.c b/src/enemy/vaatiProjectile.c index 6277fc21..b770e2e6 100644 --- a/src/enemy/vaatiProjectile.c +++ b/src/enemy/vaatiProjectile.c @@ -192,7 +192,7 @@ void VaatiProjectileFunction0Action7(Entity* this) { sub_0803E444(this); LinearMoveUpdate(this); sub_0803E4D8(this); - if ((gRoomControls.roomOriginY + gRoomControls.height + -0x10) <= this->y.HALF.HI) { + if ((gRoomControls.origin_y + gRoomControls.height + -0x10) <= this->y.HALF.HI) { SetInitializationPriority(); DoExitTransition((ScreenTransitionData*)&gUnk_0813AB94); } @@ -239,7 +239,7 @@ void sub_0803E480(Entity* this) { bool32 sub_0803E4A0(Entity* this) { #ifdef EU bool32 ret; - if (gScreenTransition.field_0x39 == 0) { + if (gRoomTransition.field_0x39 == 0) { return TRUE; } else { if (this->parent == NULL) { @@ -250,7 +250,7 @@ bool32 sub_0803E4A0(Entity* this) { return ret; #else bool32 ret; - if (gScreenTransition.field_0x39 != 0) { + if (gRoomTransition.field_0x39 != 0) { if (this->parent == NULL) { return FALSE; } diff --git a/src/enemy/vaatiRebornEnemy.c b/src/enemy/vaatiRebornEnemy.c index 5891ed20..4f1770f3 100644 --- a/src/enemy/vaatiRebornEnemy.c +++ b/src/enemy/vaatiRebornEnemy.c @@ -245,8 +245,8 @@ void VaatiRebornEnemyType0Action2(Entity* this) { tmp = this->field_0x80.HALF.HI; this->field_0x80.HALF.HI = tmp % 5; ptr = &gUnk_080D04AC[this->field_0x80.HALF.HI]; - this->x.HALF.HI = gRoomControls.roomOriginX + ptr->HALF.x + 0x10; - this->y.HALF.HI = gRoomControls.roomOriginY + ptr->HALF.y + 0x10; + this->x.HALF.HI = gRoomControls.origin_x + ptr->HALF.x + 0x10; + this->y.HALF.HI = gRoomControls.origin_y + ptr->HALF.y + 0x10; } this->spriteSettings.draw = 1; this->actionDelay = 0x20; @@ -879,15 +879,15 @@ u32 sub_0803E028(Entity* this) { if (this->field_0x76.HALF.HI != 1) { return ret; } - tmp = gRoomControls.roomOriginX + 0x58; + tmp = gRoomControls.origin_x + 0x58; if (tmp > gPlayerEntity.x.HALF.HI) { return ret; } - tmp = gRoomControls.roomOriginY + 0x58; + tmp = gRoomControls.origin_y + 0x58; if (tmp > gPlayerEntity.x.HALF.HI) { return ret; } - tmp = gRoomControls.roomOriginY + 0xf8; + tmp = gRoomControls.origin_y + 0xf8; if (tmp >= gPlayerEntity.x.HALF.HI) { this->field_0x80.HALF.HI += 5; ret = 1; diff --git a/src/enemy/vaatiTransfigured.c b/src/enemy/vaatiTransfigured.c index b4fc508f..29191e73 100644 --- a/src/enemy/vaatiTransfigured.c +++ b/src/enemy/vaatiTransfigured.c @@ -856,8 +856,8 @@ void sub_080406A0(Entity* this) { uVar5 = this->field_0x86.HALF.LO; { u32 tmp; - uVar6 = gRoomControls.roomOriginX + gUnk_080D0B58[tmp = uVar5 * 2]; - uVar4 = gRoomControls.roomOriginY + gUnk_080D0B58[tmp + 1]; + uVar6 = gRoomControls.origin_x + gUnk_080D0B58[tmp = uVar5 * 2]; + uVar4 = gRoomControls.origin_y + gUnk_080D0B58[tmp + 1]; } if (sub_0806FCB8(this, uVar6, uVar4, 0x1c)) { if (uVar5 != 0) { @@ -867,8 +867,8 @@ void sub_080406A0(Entity* this) { } { u32 tmp; - uVar6 = gRoomControls.roomOriginX + gUnk_080D0B58[tmp = uVar5 * 2]; - uVar4 = gRoomControls.roomOriginY + gUnk_080D0B58[tmp + 1]; + uVar6 = gRoomControls.origin_x + gUnk_080D0B58[tmp = uVar5 * 2]; + uVar4 = gRoomControls.origin_y + gUnk_080D0B58[tmp + 1]; } } uVar3 = sub_080045D4(this->x.HALF.HI, this->y.HALF.HI, uVar6, uVar4); @@ -891,8 +891,8 @@ void sub_08040770(Entity* this) { u32 tmp5, tmp6; { u32 index; - tmp5 = gRoomControls.roomOriginX + gUnk_080D0B64[index = tmp2 * 2]; - tmp6 = gRoomControls.roomOriginY + gUnk_080D0B64[index + 1]; + tmp5 = gRoomControls.origin_x + gUnk_080D0B64[index = tmp2 * 2]; + tmp6 = gRoomControls.origin_y + gUnk_080D0B64[index + 1]; } if (sub_0806FCB8(this, tmp5, tmp6, 0x1c)) { if (this->animationState != 2) { @@ -954,8 +954,8 @@ void sub_08040770(Entity* this) { } { u32 tmp3; - tmp5 = gRoomControls.roomOriginX + gUnk_080D0B64[tmp3 = tmp2 * 2], - tmp6 = gRoomControls.roomOriginY + gUnk_080D0B64[tmp3 + 1]; + tmp5 = gRoomControls.origin_x + gUnk_080D0B64[tmp3 = tmp2 * 2], + tmp6 = gRoomControls.origin_y + gUnk_080D0B64[tmp3 + 1]; } } this->direction = sub_080045D4(this->x.HALF.HI, this->y.HALF.HI, tmp5, tmp6); diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index 23e49183..baafff90 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -117,20 +117,20 @@ void VaatiWrathType0(Entity* this) { void VaatiWrathType0Action0(Entity* this) { u32 bVar1; - bVar1 = gScreenTransition.field_0x38 & 1; + bVar1 = gRoomTransition.field_0x38 & 1; if (bVar1 != 0) { if (sub_08041FCC(this) == 0) { return; } - if ((gScreenTransition.field_0x39 & 0xc) == 0) { + if ((gRoomTransition.field_0x39 & 0xc) == 0) { this->action = 5; this->subAction = 1; } else { this->action = 2; this->actionDelay = 0x3c; } - this->x.HALF.HI = gScreenTransition.hurtType; - this->y.HALF.HI = gScreenTransition.field_0x42; + this->x.HALF.HI = gRoomTransition.hurtType; + this->y.HALF.HI = gRoomTransition.field_0x42; sub_08042004(this); } else { if (sub_08041ED4(this) == 0) { @@ -141,7 +141,7 @@ void VaatiWrathType0Action0(Entity* this) { this->actionDelay = 120; this->spritePriority.b1 = 0; this->z.HALF.HI = 0xffb0; - gRoomControls.cameraTarget = this; + gRoomControls.camera_target = this; sub_080809D4(); } this->spriteSettings.draw = 1; @@ -209,8 +209,8 @@ void VaatiWrathType0Action1(Entity* this) { sub_08042004(this); this->subAction = 6; this->actionDelay = 0x1e; - gScreenTransition.field_0x38 |= 1; - gRoomControls.cameraTarget = &gPlayerEntity; + gRoomTransition.field_0x38 |= 1; + gRoomControls.camera_target = &gPlayerEntity; gPlayerState.controlMode = 1; break; default: @@ -243,7 +243,7 @@ void VaatiWrathType0Action3(Entity* this) { UpdateAnimationSingleFrame(this); ProcessMovement(this); - roomY = gRoomControls.roomOriginY; + roomY = gRoomControls.origin_y; bound = roomY + 0x90; thisY = this->y.HALF.HI; if ((bound < thisY)) { @@ -319,12 +319,12 @@ void VaatiWrathType0Action5(Entity* this) { } else { if (this->field_0x78.HALF.HI == 0) { if (this->subAction == 2) { - if ((gScreenTransition.field_0x39 & 3) == 0) { + if ((gRoomTransition.field_0x39 & 3) == 0) { object = CreateObject(OBJECT_B5, 0, 0); if (object != NULL) { object->parent = this; ((VaatiWrathHeapStruct*)this->myHeap)->object5b = object; - gRoomControls.cameraTarget = object; + gRoomControls.camera_target = object; this->action = 6; this->actionDelay = 0x1e; ((VaatiWrathHeapStruct*)this->myHeap)->type1->subAction = 1; @@ -374,9 +374,9 @@ void VaatiWrathType0Action7(Entity* this) { sub_08042214(this); sub_08042004(this); UpdateAnimationSingleFrame(this); - if (gRoomControls.roomOriginY + 0x48 != this->y.HALF.HI) { + if (gRoomControls.origin_y + 0x48 != this->y.HALF.HI) { this->speed = 0x100; - this->direction = ((gRoomControls.roomOriginY + 0x48) >= this->y.HALF.HI) ? 0x10 : 0; + this->direction = ((gRoomControls.origin_y + 0x48) >= this->y.HALF.HI) ? 0x10 : 0; LinearMoveUpdate(this); } else { if (--this->actionDelay == 0) { @@ -389,8 +389,8 @@ void VaatiWrathType0Action8(Entity* this) { sub_08042004(this); UpdateAnimationSingleFrame(this); LinearMoveUpdate(this); - if (((gRoomControls.roomOriginX + 0x20) > this->x.HALF.HI) || - ((gRoomControls.roomOriginX + 0x140) < this->x.HALF.HI)) { + if (((gRoomControls.origin_x + 0x20) > this->x.HALF.HI) || + ((gRoomControls.origin_x + 0x140) < this->x.HALF.HI)) { if (0x3f < this->speed) { this->direction ^= 0x10; } @@ -525,7 +525,7 @@ void VaatiWrathType0ActionC(Entity* this) { this->actionDelay--; } else { LinearMoveUpdate(this); - if (gRoomControls.roomOriginY + 0x48 == this->y.HALF.HI) { + if (gRoomControls.origin_y + 0x48 == this->y.HALF.HI) { this->subAction = 2; InitializeAnimation(((VaatiWrathHeapStruct*)this->myHeap)->type1, 0x11); InitializeAnimation(((VaatiWrathHeapStruct*)this->myHeap)->type2, 0x19); @@ -583,7 +583,7 @@ void sub_08041BE8(Entity* this) { DeleteEntity(entity); ((VaatiWrathHeapStruct*)this->myHeap)->object5b = NULL; - gRoomControls.cameraTarget = &gPlayerEntity; + gRoomControls.camera_target = &gPlayerEntity; #endif entity = ((VaatiWrathHeapStruct*)this->myHeap)->eyes[0]; entity->myHeap = NULL; @@ -766,7 +766,7 @@ u32 sub_08041F74(Entity* this, u32 unk1) { } heap = ((VaatiWrathHeapStruct*)this->myHeap); arm = NULL; - if ((gScreenTransition.field_0x39 >> unk1 & 1U) != 0) { + if ((gRoomTransition.field_0x39 >> unk1 & 1U) != 0) { arm = CreateEnemy(VAATI_ARM, 0); arm->type2 = unk1; arm->parent = this; @@ -830,7 +830,7 @@ u32 sub_0804207C(Entity* this) { return sub_080045D4(arm->x.HALF.HI, arm->y.HALF.HI, x, y); } else { if (gPlayerEntity.y.HALF.HI < 0x40) { - tmp = gRoomControls.roomOriginY + 0x18; + tmp = gRoomControls.origin_y + 0x18; } else { tmp = gPlayerEntity.y.HALF.HI - 0x28; @@ -885,7 +885,7 @@ void sub_080421AC(Entity* this) { this->field_0x7c.HALF_U.HI--; } else { if (this->field_0x78.HALF.HI == 0) { - if (((Random() & 1) != 0) && ((gScreenTransition.field_0x39 & 0xc) != 0)) { + if (((Random() & 1) != 0) && ((gRoomTransition.field_0x39 & 0xc) != 0)) { sub_08042264(this); this->field_0x78.HALF.HI = 1; return; @@ -991,7 +991,7 @@ void sub_0804235C(Entity* this) { #if defined USA || defined DEMO_USA || defined DEMO_JP void VaatiWrathType0PreAction(Entity* this) { int temp; - if ((gScreenTransition.field_0x38 & 2) == 0) { + if ((gRoomTransition.field_0x38 & 2) == 0) { if (gSave.unk48C[3] != 0) { gSave.unk48C[3]--; } else { @@ -1002,7 +1002,7 @@ void VaatiWrathType0PreAction(Entity* this) { if (gPlayerEntity.field_0x7a.HWORD == 0) { if ((gPlayerEntity.z.HALF.HI & 0x8000U) == 0 || (gPlayerState.field_0xa != 0)) { CreateEzloHint(0xb70, 0); - gScreenTransition.field_0x38 |= 2; + gRoomTransition.field_0x38 |= 2; } } } diff --git a/src/enemy/vaatiWrathEye.c b/src/enemy/vaatiWrathEye.c index 9cb316c7..126e9912 100644 --- a/src/enemy/vaatiWrathEye.c +++ b/src/enemy/vaatiWrathEye.c @@ -35,7 +35,7 @@ void VaatiWrathEye(Entity* this) { } void VaatiWrathEyeAction0(Entity* this) { - if ((gScreenTransition.field_0x38 & 1) != 0) { + if ((gRoomTransition.field_0x38 & 1) != 0) { this->action = 2; InitializeAnimation(this, 1); } else { @@ -57,7 +57,7 @@ void VaatiWrathEyeAction1(Entity* this) { void VaatiWrathEyeAction2(Entity* this) { sub_080485D8(this); - if ((gScreenTransition.field_0x39 & 3) == 0) { + if ((gRoomTransition.field_0x39 & 3) == 0) { this->action = 3; COLLISION_ON(this); this->speed = 0x80; diff --git a/src/enemy/waterDrop.c b/src/enemy/waterDrop.c index 8ee1a6db..f3b936df 100644 --- a/src/enemy/waterDrop.c +++ b/src/enemy/waterDrop.c @@ -59,8 +59,8 @@ void sub_0802A2FC(Entity* this) { } void sub_0802A334(Entity* this) { - u32 x = (this->x.HALF.HI - gRoomControls.roomScrollX + gScreen.bg1.xOffset) >> 3; - u32 y = (this->y.HALF.HI - gRoomControls.roomScrollY + gScreen.bg1.yOffset) >> 3; + u32 x = (this->x.HALF.HI - gRoomControls.scroll_x + gScreen.bg1.xOffset) >> 3; + u32 y = (this->y.HALF.HI - gRoomControls.scroll_y + gScreen.bg1.yOffset) >> 3; if (gBG3Buffer[(x & 0x1fU) + (y & 0x1fU) * 0x20 + 0x400]) { this->collisionLayer = 2; } else { @@ -70,8 +70,8 @@ void sub_0802A334(Entity* this) { } void sub_0802A39C(Entity* this) { - u32 x = (gPlayerEntity.x.HALF.HI - gRoomControls.roomScrollX + gScreen.bg1.xOffset) >> 3; - u32 y = (gPlayerEntity.y.HALF.HI - gRoomControls.roomScrollY + gScreen.bg1.yOffset - 10) >> 3; + u32 x = (gPlayerEntity.x.HALF.HI - gRoomControls.scroll_x + gScreen.bg1.xOffset) >> 3; + u32 y = (gPlayerEntity.y.HALF.HI - gRoomControls.scroll_y + gScreen.bg1.yOffset - 10) >> 3; if (gBG3Buffer[(x & 0x1fU) + (y & 0x1fU) * 0x20 + 0x400]) { COLLISION_OFF(this); } else { diff --git a/src/enterPortalSubtask.c b/src/enterPortalSubtask.c index 0387751a..712ab7ca 100644 --- a/src/enterPortalSubtask.c +++ b/src/enterPortalSubtask.c @@ -17,9 +17,9 @@ extern void (*const gUnk_080D412C[])(); extern struct_02018EB0 gUnk_02018EB0; -u32 sub_0804AA84(void) { +u32 IsEnterPortal(void) { if (gArea.playShrinkSeq) { - gMain.transition = 4; + gMain.substate = 4; gArea.filler[8] = 0; gArea.filler[9] = 0; *(u16*)&gArea.filler[10] = 0; @@ -32,7 +32,7 @@ u32 sub_0804AA84(void) { } } -void sub_0804AAB8(void) { +void GameMain_MinishPortal(void) { gUnk_080D4120[gArea.filler[8]](); } @@ -48,8 +48,8 @@ void sub_0804AB04(void) { UpdateEntities(); if (gArea.field_0x10 != 0) { FlushSprites(); - sub_080AD9B0(); - sub_080AD918(); + DrawEntities(); + CopyOAM(); } } @@ -63,6 +63,6 @@ void sub_0804AB24(void) { } } -void sub_0804AB54(void) { +void Subtask_PortalCutscene(void) { gUnk_080D412C[gArea.filler[8]](); } diff --git a/src/entity.c b/src/entity.c index bdbe2e55..a7c1b617 100644 --- a/src/entity.c +++ b/src/entity.c @@ -41,7 +41,7 @@ void sub_0805E248(void) { s32 v0; v0 = gUnk_03004030.unk_00->unk_06; - if (gRoomControls.areaID == AREA_VEIL_FALLS || gRoomControls.areaID == AREA_VEIL_FALLS_DIG_CAVE) { + if (gRoomControls.area == AREA_VEIL_FALLS || gRoomControls.area == AREA_VEIL_FALLS_DIG_CAVE) { SetTileType(636, v0 - 65, 1); SetTileType(643, v0 - 65, 2); SetTileType(637, v0 - 64, 1); @@ -66,7 +66,7 @@ void sub_0805E248(void) { } void sub_0805E374(Entity* e) { - u8 r3 = gScreenTransition.player_status.field_0x24[8]; + u8 r3 = gRoomTransition.player_status.field_0x24[8]; u8* array = gUnk_081091F8; if (r3 != 2) { @@ -83,7 +83,7 @@ void SetDefaultPriority(Entity* ent, u32 prio) { bool32 CheckDontUpdate(Entity* this) { u32 value; - if (this->flags & ENT_ASLEEP) + if (this->flags & ENT_DELETED) return TRUE; if (this->action == 0) return FALSE; @@ -227,9 +227,9 @@ void EraseAllEntities() { sub_0805E98C(); gEntCount = 0; gManagerCount = 0; - gUnk_03000000.unk[0].unk7 = 1; - gUnk_03000000.unk[0].unk6 = 1; - gUnk_03000000.unk[1].unk6 = 1; + gOAMControls.unk[0].unk7 = 1; + gOAMControls.unk[0].unk6 = 1; + gOAMControls.unk[1].unk6 = 1; } extern Entity gUnk_030015A0[0x48]; @@ -458,16 +458,16 @@ void sub_0805E98C(void) { } } -void sub_0805E9A8(void) { +void QueueEntityDeletion(void) { Entity* i; LinkedList* list; list = &gEntityLists[0]; do { for (i = list->first; (u32)i != (u32)list; i = i->next) { - i->flags &= ~2; - if ((i->flags & 0x20) == 0) { - i->flags |= 0x10; + i->flags &= ~ENT_SCRIPTED; + if ((i->flags & ENT_PERSIST) == 0) { + i->flags |= ENT_DELETED; } } } while (++list < &gEntityLists[9]); @@ -482,7 +482,7 @@ void DeleteSleepingEntities(void) { do { for (ent = list->first; (u32)ent != (u32)list; ent = next) { next = ent->next; - if (ent->flags & ENT_ASLEEP) + if (ent->flags & ENT_DELETED) DeleteEntityAny(ent); } } while (++list < &gEntityLists[9]); diff --git a/src/fade.c b/src/fade.c index 04cd34e5..dab44d41 100644 --- a/src/fade.c +++ b/src/fade.c @@ -17,7 +17,7 @@ extern u32 gMakeFadeBuff256; typedef void (*fptrMakeFadeBuff256)(u8*, u8*, u16, u8); void SetBrightness(u32 arg0) { - gSaveHeader->brightnessPref = arg0; + gSaveHeader->brightness = arg0; gUsedPalettes = 0xffffffff; } @@ -78,7 +78,7 @@ void DoFade(u32 type, u32 speed) { gFadeControl.field_0x2 = 0; } if (type & 8) { - gUnk_03000000.spritesOffset = 1; + gOAMControls.spritesOffset = 1; gScreen.bg1.control |= BGCNT_MOSAIC; gScreen.bg2.control |= BGCNT_MOSAIC; gScreen.bg3.control |= BGCNT_MOSAIC; @@ -182,7 +182,7 @@ static u32 sub_08050230(FadeControl* ctl) { return 1; // fade is finished - gUnk_03000000.spritesOffset = 0; + gOAMControls.spritesOffset = 0; if ((type & 1) == 0) { // reset registers if fading in gScreen.bg0.control &= ~BGCNT_MOSAIC; diff --git a/src/fileScreen.c b/src/fileselect.c similarity index 93% rename from src/fileScreen.c rename to src/fileselect.c index 691c5999..fed40d47 100644 --- a/src/fileScreen.c +++ b/src/fileselect.c @@ -1,4 +1,4 @@ -#include "fileScreen.h" +#include "fileselect.h" #include "main.h" #include "common.h" #include "screen.h" @@ -36,7 +36,7 @@ typedef enum { static void HandleFileScreenEnter(void); static void HandleFileScreenActive(void); static void HandleFileScreenExit(void); -static void (*const sScreenHandlers[])(void) = { +static void (*const sTaskHandlers[])(void) = { HandleFileScreenEnter, HandleFileScreenActive, HandleFileScreenExit, @@ -129,21 +129,21 @@ void SetFileSelectState(FileSelectState mode) { } void LoadOptionsFromSave(u32 idx) { - u8 messageSpeed; - u8 brightnessPref; + u8 msg_speed; + u8 brightness; if (idx >= NUM_SAVE_SLOTS) { // these apply to the language selection screen - messageSpeed = 1; - brightnessPref = 1; + msg_speed = 1; + brightness = 1; } else { SaveFile* saveFile = &gUnk_02019EE0.saves[idx]; - messageSpeed = saveFile->messageSpeed; - brightnessPref = saveFile->brightnessPref; + msg_speed = saveFile->msg_speed; + brightness = saveFile->brightness; } - gSaveHeader->messageSpeed = messageSpeed; - gSaveHeader->brightnessPref = brightnessPref; + gSaveHeader->msg_speed = msg_speed; + gSaveHeader->brightness = brightness; gUsedPalettes = 0xFFFFFFFF; } @@ -155,9 +155,9 @@ void SetActiveSave(u32 idx) { LoadOptionsFromSave(idx); } -void HandleChooseFileScreen(void) { +void FileSelectTask(void) { FlushSprites(); - sScreenHandlers[gMain.funcIndex](); + sTaskHandlers[gMain.state](); if (gUnk_02032EC0.lastState != gUnk_02032EC0.state) { gUnk_02032EC0.lastState = gUnk_02032EC0.state; gScreen.bg0.xOffset = 0; @@ -176,11 +176,11 @@ void HandleChooseFileScreen(void) { UpdateEntities(); sub_0805066C(); sub_0801C1D4(); - sub_0801C208(); - sub_080AD9B0(); - sub_080AD918(); - if (gUnk_02019EE0.unk3 != gSaveHeader->gameLanguage) { - gUnk_02019EE0.unk3 = gSaveHeader->gameLanguage; + DrawOAMCmd(); + DrawEntities(); + CopyOAM(); + if (gUnk_02019EE0.unk3 != gSaveHeader->language) { + gUnk_02019EE0.unk3 = gSaveHeader->language; sub_080503A8(0x6); sub_080503A8(0xF); } @@ -194,13 +194,13 @@ static void HandleFileScreenEnter(void) { MemClear((void*)VRAM, 0x80); // clear palettes MessageInitialize(); EraseAllEntities(); - sub_08080668(); + ClearTilemaps(); ResetPalettes(); - sub_0801CFA8(0); + ResetPaletteTable(0); MemClear(&gUnk_0200AF00, sizeof(gUnk_0200AF00)); MemClear(&gUnk_02019EE0, sizeof(gUnk_02019EE0)); gUnk_02019EE0.unk3 = 7; - gUnk_02019EE0.unk6 = gSaveHeader->gameLanguage > LANGUAGE_EN ? 3 : 0; + gUnk_02019EE0.unk6 = gSaveHeader->language > LANGUAGE_EN ? 3 : 0; MemClear(&gUnk_02032EC0, sizeof(gUnk_02032EC0)); gUnk_02032EC0.lastState = 8; SetFileSelectState(STATE_NONE); @@ -222,7 +222,7 @@ static void HandleFileScreenEnter(void) { gScreen.controls.layerFXControl = BLDCNT_TGT1_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_EFFECT_BLEND; gScreen.controls.alphaBlend = BLDALPHA_BLEND(15, 10); gGFXSlots.unk0 = 1; - gMain.funcIndex = 1; + gMain.state = 1; SoundReq(BGM_FILE_SELECT); DoFade(4, 8); } @@ -232,7 +232,7 @@ static void HandleFileScreenActive(void) { static void HandleFileScreenExit(void) { if (!gFadeControl.active) { - InitScreen(SCREEN_GAMEPLAY); + SetTask(TASK_GAME); } } @@ -287,7 +287,7 @@ void sub_0805070C(void) { u32 i; int j; struct_02036540* var0; - char* playerName; + char* name; var0 = sub_0805F2C8(); if (var0) { @@ -299,9 +299,9 @@ void sub_0805070C(void) { for (i = 0; i < NUM_SAVE_SLOTS; i++) { var0->unk6 = 0; MemClear(var0->unk8, 0x200); - playerName = &gUnk_02019EE0.saves[i].playerName[0]; + name = &gUnk_02019EE0.saves[i].name[0]; for (j = 0; j < FILENAME_LENGTH; j++) { - sub_0805F7DC(playerName[j], var0); + sub_0805F7DC(name[j], var0); } // i is a struct of size 0x200 MemCopy(var0->unk8, (void*)(OBJ_VRAM0 + 0x4000 + i * 0x200), 0x200); @@ -418,7 +418,7 @@ void sub_08050940(void) { keys &= ~(DPAD_UP | DPAD_DOWN); } - num_rows = gSaveHeader->gameLanguage > 1 ? NUM_SAVE_SLOTS + 1 : NUM_SAVE_SLOTS; + num_rows = gSaveHeader->language > 1 ? NUM_SAVE_SLOTS + 1 : NUM_SAVE_SLOTS; mode = gUnk_02032EC0.lastState; switch (keys) { case DPAD_UP: @@ -677,7 +677,7 @@ void HandleFileLanguageSelect(void) { void sub_08050DB8(void) { MemClear(&gBG2Buffer, sizeof(gBG2Buffer)); sub_080503A8(0xc); - gMenu.field_0x4 = gSaveHeader->gameLanguage; + gMenu.field_0x4 = gSaveHeader->language; sub_080A7114(1); } @@ -687,7 +687,7 @@ void sub_08050DE4(void) { if (gUnk_02019EE0.isTransitioning) return; - row_idx = gSaveHeader->gameLanguage; + row_idx = gSaveHeader->language; switch (gInput.newKeys) { case DPAD_UP: row_idx--; @@ -707,7 +707,7 @@ void sub_08050DE4(void) { break; case B_BUTTON: row_idx = gMenu.field_0x4; - gSaveHeader->gameLanguage = gMenu.field_0x4; + gSaveHeader->language = gMenu.field_0x4; SoundReq(SFX_MENU_CANCEL); SetFileSelectState(STATE_NONE); break; @@ -720,8 +720,8 @@ void sub_08050DE4(void) { if (row_idx > 6) { row_idx = 6; } - if (gSaveHeader->gameLanguage != row_idx) { - gSaveHeader->gameLanguage = row_idx; + if (gSaveHeader->language != row_idx) { + gSaveHeader->language = row_idx; SoundReq(SFX_TEXTBOX_CHOICE); } } @@ -739,8 +739,8 @@ void sub_08050EB8(void) { SaveFile* save; sub_080503A8(0xe); save = &gUnk_02019EE0.saves[gUnk_02019EE0.unk6]; - gUnk_02019EE0.unk4 = save->messageSpeed; - gUnk_02019EE0.unk5 = save->brightnessPref; + gUnk_02019EE0.unk4 = save->msg_speed; + gUnk_02019EE0.unk5 = save->brightness; gMenu.column_idx = 0; gMenu.transitionTimer = 0xff; sub_080A7114(1); @@ -755,9 +755,9 @@ NONMATCH("asm/non_matching/fileScreen/sub_08050EF4.inc", void sub_08050EF4(void) if (gUnk_02019EE0.isTransitioning) return; - p_option = &gUnk_02019EE0.saves[gUnk_02019EE0.unk6].brightnessPref; + p_option = &gUnk_02019EE0.saves[gUnk_02019EE0.unk6].brightness; if (gMenu.column_idx == 0) { - p_option = &gUnk_02019EE0.saves[gUnk_02019EE0.unk6].messageSpeed; + p_option = &gUnk_02019EE0.saves[gUnk_02019EE0.unk6].msg_speed; } mode = 0; @@ -783,7 +783,7 @@ NONMATCH("asm/non_matching/fileScreen/sub_08050EF4.inc", void sub_08050EF4(void) case A_BUTTON: case START_BUTTON: mode = 2; - if (*(u16*)&gUnk_02019EE0.unk4 != *(u16*)&gUnk_02019EE0.saves[gUnk_02019EE0.unk6].messageSpeed) + if (*(u16*)&gUnk_02019EE0.unk4 != *(u16*)&gUnk_02019EE0.saves[gUnk_02019EE0.unk6].msg_speed) mode = 3; break; case B_BUTTON: @@ -793,8 +793,8 @@ NONMATCH("asm/non_matching/fileScreen/sub_08050EF4.inc", void sub_08050EF4(void) switch (mode) { case 3: - gUnk_02019EE0.saves[gUnk_02019EE0.unk6].messageSpeed = gUnk_02019EE0.unk4; - gUnk_02019EE0.saves[gUnk_02019EE0.unk6].brightnessPref = gUnk_02019EE0.unk5; + gUnk_02019EE0.saves[gUnk_02019EE0.unk6].msg_speed = gUnk_02019EE0.unk4; + gUnk_02019EE0.saves[gUnk_02019EE0.unk6].brightness = gUnk_02019EE0.unk5; SoundReq(SFX_MENU_CANCEL); sub_080A7114(mode); SetActiveSave(gUnk_02019EE0.unk6); @@ -867,7 +867,7 @@ NONMATCH("asm/non_matching/fileScreen/sub_080610B8.inc", void sub_080610B8(void) END_NONMATCH void sub_08051358(void) { - gMenu.field_0x12 = gSaveHeader->gameLanguage == 0 ? 4 : 3; + gMenu.field_0x12 = gSaveHeader->language == 0 ? 4 : 3; if (gMenu.focusCoords[0] != 0x0b || gMenu.focusCoords[1] != 0x5) { gMenu.focusCoords[1] = 0x5; @@ -948,7 +948,7 @@ void sub_08051480(u32 c) { } gMenu.unk13 = idx + 1; - gSave.playerName[idx] = c; + gSave.name[idx] = c; sub_08051574(SFX_6B); } @@ -956,7 +956,7 @@ u32 sub_080514BC(u32 a1) { u32 c; u32 idx; - if (gSaveHeader->gameLanguage != 0) + if (gSaveHeader->language != 0) return 1; switch (a1) { @@ -972,7 +972,7 @@ u32 sub_080514BC(u32 a1) { if (idx == 0) return 0; - c = gSave.playerName[idx - 1]; + c = gSave.name[idx - 1]; if (c - 0xa4 < 0x29) { switch (a1) { case 0x0: @@ -1200,9 +1200,9 @@ void sub_080518E4(void) { void HandleFileStart(void) { if (gMenu.menuType == 0) { gMenu.menuType = 1; - gSaveHeader->messageSpeed = gSave.messageSpeed; - gSaveHeader->brightnessPref = gSave.brightnessPref; - gMain.funcIndex = 2; + gSaveHeader->msg_speed = gSave.msg_speed; + gSaveHeader->brightness = gSave.brightness; + gMain.state = 2; DoFade(5, 8); } } @@ -1213,8 +1213,8 @@ void sub_0805194C(u32 save_idx) { gUnk_02019EE0.saveStatus[save_idx] = 0; save = &gUnk_02019EE0.saves[save_idx]; MemClear(save, sizeof(*save)); - save->messageSpeed = 1; - save->brightnessPref = 1; + save->msg_speed = 1; + save->brightness = 1; save->stats.health = 24; save->stats.maxHealth = 24; } diff --git a/src/game.c b/src/game.c index 9b5616e4..cd3aab0f 100644 --- a/src/game.c +++ b/src/game.c @@ -9,12 +9,13 @@ #include "flags.h" #include "save.h" #include "common.h" -#include "fileScreen.h" +#include "fileselect.h" #include "menu.h" #include "functions.h" #include "area.h" #include "message.h" #include "game.h" +#include "item.h" extern u8 gUpdateVisibleTiles; @@ -39,37 +40,37 @@ extern void (*gUnk_080FCA08[])(); extern void (*gUnk_080FCA14[])(); extern void (*gUnk_080FCA70[])(void); -void sub_0807CA18(void); -void sub_080300AC(void); -void sub_08049CD4(void); -void sub_0807059C(void); -void sub_080A7124(void); +void FinalizeSave(void); +void ClearArmosData(void); +void ClearRoomMemory(void); +void ClearMenuSavestate(void); +void ResetUI(void); void sub_0806FD8C(void); void sub_080300C4(void); u32 sub_0805BC04(void); void DeleteSleepingEntities(void); -u32 sub_0805BBBC(void); +u32 UpdateLightLevel(void); void sub_080185F8(void); -void sub_08080A40(void); -u32 sub_0804AA84(void); -void sub_08078CB4(void); -void sub_0801C344(); -u32 sub_080705AC(); +void UpdateDoorTransition(void); +u32 IsEnterPortal(void); +void UpdateCarriedObject(void); +void DrawUI(); +u32 CheckPlayerActivity(); void CollisionMain(); void sub_0805BB74(); void CreateZeldaFollower(void); -void sub_0807C0DC(); -void sub_0805E9A8(); +void LoadRoomGfx(); +void QueueEntityDeletion(); void sub_0804AF90(); -void sub_0804AFDC(); -void sub_0805283C(); +void CallRoomProp6(); +void LoadRoomBgm(); void UpdateScroll(); void UpdateBgAnim(); void sub_08052010(); void sub_080520C4(); void CleanUpGFXSlots(); void sub_080ADE24(); -void sub_0801C370(u32); +void InitUI(u32); void sub_0801AE44(u32); void GenerateAreaHint(void); void ForceSetPlayerState(u32); @@ -81,22 +82,22 @@ void sub_0806F364(void); void sub_08052FF4(u32 area, u32 room); void sub_0807C860(void); void sub_0807C740(void); -void sub_080197AC(void); -void sub_08053390(void); +void SetBGDefaults(void); +void LoadItemGfx(void); -static void sub_08053518(void); +static void ResetTmpFlags(void); static void InitializeEntities(void); -static void sub_08053178(void); -static void sub_08052BF8(void); -static void sub_08051E04(void); -static void sub_08052F1C(void); -/* static */ void sub_08052C5C(void); +static void CheckAreaDiscovery(void); +static void CreateManagerF(void); +static void UpdateWindcrests(void); +static void UpdateFakeScroll(void); +static void UpdatePlayerMapCoords(void); static void sub_08052C3C(void); static void sub_0805340C(void); static void sub_08051D98(void); static void sub_08051DCC(void); -/* static */ u32 sub_080528B4(void); -/* static */ u32 HandleRoomExit(void); +static u32 CheckGameOver(void); +static u32 HandleRoomExit(void); static void sub_080531F8(void); static void sub_0805329C(void); static void InitializePlayer(void); @@ -160,98 +161,102 @@ typedef struct { extern void CreateDialogBox(); -void HandleGameplayScreen(void) { - gScreenTransition.frameCount++; - gUnk_080FC9D8[gMain.funcIndex](); +void GameTask(void) { + gRoomTransition.frameCount++; + gUnk_080FC9D8[gMain.state](); #ifdef DEMO_USA - if (gSave.unk48C[7] != 0) { - if (--gSave.unk48C[7] == 0) { + if (gSave.demo_timer != 0) { + if (--gSave.demo_timer == 0) { DoFade(7, 2); - gMain.funcIndex = 3; + gMain.state = GAMETASK_EXIT; } } #endif } -void sub_080519B0(void) { +void GameTask_Transition(void) { + // wait for file select to fade out if (gFadeControl.active) return; DispReset(1); InitSoundPlayingInfo(); zMallocInit(); - sub_080A7124(); - sub_0807059C(); - MemClear(&gScreenTransition, 0xB0); - sub_08049CD4(); - sub_080300AC(); - sub_0807CA18(); - MemCopy(&gSave.saved_status, &gScreenTransition.player_status, 0x20); - gScreenTransition.transitionType = 4; - sub_08053518(); - gMain.funcIndex = 1; - gMain.transition = 0; + ResetUI(); + ClearMenuSavestate(); + MemClear(&gRoomTransition, sizeof(gRoomTransition)); + ClearRoomMemory(); + ClearArmosData(); + + FinalizeSave(); + // spawn in with saved status + MemCopy(&gSave.saved_status, &gRoomTransition.player_status, sizeof (gRoomTransition.player_status)); + gRoomTransition.type = TRANSITION_FADE_BLACK_SLOW; + ResetTmpFlags(); + + gMain.state = GAMETASK_INIT; + gMain.substate = 0; } -void sub_08051A14(void) { +void GameTask_Init(void) { DispReset(1); gFadeControl.mask = 0xffffffff; - MemClear(&gUnk_03000000, 0xB74); - MemClear(&gUnk_02032EC0, 0x3B4); + MemClear(&gOAMControls, 0xB74); + MemClear(&gUnk_02032EC0, sizeof(gUnk_02032EC0)); EraseAllEntities(); - sub_080197AC(); - sub_08080668(); + SetBGDefaults(); + ClearTilemaps(); ResetPalettes(); - sub_0801CFA8(1); + ResetPaletteTable(1); sub_0806FD8C(); - gRoomControls.areaID = gScreenTransition.player_status.area_next; - gRoomControls.roomID = gScreenTransition.player_status.room_next; - sub_08053320(); + gRoomControls.area = gRoomTransition.player_status.area_next; + gRoomControls.room = gRoomTransition.player_status.room_next; + LoadGfxGroups(); gGFXSlots.unk0 = 1; - gMain.funcIndex = 2; + gMain.state = GAMETASK_MAIN; } -void sub_08051A90(void) { - gUnk_080FC9E8[gMain.transition](); +void GameTask_Main(void) { + gUnk_080FC9E8[gMain.substate](); } -void InitializeNewRoom(void) { +void GameMain_InitRoom(void) { SetInitializationPriority(); gScreen.lcd.displayControl = 0x1740; - gMain.transition = 1; - gScreenTransition.transitioningOut = 0; - gScreenTransition.field_0x4[0] = 0; - gScreenTransition.field_0x4[1] = 0; + gMain.substate = GAMEMAIN_CHANGEROOM; + gRoomTransition.transitioningOut = 0; + gRoomTransition.field_0x4[0] = 0; + gRoomTransition.field_0x4[1] = 0; MessageInitialize(); - sub_08052CFC(); - sub_0801C370(0); + InitRoom(); + InitUI(0); InitializeEntities(); #ifndef EU sub_0801855C(); #endif } -void sub_08051AF0(void) { +void GameMain_ChangeRoom(void) { UpdateEntities(); - if (!sub_0805BBBC()) + if (!UpdateLightLevel()) UpdateScroll(); UpdateBgAnim(); - sub_08000108(); - sub_0801C344(); + UpdateScrollVram(); + DrawUI(); UpdateManagers(); FlushSprites(); - sub_0801C208(); - sub_08078CB4(); - sub_080AD9B0(); - sub_080AD918(); + DrawOAMCmd(); + UpdateCarriedObject(); + DrawEntities(); + CopyOAM(); - if (gFadeControl.active || gRoomControls.unk2 != 0) + if (gFadeControl.active || gRoomControls.reload_flags != 0) return; - sub_08052F1C(); + UpdateFakeScroll(); if (gArea.musicIndex != gArea.pMusicIndex) { gArea.musicIndex = gArea.pMusicIndex; - SoundReq(gArea.pMusicIndex | 0x800B0000); + SoundReq(gArea.pMusicIndex | SONG_PLAY_VOL_RESET); } DeleteSleepingEntities(); @@ -259,47 +264,48 @@ void sub_08051AF0(void) { if (sub_0805BC04()) return; - sub_08052C5C(); + UpdatePlayerMapCoords(); ResetSystemPriority(); - sub_08051E04(); + UpdateWindcrests(); sub_080300C4(); - gMain.transition = 2; + gMain.substate = GAMEMAIN_UPDATE; SetPlayerControl(0); gUnk_02034490[0] = 0; #if defined(USA) || defined(DEMO_USA) if (gArea.inventoryGfxIdx != 0xff) { sub_0801855C(); } - sub_08052BF8(); - sub_08053178(); + CreateManagerF(); + CheckAreaDiscovery(); #elif defined(EU) - sub_08053178(); + CheckAreaDiscovery(); sub_0801855C(); #elif defined(JP) - sub_08053178(); + CheckAreaDiscovery(); if (gArea.inventoryGfxIdx != 0xff) { sub_0801855C(); } #elif defined(DEMO_JP) - if (gScreenTransition.field_0x2c[5]) - sub_08053178(); + if (gRoomTransition.field_0x2c[5]) + CheckAreaDiscovery(); if (gArea.inventoryGfxIdx != 0xff) { sub_0801855C(); } - sub_08052BF8(); + CreateManagerF(); #endif if (!gRoomVars.field_0x0) { RequestPriorityDuration(NULL, 1); } } -void sub_08051BD0(void) { - if (sub_080705AC() || sub_0804AA84()) { +void GameMain_Update(void) { + if (CheckPlayerActivity() || IsEnterPortal()) { return; } sub_0805340C(); - if (gMain.transition != 2) { + // leave early if player is entering a portal + if (gMain.substate != GAMEMAIN_UPDATE) { return; } @@ -308,68 +314,68 @@ void sub_08051BD0(void) { FlushSprites(); UpdateEntities(); - sub_08080A40(); + UpdateDoorTransition(); CollisionMain(); UpdateScroll(); UpdateBgAnim(); - sub_08000108(); + UpdateScrollVram(); sub_08052C3C(); - sub_0801C344(); + DrawUI(); UpdateManagers(); - sub_0801C208(); - sub_08078CB4(); - sub_080AD9B0(); + DrawOAMCmd(); + UpdateCarriedObject(); + DrawEntities(); HandleRoomExit(); - sub_08052C5C(); - sub_080528B4(); + UpdatePlayerMapCoords(); + CheckGameOver(); sub_080185F8(); - sub_080AD918(); - switch (gRoomControls.unk2) { - case 1: - gPlayerState.queued_action = 0x17; - gMain.transition = 1; + CopyOAM(); + switch (gRoomControls.reload_flags) { + case RELOAD_ALL: + gPlayerState.queued_action = PLAYER_ROOMTRANSITION; + gMain.substate = GAMEMAIN_CHANGEROOM; SetRoomReloadPriority(); sub_08051D98(); break; - case 2: - gPlayerState.queued_action = 0x17; - gMain.transition = 1; + case RELOAD_ENTITIES: + gPlayerState.queued_action = PLAYER_ROOMTRANSITION; + gMain.substate = GAMEMAIN_CHANGEROOM; SetRoomReloadPriority(); sub_08051DCC(); break; } } -void sub_08051CA8(void) { - if (sub_080705AC()) +void GameMain_BarrelUpdate(void) { + if (CheckPlayerActivity()) return; UpdateEntities(); CollisionMain(); - sub_0801C344(); + DrawUI(); UpdateManagers(); FlushSprites(); - sub_0801C208(); - sub_08078CB4(); - sub_080AD9B0(); + DrawOAMCmd(); + UpdateCarriedObject(); + DrawEntities(); HandleRoomExit(); - sub_080528B4(); - sub_080AD918(); + CheckGameOver(); + CopyOAM(); if (!gFadeControl.active) ResetSystemPriority(); } -void sub_08051CF0(void) { +void GameMain_ChangeArea(void) { FlushSprites(); - sub_0801C208(); - sub_080AD9B0(); + DrawOAMCmd(); + DrawEntities(); gMain.pad = 1; - sub_080AD918(); + CopyOAM(); if (!gFadeControl.active) { DispReset(1); - gMain.funcIndex = 1; - gMain.transition = 0; - gScreenTransition.transitioningOut = 1; + gMain.state = GAMETASK_INIT; + gMain.substate = 0; + gRoomTransition.transitioningOut = 1; } } @@ -379,25 +385,25 @@ void sub_08051D2C(void) { DoSoftReset(); #else DoFade(7, 8); - InitScreen(3); + SetTask(TASK_GAMEOVER); #endif } static void InitializeEntities(void) { sub_08052EA0(); sub_0804AF90(); - sub_0804AFDC(); + CallRoomProp6(); InitializePlayer(); gUnk_03004030.unk_00 = NULL; sub_0807C740(); gUpdateVisibleTiles = 1; - sub_0805283C(); + LoadRoomBgm(); SetColor(0, 0); LoadRoom(); CreateZeldaFollower(); - sub_0804AFF4(); + CallRoomProp5And7(); sub_0805329C(); - sub_08000108(); + UpdateScrollVram(); sub_0805BB74(0xffffffff); sub_080531F8(); } @@ -405,30 +411,33 @@ static void InitializeEntities(void) { void sub_08051D98(void) { sub_08052EA0(); gRoomVars.field_0x0 = 1; - sub_0805E9A8(); + + // remove old entities, unless persistent + QueueEntityDeletion(); + sub_0804AF90(); - sub_0804AFDC(); - sub_0807C0DC(); - sub_0805283C(); + CallRoomProp6(); + LoadRoomGfx(); + LoadRoomBgm(); LoadRoom(); - sub_0804AFF4(); + CallRoomProp5And7(); SetPlayerControl(1); } void sub_08051DCC(void) { - gRoomControls.areaID = gScreenTransition.player_status.area_next; - gRoomControls.roomID = gScreenTransition.player_status.room_next; + gRoomControls.area = gRoomTransition.player_status.area_next; + gRoomControls.room = gRoomTransition.player_status.room_next; RoomExitCallback(); - gScreenTransition.transitionType = 3; - sub_08052CFC(); + gRoomTransition.type = TRANSITION_3; + InitRoom(); sub_08052EA0(); - sub_0805E9A8(); + QueueEntityDeletion(); sub_0804AF90(); - sub_0804AFDC(); - sub_0805283C(); + CallRoomProp6(); + LoadRoomBgm(); } -void sub_08051E04() { +void UpdateWindcrests() { if (CheckIsOverworld()) { struct_08127F94* i; u32 hi_x, hi_y; @@ -453,20 +462,20 @@ void sub_08051E04() { } } -void sub_08051E68() { +void Subtask_ChuchuCutscene() { gUnk_080FCA08[gMenu.menuType](); } void sub_08051E84() { struct_080FCA20* p = &gUnk_080FCA20[gUnk_02032EC0.field_0x3]; - gRoomControls.areaID = p->_0; - gRoomControls.roomID = p->_1; - sub_08053320(); - gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.areaID); + gRoomControls.area = p->_0; + gRoomControls.room = p->_1; + LoadGfxGroups(); + gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.area); SetCurrentRoomPropertyList(p->_0, p->_1); sub_08052FD8(p->_0, p->_1); - gRoomControls.roomScrollX = gRoomControls.roomOriginX + p->_4; - gRoomControls.roomScrollY = gRoomControls.roomOriginY + p->_6; + gRoomControls.scroll_x = gRoomControls.origin_x + p->_4; + gRoomControls.scroll_y = gRoomControls.origin_y + p->_6; gMenu.field_0x0 = p->_2; gMenu.field_0x3 = p->_3 & 0xf; gMenu.field_0xc = (void*)p; @@ -480,12 +489,12 @@ void sub_08051F04(void) { gUnk_080FCA14[gMenu.field_0x0](); FlushSprites(); UpdateEntities(); - sub_080AD9B0(); - sub_080AD918(); + DrawEntities(); + CopyOAM(); UpdateScroll(); UpdateBgAnim(); UpdateManagers(); - sub_08000108(); + UpdateScrollVram(); } void sub_08051F40(u32 a1, u32 a2, u32 a3, u32 a4) { @@ -508,8 +517,8 @@ void sub_08051F78(u32 a1, u32 a2, u32 a3, u32 a4) { void sub_08051F9C(u32 a1, u32 a2, u32 a3, u32 a4) { u32 tmp = gScreen.lcd.displayControl & 0x6000; sub_08052FF4(a1, a2); - gRoomControls.roomScrollX = gRoomControls.roomOriginX + a3; - gRoomControls.roomScrollY = gRoomControls.roomOriginY + a4; + gRoomControls.scroll_x = gRoomControls.origin_x + a3; + gRoomControls.scroll_y = gRoomControls.origin_y + a4; sub_0807C740(); gUpdateVisibleTiles = 1; gUsedPalettes = 0; @@ -543,17 +552,17 @@ void sub_08052010() { gScreen.bg2.updated = 1; } -void HandleGameOverScreen() { - gUnk_080FCA70[gMain.funcIndex](); - if (gMain.funcIndex != 0) { +void GameOverTask() { + gUnk_080FCA70[gMain.state](); + if (gMain.state != 0) { FlushSprites(); DrawGameOverText(); - sub_080AD918(); + CopyOAM(); } } void sub_080520C4(u32 idx) { - gMain.funcIndex = idx; + gMain.state = idx; sub_080A7114(0); } @@ -725,7 +734,7 @@ void sub_080522F4(void) { default: if (gFadeControl.active == 0) { if (gMenu.field_0x3 == 0) { - InitScreen(2); + SetTask(TASK_GAME); } else { DoSoftReset(); } @@ -795,7 +804,7 @@ void SetPopupState(u32 type, u32 choice_idx) { MemCopy(&sDefaultFont, &font, sizeof font); opt = &sPopupOptions[type]; - font.dest = sDefaultFont.dest + (opt->dest_off[gSaveHeader->gameLanguage] + opt->_8 * 32); + font.dest = sDefaultFont.dest + (opt->dest_off[gSaveHeader->language] + opt->_8 * 32); font.right_align = opt->right_align; sub_0805F46C(opt->_a, &font); gScreen.bg1.updated = fakematch; @@ -828,26 +837,26 @@ void InitializePlayer(void) { pl = &gPlayerEntity; - gRoomControls.cameraTarget = pl; - gPlayerState.queued_action = sPlayerSpawnStates[gScreenTransition.player_status.spawn_type]; + gRoomControls.camera_target = pl; + gPlayerState.queued_action = sPlayerSpawnStates[gRoomTransition.player_status.spawn_type]; if (!CheckGlobalFlag(EZERO_1ST)) { gPlayerState.flags |= PL_NO_CAP; } - switch (gScreenTransition.player_status.spawn_type) { + switch (gRoomTransition.player_status.spawn_type) { case PL_SPAWN_DROP: case PL_SPAWN_DROP_MINISH: pl->z.HALF.HI = -0xc0; break; case PL_SPAWN_STEP_IN: gPlayerState.field_0x34[4] = 16; - pl->direction = Direction8FromAnimationState(gScreenTransition.player_status.start_anim); + pl->direction = Direction8FromAnimationState(gRoomTransition.player_status.start_anim); case PL_SPAWN_WALKING: pl->speed = 224; break; case PL_SPAWN_STAIRS_ASCEND: case PL_SPAWN_STAIRS_DESCEND: gPlayerState.field_0x34[4] = 1; - gPlayerState.field_0x34[5] = gScreenTransition.player_status.spawn_type; + gPlayerState.field_0x34[5] = gRoomTransition.player_status.spawn_type; break; case PL_SPAWN_PARACHUTE_FORWARD: gPlayerState.field_0x34[4] = 1; @@ -860,13 +869,13 @@ void InitializePlayer(void) { } pl->kind = PLAYER; - pl->flags |= ENT_COLLIDE | ENT_20; + pl->flags |= ENT_COLLIDE | ENT_PERSIST; pl->spritePriority.b0 = 4; pl->health = gSave.stats.health; - pl->x.HALF.HI = gScreenTransition.player_status.start_pos_x; - pl->y.HALF.HI = gScreenTransition.player_status.start_pos_y; - pl->animationState = gScreenTransition.player_status.start_anim; - pl->collisionLayer = gScreenTransition.player_status.layer; + pl->x.HALF.HI = gRoomTransition.player_status.start_pos_x; + pl->y.HALF.HI = gRoomTransition.player_status.start_pos_y; + pl->animationState = gRoomTransition.player_status.start_anim; + pl->collisionLayer = gRoomTransition.player_status.layer; UpdateSpriteForCollisionLayer(pl); AppendEntityToList(pl, 1); RegisterPlayerHitbox(); @@ -986,19 +995,19 @@ u32 HasDungeonSmallKey(void) { } void sub_080527FC(u32 a1, u32 a2) { - sub_08053320(); + LoadGfxGroups(); #ifndef EU CleanUpGFXSlots(); #endif sub_080ADE24(); - sub_0801C370(1); + InitUI(1); sub_0801AE44(a1); MemCopy(gUnk_02024090, gPaletteBuffer, 1024); gUsedPalettes = -1; } -void sub_0805283C(void) { - gArea.pMusicIndex = gAreaMetadata[gRoomControls.areaID]._3; +void LoadRoomBgm(void) { + gArea.pMusicIndex = gAreaMetadata[gRoomControls.area]._3; if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START)) { gArea.pMusicIndex = BGM_FIGHT_THEME2; } @@ -1015,11 +1024,11 @@ static void sub_0805289C(void) { } #endif -u32 sub_080528B4(void) { - if (gScreenTransition.field_0x4[1]) { +u32 CheckGameOver(void) { + if (gRoomTransition.field_0x4[1]) { InitFade(); - gMain.funcIndex = 3; - gMain.transition = 0; + gMain.state = 3; + gMain.substate = 0; DoFade(5, 8); SoundReq(SONG_STOP_BGM); return 1; @@ -1033,13 +1042,13 @@ void RoomExitCallback(void) { } u32 HandleRoomExit(void) { - if (gScreenTransition.transitioningOut && gSave.stats.health != 0 && gPlayerState.framestate != PL_STATE_DIE) { + if (gRoomTransition.transitioningOut && gSave.stats.health != 0 && gPlayerState.framestate != PL_STATE_DIE) { if (StairsAreValid()) { - gScreenTransition.transitioningOut = 0; + gRoomTransition.transitioningOut = 0; return 0; } - switch (gScreenTransition.transitionType) { + switch (gRoomTransition.type) { case TRANSITION_CUT: DoFade(13, 8); break; @@ -1067,7 +1076,7 @@ u32 HandleRoomExit(void) { break; } RoomExitCallback(); - gMain.transition = 3; + gMain.substate = 3; *(&gMain.pauseInterval + 1) = 1; return 1; } @@ -1082,15 +1091,15 @@ static u32 StairsAreValid(void) { 0 }; const u16* i; - u32 tgt = gScreenTransition.stairs_idx; + u32 tgt = gRoomTransition.stairs_idx; for (i = sStairTypes; i[0] != 0; i += 2) { if (tgt == i[0]) { gPlayerState.queued_action = PLAYER_USEENTRANCE; gPlayerState.field_0x38 = 0; gPlayerState.field_0x39 = i[1]; - if (!gScreenTransition.player_status.spawn_type) - gScreenTransition.player_status.spawn_type = i[1]; + if (!gRoomTransition.player_status.spawn_type) + gRoomTransition.player_status.spawn_type = i[1]; return 1; } } @@ -1098,17 +1107,17 @@ static u32 StairsAreValid(void) { } void InitParachuteRoom(void) { - gScreenTransition.transitioningOut = 1; - gScreenTransition.player_status.start_pos_x = (gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX) & 0x3F8; - gScreenTransition.player_status.start_pos_y = (gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) & 0x3F8; - gScreenTransition.player_status.start_anim = 4; - gScreenTransition.player_status.spawn_type = PL_SPAWN_PARACHUTE_FORWARD; - gScreenTransition.player_status.area_next = gRoomControls.areaID; - gScreenTransition.player_status.room_next = gRoomControls.roomID - 1; + gRoomTransition.transitioningOut = 1; + gRoomTransition.player_status.start_pos_x = (gPlayerEntity.x.HALF.HI - gRoomControls.origin_x) & 0x3F8; + gRoomTransition.player_status.start_pos_y = (gPlayerEntity.y.HALF.HI - gRoomControls.origin_y) & 0x3F8; + gRoomTransition.player_status.start_anim = 4; + gRoomTransition.player_status.spawn_type = PL_SPAWN_PARACHUTE_FORWARD; + gRoomTransition.player_status.area_next = gRoomControls.area; + gRoomTransition.player_status.room_next = gRoomControls.room - 1; } -static void HandleRoomEnter(void) { - switch (gScreenTransition.transitionType) { +static void InitRoomTransition(void) { + switch (gRoomTransition.type) { case TRANSITION_CUT: DoFade(12, 8); break; @@ -1167,23 +1176,23 @@ void DisplayEzloMessage(void) { idx = 0x11; #endif - if (gScreenTransition.player_status.field_0x24[idx] == 0) { - height = gPlayerEntity.y.HALF.HI - gRoomControls.roomScrollY > 96 ? 1 : 13; + if (gRoomTransition.player_status.field_0x24[idx] == 0) { + height = gPlayerEntity.y.HALF.HI - gRoomControls.scroll_y > 96 ? 1 : 13; } else { - height = gScreenTransition.player_status.field_0x24[idx]; + height = gRoomTransition.player_status.field_0x24[idx]; } - MessageAtHeight(gScreenTransition.hint_idx, height); + MessageAtHeight(gRoomTransition.hint_idx, height); } #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) -void sub_08052BF8(void) { +void CreateManagerF(void) { Entity* e = NULL; - if (gScreenTransition.player_status.field_0x24[13]) + if (gRoomTransition.player_status.field_0x24[13]) return; - gScreenTransition.player_status.field_0x24[13] = 1; + gRoomTransition.player_status.field_0x24[13] = 1; #ifndef DEMO_JP - gScreenTransition.player_status.field_0x24[10] = gArea.locationIndex; + gRoomTransition.player_status.field_0x24[10] = gArea.locationIndex; #endif e = (Entity*)GetEmptyManager(); if (e == NULL) @@ -1204,35 +1213,35 @@ void sub_08052C3C(void) { } } -void sub_08052C5C(void) { +void UpdatePlayerMapCoords(void) { if (!CheckIsInteriorNoEnemies()) { if (CheckIsOverworld()) { - gScreenTransition.player_status.overworld_map_x = gPlayerEntity.x.HALF_U.HI; - gScreenTransition.player_status.overworld_map_y = gPlayerEntity.y.HALF_U.HI; + gRoomTransition.player_status.overworld_map_x = gPlayerEntity.x.HALF_U.HI; + gRoomTransition.player_status.overworld_map_y = gPlayerEntity.y.HALF_U.HI; } else if (CheckIsDungeon()) { - gScreenTransition.player_status.dungeon_map_x = gPlayerEntity.x.HALF.HI; - gScreenTransition.player_status.dungeon_map_y = gPlayerEntity.y.HALF.HI; + gRoomTransition.player_status.dungeon_map_x = gPlayerEntity.x.HALF.HI; + gRoomTransition.player_status.dungeon_map_y = gPlayerEntity.y.HALF.HI; } } } void sub_08052CA4(u32 area, u32 room, u32 x, u32 y) { RoomHeader* hdr = gAreaRoomHeaders[area] + room; - gScreenTransition.player_status.overworld_map_x = hdr->map_x + x; - gScreenTransition.player_status.overworld_map_y = hdr->map_y + y; + gRoomTransition.player_status.overworld_map_x = hdr->map_x + x; + gRoomTransition.player_status.overworld_map_y = hdr->map_y + y; } void sub_08052CD0(u32 area, u32 room, u32 x, u32 y) { RoomHeader* hdr = gAreaRoomHeaders[area] + room; - gScreenTransition.player_status.dungeon_map_x = hdr->map_x + x; - gScreenTransition.player_status.dungeon_map_y = hdr->map_y + y; + gRoomTransition.player_status.dungeon_map_x = hdr->map_x + x; + gRoomTransition.player_status.dungeon_map_y = hdr->map_y + y; } -void sub_08052CFC(void) { +void InitRoom(void) { AreaHeader* a_hdr = NULL; MemClear(&gArea, sizeof gArea); - a_hdr = &gAreaMetadata[gRoomControls.areaID]; + a_hdr = &gAreaMetadata[gRoomControls.area]; gArea.areaMetadata = a_hdr->flags; gArea.locationIndex = a_hdr->location; gArea.dungeon_idx = a_hdr->location - 23; @@ -1240,7 +1249,7 @@ void sub_08052CFC(void) { gArea.filler[0] = a_hdr->flag_bank; gArea.unk1A = 180; gArea.unk_0a = 256; - HandleRoomEnter(); + InitRoomTransition(); InitAllRoomResInfo(); } @@ -1250,7 +1259,7 @@ u32 GetFlagBankOffset(u32 idx) { } void RegisterTransitionManager(void* mgr, void (*onEnter)(), void (*onExit)()) { - if (gMain.transition != 7) { + if (gMain.substate != 7) { gArea.transitionManager = mgr; gArea.onEnter = onEnter; gArea.onExit = onExit; @@ -1258,12 +1267,12 @@ void RegisterTransitionManager(void* mgr, void (*onEnter)(), void (*onExit)()) { } static void InitAllRoomResInfo(void) { - RoomHeader* r_hdr = gAreaRoomHeaders[gRoomControls.areaID]; + RoomHeader* r_hdr = gAreaRoomHeaders[gRoomControls.area]; RoomResInfo* info = gArea.roomResInfos; u32 i; for (i = 0; i < MAX_ROOMS && *(u16*)r_hdr != 0xFFFF; i++, r_hdr++) { if (r_hdr->tileset_id != 0xFFFF) - InitRoomResInfo(info, r_hdr, gRoomControls.areaID, i); + InitRoomResInfo(info, r_hdr, gRoomControls.area, i); info++; } gArea.pCurrentRoomInfo = GetCurrentRoomInfo(); @@ -1285,7 +1294,7 @@ static void InitRoomResInfo(RoomResInfo* info, RoomHeader* r_hdr, u32 area, u32 } RoomResInfo* GetCurrentRoomInfo(void) { - return &gArea.roomResInfos[gRoomControls.roomID]; + return &gArea.roomResInfos[gRoomControls.room]; } void sub_08052EA0(void) { @@ -1295,7 +1304,7 @@ void sub_08052EA0(void) { gRoomVars.unk_10[2] = gRoomVars.unk_10[0]; gRoomVars.unk_10[3] = gRoomVars.unk_10[0]; gRoomVars.lightLevel = 256; - gArea.locationIndex = gAreaMetadata[gRoomControls.areaID].location; + gArea.locationIndex = gAreaMetadata[gRoomControls.area].location; UpdateRoomTracker(); InitScriptData(); sub_08054524(); @@ -1306,12 +1315,16 @@ void sub_08052EA0(void) { static u32 sub_08052EF4(s32 idx) { AreaHeader* a_hdr = NULL; - u32 i = idx < 0 ? gRoomControls.areaID : idx; + u32 i = idx < 0 ? gRoomControls.area : idx; a_hdr = &gAreaMetadata[i]; return gLocalFlagBanks[a_hdr->flag_bank]; } -void sub_08052F1C(void) { +/** + * @brief If enabled, this type of transition does not change the room + * and keeps all entities. + */ +void UpdateFakeScroll(void) { u32 x, y; LinkedList* ll; Entity* e; @@ -1323,7 +1336,7 @@ void sub_08052F1C(void) { x = 0; // WTF? - switch (gRoomControls.unk_10) { + switch (gRoomControls.scroll_direction) { case 0: y = gArea.pCurrentRoomInfo->pixel_height; case 1: @@ -1336,10 +1349,10 @@ void sub_08052F1C(void) { gArea.pCurrentRoomInfo->map_x += x; gArea.pCurrentRoomInfo->map_y += y; - gRoomControls.roomOriginX += x; - gRoomControls.roomOriginY += y; - gRoomControls.roomScrollX += x; - gRoomControls.roomScrollY += y; + gRoomControls.origin_x += x; + gRoomControls.origin_y += y; + gRoomControls.scroll_x += x; + gRoomControls.scroll_y += y; ll = gEntityLists; do { @@ -1354,7 +1367,7 @@ void sub_08052F1C(void) { void sub_08052FD8(u32 area, u32 room) { sub_08052FF4(area, room); - gRoomControls.cameraTarget = NULL; + gRoomControls.camera_target = NULL; sub_0807C860(); sub_0807C740(); } @@ -1362,10 +1375,10 @@ void sub_08052FD8(u32 area, u32 room) { void sub_08052FF4(u32 area, u32 room) { RoomHeader* r_hdr = NULL; - sub_08080668(); - sub_080197AC(); - gRoomControls.areaID = area; - gRoomControls.roomID = room; + ClearTilemaps(); + SetBGDefaults(); + gRoomControls.area = area; + gRoomControls.room = room; gScreen.lcd.displayControl = 0x1740; MemClear(&gArea.currentRoomInfo, sizeof gArea.currentRoomInfo); gArea.pCurrentRoomInfo = &gArea.currentRoomInfo; @@ -1393,7 +1406,7 @@ static void sub_080530B0(void) { static const u16 sMinecartData[] = { 0x189, 0x0, 0x102, 0x4, 0x1af, 0x0, 0x204, 0x0, 0x1cf, 0x0, 0x10, 0x4, 0x0, 0x0, 0x0, 0x0 }; - MemCopy(sMinecartData, gScreenTransition.minecart_data, sizeof sMinecartData); + MemCopy(sMinecartData, gRoomTransition.minecart_data, sizeof sMinecartData); } void UpdateGlobalProgress(void) { @@ -1423,15 +1436,15 @@ static u32 sub_08053144(void) { return 0; ret = 0; if (gArea.locationIndex != 0) - ret = !!(gScreenTransition.player_status.field_0x24[10] ^ gArea.locationIndex); + ret = !!(gRoomTransition.player_status.field_0x24[10] ^ gArea.locationIndex); return ret; } -void sub_08053178(void) { +void CheckAreaDiscovery(void) { if (!sub_08053144()) return; - gScreenTransition.player_status.field_0x24[10] = gArea.locationIndex; + gRoomTransition.player_status.field_0x24[10] = gArea.locationIndex; if (!CheckGlobalFlag(TABIDACHI)) return; @@ -1456,30 +1469,30 @@ void sub_080531F8(void) { gPlayerState.startPosX = gPlayerEntity.x.HALF.HI; gPlayerState.startPosY = gPlayerEntity.y.HALF.HI; if (sub_08053144()) { - MemCopy(&gScreenTransition.player_status, &gSave.saved_status, sizeof gScreenTransition.player_status); + MemCopy(&gRoomTransition.player_status, &gSave.saved_status, sizeof gRoomTransition.player_status); if (CheckIsDungeon()) { - gScreenTransition.player_status.dungeon_area = gRoomControls.areaID; - gScreenTransition.player_status.dungeon_room = gRoomControls.roomID; - gScreenTransition.player_status.dungeon_x = gPlayerEntity.x.HALF.HI; - gScreenTransition.player_status.dungeon_y = gPlayerEntity.y.HALF.HI; + gRoomTransition.player_status.dungeon_area = gRoomControls.area; + gRoomTransition.player_status.dungeon_room = gRoomControls.room; + gRoomTransition.player_status.dungeon_x = gPlayerEntity.x.HALF.HI; + gRoomTransition.player_status.dungeon_y = gPlayerEntity.y.HALF.HI; } } } void sub_08053250(void) { - gScreenTransition.player_status.spawn_type = PL_SPAWN_DEFAULT; - gScreenTransition.player_status.start_pos_x = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX; - gScreenTransition.player_status.start_pos_y = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY; - gScreenTransition.player_status.start_anim = gPlayerEntity.animationState; - gScreenTransition.player_status.layer = gPlayerEntity.collisionLayer; - gScreenTransition.player_status.area_next = gRoomControls.areaID; - gScreenTransition.player_status.room_next = gRoomControls.roomID; - MemCopy(&gScreenTransition.player_status, &gSave.saved_status, sizeof gScreenTransition.player_status); + gRoomTransition.player_status.spawn_type = PL_SPAWN_DEFAULT; + gRoomTransition.player_status.start_pos_x = gPlayerEntity.x.HALF.HI - gRoomControls.origin_x; + gRoomTransition.player_status.start_pos_y = gPlayerEntity.y.HALF.HI - gRoomControls.origin_y; + gRoomTransition.player_status.start_anim = gPlayerEntity.animationState; + gRoomTransition.player_status.layer = gPlayerEntity.collisionLayer; + gRoomTransition.player_status.area_next = gRoomControls.area; + gRoomTransition.player_status.room_next = gRoomControls.room; + MemCopy(&gRoomTransition.player_status, &gSave.saved_status, sizeof gRoomTransition.player_status); } void sub_0805329C(void) { if (sub_08053144()) { - switch (gRoomControls.areaID) { + switch (gRoomControls.area) { case AREA_DEEPWOOD_SHRINE: gSave.unk7 = 0; break; @@ -1501,35 +1514,35 @@ static void sub_080532E4(void) { RoomHeader* r_hdr = gAreaRoomHeaders[AREA_FORTRESS_OF_WINDS] + 33; - gScreenTransition.player_status.dungeon_area = AREA_FORTRESS_OF_WINDS; - gScreenTransition.player_status.dungeon_room = 33; + gRoomTransition.player_status.dungeon_area = AREA_FORTRESS_OF_WINDS; + gRoomTransition.player_status.dungeon_room = 33; - gScreenTransition.player_status.dungeon_x = r_hdr->map_x + r_hdr->pixel_width / 2; - gScreenTransition.player_status.dungeon_map_x = gScreenTransition.player_status.dungeon_x; - gScreenTransition.player_status.dungeon_y = r_hdr->map_y + r_hdr->pixel_height + 0xa0; - gScreenTransition.player_status.dungeon_map_y = gScreenTransition.player_status.dungeon_y; + gRoomTransition.player_status.dungeon_x = r_hdr->map_x + r_hdr->pixel_width / 2; + gRoomTransition.player_status.dungeon_map_x = gRoomTransition.player_status.dungeon_x; + gRoomTransition.player_status.dungeon_y = r_hdr->map_y + r_hdr->pixel_height + 0xa0; + gRoomTransition.player_status.dungeon_map_y = gRoomTransition.player_status.dungeon_y; } -void sub_08053320(void) { +void LoadGfxGroups(void) { MemClear(&gBG0Buffer, sizeof gBG0Buffer); MemClear(&gBG1Buffer, sizeof gBG1Buffer); MemClear(&gBG2Buffer, sizeof gBG2Buffer); MemClear(&gBG3Buffer, sizeof gBG3Buffer); LoadGfxGroup(16); LoadGfxGroup(23); - if (gRoomControls.areaID == AREA_CASTOR_WILDS) + if (gRoomControls.area == AREA_CASTOR_WILDS) LoadGfxGroup(26); - sub_08053390(); + LoadItemGfx(); LoadPaletteGroup(11); LoadPaletteGroup(12); SetColor(0, 0); } -void sub_08053390(void) { - LoadGfxGroup(GetInventoryValue(8) ? 24 : 25); - if (GetInventoryValue(0xAu)) +void LoadItemGfx(void) { + LoadGfxGroup(GetInventoryValue(ITEM_REMOTE_BOMBS) ? 24 : 25); + if (GetInventoryValue(ITEM_LIGHT_ARROW)) LoadGfxGroup(29); - LoadGfxGroup(GetInventoryValue(12) ? 28 : 27); + LoadGfxGroup(GetInventoryValue(ITEM_MAGIC_BOOMERANG) ? 28 : 27); } void sub_080533CC(void) { @@ -1596,7 +1609,7 @@ void sub_080534AC(void) { } static void sub_080534E4(u32* a1) { - if (gRoomControls.areaID != AREA_VEIL_FALLS_TOP) { + if (gRoomControls.area != AREA_VEIL_FALLS_TOP) { if (*a1) --*a1; } @@ -1606,7 +1619,7 @@ void sub_08053500(void) { gSave.unk48C[2] = 36000; } -void sub_08053518(void) { +void ResetTmpFlags(void) { static const u16 sClearFlags[] = { FLAG_BANK_2, BILL00_SHICHOU_00, FLAG_BANK_2, BILL0A_YADO_TAKARA_00, FLAG_BANK_2, BILL0C_SCHOOLR_00, FLAG_BANK_1, MACHI00_00, FLAG_BANK_1, MACHI00_02, FLAG_BANK_2, MHOUSE06_00, diff --git a/src/interrupts.c b/src/interrupts.c index 82dd574d..4041fd50 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -98,9 +98,9 @@ void sub_08016BF8(void) { } void UpdateDisplayControls(void) { - if (gUnk_03000000.field_0x0 && (gScreen.lcd.displayControl & DISPCNT_OBJ_ON)) { - gUnk_03000000.field_0x0 = 0; - DmaCopy32(3, &gUnk_03000000.oam, OAM, OAM_SIZE); + if (gOAMControls.field_0x0 && (gScreen.lcd.displayControl & DISPCNT_OBJ_ON)) { + gOAMControls.field_0x0 = 0; + DmaCopy32(3, &gOAMControls.oam, OAM, OAM_SIZE); } sub_08016CA8(&gScreen.bg0); sub_08016CA8(&gScreen.bg1); @@ -289,7 +289,7 @@ void HandlePlayerLife(Entity* this) { if (gSave.stats.health <= temp) { gRoomVars.unk2 = 1; - if ((gUnk_0200AF00.filler0[1] == 0) && gScreenTransition.frameCount % 90 == 0) { + if ((gUnk_0200AF00.filler0[1] == 0) && gRoomTransition.frameCount % 90 == 0) { EnqueueSFX(SFX_LOW_HEALTH); } } diff --git a/src/item/itemTryPickupObject.c b/src/item/itemTryPickupObject.c index a8d59830..3e161d89 100644 --- a/src/item/itemTryPickupObject.c +++ b/src/item/itemTryPickupObject.c @@ -25,7 +25,7 @@ void sub_08076488(ItemBehavior* this, u32 arg1) { if (this->field_0x5[2] == 0) { if (sub_08077F64(this, arg1) != 0) { - if (((*(u8*)((this->field_0x18) + 0x16) & 0xf0) == 0x10) && ((gScreenTransition.frameCount & 1U) != 0)) { + if (((*(u8*)((this->field_0x18) + 0x16) & 0xf0) == 0x10) && ((gRoomTransition.frameCount & 1U) != 0)) { return; } UpdateItemAnim(this); diff --git a/src/main.c b/src/main.c index 1ce5d2bb..7a15ed58 100644 --- a/src/main.c +++ b/src/main.c @@ -9,30 +9,30 @@ extern u32 gRand; -extern void HandleIntroScreen(void); -extern void HandleChooseFileScreen(void); -extern void HandleChooseDemoScreen(void); -extern void HandleGameplayScreen(void); -extern void HandleGameOverScreen(void); -extern void HandleCreditsScreen(void); -extern void HandleDebugTextScreen(void); +extern void TitleTask(void); +extern void FileSelectTask(void); +extern void DemoTask(void); +extern void GameTask(void); +extern void GameOverTask(void); +extern void StaffrollTask(void); +extern void DebugTask(void); static void InitOverlays(void); static bool32 SoftResetKeysPressed(void); static u32 CheckHeaderValid(void); -void (*const sScreenHandlers[])(void) = { - [SCREEN_INTRO] = HandleIntroScreen, +void (*const sTaskHandlers[])(void) = { + [TASK_TITLE] = TitleTask, #ifdef DEMO_USA - [SCREEN_CHOOSE_FILE] = HandleChooseDemoScreen, + [TASK_FILE_SELECT] = DemoTask, #else - [SCREEN_CHOOSE_FILE] = HandleChooseFileScreen, + [TASK_FILE_SELECT] = FileSelectTask, #endif - [SCREEN_GAMEPLAY] = HandleGameplayScreen, - [SCREEN_GAME_OVER] = HandleGameOverScreen, - [SCREEN_CREDITS] = HandleCreditsScreen, - [SCREEN_DEBUG_TEXT] = HandleDebugTextScreen, + [TASK_GAME] = GameTask, + [TASK_GAMEOVER] = GameOverTask, + [TASK_STAFFROLL] = StaffrollTask, + [TASK_DEBUG] = DebugTask, }; static void sub_080560B8(void); @@ -52,7 +52,7 @@ void AgbMain(void) { ResetPalettes(); gRand = 0x1234567; MemClear(&gMain, sizeof(gMain)); - InitScreen(SCREEN_INTRO); + SetTask(TASK_TITLE); while (1) { ReadKeyInput(); if (SoftResetKeysPressed()) { @@ -81,7 +81,7 @@ void AgbMain(void) { } gMain.ticks.HWORD++; - sScreenHandlers[gMain.screen](); + sTaskHandlers[gMain.task](); MessageMain(); FadeMain(); AudioMain(); @@ -129,10 +129,10 @@ static bool32 SoftResetKeysPressed(void) { return (gInput.heldKeys & SOFT_RESET_KEYS) == SOFT_RESET_KEYS; } -void InitScreen(u32 screen) { - gMain.screen = screen; - gMain.funcIndex = 0; - gMain.transition = 0; +void SetTask(u32 task) { + gMain.task = task; + gMain.state = 0; + gMain.substate = 0; } void DisableInterruptsAndDMA(void) { @@ -156,27 +156,27 @@ void DoSoftReset(void) { typedef struct { int signature; u8 saveFileId; - u8 messageSpeed; - u8 brightnessPref; - u8 gameLanguage; + u8 msg_speed; + u8 brightness; + u8 language; u8 name[6]; - u8 _e; - u8 _f; + u8 invalid; + u8 initialized; } Defaults; const Defaults sDefaultSettings = { .signature = SIGNATURE, .saveFileId = 0, - .messageSpeed = 1, - .brightnessPref = 1, + .msg_speed = 1, + .brightness = 1, #ifdef EU - .gameLanguage = 2, // TODO in EU 2 is english? + .language = 2, // TODO in EU 2 is english? #else - .gameLanguage = GAME_LANGUAGE, + .language = GAME_LANGUAGE, #endif .name = "LINK", - ._e = 0, - ._f = 0, + .invalid = 0, + .initialized = 0, }; // single misplaced ldr @@ -213,13 +213,13 @@ END_NONMATCH static u32 CheckHeaderValid(void) { if ((gSaveHeader->signature != SIGNATURE) || (gSaveHeader->saveFileId >= NUM_SAVE_SLOTS) || - (gSaveHeader->messageSpeed >= MAX_MSG_SPEED) || (gSaveHeader->brightnessPref >= MAX_BRIGHTNESS) + (gSaveHeader->msg_speed >= MAX_MSG_SPEED) || (gSaveHeader->brightness >= MAX_BRIGHTNESS) #ifdef EU - || (gSaveHeader->gameLanguage <= GAME_LANGUAGE) || (gSaveHeader->gameLanguage > NUM_LANGUAGES) + || (gSaveHeader->language <= GAME_LANGUAGE) || (gSaveHeader->language > NUM_LANGUAGES) #else - || (gSaveHeader->gameLanguage != GAME_LANGUAGE) + || (gSaveHeader->language != GAME_LANGUAGE) #endif - || (gSaveHeader->_e != 0)) + || (gSaveHeader->invalid)) return FALSE; return TRUE; @@ -278,8 +278,8 @@ void SetSleepMode(void) { // Convert AABB to screen coordinates and check if it's within the viewport u32 CheckRegionOnScreen(u32 x0, u32 y0, u32 x1, u32 y1) { u32 result; - u32 x = ((gRoomControls.roomScrollX - gRoomControls.roomOriginX) - x0 + DISPLAY_WIDTH); - u32 y = ((gRoomControls.roomScrollY - gRoomControls.roomOriginY) - y0 + DISPLAY_HEIGHT); + u32 x = ((gRoomControls.scroll_x - gRoomControls.origin_x) - x0 + DISPLAY_WIDTH); + u32 y = ((gRoomControls.scroll_y - gRoomControls.origin_y) - y0 + DISPLAY_HEIGHT); u32 a = x1 + DISPLAY_WIDTH; u32 b = y1 + DISPLAY_HEIGHT; if ((x < a) && (y < b)) diff --git a/src/manager/manager10.c b/src/manager/manager10.c index 607463a5..4eb78e21 100644 --- a/src/manager/manager10.c +++ b/src/manager/manager10.c @@ -6,7 +6,7 @@ #include "sound.h" #include "screen.h" #include "common.h" -#include "fileScreen.h" +#include "fileselect.h" #include "functions.h" void sub_080595E4(Manager10*); @@ -95,7 +95,7 @@ void sub_08059690(Manager10* this) { } void sub_080596E0(Manager10* this) { - if ((gScreenTransition.frameCount & 7) == 0) { + if ((gRoomTransition.frameCount & 7) == 0) { gScreen.bg1.xOffset += 8; gScreen.bg1.xOffset &= 0x1F; } @@ -149,11 +149,11 @@ void sub_080596E0(Manager10* this) { } u32 sub_08059844() { - return gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX > gRoomControls.width >> 1; + return gPlayerEntity.x.HALF.HI - gRoomControls.origin_x > gRoomControls.width >> 1; } u32 sub_0805986C() { - return gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX > 0x200; + return gPlayerEntity.x.HALF.HI - gRoomControls.origin_x > 0x200; } void sub_08059894(const u16* unk1, const u16* unk2, u32 unk3) { diff --git a/src/manager/manager12.c b/src/manager/manager12.c index 630e17e5..a29877bd 100644 --- a/src/manager/manager12.c +++ b/src/manager/manager12.c @@ -65,7 +65,7 @@ void sub_08059A2C(Manager12* this) { } void sub_08059A58(Manager12* this) { - if (gRoomControls.areaID != AREA_FESTIVAL_TOWN) { + if (gRoomControls.area != AREA_FESTIVAL_TOWN) { if (sub_08059C8C(this, 0, &this->field_0x20, &gUnk_08108398) != 0) { sub_08059CC0(0, (u32)this->field_0x20); } @@ -142,7 +142,7 @@ void sub_08059CC0(u32 param_1, u32 param_2) { Unknown* unknown; gRoomVars.unk_10[param_1] = param_2; - if (gRoomControls.areaID != AREA_FESTIVAL_TOWN) { + if (gRoomControls.area != AREA_FESTIVAL_TOWN) { unknown = &gUnk_08108408[param_2]; } else { unknown = &gUnk_08108468[param_2]; @@ -154,7 +154,7 @@ void sub_08059CC0(u32 param_1, u32 param_2) { void TryLoadPrologueHyruleTown(void) { u32 tmp; - if (gRoomControls.areaID != AREA_FESTIVAL_TOWN) { + if (gRoomControls.area != AREA_FESTIVAL_TOWN) { tmp = CheckRegionsOnScreen(&gUnk_08108398); if (tmp != 0xff) { sub_08059CC0(0, tmp); diff --git a/src/manager/manager13.c b/src/manager/manager13.c index 409fdbb7..e1d7820b 100644 --- a/src/manager/manager13.c +++ b/src/manager/manager13.c @@ -33,7 +33,7 @@ void Manager13_Main(Manager13* this) { if (this->manager.action == 0) { this->manager.action = 1; } - if (gRoomControls.areaID == AREA_FESTIVAL_TOWN) { + if (gRoomControls.area == AREA_FESTIVAL_TOWN) { spawnData = gUnk_08108530; } else { spawnData = gUnk_081084C8; @@ -46,8 +46,8 @@ void Manager13_Main(Manager13* this) { Entity* object = CreateObject(OBJECT_1C, spawnData->type, type2); if (object != NULL) { object->frameIndex = spawnData->frameIndex; - object->x.HALF.HI = gRoomControls.roomOriginX + spawnData->x; - object->y.HALF.HI = gRoomControls.roomOriginY + spawnData->y; + object->x.HALF.HI = gRoomControls.origin_x + spawnData->x; + object->y.HALF.HI = gRoomControls.origin_y + spawnData->y; object->parent = (Entity*)this; object->field_0x80.HWORD = spawnData->x; object->field_0x82.HWORD = spawnData->y; diff --git a/src/manager/manager14.c b/src/manager/manager14.c index a3771fe9..367111f6 100644 --- a/src/manager/manager14.c +++ b/src/manager/manager14.c @@ -83,7 +83,7 @@ void sub_08059EF8(Manager14* this) { } u32 sub_08059F9C(Manager14* this) { - switch (gRoomControls.roomID) { + switch (gRoomControls.room) { case 1: if (CheckLocalFlag(0x16)) { return 0; @@ -123,7 +123,7 @@ void sub_0805A048(Manager14* this) { } void sub_0805A098(Manager14* this) { - switch (gRoomControls.roomID) { + switch (gRoomControls.room) { case 0: case 8: case 9: diff --git a/src/manager/manager15.c b/src/manager/manager15.c index c23c24fd..21cad632 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -163,8 +163,8 @@ void sub_0805A4CC(Manager15* this, u32 unk_0) { Entity* tmp; tmp = CreateObject(OBJECT_8E, unk_0, 0); if (tmp) { - tmp->x.HALF.HI = this->unk_38 + gRoomControls.roomOriginX; - tmp->y.HALF.HI = this->unk_3a + gRoomControls.roomOriginY - 0x30; + tmp->x.HALF.HI = this->unk_38 + gRoomControls.origin_x; + tmp->y.HALF.HI = this->unk_3a + gRoomControls.origin_y - 0x30; tmp->parent = (Entity*)this; this->manager.unk_0d = 0; } @@ -199,7 +199,7 @@ void sub_0805A500(Manager15* this) { } sub_0805AA58(this); sub_0805A9CC(this); - if (gRoomControls.unk2 == 1) { + if (gRoomControls.reload_flags == 1) { gScreen.lcd.displayControl |= DISPCNT_WIN1_ON; this->manager.unk_0d = 1; return; @@ -207,7 +207,7 @@ void sub_0805A500(Manager15* this) { if (!this->manager.unk_0d) return; this->manager.unk_0d = 0; - if (this->unk_20 == gRoomControls.roomID) + if (this->unk_20 == gRoomControls.room) return; gScreen.lcd.displayControl &= ~(DISPCNT_WIN1_ON | DISPCNT_BG3_ON); DeleteThisEntity(); @@ -275,8 +275,8 @@ void sub_0805A6E8(Manager15* this) { sub_0805A89C(this); this->unk_23 = 0; sub_0805AAF0(0); - this->unk_38 += gRoomControls.roomOriginX; - this->unk_3a += gRoomControls.roomOriginY; + this->unk_38 += gRoomControls.origin_x; + this->unk_3a += gRoomControls.origin_y; if (!sub_0805A73C(this)) { this->manager.action++; } @@ -307,7 +307,7 @@ void sub_0805A76C(Manager15* this) { RequestPriorityDuration((Entity*)this, 600); SetPlayerControl(0xFF); gUnk_02034490[0] = 1; - gRoomControls.cameraTarget = NULL; + gRoomControls.camera_target = NULL; sub_08077B20(); } } @@ -371,9 +371,9 @@ void sub_0805A89C(Manager15* this) { this->manager.unk_0f = 0x10; this->unk_21 = 0; this->unk_22 = 0; - this->unk_20 = gRoomControls.roomID; - this->unk_24 = gRoomControls.roomOriginX; - this->unk_26 = gRoomControls.roomOriginY; + this->unk_20 = gRoomControls.room; + this->unk_24 = gRoomControls.origin_x; + this->unk_26 = gRoomControls.origin_y; RegisterTransitionManager(this, sub_0805AAC8, 0); } @@ -382,14 +382,14 @@ void sub_0805A94C(Manager15* this); void sub_0805A8EC(Manager15* this) { sub_0805AA58(this); sub_0805A94C(this); - if (gRoomControls.unk2 == 1) { + if (gRoomControls.reload_flags == 1) { gScreen.lcd.displayControl |= DISPCNT_WIN1_ON; this->manager.unk_0d = 1; } else { if (!this->manager.unk_0d) return; this->manager.unk_0d = 0; - if (this->unk_20 == gRoomControls.roomID) + if (this->unk_20 == gRoomControls.room) return; gScreen.lcd.displayControl &= ~(DISPCNT_WIN1_ON | DISPCNT_BG3_ON); DeleteThisEntity(); @@ -398,8 +398,8 @@ void sub_0805A8EC(Manager15* this) { void sub_0805A94C(Manager15* this) { int tmp1, tmp2; - gScreen.bg3.xOffset = gRoomControls.roomScrollX - this->unk_24 + this->unk_34; - gScreen.bg3.yOffset = gRoomControls.roomScrollY - this->unk_26 + this->unk_36; + gScreen.bg3.xOffset = gRoomControls.scroll_x - this->unk_24 + this->unk_34; + gScreen.bg3.yOffset = gRoomControls.scroll_y - this->unk_26 + this->unk_36; tmp1 = -gScreen.bg3.xOffset; tmp2 = tmp1 + 0x100; if (tmp1 < 0) @@ -427,7 +427,7 @@ void sub_0805A94C(Manager15* this) { void sub_0805A9CC(Manager15* this) { int tmp1, tmp2; void* tmp3; - gScreen.bg3.xOffset = gRoomControls.roomScrollX - this->unk_24 + this->unk_34; + gScreen.bg3.xOffset = gRoomControls.scroll_x - this->unk_24 + this->unk_34; tmp1 = -gScreen.bg3.xOffset; tmp2 = tmp1 + 0x100; if (tmp1 < 0) @@ -439,7 +439,7 @@ void sub_0805A9CC(Manager15* this) { if (tmp2 > DISPLAY_WIDTH) tmp2 = DISPLAY_WIDTH; gScreen.controls.window1HorizontalDimensions = tmp1 << 8 | tmp2; - tmp1 = gRoomControls.roomScrollY - this->unk_26 + this->unk_36; + tmp1 = gRoomControls.scroll_y - this->unk_26 + this->unk_36; gScreen.bg3.yOffset = tmp1 & 0x3F; tmp3 = (&gBG3Buffer[((tmp1 / 0x40) << 8)]); gScreen.bg3.tilemap = (u32*)tmp3; diff --git a/src/manager/manager17.c b/src/manager/manager17.c index 139c4c2f..54c1656b 100644 --- a/src/manager/manager17.c +++ b/src/manager/manager17.c @@ -37,8 +37,8 @@ void sub_0805AD80(Manager17* manager) { if (object != NULL) { object->actionDelay = manager->field_0x35; object->collisionLayer = manager->field_0x36; - object->x.HALF.HI = manager->field_0x38 + gRoomControls.roomOriginX; - object->y.HALF.HI = manager->field_0x3a + gRoomControls.roomOriginY; + object->x.HALF.HI = manager->field_0x38 + gRoomControls.origin_x; + object->y.HALF.HI = manager->field_0x3a + gRoomControls.origin_y; object->field_0x86.HWORD = manager->field_0x3c; } DeleteThisEntity(); diff --git a/src/manager/manager18.c b/src/manager/manager18.c index 4acc0bc4..fd7ba93f 100644 --- a/src/manager/manager18.c +++ b/src/manager/manager18.c @@ -40,8 +40,8 @@ void Manager18_Main(Manager18* this) { } gRoomControls.bg3OffsetX.WORD -= 0x2000; gRoomControls.bg3OffsetY.WORD -= 0x1000; - gScreen.bg3.xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; - gScreen.bg3.yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + gScreen.bg3.xOffset = gRoomControls.scroll_x + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.bg3.yOffset = gRoomControls.scroll_y + gRoomControls.bg3OffsetY.HALF.HI; } } } @@ -52,8 +52,8 @@ void sub_0805AEDC(Manager18* this) { gScreen.controls.layerFXControl = BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD; gScreen.controls.alphaBlend = (this != NULL) ? this->field_0x20 : BLDALPHA_BLEND(0, 16); - gScreen.bg3.xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; - gScreen.bg3.yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + gScreen.bg3.xOffset = gRoomControls.scroll_x + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.bg3.yOffset = gRoomControls.scroll_y + gRoomControls.bg3OffsetY.HALF.HI; if (this != NULL) { Manager18_Main(this); } diff --git a/src/manager/manager19.c b/src/manager/manager19.c index f967c62a..5eee6ccb 100644 --- a/src/manager/manager19.c +++ b/src/manager/manager19.c @@ -22,8 +22,8 @@ void Manager19_Main(Manager* this) { } } else { gRoomControls.bg3OffsetX.WORD = gRoomControls.bg3OffsetX.WORD - 0x2000; - gScreen.bg3.xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; - gScreen.bg3.yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + gScreen.bg3.xOffset = gRoomControls.scroll_x + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.bg3.yOffset = gRoomControls.scroll_y + gRoomControls.bg3OffsetY.HALF.HI; } } } @@ -31,6 +31,6 @@ void Manager19_Main(Manager* this) { void sub_0805AFFC(Manager* this) { gScreen.bg3.control = BGCNT_PRIORITY(3) | BGCNT_SCREENBASE(30); gScreen.lcd.displayControl |= DISPCNT_BG3_ON; - gScreen.bg3.xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; - gScreen.bg3.yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + gScreen.bg3.xOffset = gRoomControls.scroll_x + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.bg3.yOffset = gRoomControls.scroll_y + gRoomControls.bg3OffsetY.HALF.HI; } diff --git a/src/manager/manager1A.c b/src/manager/manager1A.c index 2ad78228..5e760473 100644 --- a/src/manager/manager1A.c +++ b/src/manager/manager1A.c @@ -70,16 +70,16 @@ void sub_0805B048(Manager1A* this) { SetDefaultPriority((Entity*)&this->manager, PRIO_PLAYER_EVENT); MemClear(&this->unk_20, 0x20); this->manager.action = 1; - this->unk_3f = gRoomControls.roomID; + this->unk_3f = gRoomControls.room; tmp = &gUnk_08108764[this->manager.unk_0a]; if (!tmp->unk_0a) { - this->unk_20 = gRoomControls.roomOriginX; - this->unk_22 = gRoomControls.roomOriginY; + this->unk_20 = gRoomControls.origin_x; + this->unk_22 = gRoomControls.origin_y; this->unk_24 = gRoomControls.width; this->unk_26 = gRoomControls.height; } else { - this->unk_20 = (tmp->unk_08 << 4) + gRoomControls.roomOriginX; - this->unk_22 = (tmp->unk_09 << 4) + gRoomControls.roomOriginY; + this->unk_20 = (tmp->unk_08 << 4) + gRoomControls.origin_x; + this->unk_22 = (tmp->unk_09 << 4) + gRoomControls.origin_y; this->unk_24 = (tmp->unk_0a << 4); this->unk_26 = (tmp->unk_0b << 4); } @@ -99,15 +99,15 @@ void sub_0805B048(Manager1A* this) { return; obj = CreateObject(OBJECT_28, tmp->unk_10->unk_00, tmp->unk_10->unk_01); if (obj) { - obj->x.HALF.HI = tmp->unk_10->unk_04 + gRoomControls.roomOriginX; - obj->y.HALF.HI = tmp->unk_10->unk_06 + gRoomControls.roomOriginY; + obj->x.HALF.HI = tmp->unk_10->unk_04 + gRoomControls.origin_x; + obj->y.HALF.HI = tmp->unk_10->unk_06 + gRoomControls.origin_y; } if (this->manager.unk_0a != 0xa || CheckLocalFlag(0x4B)) return; obj = CreateObject(OBJECT_28, 3, 3); if (obj) { - obj->x.HALF.HI = tmp->unk_10->unk_04 + gRoomControls.roomOriginX; - obj->y.HALF.HI = tmp->unk_10->unk_06 + gRoomControls.roomOriginY; + obj->x.HALF.HI = tmp->unk_10->unk_04 + gRoomControls.origin_x; + obj->y.HALF.HI = tmp->unk_10->unk_06 + gRoomControls.origin_y; } } @@ -118,14 +118,14 @@ void sub_0805B168(Manager1A* this) { return; } sub_0805B2B0(this); - if (gRoomControls.unk2 == 1) { + if (gRoomControls.reload_flags == 1) { this->manager.unk_0d = 1; return; } if (!this->manager.unk_0d) return; this->manager.unk_0d = 0; - if (this->unk_3f == gRoomControls.roomID) + if (this->unk_3f == gRoomControls.room) return; if (this->manager.unk_0b) { gScreen.lcd.displayControl &= ~0x800; @@ -147,33 +147,33 @@ u32 sub_0805B1CC(Manager1A* this) { void sub_0805B210(Manager1A* this) { struct_08108764* tmp; - gScreenTransition.transitioningOut = 1; - gScreenTransition.transitionType = TRANSITION_CUT; - gScreenTransition.player_status.start_anim = 4; + gRoomTransition.transitioningOut = 1; + gRoomTransition.type = TRANSITION_CUT; + gRoomTransition.player_status.start_anim = 4; tmp = &gUnk_08108764[this->manager.unk_0a]; - gScreenTransition.player_status.area_next = tmp->unk_01; - gScreenTransition.player_status.room_next = tmp->unk_02; - gScreenTransition.player_status.layer = tmp->unk_03; + gRoomTransition.player_status.area_next = tmp->unk_01; + gRoomTransition.player_status.room_next = tmp->unk_02; + gRoomTransition.player_status.layer = tmp->unk_03; if (gPlayerState.flags & PL_MINISH) { - gScreenTransition.player_status.spawn_type = 6; + gRoomTransition.player_status.spawn_type = 6; } else { - gScreenTransition.player_status.spawn_type = 2; + gRoomTransition.player_status.spawn_type = 2; } switch (tmp->unk_00) { case 0: - gScreenTransition.player_status.start_pos_x = tmp->unk_04; - gScreenTransition.player_status.start_pos_y = tmp->unk_06; + gRoomTransition.player_status.start_pos_x = tmp->unk_04; + gRoomTransition.player_status.start_pos_y = tmp->unk_06; break; case 1: - gScreenTransition.player_status.start_pos_x = - gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX + tmp->unk_04; - gScreenTransition.player_status.start_pos_y = - gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY + tmp->unk_06; + gRoomTransition.player_status.start_pos_x = + gPlayerEntity.x.HALF.HI - gRoomControls.origin_x + tmp->unk_04; + gRoomTransition.player_status.start_pos_y = + gPlayerEntity.y.HALF.HI - gRoomControls.origin_y + tmp->unk_06; break; case 2: - gScreenTransition.player_status.start_pos_x = tmp->unk_04; - gScreenTransition.player_status.start_pos_y = tmp->unk_06; - gScreenTransition.player_status.spawn_type = 6; + gRoomTransition.player_status.start_pos_x = tmp->unk_04; + gRoomTransition.player_status.start_pos_y = tmp->unk_06; + gRoomTransition.player_status.spawn_type = 6; break; } } @@ -182,8 +182,8 @@ void sub_0805B2B0(Manager1A* this) { s32 tmp, tmp2; if (!this->manager.unk_0b) return; - tmp = (this->unk_30 - gRoomControls.roomScrollX) / 4; - tmp2 = (this->unk_32 - gRoomControls.roomScrollY) / 4; + tmp = (this->unk_30 - gRoomControls.scroll_x) / 4; + tmp2 = (this->unk_32 - gRoomControls.scroll_y) / 4; if (tmp < -12) { tmp = -12; } @@ -197,10 +197,10 @@ void sub_0805B2B0(Manager1A* this) { tmp2 = 12; } gScreen.lcd.displayControl |= DISPCNT_BG3_ON; - gRoomControls.bg3OffsetX.HALF.HI = gRoomControls.roomScrollX + this->unk_34 + tmp; - gScreen.bg3.xOffset = gRoomControls.roomScrollX + this->unk_34 + tmp; - gRoomControls.bg3OffsetY.HALF.HI = gRoomControls.roomScrollY + this->unk_36 + tmp2; - gScreen.bg3.yOffset = gRoomControls.roomScrollY + this->unk_36 + tmp2; + gRoomControls.bg3OffsetX.HALF.HI = gRoomControls.scroll_x + this->unk_34 + tmp; + gScreen.bg3.xOffset = gRoomControls.scroll_x + this->unk_34 + tmp; + gRoomControls.bg3OffsetY.HALF.HI = gRoomControls.scroll_y + this->unk_36 + tmp2; + gScreen.bg3.yOffset = gRoomControls.scroll_y + this->unk_36 + tmp2; } void sub_0805B328(Manager1A* this) { diff --git a/src/manager/manager1B.c b/src/manager/manager1B.c index a172bcfc..8fb9e70a 100644 --- a/src/manager/manager1B.c +++ b/src/manager/manager1B.c @@ -40,20 +40,20 @@ void Manager1B_Main(Manager1B* this) { this->field_0x20 = iVar3 + (s8)tmp[2]; gUnk_08108C54[tmp[1]](this); } - if (gRoomControls.unk2 == 0) { + if (gRoomControls.reload_flags == 0) { gUnk_08108C54[tmp[1]](this); } } void sub_0805B448(Manager1B* this) { - gScreen.bg3.xOffset = (gRoomControls.roomScrollX - gRoomControls.roomOriginX) >> 2; - gScreen.bg3.yOffset = ((gRoomControls.roomScrollY - gRoomControls.roomOriginY) >> 1) + this->field_0x20; + gScreen.bg3.xOffset = (gRoomControls.scroll_x - gRoomControls.origin_x) >> 2; + gScreen.bg3.yOffset = ((gRoomControls.scroll_y - gRoomControls.origin_y) >> 1) + this->field_0x20; } void sub_0805B474(Manager1B* this) { - s32 tmp = ((gRoomControls.roomScrollY - gRoomControls.roomOriginY) * 0x60) / (gRoomControls.height - 0xa0); - gScreen.bg3.yOffset = gRoomControls.roomOriginY + tmp; - gScreen.bg3.xOffset = gRoomControls.roomScrollX - ((gRoomControls.width - 0x100) / 2); + s32 tmp = ((gRoomControls.scroll_y - gRoomControls.origin_y) * 0x60) / (gRoomControls.height - 0xa0); + gScreen.bg3.yOffset = gRoomControls.origin_y + tmp; + gScreen.bg3.xOffset = gRoomControls.scroll_x - ((gRoomControls.width - 0x100) / 2); } void sub_0805B4B4(Manager1B* this) { @@ -71,9 +71,9 @@ void sub_0805B4D0(u32 param_1) { LoadGfxGroup(gUnk_08108C5C[param_1]); gScreen.bg3.control = 0x1e07; gScreen.lcd.displayControl |= DISPCNT_BG3_ON; - gScreen.bg3.xOffset = (gRoomControls.roomScrollX - gRoomControls.roomOriginX) >> 2; + gScreen.bg3.xOffset = (gRoomControls.scroll_x - gRoomControls.origin_x) >> 2; - uVar2 = (gRoomControls.roomScrollY - gRoomControls.roomOriginY) >> 1; + uVar2 = (gRoomControls.scroll_y - gRoomControls.origin_y) >> 1; iVar1 = 0x100 - gRoomControls.height; if (iVar1 < 0) { iVar1 = 0; diff --git a/src/manager/manager1C.c b/src/manager/manager1C.c index 4ff51e27..54b5e63f 100644 --- a/src/manager/manager1C.c +++ b/src/manager/manager1C.c @@ -25,8 +25,8 @@ void sub_0805B55C(Manager* manager) { manager->unk_0e = 0xf; waterDrop = CreateEnemy(WATER_DROP, 0); if (waterDrop != NULL) { - waterDrop->x.HALF.HI = gRoomControls.roomScrollX + 0x78 + gUnk_08108C6C[Random() & 7]; - waterDrop->y.HALF.HI = gRoomControls.roomScrollY + 0x50 + gUnk_08108C7C[Random() & 3]; + waterDrop->x.HALF.HI = gRoomControls.scroll_x + 0x78 + gUnk_08108C6C[Random() & 7]; + waterDrop->y.HALF.HI = gRoomControls.scroll_y + 0x50 + gUnk_08108C7C[Random() & 3]; waterDrop->z.HALF.HI = 0xff38; } } diff --git a/src/manager/manager1D.c b/src/manager/manager1D.c index b9039a05..f1d9a40f 100644 --- a/src/manager/manager1D.c +++ b/src/manager/manager1D.c @@ -25,8 +25,8 @@ void sub_0805B5E0(Manager* this) { gScreen.bg3.xOffset = 0; break; case 1: - gScreen.bg3.xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; - gScreen.bg3.yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + gScreen.bg3.xOffset = gRoomControls.scroll_x + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.bg3.yOffset = gRoomControls.scroll_y + gRoomControls.bg3OffsetY.HALF.HI; break; } } @@ -34,7 +34,7 @@ void sub_0805B5E0(Manager* this) { void sub_0805B638(Manager* this) { if (this->unk_0a == 1) { gRoomControls.bg3OffsetX.WORD = gRoomControls.bg3OffsetX.WORD + 0x2000; - gScreen.bg3.xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; - gScreen.bg3.yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + gScreen.bg3.xOffset = gRoomControls.scroll_x + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.bg3.yOffset = gRoomControls.scroll_y + gRoomControls.bg3OffsetY.HALF.HI; } } diff --git a/src/manager/manager2.c b/src/manager/manager2.c index 0294a65f..a9404c10 100644 --- a/src/manager/manager2.c +++ b/src/manager/manager2.c @@ -29,7 +29,7 @@ void Manager2_Main(Manager2* this) { void sub_0805754C(Manager2* this) { s32 bgOffset; - bgOffset = (gRoomControls.roomScrollY - gRoomControls.roomOriginY); + bgOffset = (gRoomControls.scroll_y - gRoomControls.origin_y); bgOffset += bgOffset >> 3; gScreen.bg3.yOffset = bgOffset & 0x3f; gScreen.bg3.tilemap = gMapDataTopSpecial + (bgOffset / 0x40) * 0x200; @@ -37,7 +37,7 @@ void sub_0805754C(Manager2* this) { this->field_0x38 = gScreen.bg3.tilemap; gScreen.bg3.updated = 1; } - bgOffset = (gRoomControls.roomScrollY - gRoomControls.roomOriginY); + bgOffset = (gRoomControls.scroll_y - gRoomControls.origin_y); bgOffset += bgOffset >> 2; gScreen.bg1.yOffset = bgOffset & 0x3f; gScreen.bg1.tilemap = gMapDataTopSpecial + 0x2000 + (bgOffset / 0x40) * 0x200; @@ -55,7 +55,7 @@ void sub_080575C8(u32 param) { LoadGfxGroup(param); gRoomVars.unk_10[0] = param; - bgOffset = (gRoomControls.roomScrollY - gRoomControls.roomOriginY); + bgOffset = (gRoomControls.scroll_y - gRoomControls.origin_y); bgOffset += bgOffset >> 3; gScreen.bg3.yOffset = bgOffset & 0x3f; gScreen.bg3.xOffset = 0; @@ -63,7 +63,7 @@ void sub_080575C8(u32 param) { gScreen.bg3.control = BGCNT_SCREENBASE(29) | BGCNT_PRIORITY(1) | BGCNT_CHARBASE(2) | BGCNT_MOSAIC; gScreen.bg3.updated = 1; - bgOffset = (gRoomControls.roomScrollY - gRoomControls.roomOriginY); + bgOffset = (gRoomControls.scroll_y - gRoomControls.origin_y); bgOffset += bgOffset >> 2; gScreen.bg1.yOffset = bgOffset & 0x3f; gScreen.bg1.xOffset = 0; diff --git a/src/manager/manager20.c b/src/manager/manager20.c index 46f4fe20..8f0543ad 100644 --- a/src/manager/manager20.c +++ b/src/manager/manager20.c @@ -30,7 +30,7 @@ void Manager20_Main(Manager20* this) { tmp->y.HALF.HI = this->unk_3a; tmp->collisionLayer = this->unk_37 >> 4; } - tmp->x.HALF.HI += gRoomControls.roomOriginX; - tmp->y.HALF.HI += gRoomControls.roomOriginY; + tmp->x.HALF.HI += gRoomControls.origin_x; + tmp->y.HALF.HI += gRoomControls.origin_y; DeleteManager((Manager*)this); } diff --git a/src/manager/manager21.c b/src/manager/manager21.c index 49003b50..d07cbb18 100644 --- a/src/manager/manager21.c +++ b/src/manager/manager21.c @@ -40,8 +40,8 @@ void Manager21_Main(Manager21* this) { if (object != NULL) { object->actionDelay = spawnData->actionDelay; object->field_0xf = count; - object->x.HALF.HI = gRoomControls.roomOriginX + spawnData->x; - object->y.HALF.HI = gRoomControls.roomOriginY + spawnData->y; + object->x.HALF.HI = gRoomControls.origin_x + spawnData->x; + object->y.HALF.HI = gRoomControls.origin_y + spawnData->y; object->parent = (Entity*)this; ResolveCollisionLayer(object); this->field_0x20 |= 1 << count; diff --git a/src/manager/manager22.c b/src/manager/manager22.c index ba174d0a..b06295e2 100644 --- a/src/manager/manager22.c +++ b/src/manager/manager22.c @@ -11,7 +11,7 @@ ASM_FUNC("asm/non_matching/manager22/sub_0805BB00.inc", void sub_0805BB00()) ASM_FUNC("asm/non_matching/manager22/sub_0805BB74.inc", void sub_0805BB74()) -ASM_FUNC("asm/non_matching/manager22/sub_0805BBBC.inc", void sub_0805BBBC()) +ASM_FUNC("asm/non_matching/manager22/sub_0805BBBC.inc", void UpdateLightLevel()) ASM_FUNC("asm/non_matching/manager22/sub_0805BC04.inc", void sub_0805BC04()) diff --git a/src/manager/manager23.c b/src/manager/manager23.c index 4fd43d8a..c38f0e8e 100644 --- a/src/manager/manager23.c +++ b/src/manager/manager23.c @@ -148,8 +148,8 @@ void sub_0805BEC4(Manager23* this) { Entity* object = CreateObject(OBJECT_2A, 1, 0); if (object != NULL) { *(s8*)(&object->flags + 1) = ((*(s8*)(&object->flags + 1)) & (-0x10)) | 3; - object->x.HALF.HI = this->field_0x38 + gRoomControls.roomOriginX; - object->y.HALF.HI = this->field_0x3a + gRoomControls.roomOriginY; + object->x.HALF.HI = this->field_0x38 + gRoomControls.origin_x; + object->y.HALF.HI = this->field_0x3a + gRoomControls.origin_y; object->collisionLayer = this->manager.unk_0b; object->spritePriority.b0 = 2; } diff --git a/src/manager/manager24.c b/src/manager/manager24.c index 1f200d47..388fd389 100644 --- a/src/manager/manager24.c +++ b/src/manager/manager24.c @@ -92,8 +92,8 @@ void sub_0805C050(u32 pos, u32 layer) { if (CheckIsInteriorWithEnemies() != 0) { Entity* object = CreateObject(ARCHWAY, 0xe, 0); if (object != NULL) { - object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; - object->y.HALF.HI = ((pos & 0xfc0) >> 2) - 8 + gRoomControls.roomOriginY; + object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.origin_x; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) - 8 + gRoomControls.origin_y; } SetTileType(0xb5, pos, 1); } else { @@ -117,8 +117,8 @@ void sub_0805C050(u32 pos, u32 layer) { if (object == NULL) { return; } - object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; - object->y.HALF.HI = ((pos & 0xfc0) >> 2) - 0x10 + gRoomControls.roomOriginY; + object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.origin_x; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) - 0x10 + gRoomControls.origin_y; object->collisionLayer = 2; } } @@ -137,8 +137,8 @@ void sub_0805C178(u32 pos, u32 layer) { object = CreateObject(ARCHWAY, 0xe, 1); if (object != NULL) { - object->x.HALF.HI = ((pos & 0x3f) << 4) + 0x18 + gRoomControls.roomOriginX; - object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 8 + gRoomControls.roomOriginY; + object->x.HALF.HI = ((pos & 0x3f) << 4) + 0x18 + gRoomControls.origin_x; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 8 + gRoomControls.origin_y; } SetTileType(0xf2, pos, 1); } else { @@ -160,8 +160,8 @@ void sub_0805C178(u32 pos, u32 layer) { if (object == NULL) { return; } - object->x.HALF.HI = ((pos & 0x3f) << 4) + 0x20 + gRoomControls.roomOriginX; - object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 8 + gRoomControls.roomOriginY; + object->x.HALF.HI = ((pos & 0x3f) << 4) + 0x20 + gRoomControls.origin_x; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 8 + gRoomControls.origin_y; object->collisionLayer = 2; } } @@ -178,8 +178,8 @@ void sub_0805C294(u32 pos, u32 layer) { if (CheckIsInteriorWithEnemies() != 0) { object = CreateObject(ARCHWAY, 0xe, 2); if (object != NULL) { - object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; - object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 0x20 + gRoomControls.roomOriginY; + object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.origin_x; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 0x20 + gRoomControls.origin_y; } SetTileType(0xd2, pos, 1); } else { @@ -201,8 +201,8 @@ void sub_0805C294(u32 pos, u32 layer) { if (object == NULL) { return; } - object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; - object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 0x20 + gRoomControls.roomOriginY; + object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.origin_x; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 0x20 + gRoomControls.origin_y; object->collisionLayer = 2; } } @@ -219,8 +219,8 @@ void sub_0805C3B4(u32 pos, u32 layer) { if (CheckIsInteriorWithEnemies() != 0) { object = CreateObject(ARCHWAY, 0xe, 3); if (object != NULL) { - object->x.HALF.HI = ((pos & 0x3f) << 4) + -0x10 + gRoomControls.roomOriginX; - object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 8 + gRoomControls.roomOriginY; + object->x.HALF.HI = ((pos & 0x3f) << 4) + -0x10 + gRoomControls.origin_x; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 8 + gRoomControls.origin_y; } SetTileType(0xe5, pos, 1); } else { @@ -243,8 +243,8 @@ void sub_0805C3B4(u32 pos, u32 layer) { if (object == NULL) { return; } - object->x.HALF.HI = ((pos & 0x3f) << 4) + -0x10 + gRoomControls.roomOriginX; - object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 8 + gRoomControls.roomOriginY; + object->x.HALF.HI = ((pos & 0x3f) << 4) + -0x10 + gRoomControls.origin_x; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 8 + gRoomControls.origin_y; object->collisionLayer = 2; } } @@ -261,8 +261,8 @@ void sub_0805C4E0(u32 pos, u32 layer) { if (CheckIsInteriorWithEnemies() != 0) { object = CreateObject(ARCHWAY, 0xe, 0); if (object != NULL) { - object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; - object->y.HALF.HI = ((pos & 0xfc0) >> 2) + -0x10 + gRoomControls.roomOriginY; + object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.origin_x; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + -0x10 + gRoomControls.origin_y; } SetTileType(0xc5, pos, 1); } else { @@ -285,8 +285,8 @@ void sub_0805C4E0(u32 pos, u32 layer) { if (object == NULL) { return; } - object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; - object->y.HALF.HI = ((pos & 0xfc0) >> 2) + -0x10 + gRoomControls.roomOriginY; + object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.origin_x; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + -0x10 + gRoomControls.origin_y; object->collisionLayer = 2; } } diff --git a/src/manager/manager26.c b/src/manager/manager26.c index e06d36d5..5471660f 100644 --- a/src/manager/manager26.c +++ b/src/manager/manager26.c @@ -30,7 +30,7 @@ void sub_0805C6D0(Manager26* this) { DeleteManager(&this->manager); return; } - this->unk_2a = gRoomControls.roomOriginY + this->manager.unk_0e; + this->unk_2a = gRoomControls.origin_y + this->manager.unk_0e; this->manager.unk_0e = 0; this->unk_28 = 0; this->unk_29 = 0; @@ -39,8 +39,8 @@ void sub_0805C6D0(Manager26* this) { obj = CreateObject(PUSHABLE_FURNITURE, tmp->unk_01, tmp->unk_02); if (obj) { obj->actionDelay = tmp->unk_03; - obj->x.HALF.HI = gRoomControls.roomOriginX + tmp->unk_04; - obj->y.HALF.HI = gRoomControls.roomOriginY + tmp->unk_06; + obj->x.HALF.HI = gRoomControls.origin_x + tmp->unk_04; + obj->y.HALF.HI = gRoomControls.origin_y + tmp->unk_06; obj->parent = (Entity*)this; obj->collisionLayer = 1; obj->field_0x82.HALF.HI = this->manager.unk_0e; diff --git a/src/manager/manager27.c b/src/manager/manager27.c index e8a2842d..8cd20656 100644 --- a/src/manager/manager27.c +++ b/src/manager/manager27.c @@ -19,9 +19,9 @@ void Manager27_Main(Entity* this) { gUnk_08108D10[this->action](this); if (CheckLocalFlagByBank(0x300, this->type + 0x67)) { - gScreenTransition.armos_data.field_0xac |= (1 << this->type); + gRoomTransition.armos_data.field_0xac |= (1 << this->type); } else { - gScreenTransition.armos_data.field_0xac &= ~(1 << this->type); + gRoomTransition.armos_data.field_0xac &= ~(1 << this->type); } } diff --git a/src/manager/manager28.c b/src/manager/manager28.c index 6280bc6e..98bfa916 100644 --- a/src/manager/manager28.c +++ b/src/manager/manager28.c @@ -109,8 +109,8 @@ Entity* Manager28_FindMatchingEntity(EntityData* unk1) { u32 x, y; Entity* i; LinkedList* tmp; - x = unk1->xPos + gRoomControls.roomOriginX; - y = unk1->yPos + gRoomControls.roomOriginY; + x = unk1->xPos + gRoomControls.origin_x; + y = unk1->yPos + gRoomControls.origin_y; tmp = &gEntityLists[4]; for (i = tmp->first; (u32)i != (u32)tmp; i = i->next) { if (x == i->x.HALF.HI && y == i->y.HALF.HI && unk1->id == i->id && 3 == i->kind && unk1->type == i->type) { diff --git a/src/manager/manager2B.c b/src/manager/manager2B.c index 112390f6..c1739b88 100644 --- a/src/manager/manager2B.c +++ b/src/manager/manager2B.c @@ -44,8 +44,8 @@ void sub_0805D02C(Manager2B* this) { counter = 0; while (counter < 4) { object = CreateObject(ANGRY_STATUE, objectData[2], counter); - object->x.HALF.HI = objectData[0] + gRoomControls.roomOriginX; - object->y.HALF.HI = objectData[1] + gRoomControls.roomOriginY; + object->x.HALF.HI = objectData[0] + gRoomControls.origin_x; + object->y.HALF.HI = objectData[1] + gRoomControls.origin_y; object->parent = (Entity*)this; ResolveCollisionLayer(object); this->field_0x20[counter] = object; diff --git a/src/manager/manager2C.c b/src/manager/manager2C.c index c8b3f63d..3ad27242 100644 --- a/src/manager/manager2C.c +++ b/src/manager/manager2C.c @@ -20,17 +20,17 @@ void Manager2C_Main(Manager2C* manager) { manager->field_0x3a = 0; } if (((CheckPlayerInRegion(manager->field_0x38, manager->field_0x3a, 0x14, 0x40) != 0) && - (((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) + gPlayerEntity.z.HALF.HI) < 0)) && - (gRoomControls.roomScrollY == gRoomControls.roomOriginY)) { - MemClear(&gScreenTransition.player_status, 0x20); - gScreenTransition.transitioningOut = 1; - gScreenTransition.transitionType = TRANSITION_DEFAULT; - gScreenTransition.player_status.spawn_type = 0xb; - gScreenTransition.player_status.area_next = manager->manager.unk_0b; - gScreenTransition.player_status.room_next = manager->manager.unk_0e; - gScreenTransition.player_status.start_anim = manager->field_0x37; - gScreenTransition.player_status.start_pos_x = manager->field_0x3c; - gScreenTransition.player_status.start_pos_y = manager->field_0x3e; - gScreenTransition.player_status.layer = manager->field_0x36; + (((gPlayerEntity.y.HALF.HI - gRoomControls.origin_y) + gPlayerEntity.z.HALF.HI) < 0)) && + (gRoomControls.scroll_y == gRoomControls.origin_y)) { + MemClear(&gRoomTransition.player_status, 0x20); + gRoomTransition.transitioningOut = 1; + gRoomTransition.type = TRANSITION_DEFAULT; + gRoomTransition.player_status.spawn_type = 0xb; + gRoomTransition.player_status.area_next = manager->manager.unk_0b; + gRoomTransition.player_status.room_next = manager->manager.unk_0e; + gRoomTransition.player_status.start_anim = manager->field_0x37; + gRoomTransition.player_status.start_pos_x = manager->field_0x3c; + gRoomTransition.player_status.start_pos_y = manager->field_0x3e; + gRoomTransition.player_status.layer = manager->field_0x36; } } diff --git a/src/manager/manager2D.c b/src/manager/manager2D.c index 8e1b7f65..2f64249d 100644 --- a/src/manager/manager2D.c +++ b/src/manager/manager2D.c @@ -4,8 +4,8 @@ void Manager2D_Main(Entity* this) { SetTile(0x4014, 0x5c3, 1); - if ((gRoomControls.roomOriginY + 200 < gPlayerEntity.y.HALF.HI) && - ((u32)(gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX) - 0x30 < 0x11)) { + if ((gRoomControls.origin_y + 200 < gPlayerEntity.y.HALF.HI) && + ((u32)(gPlayerEntity.x.HALF.HI - gRoomControls.origin_x) - 0x30 < 0x11)) { gPlayerEntity.collisionLayer = 3; UpdateSpriteForCollisionLayer(&gPlayerEntity); } diff --git a/src/manager/manager2F.c b/src/manager/manager2F.c index d35c67a8..7b7285df 100644 --- a/src/manager/manager2F.c +++ b/src/manager/manager2F.c @@ -25,8 +25,8 @@ void Manager2F_Main(Manager* this) { } else { gRoomControls.bg3OffsetX.WORD -= 0x4000; gRoomControls.bg3OffsetY.WORD -= 0x2000; - gScreen.bg3.xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; - gScreen.bg3.yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + gScreen.bg3.xOffset = gRoomControls.scroll_x + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.bg3.yOffset = gRoomControls.scroll_y + gRoomControls.bg3OffsetY.HALF.HI; } } } @@ -35,6 +35,6 @@ void sub_0805D470(Manager* this) { LoadGfxGroup(0x4c); gScreen.bg3.control = 0x1e07; gScreen.lcd.displayControl |= DISPCNT_BG3_ON; - gScreen.bg3.xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; - gScreen.bg3.yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + gScreen.bg3.xOffset = gRoomControls.scroll_x + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.bg3.yOffset = gRoomControls.scroll_y + gRoomControls.bg3OffsetY.HALF.HI; } diff --git a/src/manager/manager3.c b/src/manager/manager3.c index 91450576..868a2e13 100644 --- a/src/manager/manager3.c +++ b/src/manager/manager3.c @@ -33,8 +33,8 @@ void Manager3_Main(Manager3* this) { s8 tmp; if (this->manager.action == 0) { this->manager.action = 1; - this->unk_20 = this->unk_38 + gRoomControls.roomOriginX - 0x20; - this->unk_24 = this->unk_3a + gRoomControls.roomOriginY - 0x20; + this->unk_20 = this->unk_38 + gRoomControls.origin_x - 0x20; + this->unk_24 = this->unk_3a + gRoomControls.origin_y - 0x20; return; } if (CheckPlayerProximity(this->unk_20, this->unk_24, 0x40, 0x40)) { @@ -54,7 +54,7 @@ void Manager3_Main(Manager3* this) { } } if (sub_080002C0(this->unk_38, this->unk_3a, this->manager.unk_0e) == 0x3d) { - CreateMagicSparkles(this->unk_38 + gRoomControls.roomOriginX, this->unk_3a + gRoomControls.roomOriginY, + CreateMagicSparkles(this->unk_38 + gRoomControls.origin_x, this->unk_3a + gRoomControls.origin_y, this->manager.unk_0e); if (!this->manager.unk_0f) { this->manager.unk_0f = 1; diff --git a/src/manager/manager31.c b/src/manager/manager31.c index 561319d8..8b12bd0c 100644 --- a/src/manager/manager31.c +++ b/src/manager/manager31.c @@ -65,8 +65,8 @@ void Manager31_Main(Manager31* this) { if (object != NULL) { object->actionDelay = 1; object->field_0xf = count; - object->x.HALF.HI = spawnData->x + gRoomControls.roomOriginX; - object->y.HALF.HI = spawnData->y + gRoomControls.roomOriginY; + object->x.HALF.HI = spawnData->x + gRoomControls.origin_x; + object->y.HALF.HI = spawnData->y + gRoomControls.origin_y; object->field_0x80.HWORD = spawnData->x; object->field_0x82.HWORD = spawnData->y; object->collisionLayer = 1; diff --git a/src/manager/manager32.c b/src/manager/manager32.c index 77e3d955..b07e57f0 100644 --- a/src/manager/manager32.c +++ b/src/manager/manager32.c @@ -25,7 +25,7 @@ extern void sub_0805622C(struct BgAffineDstData*, u32, u32); void Manager32_Main(Manager32* this) { gUnk_08108D7C[this->manager.action](this); - this->field_0x24 = gScreenTransition.frameCount << 4; + this->field_0x24 = gRoomTransition.frameCount << 4; sub_0805D9D8(this); sub_0805DA08(this->field_0x20, this->field_0x28, this->field_0x24); } @@ -36,7 +36,7 @@ void sub_0805D7DC(Manager32* this) { this->manager.action = (this->manager.unk_0a == 0) ? 1 : 2; this->field_0x20 = 0; this->field_0x24 = 0; - switch (gRoomControls.areaID) { + switch (gRoomControls.area) { case 7: default: index = 0; @@ -149,8 +149,8 @@ void sub_0805D9D8(Manager32* this) { // TODO find out the actual type of the parent of this manager. Manager* pMVar1 = this->manager.parent; if (pMVar1 != NULL) { - gScreen.bg3.xOffset = 0x80 - (*(s16*)&pMVar1[1].unk_0e - gRoomControls.roomScrollX); - gScreen.bg3.yOffset = 0x8c - (*(s16*)(pMVar1[1].unk_11 + 1) - gRoomControls.roomScrollY); + gScreen.bg3.xOffset = 0x80 - (*(s16*)&pMVar1[1].unk_0e - gRoomControls.scroll_x); + gScreen.bg3.yOffset = 0x8c - (*(s16*)(pMVar1[1].unk_11 + 1) - gRoomControls.scroll_y); } } diff --git a/src/manager/manager33.c b/src/manager/manager33.c index 63f3c533..de58fb00 100644 --- a/src/manager/manager33.c +++ b/src/manager/manager33.c @@ -6,9 +6,9 @@ void Manager33_Main(Manager* this) { RoomControls* roomControls = &gRoomControls; - u32 a = roomControls->roomOriginX + 0x1f8; + u32 a = roomControls->origin_x + 0x1f8; u32 x = (a - gPlayerEntity.x.HALF.HI) + 0x10; - u32 b = roomControls->roomOriginY + 0x140; + u32 b = roomControls->origin_y + 0x140; u32 y = (b - gPlayerEntity.y.HALF.HI) + 0x10; if (this->action == 0) { if (x < 0x20 && y < 0x20 && gPlayerEntity.z.HALF.HI < -0x18 && gPlayerState.framestate == PL_STATE_CAPE) { @@ -20,8 +20,8 @@ void Manager33_Main(Manager* this) { 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->x.HALF.HI = roomControls->origin_x + 0x1f8; + object->y.HALF.HI = roomControls->origin_y + 0x140; object->z.HALF.HI = 0xffe8; } DeleteThisEntity(); diff --git a/src/manager/manager34.c b/src/manager/manager34.c index e811aaea..ae12a2e2 100644 --- a/src/manager/manager34.c +++ b/src/manager/manager34.c @@ -22,7 +22,7 @@ void Manager34_Main(Manager34* this) { void sub_0805DBB4(Manager34* this) { this->manager.action = 1; - this->field_0x20 = gScreenTransition.field_0x3d * 0x3c; + this->field_0x20 = gRoomTransition.field_0x3d * 0x3c; } void sub_0805DBCC(Manager34* this) { diff --git a/src/manager/manager35.c b/src/manager/manager35.c index 599cdd9f..49083531 100644 --- a/src/manager/manager35.c +++ b/src/manager/manager35.c @@ -41,13 +41,13 @@ void sub_0805DCC8(Manager35* this) { if (this->manager.unk_0e == 0) { this->manager.unk_0e = 0x1e; } - this->manager.parent = (Manager*)gRoomControls.cameraTarget; + this->manager.parent = (Manager*)gRoomControls.camera_target; 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; + object->x.HALF.HI = this->field_0x38 + gRoomControls.origin_x; + object->y.HALF.HI = this->field_0x3a + gRoomControls.origin_y; *(Entity**)this->manager.unk_18 = object; - gRoomControls.cameraTarget = object; + gRoomControls.camera_target = object; RequestPriorityDuration(object, 0x1e); } } @@ -68,7 +68,7 @@ void sub_0805DD68(Manager35* this) { RequestPriorityDuration(0, 8); if (this->field_0x36 != 0) { if (--this->field_0x36 == 0) { - gRoomControls.cameraTarget = (Entity*)this->manager.parent; + gRoomControls.camera_target = (Entity*)this->manager.parent; } } else { if ((gRoomControls.scroll_flags & 4) == 0) { diff --git a/src/manager/manager37.c b/src/manager/manager37.c index 8140ac22..348339ba 100644 --- a/src/manager/manager37.c +++ b/src/manager/manager37.c @@ -33,10 +33,10 @@ void sub_0805DE68(Manager* this) { DeleteThisEntity(); } this->action = 1; - gScreenTransition.field_0x38 = 0; - gScreenTransition.field_0x39 = 0x0f; - *(u8*)&gScreenTransition.field_0x3a = 0x20; - *((u8*)&gScreenTransition.field_0x3a + 1) = 0x20; + gRoomTransition.field_0x38 = 0; + gRoomTransition.field_0x39 = 0x0f; + *(u8*)&gRoomTransition.field_0x3a = 0x20; + *((u8*)&gRoomTransition.field_0x3a + 1) = 0x20; #if !defined(EU) && !defined(JP) gSave.unk48C[3] = 0x1194; #endif @@ -47,8 +47,8 @@ void sub_0805DEB8(Manager* this) { s32 distY; Entity* object; - distX = gPlayerEntity.x.HALF.HI - (gRoomControls.roomOriginX + 0x88); - distY = gPlayerEntity.y.HALF.HI - (gRoomControls.roomOriginY + 0x40); + distX = gPlayerEntity.x.HALF.HI - (gRoomControls.origin_x + 0x88); + distY = gPlayerEntity.y.HALF.HI - (gRoomControls.origin_y + 0x40); if (distX * distX + distY * distY < 0x901) { this->action = 2; this->unk_0d = 0; @@ -57,8 +57,8 @@ void sub_0805DEB8(Manager* this) { sub_08078B48(); object = CreateObject(OBJECT_64, 0, 0); if (object != NULL) { - object->x.HALF.HI = gRoomControls.roomOriginX + 0x88; - object->y.HALF.HI = gRoomControls.roomOriginY + 0x48; + object->x.HALF.HI = gRoomControls.origin_x + 0x88; + object->y.HALF.HI = gRoomControls.origin_y + 0x48; } object = CreateSpeechBubbleExclamationMark(&gPlayerEntity, 8, 0xfffffff0); if (object != NULL) { @@ -71,8 +71,8 @@ void sub_0805DEB8(Manager* this) { void sub_0805DF4C(Manager* this) { gPlayerEntity.animationState = 0; if (gPlayerEntity.z.HALF.HI != 0) { - if (gPlayerEntity.y.HALF.HI < (gRoomControls.roomOriginY + 0x48)) { - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x48; + if (gPlayerEntity.y.HALF.HI < (gRoomControls.origin_y + 0x48)) { + gPlayerEntity.y.HALF.HI = gRoomControls.origin_y + 0x48; } } else { if (--this->unk_0e == 0) { @@ -109,11 +109,11 @@ void sub_0805DFE8(Manager* this) { void sub_0805E000(Manager* this) { Entity* enemy = CreateEnemy(VAATI_WRATH, 0); if (enemy != NULL) { - enemy->x.HALF.HI = gRoomControls.roomOriginX + 0xb0; - enemy->y.HALF.HI = gRoomControls.roomOriginY + 0x48; + enemy->x.HALF.HI = gRoomControls.origin_x + 0xb0; + enemy->y.HALF.HI = gRoomControls.origin_y + 0x48; enemy->collisionLayer = 1; UpdateSpriteForCollisionLayer(enemy); - if ((gScreenTransition.field_0x38 & 1) != 0) { + if ((gRoomTransition.field_0x38 & 1) != 0) { DeleteThisEntity(); } *(Entity**)this->unk_18 = enemy; @@ -134,5 +134,5 @@ void sub_0805E078(Manager* this) { void sub_0805E094(void) { SetInitializationPriority(); - sub_0808091C((ScreenTransitionData*)&gUnk_0813AC34, 7); + sub_0808091C((ScreenTransitionData*)&gUnk_0813AC34, TRANSITION_7); } diff --git a/src/manager/manager39.c b/src/manager/manager39.c index b43de6e8..ffa4bb4e 100644 --- a/src/manager/manager39.c +++ b/src/manager/manager39.c @@ -36,7 +36,7 @@ void sub_0805E1F8(u32, u32); void Manager39_Main(Manager39* this) { gUnk_08108E28[this->manager.action](this); - if ((gRoomControls.roomID != this->unk_20) || (gMessage.doTextBox & 0x7F)) { + if ((gRoomControls.room != this->unk_20) || (gMessage.doTextBox & 0x7F)) { sub_0805E1D8(this); } } @@ -44,7 +44,7 @@ void Manager39_Main(Manager39* this) { void sub_0805E140(Manager39* this) { this->manager.unk_10 |= 0x20; this->manager.action = 1; - this->unk_20 = gRoomControls.roomID; + this->unk_20 = gRoomControls.room; this->manager.unk_0e = 0x78; this->manager.unk_0f = 0x3c; SetDefaultPriority((Entity*)this, PRIO_HIGHEST); diff --git a/src/manager/manager4.c b/src/manager/manager4.c index 48223e88..e287d521 100644 --- a/src/manager/manager4.c +++ b/src/manager/manager4.c @@ -18,29 +18,29 @@ extern DiggingCaveEntrance* sub_08057AA8(DiggingCaveEntrance*, int); void sub_0805786C(Manager* this) { DiggingCaveEntrance* tmp; - u8 roomID; - u8 areaID; + u8 room; + u8 area; u16 uVar = 0x81 << 7; sub_080805F8(); if (gUnk_03004030.unk_08 != 0) { if (gUnk_03004030.unk_00 == 0) { gUnk_03004030.unk_0a = 0xFF; - roomID = gRoomControls.roomID; - tmp = diggingCaveEntrances[gRoomControls.areaID]; - tmp = sub_08057AA8(tmp, roomID); + room = gRoomControls.room; + tmp = diggingCaveEntrances[gRoomControls.area]; + tmp = sub_08057AA8(tmp, room); if (tmp != 0) { - roomID = tmp->target_roomID; - tmp = diggingCaveEntrances[tmp->target_areaID]; - tmp = sub_08057AA8(tmp, roomID); + room = tmp->target_room; + tmp = diggingCaveEntrances[tmp->target_area]; + tmp = sub_08057AA8(tmp, room); if (tmp != 0) { gUnk_03004030.unk_00 = tmp; } } } - roomID = gRoomControls.roomID; - tmp = diggingCaveEntrances[gRoomControls.areaID]; + room = gRoomControls.room; + tmp = diggingCaveEntrances[gRoomControls.area]; uVar = 0x81 << 7; - for (tmp = sub_08057AA8(tmp, roomID); tmp != 0; tmp = sub_08057AA8(tmp, roomID)) { + for (tmp = sub_08057AA8(tmp, room); tmp != 0; tmp = sub_08057AA8(tmp, room)) { SetTile(uVar, tmp->unk_00 + 0x3F, 1); SetTile(uVar, tmp->unk_00 + 0x40, 1); SetTile(uVar, tmp->unk_00 + 0x41, 1); @@ -54,10 +54,10 @@ extern u32 sub_0805795C(Manager*, DiggingCaveEntrance*); void sub_08057920(Manager* this) { DiggingCaveEntrance* tmp; - u8 roomID; - roomID = gRoomControls.roomID; - for (tmp = diggingCaveEntrances[gRoomControls.areaID]; - (tmp = sub_08057AA8(tmp, roomID)) != 0 && !sub_0805795C(this, tmp); tmp++) + u8 room; + room = gRoomControls.room; + for (tmp = diggingCaveEntrances[gRoomControls.area]; + (tmp = sub_08057AA8(tmp, room)) != 0 && !sub_0805795C(this, tmp); tmp++) ; } @@ -67,8 +67,8 @@ u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) { u16 offsetX, offsetY, offsetX2, offsetY2; u32 tmp, tmp2; if (gUnk_03004030.unk_08) { - offsetX = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX; - offsetY = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY; + offsetX = gPlayerEntity.x.HALF.HI - gRoomControls.origin_x; + offsetY = gPlayerEntity.y.HALF.HI - gRoomControls.origin_y; offsetX2 = (entr->unk_00 & 0x3F) * 16 + 8; offsetY2 = ((entr->unk_00 & 0xFC0) >> 6) * 16 + 0x18; tmp = offsetX - offsetX2; @@ -81,7 +81,7 @@ u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) { } else { if (COORD_TO_TILE(&gPlayerEntity) != entr->unk_00) return 0; - offsetY2 = gRoomControls.roomOriginY + ((entr->unk_00 >> 6) << 4) + 6; + offsetY2 = gRoomControls.origin_y + ((entr->unk_00 >> 6) << 4) + 6; if (gPlayerEntity.y.HALF.HI >= offsetY2) return 0; sub_08057A18(this, entr); @@ -98,29 +98,29 @@ void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { u16 tmp; SetInitializationPriority(); gUnk_03004030.unk_0a = gUnk_03004030.unk_09; - gUnk_03004030.unk_09 = gRoomControls.areaID; - gScreenTransition.player_status.area_next = entr->target_areaID; - gScreenTransition.player_status.room_next = entr->target_roomID; - gRoomControls.areaID = entr->target_areaID; - gRoomControls.roomID = entr->target_roomID; + gUnk_03004030.unk_09 = gRoomControls.area; + gRoomTransition.player_status.area_next = entr->target_area; + gRoomTransition.player_status.room_next = entr->target_room; + gRoomControls.area = entr->target_area; + gRoomControls.room = entr->target_room; gUnk_03004030.unk_00 = entr; - gUnk_03004030.unk_04 = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX - ((entr->unk_00 & 0x3F) * 16); - gUnk_03004030.unk_06 = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY - ((entr->unk_00 & 0xFC0) >> 2); + gUnk_03004030.unk_04 = gPlayerEntity.x.HALF.HI - gRoomControls.origin_x - ((entr->unk_00 & 0x3F) * 16); + gUnk_03004030.unk_06 = gPlayerEntity.y.HALF.HI - gRoomControls.origin_y - ((entr->unk_00 & 0xFC0) >> 2); tmp = gUnk_03004030.unk_08; if (!tmp) { - if ((entr->target_roomID | 0x80) != gUnk_03004030.unk_0b) { + if ((entr->target_room | 0x80) != gUnk_03004030.unk_0b) { gUnk_02034480.unk_00 = gUnk_03004030.unk_08; } - gUnk_03004030.unk_0b = entr->target_roomID | 0x80; + gUnk_03004030.unk_0b = entr->target_room | 0x80; } sub_08080930(entr->unk_03); DeleteManager(this); } #endif -DiggingCaveEntrance* sub_08057AA8(DiggingCaveEntrance* entr, int roomID) { +DiggingCaveEntrance* sub_08057AA8(DiggingCaveEntrance* entr, int room) { for (; entr->unk_00 != 0xFFFF; entr++) { - if (entr->source_roomID == roomID) + if (entr->source_room == room) return entr; } return 0; diff --git a/src/manager/manager7.c b/src/manager/manager7.c index 45ff72a4..ba3e03a2 100644 --- a/src/manager/manager7.c +++ b/src/manager/manager7.c @@ -74,7 +74,7 @@ void Manager7_Main(Manager7* this) { this->manager.unk_0e = 0; } } - if (gRoomControls.unk2) + if (gRoomControls.reload_flags) return; #ifndef JP tmp = this->unk_20; diff --git a/src/manager/manager8.c b/src/manager/manager8.c index 04a5b954..f3fbffa9 100644 --- a/src/manager/manager8.c +++ b/src/manager/manager8.c @@ -41,10 +41,10 @@ extern u8 gUnk_02006F00[]; void sub_08057F20(Manager8* this) { u32 tmp; - tmp = gRoomControls.roomScrollX - gRoomControls.roomOriginX; + tmp = gRoomControls.scroll_x - gRoomControls.origin_x; tmp = tmp + (tmp >> 3) + ((0x400 - gRoomControls.width) / 2); gScreen.bg3.xOffset = tmp & 0xF; - gScreen.bg3.yOffset = 0x30 - ((0x30 - (gRoomControls.roomScrollY - gRoomControls.roomOriginY)) >> 2); + gScreen.bg3.yOffset = 0x30 - ((0x30 - (gRoomControls.scroll_y - gRoomControls.origin_y)) >> 2); gScreen.bg3.tilemap = gBG3Buffer; sub_08058004(tmp, gUnk_02006F00, gBG3Buffer); tmp = ((tmp >> 4) << 1); @@ -52,10 +52,10 @@ void sub_08057F20(Manager8* this) { this->unk_38 = tmp; gScreen.bg3.updated = 1; } - tmp = (gRoomControls.roomScrollX - gRoomControls.roomOriginX); + tmp = (gRoomControls.scroll_x - gRoomControls.origin_x); tmp = tmp + (tmp >> 2) + ((0x400 - gRoomControls.width) / 2); gScreen.bg1.xOffset = tmp & 0xF; - gScreen.bg1.yOffset = 0x30 - ((0x30 - (gRoomControls.roomScrollY - gRoomControls.roomOriginY)) >> 1); + gScreen.bg1.yOffset = 0x30 - ((0x30 - (gRoomControls.scroll_y - gRoomControls.origin_y)) >> 1); gScreen.bg1.tilemap = gBG3Buffer + 0x400; sub_08058004(tmp, gUnk_02006F00 + 0x2000, gBG3Buffer + 0x400); tmp = ((tmp >> 4) << 1); @@ -110,19 +110,19 @@ void sub_080580B0(u32 unk1) { LoadGfxGroup(unk1); gRoomVars.unk_10[0] = unk1; sub_08058034(); - tmp = gRoomControls.roomScrollX - gRoomControls.roomOriginX; // r7 + tmp = gRoomControls.scroll_x - gRoomControls.origin_x; // r7 tmp = tmp + (tmp >> 3) + (0x400 - gRoomControls.width) / 2; sub_08058004(tmp, gUnk_02006F00, gBG3Buffer); gScreen.bg3.xOffset = tmp & 0xF; - gScreen.bg3.yOffset = 0x30 - ((0x30 - (gRoomControls.roomScrollY - gRoomControls.roomOriginY)) >> 1); //? + gScreen.bg3.yOffset = 0x30 - ((0x30 - (gRoomControls.scroll_y - gRoomControls.origin_y)) >> 1); //? gScreen.bg3.control = 0x1D09; gScreen.bg3.tilemap = gBG3Buffer; gScreen.bg3.updated = 1; - tmp = gRoomControls.roomScrollX - gRoomControls.roomOriginX; // r7 + tmp = gRoomControls.scroll_x - gRoomControls.origin_x; // r7 tmp = tmp + (tmp >> 2) + (0x400 - gRoomControls.width) / 2; sub_08058004(tmp, gUnk_02006F00 + 0x2000, gBG3Buffer + 0x400); gScreen.bg1.xOffset = tmp & 0xF; - gScreen.bg1.yOffset = 0x30 - ((0x30 - (gRoomControls.roomScrollY - gRoomControls.roomOriginY)) >> 1); //? + gScreen.bg1.yOffset = 0x30 - ((0x30 - (gRoomControls.scroll_y - gRoomControls.origin_y)) >> 1); //? gScreen.bg1.control = 0x1E09; gScreen.bg1.tilemap = gBG3Buffer + 0x400; gScreen.bg1.updated = 1; diff --git a/src/manager/manager9.c b/src/manager/manager9.c index c16fefa0..4e992f59 100644 --- a/src/manager/manager9.c +++ b/src/manager/manager9.c @@ -47,9 +47,9 @@ u32 sub_08058244(int i) { s32 tmp2; u32 tmp3; s32 tmp4; - tmp = ((gRoomControls.roomScrollY - gRoomControls.roomOriginY) * 0x20) / (gRoomControls.height - 0xa0); - gScreen.bg1.yOffset = gRoomControls.roomOriginY + tmp; - tmp = (((gRoomControls.roomScrollX - gRoomControls.roomOriginX) * gUnk_081081EC[i]) / (gRoomControls.width - 0xf0)); + tmp = ((gRoomControls.scroll_y - gRoomControls.origin_y) * 0x20) / (gRoomControls.height - 0xa0); + gScreen.bg1.yOffset = gRoomControls.origin_y + tmp; + tmp = (((gRoomControls.scroll_x - gRoomControls.origin_x) * gUnk_081081EC[i]) / (gRoomControls.width - 0xf0)); gScreen.bg1.xOffset = tmp & 0xf; return tmp; } diff --git a/src/manager/managerC.c b/src/manager/managerC.c index e8790891..fedd7800 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -77,7 +77,7 @@ void sub_08058894(ManagerC* this) { void sub_080588CC(ManagerC* this) { sub_08058CFC(); sub_08058A04(this); - if (gScreenTransition.transitioningOut) { + if (gRoomTransition.transitioningOut) { this->manager.action = 2; } else { sub_080588F8(this); @@ -111,7 +111,7 @@ void sub_080588F8(ManagerC* this) { } } if (this->manager.unk_0e) { - s32 tmp = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY; + s32 tmp = gPlayerEntity.y.HALF.HI - gRoomControls.origin_y; u32 tmp2; tmp2 = (((unsigned)(tmp - 0x50 < 0 ? 0x50 - tmp : tmp - 0x50) >> 3) * 0x3000) + 0x4000; if (this->manager.unk_0f == 0) { @@ -152,14 +152,14 @@ const struct_08108228 gUnk_081082B8[6] = { { 0xA0, 0x88, 0x20, 0x0A }, { 0x9E, 0 { 0x98, 0x64, 0x1E, 0x1E }, { 0x98, 0x6A, 0x1C, 0x10 } }; void sub_08058A04(ManagerC* this) { - s32 tmp = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX; - s32 tmp2 = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY; + s32 tmp = gPlayerEntity.x.HALF.HI - gRoomControls.origin_x; + s32 tmp2 = gPlayerEntity.y.HALF.HI - gRoomControls.origin_y; if ((this->unk_20 - 0x118 < 0xDu) && CheckGlobalFlag(LV1TARU_OPEN) && (tmp - 0x6d < 0x17u) && (tmp2 - 0x45 < 0x17u) && (gPlayerEntity.z.HALF.HI == 0)) { gPlayerState.queued_action = PLAYER_FALL; gPlayerState.field_0x38 = 0; - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x78; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x50; + gPlayerEntity.x.HALF.HI = gRoomControls.origin_x + 0x78; + gPlayerEntity.y.HALF.HI = gRoomControls.origin_y + 0x50; return; } if (tmp < 0x78) { @@ -194,8 +194,8 @@ u32 sub_08058B08(ManagerC* this, u32 unk1, u32 unk2, const struct_08108228* unk3 tmp -= unk1; tmp >>= 3; unk3 += tmp; - tmp2 = (gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX - unk3->unk_0); - tmp3 = (gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY - unk3->unk_2); + tmp2 = (gPlayerEntity.x.HALF.HI - gRoomControls.origin_x - unk3->unk_0); + tmp3 = (gPlayerEntity.y.HALF.HI - gRoomControls.origin_y - unk3->unk_2); return ((tmp2 < unk3->unk_4) && (tmp3 < unk3->unk_6)); } } @@ -203,14 +203,14 @@ u32 sub_08058B08(ManagerC* this, u32 unk1, u32 unk2, const struct_08108228* unk3 const u16 gUnk_081082E8[0xC] = { 0xB8, 0x80, 0x0, 0xB8, 0x110, 0x2, 0x118, 0x80, 0x2, 0x118, 0x110, 0x0 }; void sub_08058B5C(ManagerC* this, u32 unk1) { - gScreenTransition.transitioningOut = 1; - gScreenTransition.transitionType = TRANSITION_DEFAULT; - gScreenTransition.player_status.spawn_type = 4; - gScreenTransition.player_status.area_next = gRoomControls.areaID; - gScreenTransition.player_status.room_next = 6; - gScreenTransition.player_status.start_anim = unk1 & 1 ? 4 : 0; - gScreenTransition.player_status.start_pos_x = gUnk_081082E8[unk1 * 3]; - gScreenTransition.player_status.start_pos_y = gUnk_081082E8[unk1 * 3 + 1]; + gRoomTransition.transitioningOut = 1; + gRoomTransition.type = TRANSITION_DEFAULT; + gRoomTransition.player_status.spawn_type = 4; + gRoomTransition.player_status.area_next = gRoomControls.area; + gRoomTransition.player_status.room_next = 6; + gRoomTransition.player_status.start_anim = unk1 & 1 ? 4 : 0; + gRoomTransition.player_status.start_pos_x = gUnk_081082E8[unk1 * 3]; + gRoomTransition.player_status.start_pos_y = gUnk_081082E8[unk1 * 3 + 1]; gSave.unk7 = gUnk_081082E8[unk1 * 3 + 2]; SoundReq(SFX_STAIRS); } @@ -250,8 +250,8 @@ void sub_08058BC8(ManagerC* this) { const u16 gUnk_08108300[4] = { 0xA4, 0x4C, 0xF4, 0x9C }; void sub_08058CB0(ManagerC* this) { - u32 tmp = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX; - u32 tmp2 = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY; + u32 tmp = gPlayerEntity.x.HALF.HI - gRoomControls.origin_x; + u32 tmp2 = gPlayerEntity.y.HALF.HI - gRoomControls.origin_y; u32 tmp3; if (tmp < 0x78) { tmp3 = 1; @@ -268,7 +268,7 @@ void sub_08058CB0(ManagerC* this) { } void sub_08058CFC() { - u32 tmp = gPlayerEntity.y.HALF.HI - gRoomControls.roomScrollY; + u32 tmp = gPlayerEntity.y.HALF.HI - gRoomControls.scroll_y; if (tmp < 0x4C) { sub_080044AE(&gPlayerEntity, 0xC0, 0x10); } diff --git a/src/manager/managerF.c b/src/manager/managerF.c index 82b33d19..dd27ac02 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -127,8 +127,8 @@ void sub_08058F84(u32 unk0, u32 unk1) { tmp = CreateObject(OBJECT_21, 0, 0); if (!tmp) return; - tmp->x.HALF.HI = gRoomControls.roomOriginX + unk0; - tmp->y.HALF.HI = gRoomControls.roomOriginY + unk1; + tmp->x.HALF.HI = gRoomControls.origin_x + unk0; + tmp->y.HALF.HI = gRoomControls.origin_y + unk1; } void sub_08058FB0(ManagerF* this) { @@ -180,8 +180,8 @@ void sub_08059064(ManagerF* this) { if (!tmp) return; tmp->actionDelay = 2; - tmp->x.HALF.HI = this->unk_38 + gRoomControls.roomOriginX; - tmp->y.HALF.HI = this->unk_3a + gRoomControls.roomOriginY; + tmp->x.HALF.HI = this->unk_38 + gRoomControls.origin_x; + tmp->y.HALF.HI = this->unk_3a + gRoomControls.origin_y; } void sub_08059094(ManagerF* this) { @@ -294,7 +294,7 @@ void sub_08059278() { void sub_08059290(ManagerF* this) { this->manager.action = 1; - gRoomControls.cameraTarget = &gPlayerEntity; + gRoomControls.camera_target = &gPlayerEntity; } void sub_080592A4(ManagerF* this) { @@ -329,8 +329,8 @@ void sub_0805930C(ManagerF* this) { #endif if (!tmp) return; - tmp->x.HALF.HI = this->unk_38 + gRoomControls.roomOriginX; - tmp->y.HALF.HI = this->unk_3a + gRoomControls.roomOriginY; + tmp->x.HALF.HI = this->unk_38 + gRoomControls.origin_x; + tmp->y.HALF.HI = this->unk_3a + gRoomControls.origin_y; tmp->collisionLayer = 1; } @@ -351,7 +351,7 @@ void sub_08059368(ManagerF* this) { void sub_0805938C(ManagerF* this) { if (sub_080593CC(this)) { if (++this->manager.unk_0e >= 8) { - sub_080806BC(this->unk_38 - gRoomControls.roomOriginX, this->unk_3a - gRoomControls.roomOriginY, 0xFF, 0xA); + sub_080806BC(this->unk_38 - gRoomControls.origin_x, this->unk_3a - gRoomControls.origin_y, 0xFF, 0xA); } } else { this->manager.unk_0e = 0; @@ -377,8 +377,8 @@ void sub_08059424(ManagerF* this) { if (!tmp) return; tmp->collisionLayer = 2; - tmp->x.HALF.HI = this->unk_38 + gRoomControls.roomOriginX; - tmp->y.HALF.HI = this->unk_3a + gRoomControls.roomOriginY; + tmp->x.HALF.HI = this->unk_38 + gRoomControls.origin_x; + tmp->y.HALF.HI = this->unk_3a + gRoomControls.origin_y; EnqueueSFX(0x1B0); DeleteThisEntity(); } @@ -386,10 +386,10 @@ void sub_08059424(ManagerF* this) { void sub_0805947C(ManagerF* this) { if (!CheckFlags(this->unk_3e)) { SetPlayerControl(3); - if (gRoomControls.unk2) + if (gRoomControls.reload_flags) return; if (gRoomVars.field_0x0) { - StartPlayerScript(gUnk_08108380[gRoomControls.unk_10]); + StartPlayerScript(gUnk_08108380[gRoomControls.scroll_direction]); } else { StartPlayerScript(gUnk_08108380[gPlayerEntity.animationState >> 1]); } diff --git a/src/message.c b/src/message.c index 1383e0e6..d2d05083 100644 --- a/src/message.c +++ b/src/message.c @@ -135,8 +135,8 @@ void MessageClose(void) { } void MessageFromTarget(u32 index) { - if (gRoomControls.cameraTarget != NULL) { - MessageNoOverlap(index, gRoomControls.cameraTarget); + if (gRoomControls.camera_target != NULL) { + MessageNoOverlap(index, gRoomControls.camera_target); } else { MessageRequest(index); } @@ -151,7 +151,7 @@ void MessageNoOverlap(u32 index, Entity* entity) { y = entity->y.HALF.HI; height = entity->z.HALF.HI; - if (((y + height) - gRoomControls.roomScrollY) > 0x58) { + if (((y + height) - gRoomControls.scroll_y) > 0x58) { gMessage.textWindowPosY = 1; } } @@ -237,16 +237,16 @@ NONMATCH("asm/non_matching/textbox/TextBoxFunction1.inc", static u32 MsgInit(voi MemClear((void*)&gTextRender, sizeof(gTextRender)); MemCopy(&gMessage, &gTextRender, sizeof(gMessage)); if (gTextRender.message.textSpeed == 99) { - gTextRender.message.textSpeed = gSaveHeader->messageSpeed; + gTextRender.message.textSpeed = gSaveHeader->msg_speed; } gTextRender._9c = 0xff; sub_0805EEB4(&gTextRender.curToken, gTextRender.message.textIndex); - gTextRender.playerName[0] = 2; - gTextRender.playerName[1] = 0xe; // Green text color - dest = &gTextRender.playerName[2]; + gTextRender.player_name[0] = 2; + gTextRender.player_name[1] = 0xe; // Green text color + dest = &gTextRender.player_name[2]; for (i = 0; i < FILENAME_LENGTH; ++i) { - char c = gSave.playerName[i]; + char c = gSave.name[i]; if (c == '\0') break; *dest++ = c; diff --git a/src/npc.c b/src/npc.c index 4f48e34f..dbc4253b 100644 --- a/src/npc.c +++ b/src/npc.c @@ -161,8 +161,8 @@ NONMATCH("asm/non_matching/arm_proxy/NPCUpdate.inc", void NPCUpdate(Entity* this gNPCFunctions[this->id][1](this); if ((this->health & 0x7f) != 0) { u32 temp = this->health & 0x7f; - gUnk_02031EC0[temp * 2 - 2].x = this->x.HALF.HI - gRoomControls.roomOriginX; - gUnk_02031EC0[temp * 2 - 2].y = this->y.HALF.HI - gRoomControls.roomOriginY; + gUnk_02031EC0[temp * 2 - 2].x = this->x.HALF.HI - gRoomControls.origin_x; + gUnk_02031EC0[temp * 2 - 2].y = this->y.HALF.HI - gRoomControls.origin_y; } DrawEntity(this); } diff --git a/src/npc/bigGoron.c b/src/npc/bigGoron.c index 0fb7c8bf..9a357ae5 100644 --- a/src/npc/bigGoron.c +++ b/src/npc/bigGoron.c @@ -45,7 +45,7 @@ void sub_0806CF30(Entity* this) { switch (this->subAction) { case 0: case 1: - if (gScreenTransition.frameCount % 4 == 0) { + if (gRoomTransition.frameCount % 4 == 0) { if (gPlayerEntity.x.HALF.HI < this->x.HALF.HI && this->field_0x68.HWORD - 32 < this->x.HALF.HI) { this->x.HALF.HI--; } @@ -257,7 +257,7 @@ void sub_0806D41C(Entity* this) { ExecuteScriptForEntity(this, NULL); HandleEntity0x82Actions(this); } - if ((gScreenTransition.frameCount & 1) == 0) { + if ((gRoomTransition.frameCount & 1) == 0) { if (CheckPlayerProximity(this->x.HALF.HI - 0x20, this->y.HALF.HI, 0x40, 0x40) != 0) { if (this->spriteOffsetY > -8) { this->spriteOffsetY -= 1; diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c index d0620938..f9bc50b6 100644 --- a/src/npc/bladeBrothers.c +++ b/src/npc/bladeBrothers.c @@ -51,7 +51,7 @@ void sub_08068A1C(Entity* this) { int offset; this->type2 = this->type; - if (gScreenTransition.player_status.field_0x24[8] != 0) { + if (gRoomTransition.player_status.field_0x24[8] != 0) { offset = 6; bVar1 = 3; @@ -103,7 +103,7 @@ void sub_08068AA4(Entity* this) { } void sub_08068ADC(Entity* this) { - if (gScreenTransition.player_status.field_0x24[8] == 2) { + if (gRoomTransition.player_status.field_0x24[8] == 2) { GetNextFrame(this); } sub_0806FD3C(this); diff --git a/src/npc/castorWildsStatue.c b/src/npc/castorWildsStatue.c index c0637c96..0a809793 100644 --- a/src/npc/castorWildsStatue.c +++ b/src/npc/castorWildsStatue.c @@ -25,7 +25,7 @@ void CastorWildsStatue(Entity* this) { } void sub_080673C0(Entity* this) { - if (gScreenTransition.player_status.field_0x24[8] != 0) { + if (gRoomTransition.player_status.field_0x24[8] != 0) { this->action = 3; } else { this->action = 1; diff --git a/src/npc/dampe.c b/src/npc/dampe.c index 31eb8c7b..fd7ddbb7 100644 --- a/src/npc/dampe.c +++ b/src/npc/dampe.c @@ -93,8 +93,8 @@ void sub_0806BEFC() { void sub_0806BF44(Entity* this, ScriptExecutionContext* context) { context->condition = 0; - if (((this->x.HALF.HI - gRoomControls.roomScrollX) + 0x10U < 0x110) && - ((this->y.HALF.HI - gRoomControls.roomScrollY) + 0x18U < 0xD0)) { + if (((this->x.HALF.HI - gRoomControls.scroll_x) + 0x10U < 0x110) && + ((this->y.HALF.HI - gRoomControls.scroll_y) + 0x18U < 0xD0)) { context->condition = 1; } } diff --git a/src/npc/goronMerchant.c b/src/npc/goronMerchant.c index 503717a6..df239bd4 100644 --- a/src/npc/goronMerchant.c +++ b/src/npc/goronMerchant.c @@ -25,7 +25,7 @@ void GoronMerchant(Entity* this) { } void sub_08069584(Entity* this) { - if (gScreenTransition.player_status.field_0x24[8] != 0) { + if (gRoomTransition.player_status.field_0x24[8] != 0) { this->action = 3; } else { this->action = 1; @@ -59,7 +59,7 @@ void sub_080695E8(Entity* this) { } void sub_0806961C(Entity* this) { - if (gScreenTransition.player_status.field_0x24[8] == 2) { + if (gRoomTransition.player_status.field_0x24[8] == 2) { UpdateAnimationSingleFrame(this); } sub_0806FD3C(this); diff --git a/src/npc/guard.c b/src/npc/guard.c index 50f559c7..b0f44595 100644 --- a/src/npc/guard.c +++ b/src/npc/guard.c @@ -202,7 +202,7 @@ void sub_08064030(Entity* arg0, Entity* arg1) { } void sub_08064044(void) { - gScreenTransition.transitioningOut = 1; + gRoomTransition.transitioningOut = 1; } void sub_08064050(Entity* this, ScriptExecutionContext* context) { diff --git a/src/npc/kid.c b/src/npc/kid.c index c5b5872a..18f9bb7d 100644 --- a/src/npc/kid.c +++ b/src/npc/kid.c @@ -236,8 +236,8 @@ NONMATCH("asm/non_matching/kid/sub_080626E0.inc", void sub_080626E0(Entity* this context->unk_19 = 10; context->postScriptActions |= 2; sVar1 = *(s16*)&context->intVariable; - context->x.HALF.HI = *((u16*)&context->intVariable + 2) + gRoomControls.roomOriginX; - context->y.HALF.HI = gRoomControls.roomOriginY + sVar1; + context->x.HALF.HI = *((u16*)&context->intVariable + 2) + gRoomControls.origin_x; + context->y.HALF.HI = gRoomControls.origin_y + sVar1; } bVar2 = context->unk_19 - 1; context->unk_19 = bVar2; diff --git a/src/npc/npc23.c b/src/npc/npc23.c index df0786e4..40712f6f 100644 --- a/src/npc/npc23.c +++ b/src/npc/npc23.c @@ -86,7 +86,7 @@ void sub_0806643C(Entity* this) { bool32 tmp = sub_0806650C(this); if (tmp == FALSE) { this->action = 5; - gRoomControls.cameraTarget = NULL; + gRoomControls.camera_target = NULL; sub_08078AC0(0x40, 0, 0); gPlayerEntity.animationState = 0; gPlayerEntity.direction = 0; diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index 23afefed..d5952c03 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -203,8 +203,8 @@ void sub_0806DCA0() { } void sub_0806DCC0() { - gScreenTransition.player_status.overworld_map_x = 0x7c8; - gScreenTransition.player_status.overworld_map_y = 0xf8; + gRoomTransition.player_status.overworld_map_x = 0x7c8; + gRoomTransition.player_status.overworld_map_y = 0xf8; } void NPC4E_Fusion(Entity* this) { diff --git a/src/npc/npc5.c b/src/npc/npc5.c index 4a620dcd..1fa8c0f6 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -118,13 +118,13 @@ void sub_08060A00(Entity* this) { ((UnkHeap*)this->myHeap)->unk_1 = gPlayerEntity.x.HALF.HI; ((UnkHeap*)this->myHeap)->unk_2 = gPlayerEntity.y.HALF.HI; } - if (this->field_0x74.HWORD != gRoomControls.roomID) { - this->field_0x74.HWORD = gRoomControls.roomID; + if (this->field_0x74.HWORD != gRoomControls.room) { + this->field_0x74.HWORD = gRoomControls.room; CopyPosition(&gPlayerEntity, this); this->action = 1; this->spriteSettings.draw = 1; this->speed = 0x120; - tmp = gRoomControls.unk_10; + tmp = gRoomControls.scroll_direction; this->animationState = tmp * 2; InitAnimationForceUpdate(this, tmp << 0x19 >> 0x19); // TODO some conversion between u8 and u32? this->frameDuration = (Random() & 0x7f) + 0x80; @@ -880,7 +880,7 @@ void sub_08061B58(Entity* this) { this->action = 1; InitAnimationForceUpdate(this, 2); } - if (gScreenTransition.player_status.field_0x24[8] == 2) { + if (gRoomTransition.player_status.field_0x24[8] == 2) { UpdateAnimationSingleFrame(this); } sub_0806FD3C(this); diff --git a/src/npc/phonograph.c b/src/npc/phonograph.c index 9a471b6c..8bde7e7c 100644 --- a/src/npc/phonograph.c +++ b/src/npc/phonograph.c @@ -1,7 +1,7 @@ #include "entity.h" #include "script.h" #include "functions.h" -#include "fileScreen.h" +#include "fileselect.h" #include "screen.h" extern void sub_08057044(u32, struct_020227E8*, u32); diff --git a/src/npc/picolyteBottle.c b/src/npc/picolyteBottle.c index 9b65c735..c25faa66 100644 --- a/src/npc/picolyteBottle.c +++ b/src/npc/picolyteBottle.c @@ -39,7 +39,7 @@ void sub_0806DF00(Entity* this) { npc->parent = this; this->field_0x74.HWORD = 0; this->field_0x76.HWORD = 10; - gScreenTransition.field_0x6 = 10; + gRoomTransition.field_0x6 = 10; sub_0806E014(this); sub_0807DD50(this); } else { @@ -109,17 +109,17 @@ void sub_0806E1FC(Entity* this) { } void sub_0806E20C(void) { - if (gScreenTransition.field_0x6 != 0) { + if (gRoomTransition.field_0x6 != 0) { MessageFromTarget(0x421f); - gMessage.field_0x10 = gScreenTransition.field_0x6; + gMessage.field_0x10 = gRoomTransition.field_0x6; } else { MessageFromTarget(0x4220); } } void sub_0806E23C(void) { - if (gScreenTransition.field_0x6 != 0) { - ModRupees(gScreenTransition.field_0x6); + if (gRoomTransition.field_0x6 != 0) { + ModRupees(gRoomTransition.field_0x6); } } diff --git a/src/npc/postman.c b/src/npc/postman.c index 1f958c09..48e7aa9e 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -181,8 +181,8 @@ void sub_080606D8(Entity* this) { void sub_08060700(Entity* entity, ScriptExecutionContext* context) { s8* var0 = gUnk_0810A918[(s8)entity->field_0x68.HALF.LO]; Coords16* coords = &gUnk_0810A66C[var0[(s8)entity->field_0x68.HALF.HI]]; - u32 x = coords->x + gRoomControls.roomOriginX; - u32 y = coords->y + gRoomControls.roomOriginY; + u32 x = coords->x + gRoomControls.origin_x; + u32 y = coords->y + gRoomControls.origin_y; sub_0807DEDC(entity, context, x, y); gActiveScriptInfo.flags |= 1; } diff --git a/src/npc/rem.c b/src/npc/rem.c index c55df7c9..b846ab31 100644 --- a/src/npc/rem.c +++ b/src/npc/rem.c @@ -291,7 +291,7 @@ void sub_0806AA18(Entity* this) { u32 index; if (this->field_0x6a.HWORD != 0) { index = 0x4408; - } else if ((gScreenTransition.frameCount & 1U) == 0) { + } else if ((gRoomTransition.frameCount & 1U) == 0) { index = 0x4407; } else { index = 0x440d; @@ -303,8 +303,8 @@ ASM_FUNC("asm/non_matching/rem/sub_0806AA50.inc", void sub_0806AA50(Entity* this void sub_0806AB74(Entity* this) { gRoomVars.field_0x3 = 1; - if ((s32)(this->y.HALF.HI - (u32)gRoomControls.roomOriginY) < 0xa8) { - this->y.HALF.HI = gRoomControls.roomOriginY + 0xa8; + if ((s32)(this->y.HALF.HI - (u32)gRoomControls.origin_y) < 0xa8) { + this->y.HALF.HI = gRoomControls.origin_y + 0xa8; } } diff --git a/src/npc/simon.c b/src/npc/simon.c index c5e40ce5..a41b7005 100644 --- a/src/npc/simon.c +++ b/src/npc/simon.c @@ -27,7 +27,7 @@ void Simon(Entity* this) { void sub_0806C224(void) { DoExitTransition(&gUnk_0813AD60); - gScreenTransition.transitionType = TRANSITION_FADE_BLACK_FAST; + gRoomTransition.type = TRANSITION_FADE_BLACK_FAST; } void Simon_CreateChest(Entity* this) { @@ -39,7 +39,7 @@ void Simon_CreateChest(Entity* this) { void sub_0806C280(void) { SetGlobalFlag(MAROYA_WAKEUP); DoExitTransition(&gUnk_0813AD74); - gScreenTransition.transitionType = TRANSITION_FADE_BLACK_FAST; + gRoomTransition.type = TRANSITION_FADE_BLACK_FAST; } void sub_0806C2A0(Entity* this, ScriptExecutionContext* context) { diff --git a/src/npc/sturgeon.c b/src/npc/sturgeon.c index ef135a92..f55788f1 100644 --- a/src/npc/sturgeon.c +++ b/src/npc/sturgeon.c @@ -83,7 +83,7 @@ void Sturgeon_Head(Entity* this) { } void sub_08064C9C(Entity* this) { - if ((this->actionDelay != 0) && ((gScreenTransition.frameCount & 3U) == 0)) { + if ((this->actionDelay != 0) && ((gRoomTransition.frameCount & 3U) == 0)) { CreateDust(this); } } diff --git a/src/npc/syrup.c b/src/npc/syrup.c index 45e44c11..003b60cb 100644 --- a/src/npc/syrup.c +++ b/src/npc/syrup.c @@ -32,7 +32,7 @@ void sub_0806A1F8(Entity* this) { void sub_0806A234(Entity* this) { sub_0807DD94(this, 0); if ((this->field_0x82.HWORD & 4) != 0) { - if ((gScreenTransition.frameCount & 7) == 0) { + if ((gRoomTransition.frameCount & 7) == 0) { sub_0806A26C(this); } sub_080042BA(this, 2); diff --git a/src/npc/vaati.c b/src/npc/vaati.c index 9db43d90..c3691bc7 100644 --- a/src/npc/vaati.c +++ b/src/npc/vaati.c @@ -34,7 +34,7 @@ void VaatiAction0(Entity* this) { void VaatiAction1(Entity* this) { ScriptExecutionContext* tmp; sub_0807DD94(this, sub_08066B74); - if ((*(s8*)&this->field_0x68.HALF.HI != 0) && ((gScreenTransition.frameCount & 3) == 0)) { + if ((*(s8*)&this->field_0x68.HALF.HI != 0) && ((gRoomTransition.frameCount & 3) == 0)) { sub_08095CB0(this); } diff --git a/src/npc/zelda.c b/src/npc/zelda.c index b66b879a..b0ac945f 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -66,7 +66,7 @@ void sub_08066D4C(Entity* this, ScriptExecutionContext* context) { } void sub_08066D94(Entity* this) { - u32 roomID; + u32 room; Entity* npc; SetGlobalFlag(ZELDA_CHASE); @@ -75,8 +75,8 @@ void sub_08066D94(Entity* this) { npc->animationState = gPlayerEntity.animationState; npc->flags |= 0x20; npc->animationState = GetAnimationState(this); - roomID = gRoomControls.roomID; - npc->field_0x74.HWORD = roomID; + room = gRoomControls.room; + npc->field_0x74.HWORD = room; CopyPosition(this, npc); } DeleteThisEntity(); diff --git a/src/npcUtils.c b/src/npcUtils.c index d44f3336..01ddd448 100644 --- a/src/npcUtils.c +++ b/src/npcUtils.c @@ -194,8 +194,8 @@ static void sub_0806EF14(Entity* ent) { static void sub_0806EF4C(Entity* ent, u16* xy) { u16* src = &((u16*)ent->child)[ent->hitType]; - xy[0] = gRoomControls.roomOriginX + src[1]; - xy[1] = gRoomControls.roomOriginY + src[2]; + xy[0] = gRoomControls.origin_x + src[1]; + xy[1] = gRoomControls.origin_y + src[2]; } static u32 sub_0806EF74(Entity* ent, u32 a2) { diff --git a/src/object/backgroundCloud.c b/src/object/backgroundCloud.c index 8d3263bc..176bdd58 100644 --- a/src/object/backgroundCloud.c +++ b/src/object/backgroundCloud.c @@ -17,8 +17,8 @@ void sub_0808F658(Entity* this) { this->frameIndex = this->type; this->direction = 8; this->speed = gUnk_08121EB0[this->type]; - this->field_0x78.HWORD = gRoomControls.roomOriginX - 0x60; - this->field_0x7a.HWORD = gRoomControls.roomOriginX + gRoomControls.width + 0x60; + this->field_0x78.HWORD = gRoomControls.origin_x - 0x60; + this->field_0x7a.HWORD = gRoomControls.origin_x + gRoomControls.width + 0x60; this->animationState = 0; this->x.HALF.HI += (Random() & 0xf) << 4; this->actionDelay = 0; diff --git a/src/object/bakerOven.c b/src/object/bakerOven.c index c7f21f7c..a5b344ba 100644 --- a/src/object/bakerOven.c +++ b/src/object/bakerOven.c @@ -85,8 +85,8 @@ void sub_0809CDB4(Entity* this) { void sub_0809CDF0(Entity* this) { u32 y; - this->field_0x80.HWORD = (((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3f) | - (((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4 & 0x3f) << 6); + this->field_0x80.HWORD = (((this->x.HALF.HI - gRoomControls.origin_x) >> 4) & 0x3f) | + (((this->y.HALF.HI - gRoomControls.origin_y) >> 4 & 0x3f) << 6); y = this->field_0x80.HWORD; SetTile(0x402e, y - 0x01, this->collisionLayer); diff --git a/src/object/bird.c b/src/object/bird.c index 07a696cf..33bea93a 100644 --- a/src/object/bird.c +++ b/src/object/bird.c @@ -29,7 +29,7 @@ void sub_0809CF54(Entity* this) { this->speed = 0x280; this->direction = 8; this->collisionLayer = 2; - this->x.HALF.HI = gRoomControls.roomScrollX; + this->x.HALF.HI = gRoomControls.scroll_x; SoundReq(SFX_123); UpdateSpriteForCollisionLayer(this); InitAnimationForceUpdate(this, 0); diff --git a/src/object/book.c b/src/object/book.c index 2ad7a40b..3da498bc 100644 --- a/src/object/book.c +++ b/src/object/book.c @@ -54,7 +54,7 @@ void sub_0809B3C4(Entity* this) { u32 scroll; u32 height; this->action = 3; - scroll = (u16)gRoomControls.roomScrollY - 0x10; + scroll = (u16)gRoomControls.scroll_y - 0x10; height = (u16)this->y.HALF.HI - scroll; this->z.HALF.HI -= height; return; diff --git a/src/object/button.c b/src/object/button.c index 5f36262d..1d1c88d9 100644 --- a/src/object/button.c +++ b/src/object/button.c @@ -16,8 +16,8 @@ void sub_08081AE0(Entity* this) { if (this->cutsceneBeh.HWORD != 0) { this->collisionLayer = this->cutsceneBeh.HWORD; } - this->field_0x74.HWORD = (((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3F) | - ((((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3F) << 6); + this->field_0x74.HWORD = (((this->x.HALF.HI - gRoomControls.origin_x) >> 4) & 0x3F) | + ((((this->y.HALF.HI - gRoomControls.origin_y) >> 4) & 0x3F) << 6); this->field_0x70.HALF.HI = GetTileType(this->field_0x74.HWORD, this->collisionLayer); if (this->type == 0 && CheckFlags(this->field_0x86.HWORD)) { this->action = 5; diff --git a/src/object/cloud.c b/src/object/cloud.c index 5ff9bf6b..dd3da89d 100644 --- a/src/object/cloud.c +++ b/src/object/cloud.c @@ -30,7 +30,7 @@ void sub_0809F514(Entity* this) { this->actionDelay = 120; this->spriteSettings.draw = 0; this->field_0x68.HALF.LO = 12; - gRoomControls.cameraTarget = this; + gRoomControls.camera_target = this; gUnk_02034490[0] = 255; sub_0809F7BC(this); } @@ -41,10 +41,10 @@ void sub_0809F548(Entity* this) { this->action = 2; this->actionDelay = 90; SoundReq(SFX_11D); - sub_0809F814((((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 63) | - (((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 63) << 6); + sub_0809F814((((this->x.HALF.HI - gRoomControls.origin_x) >> 4) & 63) | + (((this->y.HALF.HI - gRoomControls.origin_y) >> 4) & 63) << 6); } else { - if ((gScreenTransition.frameCount & 7) == 0) { + if ((gRoomTransition.frameCount & 7) == 0) { sub_0809F7BC(this); } sub_0809F7F4(this); @@ -75,7 +75,7 @@ void sub_0809F5F0(Entity* this) { this->actionDelay = 120; SetPlayerControl(3); sub_08078B48(); - gRoomControls.cameraTarget = this; + gRoomControls.camera_target = this; } } @@ -89,10 +89,10 @@ void sub_0809F61C(Entity* this) { this->action = 3; this->actionDelay = 120; SoundReq(SFX_11D); - sub_0809F814((((this->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 63) | - (((this->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 63) << 6); + sub_0809F814((((this->x.HALF.HI - gRoomControls.origin_x) >> 4) & 63) | + (((this->y.HALF.HI - gRoomControls.origin_y) >> 4) & 63) << 6); } else { - if ((gScreenTransition.frameCount & 7) == 0) { + if ((gRoomTransition.frameCount & 7) == 0) { sub_0809F7BC(this); } sub_0809F7F4(this); @@ -105,7 +105,7 @@ void sub_0809F69C(Entity* this) { if (--this->actionDelay == 0) { this->actionDelay = 30; this->action = 4; - gRoomControls.cameraTarget = &gPlayerEntity; + gRoomControls.camera_target = &gPlayerEntity; SoundReq(SFX_SECRET_BIG); } } @@ -127,7 +127,7 @@ void sub_0809F700(Entity* this) { this->actionDelay = (Random() & 30) + 8; this->flags = this->flags | 12; } - if ((gScreenTransition.frameCount & 3) == 0) { + if ((gRoomTransition.frameCount & 3) == 0) { uVar2 = Random(); this->spriteOffsetX = gUnk_081247C0[uVar2 & 7]; this->spriteOffsetY = gUnk_081247C0[uVar2 >> 4 & 7]; diff --git a/src/object/fileScreenObjects.c b/src/object/fileScreenObjects.c index a4b216bc..004f98d5 100644 --- a/src/object/fileScreenObjects.c +++ b/src/object/fileScreenObjects.c @@ -1,7 +1,7 @@ #include "object.h" #include "main.h" #include "menu.h" -#include "fileScreen.h" +#include "fileselect.h" #include "functions.h" extern int sub_0807A094(int); @@ -175,7 +175,7 @@ void sub_0808EA28(Entity* this) { u32 var1; if (this->type == 3) { - if (gSaveHeader->gameLanguage > LANGUAGE_EN) { + if (gSaveHeader->language > LANGUAGE_EN) { this->spriteSettings.draw = 2; } else { this->spriteSettings.draw = 0; @@ -294,7 +294,7 @@ void sub_0808EBB8(Entity* this) { case 0: break; case 1: - y = ((struct_02000000*)0x2000000)->gameLanguage * 16 + 24; + y = ((SaveHeader*)0x2000000)->language * 16 + 24; x = 112; break; case 2: @@ -402,7 +402,7 @@ void sub_0808ED98(Entity* this) { void sub_0808EE00(Entity* this) { int var0, var1, var2; - var0 = ((struct_02000000*)0x2000000)->gameLanguage != 0; + var0 = ((SaveHeader*)0x2000000)->language != 0; var1 = this->type - 10; this->frameIndex = gUnk_08121D38[var0][var1]; this->x.HALF.HI = gUnk_08121D18[var0][var1]; @@ -452,9 +452,9 @@ void sub_0808EF24(Entity* this) { } else { this->spriteSettings.draw = 2; if (this->type == 21) { - var0 = ((struct_02000000*)0x2000000)->messageSpeed; + var0 = ((SaveHeader*)0x2000000)->msg_speed; } else { - var0 = ((struct_02000000*)0x2000000)->brightnessPref; + var0 = ((SaveHeader*)0x2000000)->brightness; } this->frameIndex = this->lastFrameIndex + var0; } diff --git a/src/object/giantLeaf.c b/src/object/giantLeaf.c index a5d25b30..ab3ebac8 100644 --- a/src/object/giantLeaf.c +++ b/src/object/giantLeaf.c @@ -22,8 +22,8 @@ void sub_0808D618(Entity* ent) { u32 i; arr = (ent->type != 0) ? gUnk_0812176A : gUnk_08121750; - tilePos = (((ent->x.HALF.HI - gRoomControls.roomOriginX) >> 4) & 0x3F) | - ((((ent->y.HALF.HI - gRoomControls.roomOriginY) >> 4) & 0x3F) * 64); + tilePos = (((ent->x.HALF.HI - gRoomControls.origin_x) >> 4) & 0x3F) | + ((((ent->y.HALF.HI - gRoomControls.origin_y) >> 4) & 0x3F) * 64); for (i = 0; i < 13; i++) { SetTile(16500, tilePos + arr[i], 1); diff --git a/src/object/greatFairy.c b/src/object/greatFairy.c index a8c02b02..85e8681a 100644 --- a/src/object/greatFairy.c +++ b/src/object/greatFairy.c @@ -52,12 +52,12 @@ void GreatFairy(Entity* this) { void GreatFairy_CallBehavior(Entity* this) { GreatFairy_Behaviors[this->action](this); - if ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) < 168) { + if ((gPlayerEntity.y.HALF.HI - gRoomControls.origin_y) < 168) { - gRoomControls.cameraTarget = this; + gRoomControls.camera_target = this; gRoomControls.unk5 = 2; } else { - gRoomControls.cameraTarget = &gPlayerEntity; + gRoomControls.camera_target = &gPlayerEntity; gRoomControls.unk5 = 2; } } @@ -515,7 +515,7 @@ void sub_080873FC(void) { Entity* ent; SoundReq(SFX_APPARATE); - gRoomControls.cameraTarget = NULL; + gRoomControls.camera_target = NULL; while (ent = FindEntityByID(0x6, 0x1b, 0x6), ent != NULL) { DeleteEntity(ent); diff --git a/src/object/houseDoorExterior.c b/src/object/houseDoorExterior.c index 8f48956b..a1495848 100644 --- a/src/object/houseDoorExterior.c +++ b/src/object/houseDoorExterior.c @@ -58,8 +58,8 @@ void sub_080866D8(Entity* this) { entity = CreateObject(HOUSE_DOOR_EXT, prop->unk7, prop->unk6); if (entity) { entity->field_0x6c.HALF.LO = i; - entity->x.HALF.HI = gRoomControls.roomOriginX + prop->unk0 + 16; - entity->y.HALF.HI = gRoomControls.roomOriginY + prop->unk2 + 32; + entity->x.HALF.HI = gRoomControls.origin_x + prop->unk0 + 16; + entity->y.HALF.HI = gRoomControls.origin_y + prop->unk2 + 32; entity->parent = this; entity->field_0x68.HWORD = prop->unk0; entity->field_0x6a.HWORD = prop->unk2; diff --git a/src/object/lockedDoor.c b/src/object/lockedDoor.c index 5a38d7a1..6691205d 100644 --- a/src/object/lockedDoor.c +++ b/src/object/lockedDoor.c @@ -288,7 +288,7 @@ u32 sub_08083734(Entity* this, u32 unk0) { u32 sub_080837B0(Entity* this) { u32 tmp; - u32 tmp2 = gRoomControls.areaID; + u32 tmp2 = gRoomControls.area; if (tmp2 < 0x40) { switch (tmp2) { default: diff --git a/src/object/mask.c b/src/object/mask.c index be794b54..4e9810c3 100644 --- a/src/object/mask.c +++ b/src/object/mask.c @@ -20,7 +20,7 @@ void sub_080929A4(Entity* this) { switch (this->type2 & 0xC0) { case 0x40: - field_0x0a = gScreenTransition.stairs_idx; + field_0x0a = gRoomTransition.stairs_idx; switch (field_0x0a) { case 0x44D ... 0x44F: diff --git a/src/object/minecart.c b/src/object/minecart.c index 92929f83..fee9da56 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -20,14 +20,14 @@ void Minecart(Entity* this) { } void sub_080916EC(Entity* this) { - struct_030010EC* unk = &gScreenTransition.minecart_data[this->actionDelay]; + struct_030010EC* unk = &gRoomTransition.minecart_data[this->actionDelay]; *(struct_030010EC**)&this->cutsceneBeh.HWORD = unk; - if ((gRoomControls.roomID != unk->field_0x4) || (gPlayerState.flags & PL_IN_MINECART) != 0) { + if ((gRoomControls.room != unk->field_0x4) || (gPlayerState.flags & PL_IN_MINECART) != 0) { DeleteThisEntity(); } - this->x.HALF.HI = gRoomControls.roomOriginX + ((unk->field_0x0 & 0x3f) << 4) + 8; - this->y.HALF.HI = gRoomControls.roomOriginY + ((unk->field_0x0 & 0xfc << 4) >> 2) + 8; + this->x.HALF.HI = gRoomControls.origin_x + ((unk->field_0x0 & 0x3f) << 4) + 8; + this->y.HALF.HI = gRoomControls.origin_y + ((unk->field_0x0 & 0xfc << 4) >> 2) + 8; this->animationState = unk->field_0x5; this->type2 = unk->field_0x6; this->action = 1; @@ -91,7 +91,7 @@ void sub_080918A4(Entity* this) { gPlayerState.flags = (gPlayerState.flags ^ PL_ENTER_MINECART) | PL_IN_MINECART; this->action++; this->field_0xf = 1; - this->flags |= ENT_20; + this->flags |= ENT_PERSIST; this->hitType = 0x97; this->field_0x3c = (gPlayerEntity.field_0x3c + 1) | 0x20; this->flags2 = gPlayerEntity.flags2; @@ -134,7 +134,7 @@ void sub_080919AC(Entity* this) { CopyPosition(this, &gPlayerEntity); gPlayerEntity.spritePriority.b0 = this->spritePriority.b0 - 1; if (!sub_08091DDC(this)) { - if ((gScreenTransition.frameCount & 0xf) == 0) { + if ((gRoomTransition.frameCount & 0xf) == 0) { SoundReq(SFX_138); } @@ -152,7 +152,7 @@ void sub_080919AC(Entity* this) { } else { switch (uVar3) { case 0x64: - this->flags &= ~ENT_20; + this->flags &= ~ENT_PERSIST; this->hitType = 1; this->field_0x3c = 0x47; this->hurtType = 0x44; diff --git a/src/object/object49.c b/src/object/object49.c index 43dcda88..f1873fc2 100644 --- a/src/object/object49.c +++ b/src/object/object49.c @@ -212,7 +212,7 @@ void sub_0808F498(Entity* this) { if (this->action != 0) { if (sub_0806F3E4(this)) { - if (gScreenTransition.frameCount % 16 == 0) { + if (gRoomTransition.frameCount % 16 == 0) { SoundReq(SFX_EF); } DeleteThisEntity(); diff --git a/src/object/object6A.c b/src/object/object6A.c index 13b93cce..1f956870 100644 --- a/src/object/object6A.c +++ b/src/object/object6A.c @@ -249,8 +249,8 @@ void sub_08094C88(Object6AEntity* this) { void sub_08094CDC(Object6AEntity* this) { Entity* e = CreateObject(0x6a, 3, 0x62); if (e != NULL) { - e->x.HALF.HI = gRoomControls.roomOriginX + 224; - e->y.HALF.HI = gRoomControls.roomOriginY + 600; + e->x.HALF.HI = gRoomControls.origin_x + 224; + e->y.HALF.HI = gRoomControls.origin_y + 600; SoundReq(324); } } @@ -265,8 +265,8 @@ void sub_08094D10(Object6AEntity* this) { void sub_08094D34(Object6AEntity* this) { Entity* e = CreateObject(0x6a, 0x15, 0xd); if (e != NULL) { - e->x.HALF.HI = gRoomControls.roomOriginX + 256; - e->y.HALF.HI = gRoomControls.roomOriginY + 600; + e->x.HALF.HI = gRoomControls.origin_x + 256; + e->y.HALF.HI = gRoomControls.origin_y + 600; SoundReq(324); } } @@ -298,8 +298,8 @@ void sub_08094D94(Object6AEntity* this) { void sub_08094DD8(Object6AEntity* this) { Entity* e = CreateObject(0x6a, 0x4, 0); if (e != NULL) { - e->x.HALF.HI = gRoomControls.roomOriginX + 240; - e->y.HALF.HI = gRoomControls.roomOriginY + 600; + e->x.HALF.HI = gRoomControls.origin_x + 240; + e->y.HALF.HI = gRoomControls.origin_y + 600; SoundReq(324); } } @@ -313,11 +313,11 @@ void sub_08094E0C(Object6AEntity* this) { void sub_08094E30(Object6AEntity* this) { if (super->type2 == 0) { - if ((gScreenTransition.frameCount % 32) == 0) { + if ((gRoomTransition.frameCount % 32) == 0) { Entity* e = CreateObject(0x6A, 5, 1); if (e != NULL) { - e->x.HALF.HI = gRoomControls.roomScrollX + (s32)Random() % DISPLAY_WIDTH; - e->y.HALF.HI = gRoomControls.roomScrollY + (s32)Random() % DISPLAY_HEIGHT; + e->x.HALF.HI = gRoomControls.scroll_x + (s32)Random() % DISPLAY_WIDTH; + e->y.HALF.HI = gRoomControls.scroll_y + (s32)Random() % DISPLAY_HEIGHT; } } return; @@ -738,7 +738,7 @@ void sub_080956B4(Object6AEntity* this) { } } GetNextFrame(super); - if ((super->type2 + gScreenTransition.frameCount) % 16 == 0) + if ((super->type2 + gRoomTransition.frameCount) % 16 == 0) sub_080957B4(this); p = super->parent; if (p != NULL) { @@ -893,8 +893,8 @@ void sub_080959CC(Object6AEntity* this) { void sub_08095A1C(Object6AEntity* this, ScriptExecutionContext* ctx) { Entity* e = CreateObject(OBJECT_6A, 0x16, 0); if (e != NULL) { - e->x.HALF.HI = gRoomControls.roomOriginX + 232; - e->y.HALF.HI = gRoomControls.roomOriginY + 312; + e->x.HALF.HI = gRoomControls.origin_x + 232; + e->y.HALF.HI = gRoomControls.origin_y + 312; e->z.HALF.HI = -4; e->collisionLayer = 2; ((Object6AEntity*)e)->ctx = StartCutscene(e, (u16*)ctx->intVariable); diff --git a/src/object/objectA.c b/src/object/objectA.c index c302382e..37132e10 100644 --- a/src/object/objectA.c +++ b/src/object/objectA.c @@ -24,7 +24,7 @@ void ObjectA(Entity* this) { this->field_0x70.HALF.LO = uVar2; if (CheckFlags(this->field_0x86.HWORD) != 0) { SetTileType(*(u16*)&this->field_0x70.HALF.LO, COORD_TO_TILE(this), this->collisionLayer); - if ((gRoomControls.unk2 & 1) != 0) { + if ((gRoomControls.reload_flags & 1) != 0) { gUpdateVisibleTiles = 0; } DeleteThisEntity(); diff --git a/src/object/objectA2.c b/src/object/objectA2.c index f8f212f5..cc0e350a 100644 --- a/src/object/objectA2.c +++ b/src/object/objectA2.c @@ -42,7 +42,7 @@ void sub_0809F318(Entity* this) { void sub_0809F374(Entity* this) { LinearMoveUpdate(this); #ifndef EU - if (gSaveHeader->gameLanguage < 2) { + if (gSaveHeader->language < 2) { if (sub_080044EC(this, 0x2000) < 2) { this->z.WORD = 0; this->action = 2; diff --git a/src/object/objectB5.c b/src/object/objectB5.c index 5aae8152..a93011ed 100644 --- a/src/object/objectB5.c +++ b/src/object/objectB5.c @@ -8,7 +8,7 @@ void ObjectB5(Entity* this) { this->action = 1; } #ifndef EU - gRoomControls.cameraTarget = this; + gRoomControls.camera_target = this; #endif PositionRelative(&gPlayerEntity, this, 0, -0x280000); } diff --git a/src/object/octorokBossObject.c b/src/object/octorokBossObject.c index 9a50f902..a6e3a625 100644 --- a/src/object/octorokBossObject.c +++ b/src/object/octorokBossObject.c @@ -127,8 +127,8 @@ void OctorokBossObject_Init(Entity* this) { this->type2 = this->parent->field_0x7c.BYTES.byte0; this->actionDelay = 4; this->field_0xf = 0; - this->field_0x82.HWORD = (this->x.HALF.HI - (gRoomControls.roomOriginX)) & 0x1f0; - this->field_0x80.HWORD = (this->y.HALF.HI - ((u32)gRoomControls.roomOriginY)) & 0x1f0; + this->field_0x82.HWORD = (this->x.HALF.HI - (gRoomControls.origin_x)) & 0x1f0; + this->field_0x80.HWORD = (this->y.HALF.HI - ((u32)gRoomControls.origin_y)) & 0x1f0; *(int*)&this->cutsceneBeh = ((s32)(this->field_0x82.HWORD - 0x10) >> 4) + (this->field_0x80.HWORD >> 4) * 0x1f; sub_0809A6F8(this->field_0x82.HWORD, this->field_0x80.HWORD, *(int*)&this->cutsceneBeh, this->type2); @@ -304,7 +304,7 @@ NONMATCH("asm/non_matching/octorokBossObject/OctorokBossObject_Action1.inc", case 9: sub_08078B48(); if ((*(int*)&this->field_0x78)-- == 0) { - gRoomControls.cameraTarget = &gPlayerEntity; + gRoomControls.camera_target = &gPlayerEntity; DeleteThisEntity(); } break; diff --git a/src/object/treeHidingPortal.c b/src/object/treeHidingPortal.c index d88f1c8e..fa58b1c3 100644 --- a/src/object/treeHidingPortal.c +++ b/src/object/treeHidingPortal.c @@ -35,7 +35,7 @@ void sub_0809E86C(Entity* this) { if (sub_0800419C(this, &gPlayerEntity, 0x30, 0x30)) { if (CheckGlobalFlag(EZERO_1ST)) { - if (((gScreenTransition.frameCount & 3) == 0)) { + if (((gRoomTransition.frameCount & 3) == 0)) { CreateSparkle(this); } } diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index f95971e0..b8f38bcf 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -144,17 +144,17 @@ void sub_0808B5E8(Entity* this) { void sub_0808B684(Entity* this) { u32 tmp; if (!--this->field_0xf) { - gScreenTransition.transitioningOut = 1; - gScreenTransition.transitionType = TRANSITION_DEFAULT; - gScreenTransition.player_status.area_next = this->field_0x7c.BYTES.byte0; - gScreenTransition.player_status.room_next = this->field_0x7c.BYTES.byte1; - gScreenTransition.player_status.start_pos_x = ((this->cutsceneBeh.HWORD & 0x3f) << 4) + 8; - gScreenTransition.player_status.start_pos_y = ((this->cutsceneBeh.HWORD & 0xfc0) >> 2) + 8; - gScreenTransition.player_status.layer = 0; - gScreenTransition.player_status.start_anim = 4; - gScreenTransition.player_status.spawn_type = 0; + gRoomTransition.transitioningOut = 1; + gRoomTransition.type = TRANSITION_DEFAULT; + gRoomTransition.player_status.area_next = this->field_0x7c.BYTES.byte0; + gRoomTransition.player_status.room_next = this->field_0x7c.BYTES.byte1; + gRoomTransition.player_status.start_pos_x = ((this->cutsceneBeh.HWORD & 0x3f) << 4) + 8; + gRoomTransition.player_status.start_pos_y = ((this->cutsceneBeh.HWORD & 0xfc0) >> 2) + 8; + gRoomTransition.player_status.layer = 0; + gRoomTransition.player_status.start_anim = 4; + gRoomTransition.player_status.spawn_type = 0; if (this->type == 2) { - gScreenTransition.transitionType = TRANSITION_FADE_WHITE_SLOW; + gRoomTransition.type = TRANSITION_FADE_WHITE_SLOW; } return; } diff --git a/src/objectUtils.c b/src/objectUtils.c index 901d323e..646b62e5 100644 --- a/src/objectUtils.c +++ b/src/objectUtils.c @@ -132,8 +132,8 @@ void CreateDustAt(s32 xOff, s32 yOff, u32 layer) { ent = CreateObject(SPECIAL_FX, FX_DEATH, 0); if (ent != NULL) { - ent->x.HALF.HI = gRoomControls.roomOriginX + xOff; - ent->y.HALF.HI = gRoomControls.roomOriginY + yOff; + ent->x.HALF.HI = gRoomControls.origin_x + xOff; + ent->y.HALF.HI = gRoomControls.origin_y + yOff; ent->collisionLayer = layer; } } diff --git a/src/player.c b/src/player.c index ff9826fb..5bb8ed04 100644 --- a/src/player.c +++ b/src/player.c @@ -320,7 +320,7 @@ extern u16 script_BedAtSimons; extern Entity* gPlayerClones[]; extern ScriptExecutionContext gPlayerScriptExecutionContext; -NONMATCH("asm/non_matching/playerItemPacciCane/sub_080705AC.inc", u32 sub_080705AC(void)) { +NONMATCH("asm/non_matching/playerItemPacciCane/sub_080705AC.inc", u32 CheckPlayerActivity(void)) { if (!((gInput.newKeys & START_BUTTON) == 0 || gFadeControl.active || gUnk_02034490[0] || (gMessage.doTextBox & 0x7F) || gSave.stats.health == 0 || !gSave.fillerD0[34] || gPlayerState.controlMode != 0 || gPriorityHandler.priority_timer != 0)) { @@ -596,7 +596,7 @@ static void PlayerNormal(Entity* this) { } else { if (gPlayerState.item == NULL) UpdateAnimationSingleFrame(this); - if (gPlayerState.swim_state != 0 && (gScreenTransition.frameCount & 7) == 0) + if (gPlayerState.swim_state != 0 && (gRoomTransition.frameCount & 7) == 0) CreateWaterTrace(this); return; } @@ -1140,7 +1140,7 @@ static void PortalStandUpdate(Entity* this) { } static void PortalActivateInit(Entity* this) { - gRoomControls.cameraTarget = NULL; + gRoomControls.camera_target = NULL; gUnk_02034490[0] = 1; this->subAction = 3; this->field_0xf = 0x1e; @@ -1533,7 +1533,7 @@ static void sub_08071D04(Entity* this) { return; } - gScreenTransition.field_0x4[1] = 1; + gRoomTransition.field_0x4[1] = 1; } static void sub_08071D80(Entity* this) { @@ -1942,7 +1942,7 @@ static void sub_080724DC(Entity* this) { if ((gPlayerState.field_0x82[7] == 0) && (gPlayerState.swim_state != 0)) { sub_0807AE20(this); } - if (gRoomControls.unk2 == 0) { + if (gRoomControls.reload_flags == 0) { this->updatePriority = this->updatePriorityPrev; PlayerWaitForScroll(this); } else if (gPlayerState.field_0x1c == 0) { @@ -1963,7 +1963,7 @@ static void sub_080724DC(Entity* this) { } static void sub_0807258C(Entity* this) { - if (gRoomControls.unk2 == 0) { + if (gRoomControls.reload_flags == 0) { if (sub_0807A894(this) == 0x29) { UpdatePlayerMovement(); if (sub_080797C4() != 0) { @@ -2580,7 +2580,7 @@ static void sub_080731D8(Entity* this) { } else { gPlayerState.animation = 260; } - gRoomControls.cameraTarget = NULL; + gRoomControls.camera_target = NULL; DeleteClones(); ResetPlayer(); } @@ -2625,10 +2625,10 @@ static void sub_0807332C(Entity* this) { return; } if (gPlayerState.field_0x38 != 0) { - gRoomControls.cameraTarget = this; + gRoomControls.camera_target = this; SetPlayerActionNormal(); } else { - gMain.transition = 3; + gMain.substate = 3; *(&gMain.pauseInterval + 1) = 1; DoFade(5, 8); } @@ -2653,7 +2653,7 @@ static void sub_080733BC(Entity* this) { } LinearMoveUpdate(this); if (this->field_0x7c.HALF_U.HI == this->y.HALF.HI) { - gRoomControls.cameraTarget = this; + gRoomControls.camera_target = this; sub_0807921C(); } } @@ -2856,7 +2856,7 @@ static void sub_0807380C(Entity* this) { 0x0714, }; - if ((gScreenTransition.frameCount & 3) == 0) { + if ((gRoomTransition.frameCount & 3) == 0) { u32 tmp = (this->animationState + 2) & 6; this->animationState = tmp; this->direction = 4 * tmp; @@ -2882,7 +2882,7 @@ void sub_08073884(Entity* this) { 0x0714, }; - if ((gScreenTransition.frameCount & 1) == 0) { + if ((gRoomTransition.frameCount & 1) == 0) { u32 tmp = (this->animationState + 2) & 6; this->animationState = tmp; this->direction = 4 * tmp; @@ -3081,10 +3081,10 @@ static void sub_08073C80(Entity* this) { this->knockbackDuration = 0; this->subAction = 1; LoadSwapGFX(this, 1, 2); - gRoomControls.cameraTarget = this; + gRoomControls.camera_target = this; sub_080809D4(); - if (gScreenTransition.player_status.spawn_type == PL_SPAWN_9) { - gScreenTransition.player_status.spawn_type = PL_SPAWN_DEFAULT; + if (gRoomTransition.player_status.spawn_type == PL_SPAWN_9) { + gRoomTransition.player_status.spawn_type = PL_SPAWN_DEFAULT; this->spriteSettings.draw = 0; this->subAction = 2; } else { @@ -3259,27 +3259,27 @@ static NONMATCH("asm/non_matching/player/sub_080740D8.inc", void sub_080740D8(En switch (v4) { case 24: v5 = this->hitbox; - v2 = this->x.HALF.HI - v5->unk2[0] + v5->offset_x - gRoomControls.roomOriginX; + v2 = this->x.HALF.HI - v5->unk2[0] + v5->offset_x - gRoomControls.origin_x; v6 = this->y.HALF.HI; - v1 = v6 + v5->offset_y - gRoomControls.roomOriginY; + v1 = v6 + v5->offset_y - gRoomControls.origin_y; break; case 8: v5 = this->hitbox; - v2 = this->x.HALF.HI + v5->unk2[0] + v5->offset_x - gRoomControls.roomOriginX; + v2 = this->x.HALF.HI + v5->unk2[0] + v5->offset_x - gRoomControls.origin_x; v6 = this->y.HALF.HI; - v1 = v6 + v5->offset_y - gRoomControls.roomOriginY; + v1 = v6 + v5->offset_y - gRoomControls.origin_y; break; case 16: v5 = this->hitbox; - v2 = this->x.HALF.HI + v5->offset_x - gRoomControls.roomOriginX; + v2 = this->x.HALF.HI + v5->offset_x - gRoomControls.origin_x; v6 = this->y.HALF.HI + v5->unk2[3]; - v1 = v6 + v5->offset_y - gRoomControls.roomOriginY; + v1 = v6 + v5->offset_y - gRoomControls.origin_y; break; case 0: v5 = this->hitbox; - v2 = this->x.HALF.HI + v5->unk2[0] + v5->offset_x - gRoomControls.roomOriginX; + v2 = this->x.HALF.HI + v5->unk2[0] + v5->offset_x - gRoomControls.origin_x; v6 = this->y.HALF.HI; - v1 = v6 + v5->offset_y - gRoomControls.roomOriginY; + v1 = v6 + v5->offset_y - gRoomControls.origin_y; break; default: break; diff --git a/src/playerItem/playerItem10.c b/src/playerItem/playerItem10.c index b0a495bb..c4debda4 100644 --- a/src/playerItem/playerItem10.c +++ b/src/playerItem/playerItem10.c @@ -87,7 +87,7 @@ void sub_080ACC04(Entity* this) { this->flags2 = gPlayerEntity.flags2; this->direction = this->animationState << 2; this->speed = 0x200; - this->flags |= ENT_COLLIDE | ENT_20; + this->flags |= ENT_COLLIDE | ENT_PERSIST; this->field_0x3c = 2; this->hitbox = (Hitbox*)gUnk_0812AAD8[this->type]; this->field_0x70.WORD = 0x10; @@ -109,7 +109,7 @@ void sub_080ACC78(Entity* this) { s32 offset; const s8* puVar8; - if ((this->type + gScreenTransition.frameCount) & 1) { + if ((this->type + gRoomTransition.frameCount) & 1) { puVar8 = gUnk_0812AAAC[this->type]; if (puVar8[*(u32*)&this->field_0x74] == 0) { *(u32*)&this->field_0x74 = 0; diff --git a/src/playerItem/playerItemPacciCane.c b/src/playerItem/playerItemPacciCane.c index 580d65a5..c009e4b9 100644 --- a/src/playerItem/playerItemPacciCane.c +++ b/src/playerItem/playerItemPacciCane.c @@ -25,6 +25,6 @@ void sub_080704D4(Entity* this) { ASM_FUNC("asm/non_matching/playerItemPacciCane/sub_080704FC.inc", void sub_080704FC(Entity* this)) -void sub_0807059C() { +void ClearMenuSavestate() { MemClear(gUnk_02034490, sizeof(gUnk_02034490)); } diff --git a/src/projectile/gleerokProjectile.c b/src/projectile/gleerokProjectile.c index 7de99ca5..959d3957 100644 --- a/src/projectile/gleerokProjectile.c +++ b/src/projectile/gleerokProjectile.c @@ -49,7 +49,7 @@ void GleerokProjectile_Init(Entity* this) { iVar2 = sub_080041DC(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI); if (this->type == 1) { uVar1 = Random() & 0x1ff; - if ((gScreenTransition.frameCount & 1U) == 0) { + if ((gRoomTransition.frameCount & 1U) == 0) { iVar2 += uVar1; } else { iVar2 -= uVar1; diff --git a/src/projectile/v1FireProjectile.c b/src/projectile/v1FireProjectile.c index 013369fd..68cad995 100644 --- a/src/projectile/v1FireProjectile.c +++ b/src/projectile/v1FireProjectile.c @@ -53,7 +53,7 @@ void V1FireProjectile_Init(Entity* this) { y = this->y.HALF.HI + data[1]; iVar2 = sub_080041DC(this, x, y); rnd = Random() & 0x1ff; - if ((gScreenTransition.frameCount & 1U) != 0) { + if ((gRoomTransition.frameCount & 1U) != 0) { iVar2 += rnd; if (0x400 < iVar2) { diff --git a/src/projectileUtils.c b/src/projectileUtils.c index 7e4ee3ef..414f7dc7 100644 --- a/src/projectileUtils.c +++ b/src/projectileUtils.c @@ -66,8 +66,8 @@ bool32 LoadProjectileSprite(Entity* this, const ProjectileDefinition* definition } bool32 IsProjectileOffScreen(Entity* this) { - if (((u32)this->x.HALF.HI - gRoomControls.roomOriginX > gRoomControls.width) || - ((u32)this->y.HALF.HI - gRoomControls.roomOriginY > gRoomControls.height)) { + if (((u32)this->x.HALF.HI - gRoomControls.origin_x > gRoomControls.width) || + ((u32)this->y.HALF.HI - gRoomControls.origin_y > gRoomControls.height)) { return TRUE; } else { return FALSE; diff --git a/src/room.c b/src/room.c index 660fcacd..2f1bb48d 100644 --- a/src/room.c +++ b/src/room.c @@ -116,17 +116,17 @@ void RegisterRoomEntity(Entity* ent, EntityData* dat) { void sub_0804AF0C(Entity* ent, EntityData* dat) { switch (dat->flags & 0xf0) { case 0x0: - ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; - ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; + ent->x.HALF.HI = dat->xPos + gRoomControls.origin_x; + ent->y.HALF.HI = dat->yPos + gRoomControls.origin_y; break; case 0x20: ent->field_0x6c.HALF.HI |= 0x20; - ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; - ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; + ent->x.HALF.HI = dat->xPos + gRoomControls.origin_x; + ent->y.HALF.HI = dat->yPos + gRoomControls.origin_y; break; case 0x40: - ent->x.HALF.HI = dat->xPos + gRoomControls.roomOriginX; - ent->y.HALF.HI = dat->yPos + gRoomControls.roomOriginY; + ent->x.HALF.HI = dat->xPos + gRoomControls.origin_x; + ent->y.HALF.HI = dat->yPos + gRoomControls.origin_y; if (!StartCutscene(ent, (u16*)dat->spritePtr)) DeleteEntity(ent); break; @@ -147,7 +147,7 @@ void sub_0804AFB0(void** properties) { } } -u32 sub_0804AFDC() { +u32 CallRoomProp6() { u32 result; u32 (*func)(); @@ -158,7 +158,7 @@ u32 sub_0804AFDC() { return result; } -void sub_0804AFF4(void) { +void CallRoomProp5And7(void) { void (*func)(); sub_080186EC(); diff --git a/src/roomInit.c b/src/roomInit.c index 3872b39e..b2c65101 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -217,7 +217,7 @@ void sub_StateChange_MinishPaths1_MayorsCabin(void) { sub_080575C8(0x20); - if (gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY > 0x40) + if (gPlayerEntity.y.HALF.HI - gRoomControls.origin_y > 0x40) LoadRoomEntityList(&Entities_MinishPaths1_MayorsCabin_gUnk_080D6138); } @@ -233,7 +233,7 @@ extern EntityData Entities_HouseInteriors1_Mayor_080D6210; void sub_StateChange_HouseInteriors1_Mayor(void) { - if ((u16)gScreenTransition.player_status.start_pos_y > 0x40) + if ((u16)gRoomTransition.player_status.start_pos_y > 0x40) LoadRoomEntityList(&Entities_HouseInteriors1_Mayor_080D6210); } @@ -390,8 +390,8 @@ void sub_StateChange_HouseInteriors1_InnWestRoom(void) { if (CheckLocalFlag(YADO_CHECKIN)) { ClearLocalFlag(YADO_CHECKIN); DoFade(5, 256); - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; + gPlayerEntity.x.HALF.HI = gRoomControls.origin_x + 0x50; + gPlayerEntity.y.HALF.HI = gRoomControls.origin_y + 0x38; sub_080751E8(1, 2, &script_PlayerSleepingInn); } } @@ -416,8 +416,8 @@ void sub_StateChange_HouseInteriors1_InnMiddleRoom(void) { if (CheckLocalFlag(YADO_CHECKIN) != 0) { ClearLocalFlag(YADO_CHECKIN); DoFade(5, 256); - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x50; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; + gPlayerEntity.x.HALF.HI = gRoomControls.origin_x + 0x50; + gPlayerEntity.y.HALF.HI = gRoomControls.origin_y + 0x38; sub_080751E8(1, 2, &script_PlayerSleepingInn); } } @@ -442,8 +442,8 @@ void sub_StateChange_HouseInteriors1_InnEastRoom(void) { if (CheckLocalFlag(YADO_CHECKIN)) { ClearLocalFlag(YADO_CHECKIN); DoFade(5, 256); - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x60; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; + gPlayerEntity.x.HALF.HI = gRoomControls.origin_x + 0x60; + gPlayerEntity.y.HALF.HI = gRoomControls.origin_y + 0x38; sub_080751E8(1, 2, &script_PlayerSleepingInn); } } @@ -653,7 +653,7 @@ void sub_StateChange_HyruleCastle_3(void) { u32 sub_unk3_HyruleCastle_4(void) { if (!CheckLocalFlag(CASTLE_04_MEZAME)) { - gScreenTransition.player_status.spawn_type = PL_SPAWN_SPECIAL; + gRoomTransition.player_status.spawn_type = PL_SPAWN_SPECIAL; ClearGlobalFlag(ZELDA_CHASE); } return 1; @@ -664,8 +664,8 @@ extern u32 script_PlayerWakingUpInHyruleCastle; void sub_StateChange_HyruleCastle_4(void) { if (!CheckLocalFlag(CASTLE_04_MEZAME)) { DoFade(5, 256); - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0xb0; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x40; + gPlayerEntity.x.HALF.HI = gRoomControls.origin_x + 0xb0; + gPlayerEntity.y.HALF.HI = gRoomControls.origin_y + 0x40; sub_080751E8(0, 6, &script_PlayerWakingUpInHyruleCastle); #ifdef EU SoundReq(0x80010000); @@ -697,7 +697,7 @@ void sub_StateChange_HyruleCastle_4(void) { extern ScreenTransitionData gUnk_0813AB80; void sub_0804BCDC() { - sub_0808091C(&gUnk_0813AB80, 4); + sub_0808091C(&gUnk_0813AB80, TRANSITION_FADE_BLACK_SLOW); } u32 sub_unk3_HyruleCastle_5() { @@ -991,13 +991,13 @@ void sub_0804BF38(u32 arg0, struct_0804BF38* arg1) for (xOff = 0; entCnt < numEnts; xOff += 0x10, entCnt++) { fx = CreateObject(SPECIAL_FX, 0xf, 0); if (fx != NULL) { - fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.roomOriginX + xOff; - fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.roomOriginY + (entCnt & 1) * 8; + fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.origin_x + xOff; + fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.origin_y + (entCnt & 1) * 8; } fx = CreateObject(SPECIAL_FX, 0x54, 0); if (fx != NULL) { - fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.roomOriginX + xOff; - fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.roomOriginY + -0xc + (entCnt & 1) * 8; + fx->x.HALF.HI = gUnk_080D8E50[iVar3].x + gRoomControls.origin_x + xOff; + fx->y.HALF.HI = gUnk_080D8E50[iVar3].y + gRoomControls.origin_y + -0xc + (entCnt & 1) * 8; fx->direction = 0; fx->speed = 0x100; } @@ -1049,7 +1049,7 @@ void sub_StateChange_RoyalValley_Main(void) { SetTile(0x4072, 0xc47, 1); if (CheckGlobalFlag(MAZE_CLEAR)) - if (gScreenTransition.player_status.start_pos_x == 0x78 && gScreenTransition.player_status.start_pos_y == 0x278) + if (gRoomTransition.player_status.start_pos_x == 0x78 && gRoomTransition.player_status.start_pos_y == 0x278) SoundReq(SFX_SECRET); ClearGlobalFlag(MAZE_CLEAR); @@ -2066,7 +2066,7 @@ u32 sub_unk3_DeepwoodShrine_Madderpillar() { extern EntityData gUnk_080DE4C8; void sub_StateChange_DeepwoodShrine_Madderpillar(void) { - if ((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) < (gRoomControls.height >> 1)) { + if ((gPlayerEntity.y.HALF.HI - gRoomControls.origin_y) < (gRoomControls.height >> 1)) { if (!CheckLocalFlag(0x17)) { LoadRoomEntityList(&gUnk_080DE4C8); } @@ -2282,7 +2282,7 @@ u32 sub_unk3_DeepwoodShrine_InsideBarrel() { void sub_StateChange_DeepwoodShrine_InsideBarrel(void) { sub_08058D34(); gArea.areaMetadata |= 0x40; - gMain.transition = 5; + gMain.substate = 5; } u32 sub_unk3_DeepwoodShrineEntry_Main() { @@ -2478,8 +2478,8 @@ u32 sub_unk3_FortressOfWinds_BeforeMazaal() { } void sub_StateChange_FortressOfWinds_BeforeMazaal(void) { - gScreenTransition.field_0x38 = 0; - gScreenTransition.field_0x39 = 0x5a; + gRoomTransition.field_0x38 = 0; + gRoomTransition.field_0x39 = 0x5a; } u32 sub_unk3_FortressOfWinds_EastKeyLever() { @@ -2554,10 +2554,10 @@ u32 sub_unk3_FortressOfWinds_Mazaal() { void sub_StateChange_FortressOfWinds_Mazaal(void) { if (!CheckFlags(0x31)) { - if (gScreenTransition.field_0x38 == 0) { + if (gRoomTransition.field_0x38 == 0) { SoundReq(SONG_STOP_BGM); } else { - if (gScreenTransition.field_0x39 == 0) { + if (gRoomTransition.field_0x39 == 0) { SoundReq(SONG_STOP); SetPlayerControl(3); } @@ -3532,16 +3532,16 @@ u32 sub_unk3_Vaati3_Main() { void sub_StateChange_Vaati3_Main(void) { Manager2F_Main(NULL); - if ((gScreenTransition.field_0x38 & 1) && gScreenTransition.field_0x39) { - if (gScreenTransition.field_0x3c == 1) { - gPlayerEntity.x.HALF.HI = gScreenTransition.field_0x48; - gPlayerEntity.y.HALF.HI = gScreenTransition.field_0x4a + 8; + if ((gRoomTransition.field_0x38 & 1) && gRoomTransition.field_0x39) { + if (gRoomTransition.field_0x3c == 1) { + gPlayerEntity.x.HALF.HI = gRoomTransition.field_0x48; + gPlayerEntity.y.HALF.HI = gRoomTransition.field_0x4a + 8; } else { - if (gScreenTransition.field_0x3c) { + if (gRoomTransition.field_0x3c) { return; } - gPlayerEntity.x.HALF.HI = gScreenTransition.field_0x44; - gPlayerEntity.y.HALF.HI = gScreenTransition.field_0x46 + 8; + gPlayerEntity.x.HALF.HI = gRoomTransition.field_0x44; + gPlayerEntity.y.HALF.HI = gRoomTransition.field_0x46 + 8; } } } @@ -4604,7 +4604,7 @@ void sub_StateChange_HouseInteriors2_DrLeft(void) { if (!GetInventoryValue(ITEM_QST_BOOK2) && CheckGlobalFlag(MIZUKAKI_HARIFALL)) { LoadRoomEntityList(&gUnk_080F2194); } - if (gScreenTransition.player_status.spawn_type == PL_SPAWN_MINISH) { + if (gRoomTransition.player_status.spawn_type == PL_SPAWN_MINISH) { LoadRoomEntityList(&gUnk_080F21B4); } } @@ -4821,8 +4821,8 @@ void sub_StateChange_HouseInteriors2_LinksHouseBedroom(void) { extern u32 script_PlayerWakeAfterRest; void sub_0804E864(void) { - gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0x90; - gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x38; + gPlayerEntity.x.HALF.HI = gRoomControls.origin_x + 0x90; + gPlayerEntity.y.HALF.HI = gRoomControls.origin_y + 0x38; sub_080751E8(1, 6, &script_PlayerWakeAfterRest); ModHealth(0xa0); } @@ -4895,8 +4895,8 @@ void sub_StateChange_HouseInteriors4_Mayor(void) { if (!GetInventoryValue(ITEM_FLIPPERS) && CheckGlobalFlag(MIZUKAKI_START) && !GetInventoryValue(ITEM_QST_BOOK3)) { LoadRoomEntityList(&gUnk_080F3A48); } - gScreenTransition.player_status.overworld_map_x = 0xf28; - gScreenTransition.player_status.overworld_map_y = 0x82d; + gRoomTransition.player_status.overworld_map_x = 0xf28; + gRoomTransition.player_status.overworld_map_y = 0x82d; } extern u32 Enemies_LakeHylia_Main; @@ -5304,7 +5304,7 @@ void sub_StateChange_HouseInteriors3_Bakery() { u32 sub_unk3_HouseInteriors3_Simon(void) { if (CheckGlobalFlag(MAROYA_WAKEUP)) { - gScreenTransition.player_status.spawn_type = 5; + gRoomTransition.player_status.spawn_type = 5; } return 1; } @@ -5747,8 +5747,8 @@ void sub_0804F680(Entity* parent, s32 x, s32 y) { fx = CreateFx(parent, FX_DEATH, 0); if (fx != NULL) { - fx->x.HALF.HI = gRoomControls.roomOriginX + x; - fx->y.HALF.HI = gRoomControls.roomOriginY + y; + fx->x.HALF.HI = gRoomControls.origin_x + x; + fx->y.HALF.HI = gRoomControls.origin_y + y; } } @@ -5789,14 +5789,14 @@ void sub_0804F79C(Entity* parent) { fx = CreateFx(parent, FX_BIG_EXPLOSION, 0); if (fx != NULL) { fx->spriteRendering.b3 = 0; - fx->x.HALF.HI = gRoomControls.roomOriginX + 0x1b8; - fx->y.HALF.HI = gRoomControls.roomOriginY + 0x148; + fx->x.HALF.HI = gRoomControls.origin_x + 0x1b8; + fx->y.HALF.HI = gRoomControls.origin_y + 0x148; } fx = CreateFx(parent, FX_BIG_EXPLOSION, 0); if (fx != NULL) { fx->spriteRendering.b3 = 0; - fx->x.HALF.HI = gRoomControls.roomOriginX + 0x238; - fx->y.HALF.HI = gRoomControls.roomOriginY + 0x148; + fx->x.HALF.HI = gRoomControls.origin_x + 0x238; + fx->y.HALF.HI = gRoomControls.origin_y + 0x148; } } diff --git a/src/save.c b/src/save.c index aa401f10..12676418 100644 --- a/src/save.c +++ b/src/save.c @@ -191,7 +191,7 @@ u32 WriteSaveFile(u32 index, SaveFile* saveFile) { #endif } -u32 Write_02000000(struct_02000000* arg0) { +u32 Write_02000000(SaveHeader* arg0) { #if defined(DEMO_USA) || defined(DEMO_JP) return 1; #else @@ -215,7 +215,7 @@ s32 ReadSaveFile(u32 index, SaveFile* saveFile) { #endif } -u32 Read_02000000(struct_02000000* arg0) { +u32 Read_02000000(SaveHeader* arg0) { #if defined(DEMO_USA) || defined(DEMO_JP) return 0; #else diff --git a/src/script.c b/src/script.c index 5aed7fc3..bf34340f 100644 --- a/src/script.c +++ b/src/script.c @@ -374,14 +374,14 @@ void HandleEntity0x82Actions(Entity* entity) { } break; case 1 << 3: - if (gScreenTransition.frameCount % 4 == 0) { + if (gRoomTransition.frameCount % 4 == 0) { temp = (entity->field_0xf + 2) & 7; entity->animationState = temp; entity->field_0xf = temp; } break; case 1 << 4: - if (gScreenTransition.frameCount % 2 == 0) { + if (gRoomTransition.frameCount % 2 == 0) { static const s8 sOffsets[] = { -1, -2, 0, 1 }; entity->spriteOffsetX = sOffsets[Random() % 4]; } @@ -785,8 +785,8 @@ void ScriptCommand_CheckPlayerInRegion2(Entity* entity, ScriptExecutionContext* u32 x, y, width, height; width = context->scriptInstructionPointer[1] & 0xFF; height = context->scriptInstructionPointer[1] >> 8; - x = entity->x.HALF.HI - gRoomControls.roomOriginX; - y = entity->y.HALF.HI - gRoomControls.roomOriginY; + x = entity->x.HALF.HI - gRoomControls.origin_x; + y = entity->y.HALF.HI - gRoomControls.origin_y; context->condition = CheckPlayerInRegion(x, y, width, height); gActiveScriptInfo.flags |= 1; } @@ -1037,11 +1037,11 @@ void ScriptCommand_0807E80C(Entity* entity, ScriptExecutionContext* context) { } void sub_0807E818(u32 fadeType) { - Entity* cameraTarget = gRoomControls.cameraTarget; + Entity* cameraTarget = gRoomControls.camera_target; u32 x, y; if (cameraTarget) { - x = cameraTarget->x.HALF.HI - gRoomControls.roomScrollX; - y = cameraTarget->y.HALF.HI - gRoomControls.roomScrollY; + x = cameraTarget->x.HALF.HI - gRoomControls.scroll_x; + y = cameraTarget->y.HALF.HI - gRoomControls.scroll_y; } else { x = 0x78; y = 0x50; @@ -1237,8 +1237,8 @@ void ScriptCommand_SetAnimationState(Entity* entity, ScriptExecutionContext* con void ScriptCommand_0807EB4C(Entity* entity, ScriptExecutionContext* context) { entity->animationState = - sub_0806F5B0(sub_080045B4(entity, context->scriptInstructionPointer[1] + gRoomControls.roomOriginX, - context->scriptInstructionPointer[2] + gRoomControls.roomOriginY)); + sub_0806F5B0(sub_080045B4(entity, context->scriptInstructionPointer[1] + gRoomControls.origin_x, + context->scriptInstructionPointer[2] + gRoomControls.origin_y)); } void ScriptCommand_FacePlayer(Entity* entity, ScriptExecutionContext* context) { @@ -1267,8 +1267,8 @@ void ScriptCommand_SetEntityVelocity(Entity* entity, ScriptExecutionContext* con } void ScriptCommand_SetEntityPositionRelative(Entity* entity, ScriptExecutionContext* context) { - entity->x.HALF.HI = gRoomControls.roomOriginX + context->scriptInstructionPointer[1]; - entity->y.HALF.HI = gRoomControls.roomOriginY + context->scriptInstructionPointer[2]; + entity->x.HALF.HI = gRoomControls.origin_x + context->scriptInstructionPointer[1]; + entity->y.HALF.HI = gRoomControls.origin_y + context->scriptInstructionPointer[2]; } void ScriptCommand_OffsetEntityPosition(Entity* entity, ScriptExecutionContext* context) { @@ -1349,19 +1349,19 @@ void ScriptCommand_0807ED24(Entity* entity, ScriptExecutionContext* context) { context->unk_18 = 1; context->unk_12 = context->scriptInstructionPointer[3]; tmp = context->scriptInstructionPointer[1]; - tmp2 = entity->x.HALF.HI - gRoomControls.roomOriginX; + tmp2 = entity->x.HALF.HI - gRoomControls.origin_x; context->x.WORD = ((tmp - tmp2) << 0x10) / context->unk_12; tmp = context->scriptInstructionPointer[2]; - tmp3 = entity->y.HALF.HI - gRoomControls.roomOriginY; + tmp3 = entity->y.HALF.HI - gRoomControls.origin_y; context->y.WORD = ((tmp - tmp3) << 0x10) / context->unk_12; entity->animationState = - sub_0806F5B0(sub_080045B4(entity, context->scriptInstructionPointer[1] + gRoomControls.roomOriginX, - context->scriptInstructionPointer[2] + gRoomControls.roomOriginY)); + sub_0806F5B0(sub_080045B4(entity, context->scriptInstructionPointer[1] + gRoomControls.origin_x, + context->scriptInstructionPointer[2] + gRoomControls.origin_y)); context->postScriptActions |= 2; } else { if (!--context->unk_12) { - entity->x.HALF.HI = context->scriptInstructionPointer[1] + gRoomControls.roomOriginX; - entity->y.HALF.HI = context->scriptInstructionPointer[2] + gRoomControls.roomOriginY; + entity->x.HALF.HI = context->scriptInstructionPointer[1] + gRoomControls.origin_x; + entity->y.HALF.HI = context->scriptInstructionPointer[2] + gRoomControls.origin_y; return; } entity->x.WORD += context->x.WORD; @@ -1382,8 +1382,8 @@ void ScriptCommand_0807EDD4(Entity* entity, ScriptExecutionContext* context) { } void ScriptCommand_0807EE04(Entity* entity, ScriptExecutionContext* context) { - sub_0807DEDC(entity, context, context->scriptInstructionPointer[1] + gRoomControls.roomOriginX, - context->scriptInstructionPointer[2] + gRoomControls.roomOriginY); + sub_0807DEDC(entity, context, context->scriptInstructionPointer[1] + gRoomControls.origin_x, + context->scriptInstructionPointer[2] + gRoomControls.origin_y); gActiveScriptInfo.flags |= 1; } @@ -1511,11 +1511,11 @@ void ScriptCommand_0807F088(Entity* entity, ScriptExecutionContext* context) { } void ScriptCommand_CameraTargetEntity(Entity* entity, ScriptExecutionContext* context) { - gRoomControls.cameraTarget = entity; + gRoomControls.camera_target = entity; } void ScriptCommand_CameraTargetPlayer(Entity* entity, ScriptExecutionContext* context) { - gRoomControls.cameraTarget = &gPlayerEntity; + gRoomControls.camera_target = &gPlayerEntity; } void ScriptCommand_0807F0B4(Entity* entity, ScriptExecutionContext* context) { @@ -1739,9 +1739,9 @@ void sub_0807F464(Entity* entity, ScriptExecutionContext* context) { context->unk_18++; context->postScriptActions |= 2; s32Var = context->intVariable; - context->x.HALF.HI = gRoomControls.roomOriginX + s32Var; + context->x.HALF.HI = gRoomControls.origin_x + s32Var; context->y.HALF.HI = entity->y.HALF.HI; - if (s32Var > entity->x.HALF.HI - gRoomControls.roomOriginX) { + if (s32Var > entity->x.HALF.HI - gRoomControls.origin_x) { entity->direction = 64; entity->animationState = (entity->animationState & 0x80) | 2; } else { @@ -1764,8 +1764,8 @@ void sub_0807F4F8(Entity* entity, ScriptExecutionContext* context) { context->postScriptActions |= 2; s32Var = context->intVariable; context->x.HALF.HI = entity->x.HALF.HI; - context->y.HALF.HI = gRoomControls.roomOriginY + s32Var; - if (s32Var > entity->y.HALF.HI - gRoomControls.roomOriginY) { + context->y.HALF.HI = gRoomControls.origin_y + s32Var; + if (s32Var > entity->y.HALF.HI - gRoomControls.origin_y) { entity->direction = 128; entity->animationState = (entity->animationState & 0x80) | 4; } else { @@ -1797,20 +1797,20 @@ void WaitForCameraTouchRoomBorder(Entity* entity, ScriptExecutionContext* contex s32 left; s32 bottom; - if (gRoomControls.cameraTarget != NULL) { - left = gRoomControls.cameraTarget->x.HALF.HI - DISPLAY_WIDTH / 2; - bottom = gRoomControls.cameraTarget->y.HALF.HI - DISPLAY_HEIGHT / 2; + if (gRoomControls.camera_target != NULL) { + left = gRoomControls.camera_target->x.HALF.HI - DISPLAY_WIDTH / 2; + bottom = gRoomControls.camera_target->y.HALF.HI - DISPLAY_HEIGHT / 2; - if (left < gRoomControls.roomOriginX) - left = gRoomControls.roomOriginX; - if (left > gRoomControls.roomOriginX + gRoomControls.width - DISPLAY_WIDTH) - left = gRoomControls.roomOriginX + gRoomControls.width - DISPLAY_WIDTH; - if (bottom < gRoomControls.roomOriginY) - bottom = gRoomControls.roomOriginY; - if (bottom > gRoomControls.roomOriginY + gRoomControls.height - DISPLAY_HEIGHT) - bottom = gRoomControls.roomOriginY + gRoomControls.height - DISPLAY_HEIGHT; + if (left < gRoomControls.origin_x) + left = gRoomControls.origin_x; + if (left > gRoomControls.origin_x + gRoomControls.width - DISPLAY_WIDTH) + left = gRoomControls.origin_x + gRoomControls.width - DISPLAY_WIDTH; + if (bottom < gRoomControls.origin_y) + bottom = gRoomControls.origin_y; + if (bottom > gRoomControls.origin_y + gRoomControls.height - DISPLAY_HEIGHT) + bottom = gRoomControls.origin_y + gRoomControls.height - DISPLAY_HEIGHT; - if (left == gRoomControls.roomScrollX && bottom == gRoomControls.roomScrollY) + if (left == gRoomControls.scroll_x && bottom == gRoomControls.scroll_y) gActiveScriptInfo.flags |= 1u; else gActiveScriptInfo.commandSize = 0; @@ -1830,12 +1830,12 @@ void sub_0807F650(Entity* entity, ScriptExecutionContext* context) { } void sub_0807F680(Entity* entity, ScriptExecutionContext* context) { - context->condition = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX > (s32)(context->intVariable & 0xffff); + context->condition = gPlayerEntity.x.HALF.HI - gRoomControls.origin_x > (s32)(context->intVariable & 0xffff); gActiveScriptInfo.flags |= 1; } void sub_0807F6B4(Entity* entity, ScriptExecutionContext* context) { - context->condition = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY > (s32)(context->intVariable & 0xffff); + context->condition = gPlayerEntity.y.HALF.HI - gRoomControls.origin_y > (s32)(context->intVariable & 0xffff); gActiveScriptInfo.flags |= 1; } @@ -1863,8 +1863,8 @@ void sub_0807F738(Entity* entity, ScriptExecutionContext* context) { void SetPlayerPos(Entity* entity, ScriptExecutionContext* context) { s32 s32Var = context->intVariable; - gPlayerEntity.x.HALF.HI = (s32Var >> 16) + gRoomControls.roomOriginX; - gPlayerEntity.y.HALF.HI = (s32Var & 0xffff) + gRoomControls.roomOriginY; + gPlayerEntity.x.HALF.HI = (s32Var >> 16) + gRoomControls.origin_x; + gPlayerEntity.y.HALF.HI = (s32Var & 0xffff) + gRoomControls.origin_y; } void GetConditionSet(Entity* entity, ScriptExecutionContext* context) { @@ -1917,7 +1917,7 @@ void sub_0807F83C(Entity* entity, ScriptExecutionContext* context) { } void sub_0807F844(Entity* entity, ScriptExecutionContext* context) { - gRoomControls.cameraTarget = entity; + gRoomControls.camera_target = entity; sub_080809D4(); } @@ -2100,12 +2100,12 @@ void sub_0807FB74(Entity* entity, ScriptExecutionContext* context) { } void sub_0807FB94(Entity* entity, ScriptExecutionContext* context) { - InitScreen(SCREEN_CREDITS); + SetTask(TASK_STAFFROLL); } void sub_0807FBA0(Entity* entity, ScriptExecutionContext* context) { - entity->x.HALF.HI = gRoomControls.roomScrollX + 120; - entity->y.HALF.HI = gRoomControls.roomScrollY + 80; + entity->x.HALF.HI = gRoomControls.scroll_x + 120; + entity->y.HALF.HI = gRoomControls.scroll_y + 80; } void sub_0807FBB4(Entity* entity, ScriptExecutionContext* context) { @@ -2139,9 +2139,9 @@ void sub_0807FBFC(Entity* entity, ScriptExecutionContext* context) { #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) void sub_0807FC24(Entity* entity, ScriptExecutionContext* context) { #if defined(DEMO_JP) - u32 idx = gRoomControls.roomID == 1 ? 0xcf : 0xd0; + u32 idx = gRoomControls.room == 1 ? 0xcf : 0xd0; #else - u32 idx = gRoomControls.roomID == 1 ? 0xcf : 0xd1; + u32 idx = gRoomControls.room == 1 ? 0xcf : 0xd1; #endif SetLocalFlag(idx); } diff --git a/src/scroll.c b/src/scroll.c index 89057623..b3a1649a 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -11,35 +11,35 @@ extern u32 gUnk_02025EB0; extern u8 gUpdateVisibleTiles; void sub_080808D8(void) { - gScreenTransition.transitionType = TRANSITION_DEFAULT; + gRoomTransition.type = TRANSITION_DEFAULT; } void sub_080808E4(void) { - if (sub_08052638(gScreenTransition.player_status.area_next)) { - gScreenTransition.transitionType = TRANSITION_DEFAULT; + if (sub_08052638(gRoomTransition.player_status.area_next)) { + gRoomTransition.type = TRANSITION_DEFAULT; } else { - gScreenTransition.transitionType = TRANSITION_FADE_BLACK; + gRoomTransition.type = TRANSITION_FADE_BLACK; } } void sub_08080904(void) { - gScreenTransition.transitionType = TRANSITION_CUT; + gRoomTransition.type = TRANSITION_CUT; } void sub_08080910(void) { - gScreenTransition.transitionType = TRANSITION_CUT; + gRoomTransition.type = TRANSITION_CUT; } void sub_0808091C(ScreenTransitionData* param_1, u32 param_2) { DoExitTransition(param_1); - gScreenTransition.transitionType = param_2; + gRoomTransition.type = param_2; } void sub_08080930(void) { gRoomControls.unk3 = 5; gRoomControls.unk4 = 0; - gRoomControls.unk2 = 2; - gRoomControls.unk_10 = 0; + gRoomControls.reload_flags = 2; + gRoomControls.scroll_direction = 0; SetInitializationPriority(); } @@ -52,36 +52,36 @@ u32* GetLayerByIndex(u32 param_1) { } void InitScreenShake(u32 time, u32 magnitude) { - gRoomControls.screenShakeTime = time; - gRoomControls.screenShakeMagnitude = magnitude & 7; + gRoomControls.shake_duration = time; + gRoomControls.shake_magnitude = magnitude & 7; } void sub_08080974(u32 arg0, u32 arg1) { u32 var0, var1; RoomControls* roomControls = &gRoomControls; - var0 = roomControls->roomOriginX; + var0 = roomControls->origin_x; if (arg0 <= var0 + 120) { - roomControls->roomScrollX = var0; + roomControls->scroll_x = var0; } else { var0 += roomControls->width; var1 = var0 - 120; if (arg0 < var1) { var1 = arg0; } - roomControls->roomScrollX = var1 - 120; + roomControls->scroll_x = var1 - 120; } - var0 = roomControls->roomOriginY; + var0 = roomControls->origin_y; if (arg1 <= var0 + 80) { - roomControls->roomScrollY = var0; + roomControls->scroll_y = var0; } else { var0 += roomControls->height; var1 = var0 - 80; if (arg1 < var1) { var1 = arg1; } - roomControls->roomScrollY = var1 - 80; + roomControls->scroll_y = var1 - 80; } sub_080809D4(); @@ -95,32 +95,32 @@ void sub_080809D4(void) { RoomControls* roomControls = &gRoomControls; roomControls->scroll_flags &= ~4; - target = roomControls->cameraTarget; + target = roomControls->camera_target; x = target->x.HALF.HI; - var0 = roomControls->roomOriginX; + var0 = roomControls->origin_x; if (x <= var0 + 120) { - roomControls->roomScrollX = var0; + roomControls->scroll_x = var0; } else { var0 += roomControls->width; var1 = var0 - 120; if (x < var1) { var1 = (u16)target->x.HALF.HI; } - roomControls->roomScrollX = var1 - 120; + roomControls->scroll_x = var1 - 120; } - target = roomControls->cameraTarget; + target = roomControls->camera_target; y = target->y.HALF.HI; - var0 = roomControls->roomOriginY; + var0 = roomControls->origin_y; if (y <= var0 + 80) { - roomControls->roomScrollY = var0; + roomControls->scroll_y = var0; } else { var0 += roomControls->height; var1 = var0 - 80; if (y < var1) { var1 = (u16)target->y.HALF.HI; } - roomControls->roomScrollY = var1 - 80; + roomControls->scroll_y = var1 - 80; } sub_08080BC4(); diff --git a/src/sub_08055E08.c b/src/sub_08055E08.c index 2c0532eb..e5f0d095 100644 --- a/src/sub_08055E08.c +++ b/src/sub_08055E08.c @@ -15,7 +15,7 @@ struct { /*0x1d*/ u8 unk1D; /*0x1e*/ u8 unk1E; /*0x1f*/ u8 unk1F; -} gUpdateVisibleTiles = {}; +} gUpdateVisibleTiles; extern EntityData gUnk_080FF400; diff --git a/src/sub_0807CA18.c b/src/sub_0807CA18.c index 01768a24..223dae66 100644 --- a/src/sub_0807CA18.c +++ b/src/sub_0807CA18.c @@ -41,10 +41,10 @@ void sub_0807C9D8(u32* a1) { LoadPalettes(gUnk_020176E0, 2, 13); } -u8 sub_0807CA18() { - if (gSave.unk_00 != 0x00 || gSave.unk_01 != 1) { - gSave.unk_00 = 0; - gSave.unk_01 = 1; +u32 FinalizeSave() { + if (gSave.invalid || gSave.initialized != 1) { + gSave.invalid = 0; + gSave.initialized = 1; gSave.global_progress = 1; gSave.stats.health = 24; gSave.stats.maxHealth = 24; @@ -56,23 +56,23 @@ u8 sub_0807CA18() { gSave.saved_status.start_pos_x = 0x90; gSave.saved_status.start_pos_y = 0x38; } - if (gSave.playerName[0] == '\0') { - MemCopy(gUnk_0811E470, &gSave.playerName, FILENAME_LENGTH - 1); + if (gSave.name[0] == '\0') { + MemCopy(gUnk_0811E470, &gSave.name, FILENAME_LENGTH - 1); } #ifdef DEMO_USA { const u8* tmp; MemCopy(demoPointers[gSaveHeader->saveFileId], &gSave, 0x4B4); - if (gSaveHeader->gameLanguage == 0) { - gSave.playerName[0] = 0x97; - gSave.playerName[1] = 0x7F; - gSave.playerName[2] = 0xDD; - gSave.playerName[3] = 0; + if (gSaveHeader->language == 0) { + gSave.name[0] = 0x97; + gSave.name[1] = 0x7F; + gSave.name[2] = 0xDD; + gSave.name[3] = 0; } ModHealth(0xA0); ModRupees(-9999); tmp = demoUnknown1 + gUnk_02000010.field_0x7 * 3; - gSave.unk48C[7] = tmp[gSaveHeader->saveFileId] * 3600; + gSave.demo_timer = tmp[gSaveHeader->saveFileId] * 3600; } #endif return 1; diff --git a/src/subtask.c b/src/subtask.c index cbf667ea..f95bedcf 100644 --- a/src/subtask.c +++ b/src/subtask.c @@ -5,19 +5,19 @@ extern void (*const gUnk_081280C4[])(); -void DrawKinstoneMenu(void) { +void Subtask_KinstoneMenu(void) { #if !(defined(DEMO_USA) || defined(DEMO_JP)) - gScreenTransition.player_status.field_0x24[8] = 2; + gRoomTransition.player_status.field_0x24[8] = 2; FlushSprites(); gUnk_081280C4[gMenu.menuType](); sub_080A3B74(); sub_080A4054(); sub_0801C1D4(); - sub_0801C208(); + DrawOAMCmd(); UpdateEntities(); - sub_080AD9B0(); - sub_080AD918(); - gScreenTransition.player_status.field_0x24[8] = 0; + DrawEntities(); + CopyOAM(); + gRoomTransition.player_status.field_0x24[8] = 0; #endif } diff --git a/src/text.c b/src/text.c index 2ca3d929..8aadf79d 100644 --- a/src/text.c +++ b/src/text.c @@ -141,7 +141,7 @@ void sub_0805F918(u32 idx, u32 idx2, void* dest) { } u32 sub_0805F9A0(u32 r0) { - if (gSaveHeader->gameLanguage == 0) { + if (gSaveHeader->language == 0) { u16* val = &gUnk_081092D4; u32 i = 0; diff --git a/src/title.c b/src/title.c index 7f65c343..dc7d0c7d 100644 --- a/src/title.c +++ b/src/title.c @@ -12,7 +12,7 @@ typedef struct { u8 filler0[0x4]; - u8 gameLanguage; + u8 language; u8 state; u8 subState; u8 filler7[0x1]; @@ -61,14 +61,14 @@ static const u16 sLightRaysAlphaBlends[] = { #ifdef DEMO_JP static const SaveFile gDemoSave = { .unk_01 = 1, - .messageSpeed = 1, - .brightnessPref = 1, + .msg_speed = 1, + .brightness = 1, .global_progress = 1, .field_0x9 = { [23] = 0x1F }, .windcrests = 0x00013780, .unk50 = 7, .areaVisitFlags = { 0x0114C300 }, - .playerName = "\x97\x7f\xdd", + .name = "\x97\x7f\xdd", .saved_status = { .area_next = AREA_DEEPWOOD_SHRINE, .room_next = 0xb, @@ -118,14 +118,14 @@ static const u8 unk[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, static u32 AdvanceIntroSequence(u32 transition) { gUnk_02032EC0.lastState = transition; - gMain.funcIndex = 2; + gMain.state = 2; MemClear(&gIntroState, sizeof(gIntroState)); DoFade(7, 8); } -void HandleIntroScreen(void) { +void TitleTask(void) { FlushSprites(); - switch (gMain.funcIndex) { + switch (gMain.state) { case 0: MessageInitialize(); MemClear(&gUnk_02032EC0, sizeof(gUnk_02032EC0)); @@ -139,10 +139,10 @@ void HandleIntroScreen(void) { return; } DispReset(1); - gMain.funcIndex = 1; + gMain.state = 1; break; } - sub_080AD918(); + CopyOAM(); } static void HandleNintendoCapcomLogos(void) { @@ -156,7 +156,7 @@ static void HandleNintendoCapcomLogos(void) { gIntroState.timer = 120; LoadGfxGroup(16); LoadGfxGroup(1); - if (gSaveHeader->gameLanguage == 0) { + if (gSaveHeader->language == 0) { paletteGroup = 1; } else { paletteGroup = 2; @@ -204,19 +204,19 @@ static void HandleTitlescreen(void) { gIntroState.state = 1; gIntroState.subState = 0; gIntroState.timer = 30; - gIntroState.gameLanguage = 7; + gIntroState.language = 7; EraseAllEntities(); - sub_0801CFA8(0); + ResetPaletteTable(0); ResetPalettes(); gGFXSlots.unk0 = 1; LoadGfxGroup(2); - if (gSaveHeader->gameLanguage == 0) { + if (gSaveHeader->language == 0) { paletteGroup = 3; } else { paletteGroup = 4; } LoadPaletteGroup(paletteGroup); - if (gSaveHeader->gameLanguage == 0) { + if (gSaveHeader->language == 0) { // Blend first and second layer gScreen.controls.layerFXControl = BLDCNT_TGT1_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_EFFECT_BLEND; gScreen.controls.alphaBlend = BLDALPHA_BLEND(9, 9); @@ -245,7 +245,7 @@ static void HandleTitlescreen(void) { if (gFadeControl.active) { return; } - if (gSaveHeader->gameLanguage == 0) { + if (gSaveHeader->language == 0) { HandleJapaneseTitlescreenAnimationIntro(); } else { HandleTitlescreenAnimationIntro(); @@ -302,13 +302,13 @@ static void HandleTitlescreen(void) { #endif } } - if (gIntroState.gameLanguage != gSaveHeader->gameLanguage) { - gIntroState.gameLanguage = gSaveHeader->gameLanguage; + if (gIntroState.language != gSaveHeader->language) { + gIntroState.language = gSaveHeader->language; LoadGfxGroup(3); } UpdateLightRays(); UpdateEntities(); - sub_080AD9B0(); + DrawEntities(); } #if defined(USA) || defined(DEMO_USA) @@ -429,9 +429,9 @@ static void ExitTitlescreen(void) { if (!gFadeControl.active) { #ifdef DEMO_JP MemCopy(&gDemoSave, &gSave, sizeof(gSave)); - InitScreen(SCREEN_GAMEPLAY); + SetTask(TASK_GAME); #else - InitScreen(SCREEN_CHOOSE_FILE); + SetTask(TASK_FILE_SELECT); #endif } } From 7036ec73af7864e2728016ae931f872373c56e06 Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 4 Jan 2022 18:39:32 -0800 Subject: [PATCH 096/168] game.c doc --- asm/beanstalkSubtask.s | 2 +- asm/code_080526F8.s | 12 +- asm/code_0805436C.s | 2 +- asm/code_08077B98.s | 4 +- asm/code_08078778.s | 2 +- asm/non_matching/bigGoron/sub_0806D5D4.inc | 2 +- .../common/DrawDungeonFeatures.inc | 2 +- asm/object/bird.s | 4 +- asm/object/pullableMushroom.s | 2 +- asm/subtask.s | 84 ++-- asm/subtask2.s | 110 +++--- asm/ui.s | 4 +- assets/assets.json | 2 +- data/data_080FC8A4.s | 36 -- data/data_08128BF4.s | 4 +- data/map/entity_headers.s | 24 +- include/area.h | 4 +- include/functions.h | 2 +- include/game.h | 131 +++--- include/player.h | 2 +- include/save.h | 2 +- src/affine.c | 2 +- src/code_0805436C.c | 6 +- src/enemy/pesto.c | 4 +- src/enemy/vaatiRebornEnemy.c | 2 +- src/enemy/vaatiWrath.c | 4 +- src/entity.c | 2 +- src/fileselect.c | 16 +- src/game.c | 372 +++++++++++------- src/manager/manager10.c | 14 +- src/manager/manager24.c | 30 +- src/manager/manager37.c | 4 +- src/manager/manager39.c | 2 +- src/manager/managerB.c | 8 +- src/manager/managerC.c | 2 +- src/npc/bigGoron.c | 6 +- src/npc/forestMinish.c | 4 +- src/object/archway.c | 2 +- src/object/lockedDoor.c | 2 +- src/object/minishSizedArchway.c | 2 +- src/object/minishSizedEntrance.c | 2 +- src/object/warpPoint.c | 4 +- src/player.c | 6 +- src/projectile/mandiblesProjectile.c | 2 +- src/room.c | 2 +- src/roomInit.c | 100 ++--- src/script.c | 2 +- src/scroll.c | 2 +- src/title.c | 10 +- 49 files changed, 563 insertions(+), 488 deletions(-) diff --git a/asm/beanstalkSubtask.s b/asm/beanstalkSubtask.s index 5efd2b1a..e2cee5a3 100644 --- a/asm/beanstalkSubtask.s +++ b/asm/beanstalkSubtask.s @@ -37,7 +37,7 @@ sub_08019698: @ 0x08019698 bl SetLocalFlagByBank ldrh r0, [r4] ldrh r1, [r4, #2] - bl sub_08052FD8 + bl LoadCutsceneRoom ldr r5, _0801972C @ =gRoomControls ldrh r0, [r4, #6] ldrh r1, [r5, #0xa] diff --git a/asm/code_080526F8.s b/asm/code_080526F8.s index 7843be88..bf115971 100644 --- a/asm/code_080526F8.s +++ b/asm/code_080526F8.s @@ -6,8 +6,8 @@ .text - thumb_func_start sub_08053590 -sub_08053590: @ 0x08053590 + thumb_func_start CutsceneMain_Init +CutsceneMain_Init: @ 0x08053590 push {lr} ldr r1, _080535A4 @ =gUnk_080FCBB4 ldr r0, _080535A8 @ =gMenu @@ -901,8 +901,8 @@ sub_08053C84: @ 0x08053C84 .align 2, 0 _08053C8C: .4byte gMenu - thumb_func_start sub_08053C90 -sub_08053C90: @ 0x08053C90 + thumb_func_start CutsceneMain_Exit +CutsceneMain_Exit: @ 0x08053C90 push {lr} ldr r1, _08053CA4 @ =gUnk_080FCEF8 ldr r0, _08053CA8 @ =gMenu @@ -1294,8 +1294,8 @@ _08053FAA: _08053FAC: .4byte gFadeControl _08053FB0: .4byte gMenu - thumb_func_start sub_08053FB4 -sub_08053FB4: @ 0x08053FB4 + thumb_func_start CutsceneMain_Update +CutsceneMain_Update: @ 0x08053FB4 push {lr} ldr r1, _08053FC8 @ =gUnk_080FD138 ldr r0, _08053FCC @ =gMenu diff --git a/asm/code_0805436C.s b/asm/code_0805436C.s index 6f49c29e..50ac313b 100644 --- a/asm/code_0805436C.s +++ b/asm/code_0805436C.s @@ -138,7 +138,7 @@ sub_08054974: @ 0x08054974 beq _080549BC ldrb r0, [r6, #2] ldrb r1, [r6, #3] - bl sub_08052FD8 + bl LoadCutsceneRoom b _080549CE .align 2, 0 _080549B0: .4byte gUnk_080FE320 diff --git a/asm/code_08077B98.s b/asm/code_08077B98.s index 8228eaf7..e1eb8613 100644 --- a/asm/code_08077B98.s +++ b/asm/code_08077B98.s @@ -467,7 +467,7 @@ _0807835C: bne _0807836A b _080784AC _0807836A: - bl sub_08052B24 + bl CanDispEzloMessage cmp r0, #0 beq _08078374 b _080784C4 @@ -482,7 +482,7 @@ _08078376: beq _08078384 b _080784AC _08078384: - bl sub_08052B24 + bl CanDispEzloMessage cmp r0, #0 beq _0807838E b _080784C4 diff --git a/asm/code_08078778.s b/asm/code_08078778.s index 266d4bdc..5dd37970 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -3722,7 +3722,7 @@ _0807A468: cmp r2, #0 beq _0807A4F2 _0807A46E: - bl CheckIsDungeon + bl AreaIsDungeon cmp r0, #0 beq _0807A4B0 ldr r4, _0807A4AC @ =gPlayerEntity diff --git a/asm/non_matching/bigGoron/sub_0806D5D4.inc b/asm/non_matching/bigGoron/sub_0806D5D4.inc index 82655104..c9084c09 100644 --- a/asm/non_matching/bigGoron/sub_0806D5D4.inc +++ b/asm/non_matching/bigGoron/sub_0806D5D4.inc @@ -1,6 +1,6 @@ .syntax unified push {lr} - bl sub_08053500 + bl InitBiggoronTimer movs r0, #0xd bl IsItemEquipped adds r1, r0, #0 diff --git a/asm/non_matching/common/DrawDungeonFeatures.inc b/asm/non_matching/common/DrawDungeonFeatures.inc index 706d8c96..938662b1 100644 --- a/asm/non_matching/common/DrawDungeonFeatures.inc +++ b/asm/non_matching/common/DrawDungeonFeatures.inc @@ -6,7 +6,7 @@ push {r5, r6, r7} sub sp, #0x14 adds r4, r0, #0 - bl CheckHasMap + bl AreaHasMap cmp r0, #0 bne _0801DDB8 b _0801DEEA diff --git a/asm/object/bird.s b/asm/object/bird.s index caa3c21b..fce0c464 100644 --- a/asm/object/bird.s +++ b/asm/object/bird.s @@ -631,9 +631,9 @@ CreateBird: @ 0x0809D700 push {r4, lr} sub sp, #4 .ifdef EU - bl CheckIsOverworld @ TODO correct function? + bl AreaIsOverworld @ TODO correct function? .else - bl sub_08052654 + bl AreaAllowsWarp .endif cmp r0, #0 beq _0809D732 diff --git a/asm/object/pullableMushroom.s b/asm/object/pullableMushroom.s index 4715c361..b5eb0457 100644 --- a/asm/object/pullableMushroom.s +++ b/asm/object/pullableMushroom.s @@ -32,7 +32,7 @@ sub_0808AA1C: @ 0x0808AA1C movs r4, #0 movs r6, #1 strb r6, [r5, #0xc] - bl CheckIsDungeon + bl AreaIsDungeon cmp r0, #0 bne _0808AA36 adds r0, r5, #0 diff --git a/asm/subtask.s b/asm/subtask.s index dfec5a59..ea7d1839 100644 --- a/asm/subtask.s +++ b/asm/subtask.s @@ -566,7 +566,7 @@ sub_080A4080: @ 0x080A4080 movs r0, #0xfd lsls r0, r0, #1 movs r1, #0 - bl sub_080ADA14 + bl DrawDirect movs r0, #0x94 strh r0, [r4, #2] movs r0, #0x50 @@ -577,7 +577,7 @@ sub_080A4080: @ 0x080A4080 ldr r7, _080A3954 @ =0x000001F9 adds r0, r7, #0 movs r1, #0 - bl sub_080ADA14 + bl DrawDirect movs r0, #0xb8 strh r0, [r4] movs r0, #0x94 @@ -585,7 +585,7 @@ sub_080A4080: @ 0x080A4080 strh r0, [r4, #8] adds r0, r7, #0 movs r1, #1 - bl sub_080ADA14 + bl DrawDirect ldr r0, _080A3958 @ =gMain ldrh r0, [r0, #0xc] lsrs r0, r0, #2 @@ -618,7 +618,7 @@ _080A3920: strh r0, [r4, #2] adds r0, r7, #0 movs r1, #3 - bl sub_080ADA14 + bl DrawDirect _080A3934: cmp r5, #0 beq _080A3948 @@ -628,7 +628,7 @@ _080A3934: strh r0, [r4, #2] adds r0, r7, #0 movs r1, #2 - bl sub_080ADA14 + bl DrawDirect _080A3948: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -659,7 +659,7 @@ _080A3960: .4byte 0x0000FFFF strh r0, [r4, #8] ldr r0, _080A413C @ =0x000001FB movs r1, #0 - bl sub_080ADA14 + bl DrawDirect movs r0, #0x94 strh r0, [r4, #2] movs r0, #0x50 @@ -671,7 +671,7 @@ _080A3960: .4byte 0x0000FFFF lsls r7, r7, #1 adds r0, r7, #0 movs r1, #0 - bl sub_080ADA14 + bl DrawDirect movs r0, #0xb8 strh r0, [r4] movs r0, #0x94 @@ -679,7 +679,7 @@ _080A3960: .4byte 0x0000FFFF strh r0, [r4, #8] adds r0, r7, #0 movs r1, #1 - bl sub_080ADA14 + bl DrawDirect ldr r0, _080A4140 @ =gMain ldrh r0, [r0, #0xc] lsrs r0, r0, #2 @@ -712,7 +712,7 @@ _080A4108: strh r0, [r4, #2] adds r0, r7, #0 movs r1, #3 - bl sub_080ADA14 + bl DrawDirect _080A411C: cmp r5, #0 beq _080A4130 @@ -722,7 +722,7 @@ _080A411C: strh r0, [r4, #2] adds r0, r7, #0 movs r1, #2 - bl sub_080ADA14 + bl DrawDirect _080A4130: pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -1002,7 +1002,7 @@ _080A4362: strh r0, [r1, #2] movs r0, #0 movs r1, #5 - bl sub_080ADA14 + bl DrawDirect ldr r0, _080A4394 @ =gOamCmd strh r4, [r0] strh r5, [r0, #2] @@ -1021,7 +1021,7 @@ _080A4372: strh r1, [r0, #8] movs r0, #0 movs r1, #3 - bl sub_080ADA14 + bl DrawDirect pop {r4, r5, r6, r7, pc} .align 2, 0 _080A4394: .4byte gOamCmd @@ -1826,7 +1826,7 @@ sub_080A4978: @ 0x080A4978 ldr r7, _080A4330 @ =0x000001FB adds r0, r7, #0 movs r1, #0 - bl sub_080ADA14 + bl DrawDirect ldr r0, _080A4334 @ =gSave ldrb r0, [r0, #6] movs r2, #0x88 @@ -1860,7 +1860,7 @@ _080A41EC: strh r0, [r5, #2] adds r0, r7, #0 movs r1, #1 - bl sub_080ADA14 + bl DrawDirect ldr r0, _080A433C @ =gMain ldrh r1, [r0, #0xc] movs r0, #0x10 @@ -1875,13 +1875,13 @@ _080A420A: strh r0, [r5, #2] adds r0, r7, #0 adds r1, r4, #0 - bl sub_080ADA14 + bl DrawDirect strh r6, [r5] movs r0, #0x76 strh r0, [r5, #2] adds r1, r4, #1 adds r0, r7, #0 - bl sub_080ADA14 + bl DrawDirect _080A4226: ldr r0, _080A433C @ =gMain ldrh r1, [r0, #0xc] @@ -1911,7 +1911,7 @@ _080A4226: strh r0, [r4, #2] ldr r0, _080A4330 @ =0x000001FB movs r1, #6 - bl sub_080ADA14 + bl DrawDirect _080A4262: ldrb r1, [r5, #0x1e] movs r0, #0x1f @@ -1924,7 +1924,7 @@ _080A4262: strh r0, [r4, #2] ldr r0, _080A4330 @ =0x000001FB movs r1, #7 - bl sub_080ADA14 + bl DrawDirect _080A427C: movs r0, #0x80 lsls r0, r0, #0x12 @@ -1957,7 +1957,7 @@ _080A42A0: strh r0, [r7, #8] movs r0, #0 movs r1, #9 - bl sub_080ADA14 + bl DrawDirect adds r0, r4, #0 movs r1, #0xa bl __divsi3 @@ -1988,7 +1988,7 @@ _080A42D0: ldr r0, _080A4340 @ =0x000001F7 ldrb r1, [r4, #0x1c] subs r1, #1 - bl sub_080ADA14 + bl DrawDirect ldrb r1, [r4, #0x1c] ldrb r0, [r4, #0x1d] cmp r0, r1 @@ -2046,7 +2046,7 @@ _080A4358EU: .4byte 0x06014000 lsls r7, r7, #1 adds r0, r7, #0 movs r1, #0 - bl sub_080ADA14 + bl DrawDirect ldr r0, _080A4B20 @ =gSave ldrb r0, [r0, #6] movs r2, #0x88 @@ -2080,7 +2080,7 @@ _080A49D6: strh r0, [r5, #2] adds r0, r7, #0 movs r1, #1 - bl sub_080ADA14 + bl DrawDirect ldr r0, _080A4B28 @ =gMain ldrh r1, [r0, #0xc] movs r0, #0x10 @@ -2095,13 +2095,13 @@ _080A49F4: strh r0, [r5, #2] adds r0, r7, #0 adds r1, r4, #0 - bl sub_080ADA14 + bl DrawDirect strh r6, [r5] movs r0, #0x76 strh r0, [r5, #2] adds r1, r4, #1 adds r0, r7, #0 - bl sub_080ADA14 + bl DrawDirect _080A4A10: ldr r0, _080A4B28 @ =gMain ldrh r1, [r0, #0xc] @@ -2132,7 +2132,7 @@ _080A4A10: movs r0, #0xfe lsls r0, r0, #1 movs r1, #6 - bl sub_080ADA14 + bl DrawDirect _080A4A4E: ldrb r1, [r5, #0x1e] movs r0, #0x1f @@ -2146,7 +2146,7 @@ _080A4A4E: movs r0, #0xfe lsls r0, r0, #1 movs r1, #7 - bl sub_080ADA14 + bl DrawDirect _080A4A6A: movs r0, #0x80 lsls r0, r0, #0x12 @@ -2179,7 +2179,7 @@ _080A4A8E: strh r0, [r7, #8] movs r0, #0 movs r1, #9 - bl sub_080ADA14 + bl DrawDirect adds r0, r4, #0 movs r1, #0xa bl __divsi3 @@ -2211,7 +2211,7 @@ _080A4ABE: lsls r0, r0, #1 ldrb r1, [r4, #0x1c] subs r1, #1 - bl sub_080ADA14 + bl DrawDirect ldrb r1, [r4, #0x1c] ldrb r0, [r4, #0x1d] cmp r0, r1 @@ -2923,7 +2923,7 @@ sub_080A50A0: @ 0x080A50A0 adds r1, r0, #0 cmp r1, #0xf bne _080A50B4 - bl CheckHasMap + bl AreaHasMap movs r1, #4 cmp r0, #0 beq _080A50B4 @@ -3061,21 +3061,21 @@ _080A5182: .endif adds r0, r5, #0 movs r1, #0 - bl sub_080ADA14 + bl DrawDirect ldr r0, [sp, #8] strh r0, [r4] ldr r0, [sp, #0xc] strh r0, [r4, #2] adds r0, r5, #0 movs r1, #1 - bl sub_080ADA14 + bl DrawDirect ldr r0, [sp, #0x10] strh r0, [r4] ldr r0, [sp, #0x14] strh r0, [r4, #2] adds r0, r5, #0 movs r1, #2 - bl sub_080ADA14 + bl DrawDirect _080A51C6: add sp, #0x18 pop {r4, r5, pc} @@ -3430,7 +3430,7 @@ _080A4C42: ldr r0, [r0] ldrb r1, [r0] ldr r0, _080A4D4C @ =0x00000141 - bl sub_080ADA14 + bl DrawDirect _080A4C68: adds r6, #8 adds r5, #1 @@ -3474,7 +3474,7 @@ _080A4CB2EU: movs r6, #0xfd lsls r6, r6, #1 adds r0, r6, #0 - bl sub_080ADA14 + bl DrawDirect movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] @@ -3495,7 +3495,7 @@ _080A4CCA: strh r0, [r4, #8] adds r0, r6, #0 movs r1, #0x22 - bl sub_080ADA14 + bl DrawDirect ldr r7, _080A4D5C @ =gSave adds r0, r7, #0 adds r0, #0xb4 @@ -3513,7 +3513,7 @@ _080A4CCA: strh r0, [r4, #2] adds r0, r6, #0 movs r1, #3 - bl sub_080ADA14 + bl DrawDirect _080A4D0E: adds r0, r7, #0 adds r0, #0xb5 @@ -3532,7 +3532,7 @@ _080A4D0E: strh r0, [r2, #2] adds r0, r6, #0 movs r1, #3 - bl sub_080ADA14 + bl DrawDirect _080A4D36: pop {r3, r4, r5} mov r8, r3 @@ -3653,7 +3653,7 @@ _080A542E: ldrb r1, [r0] movs r0, #0xa1 lsls r0, r0, #1 - bl sub_080ADA14 + bl DrawDirect _080A5456: adds r6, #8 adds r5, #1 @@ -3696,7 +3696,7 @@ _080A547C: _080A54A0: ldr r6, _080A5544 @ =0x000001FB adds r0, r6, #0 - bl sub_080ADA14 + bl DrawDirect movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] @@ -3717,7 +3717,7 @@ _080A54B6: strh r0, [r4, #8] adds r0, r6, #0 movs r1, #0x22 - bl sub_080ADA14 + bl DrawDirect ldr r7, _080A5548 @ =gSave adds r0, r7, #0 adds r0, #0xb4 @@ -3735,7 +3735,7 @@ _080A54B6: strh r0, [r4, #2] adds r0, r6, #0 movs r1, #3 - bl sub_080ADA14 + bl DrawDirect _080A54FA: adds r0, r7, #0 adds r0, #0xb5 @@ -3754,7 +3754,7 @@ _080A54FA: strh r0, [r2, #2] adds r0, r6, #0 movs r1, #3 - bl sub_080ADA14 + bl DrawDirect _080A5522: pop {r3, r4, r5} mov r8, r3 diff --git a/asm/subtask2.s b/asm/subtask2.s index da4d4861..e8bd02cf 100644 --- a/asm/subtask2.s +++ b/asm/subtask2.s @@ -425,7 +425,7 @@ _080A502E: _080A505A: movs r0, #0xfd lsls r0, r0, #1 - bl sub_080ADA14 + bl DrawDirect movs r3, #0 mov r8, r3 mov r7, sb @@ -501,7 +501,7 @@ _080A50EA: ldrb r1, [r0] ldr r0, _080A5194 @ =0x00000141 _080A50F6: - bl sub_080ADA14 + bl DrawDirect _080A50FA: adds r7, #8 movs r0, #1 @@ -529,7 +529,7 @@ _080A50FA: strh r0, [r2, #2] movs r0, #0 movs r1, #1 - bl sub_080ADA14 + bl DrawDirect _080A5132: ldrb r0, [r4, #0x13] cmp r0, #0x3f @@ -559,7 +559,7 @@ _080A5156: strh r0, [r5, #8] movs r0, #0 movs r1, #1 - bl sub_080ADA14 + bl DrawDirect adds r0, r4, #0 movs r1, #0xa bl __divsi3 @@ -630,7 +630,7 @@ _080A581A: adds r1, #1 _080A5846: ldr r0, _080A58A4 @ =0x000001FB - bl sub_080ADA14 + bl DrawDirect movs r3, #0 mov r8, r3 mov r7, sb @@ -708,7 +708,7 @@ _080A58D6: movs r0, #0xa1 lsls r0, r0, #1 _080A58E4: - bl sub_080ADA14 + bl DrawDirect _080A58E8: adds r7, #8 movs r0, #1 @@ -736,7 +736,7 @@ _080A58E8: strh r0, [r2, #2] movs r0, #0 movs r1, #1 - bl sub_080ADA14 + bl DrawDirect _080A5920: ldrb r0, [r4, #0x13] cmp r0, #0x3f @@ -766,7 +766,7 @@ _080A5944: strh r0, [r5, #8] movs r0, #0 movs r1, #1 - bl sub_080ADA14 + bl DrawDirect adds r0, r4, #0 movs r1, #0xa bl __divsi3 @@ -1316,7 +1316,7 @@ sub_080A5D1C: @ 0x080A5D1C _080A5560: movs r0, #0xfd lsls r0, r0, #1 - bl sub_080ADA14 + bl DrawDirect movs r0, #0x20 mov sb, r0 mov r1, sb @@ -1338,7 +1338,7 @@ _080A5560: _080A558C: movs r0, #0xfd lsls r0, r0, #1 - bl sub_080ADA14 + bl DrawDirect movs r0, #0x7e strh r0, [r5, #2] movs r0, #0x87 @@ -1357,7 +1357,7 @@ _080A558C: ldrb r4, [r0] ldr r0, _080A56ACEU @ =0x00000143 adds r1, r4, #0 - bl sub_080ADA14 + bl DrawDirect _080A55BE: bl HasDungeonCompass cmp r0, #0 @@ -1372,7 +1372,7 @@ _080A55BE: ldrb r4, [r0] ldr r0, _080A56ACEU @ =0x00000143 adds r1, r4, #0 - bl sub_080ADA14 + bl DrawDirect _080A55DE: bl HasDungeonBigKey cmp r0, #0 @@ -1390,7 +1390,7 @@ _080A55DE: ldrb r4, [r0] ldr r0, _080A56ACEU @ =0x00000143 adds r1, r4, #0 - bl sub_080ADA14 + bl DrawDirect bl sub_080A5F24 cmp r0, #0 beq _080A563CEU @@ -1417,7 +1417,7 @@ _080A55DE: _080A5634EU: movs r0, #0xfd lsls r0, r0, #1 - bl sub_080ADA14 + bl DrawDirect _080A563CEU: ldr r1, _080A569CEU @ =gOamCmd movs r0, #0 @@ -1437,7 +1437,7 @@ _080A5658: movs r0, #0xfd lsls r0, r0, #1 adds r1, r4, #0 - bl sub_080ADA14 + bl DrawDirect subs r4, #1 ldrh r0, [r6, #2] adds r0, #0xc @@ -1516,7 +1516,7 @@ _080A56E8: movs r0, #0xfd lsls r0, r0, #1 adds r1, r4, #0 - bl sub_080ADA14 + bl DrawDirect adds r5, #3 ldrb r0, [r5] cmp r0, #0 @@ -1573,7 +1573,7 @@ _080A570E: movs r1, #0x75 _080A5D70: ldr r0, _080A5EB0 @ =0x000001FB - bl sub_080ADA14 + bl DrawDirect movs r0, #0x20 mov sb, r0 mov r1, sb @@ -1594,7 +1594,7 @@ _080A5D70: movs r1, #0x78 _080A5D9A: ldr r0, _080A5EB0 @ =0x000001FB - bl sub_080ADA14 + bl DrawDirect movs r0, #0x7e strh r0, [r5, #2] movs r0, #0x87 @@ -1614,7 +1614,7 @@ _080A5D9A: movs r0, #0xa2 lsls r0, r0, #1 adds r1, r4, #0 - bl sub_080ADA14 + bl DrawDirect _080A5DCC: bl HasDungeonCompass cmp r0, #0 @@ -1630,7 +1630,7 @@ _080A5DCC: movs r0, #0xa2 lsls r0, r0, #1 adds r1, r4, #0 - bl sub_080ADA14 + bl DrawDirect _080A5DEE: bl HasDungeonBigKey cmp r0, #0 @@ -1647,7 +1647,7 @@ _080A5DEE: ldr r1, [r1] ldrb r4, [r1] adds r1, r4, #0 - bl sub_080ADA14 + bl DrawDirect bl sub_080A5F24 cmp r0, #0 beq _080A5E48 @@ -1673,7 +1673,7 @@ _080A5DEE: movs r1, #0x7a _080A5E42: ldr r0, _080A5EB0 @ =0x000001FB - bl sub_080ADA14 + bl DrawDirect _080A5E48: ldr r1, _080A5EA4 @ =gOamCmd movs r0, #0 @@ -1692,7 +1692,7 @@ _080A5E48: _080A5E64: ldr r0, _080A5EB0 @ =0x000001FB adds r1, r4, #0 - bl sub_080ADA14 + bl DrawDirect subs r4, #1 ldrh r0, [r6, #2] adds r0, #0xc @@ -1770,7 +1770,7 @@ _080A5EF0: strh r0, [r7, #2] ldr r0, _080A5F20 @ =0x000001FB adds r1, r4, #0 - bl sub_080ADA14 + bl DrawDirect adds r5, #3 ldrb r0, [r5] cmp r0, #0 @@ -2119,7 +2119,7 @@ sub_080A617C: @ 0x080A617C _080A59AC: ldr r5, _080A5A5C @ =0x000001FB adds r0, r5, #0 - bl sub_080ADA14 + bl DrawDirect ldrb r0, [r4, #3] lsls r0, r0, #3 ldr r1, _080A5A60 @ =gUnk_08128D70 @@ -2135,7 +2135,7 @@ _080A59AC: strh r0, [r6, #2] adds r0, r5, #0 movs r1, #0xb - bl sub_080ADA14 + bl DrawDirect movs r0, #0x30 strh r0, [r6] movs r0, #0x6c @@ -2149,7 +2149,7 @@ _080A59AC: strh r0, [r6, #8] ldrb r1, [r4, #2] adds r0, r5, #0 - bl sub_080ADA14 + bl DrawDirect ldrb r0, [r4, #1] lsls r0, r0, #0xc orrs r0, r7 @@ -2160,7 +2160,7 @@ _080A59AC: strh r0, [r6, #2] adds r0, r5, #0 movs r1, #0xc - bl sub_080ADA14 + bl DrawDirect _080A5A0E: mov r0, r8 strh r0, [r6, #2] @@ -2185,7 +2185,7 @@ _080A5A18: strh r6, [r7] ldr r0, _080A5A5C @ =0x000001FB movs r1, #0xa - bl sub_080ADA14 + bl DrawDirect _080A5A40: adds r6, #0x1b adds r5, #1 @@ -2236,7 +2236,7 @@ _080A61B8: movs r5, #0xfe lsls r5, r5, #1 adds r0, r5, #0 - bl sub_080ADA14 + bl DrawDirect ldrb r0, [r4, #3] lsls r0, r0, #3 ldr r1, _080A626C @ =gUnk_08128D70 @@ -2252,7 +2252,7 @@ _080A61B8: strh r0, [r6, #2] adds r0, r5, #0 movs r1, #0xb - bl sub_080ADA14 + bl DrawDirect movs r0, #0x30 strh r0, [r6] movs r0, #0x6c @@ -2266,7 +2266,7 @@ _080A61B8: strh r0, [r6, #8] ldrb r1, [r4, #2] adds r0, r5, #0 - bl sub_080ADA14 + bl DrawDirect ldrb r0, [r4, #1] lsls r0, r0, #0xc orrs r0, r7 @@ -2277,7 +2277,7 @@ _080A61B8: strh r0, [r6, #2] adds r0, r5, #0 movs r1, #0xc - bl sub_080ADA14 + bl DrawDirect _080A621C: mov r0, r8 strh r0, [r6, #2] @@ -2303,7 +2303,7 @@ _080A6226: movs r0, #0xfe lsls r0, r0, #1 movs r1, #0xa - bl sub_080ADA14 + bl DrawDirect _080A6250: adds r6, #0x1b adds r5, #1 @@ -2508,7 +2508,7 @@ _080A5B86: _080A5BD8: movs r0, #0xfd lsls r0, r0, #1 - bl sub_080ADA14 + bl DrawDirect _080A5BE0: ldr r3, _080A5C18 @ =gChooseFileState ldrb r0, [r3, #3] @@ -2532,7 +2532,7 @@ _080A5BE0: adds r1, r2, r0 movs r0, #0xfd lsls r0, r0, #1 - bl sub_080ADA14 + bl DrawDirect bl sub_080A6498 pop {r4, r5, r6, pc} .align 2, 0 @@ -2597,7 +2597,7 @@ _080A6392: movs r1, #0x5a _080A63E4: ldr r0, _080A6430 @ =0x000001FB - bl sub_080ADA14 + bl DrawDirect _080A63EA: ldr r3, _080A6420 @ =gMenu ldrb r0, [r3, #3] @@ -2620,7 +2620,7 @@ _080A63EA: bics r0, r1 adds r1, r2, r0 ldr r0, _080A6430 @ =0x000001FB - bl sub_080ADA14 + bl DrawDirect bl sub_080A6498 pop {r4, r5, r6, pc} .align 2, 0 @@ -2667,7 +2667,7 @@ _080A5C52: ldrb r1, [r4] movs r0, #0xfd lsls r0, r0, #1 - bl sub_080ADA14 + bl DrawDirect _080A5C6E: adds r6, #1 adds r4, #8 @@ -2714,7 +2714,7 @@ _080A645E: strh r0, [r7, #2] ldrb r1, [r4] ldr r0, _080A6494 @ =0x000001FB - bl sub_080ADA14 + bl DrawDirect _080A6478: adds r6, #1 adds r4, #8 @@ -2763,7 +2763,7 @@ _080A5CA4: movs r0, #0xfd lsls r0, r0, #1 adds r1, r5, #0 - bl sub_080ADA14 + bl DrawDirect _080A5CC8EU: adds r5, #3 adds r4, #1 @@ -2810,7 +2810,7 @@ _080A64B0: strh r0, [r6, #2] ldr r0, _080A64F0 @ =0x000001FB adds r1, r5, #0 - bl sub_080ADA14 + bl DrawDirect _080A64D2: adds r5, #3 adds r4, #1 @@ -3096,7 +3096,7 @@ sub_080A66D0: @ 0x080A66D0 movs r0, #0xfd lsls r0, r0, #1 movs r1, #0x71 - bl sub_080ADA14 + bl DrawDirect _080A5F1A: ldrb r0, [r5, #2] ldrh r4, [r4, #0xa] @@ -3107,7 +3107,7 @@ _080A5F1A: movs r0, #0xfd lsls r0, r0, #1 movs r1, #0x72 - bl sub_080ADA14 + bl DrawDirect _080A5F30: ldrb r0, [r5, #7] mov sl, r0 @@ -3165,7 +3165,7 @@ _080A5F8A: strh r0, [r7, #2] ldrh r0, [r4, #2] ldrb r1, [r4, #1] - bl sub_080ADA14 + bl DrawDirect _080A5FA6: adds r4, #8 ldrh r0, [r4, #2] @@ -3219,7 +3219,7 @@ _080A5FAE: strh r0, [r6, #2] ldr r0, _080A6788 @ =0x000001FB movs r1, #0x71 - bl sub_080ADA14 + bl DrawDirect _080A6724: ldrb r0, [r5, #2] ldrh r4, [r4, #0xa] @@ -3229,7 +3229,7 @@ _080A6724: strh r0, [r6, #2] ldr r0, _080A6788 @ =0x000001FB movs r1, #0x72 - bl sub_080ADA14 + bl DrawDirect _080A6738: ldrb r0, [r5, #7] mov sl, r0 @@ -3288,7 +3288,7 @@ _080A6796: strh r0, [r7, #2] ldrh r0, [r4, #2] ldrb r1, [r4, #1] - bl sub_080ADA14 + bl DrawDirect _080A67B2: adds r4, #8 ldrh r0, [r4, #2] @@ -4304,7 +4304,7 @@ sub_080A6E70: @ 0x080A6E70 _080A6698: movs r0, #0xfd lsls r0, r0, #1 - bl sub_080ADA14 + bl DrawDirect movs r4, #0 ldr r5, _080A66D4 @ =gSave _080A66A4EU: @@ -4321,7 +4321,7 @@ _080A66A4EU: movs r0, #0xfd lsls r0, r0, #1 movs r1, #0x5c - bl sub_080ADA14 + bl DrawDirect _080A66C4: adds r4, #1 cmp r4, #7 @@ -4358,7 +4358,7 @@ _080A66D4: .4byte gSave movs r1, #0x5d _080A6EA0: ldr r0, _080A6ED8 @ =0x000001FB - bl sub_080ADA14 + bl DrawDirect movs r4, #0 ldr r5, _080A6EDC @ =gSave _080A6EAA: @@ -4374,7 +4374,7 @@ _080A6EAA: bl sub_080A6EE0 ldr r0, _080A6ED8 @ =0x000001FB movs r1, #0x5c - bl sub_080ADA14 + bl DrawDirect _080A6EC8: adds r4, #1 cmp r4, #7 @@ -5041,7 +5041,7 @@ _080A73B4: adds r4, r4, r1 str r0, [r4] ldrb r0, [r5, #6] - bl sub_080527FC + bl RestoreGameTask ldrb r1, [r5, #0xd] rsbs r0, r1, #0 orrs r0, r1 @@ -5134,7 +5134,7 @@ _080A7524: .4byte gMain thumb_func_start Subtask_Update Subtask_Update: @ 0x080A7528 push {lr} - ldr r1, _080A753C @ =gUnk_08129030 + ldr r1, _080A753C @ =gSubtasks ldr r0, _080A7540 @ =gUnk_02032EC0 ldrb r0, [r0, #2] lsls r0, r0, #2 @@ -5143,5 +5143,5 @@ Subtask_Update: @ 0x080A7528 bl _call_via_r0 pop {pc} .align 2, 0 -_080A753C: .4byte gUnk_08129030 +_080A753C: .4byte gSubtasks _080A7540: .4byte gUnk_02032EC0 diff --git a/asm/ui.s b/asm/ui.s index b7bd7df2..b4a4960a 100644 --- a/asm/ui.s +++ b/asm/ui.s @@ -68,7 +68,7 @@ _0801C20E: strh r0, [r4, #8] ldrh r0, [r2, #6] ldrb r1, [r3, #0x10] - bl sub_080ADA14 + bl DrawDirect _0801C248: adds r5, #1 cmp r5, #0x17 @@ -1009,7 +1009,7 @@ sub_0801C99C: @ 0x0801C99C ands r0, r1 cmp r0, #0 bne _0801C9B2 - bl sub_08052724 + bl AreaHasKeys cmp r0, #0 bne _0801C9EC _0801C9B2: diff --git a/assets/assets.json b/assets/assets.json index 67bbda54..b670564e 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -31141,7 +31141,7 @@ "size": 16 }, { - "path": "data_080FC8A4/gUnk_080FCA20.bin", + "path": "data_080FC8A4/sCutsceneData.bin", "start": 1034784, "size": 80 }, diff --git a/data/data_080FC8A4.s b/data/data_080FC8A4.s index 77171f38..1ca6f894 100644 --- a/data/data_080FC8A4.s +++ b/data/data_080FC8A4.s @@ -57,39 +57,3 @@ gUnk_080FC9C8:: @ 080FC9C8 .4byte sub_080517EC .4byte sub_08051874 .4byte sub_080518E4 - -gUnk_080FC9D8:: @ 080FC9D8 - .4byte GameTask_Transition - .4byte GameTask_Init - .4byte GameTask_Main - .4byte sub_08051D2C - -gUnk_080FC9E8:: @ 080FC9E8 - .4byte GameMain_InitRoom - .4byte GameMain_ChangeRoom - .4byte GameMain_Update - .4byte GameMain_ChangeArea - .4byte GameMain_MinishPortal - .4byte GameMain_BarrelUpdate - .4byte 00000000 - .4byte GameMain_Subtask - -gUnk_080FCA08:: @ 080FCA08 - .4byte sub_08051E84 - .4byte sub_08051F04 - .4byte sub_08051F40 - -gUnk_080FCA14:: @ 080FCA14 - .4byte sub_08053590 - .4byte sub_08053FB4 - .4byte sub_08053C90 - -gUnk_080FCA20:: @ 080FCA20 - .incbin "data_080FC8A4/gUnk_080FCA20.bin" - -gUnk_080FCA70:: @ 080FCA70 - .4byte sub_080520D8 - .4byte sub_0805212C - .4byte sub_080521A0 - .4byte sub_080522F4 - .4byte nullsub_107 diff --git a/data/data_08128BF4.s b/data/data_08128BF4.s index c9612a8d..90f0801d 100644 --- a/data/data_08128BF4.s +++ b/data/data_08128BF4.s @@ -142,13 +142,13 @@ gUnk_0812901C:: @ 0812901C .4byte Subtask_FadeOut .4byte Subtask_Die -gUnk_08129030:: @ 08129030 +gSubtasks:: @ 08129030 .4byte Subtask_Exit .4byte Subtask_PauseMenu .4byte Subtask_Exit .4byte Subtask_MapHint .4byte Subtask_KinstoneMenu - .4byte Subtask_ChuchuCutscene + .4byte Subtask_AuxCutscene .4byte Subtask_PortalCutscene .4byte Subtask_FigurineMenu .4byte Subtask_WorldEvent diff --git a/data/map/entity_headers.s b/data/map/entity_headers.s index 450c0c9b..6b198ba9 100644 --- a/data/map/entity_headers.s +++ b/data/map/entity_headers.s @@ -1061,7 +1061,7 @@ Area_MinishRafters:: @ 080D4F20 .4byte Room_MinishRafters_Bakery Area_EzloCutscene:: @ 080D4F30 - .4byte Area_EzloCutscene_Main + .4byte Area_EzloAuxCutscene_Main Area_WindTribeTower:: @ 080D4F34 .4byte Room_WindTribeTower_Entrance @@ -3516,10 +3516,10 @@ Room_GoronCave_Main:: @ 080D8EB0 .4byte sub_unk3_GoronCave_Main .4byte sub_StateChange_GoronCave_Main -Entities_EzloCutscene_Main_0:: @ 080D8ED0 +Entities_EzloAuxCutscene_Main_0:: @ 080D8ED0 entity_list_end -Entities_EzloCutscene_Main_1:: @ 080D8EE0 +Entities_EzloAuxCutscene_Main_1:: @ 080D8EE0 object_raw subtype=0x4d, x=0x34, y=0x28, collision=1, paramA=0x3f object_raw subtype=0x4d, x=0x28, y=0x48, collision=1, paramA=0xc object_raw subtype=0x4d, x=0x80, y=0x24, collision=1, paramA=0x42 @@ -3531,21 +3531,21 @@ Entities_EzloCutscene_Main_1:: @ 080D8EE0 object_raw subtype=0x4d, x=0xb8, y=0xd8, collision=1, paramA=0x41 entity_list_end -Enemies_EzloCutscene_Main:: @ 080D8F80 +Enemies_EzloAuxCutscene_Main:: @ 080D8F80 entity_list_end -TileEntities_EzloCutscene_Main:: @ 080D8F90 +TileEntities_EzloAuxCutscene_Main:: @ 080D8F90 tile_entity_list_end -Area_EzloCutscene_Main:: @ 080D8F98 - .4byte Entities_EzloCutscene_Main_0 - .4byte Entities_EzloCutscene_Main_1 - .4byte Enemies_EzloCutscene_Main - .4byte TileEntities_EzloCutscene_Main +Area_EzloAuxCutscene_Main:: @ 080D8F98 + .4byte Entities_EzloAuxCutscene_Main_0 + .4byte Entities_EzloAuxCutscene_Main_1 + .4byte Enemies_EzloAuxCutscene_Main + .4byte TileEntities_EzloAuxCutscene_Main .4byte 0x00000000 .4byte 0x00000000 - .4byte sub_unk3_EzloCutscene_Main - .4byte sub_StateChange_EzloCutscene_Main + .4byte sub_unk3_EzloAuxCutscene_Main + .4byte sub_StateChange_EzloAuxCutscene_Main Entities_RoyalValley_Main_0:: @ 080D8FB8 manager subtype=0xf, paramA=0x7 diff --git a/include/area.h b/include/area.h index 3f1c0421..b0869bb6 100644 --- a/include/area.h +++ b/include/area.h @@ -43,8 +43,8 @@ typedef struct { RoomResInfo roomResInfos[MAX_ROOMS]; RoomResInfo currentRoomInfo; RoomResInfo* pCurrentRoomInfo; - u32 musicIndex; - u32 pMusicIndex; + u32 bgm; + u32 queued_bgm; u8 filler5[0x20]; void* transitionManager; void (*onEnter)(); diff --git a/include/functions.h b/include/functions.h index a3716730..c71445d6 100644 --- a/include/functions.h +++ b/include/functions.h @@ -100,7 +100,7 @@ extern void sub_0804ED18(); extern void sub_080AF2E4(void); extern void sub_0804F578(void); extern void sub_08059994(void); -extern void sub_080ADA14(u32, u32); // trampoline to sub_080B27F4 +extern void DrawDirect(u32, u32); // trampoline to sub_080B27F4 extern void sub_0801E1B8(u32, u32); extern void sub_080A3B74(void); extern void sub_080A4054(void); diff --git a/include/game.h b/include/game.h index 5155376b..e42f5b91 100644 --- a/include/game.h +++ b/include/game.h @@ -4,60 +4,50 @@ #include "global.h" #include "area.h" -enum { - GAMETASK_TRANSITION, - GAMETASK_INIT, - GAMETASK_MAIN, - GAMETASK_EXIT, -}; - -enum { - GAMEMAIN_INITROOM, - GAMEMAIN_CHANGEROOM, - GAMEMAIN_UPDATE, - GAMEMAIN_CHANGEAREA, - GAMEMAIN_MINISHPORTAL, - GAMEMAIN_BARRELUPDATE, - GAMEMAIN_RESERVED, - GAMEMAIN_SUBTASK, -}; - -void ChangeLightLevel(s32); +void ChangeLightLevel(s32 level); void SetPopupState(u32 type, u32 choice_idx); -bool32 CheckIsOverworld(void); -bool32 sub_08052638(u32 r0); +bool32 CheckAreaOverworld(u32 area); +bool32 AreaIsOverworld(void); +bool32 AreaIsDungeon(void); +bool32 AreaHasEnemies(void); +bool32 AreaHasNoEnemies(void); +bool32 AreaHasMap(void); +bool32 AreaHasKeys(void); + #ifndef EU -u32 sub_08052654(void); -#endif -u32 CheckIsDungeon(void); -u32 CheckIsInteriorWithEnemies(void); -u32 CheckIsInteriorNoEnemies(void); -u32 CheckHasMap(void); +// This function was introduced to allow warping from indoor areas (palace of winds). +u32 AreaAllowsWarp(void); -u32 ItemIsSword(u32 item); - -void sub_080526F8(s32 a1); -u32 sub_08052724(void); -u32 HasDungeonMap(void); -u32 HasDungeonCompass(void); -u32 HasDungeonBigKey(void); -u32 HasDungeonSmallKey(void); - -void sub_080527FC(u32 a1, u32 a2); -#ifndef EU +// related to a music bug? void sub_08052878(void); #endif -void RoomExitCallback(void); +void sub_080526F8(s32 a1); +bool32 HasDungeonMap(void); +bool32 HasDungeonCompass(void); +bool32 HasDungeonBigKey(void); +bool32 HasDungeonSmallKey(void); + +bool32 ItemIsSword(u32 item); +bool32 ItemIsShield(u32 item); +u32 GetBottleContaining(u32 item); + +void LoadGfxGroups(void); +void LoadCutsceneRoom(u32 room, u32 area); +void InitRoom(void); void InitParachuteRoom(void); -u32 sub_08052B24(void); + +void RegisterTransitionManager(void* mgr, void (*onEnter)(void), void (*onExit)(void)); +void RoomExitCallback(void); + +void RestoreGameTask(u32 a1); + +bool32 CanDispEzloMessage(void); void DisplayEzloMessage(void); -void sub_08052CA4(u32 area, u32 room, u32 x, u32 y); -void sub_08052CD0(u32 area, u32 room, u32 x, u32 y); - -void InitRoom(void); +void SetWorldMapPos(u32 area, u32 room, u32 x, u32 y); +void SetDungeonMapPos(u32 area, u32 room, u32 x, u32 y); /** * @brief Get bank offset for area @@ -66,14 +56,59 @@ u32 GetFlagBankOffset(u32 idx); RoomResInfo* GetCurrentRoomInfo(void); void sub_08052EA0(void); -void sub_08052FD8(u32 room, u32 area); void sub_08053250(void); -void LoadGfxGroups(void); void sub_080533CC(void); + void sub_08053494(void); void sub_080534AC(void); -void sub_08053500(void); +void InitBiggoronTimer(void); -u32 GetBottleContaining(u32); +enum { + GAMETASK_TRANSITION, /* transition from fileselect task */ + GAMETASK_INIT, + GAMETASK_MAIN, + GAMETASK_EXIT, /* gameover task or reset */ +}; + +enum { + GAMEMAIN_INITROOM, + GAMEMAIN_CHANGEROOM, + GAMEMAIN_UPDATE, + GAMEMAIN_CHANGEAREA, + GAMEMAIN_MINISHPORTAL, /* moments after viewing portal cutscene */ + GAMEMAIN_BARRELUPDATE, /* barrel in deepwood shrine */ + GAMEMAIN_RESERVED, + GAMEMAIN_SUBTASK, +}; + +/** + * @brief Subtasks override the game task for short periods + */ +enum { + SUBTASK_EXIT, + SUBTASK_PAUSEMENU, + SUBTASK_EXIT2, + SUBTASK_MAPHINT, + SUBTASK_KINSTONEMENU, + SUBTASK_AUXCUTSCENE, /* cutscene without presence of player */ + SUBTASK_PORTALCUTSCENE, /* player "falling" down portal cutscene */ + SUBTASK_FIGURINEMENU, + SUBTASK_WORLDEVENT, + SUBTASK_FASTTRAVEL, + SUBTASK_LOCALMAPHINT, +}; + +typedef void(Subtask)(void); +Subtask Subtask_Exit; +Subtask Subtask_PauseMenu; +Subtask Subtask_Exit; +Subtask Subtask_MapHint; +Subtask Subtask_KinstoneMenu; +Subtask Subtask_AuxCutscene; +Subtask Subtask_PortalCutscene; +Subtask Subtask_FigurineMenu; +Subtask Subtask_WorldEvent; +Subtask Subtask_FastTravel; +Subtask Subtask_LocalMapHint; #endif // GAME_H diff --git a/include/player.h b/include/player.h index bf9e151e..9160123a 100644 --- a/include/player.h +++ b/include/player.h @@ -280,7 +280,7 @@ extern u16 gWalletSizes[]; extern PlayerState gPlayerState; extern Entity gPlayerEntity; -u32 CheckPlayerActivity(void); +u32 CheckPlayerInactive(void); void SetPlayerControl(PlayerControlMode mode); void ResetPlayer(void); void ResetPlayerVelocity(void); diff --git a/include/save.h b/include/save.h index 2e8015e1..bd4f09a5 100644 --- a/include/save.h +++ b/include/save.h @@ -51,7 +51,7 @@ typedef struct { /*0x25C*/ u8 flags[0x200]; /*0x45C*/ u8 unk45C[0x10]; /*0x46C*/ u8 unk46C[0x20]; - /*0x48C*/ u32 unk48C[7]; + /*0x48C*/ u32 timers[7]; /*0x4A8*/ u32 demo_timer; /*0x4AC*/ u8 filler4ac[0x8]; } SaveFile; diff --git a/src/affine.c b/src/affine.c index 9656d7f3..87bf319e 100644 --- a/src/affine.c +++ b/src/affine.c @@ -66,7 +66,7 @@ void sub_080ADA04(OAMCommand* cmd, void* dst) { fn(cmd, dst); } -void sub_080ADA14(u32 a1, u32 a2) { +void DrawDirect(u32 a1, u32 a2) { void (*fn)(OAMCommand*, u32, u32) = gUnk_03006580; fn(&gOamCmd, a1, a2); } diff --git a/src/code_0805436C.c b/src/code_0805436C.c index a1ef817c..eb4c77d2 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -94,7 +94,7 @@ u32 SetBottleContents(u32 itemID, u32 bottleIndex) { return bottleIndex; } -u32 ItemIsSword(u32 item) { +bool32 ItemIsSword(u32 item) { switch (item) { case ITEM_SMITH_SWORD: case ITEM_GREEN_SWORD: @@ -107,7 +107,7 @@ u32 ItemIsSword(u32 item) { } } -u32 ItemIsShield(u32 id) { +bool32 ItemIsShield(u32 id) { switch (id) { case 13: case 14: @@ -117,7 +117,7 @@ u32 ItemIsShield(u32 id) { } } -u32 ItemIsBottle(u32 id) { +bool32 ItemIsBottle(u32 id) { switch (id) { case 28: case 29: diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index 008869fd..2770f4fa 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -148,7 +148,7 @@ void sub_080240B8(Entity* this) { } UpdateSpriteForCollisionLayer(this); - if (CheckIsDungeon()) + if (AreaIsDungeon()) this->spriteOrientation.flipY = 1; this->field_0x80.HALF.HI = Random() & 0x40; @@ -534,7 +534,7 @@ void sub_08024940(Entity* this) { this->z.HALF.HI += 2; } - if (this->type2 != 0 || CheckIsDungeon()) { + if (this->type2 != 0 || AreaIsDungeon()) { if (!sub_08049FA0(this)) { this->direction = sub_08049EE4(this); sub_080249F4(this); diff --git a/src/enemy/vaatiRebornEnemy.c b/src/enemy/vaatiRebornEnemy.c index 4f1770f3..f4732e17 100644 --- a/src/enemy/vaatiRebornEnemy.c +++ b/src/enemy/vaatiRebornEnemy.c @@ -653,7 +653,7 @@ void VaatiRebornEnemyType1PreAction(Entity* this) { parent->direction = -1; this->actionDelay = 0; SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; return; } this->actionDelay = 1; diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index baafff90..6a3c1425 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -992,8 +992,8 @@ void sub_0804235C(Entity* this) { void VaatiWrathType0PreAction(Entity* this) { int temp; if ((gRoomTransition.field_0x38 & 2) == 0) { - if (gSave.unk48C[3] != 0) { - gSave.unk48C[3]--; + if (gSave.timers[3] != 0) { + gSave.timers[3]--; } else { temp = gPlayerState.framestate_last; if (temp < 2) { diff --git a/src/entity.c b/src/entity.c index a7c1b617..8c75fa94 100644 --- a/src/entity.c +++ b/src/entity.c @@ -458,7 +458,7 @@ void sub_0805E98C(void) { } } -void QueueEntityDeletion(void) { +void RecycleEntities(void) { Entity* i; LinkedList* list; diff --git a/src/fileselect.c b/src/fileselect.c index fed40d47..8fe1f7a3 100644 --- a/src/fileselect.c +++ b/src/fileselect.c @@ -481,36 +481,36 @@ void sub_08050A64(u32 idx) { gOamCmd.x = 0xA2; gOamCmd.y = 0x36; #ifdef EU - sub_080ADA14(0x144, 0x24); + DrawDirect(0x144, 0x24); #else - sub_080ADA14(0x145, 0x24); + DrawDirect(0x145, 0x24); #endif } if (GetInventoryValue(0x41)) { gOamCmd.x = 0x96; gOamCmd.y = 0x3D; #ifdef EU - sub_080ADA14(0x144, 0x22); + DrawDirect(0x144, 0x22); #else - sub_080ADA14(0x145, 0x22); + DrawDirect(0x145, 0x22); #endif } if (GetInventoryValue(0x42)) { gOamCmd.x = 0xAE; gOamCmd.y = 0x3D; #ifdef EU - sub_080ADA14(0x144, 0x23); + DrawDirect(0x144, 0x23); #else - sub_080ADA14(0x145, 0x23); + DrawDirect(0x145, 0x23); #endif } if (GetInventoryValue(0x43)) { gOamCmd.x = 0xA2; gOamCmd.y = 0x44; #ifdef EU - sub_080ADA14(0x144, 0x21); + DrawDirect(0x144, 0x21); #else - sub_080ADA14(0x145, 0x21); + DrawDirect(0x145, 0x21); #endif } } diff --git a/src/game.c b/src/game.c index cd3aab0f..bde1233c 100644 --- a/src/game.c +++ b/src/game.c @@ -17,12 +17,52 @@ #include "game.h" #include "item.h" +// Game task + +typedef void(GameState)(void); +typedef void(GameMainState)(void); + +static GameState GameTask_Transition; +static GameState GameTask_Init; +static GameState GameTask_Exit; +static GameState GameTask_Main; + +static GameMainState GameMain_InitRoom; +static GameMainState GameMain_ChangeRoom; +static GameMainState GameMain_Update; +static GameMainState GameMain_ChangeArea; +GameMainState GameMain_MinishPortal; +static GameMainState GameMain_BarrelUpdate; +/*static GameMainState 00000000;*/ +GameMainState GameMain_Subtask; + +// Cutscene subtask + +typedef void(AuxCutsceneState)(void); +typedef void(CutsceneMainState)(void); + +static AuxCutsceneState AuxCutscene_Init; +static AuxCutsceneState AuxCutscene_Main; +static AuxCutsceneState AuxCutscene_Exit; + +CutsceneMainState CutsceneMain_Init; +CutsceneMainState CutsceneMain_Update; +CutsceneMainState CutsceneMain_Exit; + +// Game Over task + +typedef void(GameOverState)(void); + +static GameOverState GameOver_Init; +static GameOverState GameOver_FadeIn; +static GameOverState GameOver_TextMove; +static GameOverState GameOver_Update; +static GameOverState GameOver_Exit; + extern u8 gUpdateVisibleTiles; -extern u8 gUnk_080FCA84[]; -extern u8 gUnk_080FCAC8[]; +extern u16 gUnk_020178E0[]; extern u8 gUnk_02024090[]; -extern u16 gUnk_080FCAD6[]; extern void** gAreaTilesets[]; extern void** gAreaRoomMaps[]; @@ -31,15 +71,6 @@ extern void* gUnk_080B755C[]; extern void** gExitLists[]; extern void** gAreaTable[]; -extern u8 gUnk_080FCAF8[]; -extern u16 gUnk_020178E0[]; - -extern void (*gUnk_080FC9D8[])(); -extern void (*gUnk_080FC9E8[])(); -extern void (*gUnk_080FCA08[])(); -extern void (*gUnk_080FCA14[])(); -extern void (*gUnk_080FCA70[])(void); - void FinalizeSave(void); void ClearArmosData(void); void ClearRoomMemory(void); @@ -55,19 +86,16 @@ void UpdateDoorTransition(void); u32 IsEnterPortal(void); void UpdateCarriedObject(void); void DrawUI(); -u32 CheckPlayerActivity(); +u32 CheckPlayerInactive(); void CollisionMain(); void sub_0805BB74(); void CreateZeldaFollower(void); void LoadRoomGfx(); -void QueueEntityDeletion(); +void RecycleEntities(); void sub_0804AF90(); void CallRoomProp6(); -void LoadRoomBgm(); void UpdateScroll(); void UpdateBgAnim(); -void sub_08052010(); -void sub_080520C4(); void CleanUpGFXSlots(); void sub_080ADE24(); void InitUI(u32); @@ -85,6 +113,8 @@ void sub_0807C740(void); void SetBGDefaults(void); void LoadItemGfx(void); +static void LoadRoomBgm(); +static void sub_08052010(void); static void ResetTmpFlags(void); static void InitializeEntities(void); static void CheckAreaDiscovery(void); @@ -97,11 +127,10 @@ static void sub_0805340C(void); static void sub_08051D98(void); static void sub_08051DCC(void); static u32 CheckGameOver(void); -static u32 HandleRoomExit(void); -static void sub_080531F8(void); +static u32 CheckRoomExit(void); +static void UpdatePlayerRoomStatus(void); static void sub_0805329C(void); static void InitializePlayer(void); -/* static */ void sub_08051F04(void); /* static */ void sub_08051F9C(u32 a1, u32 a2, u32 a3, u32 a4); static void DrawGameOverText(void); static u32 StairsAreValid(); @@ -124,16 +153,6 @@ typedef struct { } struct_08127F94; extern struct_08127F94 gUnk_08127F94[]; -typedef struct { - u8 _0; - u8 _1; - u8 _2; - u8 _3; - u16 _4; - u16 _6; -} struct_080FCA20; -extern struct_080FCA20 gUnk_080FCA20[]; - typedef struct { u16* dest; void* gfx_dest; @@ -161,9 +180,26 @@ typedef struct { extern void CreateDialogBox(); +typedef struct { + u8 area; + u8 room; + u8 _2; + u8 _3; + u16 x; + u16 y; +} CutsceneData; +static const CutsceneData sCutsceneData[]; + void GameTask(void) { + static GameState* const sStates[] = { + GameTask_Transition, + GameTask_Init, + GameTask_Main, + GameTask_Exit, + }; + gRoomTransition.frameCount++; - gUnk_080FC9D8[gMain.state](); + sStates[gMain.state](); #ifdef DEMO_USA if (gSave.demo_timer != 0) { if (--gSave.demo_timer == 0) { @@ -174,7 +210,7 @@ void GameTask(void) { #endif } -void GameTask_Transition(void) { +static void GameTask_Transition(void) { // wait for file select to fade out if (gFadeControl.active) return; @@ -190,7 +226,7 @@ void GameTask_Transition(void) { FinalizeSave(); // spawn in with saved status - MemCopy(&gSave.saved_status, &gRoomTransition.player_status, sizeof (gRoomTransition.player_status)); + MemCopy(&gSave.saved_status, &gRoomTransition.player_status, sizeof(gRoomTransition.player_status)); gRoomTransition.type = TRANSITION_FADE_BLACK_SLOW; ResetTmpFlags(); @@ -198,7 +234,7 @@ void GameTask_Transition(void) { gMain.substate = 0; } -void GameTask_Init(void) { +static void GameTask_Init(void) { DispReset(1); gFadeControl.mask = 0xffffffff; MemClear(&gOAMControls, 0xB74); @@ -216,13 +252,23 @@ void GameTask_Init(void) { gMain.state = GAMETASK_MAIN; } -void GameTask_Main(void) { - gUnk_080FC9E8[gMain.substate](); +static void GameTask_Main(void) { + static GameMainState* const sStates[] = { + GameMain_InitRoom, + GameMain_ChangeRoom, + GameMain_Update, + GameMain_ChangeArea, + GameMain_MinishPortal, + GameMain_BarrelUpdate, + 0, + GameMain_Subtask, + }; + sStates[gMain.substate](); } -void GameMain_InitRoom(void) { +static void GameMain_InitRoom(void) { SetInitializationPriority(); - gScreen.lcd.displayControl = 0x1740; + gScreen.lcd.displayControl = DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP; gMain.substate = GAMEMAIN_CHANGEROOM; gRoomTransition.transitioningOut = 0; gRoomTransition.field_0x4[0] = 0; @@ -236,7 +282,7 @@ void GameMain_InitRoom(void) { #endif } -void GameMain_ChangeRoom(void) { +static void GameMain_ChangeRoom(void) { UpdateEntities(); if (!UpdateLightLevel()) UpdateScroll(); @@ -254,9 +300,9 @@ void GameMain_ChangeRoom(void) { return; UpdateFakeScroll(); - if (gArea.musicIndex != gArea.pMusicIndex) { - gArea.musicIndex = gArea.pMusicIndex; - SoundReq(gArea.pMusicIndex | SONG_PLAY_VOL_RESET); + if (gArea.bgm != gArea.queued_bgm) { + gArea.bgm = gArea.queued_bgm; + SoundReq(gArea.queued_bgm | SONG_PLAY_VOL_RESET); } DeleteSleepingEntities(); @@ -298,13 +344,13 @@ void GameMain_ChangeRoom(void) { } } -void GameMain_Update(void) { - if (CheckPlayerActivity() || IsEnterPortal()) { +static void GameMain_Update(void) { + if (CheckPlayerInactive() || IsEnterPortal()) { return; } sub_0805340C(); - // leave early if player is entering a portal + // leave early if player is now entering a portal if (gMain.substate != GAMEMAIN_UPDATE) { return; } @@ -325,7 +371,7 @@ void GameMain_Update(void) { DrawOAMCmd(); UpdateCarriedObject(); DrawEntities(); - HandleRoomExit(); + CheckRoomExit(); UpdatePlayerMapCoords(); CheckGameOver(); sub_080185F8(); @@ -346,8 +392,8 @@ void GameMain_Update(void) { } } -void GameMain_BarrelUpdate(void) { - if (CheckPlayerActivity()) +static void GameMain_BarrelUpdate(void) { + if (CheckPlayerInactive()) return; UpdateEntities(); @@ -358,14 +404,14 @@ void GameMain_BarrelUpdate(void) { DrawOAMCmd(); UpdateCarriedObject(); DrawEntities(); - HandleRoomExit(); + CheckRoomExit(); CheckGameOver(); CopyOAM(); if (!gFadeControl.active) ResetSystemPriority(); } -void GameMain_ChangeArea(void) { +static void GameMain_ChangeArea(void) { FlushSprites(); DrawOAMCmd(); DrawEntities(); @@ -379,7 +425,7 @@ void GameMain_ChangeArea(void) { } } -void sub_08051D2C(void) { +static void GameTask_Exit(void) { #ifdef DEMO_USA if (!gFadeControl.active) DoSoftReset(); @@ -405,15 +451,15 @@ static void InitializeEntities(void) { sub_0805329C(); UpdateScrollVram(); sub_0805BB74(0xffffffff); - sub_080531F8(); + UpdatePlayerRoomStatus(); } -void sub_08051D98(void) { +static void sub_08051D98(void) { sub_08052EA0(); gRoomVars.field_0x0 = 1; // remove old entities, unless persistent - QueueEntityDeletion(); + RecycleEntities(); sub_0804AF90(); CallRoomProp6(); @@ -424,21 +470,21 @@ void sub_08051D98(void) { SetPlayerControl(1); } -void sub_08051DCC(void) { +static void sub_08051DCC(void) { gRoomControls.area = gRoomTransition.player_status.area_next; gRoomControls.room = gRoomTransition.player_status.room_next; RoomExitCallback(); gRoomTransition.type = TRANSITION_3; InitRoom(); sub_08052EA0(); - QueueEntityDeletion(); + RecycleEntities(); sub_0804AF90(); CallRoomProp6(); LoadRoomBgm(); } -void UpdateWindcrests() { - if (CheckIsOverworld()) { +static void UpdateWindcrests(void) { + if (AreaIsOverworld()) { struct_08127F94* i; u32 hi_x, hi_y; s32 x, y; @@ -462,31 +508,43 @@ void UpdateWindcrests() { } } -void Subtask_ChuchuCutscene() { - gUnk_080FCA08[gMenu.menuType](); +void Subtask_AuxCutscene(void) { + static AuxCutsceneState* const sStates[] = { + AuxCutscene_Init, + AuxCutscene_Main, + AuxCutscene_Exit, + }; + + sStates[gMenu.menuType](); } -void sub_08051E84() { - struct_080FCA20* p = &gUnk_080FCA20[gUnk_02032EC0.field_0x3]; - gRoomControls.area = p->_0; - gRoomControls.room = p->_1; +static void AuxCutscene_Init(void) { + const CutsceneData* p = &sCutsceneData[gUnk_02032EC0.field_0x3]; + gRoomControls.area = p->area; + gRoomControls.room = p->room; LoadGfxGroups(); gArea.localFlagOffset = GetFlagBankOffset(gRoomControls.area); - SetCurrentRoomPropertyList(p->_0, p->_1); - sub_08052FD8(p->_0, p->_1); - gRoomControls.scroll_x = gRoomControls.origin_x + p->_4; - gRoomControls.scroll_y = gRoomControls.origin_y + p->_6; + SetCurrentRoomPropertyList(p->area, p->room); + LoadCutsceneRoom(p->area, p->room); + gRoomControls.scroll_x = gRoomControls.origin_x + p->x; + gRoomControls.scroll_y = gRoomControls.origin_y + p->y; gMenu.field_0x0 = p->_2; gMenu.field_0x3 = p->_3 & 0xf; gMenu.field_0xc = (void*)p; gMenu.menuType++; gMenu.overlayType = 0; gMenu.transitionTimer = 300; - sub_08051F04(); + AuxCutscene_Main(); // init } -void sub_08051F04(void) { - gUnk_080FCA14[gMenu.field_0x0](); +static void AuxCutscene_Main(void) { + static CutsceneMainState* const sStates[] = { + CutsceneMain_Init, + CutsceneMain_Update, + CutsceneMain_Exit, + }; + + sStates[gMenu.field_0x0](); FlushSprites(); UpdateEntities(); DrawEntities(); @@ -497,8 +555,21 @@ void sub_08051F04(void) { UpdateScrollVram(); } -void sub_08051F40(u32 a1, u32 a2, u32 a3, u32 a4) { - u32 flag = gUnk_080FCA20[gUnk_02032EC0.field_0x3]._3; +static const CutsceneData sCutsceneData[] = { + { AREA_MINISH_WOODS, 0, 0, 0, 336, 528 }, + { AREA_HYRULE_FIELD, 1, 1, 0, 472, 312 }, + { AREA_HYRULE_CASTLE, 2, 1, 1, 16, 16 }, + { AREA_SANCTUARY, 2, 1, 2, 0, 0 }, + { AREA_EZLO_CUTSCENE, 0, 1, 3, 0, 0 }, + { AREA_HOUSE_INTERIORS_2, 16, 1, 4, 0, 0 }, + { AREA_DARK_HYRULE_CASTLE_OUTSIDE, 0, 1, 5, 0, 40 }, + { AREA_FORTRESS_OF_WINDS, 28, 2, 0, 0, 0 }, + { AREA_FORTRESS_OF_WINDS, 29, 2, 1, 0, 0 }, + { AREA_DARK_HYRULE_CASTLE, 14, 2, 2, 16, 16 }, +}; + +static void AuxCutscene_Exit(void) { + u32 flag = sCutsceneData[gUnk_02032EC0.field_0x3]._3; if (flag & 0xF0) { MenuFadeIn(2, flag >> 4); } else { @@ -510,12 +581,12 @@ void sub_08051F40(u32 a1, u32 a2, u32 a3, u32 a4) { void sub_08051F78(u32 a1, u32 a2, u32 a3, u32 a4) { u32 idx = gUnk_02032EC0.field_0x3; - struct_080FCA20* p = &gUnk_080FCA20[idx]; - sub_08051F9C(p->_0, p->_1, p->_4, p->_6); + const CutsceneData* p = &sCutsceneData[idx]; + sub_08051F9C(p->area, p->room, p->x, p->y); } void sub_08051F9C(u32 a1, u32 a2, u32 a3, u32 a4) { - u32 tmp = gScreen.lcd.displayControl & 0x6000; + u32 tmp = gScreen.lcd.displayControl & (DISPCNT_WIN0_ON | DISPCNT_WIN1_ON); sub_08052FF4(a1, a2); gRoomControls.scroll_x = gRoomControls.origin_x + a3; gRoomControls.scroll_y = gRoomControls.origin_y + a4; @@ -525,15 +596,15 @@ void sub_08051F9C(u32 a1, u32 a2, u32 a3, u32 a4) { gScreen.lcd.displayControl |= tmp; } -void sub_08051FF0() { +void sub_08051FF0(void) { sub_0804B0B0(gMenu.field_0xc[0], gMenu.field_0xc[1]); } -void sub_08052004() { +void sub_08052004(void) { gMenu.menuType = 2; } -void sub_08052010() { +static void sub_08052010(void) { InitSoundPlayingInfo(); MessageInitialize(); DispReset(1); @@ -545,15 +616,19 @@ void sub_08052010() { LoadGfxGroup(4); MemClear((void*)0x06000000, 0x20); MemClear(&gMenu, 0x30); - gScreen.lcd.displayControl |= 0x1000; - gScreen.bg1.control = 0x1C01; - gScreen.bg2.control = 0x1D05; + gScreen.lcd.displayControl |= DISPCNT_OBJ_ON; + gScreen.bg1.control = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(28) | BGCNT_CHARBASE(0); + gScreen.bg2.control = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(29) | BGCNT_CHARBASE(1); gScreen.bg1.updated = 1; gScreen.bg2.updated = 1; } -void GameOverTask() { - gUnk_080FCA70[gMain.state](); +void GameOverTask(void) { + static GameOverState* const sStates[] = { + GameOver_Init, GameOver_FadeIn, GameOver_TextMove, GameOver_Update, GameOver_Exit, + }; + + sStates[gMain.state](); if (gMain.state != 0) { FlushSprites(); DrawGameOverText(); @@ -561,12 +636,12 @@ void GameOverTask() { } } -void sub_080520C4(u32 idx) { +static void switch_state(u32 idx) { gMain.state = idx; sub_080A7114(0); } -void sub_080520D8(void) { +static void GameOver_Init(void) { if (gFadeControl.active) return; sub_08052010(); @@ -577,10 +652,10 @@ void sub_080520D8(void) { SoundReq(BGM_GAMEOVER); sub_080500F4(4); gFadeControl.mask = 0xFFFF0001; - sub_080520C4(1); + switch_state(1); } -void sub_0805212C(void) { +static void GameOver_FadeIn(void) { if (gFadeControl.active) return; @@ -590,7 +665,7 @@ void sub_0805212C(void) { } else { gMenu.transitionTimer--; if (gMenu.transitionTimer == 0) { - sub_080520C4(2); + switch_state(2); #if defined(DEMO_USA) || defined(DEMO_JP) SoundReq(SONG_VOL_FADE_OUT); DoFade(7, 4); @@ -607,14 +682,13 @@ void sub_0805212C(void) { } } +static void GameOver_TextMove(void) { #if defined(DEMO_USA) || defined(DEMO_JP) -void sub_080521A0(void) { if (gFadeControl.active == 0) { DoSoftReset(); } } #else -void sub_080521A0(void) { s32 temp3; u32 temp2; @@ -685,13 +759,13 @@ void sub_080521A0(void) { default: gScreen.lcd.displayControl &= ~DISPCNT_BG1_ON; sub_08050384(); - sub_080520C4(3); + switch_state(3); return; } } #endif -void sub_080522F4(void) { +static void GameOver_Update(void) { switch (gMenu.menuType) { case 0x0: gMenu.transitionTimer = 0x1e; @@ -743,7 +817,9 @@ void sub_080522F4(void) { } } -void nullsub_107(void) { +// Unused, since task is set above +// if we got here, it would be a softlock +static void GameOver_Exit(void) { } static void DrawGameOverText(void) { @@ -760,9 +836,9 @@ static void DrawGameOverText(void) { for (i = 0; i < 8; ++i) { gOamCmd.x = sOffsets[i]; #ifdef EU - sub_080ADA14(0x1fc, i); + DrawDirect(0x1fc, i); #else - sub_080ADA14(0x1fd, i); + DrawDirect(0x1fd, i); #endif } } @@ -810,7 +886,7 @@ void SetPopupState(u32 type, u32 choice_idx) { gScreen.bg1.updated = fakematch; } -void InitializePlayer(void) { +static void InitializePlayer(void) { static const u8 sPlayerSpawnStates[] = { [PL_SPAWN_DEFAULT] = PLAYER_INIT, [PL_SPAWN_MINISH] = PLAYER_MINISH, @@ -881,7 +957,7 @@ void InitializePlayer(void) { RegisterPlayerHitbox(); } -bool32 CheckIsOverworld(void) { +bool32 AreaIsOverworld(void) { #ifdef EU return gArea.areaMetadata == 0x01; #else @@ -889,33 +965,33 @@ bool32 CheckIsOverworld(void) { #endif } -bool32 sub_08052638(u32 r0) { +bool32 CheckAreaOverworld(u32 area) { #if EU - return gAreaMetadata[r0].flags == 0x01; + return gAreaMetadata[area].flags == 0x01; #else - return gAreaMetadata[r0].flags == 0x81; + return gAreaMetadata[area].flags == 0x81; #endif } #ifndef EU -u32 sub_08052654(void) { +bool32 AreaAllowsWarp(void) { return (gArea.areaMetadata >> 7) & 1; } #endif -u32 CheckIsDungeon(void) { +bool32 AreaIsDungeon(void) { return (gArea.areaMetadata >> 2) & 1; } -u32 CheckIsInteriorWithEnemies(void) { +bool32 AreaHasEnemies(void) { return (gArea.areaMetadata >> 4) & 1; } -u32 CheckIsInteriorNoEnemies(void) { +bool32 AreaHasNoEnemies(void) { return (gArea.areaMetadata >> 6) & 1; } -u32 CheckHasMap(void) { +bool32 AreaHasMap(void) { return (gArea.areaMetadata >> 3) & 1; } @@ -951,7 +1027,7 @@ void ModRupees(s32 delta) { } void sub_080526F8(s32 a1) { - if (sub_08052724()) { + if (AreaHasKeys()) { u8* p = &gSave.unk45C[gArea.dungeon_idx]; if (*p + a1 < 0) *p = 0; @@ -960,41 +1036,41 @@ void sub_080526F8(s32 a1) { } } -u32 sub_08052724(void) { +bool32 AreaHasKeys(void) { return (gArea.areaMetadata >> 1) & 1; } -u32 HasDungeonMap(void) { +bool32 HasDungeonMap(void) { u32 tmp; - if (sub_08052724()) + if (AreaHasKeys()) tmp = gSave.unk45C[gArea.dungeon_idx]; return tmp ? 1 : 0; } -u32 HasDungeonCompass(void) { +bool32 HasDungeonCompass(void) { u32 tmp; - if (sub_08052724()) + if (AreaHasKeys()) tmp = gSave.unk46C[gArea.dungeon_idx] & 4; return tmp ? 1 : 0; } -u32 HasDungeonBigKey(void) { - if (!sub_08052724()) +bool32 HasDungeonBigKey(void) { + if (!AreaHasKeys()) return 0; return (gSave.unk46C[gArea.dungeon_idx] >> 1) & 1; } -u32 HasDungeonSmallKey(void) { +bool32 HasDungeonSmallKey(void) { u32 tmp; - if (!sub_08052724()) + if (!AreaHasKeys()) return 0; return gSave.unk46C[gArea.dungeon_idx] & 1; } -void sub_080527FC(u32 a1, u32 a2) { +void RestoreGameTask(u32 a1) { LoadGfxGroups(); #ifndef EU CleanUpGFXSlots(); @@ -1003,28 +1079,28 @@ void sub_080527FC(u32 a1, u32 a2) { InitUI(1); sub_0801AE44(a1); MemCopy(gUnk_02024090, gPaletteBuffer, 1024); - gUsedPalettes = -1; + gUsedPalettes = 0xffffffff; } -void LoadRoomBgm(void) { - gArea.pMusicIndex = gAreaMetadata[gRoomControls.area]._3; +static void LoadRoomBgm(void) { + gArea.queued_bgm = gAreaMetadata[gRoomControls.area]._3; if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START)) { - gArea.pMusicIndex = BGM_FIGHT_THEME2; + gArea.queued_bgm = BGM_FIGHT_THEME2; } } #ifndef EU void sub_08052878(void) { - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; SoundReq(SONG_STOP_ALL); } static void sub_0805289C(void) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } #endif -u32 CheckGameOver(void) { +static u32 CheckGameOver(void) { if (gRoomTransition.field_0x4[1]) { InitFade(); gMain.state = 3; @@ -1041,7 +1117,7 @@ void RoomExitCallback(void) { gArea.onExit(gArea.transitionManager); } -u32 HandleRoomExit(void) { +static u32 CheckRoomExit(void) { if (gRoomTransition.transitioningOut && gSave.stats.health != 0 && gPlayerState.framestate != PL_STATE_DIE) { if (StairsAreValid()) { gRoomTransition.transitioningOut = 0; @@ -1147,7 +1223,7 @@ static void InitRoomTransition(void) { } } -u32 sub_08052B24(void) { +bool32 CanDispEzloMessage(void) { s32 tmp = PL_STATE_WALK; if (!(gInput.heldKeys & SELECT_BUTTON) || gPlayerState.controlMode != CONTROL_ENABLED || gUnk_02034490[0] || @@ -1185,7 +1261,7 @@ void DisplayEzloMessage(void) { } #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) -void CreateManagerF(void) { +static void CreateManagerF(void) { Entity* e = NULL; if (gRoomTransition.player_status.field_0x24[13]) @@ -1204,7 +1280,7 @@ void CreateManagerF(void) { } #endif -void sub_08052C3C(void) { +static void sub_08052C3C(void) { if (gArea.field_0x18 == 0) gArea.unk1A = gArea.field_0x18; if (gArea.unk1A) { @@ -1213,25 +1289,25 @@ void sub_08052C3C(void) { } } -void UpdatePlayerMapCoords(void) { - if (!CheckIsInteriorNoEnemies()) { - if (CheckIsOverworld()) { +static void UpdatePlayerMapCoords(void) { + if (!AreaHasNoEnemies()) { + if (AreaIsOverworld()) { gRoomTransition.player_status.overworld_map_x = gPlayerEntity.x.HALF_U.HI; gRoomTransition.player_status.overworld_map_y = gPlayerEntity.y.HALF_U.HI; - } else if (CheckIsDungeon()) { + } else if (AreaIsDungeon()) { gRoomTransition.player_status.dungeon_map_x = gPlayerEntity.x.HALF.HI; gRoomTransition.player_status.dungeon_map_y = gPlayerEntity.y.HALF.HI; } } } -void sub_08052CA4(u32 area, u32 room, u32 x, u32 y) { +void SetWorldMapPos(u32 area, u32 room, u32 x, u32 y) { RoomHeader* hdr = gAreaRoomHeaders[area] + room; gRoomTransition.player_status.overworld_map_x = hdr->map_x + x; gRoomTransition.player_status.overworld_map_y = hdr->map_y + y; } -void sub_08052CD0(u32 area, u32 room, u32 x, u32 y) { +void SetDungeonMapPos(u32 area, u32 room, u32 x, u32 y) { RoomHeader* hdr = gAreaRoomHeaders[area] + room; gRoomTransition.player_status.dungeon_map_x = hdr->map_x + x; gRoomTransition.player_status.dungeon_map_y = hdr->map_y + y; @@ -1324,7 +1400,7 @@ static u32 sub_08052EF4(s32 idx) { * @brief If enabled, this type of transition does not change the room * and keeps all entities. */ -void UpdateFakeScroll(void) { +static void UpdateFakeScroll(void) { u32 x, y; LinkedList* ll; Entity* e; @@ -1365,7 +1441,7 @@ void UpdateFakeScroll(void) { } while (++ll < gEntityLists + 9); } -void sub_08052FD8(u32 area, u32 room) { +void LoadCutsceneRoom(u32 area, u32 room) { sub_08052FF4(area, room); gRoomControls.camera_target = NULL; sub_0807C860(); @@ -1440,7 +1516,7 @@ static u32 sub_08053144(void) { return ret; } -void CheckAreaDiscovery(void) { +static void CheckAreaDiscovery(void) { if (!sub_08053144()) return; @@ -1465,12 +1541,12 @@ void CheckAreaDiscovery(void) { WriteBit(gSave.areaVisitFlags, gArea.locationIndex); } -void sub_080531F8(void) { +static void UpdatePlayerRoomStatus(void) { gPlayerState.startPosX = gPlayerEntity.x.HALF.HI; gPlayerState.startPosY = gPlayerEntity.y.HALF.HI; if (sub_08053144()) { MemCopy(&gRoomTransition.player_status, &gSave.saved_status, sizeof gRoomTransition.player_status); - if (CheckIsDungeon()) { + if (AreaIsDungeon()) { gRoomTransition.player_status.dungeon_area = gRoomControls.area; gRoomTransition.player_status.dungeon_room = gRoomControls.room; gRoomTransition.player_status.dungeon_x = gPlayerEntity.x.HALF.HI; @@ -1490,7 +1566,7 @@ void sub_08053250(void) { MemCopy(&gRoomTransition.player_status, &gSave.saved_status, sizeof gRoomTransition.player_status); } -void sub_0805329C(void) { +static void sub_0805329C(void) { if (sub_08053144()) { switch (gRoomControls.area) { case AREA_DEEPWOOD_SHRINE: @@ -1556,7 +1632,7 @@ void sub_080533CC(void) { gUsedPalettes |= 8; } -void sub_0805340C(void) { +static void sub_0805340C(void) { static void (*const sHandlers[])(u32*) = { sub_08053434, DummyHandler, sub_080534E4, DummyHandler, DummyHandler, DummyHandler, DummyHandler, DummyHandler, }; @@ -1564,7 +1640,7 @@ void sub_0805340C(void) { u32* p; u32 i; - p = gSave.unk48C; + p = gSave.timers; for (i = 0; i < 8; i++, p++) { (sHandlers[i])(p); } @@ -1590,20 +1666,20 @@ static void sub_08053460(void) { FLAG_BANK_10, LV6_KANE_2ND, FLAG_BANK_10, LV6_SOTO_ENDING, 0xFFFF }; - gSave.unk48C[0] = 0; + gSave.timers[0] = 0; if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_ZELDA_DISCURSE)) ClearGlobalFlag(ZELDA_CHASE); ClearFlagArray(sClearFlags); } void sub_08053494(void) { - gSave.unk48C[0] = 10800; + gSave.timers[0] = 10800; } void sub_080534AC(void) { if (CheckLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START)) { ClearLocalFlagByBank(FLAG_BANK_10, LV6_KANE_START); - gSave.unk48C[0] = 0; + gSave.timers[0] = 0; SoundReq(SONG_STOP_BGM); } } @@ -1615,11 +1691,11 @@ static void sub_080534E4(u32* a1) { } } -void sub_08053500(void) { - gSave.unk48C[2] = 36000; +void InitBiggoronTimer(void) { + gSave.timers[2] = 36000; } -void ResetTmpFlags(void) { +static void ResetTmpFlags(void) { static const u16 sClearFlags[] = { FLAG_BANK_2, BILL00_SHICHOU_00, FLAG_BANK_2, BILL0A_YADO_TAKARA_00, FLAG_BANK_2, BILL0C_SCHOOLR_00, FLAG_BANK_1, MACHI00_00, FLAG_BANK_1, MACHI00_02, FLAG_BANK_2, MHOUSE06_00, diff --git a/src/manager/manager10.c b/src/manager/manager10.c index 4eb78e21..cedc2a29 100644 --- a/src/manager/manager10.c +++ b/src/manager/manager10.c @@ -60,21 +60,21 @@ void sub_080595E4(Manager10* this) { void sub_08059608(Manager10* this) { if (this->unk_23) { if (!--this->unk_23) { - gArea.musicIndex = gArea.pMusicIndex; - SoundReq(gArea.musicIndex); + gArea.bgm = gArea.queued_bgm; + SoundReq(gArea.bgm); } return; } if (sub_0805986C()) { - if (gArea.pMusicIndex != 0x1E) { - gArea.pMusicIndex = 0x1E; + if (gArea.queued_bgm != 0x1E) { + gArea.queued_bgm = 0x1E; this->unk_23 = 0x78; SoundReq(0x800d0000); } return; } - if (gArea.pMusicIndex != 0x37) { - gArea.pMusicIndex = 0x37; + if (gArea.queued_bgm != 0x37) { + gArea.queued_bgm = 0x37; this->unk_23 = 0x78; SoundReq(0x800d0000); } @@ -210,6 +210,6 @@ void sub_08059960(const u16* unk1, const u16* unk2, u16* unk3, u8 unk4) { void sub_08059994() { if (sub_0805986C()) { LoadPaletteGroup(0x5B); - gArea.pMusicIndex = 0x1E; + gArea.queued_bgm = 0x1E; } } diff --git a/src/manager/manager24.c b/src/manager/manager24.c index 388fd389..e4e5bc04 100644 --- a/src/manager/manager24.c +++ b/src/manager/manager24.c @@ -89,7 +89,7 @@ void sub_0805C050(u32 pos, u32 layer) { SetTileType(0xb4, pos - 1, layer); SetTileType(0xb7, pos + 1, layer); if (layer == 1) { - if (CheckIsInteriorWithEnemies() != 0) { + if (AreaHasEnemies() != 0) { Entity* object = CreateObject(ARCHWAY, 0xe, 0); if (object != NULL) { object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.origin_x; @@ -97,7 +97,7 @@ void sub_0805C050(u32 pos, u32 layer) { } SetTileType(0xb5, pos, 1); } else { - if (CheckIsDungeon() != 0) { + if (AreaIsDungeon() != 0) { SetTileType(0xb5, pos, 1); } else { SetTileType(0xb6, pos, 1); @@ -110,7 +110,7 @@ void sub_0805C050(u32 pos, u32 layer) { } else { Entity* object; SetTileType(0xb5, pos, 2); - if (CheckIsDungeon() == 0) { + if (AreaIsDungeon() == 0) { return; } object = CreateObject(ARCHWAY, sub_0805C608(), 6); @@ -133,7 +133,7 @@ void sub_0805C178(u32 pos, u32 layer) { SetTileType(0xf7, pos + 0x41, layer); if (layer == 1) { - if (CheckIsInteriorWithEnemies() != 0) { + if (AreaHasEnemies() != 0) { object = CreateObject(ARCHWAY, 0xe, 1); if (object != NULL) { @@ -142,7 +142,7 @@ void sub_0805C178(u32 pos, u32 layer) { } SetTileType(0xf2, pos, 1); } else { - if (CheckIsDungeon() != 0) { + if (AreaIsDungeon() != 0) { SetTileType(0xf2, pos, 1); } else { SetTileType(0xf3, pos, 1); @@ -153,7 +153,7 @@ void sub_0805C178(u32 pos, u32 layer) { SetTileType(0xfa, pos + 0x41, 2); } else { SetTileType(0xf2, pos, 2); - if (CheckIsDungeon() == 0) { + if (AreaIsDungeon() == 0) { return; } object = CreateObject(ARCHWAY, sub_0805C608(), 7); @@ -175,7 +175,7 @@ void sub_0805C294(u32 pos, u32 layer) { SetTileType(0xd6, pos + 0x40, layer); SetTileType(0xd7, pos + 0x41, layer); if (layer == 1) { - if (CheckIsInteriorWithEnemies() != 0) { + if (AreaHasEnemies() != 0) { object = CreateObject(ARCHWAY, 0xe, 2); if (object != NULL) { object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.origin_x; @@ -183,7 +183,7 @@ void sub_0805C294(u32 pos, u32 layer) { } SetTileType(0xd2, pos, 1); } else { - if (CheckIsDungeon() != 0) { + if (AreaIsDungeon() != 0) { SetTileType(0xd2, pos, 1); } else { SetTileType(0xd3, pos, 1); @@ -194,7 +194,7 @@ void sub_0805C294(u32 pos, u32 layer) { SetTileType(0xda, pos + 0x41, 2); } else { SetTileType(0xd2, pos, 2); - if (CheckIsDungeon() == 0) { + if (AreaIsDungeon() == 0) { return; } object = CreateObject(ARCHWAY, sub_0805C608(), 8); @@ -216,7 +216,7 @@ void sub_0805C3B4(u32 pos, u32 layer) { SetTileType(0xe3, pos + 0x3f, layer); SetTileType(0xe7, pos + 0x40, layer); if (layer == 1) { - if (CheckIsInteriorWithEnemies() != 0) { + if (AreaHasEnemies() != 0) { object = CreateObject(ARCHWAY, 0xe, 3); if (object != NULL) { object->x.HALF.HI = ((pos & 0x3f) << 4) + -0x10 + gRoomControls.origin_x; @@ -224,7 +224,7 @@ void sub_0805C3B4(u32 pos, u32 layer) { } SetTileType(0xe5, pos, 1); } else { - if (CheckIsDungeon() != 0) { + if (AreaIsDungeon() != 0) { SetTileType(0xe5, pos, 1); } else { SetTileType(0xe6, pos, 1); @@ -235,7 +235,7 @@ void sub_0805C3B4(u32 pos, u32 layer) { SetTileType(0xea, pos + 0x3f, 2); } else { SetTileType(0xe5, pos, 2); - if (CheckIsDungeon() == 0) { + if (AreaIsDungeon() == 0) { return; } @@ -258,7 +258,7 @@ void sub_0805C4E0(u32 pos, u32 layer) { SetTileType(0xc4, pos - 1, layer); SetTileType(0xc7, pos + 1, layer); if (layer == 1) { - if (CheckIsInteriorWithEnemies() != 0) { + if (AreaHasEnemies() != 0) { object = CreateObject(ARCHWAY, 0xe, 0); if (object != NULL) { object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.origin_x; @@ -266,7 +266,7 @@ void sub_0805C4E0(u32 pos, u32 layer) { } SetTileType(0xc5, pos, 1); } else { - if (CheckIsDungeon() != 0) { + if (AreaIsDungeon() != 0) { SetTileType(0xc5, pos, 1); } else { SetTileType(0xc6, pos, 1); @@ -277,7 +277,7 @@ void sub_0805C4E0(u32 pos, u32 layer) { SetTileType(0xca, pos - 0x3f, 2); } else { SetTileType(0xc5, pos, 2); - if (CheckIsDungeon() == 0) { + if (AreaIsDungeon() == 0) { return; } diff --git a/src/manager/manager37.c b/src/manager/manager37.c index 348339ba..9f196c25 100644 --- a/src/manager/manager37.c +++ b/src/manager/manager37.c @@ -38,7 +38,7 @@ void sub_0805DE68(Manager* this) { *(u8*)&gRoomTransition.field_0x3a = 0x20; *((u8*)&gRoomTransition.field_0x3a + 1) = 0x20; #if !defined(EU) && !defined(JP) - gSave.unk48C[3] = 0x1194; + gSave.timers[3] = 0x1194; #endif } @@ -119,7 +119,7 @@ void sub_0805E000(Manager* this) { *(Entity**)this->unk_18 = enemy; this->action = 1; SetPlayerControl(3); - gArea.pMusicIndex = 0x80010000; + gArea.queued_bgm = 0x80010000; DoFade(6, 4); SoundReq(SFX_APPARATE); } diff --git a/src/manager/manager39.c b/src/manager/manager39.c index ffa4bb4e..9eceae78 100644 --- a/src/manager/manager39.c +++ b/src/manager/manager39.c @@ -48,7 +48,7 @@ void sub_0805E140(Manager39* this) { this->manager.unk_0e = 0x78; this->manager.unk_0f = 0x3c; SetDefaultPriority((Entity*)this, PRIO_HIGHEST); - sub_0805E1F8(gUnk_08108DE8[gArea.locationIndex], CheckIsDungeon()); + sub_0805E1F8(gUnk_08108DE8[gArea.locationIndex], AreaIsDungeon()); } void sub_0805E18C(Manager39* this) { diff --git a/src/manager/managerB.c b/src/manager/managerB.c index 6d0fc1fe..a476efe7 100644 --- a/src/manager/managerB.c +++ b/src/manager/managerB.c @@ -52,8 +52,8 @@ void ManagerB_WaitForFlag(ManagerB* this) { ManagerB_LoadFight(&this->manager); if (!this->unk_35) { tmp = gRoomVars.field_0x9 ? gRoomVars.field_0x9 : 0x33; - this->unk_20 = gArea.musicIndex; - gArea.musicIndex = tmp; + this->unk_20 = gArea.bgm; + gArea.bgm = tmp; SoundReq(tmp); } sub_080186C0(0xB0F); @@ -69,8 +69,8 @@ void ManagerB_WaitForDone(ManagerB* this) { // restore music (if it was set, which apparently is only possible if there's a flag the fight waited for) if (this->unk_3c) { if (!this->unk_35) { - gArea.musicIndex = this->unk_20; - SoundReq(gArea.musicIndex); + gArea.bgm = this->unk_20; + SoundReq(gArea.bgm); sub_0801855C(); } } diff --git a/src/manager/managerC.c b/src/manager/managerC.c index fedd7800..f198cf04 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -293,7 +293,7 @@ void sub_08058D34() { gScreen.bg1.yOffset = tmp2; gScreen.controls.layerFXControl = 0x3456; gScreen.controls.alphaBlend = 0x909; - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; gUpdateVisibleTiles = 0; if (CheckGlobalFlag(LV1TARU_OPEN)) { LoadGfxGroup(0x4A); diff --git a/src/npc/bigGoron.c b/src/npc/bigGoron.c index 9a357ae5..7f45152e 100644 --- a/src/npc/bigGoron.c +++ b/src/npc/bigGoron.c @@ -14,7 +14,7 @@ extern u8 gMapDataTopSpecial[]; void sub_0806D138(u8* param_1, u8* param_2); -extern void sub_08053500(void); +extern void InitBiggoronTimer(void); extern u32 gUnk_0200B650; void sub_0806D110(void); @@ -302,7 +302,7 @@ ASM_FUNC("asm/non_matching/bigGoron/sub_0806D520.inc", void sub_0806D520(Entity* NONMATCH("asm/non_matching/bigGoron/sub_0806D5D4.inc", void sub_0806D5D4(void)) { u32 itemSlot; - sub_08053500(); + InitBiggoronTimer(); itemSlot = IsItemEquipped(0xd); if (itemSlot != 2) { ((u8*)&gSave.stats.itemOnA)[itemSlot] = 0; @@ -312,7 +312,7 @@ NONMATCH("asm/non_matching/bigGoron/sub_0806D5D4.inc", void sub_0806D5D4(void)) END_NONMATCH void sub_0806D600(Entity* this, ScriptExecutionContext* context) { - context->condition = gSave.unk48C[2] == 0; + context->condition = gSave.timers[2] == 0; } void sub_0806D620(void) { diff --git a/src/npc/forestMinish.c b/src/npc/forestMinish.c index 988110f7..23de6af6 100644 --- a/src/npc/forestMinish.c +++ b/src/npc/forestMinish.c @@ -224,13 +224,13 @@ void sub_08060318(void) { } void sub_08060340(void) { - gSave.unk48C[1] = gSave.unk50; + gSave.timers[1] = gSave.unk50; } u32 sub_08060354(void) { s32 iVar2; - iVar2 = gSave.unk50 - gSave.unk48C[1]; + iVar2 = gSave.unk50 - gSave.timers[1]; if (CheckGlobalFlag(DRUG_1) == 0) { if (4 < iVar2) { return 0x8444; diff --git a/src/object/archway.c b/src/object/archway.c index e05095d5..556d5268 100644 --- a/src/object/archway.c +++ b/src/object/archway.c @@ -8,7 +8,7 @@ void Archway(Entity* this) { this->frameIndex = this->type2; this->collisionLayer = 2; UpdateSpriteForCollisionLayer(this); - if (CheckIsDungeon()) { + if (AreaIsDungeon()) { this->spritePriority.b0 = 1; } } diff --git a/src/object/lockedDoor.c b/src/object/lockedDoor.c index 6691205d..9762c83c 100644 --- a/src/object/lockedDoor.c +++ b/src/object/lockedDoor.c @@ -127,7 +127,7 @@ void sub_08083338(Entity* this) { if (!CheckFlags(this->field_0x86.HWORD)) { this->frameIndex |= 4; sub_080836DC(this, this->field_0x7c.BYTES.byte2, this->field_0x76.HWORD); - if (!CheckIsDungeon()) { + if (!AreaIsDungeon()) { this->action = 5; } else { this->action = 8; diff --git a/src/object/minishSizedArchway.c b/src/object/minishSizedArchway.c index d087c8dc..31162457 100644 --- a/src/object/minishSizedArchway.c +++ b/src/object/minishSizedArchway.c @@ -7,7 +7,7 @@ void MinishSizedArchway(Entity* this) { this->frameIndex = this->type; this->collisionLayer = 2; UpdateSpriteForCollisionLayer(this); - if (CheckIsDungeon()) { + if (AreaIsDungeon()) { this->spritePriority.b0 = 1; } } diff --git a/src/object/minishSizedEntrance.c b/src/object/minishSizedEntrance.c index 36d8e27a..a4c9c296 100644 --- a/src/object/minishSizedEntrance.c +++ b/src/object/minishSizedEntrance.c @@ -14,7 +14,7 @@ void sub_08090EC0(Entity* this) { this->spriteRendering.b3 = 3; this->spritePriority.b0 = 7; this->frameIndex = this->type2; - if (CheckIsDungeon()) { + if (AreaIsDungeon()) { this->frameIndex += 4; sub_080AE068(this); LoadFixedGFX(this, 0x184); diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index b8f38bcf..3ed7ed2f 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -45,7 +45,7 @@ void sub_0808B474(Entity* this) { if (CheckFlags(this->field_0x86.HWORD)) { sub_0808B830(this); } else { - if (CheckIsDungeon() && sub_0807CAEC(this->type)) { + if (AreaIsDungeon() && sub_0807CAEC(this->type)) { sub_0808B830(this); } } @@ -63,7 +63,7 @@ void sub_0808B474(Entity* this) { void sub_0808B530(Entity* this) { if (CheckFlags(this->field_0x86.HWORD)) { sub_0808B830(this); - if (CheckIsDungeon()) { + if (AreaIsDungeon()) { sub_0807CAC8(this->type); } this->action = 2; diff --git a/src/player.c b/src/player.c index 5bb8ed04..26ee17c9 100644 --- a/src/player.c +++ b/src/player.c @@ -320,7 +320,7 @@ extern u16 script_BedAtSimons; extern Entity* gPlayerClones[]; extern ScriptExecutionContext gPlayerScriptExecutionContext; -NONMATCH("asm/non_matching/playerItemPacciCane/sub_080705AC.inc", u32 CheckPlayerActivity(void)) { +NONMATCH("asm/non_matching/playerItemPacciCane/sub_080705AC.inc", u32 CheckPlayerInactive(void)) { if (!((gInput.newKeys & START_BUTTON) == 0 || gFadeControl.active || gUnk_02034490[0] || (gMessage.doTextBox & 0x7F) || gSave.stats.health == 0 || !gSave.fillerD0[34] || gPlayerState.controlMode != 0 || gPriorityHandler.priority_timer != 0)) { @@ -1053,7 +1053,7 @@ static void PlayerUsePortal(Entity* this) { if ((gInput.newKeys & (B_BUTTON | R_BUTTON)) == 0) return; - if (CheckIsDungeon() || gArea.curPortalType == 3) { + if (AreaIsDungeon() || gArea.curPortalType == 3) { this->subAction = 7; this->actionDelay = 30; DoFade(7, 16); @@ -2228,7 +2228,7 @@ static void sub_08072B5C(Entity* this) { return; } - if (!CheckIsOverworld()) { + if (!AreaIsOverworld()) { sub_08004542(this); } this->subAction++; diff --git a/src/projectile/mandiblesProjectile.c b/src/projectile/mandiblesProjectile.c index e5b27454..50fca7d1 100644 --- a/src/projectile/mandiblesProjectile.c +++ b/src/projectile/mandiblesProjectile.c @@ -147,7 +147,7 @@ void MandiblesProjectile_Action3(Entity* this) { this->direction = uVar1 << 2; this->animationState = uVar1 << 0x1a >> 0x1a; this->hitbox = &gHitbox_0; - if (CheckIsDungeon() != 0) { + if (AreaIsDungeon() != 0) { this->spriteOrientation.flipY = 1; } sub_080AA3E0(this, 0); diff --git a/src/room.c b/src/room.c index 2f1bb48d..76d09d83 100644 --- a/src/room.c +++ b/src/room.c @@ -280,7 +280,7 @@ void LoadRoomTileEntities(TileEntity* list) { LoadBombableWallTile(t); break; case MUSIC_SETTER: - gArea.pMusicIndex = t->_3; + gArea.queued_bgm = t->_3; break; case DARKNESS: LoadDarknessTile(t); diff --git a/src/roomInit.c b/src/roomInit.c index b2c65101..11bc69fb 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -517,7 +517,7 @@ void sub_StateChange_HouseInteriors1_SchoolWest(void) { LoadRoomEntityList(&gUnk_080D7038); } if (gRoomVars.field_0x0 == 0) { - sub_08052CA4(2, 0, 0x2c8, 0xa8); + SetWorldMapPos(2, 0, 0x2c8, 0xa8); } } @@ -564,17 +564,17 @@ void sub_StateChange_HyruleCastle_0(void) { #if defined(JP) || defined(DEMO_JP) if (CheckGlobalFlag(CASTLE_BGM) || CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } #elif defined(EU) if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } #else if (CheckGlobalFlag(CASTLE_BGM)) { - gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; + gArea.queued_bgm = BGM_HYRULE_CASTLE_NOINTRO; } else if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } #endif } @@ -594,7 +594,7 @@ extern EntityData gUnk_080D73E0; void sub_StateChange_HyruleCastle_1(void) { if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } else { if (!CheckGlobalFlag(LV2_CLEAR)) { LoadRoomEntityList(&gUnk_080D73B0); @@ -604,7 +604,7 @@ void sub_StateChange_HyruleCastle_1(void) { } #ifndef EU if (CheckGlobalFlag(CASTLE_BGM)) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } #endif } @@ -622,16 +622,16 @@ extern EntityData gUnk_080D7618; void sub_StateChange_HyruleCastle_2(void) { #ifndef EU if (CheckGlobalFlag(CASTLE_BGM)) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } #endif if (CheckGlobalFlag(ENDING)) { LoadRoomEntityList(&gUnk_080D7618); - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } else if (CheckGlobalFlag(TABIDACHI) == 0) { LoadRoomEntityList(&gUnk_080D74C8); - gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; + gArea.queued_bgm = BGM_HYRULE_CASTLE_NOINTRO; } else if (CheckGlobalFlag(LV1_CLEAR) == 0) { LoadRoomEntityList(&gUnk_080D7588); } else { @@ -669,7 +669,7 @@ void sub_StateChange_HyruleCastle_4(void) { sub_080751E8(0, 6, &script_PlayerWakingUpInHyruleCastle); #ifdef EU SoundReq(0x80010000); - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; } #else } @@ -683,9 +683,9 @@ void sub_StateChange_HyruleCastle_4(void) { #endif if (CheckGlobalFlag(CASTLE_BGM)) { #if defined(JP) || defined(DEMO_JP) - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; #else - gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; + gArea.queued_bgm = BGM_HYRULE_CASTLE_NOINTRO; #endif } #if !(defined(JP) || defined(DEMO_JP)) @@ -1011,11 +1011,11 @@ void sub_0804BF38(u32 arg0, struct_0804BF38* arg1) ASM_FUNC("asm/non_matching/sub_0804BF38.inc", void sub_0804BF38(Entity* this, ScriptExecutionContext* context)) #endif -u32 sub_unk3_EzloCutscene_Main() { +u32 sub_unk3_EzloAuxCutscene_Main() { return 1; } -void sub_StateChange_EzloCutscene_Main() { +void sub_StateChange_EzloAuxCutscene_Main() { } u32 sub_unk3_RoyalValley_Main() { @@ -2264,7 +2264,7 @@ void sub_StateChange_DeepwoodShrineBoss_Main(void) { LoadRoomEntityList(&gUnk_additional_a_DeepwoodShrineBoss_Main); } else { SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; } } @@ -2462,7 +2462,7 @@ void sub_StateChange_CaveOfFlamesBoss_Main(void) { LoadRoomEntityList(&gUnk_additional_a_CaveOfFlamesBoss_Main); } else { SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; } } @@ -2562,7 +2562,7 @@ void sub_StateChange_FortressOfWinds_Mazaal(void) { SetPlayerControl(3); } } - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; } } @@ -2791,7 +2791,7 @@ void sub_StateChange_TempleOfDroplets_BigOcto(void) { LoadRoomEntityList(&gUnk_additional_a_TempleOfDroplets_BigOcto); } else { SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; } } @@ -3112,7 +3112,7 @@ void sub_StateChange_PalaceOfWinds_0(void) { if (!GetInventoryValue(ITEM_WIND_ELEMENT)) { SetPlayerControl(3); LoadRoomEntityList(&gUnk_additional_8_PalaceOfWinds_0); - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; SoundReq(SONG_STOP_BGM); } } @@ -3522,7 +3522,7 @@ u32 sub_unk3_Vaati2_Main() { void sub_StateChange_Vaati2_Main(void) { SoundReq(SONG_STOP_BGM); - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; } u32 sub_unk3_Vaati3_Main() { @@ -3584,7 +3584,7 @@ void sub_StateChange_DarkHyruleCastleOutside_ZeldaStatuePlatform(void) { LoadRoomEntityList(&gUnk_080EADB8); SetTileType(0x4072, 0x145, 1); SetTileType(0x4072, 0x149, 1); - gArea.pMusicIndex = 0; + gArea.queued_bgm = 0; } } @@ -3629,14 +3629,14 @@ void sub_StateChange_DarkHyruleCastleOutside_Garden(void) { if (!CheckLocalFlag(0x7f)) { LoadRoomEntityList(&gUnk_080EAEC0); SetLocalFlag(0x7f); - gArea.pMusicIndex = 0x11; + gArea.queued_bgm = 0x11; } else { LoadRoomEntityList(&gUnk_080EAF20); - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } } else { if (CheckLocalFlag(0x79)) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } if (!CheckLocalFlag(1)) { LoadRoomEntityList(&gUnk_080EAE60); @@ -3701,7 +3701,7 @@ u32 sub_unk3_DarkHyruleCastle_0(void) { if (CheckGlobalFlag(ENDING)) { gRoomVars.field_0x6c[0] = &gUnk_080EB604; gRoomVars.field_0x6c[2] = 0; - gArea.musicIndex = gArea.pMusicIndex = BGM_BEAT_VAATI; + gArea.bgm = gArea.queued_bgm = BGM_BEAT_VAATI; } else if (CheckLocalFlag(0x79)) { gRoomVars.field_0x6c[0] = NULL; if (!CheckLocalFlag(0x7a)) { @@ -3716,7 +3716,7 @@ u32 sub_unk3_DarkHyruleCastle_0(void) { void sub_StateChange_DarkHyruleCastle_0(void) { if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } if (CheckLocalFlag(0x79)) { @@ -3731,7 +3731,7 @@ void sub_0804D9B0(void) { sub_0807BB98(0x357, 1, 5, 1); sub_0807BB98(0x55f, 1, 2, 1); LoadRoomEntityList(&gUnk_080EB684); - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } u32 sub_unk3_DarkHyruleCastle_1() { @@ -3975,7 +3975,7 @@ void sub_StateChange_DarkHyruleCastle_28(void) { if (CheckLocalFlag(0x79)) { sub_0807BB98(0x90, 1, 1, 5); LoadRoomEntityList(&gUnk_080ECFCC); - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } } @@ -4005,7 +4005,7 @@ u32 sub_unk3_DarkHyruleCastle_31(void) { void sub_StateChange_DarkHyruleCastle_31(void) { if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } } @@ -4170,7 +4170,7 @@ void sub_StateChange_DarkHyruleCastle_53(void) { if (CheckLocalFlag(0x79)) { sub_0807BB98(3, 2, 5, 1); LoadRoomEntityList(&gUnk_080EE314); - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } } @@ -4194,7 +4194,7 @@ void sub_StateChange_DarkHyruleCastle_55(void) { if (CheckLocalFlag(0x79)) { sub_0807BB98(0x392, 2, 2, 5); LoadRoomEntityList(&gUnk_080EE5DC); - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } } @@ -4450,16 +4450,16 @@ void sub_StateChange_CastleGarden_Main(void) { if (!CheckGlobalFlag(TABIDACHI)) { LoadRoomEntityList(&gUnk_080F0650); #ifdef EU - gArea.pMusicIndex = BGM_FESTIVAL_APPROACH; + gArea.queued_bgm = BGM_FESTIVAL_APPROACH; #else - gArea.pMusicIndex = BGM_BEANSTALK; + gArea.queued_bgm = BGM_BEANSTALK; SetGlobalFlag(CASTLE_BGM); } else { if (CheckGlobalFlag(CASTLE_BGM)) { #if defined(JP) || defined(DEMO_JP) - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; #else - gArea.pMusicIndex = BGM_HYRULE_CASTLE_NOINTRO; + gArea.queued_bgm = BGM_HYRULE_CASTLE_NOINTRO; #endif } #endif @@ -4743,7 +4743,7 @@ extern EntityData gUnk_080F2E2C; void sub_StateChange_HouseInteriors2_LinksHouseEntrance(void) { if (!CheckGlobalFlag(OUTDOOR)) { - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); } if (!CheckGlobalFlag(START)) { @@ -4760,7 +4760,7 @@ extern EntityData gUnk_080F2EC4; void sub_StateChange_HouseInteriors2_LinksHouseSmith(void) { if (!CheckGlobalFlag(OUTDOOR)) { - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); } if (!CheckGlobalFlag(START)) { @@ -4810,7 +4810,7 @@ void sub_StateChange_HouseInteriors2_LinksHouseBedroom(void) { sub_080751E8(0, 6, &script_PlayerIntro); } if (!CheckGlobalFlag(OUTDOOR)) { - gArea.musicIndex = gArea.pMusicIndex; + gArea.bgm = gArea.queued_bgm; SoundReq(SONG_PLAY_VOL_RESET | BGM_MINISH_CAP); } if ((gPlayerState.flags & PL_NO_CAP) == 0) { @@ -5074,7 +5074,7 @@ extern EntityData gUnk_080F4E10; void sub_StateChange_MinishWoods_Main(void) { if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } if (!CheckGlobalFlag(EZERO_1ST)) { LoadRoomEntityList(&gUnk_080F4D50); @@ -5145,7 +5145,7 @@ void sub_StateChange_SanctuaryEntrance_Main(void) { } void sub_0804ED18(void) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } u32 sub_unk3_Sanctuary_Hall() { @@ -5155,7 +5155,7 @@ u32 sub_unk3_Sanctuary_Hall() { void sub_StateChange_Sanctuary_Hall(void) { sub_080AF2E4(); if (CheckGlobalFlag(SEIIKI_BGM)) { - gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; + gArea.queued_bgm = BGM_CASTLE_COLLAPSE; } } @@ -5207,7 +5207,7 @@ void sub_StateChange_Sanctuary_Main(void) { LoadRoomEntityList(&gUnk_080F55B8); } if (CheckGlobalFlag(SEIIKI_BGM)) { - gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; + gArea.queued_bgm = BGM_CASTLE_COLLAPSE; } } @@ -5222,7 +5222,7 @@ void sub_StateChange_Sanctuary_StainedGlass(void) { LoadRoomEntityList(&gUnk_080F5660); } if (CheckGlobalFlag(SEIIKI_BGM)) { - gArea.pMusicIndex = BGM_CASTLE_COLLAPSE; + gArea.queued_bgm = BGM_CASTLE_COLLAPSE; } } @@ -5398,7 +5398,7 @@ void sub_StateChange_WindTribeTower_Entrance(void) { SetTileType(0x4072, 0x4c7, 1); SetTileType(0x4072, 0x507, 1); } - sub_08052CA4(8, 0, 0x1e8, 0x158); + SetWorldMapPos(8, 0, 0x1e8, 0x158); } u32 sub_unk3_WindTribeTower_Floor2() { @@ -5451,7 +5451,7 @@ void sub_StateChange_WindTribeTowerRoof_Main(void) { if (CheckGlobalFlag(LV5_CLEAR) && !CheckLocalFlagByBank(0x100, 5)) { LoadRoomEntityList(&gUnk_080F66AC); } - sub_08052CA4(8, 0, 0x1e8, 0x158); + SetWorldMapPos(8, 0, 0x1e8, 0x158); #ifndef EU gArea.areaMetadata |= 0x80; #endif @@ -5562,7 +5562,7 @@ void sub_StateChange_HyruleField_LinksHouseExterior(void) { ClearGlobalFlag(ZELDA_CHASE); } if (!CheckGlobalFlag(TABIDACHI)) { - gArea.pMusicIndex = BGM_FESTIVAL_APPROACH; + gArea.queued_bgm = BGM_FESTIVAL_APPROACH; } if ((gSave.windcrests & 0x40000000) == 0) { LoadRoomEntityList(&gUnk_080F70D8); @@ -5703,9 +5703,9 @@ void sub_StateChange_HyruleField_OutsideCastle(void) { } if (!CheckGlobalFlag(TABIDACHI)) { #ifdef EU - gArea.pMusicIndex = 0x10; + gArea.queued_bgm = 0x10; #else - gArea.pMusicIndex = 0x13; + gArea.queued_bgm = 0x13; #endif } } @@ -6479,7 +6479,7 @@ extern EntityData gUnk_080FACB8; void sub_StateChange_MtCrenel_MountainTop(void) { if (CheckGlobalFlag(ENDING)) { - gArea.pMusicIndex = gArea.musicIndex; + gArea.queued_bgm = gArea.bgm; } else { LoadRoomEntityList(&gUnk_080FACB8); } diff --git a/src/script.c b/src/script.c index bf34340f..64324a43 100644 --- a/src/script.c +++ b/src/script.c @@ -1458,7 +1458,7 @@ void ScriptCommand_PlaySound(Entity* entity, ScriptExecutionContext* context) { void ScriptCommand_PlayBgm(Entity* entity, ScriptExecutionContext* context) { if (context->scriptInstructionPointer[1] >= 100) { - SoundReq(gArea.musicIndex); + SoundReq(gArea.bgm); } else { SoundReq(context->scriptInstructionPointer[1]); } diff --git a/src/scroll.c b/src/scroll.c index b3a1649a..26a6c6c1 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -15,7 +15,7 @@ void sub_080808D8(void) { } void sub_080808E4(void) { - if (sub_08052638(gRoomTransition.player_status.area_next)) { + if (CheckAreaOverworld(gRoomTransition.player_status.area_next)) { gRoomTransition.type = TRANSITION_DEFAULT; } else { gRoomTransition.type = TRANSITION_FADE_BLACK; diff --git a/src/title.c b/src/title.c index dc7d0c7d..2afc8d28 100644 --- a/src/title.c +++ b/src/title.c @@ -281,14 +281,14 @@ static void HandleTitlescreen(void) { gOamCmd._8 = 0xE020; gOamCmd.x = 120; gOamCmd.y = 152; - sub_080ADA14(511, 1); + DrawDirect(511, 1); #elif defined(EU) gOamCmd._4 = 0; gOamCmd._6 = 0; gOamCmd._8 = 0xE020; gOamCmd.x = 120; gOamCmd.y = 152; - sub_080ADA14(510, 1); + DrawDirect(510, 1); #else UpdatePressStartIcon(); #endif @@ -296,9 +296,9 @@ static void HandleTitlescreen(void) { gOamCmd._8 = 0xe000; gOamCmd.y = 0x84; #ifdef EU - sub_080ADA14(0x1fe, 0); + DrawDirect(0x1fe, 0); #else - sub_080ADA14(0x1ff, 0); + DrawDirect(0x1ff, 0); #endif } } @@ -318,7 +318,7 @@ static void UpdatePressStartIcon(void) { gOamCmd._8 = 0xE020; gOamCmd.x = 120; gOamCmd.y = 152; - sub_080ADA14(511, 1); + DrawDirect(511, 1); } #endif From 48fa5b4618f538dbc44525b77142ccea5a0858b8 Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 4 Jan 2022 20:17:46 -0800 Subject: [PATCH 097/168] sort out functions.h --- include/asm.h | 4 + include/common.h | 11 +- include/enemy.h | 9 + include/entity.h | 3 + include/fileselect.h | 1 + include/functions.h | 73 - include/game.h | 6 +- include/item.h | 3 + include/kinstone.h | 2 + include/main.h | 1 + include/message.h | 5 + include/object.h | 5 + include/player.h | 7 + include/projectile.h | 2 + include/room.h | 25 +- include/structures.h | 14 - include/subtask.h | 16 + src/code_08049CD4.c | 2 +- src/code_0805436C.c | 2 +- src/debugScreen.c | 7 +- src/demoScreen.c | 3 +- src/enemy.c | 10 +- src/enemy/beetle.c | 2 +- src/enemy/bladeTrap.c | 2 +- src/enemy/businessScrub.c | 1 + src/enemy/darkNut.c | 34 +- src/enemy/doorMimic.c | 4 +- src/enemy/enemy4D.c | 2 +- src/enemy/gibdo.c | 31 +- src/enemy/lakituCloud.c | 1 + src/enemy/likeLike.c | 1 + src/enemy/mazaalHead.c | 4 +- src/enemy/miniSlime.c | 2 +- src/enemy/octorok.c | 6 +- src/enemy/rollobite.c | 6 +- src/enemy/rope.c | 6 +- src/enemy/rupeeLike.c | 2 +- src/enemy/slime.c | 2 +- src/enemy/smallPesto.c | 2 +- src/enemy/tektite.c | 4 +- src/enemy/vaatiArm.c | 3 +- src/enemy/vaatiBall.c | 2 +- src/enemy/vaatiWrath.c | 3 +- src/enemy/wisp.c | 4 +- src/enterPortalSubtask.c | 4 +- src/entity.c | 32 +- src/fileselect.c | 3 +- src/game.c | 90 +- src/interrupts.c | 24 +- src/item/itemLantern.c | 1 + src/item/itemMoleMitts.c | 2 +- src/item/itemShield.c | 4 +- src/main.c | 16 +- src/manager/manager1.c | 1 + src/manager/manager10.c | 6 +- src/manager/manager12.c | 2 +- src/manager/manager14.c | 8 +- src/manager/manager1A.c | 6 +- src/manager/manager1B.c | 1 + src/manager/manager2.c | 12 +- src/manager/manager27.c | 1 + src/manager/manager2F.c | 1 + src/manager/manager4.c | 2 +- src/manager/manager7.c | 9 +- src/manager/manager8.c | 13 +- src/manager/manager9.c | 3 +- src/manager/managerC.c | 6 +- src/manager/managerF.c | 2 +- src/npc/bladeBrothers.c | 1 + src/npc/cat.c | 4 +- src/npc/dampe.c | 2 +- src/npc/dog.c | 2 +- src/npc/guard.c | 1 + src/npc/mailbox.c | 2 +- src/npc/mayorHagen.c | 2 +- src/npc/npc4E.c | 7 +- src/npc/npc5.c | 2 +- src/npc/pina.c | 1 + src/npc/stamp.c | 2 +- src/npc/stockwell.c | 2 + src/npc/townMinish.c | 6 +- src/npcUtils.c | 2 +- src/object/bird.c | 1 + src/object/book.c | 1 + src/object/cloud.c | 2 + src/object/greatFairy.c | 2 +- src/object/heartContainer.c | 1 + src/object/lilypadSmall.c | 3 +- src/object/object1A.c | 2 +- src/object/object6A.c | 1 + src/object/objectA8.c | 1 + src/object/palaceArchway.c | 2 +- src/player.c | 67 +- src/playerItem.c | 45 +- src/playerItem/playerItem14.c | 1 + src/playerItem/playerItemPacciCane.c | 2 +- src/playerItem/playerItemSwordBeam.c | 1 + src/projectile/ballAndChain.c | 1 + src/projectile/guardLineOfSight.c | 1 + src/projectile/gyorgTail.c | 1 + src/projectile/v1EyeLaser.c | 1 + src/projectile/winder.c | 1 + src/room.c | 14 +- src/roomInit.c | 2127 +++++++++++++------------- src/save.c | 3 +- src/sound.c | 2 +- src/sub_08055E08.c | 2 +- src/sub_0807CA18.c | 4 +- src/subtask.c | 4 +- src/text.c | 1 + src/title.c | 2 +- 111 files changed, 1482 insertions(+), 1434 deletions(-) create mode 100644 include/subtask.h diff --git a/include/asm.h b/include/asm.h index fed7a35b..b889ab88 100644 --- a/include/asm.h +++ b/include/asm.h @@ -11,6 +11,7 @@ extern u32 GetTileType(u32 pos, u32 layer); extern void SetTile(u32 index, u32 position, u32 layer); extern void UpdateScrollVram(void); extern u32 sub_080002D0(struct Entity_*); +extern u32 sub_080002F0(u32, u32, u32); extern void LoadResourceAsync(const void*, u32, u32); extern void sub_08001242(struct Entity_*); extern void sub_08001290(struct Entity_*, u32); @@ -29,5 +30,8 @@ extern u32 sub_080045B4(struct Entity_*, u32, u32); extern u32 sub_080045D4(u32, u32, u32, u32); extern u32 sub_080045DA(s32, s32); extern u32 sub_080086B4(u32, u32, u8*); +extern u32 ResolveCollisionLayer(struct Entity_*); +extern void sub_0800417E(struct Entity_*, u32); +extern u32 sub_0800442E(struct Entity_*); #endif // ASM_H diff --git a/include/common.h b/include/common.h index e46df918..6b4763c4 100644 --- a/include/common.h +++ b/include/common.h @@ -3,6 +3,8 @@ #include "global.h" +struct Entity_; + typedef struct { u16 heldKeys; u16 newKeys; @@ -10,11 +12,11 @@ typedef struct { u8 unk6; u8 unk7; } Input; - extern Input gInput; void LoadPalettes(const u8*, s32, s32); void LoadPaletteGroup(u32 group); +void LoadGfxGroup(u32 group); void SetColor(u32 colorIndex, u32 color); void SetFillColor(u32 color, u32 arg1); @@ -73,7 +75,12 @@ void zFree(void* ptr); void DispReset(bool32 refresh); u32 CheckPlayerProximity(u32, u32, u32, u32); - +u32 CheckKinstoneFused(u32); void sub_0801E1EC(u32, u32, u32); +void sub_0801DD58(u32, u32); +void sub_0801E1B8(u32, u32); +void sub_0801E738(u32); +void sub_0801DFB4(struct Entity_*, u32, u32, u32); +u32 sub_0801E00C(void); #endif // COMMON_H diff --git a/include/enemy.h b/include/enemy.h index 1a8fc7f2..8e38e557 100644 --- a/include/enemy.h +++ b/include/enemy.h @@ -10,12 +10,21 @@ #include "common.h" #include "entity.h" +#include "projectile.h" extern u32 GetNextFunction(Entity*); extern void EnemyFunctionHandler(Entity*, EntityActionArray); extern void sub_08001324(Entity*); +extern Entity* CreateDeathFx(Entity*, u32, u32); extern Entity* sub_0804A9FC(Entity*, u32); +extern void SetChildOffset(Entity*, s32, s32, s32); +extern Entity* CreateProjectileWithParent(Entity*, u8, u8); + +extern void sub_0804A7D4(Entity*); +extern void sub_08002724(void*, u8*); +extern void sub_080026C4(u8*, u8*, u8*, u32); +extern void sub_080026F2(u8*, void*, u8*, u32); typedef enum { /*0x00*/ OCTOROK, diff --git a/include/entity.h b/include/entity.h index 898661f8..7d61134e 100644 --- a/include/entity.h +++ b/include/entity.h @@ -232,9 +232,12 @@ u32 LoadExtraSpriteData(Entity*, SpriteLoadData*); void SetExtraSpriteFrame(Entity*, u32, u32); void SetSpriteSubEntryOffsetData1(Entity*, u32, u32); void SetSpriteSubEntryOffsetData2(Entity*, u32, u32); +u8* GetSpriteSubEntryOffsetDataPointer(u32, u32); u32 GetFacingDirection(Entity*, Entity*); +u32 ProcessMovement(Entity*); + /** * @brief Delete the entity currently in execution. */ diff --git a/include/fileselect.h b/include/fileselect.h index d2a2f52e..bba9eed7 100644 --- a/include/fileselect.h +++ b/include/fileselect.h @@ -70,6 +70,7 @@ extern void sub_0805F7DC(u32, struct_02036540*); extern void sub_0805F300(struct_02036540*); extern void sub_08050A64(u32); extern void sub_08050AFC(u32); +extern void sub_08050384(); extern const struct_080FC844 gUnk_080FC844; extern const u16 gUnk_080FC85C[][3]; diff --git a/include/functions.h b/include/functions.h index c71445d6..31ef2f13 100644 --- a/include/functions.h +++ b/include/functions.h @@ -12,32 +12,11 @@ #include "script.h" // Identified - to be sorted into header files -extern u32 CheckKinstoneFused(u32); -extern void ForceEquipItem(u32, u32); -extern void LoadRoomEntityList(EntityData* listPtr); -extern void SetChildOffset(Entity*, s32, s32, s32); -extern Entity* CreatePlayerItem(u32, u32, u32, u32); extern void SetDirtTile(u32); -extern Entity* CreateDeathFx(Entity*, u32, u32); -extern u8* GetSpriteSubEntryOffsetDataPointer(u32, u32); extern bool32 LoadFixedGFX(Entity*, u32); -extern void CreateItemEntity(u32, u32, u32); -extern u32 ProcessMovement(Entity*); extern void MenuFadeIn(u32, u32); -extern void LoadPaletteGroup(u32); extern void TryLoadPrologueHyruleTown(void); -extern void LoadGfxGroup(u32); -extern Entity* CreateProjectileWithParent(Entity*, u8, u8); -extern u32 GetSaleItemConfirmMessageID(u32); extern void FlushSprites(void); -extern Entity* CreateProjectile(u32); -extern s32 GetItemPrice(); -extern void DoExitTransition(ScreenTransitionData*); -extern void CreateDustAt(s32, s32, u32); -extern void PutItemOnSlot(u32 itemID); -extern Entity* CreateSpeechBubbleQuestionMark(Entity*, s32, s32); -extern Entity* CreateSpeechBubbleExclamationMark(Entity*, s32, s32); -extern Entity* CreateSpeechBubbleSleep(Entity*, s32, s32); // Unidentified extern void sub_0805EC9C(); @@ -78,86 +57,42 @@ extern void sub_08059278(void); extern void sub_0804C128(u32); extern void sub_08058324(u32); extern void sub_0801AFE4(void); -extern u32 sub_08060354(void); -extern void sub_08057E64(void); -extern void sub_0809F814(u32); -extern void sub_080300E8(void); -extern void sub_08058D34(void); extern void sub_0807AABC(Entity*); extern void sub_0805B4D0(u32); -extern void sub_0804D0B4(void); -extern void sub_080534AC(); extern void sub_0807BA8C(u32, u32); -extern void sub_0804D9B0(); -extern void sub_0807BB98(u32, u32, u32, u32); -extern void sub_0801D000(u32); -extern void sub_08018C58(u32); extern void sub_080AF284(void); extern void sub_080A71C4(u32, u32, u32, u32); extern void sub_08054564(); -extern void sub_0801DD58(u32, u32); -extern void sub_0804ED18(); -extern void sub_080AF2E4(void); -extern void sub_0804F578(void); -extern void sub_08059994(void); extern void DrawDirect(u32, u32); // trampoline to sub_080B27F4 -extern void sub_0801E1B8(u32, u32); -extern void sub_080A3B74(void); -extern void sub_080A4054(void); extern void sub_0801C1D4(void); extern void DrawOAMCmd(void); -extern void sub_080A4D34(void); -extern u32 sub_080A4494(void); -extern void sub_080A4528(void); -extern void sub_080A4398(void); -extern void sub_0801E738(u32); -extern void sub_080A7114(u32); extern u32 sub_0807953C(void); extern void sub_080AE068(Entity*); extern u32 sub_0800445C(Entity*); extern u32 sub_0801766C(Entity*); extern void sub_08004168(Entity*); -extern void sub_08056208(void); -extern void sub_08050384(); extern u32 sub_0806F520(); extern void sub_0806F4E8(Entity*); -extern void sub_0804A7D4(Entity*); -extern void sub_08033744(Entity*); -extern void sub_0800417E(Entity*, u32); extern void sub_080784C8(); extern u32 sub_0808288C(Entity*, u32, u32, u32); extern void sub_0806FDA0(Entity*); extern bool32 LoadSwapGFX(Entity*, u16, u32); -extern u32 ResolveCollisionLayer(Entity*); -extern void sub_08077728(); extern void sub_0807921C(); extern void sub_0807ACCC(Entity*); -extern void sub_080A2BE4(Entity*, u32); -extern u32 sub_08097ADC(Entity*); extern u32 sub_08079F8C(void); extern void sub_080787CC(Entity*); extern u32 sub_080044EC(Entity*, u32); extern u32 sub_080002B8(Entity*); extern u32 sub_08049F84(Entity*, u32); -extern void sub_0802F45C(Entity*); extern u32 sub_0800419C(Entity*, Entity*, u32, u32); extern void sub_08004542(Entity*); -extern void sub_08077B20(); extern u32 sub_08017850(Entity*); extern void sub_080809D4(void); extern void sub_08080CB4(Entity*); -extern u32 sub_0800442E(Entity*); -extern void sub_08081404(Entity*, u32); extern void sub_0807B7D8(u32, u32, u32); extern void sub_0800451C(Entity*); -extern u32 sub_080002F0(u32, u32, u32); extern u32 sub_080040D8(Entity*, u8*, s32, s32); -extern void LoadGfxGroups(); -extern void SetColor(u32, u32); extern u32 sub_0805F8F8(u32); -extern void sub_08002724(void*, u8*); -extern void sub_080026C4(u8*, u8*, u8*, u32); -extern void sub_080026F2(u8*, void*, u8*, u32); extern u32 sub_0805F7A0(u32); extern u32* sub_0805F25C(u32); u32 sub_0806FCB8(Entity*, u32, u32, u32); @@ -165,8 +100,6 @@ extern void sub_080A1D70(Entity*, u32); extern void sub_0806F62C(Entity*, u32, u32); extern void sub_080A1ED0(u32, u32, u32); extern u32 sub_0806F5B0(u32); -extern void sub_0801DFB4(Entity*, u32, u32, u32); -extern u32 sub_0801E00C(void); extern void sub_08078790(Entity*, u32); extern void sub_080788E0(Entity*); extern void sub_08078B48(void); @@ -174,13 +107,9 @@ extern void sub_0807919C(); extern void sub_0807CAA0(u32, u32); extern void sub_080085B0(Entity*); extern u32 sub_08079D48(); -extern u32 sub_08008B22(); -extern void MessageClose(); extern u32 sub_080542AC(u32); extern u32 sub_08079FC4(u32); -extern u32* sub_08008790(Entity*, u32); extern void sub_0805F8E4(u32 r0, WStruct* r1); - extern Entity* sub_08077C94(ItemBehavior*, u32); extern Entity* sub_08077C0C(ItemBehavior*, u32); extern void sub_08077D38(ItemBehavior*, u32); @@ -190,10 +119,8 @@ extern u32 sub_0806F948(Entity*); extern void sub_08077DF4(ItemBehavior*, u32); extern void sub_08077BB8(ItemBehavior*); extern bool32 sub_08077EFC(ItemBehavior*); - extern void sub_08078E84(Entity*, Entity*); extern void sub_080042D0(Entity*, u32, u16); - extern u32 sub_080002A8(u32, u32, u32); extern void sub_080806BC(u32, u32, u32, u32); diff --git a/include/game.h b/include/game.h index e42f5b91..81dd794b 100644 --- a/include/game.h +++ b/include/game.h @@ -32,13 +32,17 @@ bool32 HasDungeonSmallKey(void); bool32 ItemIsSword(u32 item); bool32 ItemIsShield(u32 item); u32 GetBottleContaining(u32 item); +void PutItemOnSlot(u32 item); +s32 GetItemPrice(u32 item); +u32 GetSaleItemConfirmMessageID(u32 item); +void ForceEquipItem(u32 item, u32 slot); void LoadGfxGroups(void); void LoadCutsceneRoom(u32 room, u32 area); void InitRoom(void); void InitParachuteRoom(void); -void RegisterTransitionManager(void* mgr, void (*onEnter)(void), void (*onExit)(void)); +void RegisterTransitionManager(void* mgr, void (*onEnter)(void*), void (*onExit)(void*)); void RoomExitCallback(void); void RestoreGameTask(u32 a1); diff --git a/include/item.h b/include/item.h index b47066da..c5409c29 100644 --- a/include/item.h +++ b/include/item.h @@ -5,6 +5,9 @@ #include "entity.h" #include "player.h" +void CreateItemEntity(u32, u32, u32); +void sub_08081404(Entity*, u32); + extern void ItemDebug(ItemBehavior*, u32); extern void ItemSword(ItemBehavior*, u32); extern void ItemBomb(ItemBehavior*, u32); diff --git a/include/kinstone.h b/include/kinstone.h index 8760673d..28b799dd 100644 --- a/include/kinstone.h +++ b/include/kinstone.h @@ -3,6 +3,8 @@ #include "global.h" +extern void sub_08018C58(u32); + typedef struct { u8 unk[4]; u32 unk2; diff --git a/include/main.h b/include/main.h index 988b4233..7b0abd05 100644 --- a/include/main.h +++ b/include/main.h @@ -97,5 +97,6 @@ extern void VBlankInterruptWait(void); extern void DisableInterruptsAndDMA(void); extern void EnableVBlankIntr(void); extern void sub_08056250(void); +extern void sub_08056208(void); #endif diff --git a/include/message.h b/include/message.h index c8d3e7b9..c0164810 100644 --- a/include/message.h +++ b/include/message.h @@ -126,6 +126,11 @@ void MessageFromTarget(u32 index); */ void MessageAtHeight(u32 index, u32 y); +/** + * @brief Close message. + */ +void MessageClose(void); + void DispMessageFrame(u16*, s32, s32, u32); #endif // MESSAGE_H diff --git a/include/object.h b/include/object.h index d4792ecf..20688709 100644 --- a/include/object.h +++ b/include/object.h @@ -20,9 +20,14 @@ extern void sub_080787B4(Entity*); extern void sub_0808C650(Entity*, u32); extern u32 sub_0808C67C(void); extern void sub_0808C688(void); +extern void sub_080A2BE4(Entity*, u32); void CreateDust(Entity* parent); +void CreateDustAt(s32, s32, u32); void CreateDustSmall(Entity* parent); +Entity* CreateSpeechBubbleQuestionMark(Entity*, s32, s32); +Entity* CreateSpeechBubbleExclamationMark(Entity*, s32, s32); +Entity* CreateSpeechBubbleSleep(Entity*, s32, s32); typedef enum { GROUND_ITEM, diff --git a/include/player.h b/include/player.h index 9160123a..583d882b 100644 --- a/include/player.h +++ b/include/player.h @@ -288,6 +288,8 @@ void ResetPlayerAnimationAndAction(void); void SetPlayerActionNormal(void); void RespawnAsMinish(void); +Entity* CreatePlayerItem(u32, u32, u32, u32); + void ResolvePlayerAnimation(void); void RegisterPlayerHitbox(void); void UpdateFloorType(void); @@ -299,6 +301,11 @@ s32 ModHealth(s32 delta); void ModRupees(s32 delta); void DeleteClones(void); +void sub_08077728(); +extern void sub_08077B20(); +extern u32 sub_08008B22(); +extern u32* sub_08008790(Entity*, u32); + #define COPY_FLAG_FROM_TO(base, src, dest) (base) = ((base) & ~(dest)) | (((dest) * ((base) & (src))) / src) #endif diff --git a/include/projectile.h b/include/projectile.h index 0ad6e7e9..4eaf6a44 100644 --- a/include/projectile.h +++ b/include/projectile.h @@ -1,6 +1,8 @@ #ifndef PROJECTILE_H #define PROJECTILE_H +extern Entity* CreateProjectile(u32); + typedef enum { /*00*/ DARK_NUT_SWORD_SLASH, /*01*/ ROCK_PROJECTILE, diff --git a/include/room.h b/include/room.h index 074cc8d5..7886d288 100644 --- a/include/room.h +++ b/include/room.h @@ -160,6 +160,20 @@ typedef struct { static_assert(sizeof(RoomTransition) == 0xB0); extern RoomTransition gRoomTransition; +typedef struct { + u16 type; + u8 field_0x2[4]; + s16 playerXPos; + s16 playerYPos; + u8 field_0xa; + u8 area; + u8 room; + u8 playerLayer; + u8 field_0xe; + u8 playerState; + u16 transitionSFX; +} ScreenTransitionData; + typedef struct { u8 type; u8 _1; @@ -188,16 +202,19 @@ typedef enum { TILE_ENTITY_D, } TileEntityType; -extern void SetTileType(u32, u32, u32); -extern void InitScreenShake(u32 time, u32 magnitude); +void SetTileType(u32, u32, u32); +void InitScreenShake(u32 time, u32 magnitude); void CallRoomProp5And7(void); void LoadRoom(void); void SetCurrentRoomPropertyList(u32 area, u32 room); -extern void* GetCurrentRoomProperty(u32); -extern void LoadRoomTileEntities(); +void* GetCurrentRoomProperty(u32); +void LoadRoomTileEntities(); +void LoadRoomEntityList(EntityData* listPtr); void sub_0804B3C4(void*); void sub_0804B0B0(u32 arg0, u32 arg1); +void DoExitTransition(ScreenTransitionData* data); + #endif diff --git a/include/structures.h b/include/structures.h index c6c8f80b..95a22ffc 100644 --- a/include/structures.h +++ b/include/structures.h @@ -38,20 +38,6 @@ static_assert(sizeof(struct_02000010) == 0x20); extern struct_02000010 gUnk_02000010; -typedef struct { - u16 type; - u8 field_0x2[4]; - s16 playerXPos; - s16 playerYPos; - u8 field_0xa; - u8 area; - u8 room; - u8 playerLayer; - u8 field_0xe; - u8 playerState; - u16 transitionSFX; -} ScreenTransitionData; - typedef struct { u8 active; u8 field_0x1; diff --git a/include/subtask.h b/include/subtask.h new file mode 100644 index 00000000..185210d8 --- /dev/null +++ b/include/subtask.h @@ -0,0 +1,16 @@ +#ifndef SUBTASK_H +#define SUBTASK_H + +#include "global.h" + +// todo: separate headers for each subtask? + +extern void sub_080A4528(void); +extern void sub_080A4398(void); +extern void sub_080A7114(u32); +extern void sub_080A3B74(void); +extern void sub_080A4054(void); +extern void sub_080A4D34(void); +extern u32 sub_080A4494(void); + +#endif // SUBTASK_H diff --git a/src/code_08049CD4.c b/src/code_08049CD4.c index 68f78d10..a773306d 100644 --- a/src/code_08049CD4.c +++ b/src/code_08049CD4.c @@ -5,7 +5,7 @@ extern u32 gRoomMemory; extern void MemFill32(u32, void*, u32); -void ClearRoomMemory() { +void ClearRoomMemory(void) { MemFill32(0xFFFFFFFF, &gRoomMemory, 0x40); gUnk_020354B0 = &gRoomMemory; } diff --git a/src/code_0805436C.c b/src/code_0805436C.c index eb4c77d2..dfbe2966 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -19,7 +19,7 @@ extern u8 gUnk_0200AF14; extern u32 gUnk_080015BC; extern u8 gUnk_080FE1C6[]; extern u32 gUnk_02034398; -extern void (*const gUnk_080FE2A0[])(); +extern void (*const gUnk_080FE2A0[])(void); void ForceEquipItem(u32, u8); extern void sub_0807CAA0(u32, u32); diff --git a/src/debugScreen.c b/src/debugScreen.c index de141619..9e85a178 100644 --- a/src/debugScreen.c +++ b/src/debugScreen.c @@ -6,10 +6,11 @@ #include "menu.h" #include "screen.h" #include "message.h" +#include "game.h" -extern void (*const gUnk_08109A30[])(); +extern void (*const gUnk_08109A30[])(void); -void DebugTask() { +void DebugTask(void) { gUnk_08109A30[gMain.state](); } @@ -90,6 +91,6 @@ void sub_0805FA98(void) { gScreen.bg3.updated = 1; } -void sub_0805FBC4() { +void sub_0805FBC4(void) { SetTask(TASK_TITLE); } diff --git a/src/demoScreen.c b/src/demoScreen.c index e3185859..98cbc68d 100644 --- a/src/demoScreen.c +++ b/src/demoScreen.c @@ -5,9 +5,10 @@ #include "message.h" #include "fileselect.h" #include "screen.h" +#include "game.h" extern void (*const demoFunctions[])(void); -void sub_080A30AC(); +void sub_080A30AC(void); extern u8 gUnk_02000004; void sub_080A3198(u32, u32); diff --git a/src/enemy.c b/src/enemy.c index e9d4f51d..b0594e0f 100644 --- a/src/enemy.c +++ b/src/enemy.c @@ -419,11 +419,11 @@ const EnemyDefinition gEnemyDefinition_46[] = { { 72, 384, &gUnk_080FD258, SPRITE_BOWMOBLIN_1, { 1, 1, 1, 2 }, 8, 256, 138, 139 }, }; -extern void sub_08049E18(); -extern void sub_08049E4C(); -extern void sub_08049E80(); -extern void sub_08049EB0(); -void (*const gUnk_080D3BE8[])() = { +extern Entity* sub_08049E18(void); +extern Entity* sub_08049E4C(void); +extern Entity* sub_08049E80(void); +extern Entity* sub_08049EB0(void); +Entity* (*const gUnk_080D3BE8[])(void) = { sub_08049E18, sub_08049E4C, sub_08049E80, diff --git a/src/enemy/beetle.c b/src/enemy/beetle.c index 24e01379..bba26d7a 100644 --- a/src/enemy/beetle.c +++ b/src/enemy/beetle.c @@ -3,7 +3,7 @@ extern u32 PlayerInRange(Entity*, u32, u32); -u32 sub_08021D00(); +u32 sub_08021D00(Entity*); void sub_08021D44(Entity* this, u32 direction); extern void (*const gUnk_080CB590[])(Entity*); diff --git a/src/enemy/bladeTrap.c b/src/enemy/bladeTrap.c index ceea0b5d..eeee9ffe 100644 --- a/src/enemy/bladeTrap.c +++ b/src/enemy/bladeTrap.c @@ -3,7 +3,7 @@ #include "room.h" #include "functions.h" -extern void sub_080A2CC0(); +extern void sub_080A2CC0(Entity*, void*, void*); void BladeTrap(Entity* this) { if (this->action == 0) { diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index 1bff3860..b2b20f06 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -5,6 +5,7 @@ #include "npc.h" #include "functions.h" #include "game.h" +#include "item.h" extern Entity* sub_08049DF4(u32); extern bool32 sub_08056338(void); diff --git a/src/enemy/darkNut.c b/src/enemy/darkNut.c index ed6d602b..7e200a8a 100644 --- a/src/enemy/darkNut.c +++ b/src/enemy/darkNut.c @@ -6,23 +6,23 @@ typedef struct { u8 field_0x1; } PACKED stuct_080CAB14; -void sub_08021218(); -void sub_08021588(); -void sub_080213D0(); -void sub_08021390(); -void sub_0802159C(); -void sub_0804AA1C(); -void sub_080213F0(); -u32 sub_080214FC(); -void sub_08021540(); -void sub_08021600(); -void sub_080213B0(); -u32 PlayerInRange(); -u32 sub_0802169C(); -void sub_0802124C(); -void sub_08021644(); -void sub_08021414(); -void sub_08021400(); +void sub_08021218(Entity*, u32, u32); +void sub_08021588(Entity*); +void sub_080213D0(Entity*, u32); +void sub_08021390(Entity*); +void sub_0802159C(Entity*); +void sub_0804AA1C(Entity*); +void sub_080213F0(Entity*); +u32 sub_080214FC(Entity*); +void sub_08021540(Entity*); +void sub_08021600(Entity*); +void sub_080213B0(Entity*); +u32 PlayerInRange(Entity*, u32, u32); +u32 sub_0802169C(Entity*, Entity*); +void sub_0802124C(Entity*); +void sub_08021644(Entity*); +void sub_08021414(Entity*); +void sub_08021400(Entity*); u32 sub_08021274(u32, u32); u32 sub_08021664(Entity*, Entity*); u32 sub_0804A044(Entity*, Entity*, u32); diff --git a/src/enemy/doorMimic.c b/src/enemy/doorMimic.c index af328474..413046c9 100644 --- a/src/enemy/doorMimic.c +++ b/src/enemy/doorMimic.c @@ -3,8 +3,8 @@ #include "functions.h" extern s16 sub_080001DA(u32, u32); // ? -extern void sub_08049CF4(); -void sub_080221C0(); +extern void sub_08049CF4(Entity*); +void sub_080221C0(Entity*); typedef struct { s8 h; diff --git a/src/enemy/enemy4D.c b/src/enemy/enemy4D.c index 75c28eb1..3e6508ad 100644 --- a/src/enemy/enemy4D.c +++ b/src/enemy/enemy4D.c @@ -29,7 +29,7 @@ void sub_0803EB34(Entity* this) { CreateDeathFx(this, 0xff, 0x57); } -void nullsub_21() { +void nullsub_21(Entity* this) { } void sub_0803EB44(Entity* this) { diff --git a/src/enemy/gibdo.c b/src/enemy/gibdo.c index 0649b7a9..71dfe53f 100644 --- a/src/enemy/gibdo.c +++ b/src/enemy/gibdo.c @@ -2,21 +2,22 @@ #include "enemy.h" #include "object.h" #include "functions.h" + // Gibudo -void sub_08037794(); -void sub_08037B10(); -void sub_0803797C(); -void sub_080379BC(); -void sub_08037C0C(); -u32 sub_08037810(); -void sub_080377B0(); -u32 sub_080378B0(); -u32 sub_08037914(); -u32 sub_080379EC(); -void sub_08037A58(); -void sub_08037ACC(); -void sub_08037B48(); -void sub_08037A14(); +void sub_08037794(Entity*); +void sub_08037B10(Entity*); +void sub_0803797C(Entity*); +void sub_080379BC(Entity*); +void sub_08037C0C(Entity*, Entity*); +u32 sub_08037810(Entity*); +void sub_080377B0(Entity*); +u32 sub_080378B0(Entity*); +u32 sub_08037914(Entity*); +u32 sub_080379EC(Entity*); +void sub_08037A58(Entity*); +void sub_08037ACC(Entity*); +void sub_08037B48(Entity*); +void sub_08037A14(Entity*); extern void sub_0804A4E4(Entity*, Entity*); extern Entity* sub_08049DF4(u32); @@ -75,7 +76,7 @@ NONMATCH("asm/non_matching/gibdo/sub_080374A4.inc", void sub_080374A4(Entity* th } END_NONMATCH -void nullsub_162() { +void nullsub_162(Entity* this) { } void sub_08037558(Entity* this) { diff --git a/src/enemy/lakituCloud.c b/src/enemy/lakituCloud.c index ae2f5a7d..502e4ab8 100644 --- a/src/enemy/lakituCloud.c +++ b/src/enemy/lakituCloud.c @@ -4,6 +4,7 @@ #include "player.h" #include "functions.h" #include "effects.h" +#include "enemy.h" extern u32 GetNextFunction(Entity*); diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c index 37ee4055..7d764c07 100644 --- a/src/enemy/likeLike.c +++ b/src/enemy/likeLike.c @@ -3,6 +3,7 @@ #include "save.h" #include "object.h" #include "functions.h" +#include "item.h" extern bool32 ItemIsShield(u32); diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c index 3898f0c0..3a065362 100644 --- a/src/enemy/mazaalHead.c +++ b/src/enemy/mazaalHead.c @@ -810,8 +810,8 @@ void sub_08034BC8(Entity* this) { void sub_08034C00(Entity* this) { if (((gPlayerState.flags & PL_MINISH) != 0) && - CheckPlayerInRegion(this->x.HALF.HI - gRoomControls.origin_x, - this->y.HALF.HI - gRoomControls.origin_y + 0xd, 3, 3) != 0) { + CheckPlayerInRegion(this->x.HALF.HI - gRoomControls.origin_x, this->y.HALF.HI - gRoomControls.origin_y + 0xd, 3, + 3) != 0) { if (gRoomTransition.field_0x39 >= 0x3d) { DoExitTransition((ScreenTransitionData*)&gUnk_080CED88); } else { diff --git a/src/enemy/miniSlime.c b/src/enemy/miniSlime.c index 488cb419..1bfc3fc6 100644 --- a/src/enemy/miniSlime.c +++ b/src/enemy/miniSlime.c @@ -3,7 +3,7 @@ void sub_08045374(Entity*); -extern void sub_080452E4(); +extern void sub_080452E4(Entity*); extern void ReplaceMonitoredEntity(Entity*, Entity*); extern void (*const gUnk_080D17C0[])(Entity*); diff --git a/src/enemy/octorok.c b/src/enemy/octorok.c index 4c142bdc..47d4c486 100644 --- a/src/enemy/octorok.c +++ b/src/enemy/octorok.c @@ -3,9 +3,9 @@ extern Entity* sub_08049DF4(u32); -void Octorok_Pause(); -bool32 Octorok_FacesPlayer(); -void Octorok_Turn(); +void Octorok_Pause(Entity*); +bool32 Octorok_FacesPlayer(Entity*); +void Octorok_Turn(Entity*); extern void (*const gOctorok[6])(Entity*); extern void (*const gOctorokActions[4])(Entity*); diff --git a/src/enemy/rollobite.c b/src/enemy/rollobite.c index 0a7dc34c..bf367eef 100644 --- a/src/enemy/rollobite.c +++ b/src/enemy/rollobite.c @@ -14,9 +14,9 @@ void sub_08020A7C(Entity*); bool32 Rollobite_TryToHoleUp(Entity*); bool32 Rollobite_IsRolledUp(Entity*); -extern void sub_080AE58C(); -extern void sub_080AE7E8(); -extern void sub_08078930(); +extern void sub_080AE58C(Entity*, u32, u32); +extern void sub_080AE7E8(Entity*, u32, u32, u32); +extern void sub_08078930(Entity*); void Rollobite(Entity* this) { EnemyFunctionHandler(this, gRollobiteFunctions); diff --git a/src/enemy/rope.c b/src/enemy/rope.c index e555d60b..bf0a7ecb 100644 --- a/src/enemy/rope.c +++ b/src/enemy/rope.c @@ -5,10 +5,10 @@ extern void (*const gRope[6])(Entity*); extern void (*const gUnk_080CE460[4])(Entity*); extern void (*const gUnk_080CE470[3])(Entity*); extern Entity* gUnk_020000B0; -extern u32 sub_0804A044(); +extern u32 sub_0804A044(Entity*, Entity*, u32); -void sub_08031600(); -u32 sub_0803163C(); +void sub_08031600(Entity*); +u32 sub_0803163C(Entity*); void Rope(Entity* this) { EnemyFunctionHandler(this, gRope); diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c index ffa409cd..cd068b96 100644 --- a/src/enemy/rupeeLike.c +++ b/src/enemy/rupeeLike.c @@ -78,7 +78,7 @@ void sub_080293B4(Entity* this) { CreateDeathFx(this, 0xff, gUnk_080CCC34[this->cutsceneBeh.HALF.LO * 3 + this->type]); } -void nullsub_141() { +void nullsub_141(Entity* this) { } void sub_080293DC(Entity* this) { diff --git a/src/enemy/slime.c b/src/enemy/slime.c index 2f2a18ee..e6faf992 100644 --- a/src/enemy/slime.c +++ b/src/enemy/slime.c @@ -37,7 +37,7 @@ void sub_08044F88(Entity* this) { } } -void nullsub_171() { +void nullsub_171(Entity* this) { } void sub_08044FC8(Entity* this) { diff --git a/src/enemy/smallPesto.c b/src/enemy/smallPesto.c index ec6d93ca..7e26ab7d 100644 --- a/src/enemy/smallPesto.c +++ b/src/enemy/smallPesto.c @@ -21,7 +21,7 @@ void sub_08031680(Entity* this) { gUnk_080CE548[this->action](this); } -void nullsub_152() { +void nullsub_152(Entity* this) { } void sub_0803169C(Entity* this) { diff --git a/src/enemy/tektite.c b/src/enemy/tektite.c index 07709ae9..e029da29 100644 --- a/src/enemy/tektite.c +++ b/src/enemy/tektite.c @@ -1,6 +1,8 @@ #include "enemy.h" #include "functions.h" +static void sub_0802F45C(Entity* this); + extern void (*const gUnk_080CDED0[])(Entity*); extern void (*const gUnk_080CDEE8[])(Entity*); @@ -175,7 +177,7 @@ void sub_0802F3F4(Entity* this) { } } -void sub_0802F45C(Entity* this) { +static void sub_0802F45C(Entity* this) { u32 temp; if (sub_08049FA0(this) == 0) { diff --git a/src/enemy/vaatiArm.c b/src/enemy/vaatiArm.c index 78a49cf7..cb01f671 100644 --- a/src/enemy/vaatiArm.c +++ b/src/enemy/vaatiArm.c @@ -546,8 +546,7 @@ void sub_08042C34(Entity* this) { y = gRoomControls.origin_y + gRoomControls.height + -0x40; } #endif - if (((u32)((x - gRoomControls.origin_x) - 0x90) < 0x41) && - ((u32)((y - gRoomControls.origin_y) - 8) < 0x41)) { + if (((u32)((x - gRoomControls.origin_x) - 0x90) < 0x41) && ((u32)((y - gRoomControls.origin_y) - 8) < 0x41)) { x = gRoomControls.origin_x + 0xb0; y = gRoomControls.origin_y + 0x40; } diff --git a/src/enemy/vaatiBall.c b/src/enemy/vaatiBall.c index 68e5be20..f02eedd3 100644 --- a/src/enemy/vaatiBall.c +++ b/src/enemy/vaatiBall.c @@ -141,7 +141,7 @@ void sub_080447E0(Entity* this) { } } -extern void sub_08044DEC(); +extern void sub_08044DEC(Entity*); void sub_08044868(Entity* this) { Entity* vaati = this->parent; diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index 6a3c1425..f0877357 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -389,8 +389,7 @@ void VaatiWrathType0Action8(Entity* this) { sub_08042004(this); UpdateAnimationSingleFrame(this); LinearMoveUpdate(this); - if (((gRoomControls.origin_x + 0x20) > this->x.HALF.HI) || - ((gRoomControls.origin_x + 0x140) < this->x.HALF.HI)) { + if (((gRoomControls.origin_x + 0x20) > this->x.HALF.HI) || ((gRoomControls.origin_x + 0x140) < this->x.HALF.HI)) { if (0x3f < this->speed) { this->direction ^= 0x10; } diff --git a/src/enemy/wisp.c b/src/enemy/wisp.c index 6b399d2d..190167e5 100644 --- a/src/enemy/wisp.c +++ b/src/enemy/wisp.c @@ -3,6 +3,8 @@ #include "object.h" #include "functions.h" +static void sub_08033744(Entity* this); + extern void (*const gUnk_080CEB74[])(Entity*); extern void (*const gUnk_080CEB8C[])(Entity*); extern void (*const gUnk_080CEB98[])(Entity*); @@ -120,7 +122,7 @@ void sub_080336DC(Entity* this) { } } -void sub_08033744(Entity* this) { +static void sub_08033744(Entity* this) { u32 temp; u32 rand = (u32)Random() % 256; diff --git a/src/enterPortalSubtask.c b/src/enterPortalSubtask.c index 712ab7ca..072c0e3f 100644 --- a/src/enterPortalSubtask.c +++ b/src/enterPortalSubtask.c @@ -12,8 +12,8 @@ typedef struct { u32 unk; } struct_02018EB0; -extern void (*const gUnk_080D4120[])(); -extern void (*const gUnk_080D412C[])(); +extern void (*const gUnk_080D4120[])(void); +extern void (*const gUnk_080D412C[])(void); extern struct_02018EB0 gUnk_02018EB0; diff --git a/src/entity.c b/src/entity.c index 8c75fa94..8092dd71 100644 --- a/src/entity.c +++ b/src/entity.c @@ -15,19 +15,19 @@ void sub_0805EE88(void); void ClearAllDeletedEntities(void); void DeleteAllEntities(void); void sub_0805E98C(void); -extern void sub_0806FE84(); -extern void sub_08078954(); +extern void sub_0806FE84(Entity*); +extern void sub_08078954(Entity*); extern void sub_08017744(Entity*); -extern void UnloadHitbox(); -extern void sub_0804AA1C(); +extern void UnloadHitbox(Entity*); +extern void sub_0804AA1C(Entity*); void ClearDeletedEntity(Entity*); -extern void _ClearAndUpdateEntities(); +extern void _ClearAndUpdateEntities(void); extern void UpdateEntities_arm(u32); static void UpdatePriorityTimer(void); -static void ReleaseTransitionManager(); -static void UnlinkEntity(); +static void ReleaseTransitionManager(void*); +static void UnlinkEntity(Entity*); typedef struct { void* table; @@ -106,7 +106,7 @@ bool32 AnyPrioritySet(void) { return prio != PRIO_MIN; } -static void UpdatePriority() { +static void UpdatePriority(void) { UpdatePriorityTimer(); if (gPriorityHandler.queued_priority) { gPriorityHandler.ent_priority = gPriorityHandler.queued_priority; @@ -175,7 +175,7 @@ void SetPlayerEventPriority(void) { gPlayerEntity.updatePriority = PRIO_PLAYER_EVENT; } -void ResetPlayerEventPriority() { +void ResetPlayerEventPriority(void) { gPriorityHandler.sys_priority = PRIO_MIN; gPlayerEntity.updatePriority = PRIO_PLAYER; } @@ -185,19 +185,19 @@ void RevokePriority(Entity* e) { ResetEntityPriority(); } -void SetRoomReloadPriority() { +void SetRoomReloadPriority(void) { gPriorityHandler.sys_priority = PRIO_PLAYER_EVENT; } -void SetInitializationPriority() { +void SetInitializationPriority(void) { gPriorityHandler.sys_priority = PRIO_HIGHEST; } -void ResetSystemPriority() { +void ResetSystemPriority(void) { gPriorityHandler.sys_priority = PRIO_MIN; } -void UpdateEntities() { +void UpdateEntities(void) { void (*f)(u32); gRoomVars.filler1[0] = gRoomVars.field_0x4; @@ -212,14 +212,14 @@ void UpdateEntities() { sub_0805EE88(); } -void UpdateManagers() { +void UpdateManagers(void) { void (*f)(u32); f = UpdateEntities_arm; f(1); ClearAllDeletedEntities(); } -void EraseAllEntities() { +void EraseAllEntities(void) { DeleteAllEntities(); MemClear(&gPriorityHandler, 12); MemClear(&gPlayerEntity, 10880); @@ -424,7 +424,7 @@ void DeleteManager(void* ent) { return; ReleaseTransitionManager(manager); - UnlinkEntity(manager); + UnlinkEntity((Entity*)manager); MemClear(manager, sizeof(Temp)); gManagerCount--; } diff --git a/src/fileselect.c b/src/fileselect.c index 8fe1f7a3..2a26ad02 100644 --- a/src/fileselect.c +++ b/src/fileselect.c @@ -6,6 +6,7 @@ #include "message.h" #include "object.h" #include "functions.h" +#include "subtask.h" // copy, erase, start #define NUM_FILE_OPERATIONS 3 @@ -92,7 +93,7 @@ static void sub_08050624(u32); static void sub_0805066C(void); static void HideButtonR(void); static void ShowButtonR(void); -void sub_08051458(); +void sub_08051458(void); void CreateDialogBox(u32 arg0, u32 arg1) { u32 sfx; diff --git a/src/game.c b/src/game.c index bde1233c..37cda100 100644 --- a/src/game.c +++ b/src/game.c @@ -16,6 +16,7 @@ #include "message.h" #include "game.h" #include "item.h" +#include "subtask.h" // Game task @@ -71,49 +72,50 @@ extern void* gUnk_080B755C[]; extern void** gExitLists[]; extern void** gAreaTable[]; -void FinalizeSave(void); -void ClearArmosData(void); -void ClearRoomMemory(void); -void ClearMenuSavestate(void); -void ResetUI(void); -void sub_0806FD8C(void); -void sub_080300C4(void); -u32 sub_0805BC04(void); -void DeleteSleepingEntities(void); -u32 UpdateLightLevel(void); -void sub_080185F8(void); -void UpdateDoorTransition(void); -u32 IsEnterPortal(void); -void UpdateCarriedObject(void); -void DrawUI(); -u32 CheckPlayerInactive(); -void CollisionMain(); -void sub_0805BB74(); -void CreateZeldaFollower(void); -void LoadRoomGfx(); -void RecycleEntities(); -void sub_0804AF90(); -void CallRoomProp6(); -void UpdateScroll(); -void UpdateBgAnim(); -void CleanUpGFXSlots(); -void sub_080ADE24(); -void InitUI(u32); -void sub_0801AE44(u32); -void GenerateAreaHint(void); -void ForceSetPlayerState(u32); -void UpdateRoomTracker(void); -void InitScriptData(void); -void sub_08054524(void); -void sub_080186D4(void); -void sub_0806F364(void); -void sub_08052FF4(u32 area, u32 room); -void sub_0807C860(void); -void sub_0807C740(void); -void SetBGDefaults(void); -void LoadItemGfx(void); +extern void CreateDialogBox(u32, u32); +extern void FinalizeSave(void); +extern void ClearArmosData(void); +extern void ClearRoomMemory(void); +extern void ClearMenuSavestate(void); +extern void ResetUI(void); +extern void sub_0806FD8C(void); +extern void sub_080300C4(void); +extern u32 sub_0805BC04(void); +extern void DeleteSleepingEntities(void); +extern u32 UpdateLightLevel(void); +extern void sub_080185F8(void); +extern void UpdateDoorTransition(void); +extern u32 IsEnterPortal(void); +extern void UpdateCarriedObject(void); +extern void DrawUI(void); +extern u32 CheckPlayerInactive(void); +extern void CollisionMain(void); +extern void sub_0805BB74(u32); +extern void CreateZeldaFollower(void); +extern void LoadRoomGfx(void); +extern void RecycleEntities(void); +extern void sub_0804AF90(void); +extern void CallRoomProp6(void); +extern void UpdateScroll(void); +extern void UpdateBgAnim(void); +extern void CleanUpGFXSlots(void); +extern void sub_080ADE24(void); +extern void InitUI(u32); +extern void sub_0801AE44(u32); +extern void GenerateAreaHint(void); +extern void ForceSetPlayerState(u32); +extern void UpdateRoomTracker(void); +extern void InitScriptData(void); +extern void sub_08054524(void); +extern void sub_080186D4(void); +extern void sub_0806F364(void); +extern void sub_08052FF4(u32 area, u32 room); +extern void sub_0807C860(void); +extern void sub_0807C740(void); +extern void SetBGDefaults(void); +extern void LoadItemGfx(void); -static void LoadRoomBgm(); +static void LoadRoomBgm(void); static void sub_08052010(void); static void ResetTmpFlags(void); static void InitializeEntities(void); @@ -133,7 +135,7 @@ static void sub_0805329C(void); static void InitializePlayer(void); /* static */ void sub_08051F9C(u32 a1, u32 a2, u32 a3, u32 a4); static void DrawGameOverText(void); -static u32 StairsAreValid(); +static u32 StairsAreValid(void); static void ClearFlagArray(const u16*); static void DummyHandler(u32* a1); static void sub_08053434(u32* a1); @@ -178,8 +180,6 @@ typedef struct { u16 _a; } PopupOption; -extern void CreateDialogBox(); - typedef struct { u8 area; u8 room; diff --git a/src/interrupts.c b/src/interrupts.c index 4041fd50..e7c6463d 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -21,18 +21,18 @@ extern Entity gUnk_03003BE0; extern Entity* gPlayerClones[3]; extern u16 gUnk_080B2CD8[]; -extern void sub_080ADD70(); -extern void sub_0801C25C(); -extern void UpdateDisplayControls(); -extern void LoadResources(); -extern void HandlePlayerLife(); -extern void DoPlayerAction(); -extern void sub_080171F0(); -extern void sub_08078FB0(); -extern void sub_0807A050(); -extern u32 sub_08079B24(); -extern void sub_08079708(); -extern void CreateSparkle(); +extern void sub_080ADD70(void); +extern void sub_0801C25C(void); +extern void UpdateDisplayControls(void); +extern void LoadResources(void); +extern void HandlePlayerLife(Entity*); +extern void DoPlayerAction(Entity*); +extern void sub_080171F0(void); +extern void sub_08078FB0(Entity*); +extern void sub_0807A050(void); +extern u32 sub_08079B24(void); +extern void sub_08079708(Entity*); +extern void CreateSparkle(Entity*); extern void sub_080028E0(Entity*); extern void sub_08078180(void); extern void sub_0807B0C8(void); diff --git a/src/item/itemLantern.c b/src/item/itemLantern.c index 6a171d8c..3376c721 100644 --- a/src/item/itemLantern.c +++ b/src/item/itemLantern.c @@ -2,6 +2,7 @@ #include "functions.h" #include "sound.h" #include "object.h" +#include "game.h" extern void (*const gUnk_0811BD68[])(ItemBehavior*, u32); diff --git a/src/item/itemMoleMitts.c b/src/item/itemMoleMitts.c index 5fdeb0b6..355f69df 100644 --- a/src/item/itemMoleMitts.c +++ b/src/item/itemMoleMitts.c @@ -10,7 +10,7 @@ s32 sub_080774A0(void); extern u8 gUnk_0811BE14[]; extern s32 sub_0800875A(Entity*, u32, ItemBehavior*); -extern void UpdatePlayerMovement(); +extern void UpdatePlayerMovement(void); void ItemMoleMitts(ItemBehavior* this, u32 arg1) { gUnk_0811BE04[this->stateID](this, arg1); diff --git a/src/item/itemShield.c b/src/item/itemShield.c index 621341e2..445bbece 100644 --- a/src/item/itemShield.c +++ b/src/item/itemShield.c @@ -6,7 +6,7 @@ extern void sub_08077E78(ItemBehavior*, u32); extern void SoundReq(u32); extern void UpdateItemAnim(ItemBehavior*); -extern u32 sub_08077EFC(); +extern u32 sub_08077EFC(ItemBehavior*); extern void sub_08077BB8(ItemBehavior*); extern void sub_08077D38(ItemBehavior*, u32); extern void sub_0806F948(Entity*); @@ -26,7 +26,7 @@ void sub_08076D04(ItemBehavior* beh, u32 arg1) { } void sub_08076D34(ItemBehavior* beh, u32 arg1) { - if (sub_08077EFC() != 0) { + if (sub_08077EFC(beh) != 0) { gPlayerState.field_0x3[0] |= 1; UpdateItemAnim(beh); if (beh->field_0x5[9] != 0) { diff --git a/src/main.c b/src/main.c index 7a15ed58..ced56ca5 100644 --- a/src/main.c +++ b/src/main.c @@ -29,10 +29,8 @@ void (*const sTaskHandlers[])(void) = { [TASK_FILE_SELECT] = FileSelectTask, #endif - [TASK_GAME] = GameTask, - [TASK_GAMEOVER] = GameOverTask, - [TASK_STAFFROLL] = StaffrollTask, - [TASK_DEBUG] = DebugTask, + [TASK_GAME] = GameTask, [TASK_GAMEOVER] = GameOverTask, + [TASK_STAFFROLL] = StaffrollTask, [TASK_DEBUG] = DebugTask, }; static void sub_080560B8(void); @@ -225,7 +223,7 @@ static u32 CheckHeaderValid(void) { return TRUE; } -void InitDMA() { +void InitDMA(void) { SoundReq(SONG_VSYNC_OFF); gScreen._6d = gScreen._6c; gScreen._6c = 0; @@ -238,7 +236,7 @@ void InitDMA() { DmaWait(3); } -void sub_08056208() { +void sub_08056208(void) { SoundReq(SONG_VSYNC_ON); gScreen._6c = gScreen._6d; gScreen._6d = 0; @@ -252,7 +250,7 @@ void sub_0805622C(void* a1, u32 a2, u32 a3) { gUnk_03003DE4 ^= 1; } -void sub_08056250() { +void sub_08056250(void) { gScreen._6c = 0; } @@ -299,10 +297,10 @@ u16 CheckRegionsOnScreen(u16* arr) { return 0xff; } -void PlayerItemNulled2() { +void PlayerItemNulled2(void) { DeleteThisEntity(); } -void PlayerItemNulled() { +void PlayerItemNulled(void) { DeleteThisEntity(); } diff --git a/src/manager/manager1.c b/src/manager/manager1.c index 51b28137..a47dd57b 100644 --- a/src/manager/manager1.c +++ b/src/manager/manager1.c @@ -2,6 +2,7 @@ #include "entity.h" #include "screen.h" #include "functions.h" +#include "common.h" extern void sub_08056250(void); diff --git a/src/manager/manager10.c b/src/manager/manager10.c index cedc2a29..1ba0150d 100644 --- a/src/manager/manager10.c +++ b/src/manager/manager10.c @@ -148,11 +148,11 @@ void sub_080596E0(Manager10* this) { } } -u32 sub_08059844() { +u32 sub_08059844(void) { return gPlayerEntity.x.HALF.HI - gRoomControls.origin_x > gRoomControls.width >> 1; } -u32 sub_0805986C() { +u32 sub_0805986C(void) { return gPlayerEntity.x.HALF.HI - gRoomControls.origin_x > 0x200; } @@ -207,7 +207,7 @@ void sub_08059960(const u16* unk1, const u16* unk2, u16* unk3, u8 unk4) { } } -void sub_08059994() { +void sub_08059994(void) { if (sub_0805986C()) { LoadPaletteGroup(0x5B); gArea.queued_bgm = 0x1E; diff --git a/src/manager/manager12.c b/src/manager/manager12.c index a29877bd..24b2e630 100644 --- a/src/manager/manager12.c +++ b/src/manager/manager12.c @@ -24,7 +24,7 @@ extern u16 gUnk_081083AE; extern u16 gUnk_081083C4; void sub_08059CC0(u32, u32); -void sub_08059B18(); +void sub_08059B18(void); bool32 sub_08059C8C(Manager12*, u32, u8*, u16*); diff --git a/src/manager/manager14.c b/src/manager/manager14.c index 367111f6..9f5d8154 100644 --- a/src/manager/manager14.c +++ b/src/manager/manager14.c @@ -30,8 +30,8 @@ void sub_0805A098(Manager14*); void sub_0805A0C0(Manager14*); void sub_0805A114(u32, u32); void sub_0805A1D8(Manager14*); -void nullsub_495(); -void sub_0805A25C(); +void nullsub_495(void*); +void sub_0805A25C(void*); void Manager14_Main(Manager14* this) { static void (*const gUnk_081085A4[])(Manager14*) = { @@ -186,10 +186,10 @@ void sub_0805A1D8(Manager14* this) { } } -void nullsub_495() { +void nullsub_495(void* this) { } -void sub_0805A25C() { +void sub_0805A25C(void* this) { gScreen.controls.layerFXControl = 0; gScreen.lcd.displayControl &= ~DISPCNT_BG3_ON; sub_08056250(); diff --git a/src/manager/manager1A.c b/src/manager/manager1A.c index 5e760473..9aea4722 100644 --- a/src/manager/manager1A.c +++ b/src/manager/manager1A.c @@ -165,10 +165,8 @@ void sub_0805B210(Manager1A* this) { gRoomTransition.player_status.start_pos_y = tmp->unk_06; break; case 1: - gRoomTransition.player_status.start_pos_x = - gPlayerEntity.x.HALF.HI - gRoomControls.origin_x + tmp->unk_04; - gRoomTransition.player_status.start_pos_y = - gPlayerEntity.y.HALF.HI - gRoomControls.origin_y + tmp->unk_06; + gRoomTransition.player_status.start_pos_x = gPlayerEntity.x.HALF.HI - gRoomControls.origin_x + tmp->unk_04; + gRoomTransition.player_status.start_pos_y = gPlayerEntity.y.HALF.HI - gRoomControls.origin_y + tmp->unk_06; break; case 2: gRoomTransition.player_status.start_pos_x = tmp->unk_04; diff --git a/src/manager/manager1B.c b/src/manager/manager1B.c index 8fb9e70a..4eafda98 100644 --- a/src/manager/manager1B.c +++ b/src/manager/manager1B.c @@ -2,6 +2,7 @@ #include "manager.h" #include "functions.h" #include "screen.h" +#include "common.h" typedef struct { Manager manager; diff --git a/src/manager/manager2.c b/src/manager/manager2.c index a9404c10..828dcbcc 100644 --- a/src/manager/manager2.c +++ b/src/manager/manager2.c @@ -1,6 +1,8 @@ #include "global.h" #include "screen.h" #include "functions.h" +#include "game.h" +#include "common.h" typedef struct { Manager manager; @@ -9,7 +11,7 @@ typedef struct { void* field_0x3c; } Manager2; -extern void sub_080576A0(); +extern void sub_080576A0(void*); extern void sub_0805754C(Manager2*); extern u8 gMapDataTopSpecial[]; @@ -81,9 +83,9 @@ void sub_08057688(void) { gScreen.bg1.control = BGCNT_SCREENBASE(30) | BGCNT_CHARBASE(2) | BGCNT_MOSAIC; } -void sub_080576A0(Manager2* this) { +void sub_080576A0(void* this) { LoadGfxGroup(gRoomVars.unk_10[0]); - this->field_0x38 = NULL; - this->field_0x3c = NULL; - sub_0805754C(this); + ((Manager2*)this)->field_0x38 = NULL; + ((Manager2*)this)->field_0x3c = NULL; + sub_0805754C((Manager2*)this); } diff --git a/src/manager/manager27.c b/src/manager/manager27.c index 8cd20656..e5c4483c 100644 --- a/src/manager/manager27.c +++ b/src/manager/manager27.c @@ -3,6 +3,7 @@ #include "entity.h" #include "flags.h" #include "functions.h" +#include "common.h" extern u32 sub_0805C920(Entity*); diff --git a/src/manager/manager2F.c b/src/manager/manager2F.c index 7b7285df..614e418a 100644 --- a/src/manager/manager2F.c +++ b/src/manager/manager2F.c @@ -4,6 +4,7 @@ #include "room.h" #include "screen.h" #include "functions.h" +#include "common.h" void sub_0805D470(Manager*); diff --git a/src/manager/manager4.c b/src/manager/manager4.c index e287d521..f73c9514 100644 --- a/src/manager/manager4.c +++ b/src/manager/manager4.c @@ -89,7 +89,7 @@ u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) { } } -extern void sub_08080930(); +extern void sub_08080930(u32); #ifdef EU ASM_FUNC("asm/non_matching/eu/sub_08057A18.inc", void sub_08057A18(Manager* this, DiggingCaveEntrance* entr)) diff --git a/src/manager/manager7.c b/src/manager/manager7.c index ba3e03a2..5316a4a3 100644 --- a/src/manager/manager7.c +++ b/src/manager/manager7.c @@ -1,6 +1,7 @@ #include "manager.h" #include "asm.h" #include "functions.h" +#include "common.h" typedef struct { Manager manager; @@ -8,8 +9,8 @@ typedef struct { u8 unk_21[0x1F]; } Manager7; -void sub_08057E30(); -u32 sub_08057E40(); +void sub_08057E30(void*); +u32 sub_08057E40(Manager7*); void sub_08057E7C(u32); extern u32 CheckRegionsOnScreen(const u16*); @@ -106,7 +107,7 @@ void Manager7_Main(Manager7* this) { } #endif -void sub_08057E30(Manager7* this) { +void sub_08057E30(void* this) { sub_08057E7C(gRoomVars.unk_10[0]); } @@ -120,7 +121,7 @@ u32 sub_08057E40(Manager7* this) { } } -void sub_08057E64() { +void sub_08057E64(void) { u32 tmp; tmp = CheckRegionsOnScreen(gUnk_08108050); if (tmp != 0xFF) { diff --git a/src/manager/manager8.c b/src/manager/manager8.c index f3fbffa9..7ec803be 100644 --- a/src/manager/manager8.c +++ b/src/manager/manager8.c @@ -1,6 +1,7 @@ #include "manager.h" #include "screen.h" #include "functions.h" +#include "common.h" typedef struct { Manager manager; @@ -11,7 +12,7 @@ typedef struct { } Manager8; void sub_08057F20(Manager8*); -void sub_08057EFC(); +void sub_08057EFC(void*); void sub_08058034(void); void sub_08058084(u16*, u16*); @@ -27,12 +28,12 @@ void Manager8_Main(Manager8* this) { } } -void sub_08057EFC(Manager8* this) { +void sub_08057EFC(void* this) { LoadGfxGroup((u32)gRoomVars.unk_10[0]); sub_08058034(); - this->unk_3c = 0; - this->unk_38 = 0; - sub_08057F20(this); + ((Manager8*)this)->unk_3c = 0; + ((Manager8*)this)->unk_38 = 0; + sub_08057F20(((Manager8*)this)); } void sub_08058004(u32, void*, void*); @@ -75,7 +76,7 @@ void sub_08058004(u32 unk1, void* unk2, void* unk3) { } } -void sub_08058034() { +void sub_08058034(void) { u32 tmp; u16 *tmp2, *tmp3; tmp2 = gMapDataTopSpecial; diff --git a/src/manager/manager9.c b/src/manager/manager9.c index 4e992f59..c00132df 100644 --- a/src/manager/manager9.c +++ b/src/manager/manager9.c @@ -3,6 +3,7 @@ #include "room.h" #include "screen.h" #include "functions.h" +#include "common.h" typedef struct { Manager manager; @@ -66,7 +67,7 @@ void sub_080582A0(u32 unk, u32* unk2, u16* unk3) { extern u8 gMapDataTopSpecial[]; -void sub_080582D0() { +void sub_080582D0(void) { u8* tmp = gMapDataTopSpecial; u8* tmp2 = tmp + 0x4000; sub_080582F8(tmp, tmp2); diff --git a/src/manager/managerC.c b/src/manager/managerC.c index f198cf04..5f498695 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -27,6 +27,8 @@ typedef struct { u16 unk_6; } struct_08108228; +void sub_08058D34(void); + void (*const gUnk_0810821C[])(ManagerC*); const struct_08108228 gUnk_08108228[6]; const struct_08108228 gUnk_08108258[6]; @@ -267,7 +269,7 @@ void sub_08058CB0(ManagerC* this) { this->unk_24.HALF.HI = this->unk_20 = gUnk_08108300[tmp3]; } -void sub_08058CFC() { +void sub_08058CFC(void) { u32 tmp = gPlayerEntity.y.HALF.HI - gRoomControls.scroll_y; if (tmp < 0x4C) { sub_080044AE(&gPlayerEntity, 0xC0, 0x10); @@ -277,7 +279,7 @@ void sub_08058CFC() { } } -void sub_08058D34() { +void sub_08058D34(void) { u16 tmp; u32 tmp2; LoadPaletteGroup(0x28); diff --git a/src/manager/managerF.c b/src/manager/managerF.c index dd27ac02..0a7cec00 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -284,7 +284,7 @@ void sub_08059220(ManagerF* this) { } } -void sub_08059278() { +void sub_08059278(void) { ManagerF* tmp; tmp = (ManagerF*)FindEntityByID(0x9, 0xF, 0x6); if (tmp) { diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c index f9bc50b6..8b313f98 100644 --- a/src/npc/bladeBrothers.c +++ b/src/npc/bladeBrothers.c @@ -8,6 +8,7 @@ #include "script.h" #include "npc.h" #include "functions.h" +#include "game.h" extern void (*gUnk_081115C0[])(Entity*); extern void (*gUnk_081115D0[])(Entity*); diff --git a/src/npc/cat.c b/src/npc/cat.c index 09ec72d2..1b69f913 100644 --- a/src/npc/cat.c +++ b/src/npc/cat.c @@ -5,7 +5,7 @@ #include "message.h" #include "npc.h" -extern void sub_08067C44(); +extern void sub_08067C44(Entity*); extern void (*gCat[9])(Entity*); @@ -14,7 +14,7 @@ extern Dialog gUnk_08110EF8; extern Hitbox gUnk_08110EF0; extern void sub_08067B08(Entity*); -extern u32 sub_08067D20(); +extern u32 sub_08067D20(Entity*); extern void sub_08067AAC(Entity*); extern void sub_08067B34(Entity*); extern void sub_08067B80(Entity*, u32); diff --git a/src/npc/dampe.c b/src/npc/dampe.c index fd7ddbb7..5c22a331 100644 --- a/src/npc/dampe.c +++ b/src/npc/dampe.c @@ -84,7 +84,7 @@ void sub_0806BEC8(Entity* this, ScriptExecutionContext* context) { MessageNoOverlap(gUnk_0811334A[msgIndex], this); } -void sub_0806BEFC() { +void sub_0806BEFC(void) { SetTileType(0x17E, 0x58E, 1); SetTileType(0x17F, 0x58F, 1); SetTileType(0x180, 0x5CE, 1); diff --git a/src/npc/dog.c b/src/npc/dog.c index bd88e5c3..85ed9568 100644 --- a/src/npc/dog.c +++ b/src/npc/dog.c @@ -4,7 +4,7 @@ extern void (*gUnk_08111D88[])(Entity*); void sub_08069FE8(Entity*); -u32 sub_08069EF0(); +u32 sub_08069EF0(Entity*); extern u8 gUnk_08111DA8[]; u32 sub_08069F90(Entity*); diff --git a/src/npc/guard.c b/src/npc/guard.c index b0f44595..d8afe8b2 100644 --- a/src/npc/guard.c +++ b/src/npc/guard.c @@ -7,6 +7,7 @@ #include "script.h" #include "functions.h" #include "npc.h" +#include "projectile.h" typedef struct { u32 unk; diff --git a/src/npc/mailbox.c b/src/npc/mailbox.c index 9dc5df22..755e0b2c 100644 --- a/src/npc/mailbox.c +++ b/src/npc/mailbox.c @@ -4,7 +4,7 @@ #include "effects.h" #include "npc.h" -extern void sub_08063280(); +extern void sub_08063280(Entity*, u32); extern void (*gMailboxBehaviors[4])(Entity*); diff --git a/src/npc/mayorHagen.c b/src/npc/mayorHagen.c index bf56dd1d..673b2b81 100644 --- a/src/npc/mayorHagen.c +++ b/src/npc/mayorHagen.c @@ -4,7 +4,7 @@ #include "flags.h" #include "npc.h" -extern void sub_08078850(); +extern void sub_08078850(Entity*, u32, u32, u32*); extern u32 gUnk_08113F44; extern Dialog gUnk_08113F48[]; diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index d5952c03..19c7b63a 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -6,6 +6,7 @@ #include "flags.h" #include "object.h" #include "npc.h" +#include "game.h" extern Hitbox gHitbox_2; typedef struct { @@ -184,7 +185,7 @@ void sub_0806DC58(Entity* this) { ForceEquipItem(sub_0806DBF4(this->field_0x68.HALF.HI), 1); } -void sub_0806DC7C() { +void sub_0806DC7C(void) { const u16* tiles = gUnk_081141F4; while (*tiles != 0) { u32 tile = *tiles; @@ -193,7 +194,7 @@ void sub_0806DC7C() { } } -void sub_0806DCA0() { +void sub_0806DCA0(void) { const u16* tiles = gUnk_081141F4; while (*tiles != 0) { u32 tile = *tiles; @@ -202,7 +203,7 @@ void sub_0806DCA0() { } } -void sub_0806DCC0() { +void sub_0806DCC0(void) { gRoomTransition.player_status.overworld_map_x = 0x7c8; gRoomTransition.player_status.overworld_map_y = 0xf8; } diff --git a/src/npc/npc5.c b/src/npc/npc5.c index 1fa8c0f6..6ad456bb 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -822,7 +822,7 @@ bool32 sub_08061A74(Entity* this, s32 x, s32 y, s32 param) { return TRUE; } -void sub_08061AA0() { +void sub_08061AA0(void) { DeleteThisEntity(); } diff --git a/src/npc/pina.c b/src/npc/pina.c index a36763ae..1ca1e56e 100644 --- a/src/npc/pina.c +++ b/src/npc/pina.c @@ -3,6 +3,7 @@ #include "message.h" #include "save.h" #include "npc.h" +#include "object.h" void sub_08063B68(Entity* this); void sub_08063A80(Entity* this); diff --git a/src/npc/stamp.c b/src/npc/stamp.c index 645fe1cc..4fd6944b 100644 --- a/src/npc/stamp.c +++ b/src/npc/stamp.c @@ -5,7 +5,7 @@ #include "effects.h" #include "npc.h" -extern void sub_08062CA4(); +extern void sub_08062CA4(Entity*); extern void (*gStampBehaviors1[4])(Entity*); extern void (*gStampBehaviors2[2])(Entity*); diff --git a/src/npc/stockwell.c b/src/npc/stockwell.c index 40ad8706..05f38e8c 100644 --- a/src/npc/stockwell.c +++ b/src/npc/stockwell.c @@ -4,6 +4,8 @@ #include "message.h" #include "functions.h" #include "npc.h" +#include "object.h" +#include "item.h" extern void (*const gUnk_0810FDC8[])(Entity*); diff --git a/src/npc/townMinish.c b/src/npc/townMinish.c index 557b7341..50045270 100644 --- a/src/npc/townMinish.c +++ b/src/npc/townMinish.c @@ -3,9 +3,9 @@ #include "npc.h" #include "functions.h" -extern u32 sub_080002C0(); +extern u32 sub_080002C0(u32, u32, u32); extern void sub_0806ACC4(Entity*); -extern void sub_0806AEA8(); +extern void sub_0806AEA8(Entity*); extern void sub_0806AEE4(Entity*); extern void sub_0806AFE8(Entity*, ScriptExecutionContext*); extern void sub_08078850(Entity*, u32, u32, u32*); @@ -14,7 +14,7 @@ extern u8 gUnk_081125F4[12]; extern SpriteLoadData gUnk_08112674[]; extern u32 gUnk_081126D4[4]; extern u8 gUnk_081126E4[4]; -extern void (*gUnk_081126E8[])(); +extern void (*gUnk_081126E8[])(Entity*); extern Dialog gUnk_081126F0[0x10]; extern void (*gUnk_08112BF0[])(Entity*, ScriptExecutionContext*); extern u16 gUnk_08112C40[5]; diff --git a/src/npcUtils.c b/src/npcUtils.c index 01ddd448..f1b97dd6 100644 --- a/src/npcUtils.c +++ b/src/npcUtils.c @@ -10,7 +10,7 @@ extern const NPCDefinition gNPCDefinitions[]; extern Hitbox* gNPCHitboxes[]; -extern u32 (*gUnk_08114EFC[])(); +extern u32 (*gUnk_08114EFC[])(Entity*); extern u32 (*gUnk_08114F0C[])(Entity*, u8*); typedef struct { diff --git a/src/object/bird.c b/src/object/bird.c index 33bea93a..24e2693b 100644 --- a/src/object/bird.c +++ b/src/object/bird.c @@ -1,6 +1,7 @@ #include "save.h" #include "object.h" #include "functions.h" +#include "item.h" extern void (*const gUnk_08123EC0[])(Entity*); extern void (*const gUnk_08123EEC[])(Entity*); diff --git a/src/object/book.c b/src/object/book.c index 3da498bc..7c3bf57e 100644 --- a/src/object/book.c +++ b/src/object/book.c @@ -1,6 +1,7 @@ #include "object.h" #include "functions.h" #include "message.h" +#include "item.h" extern void (*const BookActionFuncs[])(Entity*); extern s8 const gUnk_08123D94[]; diff --git a/src/object/cloud.c b/src/object/cloud.c index dd3da89d..5c4383d8 100644 --- a/src/object/cloud.c +++ b/src/object/cloud.c @@ -2,6 +2,8 @@ #include "structures.h" #include "functions.h" +void sub_0809F814(u32 r0); + extern void sub_0809F7BC(Entity*); extern void sub_0809F7F4(Entity*); extern void (*gUnk_08124798[])(Entity*); diff --git a/src/object/greatFairy.c b/src/object/greatFairy.c index 85e8681a..9232fd21 100644 --- a/src/object/greatFairy.c +++ b/src/object/greatFairy.c @@ -6,7 +6,7 @@ void GreatFairy_InitializeAnimation(Entity*); Entity* GreatFairy_CreateForm(Entity*, u32, u32); -void sub_080873D0(); +void sub_080873D0(Entity*); extern void (*const GreatFairy_Main[])(Entity*); extern void (*const GreatFairy_Behaviors[])(Entity*); extern void (*const GreatFairy_WingsBehaviors[])(Entity*); diff --git a/src/object/heartContainer.c b/src/object/heartContainer.c index 433fb87e..9e8346b3 100644 --- a/src/object/heartContainer.c +++ b/src/object/heartContainer.c @@ -2,6 +2,7 @@ #include "entity.h" #include "flags.h" #include "functions.h" +#include "item.h" static void sub_0808E6A0(Entity*); static void sub_0808E6E4(Entity*); diff --git a/src/object/lilypadSmall.c b/src/object/lilypadSmall.c index 31c5c3a8..5ec5fb84 100644 --- a/src/object/lilypadSmall.c +++ b/src/object/lilypadSmall.c @@ -6,6 +6,7 @@ extern void sub_080A2CC0(Entity*, Entity**, u16*); extern u16 gUnk_08123318[]; static void sub_08097B24(Entity* this); +static u32 sub_08097ADC(Entity* this); void LilypadSmall(Entity* this) { u32 rand; @@ -30,7 +31,7 @@ void LilypadSmall(Entity* this) { } } -u32 sub_08097ADC(Entity* this) { +static u32 sub_08097ADC(Entity* this) { if ((gPlayerState.flags & PL_MINISH) == 0) { return 0; } else if (EntityInRectRadius(this, &gPlayerEntity, 8, 8) == 0) { diff --git a/src/object/object1A.c b/src/object/object1A.c index bdc3fe49..292a70f6 100644 --- a/src/object/object1A.c +++ b/src/object/object1A.c @@ -1,7 +1,7 @@ #include "object.h" #include "functions.h" -extern void sub_08086A6C(); +extern void sub_08086A6C(Entity*); extern void (*gUnk_081206C4[99])(Entity*); diff --git a/src/object/object6A.c b/src/object/object6A.c index 1f956870..f02d7660 100644 --- a/src/object/object6A.c +++ b/src/object/object6A.c @@ -5,6 +5,7 @@ #include "message.h" #include "functions.h" #include "screen.h" +#include "item.h" extern u8 gUnk_08114F30[]; extern u8 gUnk_08114F34[]; diff --git a/src/object/objectA8.c b/src/object/objectA8.c index ef00c9df..8a347a1f 100644 --- a/src/object/objectA8.c +++ b/src/object/objectA8.c @@ -1,6 +1,7 @@ #include "entity.h" #include "player.h" #include "functions.h" +#include "item.h" extern void (*gUnk_08124824[])(Entity*); diff --git a/src/object/palaceArchway.c b/src/object/palaceArchway.c index 13e6d3bb..f1c0abb9 100644 --- a/src/object/palaceArchway.c +++ b/src/object/palaceArchway.c @@ -14,5 +14,5 @@ void sub_0809F2A0(Entity* this) { SetTile(0x4069, COORD_TO_TILE(this), this->collisionLayer); } -void nullsub_537() { +void nullsub_537(Entity* this) { } diff --git a/src/player.c b/src/player.c index 26ee17c9..1f6b0cc7 100644 --- a/src/player.c +++ b/src/player.c @@ -241,7 +241,7 @@ static EntityAction sub_0807518C; static EntityAction sub_080751B4; static void sub_080717F8(Entity*); -static void reset_priority(); +static void reset_priority(void); static void break_out(Entity* this); static void sub_08073AD4(Entity* this); static void sub_08073B60(Entity*); @@ -257,44 +257,41 @@ void SurfaceAction_Ladder(Entity*); void SurfaceAction_AutoLadder(Entity*); extern void sub_080A4D88(void); -extern void RespawnPlayer(); -extern void sub_080797EC(); -extern void UpdatePlayerMovement(); -extern void sub_08077698(); -extern void sub_08079258(); -extern void EnablePlayerDraw(); -extern u32 sub_08079B24(); -extern void sub_08079708(); -extern void sub_080792D8(); -extern Entity* CreatePlayerBomb(); -extern u32 sub_0806F854(); -extern u32 UpdatePlayerCollision(); -extern void sub_08079744(); -extern void sub_0807AE20(); -extern u32 sub_0807A894(); -extern u32 sub_080797C4(); -extern u32 sub_0807AC54(); -extern void sub_0800892E(); -extern void sub_08078F24(); -extern void sub_0807B068(); -extern u32 sub_080001DA(); -extern u32 sub_0807A2F8(); -extern u32 sub_0806F730(); -extern u32 sub_08007DD6(); -extern u32 GetSurfaceCalcType(); +extern void RespawnPlayer(void); +extern void sub_080797EC(void); +extern void UpdatePlayerMovement(void); +extern void sub_08079258(void); +extern void EnablePlayerDraw(Entity*); +extern u32 sub_08079B24(void); +extern void sub_08079708(Entity*); +extern Entity* CreatePlayerBomb(Entity*, u32); +extern u32 sub_0806F854(Entity*, s32, s32); +extern u32 UpdatePlayerCollision(void); +extern void sub_08079744(Entity*); +extern void sub_0807AE20(Entity*); +extern u32 sub_0807A894(Entity*); +extern u32 sub_080797C4(void); +extern void sub_0800892E(Entity*); +extern void sub_08078F24(void); +extern void sub_0807B068(Entity*); +extern u32 sub_080001DA(u32, u32); +extern u32 sub_0807A2F8(u32); +extern u32 sub_0806F730(Entity*); +extern u32 sub_08007DD6(u32, const u16*); +extern u32 GetSurfaceCalcType(Entity*, u32, u32); extern void sub_08074808(Entity* this); extern void DoJump(Entity*); extern void SetZeldaFollowTarget(Entity*); u32 ItemIsSword(u32 item); -extern u32 sub_0807A2B8(); -extern u32 sub_08079550(); -extern u32 sub_080782C0(); +extern u32 sub_0807A2B8(void); +extern u32 sub_08079550(void); +extern u32 sub_080782C0(void); extern u32 sub_080793E4(u32); extern void sub_08008AC6(Entity*); extern u32 sub_08079C30(Entity*); -extern void sub_08077AEC(); -extern u32 RunQueuedAction(); -extern void UpdatePlayerSkills(); +extern void sub_08077AEC(void); +extern u32 RunQueuedAction(void); +extern void UpdatePlayerSkills(void); void sub_08077698(Entity*); u32 sub_080782C0(void); @@ -3294,7 +3291,7 @@ static NONMATCH("asm/non_matching/player/sub_080740D8.inc", void sub_080740D8(En } END_NONMATCH -u32 sub_080741C4() { +u32 sub_080741C4(void) { if ((gPlayerState.jump_status && (gPlayerState.jump_status & 7) != 3) || gPlayerEntity.z.WORD != 0) { gPlayerState.field_0x11 = 0; gPlayerState.field_0x37 = 0; @@ -3529,7 +3526,7 @@ void SurfaceAction_Water(Entity* this) { } void sub_08074808(Entity* this) { - sub_08077AEC(this); + sub_08077AEC(); if (GetInventoryValue(ITEM_FLIPPERS) == 1) { if (!gPlayerState.swim_state) { if ((gPlayerState.flags & 0x10000) != 0) @@ -3559,7 +3556,7 @@ void SurfaceAction_Button(Entity* this) { gPlayerState.field_0x3f -= 2; } -void sub_080748D4() { +void sub_080748D4(void) { sub_080741C4(); } diff --git a/src/playerItem.c b/src/playerItem.c index a6c41629..bb91563e 100644 --- a/src/playerItem.c +++ b/src/playerItem.c @@ -1,26 +1,29 @@ #include "global.h" #include "functions.h" +#include "player.h" -extern void PlayerItemSword(); -extern void PlayerItemBomb(); -extern void PlayerItem3(); -extern void PlayerItemBow(); -extern void PlayerItemShield(); -extern void PlayerItemLantern(); -extern void PlayerItemNulled(); -extern void PlayerItemGustJar(); -extern void PlayerItemPacciCane(); -extern void PlayerItemC(); -extern void PlayerItemCellOverwriteSet(); -extern void PlayerItemSwordSpin(); -extern void PlayerItemSwordBeam(); -extern void PlayerItem10(); -extern void PlayerItem11(); -extern void PlayerItem12(); -extern void PlayerItem13(); -extern void PlayerItem14(); -extern void PlayerItem15(); -extern void PlayerItemNulled2(); +typedef void(PlayerItemFunc)(Entity*); + +PlayerItemFunc PlayerItemSword; +PlayerItemFunc PlayerItemBomb; +PlayerItemFunc PlayerItem3; +PlayerItemFunc PlayerItemBow; +PlayerItemFunc PlayerItemShield; +PlayerItemFunc PlayerItemLantern; +PlayerItemFunc PlayerItemNulled; +PlayerItemFunc PlayerItemGustJar; +PlayerItemFunc PlayerItemPacciCane; +PlayerItemFunc PlayerItemC; +PlayerItemFunc PlayerItemCellOverwriteSet; +PlayerItemFunc PlayerItemSwordSpin; +PlayerItemFunc PlayerItemSwordBeam; +PlayerItemFunc PlayerItem10; +PlayerItemFunc PlayerItem11; +PlayerItemFunc PlayerItem12; +PlayerItemFunc PlayerItem13; +PlayerItemFunc PlayerItem14; +PlayerItemFunc PlayerItem15; +PlayerItemFunc PlayerItemNulled2; typedef struct { u8 bitfield; @@ -34,7 +37,7 @@ typedef struct { extern const PlayerItemDefinition gPlayerItemDefinitions[]; extern const PlayerItemDefinition* gAdditionalPlayerItemDefinitions[3]; -void (*const gPlayerItemFunctions[])() = { +PlayerItemFunc* const gPlayerItemFunctions[] = { DeleteEntity, PlayerItemSword, PlayerItemBomb, diff --git a/src/playerItem/playerItem14.c b/src/playerItem/playerItem14.c index e48fd10b..3e50c389 100644 --- a/src/playerItem/playerItem14.c +++ b/src/playerItem/playerItem14.c @@ -2,6 +2,7 @@ #include "sound.h" #include "functions.h" #include "effects.h" +#include "asm.h" extern void (*const gUnk_08109AC8[])(Entity*); extern Hitbox gUnk_08109AD0; diff --git a/src/playerItem/playerItemPacciCane.c b/src/playerItem/playerItemPacciCane.c index c009e4b9..3a6f533c 100644 --- a/src/playerItem/playerItemPacciCane.c +++ b/src/playerItem/playerItemPacciCane.c @@ -25,6 +25,6 @@ void sub_080704D4(Entity* this) { ASM_FUNC("asm/non_matching/playerItemPacciCane/sub_080704FC.inc", void sub_080704FC(Entity* this)) -void ClearMenuSavestate() { +void ClearMenuSavestate(void) { MemClear(gUnk_02034490, sizeof(gUnk_02034490)); } diff --git a/src/playerItem/playerItemSwordBeam.c b/src/playerItem/playerItemSwordBeam.c index 671c13b5..b39ce936 100644 --- a/src/playerItem/playerItemSwordBeam.c +++ b/src/playerItem/playerItemSwordBeam.c @@ -5,6 +5,7 @@ #include "sound.h" #include "effects.h" #include "common.h" +#include "asm.h" extern void (*const gUnk_080B43F4[])(Entity*); diff --git a/src/projectile/ballAndChain.c b/src/projectile/ballAndChain.c index 281b04b6..61a812ba 100644 --- a/src/projectile/ballAndChain.c +++ b/src/projectile/ballAndChain.c @@ -1,5 +1,6 @@ #include "entity.h" #include "functions.h" +#include "projectile.h" bool32 sub_080AB12C(Entity* this); diff --git a/src/projectile/guardLineOfSight.c b/src/projectile/guardLineOfSight.c index 02ecc3cd..67dd7576 100644 --- a/src/projectile/guardLineOfSight.c +++ b/src/projectile/guardLineOfSight.c @@ -2,6 +2,7 @@ #include "asm.h" #include "coord.h" #include "functions.h" +#include "projectile.h" extern u32 sub_080644C8(Entity*); extern bool32 sub_080AE4CC(Entity*, u32, u32, u32); diff --git a/src/projectile/gyorgTail.c b/src/projectile/gyorgTail.c index c36bc6ad..36a0498e 100644 --- a/src/projectile/gyorgTail.c +++ b/src/projectile/gyorgTail.c @@ -3,6 +3,7 @@ #include "coord.h" #include "sound.h" #include "functions.h" +#include "projectile.h" extern u8 gEntCount; extern Hitbox gHitbox_21; diff --git a/src/projectile/v1EyeLaser.c b/src/projectile/v1EyeLaser.c index 500cee96..b1b068e8 100644 --- a/src/projectile/v1EyeLaser.c +++ b/src/projectile/v1EyeLaser.c @@ -1,5 +1,6 @@ #include "entity.h" #include "functions.h" +#include "projectile.h" extern void (*const V1EyeLaser_Actions[])(Entity*); extern const Hitbox* const gUnk_0812A5F4[]; diff --git a/src/projectile/winder.c b/src/projectile/winder.c index 7a0471e6..8dddd4a4 100644 --- a/src/projectile/winder.c +++ b/src/projectile/winder.c @@ -2,6 +2,7 @@ #include "asm.h" #include "functions.h" #include "common.h" +#include "projectile.h" extern void (*const Winder_Actions[])(Entity*); extern const u8 gUnk_0812A6BC[]; diff --git a/src/room.c b/src/room.c index 76d09d83..8e8928d0 100644 --- a/src/room.c +++ b/src/room.c @@ -8,7 +8,7 @@ #include "game.h" extern void sub_0804B058(EntityData* dat); -extern void sub_0801AC98(); +extern void sub_0801AC98(void); extern u32 sub_08049D1C(u32); extern Entity* LoadRoomEntity(EntityData*); extern void* GetRoomProperty(u32, u32, u32); @@ -17,8 +17,8 @@ extern void** gCurrentRoomProperties; extern void*** gAreaTable[]; extern u8 gUnk_081091E4[]; -extern void sub_080186EC(); -extern void sub_0804B16C(); +extern void sub_080186EC(void); +extern void sub_0804B16C(void); extern void ClearSmallChests(void); extern Entity* GetEmptyEntityByKind(u32 kind); @@ -147,9 +147,9 @@ void sub_0804AFB0(void** properties) { } } -u32 CallRoomProp6() { +u32 CallRoomProp6(void) { u32 result; - u32 (*func)(); + u32 (*func)(void); result = 1; func = (u32(*)())GetCurrentRoomProperty(6); @@ -159,7 +159,7 @@ u32 CallRoomProp6() { } void CallRoomProp5And7(void) { - void (*func)(); + void (*func)(void); sub_080186EC(); func = (void (*)())GetCurrentRoomProperty(5); @@ -219,7 +219,7 @@ void SetCurrentRoomPropertyList(u32 area, u32 room) { } void sub_0804B0E8(u32 arg0, u32 arg1) { - void (*func)(); + void (*func)(void); // init function at index 4 of room data func = (void (*)())GetRoomProperty(arg0, arg1, 4); diff --git a/src/roomInit.c b/src/roomInit.c index 11bc69fb..5f6ee01a 100644 --- a/src/roomInit.c +++ b/src/roomInit.c @@ -1,150 +1,159 @@ #include "global.h" - #include "main.h" #include "common.h" - #include "functions.h" - #include "sound.h" #include "effects.h" #include "screen.h" #include "flags.h" #include "item.h" #include "save.h" - #include "area.h" #include "game.h" - #include "npc.h" +#include "kinstone.h" + +extern u32 sub_08060354(void); +extern void sub_08057E64(void); +extern void sub_0809F814(u32); +extern void sub_080300E8(void); +extern void sub_08058D34(void); +extern void sub_0807BB98(u32, u32, u32, u32); +extern void sub_080AF2E4(void); +extern void sub_08059994(void); static void sub_0804E150(void); +static void sub_0804D0B4(void); +static void sub_0804D9B0(void); +static void sub_0804ED18(void); +static void sub_0804F578(void); u32 sub_unk3_ArmosInteriors_RuinsEntranceNorth(u32 arg0) { return 1; } -void sub_StateChange_ArmosInteriors_RuinsEntranceNorth() { +void sub_StateChange_ArmosInteriors_RuinsEntranceNorth(void) { sub_08030118(0); } -u32 sub_unk3_ArmosInteriors_RuinsEntranceSouth() { +u32 sub_unk3_ArmosInteriors_RuinsEntranceSouth(void) { return 1; } -void sub_StateChange_ArmosInteriors_RuinsEntranceSouth() { +void sub_StateChange_ArmosInteriors_RuinsEntranceSouth(void) { sub_08030118(1); } -u32 sub_unk3_ArmosInteriors_RuinsLeft() { +u32 sub_unk3_ArmosInteriors_RuinsLeft(void) { return 1; } -void sub_StateChange_ArmosInteriors_RuinsLeft() { +void sub_StateChange_ArmosInteriors_RuinsLeft(void) { sub_08030118(2); } -u32 sub_unk3_ArmosInteriors_RuinsMiddleLeft() { +u32 sub_unk3_ArmosInteriors_RuinsMiddleLeft(void) { return 1; } -void sub_StateChange_ArmosInteriors_RuinsMiddleLeft() { +void sub_StateChange_ArmosInteriors_RuinsMiddleLeft(void) { sub_08030118(3); } -u32 sub_unk3_ArmosInteriors_RuinsMiddleRight() { +u32 sub_unk3_ArmosInteriors_RuinsMiddleRight(void) { return 1; } -void sub_StateChange_ArmosInteriors_RuinsMiddleRight() { +void sub_StateChange_ArmosInteriors_RuinsMiddleRight(void) { sub_08030118(4); } -u32 sub_unk3_ArmosInteriors_RuinsRight() { +u32 sub_unk3_ArmosInteriors_RuinsRight(void) { return 1; } -void sub_StateChange_ArmosInteriors_RuinsRight() { +void sub_StateChange_ArmosInteriors_RuinsRight(void) { sub_08030118(5); } -u32 sub_unk3_ArmosInteriors_6() { +u32 sub_unk3_ArmosInteriors_6(void) { return 1; } -void sub_StateChange_ArmosInteriors_6() { +void sub_StateChange_ArmosInteriors_6(void) { sub_08030118(6); } -u32 sub_unk3_ArmosInteriors_RuinsGrassPath() { +u32 sub_unk3_ArmosInteriors_RuinsGrassPath(void) { return 1; } -void sub_StateChange_ArmosInteriors_RuinsGrassPath() { +void sub_StateChange_ArmosInteriors_RuinsGrassPath(void) { sub_08030118(7); } -u32 sub_unk3_ArmosInteriors_8() { +u32 sub_unk3_ArmosInteriors_8(void) { return 1; } -void sub_StateChange_ArmosInteriors_8() { +void sub_StateChange_ArmosInteriors_8(void) { sub_08030118(8); } -u32 sub_unk3_ArmosInteriors_FortressOfWindsLeft() { +u32 sub_unk3_ArmosInteriors_FortressOfWindsLeft(void) { return 1; } -void sub_StateChange_ArmosInteriors_FortressOfWindsLeft() { +void sub_StateChange_ArmosInteriors_FortressOfWindsLeft(void) { sub_08030118(9); gArea.dungeon_idx = 3; gArea.areaMetadata = 0x4e; } -u32 sub_unk3_ArmosInteriors_FortressOfWindsRight() { +u32 sub_unk3_ArmosInteriors_FortressOfWindsRight(void) { return 1; } -void sub_StateChange_ArmosInteriors_FortressOfWindsRight() { +void sub_StateChange_ArmosInteriors_FortressOfWindsRight(void) { sub_08030118(10); gArea.dungeon_idx = 3; gArea.areaMetadata = 0x4e; } -u32 sub_unk3_CrenelMinishPaths_CrenelBean() { +u32 sub_unk3_CrenelMinishPaths_CrenelBean(void) { return 1; } -void sub_StateChange_CrenelMinishPaths_CrenelBean() { +void sub_StateChange_CrenelMinishPaths_CrenelBean(void) { sub_080575C8(35); sub_08057688(); } -u32 sub_unk3_CrenelMinishPaths_CrenelWater() { +u32 sub_unk3_CrenelMinishPaths_CrenelWater(void) { return 1; } -void sub_StateChange_CrenelMinishPaths_CrenelWater() { +void sub_StateChange_CrenelMinishPaths_CrenelWater(void) { sub_080575C8(35); } -void sub_unk1_CrenelMinishPaths_CrenelWater() { +void sub_unk1_CrenelMinishPaths_CrenelWater(void) { sub_080575C8(35); } -u32 sub_unk3_CrenelMinishPaths_Rainfall() { +u32 sub_unk3_CrenelMinishPaths_Rainfall(void) { return 1; } -void sub_StateChange_CrenelMinishPaths_Rainfall() { +void sub_StateChange_CrenelMinishPaths_Rainfall(void) { sub_080580B0(34); } -void sub_unk1_CrenelMinishPaths_Rainfall() { +void sub_unk1_CrenelMinishPaths_Rainfall(void) { sub_080580B0(34); } -u32 sub_unk3_CrenelMinishPaths_MelarisMine() { +u32 sub_unk3_CrenelMinishPaths_MelarisMine(void) { return 1; } @@ -155,59 +164,59 @@ void sub_StateChange_CrenelMinishPaths_MelarisMine(void) { SetGlobalFlag(WHITE_SWORD_END); } -void sub_unk1_CrenelMinishPaths_MelarisMine() { +void sub_unk1_CrenelMinishPaths_MelarisMine(void) { sub_080580B0(34); } -u32 sub_unk3_MinishPaths1_ToMinishVillage() { +u32 sub_unk3_MinishPaths1_ToMinishVillage(void) { return 1; } -void sub_StateChange_MinishPaths1_ToMinishVillage() { +void sub_StateChange_MinishPaths1_ToMinishVillage(void) { sub_080575C8(30); } -void sub_unk1_MinishPaths1_ToMinishVillage() { +void sub_unk1_MinishPaths1_ToMinishVillage(void) { sub_080575C8(30); } -u32 sub_unk3_MinishPaths1_CastorWilds() { +u32 sub_unk3_MinishPaths1_CastorWilds(void) { return 1; } -void sub_StateChange_MinishPaths1_CastorWilds() { +void sub_StateChange_MinishPaths1_CastorWilds(void) { sub_080575C8(33); } -void sub_unk1_MinishPaths1_CastorWilds() { +void sub_unk1_MinishPaths1_CastorWilds(void) { sub_080575C8(33); } -u32 sub_unk3_MinishPaths1_HyruleTown() { +u32 sub_unk3_MinishPaths1_HyruleTown(void) { return 1; } -void sub_StateChange_MinishPaths1_HyruleTown() { +void sub_StateChange_MinishPaths1_HyruleTown(void) { sub_080575C8(31); } -void sub_unk1_MinishPaths1_HyruleTown() { +void sub_unk1_MinishPaths1_HyruleTown(void) { sub_080575C8(31); } -u32 sub_unk3_MinishPaths1_LonLonRanch() { +u32 sub_unk3_MinishPaths1_LonLonRanch(void) { return 1; } -void sub_StateChange_MinishPaths1_LonLonRanch() { +void sub_StateChange_MinishPaths1_LonLonRanch(void) { sub_080575C8(32); } -void sub_unk1_MinishPaths1_LonLonRanch() { +void sub_unk1_MinishPaths1_LonLonRanch(void) { sub_080575C8(32); } -u32 sub_unk3_MinishPaths1_MayorsCabin() { +u32 sub_unk3_MinishPaths1_MayorsCabin(void) { return 1; } @@ -221,11 +230,11 @@ void sub_StateChange_MinishPaths1_MayorsCabin(void) { LoadRoomEntityList(&Entities_MinishPaths1_MayorsCabin_gUnk_080D6138); } -void sub_unk1_MinishPaths1_MayorsCabin() { +void sub_unk1_MinishPaths1_MayorsCabin(void) { sub_080575C8(32); } -u32 sub_unk3_HouseInteriors1_Mayor() { +u32 sub_unk3_HouseInteriors1_Mayor(void) { return 1; } @@ -237,7 +246,7 @@ void sub_StateChange_HouseInteriors1_Mayor(void) { LoadRoomEntityList(&Entities_HouseInteriors1_Mayor_080D6210); } -u32 sub_unk3_HouseInteriors1_PostOffice() { +u32 sub_unk3_HouseInteriors1_PostOffice(void) { return 1; } @@ -313,7 +322,7 @@ void sub_StateChange_HouseInteriors1_PostOffice(void) { LoadRoomEntityList(&gUnk_080D6440); } -u32 sub_unk3_HouseInteriors1_Library2F() { +u32 sub_unk3_HouseInteriors1_Library2F(void) { return 1; } @@ -336,7 +345,7 @@ void sub_StateChange_HouseInteriors1_Library2F(void) { LoadRoomEntityList(&gUnk_080D6618); } -u32 sub_unk3_HouseInteriors1_Library1F() { +u32 sub_unk3_HouseInteriors1_Library1F(void) { return 1; } @@ -356,7 +365,7 @@ void sub_StateChange_HouseInteriors1_Library1F(void) { } } -u32 sub_unk3_HouseInteriors1_Inn1F() { +u32 sub_unk3_HouseInteriors1_Inn1F(void) { return 1; } @@ -448,7 +457,7 @@ void sub_StateChange_HouseInteriors1_InnEastRoom(void) { } } -u32 sub_unk3_HouseInteriors1_InnWest2F() { +u32 sub_unk3_HouseInteriors1_InnWest2F(void) { return 1; } @@ -492,21 +501,21 @@ void sub_StateChange_HouseInteriors1_InnWest2F(void) { LoadRoomEntityList(&UpperInn_Oracles); } -u32 sub_unk3_HouseInteriors1_InnEast2F() { +u32 sub_unk3_HouseInteriors1_InnEast2F(void) { return 1; } -void sub_StateChange_HouseInteriors1_InnEast2F() { +void sub_StateChange_HouseInteriors1_InnEast2F(void) { } -u32 sub_unk3_HouseInteriors1_InnMinishHeartPiece() { +u32 sub_unk3_HouseInteriors1_InnMinishHeartPiece(void) { return 1; } -void sub_StateChange_HouseInteriors1_InnMinishHeartPiece() { +void sub_StateChange_HouseInteriors1_InnMinishHeartPiece(void) { } -u32 sub_unk3_HouseInteriors1_SchoolWest() { +u32 sub_unk3_HouseInteriors1_SchoolWest(void) { return 1; } @@ -521,7 +530,7 @@ void sub_StateChange_HouseInteriors1_SchoolWest(void) { } } -u32 sub_unk3_HouseInteriors1_SchoolEast() { +u32 sub_unk3_HouseInteriors1_SchoolEast(void) { return 1; } @@ -610,7 +619,7 @@ void sub_StateChange_HyruleCastle_1(void) { } } -u32 sub_unk3_HyruleCastle_2() { +u32 sub_unk3_HyruleCastle_2(void) { return 1; } @@ -639,7 +648,7 @@ void sub_StateChange_HyruleCastle_2(void) { } } -u32 sub_unk3_HyruleCastle_3() { +u32 sub_unk3_HyruleCastle_3(void) { return 1; } @@ -696,95 +705,95 @@ void sub_StateChange_HyruleCastle_4(void) { extern ScreenTransitionData gUnk_0813AB80; -void sub_0804BCDC() { +void sub_0804BCDC(void) { sub_0808091C(&gUnk_0813AB80, TRANSITION_FADE_BLACK_SLOW); } -u32 sub_unk3_HyruleCastle_5() { +u32 sub_unk3_HyruleCastle_5(void) { return 1; } -void sub_StateChange_HyruleCastle_5() { +void sub_StateChange_HyruleCastle_5(void) { } -u32 sub_unk3_87_Main() { +u32 sub_unk3_87_Main(void) { return 1; } -void sub_StateChange_87_Main() { +void sub_StateChange_87_Main(void) { } -u32 sub_unk3_45_Main() { +u32 sub_unk3_45_Main(void) { return 1; } -void sub_StateChange_45_Main() { +void sub_StateChange_45_Main(void) { } -u32 sub_unk3_4D_Main() { +u32 sub_unk3_4D_Main(void) { return 1; } -void sub_StateChange_4D_Main() { +void sub_StateChange_4D_Main(void) { } -u32 sub_unk3_57_Main() { +u32 sub_unk3_57_Main(void) { return 1; } -void sub_StateChange_57_Main() { +void sub_StateChange_57_Main(void) { } -u32 sub_unk3_5F_Main() { +u32 sub_unk3_5F_Main(void) { return 1; } -void sub_StateChange_5F_Main() { +void sub_StateChange_5F_Main(void) { } -u32 sub_unk3_67_Main() { +u32 sub_unk3_67_Main(void) { return 1; } -void sub_StateChange_67_Main() { +void sub_StateChange_67_Main(void) { } -u32 sub_unk3_6F_Main() { +u32 sub_unk3_6F_Main(void) { return 1; } -void sub_StateChange_6F_Main() { +void sub_StateChange_6F_Main(void) { } -u32 sub_unk3_77_Main() { +u32 sub_unk3_77_Main(void) { return 1; } -void sub_StateChange_77_Main() { +void sub_StateChange_77_Main(void) { } -u32 sub_unk3_7F_Main() { +u32 sub_unk3_7F_Main(void) { return 1; } -void sub_StateChange_7F_Main() { +void sub_StateChange_7F_Main(void) { } -u32 sub_unk3_8F_Main() { +u32 sub_unk3_8F_Main(void) { return 1; } -void sub_StateChange_8F_Main() { +void sub_StateChange_8F_Main(void) { } -u32 sub_unk3_GreatFairies_Entrance() { +u32 sub_unk3_GreatFairies_Entrance(void) { return 1; } -void sub_StateChange_GreatFairies_Entrance() { +void sub_StateChange_GreatFairies_Entrance(void) { } -u32 sub_unk3_GreatFairies_Exit() { +u32 sub_unk3_GreatFairies_Exit(void) { return 1; } @@ -801,42 +810,42 @@ void sub_StateChange_GreatFairies_Exit(void) { } } -u32 sub_unk3_Dojos_Grayblade() { +u32 sub_unk3_Dojos_Grayblade(void) { return 1; } -void sub_StateChange_Dojos_Grayblade() { +void sub_StateChange_Dojos_Grayblade(void) { } -u32 sub_unk3_Dojos_Splitblade() { +u32 sub_unk3_Dojos_Splitblade(void) { return 1; } -void sub_StateChange_Dojos_Splitblade() { +void sub_StateChange_Dojos_Splitblade(void) { } -u32 sub_unk3_Dojos_Greatblade() { +u32 sub_unk3_Dojos_Greatblade(void) { return 1; } -void sub_StateChange_Dojos_Greatblade() { +void sub_StateChange_Dojos_Greatblade(void) { } -u32 sub_unk3_Dojos_Scarblade() { +u32 sub_unk3_Dojos_Scarblade(void) { return 1; } -void sub_StateChange_Dojos_Scarblade() { +void sub_StateChange_Dojos_Scarblade(void) { } -u32 sub_unk3_Dojos_Swiftblade() { +u32 sub_unk3_Dojos_Swiftblade(void) { return 1; } -void sub_StateChange_Dojos_Swiftblade() { +void sub_StateChange_Dojos_Swiftblade(void) { } -u32 sub_unk3_Dojos_Grimblade() { +u32 sub_unk3_Dojos_Grimblade(void) { return 1; } @@ -852,70 +861,70 @@ void sub_StateChange_Dojos_Grimblade(void) { } } -u32 sub_unk3_Dojos_Waveblade() { +u32 sub_unk3_Dojos_Waveblade(void) { return 1; } -void sub_StateChange_Dojos_Waveblade() { +void sub_StateChange_Dojos_Waveblade(void) { } -u32 sub_unk3_Dojos_7() { +u32 sub_unk3_Dojos_7(void) { return 1; } -void sub_StateChange_Dojos_7() { +void sub_StateChange_Dojos_7(void) { } -u32 sub_unk3_Dojos_8() { +u32 sub_unk3_Dojos_8(void) { return 1; } -void sub_StateChange_Dojos_8() { +void sub_StateChange_Dojos_8(void) { } -u32 sub_unk3_Dojos_9() { +u32 sub_unk3_Dojos_9(void) { return 1; } -void sub_StateChange_Dojos_9() { +void sub_StateChange_Dojos_9(void) { } -u32 sub_unk3_Dojos_ToGrimblade() { +u32 sub_unk3_Dojos_ToGrimblade(void) { return 1; } -void sub_StateChange_Dojos_ToGrimblade() { +void sub_StateChange_Dojos_ToGrimblade(void) { } -u32 sub_unk3_Dojos_ToSplitblade() { +u32 sub_unk3_Dojos_ToSplitblade(void) { return 1; } -void sub_StateChange_Dojos_ToSplitblade() { +void sub_StateChange_Dojos_ToSplitblade(void) { } -u32 sub_unk3_Dojos_ToGreatblade() { +u32 sub_unk3_Dojos_ToGreatblade(void) { return 1; } -void sub_StateChange_Dojos_ToGreatblade() { +void sub_StateChange_Dojos_ToGreatblade(void) { } -u32 sub_unk3_Dojos_ToScarblade() { +u32 sub_unk3_Dojos_ToScarblade(void) { return 1; } -void sub_StateChange_Dojos_ToScarblade() { +void sub_StateChange_Dojos_ToScarblade(void) { } -u32 sub_unk3_GoronCave_StairsToCave() { +u32 sub_unk3_GoronCave_StairsToCave(void) { return 1; } -void sub_StateChange_GoronCave_StairsToCave() { +void sub_StateChange_GoronCave_StairsToCave(void) { } -u32 sub_unk3_GoronCave_Main() { +u32 sub_unk3_GoronCave_Main(void) { return 1; } @@ -1011,14 +1020,14 @@ void sub_0804BF38(u32 arg0, struct_0804BF38* arg1) ASM_FUNC("asm/non_matching/sub_0804BF38.inc", void sub_0804BF38(Entity* this, ScriptExecutionContext* context)) #endif -u32 sub_unk3_EzloAuxCutscene_Main() { +u32 sub_unk3_EzloAuxCutscene_Main(void) { return 1; } -void sub_StateChange_EzloAuxCutscene_Main() { +void sub_StateChange_EzloAuxCutscene_Main(void) { } -u32 sub_unk3_RoyalValley_Main() { +u32 sub_unk3_RoyalValley_Main(void) { return 1; } @@ -1055,7 +1064,7 @@ void sub_StateChange_RoyalValley_Main(void) { ClearGlobalFlag(MAZE_CLEAR); } -u32 sub_unk3_RoyalValley_ForestMaze() { +u32 sub_unk3_RoyalValley_ForestMaze(void) { return 1; } @@ -1070,37 +1079,37 @@ ASM_FUNC("asm/non_matching/sub_0804C258.inc", void sub_0804C258(void)) ASM_FUNC("asm/non_matching/sub_0804C290.inc", void sub_0804C290(void)) -u32 sub_unk3_RoyalValleyGraves_HeartPiece() { +u32 sub_unk3_RoyalValleyGraves_HeartPiece(void) { return 1; } -void sub_StateChange_RoyalValleyGraves_HeartPiece() { +void sub_StateChange_RoyalValleyGraves_HeartPiece(void) { } -u32 sub_unk3_RoyalValleyGraves_Gina() { +u32 sub_unk3_RoyalValleyGraves_Gina(void) { return 1; } -void sub_StateChange_RoyalValleyGraves_Gina() { +void sub_StateChange_RoyalValleyGraves_Gina(void) { } -u32 sub_unk3_MinishRafters_Cafe() { +u32 sub_unk3_MinishRafters_Cafe(void) { return 1; } -void sub_StateChange_MinishRafters_Cafe() { +void sub_StateChange_MinishRafters_Cafe(void) { sub_08058324(0); } -u32 sub_unk3_MinishRafters_Stockwell() { +u32 sub_unk3_MinishRafters_Stockwell(void) { return 1; } -void sub_StateChange_MinishRafters_Stockwell() { +void sub_StateChange_MinishRafters_Stockwell(void) { sub_08058324(1); } -u32 sub_unk3_MinishRafters_DrLeft() { +u32 sub_unk3_MinishRafters_DrLeft(void) { return 1; } @@ -1114,19 +1123,19 @@ void sub_StateChange_MinishRafters_DrLeft(void) { LoadRoomEntityList(&gUnk_080D9800); } -void sub_unk1_MinishRafters_DrLeft() { +void sub_unk1_MinishRafters_DrLeft(void) { sub_StateChange_MinishRafters_DrLeft(); } -u32 sub_unk3_MinishRafters_Bakery() { +u32 sub_unk3_MinishRafters_Bakery(void) { return 1; } -void sub_StateChange_MinishRafters_Bakery() { +void sub_StateChange_MinishRafters_Bakery(void) { sub_08058324(3); } -u32 sub_unk3_CastorWilds_Main() { +u32 sub_unk3_CastorWilds_Main(void) { return 1; } @@ -1153,39 +1162,39 @@ void sub_unk1_CastorWilds_Main(void) { LoadRoomEntityList(&gUnk_080D9CE8); } -u32 sub_unk3_CastorCaves_South() { +u32 sub_unk3_CastorCaves_South(void) { return 1; } -void sub_StateChange_CastorCaves_South() { +void sub_StateChange_CastorCaves_South(void) { } -u32 sub_unk3_CastorCaves_North() { +u32 sub_unk3_CastorCaves_North(void) { return 1; } -void sub_StateChange_CastorCaves_North() { +void sub_StateChange_CastorCaves_North(void) { } -u32 sub_unk3_CastorCaves_WindRuins() { +u32 sub_unk3_CastorCaves_WindRuins(void) { return 1; } -void sub_StateChange_CastorCaves_WindRuins() { +void sub_StateChange_CastorCaves_WindRuins(void) { } -u32 sub_unk3_CastorCaves_Darknut() { +u32 sub_unk3_CastorCaves_Darknut(void) { return 1; } -void sub_StateChange_CastorCaves_Darknut() { +void sub_StateChange_CastorCaves_Darknut(void) { } -u32 sub_unk3_CastorCaves_HeartPiece() { +u32 sub_unk3_CastorCaves_HeartPiece(void) { return 1; } -void sub_StateChange_CastorCaves_HeartPiece() { +void sub_StateChange_CastorCaves_HeartPiece(void) { } extern u32 gUnk_080DA230; @@ -1197,124 +1206,124 @@ u32 sub_unk3_CastorDarknut_Main(void) { return 1; } -void sub_StateChange_CastorDarknut_Main() { +void sub_StateChange_CastorDarknut_Main(void) { } -u32 sub_unk3_CastorDarknut_Hall() { +u32 sub_unk3_CastorDarknut_Hall(void) { return 1; } -void sub_StateChange_CastorDarknut_Hall() { +void sub_StateChange_CastorDarknut_Hall(void) { } -u32 sub_unk3_GreatFairies_Graveyard() { +u32 sub_unk3_GreatFairies_Graveyard(void) { return 1; } -void sub_StateChange_GreatFairies_Graveyard() { +void sub_StateChange_GreatFairies_Graveyard(void) { } -u32 sub_unk3_GreatFairies_MinishWoods() { +u32 sub_unk3_GreatFairies_MinishWoods(void) { return 1; } -void sub_StateChange_GreatFairies_MinishWoods() { +void sub_StateChange_GreatFairies_MinishWoods(void) { } -u32 sub_unk3_GreatFairies_MtCrenel() { +u32 sub_unk3_GreatFairies_MtCrenel(void) { return 1; } -void sub_StateChange_GreatFairies_MtCrenel() { +void sub_StateChange_GreatFairies_MtCrenel(void) { } -u32 sub_unk3_GardenFountains_East() { +u32 sub_unk3_GardenFountains_East(void) { return 1; } -void sub_StateChange_GardenFountains_East() { +void sub_StateChange_GardenFountains_East(void) { } -u32 sub_unk3_GardenFountains_West() { +u32 sub_unk3_GardenFountains_West(void) { return 1; } -void sub_StateChange_GardenFountains_West() { +void sub_StateChange_GardenFountains_West(void) { } -u32 sub_unk3_MinishHouseInteriors_GentariMain() { +u32 sub_unk3_MinishHouseInteriors_GentariMain(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_GentariMain() { +void sub_StateChange_MinishHouseInteriors_GentariMain(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_GentariExit() { +u32 sub_unk3_MinishHouseInteriors_GentariExit(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_GentariExit() { +void sub_StateChange_MinishHouseInteriors_GentariExit(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_Festari() { +u32 sub_unk3_MinishHouseInteriors_Festari(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_Festari() { +void sub_StateChange_MinishHouseInteriors_Festari(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_Red() { +u32 sub_unk3_MinishHouseInteriors_Red(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_Red() { +void sub_StateChange_MinishHouseInteriors_Red(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_Green() { +u32 sub_unk3_MinishHouseInteriors_Green(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_Green() { +void sub_StateChange_MinishHouseInteriors_Green(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_Blue() { +u32 sub_unk3_MinishHouseInteriors_Blue(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_Blue() { +void sub_StateChange_MinishHouseInteriors_Blue(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_SideArea() { +u32 sub_unk3_MinishHouseInteriors_SideArea(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_SideArea() { +void sub_StateChange_MinishHouseInteriors_SideArea(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_ShoeMinish() { +u32 sub_unk3_MinishHouseInteriors_ShoeMinish(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_ShoeMinish() { +void sub_StateChange_MinishHouseInteriors_ShoeMinish(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_PotMinish() { +u32 sub_unk3_MinishHouseInteriors_PotMinish(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_PotMinish() { +void sub_StateChange_MinishHouseInteriors_PotMinish(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_BarrelMinish() { +u32 sub_unk3_MinishHouseInteriors_BarrelMinish(void) { return 1; } @@ -1386,7 +1395,7 @@ void sub_StateChange_MinishHouseInteriors_BarrelMinish(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_MelariMinesSouthwest() { +u32 sub_unk3_MinishHouseInteriors_MelariMinesSouthwest(void) { return 1; } @@ -1399,7 +1408,7 @@ void sub_StateChange_MinishHouseInteriors_MelariMinesSouthwest(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_MelariMinesSoutheast() { +u32 sub_unk3_MinishHouseInteriors_MelariMinesSoutheast(void) { return 1; } @@ -1412,7 +1421,7 @@ void sub_StateChange_MinishHouseInteriors_MelariMinesSoutheast(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_MelariMinesEast() { +u32 sub_unk3_MinishHouseInteriors_MelariMinesEast(void) { return 1; } @@ -1425,31 +1434,31 @@ void sub_StateChange_MinishHouseInteriors_MelariMinesEast(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_HyruleFieldSouthwest() { +u32 sub_unk3_MinishHouseInteriors_HyruleFieldSouthwest(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_HyruleFieldSouthwest() { +void sub_StateChange_MinishHouseInteriors_HyruleFieldSouthwest(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_HyruleFieldOutsideLinksHouse() { +u32 sub_unk3_MinishHouseInteriors_HyruleFieldOutsideLinksHouse(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_HyruleFieldOutsideLinksHouse() { +void sub_StateChange_MinishHouseInteriors_HyruleFieldOutsideLinksHouse(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_NextToKnuckle() { +u32 sub_unk3_MinishHouseInteriors_NextToKnuckle(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_NextToKnuckle() { +void sub_StateChange_MinishHouseInteriors_NextToKnuckle(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_Librari() { +u32 sub_unk3_MinishHouseInteriors_Librari(void) { return 1; } @@ -1462,39 +1471,39 @@ void sub_StateChange_MinishHouseInteriors_Librari(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_HyruleFieldExit() { +u32 sub_unk3_MinishHouseInteriors_HyruleFieldExit(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_HyruleFieldExit() { +void sub_StateChange_MinishHouseInteriors_HyruleFieldExit(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_HyruleTown() { +u32 sub_unk3_MinishHouseInteriors_HyruleTown(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_HyruleTown() { +void sub_StateChange_MinishHouseInteriors_HyruleTown(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_MinishWoodsBomb() { +u32 sub_unk3_MinishHouseInteriors_MinishWoodsBomb(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_MinishWoodsBomb() { +void sub_StateChange_MinishHouseInteriors_MinishWoodsBomb(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishHouseInteriors_LakeHyliaOcarina() { +u32 sub_unk3_MinishHouseInteriors_LakeHyliaOcarina(void) { return 1; } -void sub_StateChange_MinishHouseInteriors_LakeHyliaOcarina() { +void sub_StateChange_MinishHouseInteriors_LakeHyliaOcarina(void) { sub_0801AFE4(); } -u32 sub_unk3_TownMinishHoles_MayorsHouse() { +u32 sub_unk3_TownMinishHoles_MayorsHouse(void) { return 1; } @@ -1510,43 +1519,43 @@ void sub_StateChange_TownMinishHoles_MayorsHouse(void) { sub_0801AFE4(); } -u32 sub_unk3_TownMinishHoles_WestOracle() { +u32 sub_unk3_TownMinishHoles_WestOracle(void) { return 1; } -void sub_StateChange_TownMinishHoles_WestOracle() { +void sub_StateChange_TownMinishHoles_WestOracle(void) { sub_0801AFE4(); } -u32 sub_unk3_TownMinishHoles_DrLeft() { +u32 sub_unk3_TownMinishHoles_DrLeft(void) { return 1; } -void sub_StateChange_TownMinishHoles_DrLeft() { +void sub_StateChange_TownMinishHoles_DrLeft(void) { sub_0801AFE4(); } -u32 sub_unk3_TownMinishHoles_Carpenter() { +u32 sub_unk3_TownMinishHoles_Carpenter(void) { return 1; } -void sub_StateChange_TownMinishHoles_Carpenter() { +void sub_StateChange_TownMinishHoles_Carpenter(void) { sub_0801AFE4(); } -u32 sub_unk3_TownMinishHoles_Cafe() { +u32 sub_unk3_TownMinishHoles_Cafe(void) { return 1; } -void sub_StateChange_TownMinishHoles_Cafe() { +void sub_StateChange_TownMinishHoles_Cafe(void) { sub_0801AFE4(); } -u32 sub_unk3_TownMinishHoles_5() { +u32 sub_unk3_TownMinishHoles_5(void) { return 1; } -void sub_StateChange_TownMinishHoles_5() { +void sub_StateChange_TownMinishHoles_5(void) { sub_0801AFE4(); } @@ -1570,7 +1579,7 @@ void sub_StateChange_TownMinishHoles_LibraryBookshelf(void) { sub_0801AFE4(); } -u32 sub_unk3_TownMinishHoles_LibrariBookHouse() { +u32 sub_unk3_TownMinishHoles_LibrariBookHouse(void) { return 1; } @@ -1583,7 +1592,7 @@ void sub_StateChange_TownMinishHoles_LibrariBookHouse(void) { sub_0801AFE4(); } -u32 sub_unk3_TownMinishHoles_RemShoeShop() { +u32 sub_unk3_TownMinishHoles_RemShoeShop(void) { return 1; } @@ -1617,77 +1626,77 @@ void sub_StateChange_TownMinishHoles_RemShoeShop(void) { sub_0801AFE4(); } -u32 sub_unk3_MinishCaves_BeanPesto() { +u32 sub_unk3_MinishCaves_BeanPesto(void) { return 1; } -void sub_StateChange_MinishCaves_BeanPesto() { +void sub_StateChange_MinishCaves_BeanPesto(void) { } -u32 sub_unk3_MinishCaves_SoutheastWater1() { +u32 sub_unk3_MinishCaves_SoutheastWater1(void) { return 1; } -void sub_StateChange_MinishCaves_SoutheastWater1() { +void sub_StateChange_MinishCaves_SoutheastWater1(void) { } -u32 sub_unk3_MinishCaves_SoutheastWater2() { +u32 sub_unk3_MinishCaves_SoutheastWater2(void) { return 1; } -void sub_StateChange_MinishCaves_SoutheastWater2() { +void sub_StateChange_MinishCaves_SoutheastWater2(void) { } -u32 sub_unk3_MinishCaves_Ruins() { +u32 sub_unk3_MinishCaves_Ruins(void) { return 1; } -void sub_StateChange_MinishCaves_Ruins() { +void sub_StateChange_MinishCaves_Ruins(void) { } -u32 sub_unk3_MinishCaves_OutsideLinksHouse() { +u32 sub_unk3_MinishCaves_OutsideLinksHouse(void) { return 1; } -void sub_StateChange_MinishCaves_OutsideLinksHouse() { +void sub_StateChange_MinishCaves_OutsideLinksHouse(void) { } -u32 sub_unk3_MinishCaves_MinishWoodsNorth1() { +u32 sub_unk3_MinishCaves_MinishWoodsNorth1(void) { return 1; } -void sub_StateChange_MinishCaves_MinishWoodsNorth1() { +void sub_StateChange_MinishCaves_MinishWoodsNorth1(void) { } -u32 sub_unk3_MinishCaves_MinishWoodsNorth2() { +u32 sub_unk3_MinishCaves_MinishWoodsNorth2(void) { return 1; } -void sub_StateChange_MinishCaves_MinishWoodsNorth2() { +void sub_StateChange_MinishCaves_MinishWoodsNorth2(void) { } -u32 sub_unk3_MinishCaves_LakeHyliaNorth() { +u32 sub_unk3_MinishCaves_LakeHyliaNorth(void) { return 1; } -void sub_StateChange_MinishCaves_LakeHyliaNorth() { +void sub_StateChange_MinishCaves_LakeHyliaNorth(void) { } -u32 sub_unk3_MinishCaves_LakeHyliaLibrari() { +u32 sub_unk3_MinishCaves_LakeHyliaLibrari(void) { return 1; } -void sub_StateChange_MinishCaves_LakeHyliaLibrari() { +void sub_StateChange_MinishCaves_LakeHyliaLibrari(void) { } -u32 sub_unk3_MinishCaves_MinishWoodsSouthwest() { +u32 sub_unk3_MinishCaves_MinishWoodsSouthwest(void) { return 1; } -void sub_StateChange_MinishCaves_MinishWoodsSouthwest() { +void sub_StateChange_MinishCaves_MinishWoodsSouthwest(void) { } -u32 sub_unk3_MinishVillage_Main() { +u32 sub_unk3_MinishVillage_Main(void) { return 1; } @@ -1719,11 +1728,11 @@ void sub_StateChange_MinishVillage_Main(void) { sub_08057E64(); } -u32 sub_unk3_MinishVillage_SideHouse() { +u32 sub_unk3_MinishVillage_SideHouse(void) { return 1; } -void sub_StateChange_MinishVillage_SideHouse() { +void sub_StateChange_MinishVillage_SideHouse(void) { } typedef struct { @@ -1739,77 +1748,77 @@ void sub_unk2_MinishVillage_SideHouse(void) { LoadPaletteGroup(0x19); } -u32 sub_unk3_CastleGardenMinishHoles_East() { +u32 sub_unk3_CastleGardenMinishHoles_East(void) { return 1; } -void sub_StateChange_CastleGardenMinishHoles_East() { +void sub_StateChange_CastleGardenMinishHoles_East(void) { } -u32 sub_unk3_CastleGardenMinishHoles_West() { +u32 sub_unk3_CastleGardenMinishHoles_West(void) { return 1; } -void sub_StateChange_CastleGardenMinishHoles_West() { +void sub_StateChange_CastleGardenMinishHoles_West(void) { } -u32 sub_unk3_37_0() { +u32 sub_unk3_37_0(void) { return 1; } -void sub_StateChange_37_0() { +void sub_StateChange_37_0(void) { } -u32 sub_unk3_37_1() { +u32 sub_unk3_37_1(void) { return 1; } -void sub_StateChange_37_1() { +void sub_StateChange_37_1(void) { } -u32 sub_unk3_MinishCracks_LonLonRanchNorth() { +u32 sub_unk3_MinishCracks_LonLonRanchNorth(void) { return 1; } -void sub_StateChange_MinishCracks_LonLonRanchNorth() { +void sub_StateChange_MinishCracks_LonLonRanchNorth(void) { } -u32 sub_unk3_MinishCracks_LakeHyliaEast() { +u32 sub_unk3_MinishCracks_LakeHyliaEast(void) { return 1; } -void sub_StateChange_MinishCracks_LakeHyliaEast() { +void sub_StateChange_MinishCracks_LakeHyliaEast(void) { } -u32 sub_unk3_MinishCracks_HyruleCastleGarden() { +u32 sub_unk3_MinishCracks_HyruleCastleGarden(void) { return 1; } -void sub_StateChange_MinishCracks_HyruleCastleGarden() { +void sub_StateChange_MinishCracks_HyruleCastleGarden(void) { } -u32 sub_unk3_MinishCracks_MtCrenel() { +u32 sub_unk3_MinishCracks_MtCrenel(void) { return 1; } -void sub_StateChange_MinishCracks_MtCrenel() { +void sub_StateChange_MinishCracks_MtCrenel(void) { } -u32 sub_unk3_MinishCracks_EastHyruleCastle() { +u32 sub_unk3_MinishCracks_EastHyruleCastle(void) { return 1; } -void sub_StateChange_MinishCracks_EastHyruleCastle() { +void sub_StateChange_MinishCracks_EastHyruleCastle(void) { } -u32 sub_unk3_MinishCracks_5() { +u32 sub_unk3_MinishCracks_5(void) { return 1; } -void sub_StateChange_MinishCracks_5() { +void sub_StateChange_MinishCracks_5(void) { } -u32 sub_unk3_MinishCracks_CastleWildsBowHole() { +u32 sub_unk3_MinishCracks_CastleWildsBowHole(void) { return 1; } @@ -1821,84 +1830,84 @@ void sub_StateChange_MinishCracks_CastleWildsBowHole(void) { } } -u32 sub_unk3_MinishCracks_RuinsEntrance() { +u32 sub_unk3_MinishCracks_RuinsEntrance(void) { return 1; } -void sub_StateChange_MinishCracks_RuinsEntrance() { +void sub_StateChange_MinishCracks_RuinsEntrance(void) { } -u32 sub_unk3_MinishCracks_MinishWoodsSouth() { +u32 sub_unk3_MinishCracks_MinishWoodsSouth(void) { return 1; } -void sub_StateChange_MinishCracks_MinishWoodsSouth() { +void sub_StateChange_MinishCracks_MinishWoodsSouth(void) { } -u32 sub_unk3_MinishCracks_CastorWildsNorth() { +u32 sub_unk3_MinishCracks_CastorWildsNorth(void) { return 1; } -void sub_StateChange_MinishCracks_CastorWildsNorth() { +void sub_StateChange_MinishCracks_CastorWildsNorth(void) { } -u32 sub_unk3_MinishCracks_CastorWildsWest() { +u32 sub_unk3_MinishCracks_CastorWildsWest(void) { return 1; } -void sub_StateChange_MinishCracks_CastorWildsWest() { +void sub_StateChange_MinishCracks_CastorWildsWest(void) { } -u32 sub_unk3_MinishCracks_CastorWildsMiddle() { +u32 sub_unk3_MinishCracks_CastorWildsMiddle(void) { return 1; } -void sub_StateChange_MinishCracks_CastorWildsMiddle() { +void sub_StateChange_MinishCracks_CastorWildsMiddle(void) { } -u32 sub_unk3_MinishCracks_RuinsTektite() { +u32 sub_unk3_MinishCracks_RuinsTektite(void) { return 1; } -void sub_StateChange_MinishCracks_RuinsTektite() { +void sub_StateChange_MinishCracks_RuinsTektite(void) { } -u32 sub_unk3_MinishCracks_CastorWildsNextToBow() { +u32 sub_unk3_MinishCracks_CastorWildsNextToBow(void) { return 1; } -void sub_StateChange_MinishCracks_CastorWildsNextToBow() { +void sub_StateChange_MinishCracks_CastorWildsNextToBow(void) { } -u32 sub_unk3_MinishCracks_E() { +u32 sub_unk3_MinishCracks_E(void) { return 1; } -void sub_StateChange_MinishCracks_E() { +void sub_StateChange_MinishCracks_E(void) { } -u32 sub_unk3_MinishCracks_F() { +u32 sub_unk3_MinishCracks_F(void) { return 1; } -void sub_StateChange_MinishCracks_F() { +void sub_StateChange_MinishCracks_F(void) { } -u32 sub_unk3_MinishCracks_10() { +u32 sub_unk3_MinishCracks_10(void) { return 1; } -void sub_StateChange_MinishCracks_10() { +void sub_StateChange_MinishCracks_10(void) { } -u32 sub_unk3_MinishCracks_11() { +u32 sub_unk3_MinishCracks_11(void) { return 1; } -void sub_StateChange_MinishCracks_11() { +void sub_StateChange_MinishCracks_11(void) { } -u32 sub_unk3_MelarisMine_Main() { +u32 sub_unk3_MelarisMine_Main(void) { return 1; } @@ -1918,7 +1927,7 @@ void sub_StateChange_MelarisMine_Main(void) { SetLocalFlag(0x8e); } -u32 sub_unk3_CloudTops_House() { +u32 sub_unk3_CloudTops_House(void) { return 1; } @@ -1936,14 +1945,14 @@ void sub_unk1_CloudTops_House(void) { } } -u32 sub_unk3_CloudTops_Middle() { +u32 sub_unk3_CloudTops_Middle(void) { return 1; } -void sub_StateChange_CloudTops_Middle() { +void sub_StateChange_CloudTops_Middle(void) { } -u32 sub_unk3_CloudTops_Bottom() { +u32 sub_unk3_CloudTops_Bottom(void) { return 1; } @@ -1975,11 +1984,11 @@ void sub_StateChange_CloudTops_Bottom(void) { } } -u32 sub_unk3_Ruins_Entrance() { +u32 sub_unk3_Ruins_Entrance(void) { return 1; } -void sub_StateChange_Ruins_Entrance() { +void sub_StateChange_Ruins_Entrance(void) { sub_080300E8(); #if defined(JP) || defined(EU) || defined(DEMO_JP) SetLocalFlag(0x25); @@ -1988,14 +1997,14 @@ void sub_StateChange_Ruins_Entrance() { #endif } -u32 sub_unk3_Ruins_Beanstalk() { +u32 sub_unk3_Ruins_Beanstalk(void) { return 1; } -void sub_StateChange_Ruins_Beanstalk() { +void sub_StateChange_Ruins_Beanstalk(void) { } -u32 sub_unk3_Ruins_TripleTektites() { +u32 sub_unk3_Ruins_TripleTektites(void) { return 1; } @@ -2014,14 +2023,14 @@ void sub_unk1_Ruins_TripleTektites(void) { } } -u32 sub_unk3_Ruins_LadderToTektites() { +u32 sub_unk3_Ruins_LadderToTektites(void) { return 1; } -void sub_StateChange_Ruins_LadderToTektites() { +void sub_StateChange_Ruins_LadderToTektites(void) { } -u32 sub_unk3_Ruins_FortressEntrance() { +u32 sub_unk3_Ruins_FortressEntrance(void) { return 1; } @@ -2034,7 +2043,7 @@ void sub_StateChange_Ruins_FortressEntrance(void) { } } -u32 sub_unk3_Ruins_Armos() { +u32 sub_unk3_Ruins_Armos(void) { return 1; } @@ -2059,7 +2068,7 @@ void sub_StateChange_Ruins_Armos(void) { } } -u32 sub_unk3_DeepwoodShrine_Madderpillar() { +u32 sub_unk3_DeepwoodShrine_Madderpillar(void) { return 1; } @@ -2073,14 +2082,14 @@ void sub_StateChange_DeepwoodShrine_Madderpillar(void) { } } -u32 sub_unk3_DeepwoodShrine_BluePortal() { +u32 sub_unk3_DeepwoodShrine_BluePortal(void) { return 1; } -void sub_StateChange_DeepwoodShrine_BluePortal() { +void sub_StateChange_DeepwoodShrine_BluePortal(void) { } -u32 sub_unk3_DeepwoodShrine_StairsToB1() { +u32 sub_unk3_DeepwoodShrine_StairsToB1(void) { return 1; } @@ -2103,28 +2112,28 @@ void sub_StateChange_DeepwoodShrine_StairsToB1(void) { } } -u32 sub_unk3_DeepwoodShrine_PotBridge() { +u32 sub_unk3_DeepwoodShrine_PotBridge(void) { return 1; } -void sub_StateChange_DeepwoodShrine_PotBridge() { +void sub_StateChange_DeepwoodShrine_PotBridge(void) { } -u32 sub_unk3_DeepwoodShrine_DoubleStatue() { +u32 sub_unk3_DeepwoodShrine_DoubleStatue(void) { return 1; } -void sub_StateChange_DeepwoodShrine_DoubleStatue() { +void sub_StateChange_DeepwoodShrine_DoubleStatue(void) { } -u32 sub_unk3_DeepwoodShrine_Map() { +u32 sub_unk3_DeepwoodShrine_Map(void) { return 1; } -void sub_StateChange_DeepwoodShrine_Map() { +void sub_StateChange_DeepwoodShrine_Map(void) { } -u32 sub_unk3_DeepwoodShrine_Barrel() { +u32 sub_unk3_DeepwoodShrine_Barrel(void) { return 1; } @@ -2148,39 +2157,39 @@ void sub_StateChange_DeepwoodShrine_Barrel(void) { } } -u32 sub_unk3_DeepwoodShrine_Button() { +u32 sub_unk3_DeepwoodShrine_Button(void) { return 1; } -void sub_StateChange_DeepwoodShrine_Button() { +void sub_StateChange_DeepwoodShrine_Button(void) { } -u32 sub_unk3_DeepwoodShrine_Mulldozer() { +u32 sub_unk3_DeepwoodShrine_Mulldozer(void) { return 1; } -void sub_StateChange_DeepwoodShrine_Mulldozer() { +void sub_StateChange_DeepwoodShrine_Mulldozer(void) { } -u32 sub_unk3_DeepwoodShrine_Pillars() { +u32 sub_unk3_DeepwoodShrine_Pillars(void) { return 1; } -void sub_StateChange_DeepwoodShrine_Pillars() { +void sub_StateChange_DeepwoodShrine_Pillars(void) { } -u32 sub_unk3_DeepwoodShrine_Lever() { +u32 sub_unk3_DeepwoodShrine_Lever(void) { return 1; } -void sub_StateChange_DeepwoodShrine_Lever() { +void sub_StateChange_DeepwoodShrine_Lever(void) { } -u32 sub_unk3_DeepwoodShrine_Entrance() { +u32 sub_unk3_DeepwoodShrine_Entrance(void) { return 1; } #if defined(DEMO_USA) || defined(DEMO_JP) -void sub_StateChange_DeepwoodShrine_Entrance() { +void sub_StateChange_DeepwoodShrine_Entrance(void) { #ifdef DEMO_USA if (gSaveHeader->saveFileId != 0 && GetInventoryValue(ITEM_EARTH_ELEMENT) == 0) { #else @@ -2194,53 +2203,53 @@ void sub_StateChange_DeepwoodShrine_Entrance() { } } #else -void sub_StateChange_DeepwoodShrine_Entrance() { +void sub_StateChange_DeepwoodShrine_Entrance(void) { } #endif -u32 sub_unk3_DeepwoodShrine_Torch() { +u32 sub_unk3_DeepwoodShrine_Torch(void) { return 1; } -void sub_StateChange_DeepwoodShrine_Torch() { +void sub_StateChange_DeepwoodShrine_Torch(void) { } -u32 sub_unk3_DeepwoodShrine_BossKey() { +u32 sub_unk3_DeepwoodShrine_BossKey(void) { return 1; } -void sub_StateChange_DeepwoodShrine_BossKey() { +void sub_StateChange_DeepwoodShrine_BossKey(void) { } -u32 sub_unk3_DeepwoodShrine_Compass() { +u32 sub_unk3_DeepwoodShrine_Compass(void) { return 1; } -void sub_StateChange_DeepwoodShrine_Compass() { +void sub_StateChange_DeepwoodShrine_Compass(void) { } -u32 sub_unk3_DeepwoodShrine_13() { +u32 sub_unk3_DeepwoodShrine_13(void) { return 1; } -void sub_StateChange_DeepwoodShrine_13() { +void sub_StateChange_DeepwoodShrine_13(void) { } -u32 sub_unk3_DeepwoodShrine_LilyPadWest() { +u32 sub_unk3_DeepwoodShrine_LilyPadWest(void) { return 1; } -void sub_StateChange_DeepwoodShrine_LilyPadWest() { +void sub_StateChange_DeepwoodShrine_LilyPadWest(void) { } -u32 sub_unk3_DeepwoodShrine_LilyPadEast() { +u32 sub_unk3_DeepwoodShrine_LilyPadEast(void) { return 1; } -void sub_StateChange_DeepwoodShrine_LilyPadEast() { +void sub_StateChange_DeepwoodShrine_LilyPadEast(void) { } -u32 sub_unk3_DeepwoodShrineBoss_Main() { +u32 sub_unk3_DeepwoodShrineBoss_Main(void) { return 1; } @@ -2268,14 +2277,14 @@ void sub_StateChange_DeepwoodShrineBoss_Main(void) { } } -u32 sub_unk3_DeepwoodShrine_PreBoss() { +u32 sub_unk3_DeepwoodShrine_PreBoss(void) { return 1; } -void sub_StateChange_DeepwoodShrine_PreBoss() { +void sub_StateChange_DeepwoodShrine_PreBoss(void) { } -u32 sub_unk3_DeepwoodShrine_InsideBarrel() { +u32 sub_unk3_DeepwoodShrine_InsideBarrel(void) { return 1; } @@ -2285,7 +2294,7 @@ void sub_StateChange_DeepwoodShrine_InsideBarrel(void) { gMain.substate = 5; } -u32 sub_unk3_DeepwoodShrineEntry_Main() { +u32 sub_unk3_DeepwoodShrineEntry_Main(void) { return 1; } @@ -2297,33 +2306,33 @@ void sub_StateChange_DeepwoodShrineEntry_Main(void) { } } -u32 sub_unk3_CaveOfFlames_AfterCane() { +u32 sub_unk3_CaveOfFlames_AfterCane(void) { return 1; } -void sub_StateChange_CaveOfFlames_AfterCane() { +void sub_StateChange_CaveOfFlames_AfterCane(void) { } -u32 sub_unk3_CaveOfFlames_SpinyChus() { +u32 sub_unk3_CaveOfFlames_SpinyChus(void) { return 1; } -void sub_StateChange_CaveOfFlames_SpinyChus() { +void sub_StateChange_CaveOfFlames_SpinyChus(void) { } -u32 sub_unk3_CaveOfFlames_CartToSpinyChus() { +u32 sub_unk3_CaveOfFlames_CartToSpinyChus(void) { return 1; } -void sub_StateChange_CaveOfFlames_CartToSpinyChus() { +void sub_StateChange_CaveOfFlames_CartToSpinyChus(void) { } -u32 sub_unk3_CaveOfFlames_Entrance() { +u32 sub_unk3_CaveOfFlames_Entrance(void) { return 1; } #ifdef DEMO_USA -void sub_StateChange_CaveOfFlames_Entrance() { +void sub_StateChange_CaveOfFlames_Entrance(void) { if (GetInventoryValue(ITEM_FIRE_ELEMENT) == 0) { SetTileType(0x365, 0x287, 2); SetTileType(0x365, 0x288, 2); @@ -2331,64 +2340,64 @@ void sub_StateChange_CaveOfFlames_Entrance() { } } #else -void sub_StateChange_CaveOfFlames_Entrance() { +void sub_StateChange_CaveOfFlames_Entrance(void) { } #endif -u32 sub_unk3_CaveOfFlames_MainCart() { +u32 sub_unk3_CaveOfFlames_MainCart(void) { return 1; } -void sub_StateChange_CaveOfFlames_MainCart() { +void sub_StateChange_CaveOfFlames_MainCart(void) { } -u32 sub_unk3_CaveOfFlames_NorthEntrance() { +u32 sub_unk3_CaveOfFlames_NorthEntrance(void) { return 1; } -void sub_StateChange_CaveOfFlames_NorthEntrance() { +void sub_StateChange_CaveOfFlames_NorthEntrance(void) { } -u32 sub_unk3_CaveOfFlames_CartWest() { +u32 sub_unk3_CaveOfFlames_CartWest(void) { return 1; } -void sub_StateChange_CaveOfFlames_CartWest() { +void sub_StateChange_CaveOfFlames_CartWest(void) { } -u32 sub_unk3_CaveOfFlames_Helmasaur() { +u32 sub_unk3_CaveOfFlames_Helmasaur(void) { return 1; } -void sub_StateChange_CaveOfFlames_Helmasaur() { +void sub_StateChange_CaveOfFlames_Helmasaur(void) { } -u32 sub_unk3_CaveOfFlames_Rollobite() { +u32 sub_unk3_CaveOfFlames_Rollobite(void) { return 1; } -void sub_StateChange_CaveOfFlames_Rollobite() { +void sub_StateChange_CaveOfFlames_Rollobite(void) { } -u32 sub_unk3_CaveOfFlames_MinishLava() { +u32 sub_unk3_CaveOfFlames_MinishLava(void) { return 1; } -void sub_StateChange_CaveOfFlames_MinishLava() { +void sub_StateChange_CaveOfFlames_MinishLava(void) { } -u32 sub_unk3_CaveOfFlames_MinishSpikes() { +u32 sub_unk3_CaveOfFlames_MinishSpikes(void) { return 1; } -void sub_StateChange_CaveOfFlames_MinishSpikes() { +void sub_StateChange_CaveOfFlames_MinishSpikes(void) { } -u32 sub_unk3_CaveOfFlames_RollobiteSwitch() { +u32 sub_unk3_CaveOfFlames_RollobiteSwitch(void) { return 1; } -void sub_StateChange_CaveOfFlames_RollobiteSwitch() { +void sub_StateChange_CaveOfFlames_RollobiteSwitch(void) { } extern u32 gUnk_080E103C; @@ -2400,52 +2409,52 @@ u32 sub_unk3_CaveOfFlames_BeforeGleerok(void) { return 1; } -void sub_StateChange_CaveOfFlames_BeforeGleerok() { +void sub_StateChange_CaveOfFlames_BeforeGleerok(void) { } -u32 sub_unk3_CaveOfFlames_PathBossKey() { +u32 sub_unk3_CaveOfFlames_PathBossKey(void) { return 1; } -void sub_StateChange_CaveOfFlames_PathBossKey() { +void sub_StateChange_CaveOfFlames_PathBossKey(void) { } -u32 sub_unk3_CaveOfFlames_PathBossKey2() { +u32 sub_unk3_CaveOfFlames_PathBossKey2(void) { return 1; } -void sub_StateChange_CaveOfFlames_PathBossKey2() { +void sub_StateChange_CaveOfFlames_PathBossKey2(void) { } -u32 sub_unk3_CaveOfFlames_Compass() { +u32 sub_unk3_CaveOfFlames_Compass(void) { return 1; } -void sub_StateChange_CaveOfFlames_Compass() { +void sub_StateChange_CaveOfFlames_Compass(void) { } -u32 sub_unk3_CaveOfFlames_Bobomb() { +u32 sub_unk3_CaveOfFlames_Bobomb(void) { return 1; } -void sub_StateChange_CaveOfFlames_Bobomb() { +void sub_StateChange_CaveOfFlames_Bobomb(void) { } -u32 sub_unk3_CaveOfFlames_BossDoor() { +u32 sub_unk3_CaveOfFlames_BossDoor(void) { return 1; } -void sub_StateChange_CaveOfFlames_BossDoor() { +void sub_StateChange_CaveOfFlames_BossDoor(void) { } -u32 sub_unk3_CaveOfFlames_18() { +u32 sub_unk3_CaveOfFlames_18(void) { return 1; } -void sub_StateChange_CaveOfFlames_18() { +void sub_StateChange_CaveOfFlames_18(void) { } -u32 sub_unk3_CaveOfFlamesBoss_Main() { +u32 sub_unk3_CaveOfFlamesBoss_Main(void) { return 1; } @@ -2466,14 +2475,14 @@ void sub_StateChange_CaveOfFlamesBoss_Main(void) { } } -u32 sub_unk3_FortressOfWinds_Eyegore() { +u32 sub_unk3_FortressOfWinds_Eyegore(void) { return 1; } -void sub_StateChange_FortressOfWinds_Eyegore() { +void sub_StateChange_FortressOfWinds_Eyegore(void) { } -u32 sub_unk3_FortressOfWinds_BeforeMazaal() { +u32 sub_unk3_FortressOfWinds_BeforeMazaal(void) { return 1; } @@ -2482,72 +2491,72 @@ void sub_StateChange_FortressOfWinds_BeforeMazaal(void) { gRoomTransition.field_0x39 = 0x5a; } -u32 sub_unk3_FortressOfWinds_EastKeyLever() { +u32 sub_unk3_FortressOfWinds_EastKeyLever(void) { return 1; } -void sub_StateChange_FortressOfWinds_EastKeyLever() { +void sub_StateChange_FortressOfWinds_EastKeyLever(void) { sub_080300E8(); } -u32 sub_unk3_FortressOfWinds_PitPlatforms() { +u32 sub_unk3_FortressOfWinds_PitPlatforms(void) { return 1; } -void sub_StateChange_FortressOfWinds_PitPlatforms() { +void sub_StateChange_FortressOfWinds_PitPlatforms(void) { } -u32 sub_unk3_FortressOfWinds_WestKeyLever() { +u32 sub_unk3_FortressOfWinds_WestKeyLever(void) { return 1; } -void sub_StateChange_FortressOfWinds_WestKeyLever() { +void sub_StateChange_FortressOfWinds_WestKeyLever(void) { sub_080300E8(); } -u32 sub_unk3_FortressOfWinds_Darknut() { +u32 sub_unk3_FortressOfWinds_Darknut(void) { return 1; } -void sub_StateChange_FortressOfWinds_Darknut() { +void sub_StateChange_FortressOfWinds_Darknut(void) { } -u32 sub_unk3_FortressOfWinds_EyeBridge() { +u32 sub_unk3_FortressOfWinds_EyeBridge(void) { return 1; } -void sub_StateChange_FortressOfWinds_EyeBridge() { +void sub_StateChange_FortressOfWinds_EyeBridge(void) { } -u32 sub_unk3_FortressOfWinds_Pit() { +u32 sub_unk3_FortressOfWinds_Pit(void) { return 1; } -void sub_StateChange_FortressOfWinds_Pit() { +void sub_StateChange_FortressOfWinds_Pit(void) { } -u32 sub_unk3_FortressOfWinds_Wallmaster() { +u32 sub_unk3_FortressOfWinds_Wallmaster(void) { return 1; } -void sub_StateChange_FortressOfWinds_Wallmaster() { +void sub_StateChange_FortressOfWinds_Wallmaster(void) { } -u32 sub_unk3_FortressOfWinds_Clone() { +u32 sub_unk3_FortressOfWinds_Clone(void) { return 1; } -void sub_StateChange_FortressOfWinds_Clone() { +void sub_StateChange_FortressOfWinds_Clone(void) { } -u32 sub_unk3_FortressOfWinds_SpikeTraps() { +u32 sub_unk3_FortressOfWinds_SpikeTraps(void) { return 1; } -void sub_StateChange_FortressOfWinds_SpikeTraps() { +void sub_StateChange_FortressOfWinds_SpikeTraps(void) { } -u32 sub_unk3_FortressOfWinds_Mazaal() { +u32 sub_unk3_FortressOfWinds_Mazaal(void) { return 1; } @@ -2566,98 +2575,98 @@ void sub_StateChange_FortressOfWinds_Mazaal(void) { } } -u32 sub_unk3_FortressOfWinds_Stalfos() { +u32 sub_unk3_FortressOfWinds_Stalfos(void) { return 1; } -void sub_StateChange_FortressOfWinds_Stalfos() { +void sub_StateChange_FortressOfWinds_Stalfos(void) { } -u32 sub_unk3_FortressOfWinds_EntranceMoleMitts() { +u32 sub_unk3_FortressOfWinds_EntranceMoleMitts(void) { return 1; } -void sub_StateChange_Dojos_Waveblade0() { +void sub_StateChange_Dojos_Waveblade0(void) { } -u32 sub_unk3_FortressOfWinds_Main2F() { +u32 sub_unk3_FortressOfWinds_Main2F(void) { return 1; } -void sub_StateChange_Dojos_Waveblade1() { +void sub_StateChange_Dojos_Waveblade1(void) { } -u32 sub_unk3_FortressOfWinds_MinishHole() { +u32 sub_unk3_FortressOfWinds_MinishHole(void) { return 1; } -void sub_StateChange_Dojos_Waveblade2() { +void sub_StateChange_Dojos_Waveblade2(void) { } -u32 sub_unk3_FortressOfWinds_BossKey() { +u32 sub_unk3_FortressOfWinds_BossKey(void) { return 1; } -void sub_StateChange_Dojos_Waveblade3() { +void sub_StateChange_Dojos_Waveblade3(void) { } -u32 sub_unk3_FortressOfWinds_WestStairs2F() { +u32 sub_unk3_FortressOfWinds_WestStairs2F(void) { return 1; } -void sub_StateChange_Dojos_Waveblade4() { +void sub_StateChange_Dojos_Waveblade4(void) { } -u32 sub_unk3_FortressOfWinds_EastStairs2F() { +u32 sub_unk3_FortressOfWinds_EastStairs2F(void) { return 1; } -void sub_StateChange_Dojos_Waveblade5() { +void sub_StateChange_Dojos_Waveblade5(void) { } -u32 sub_unk3_FortressOfWinds_WestStairs1F() { +u32 sub_unk3_FortressOfWinds_WestStairs1F(void) { return 1; } -void sub_StateChange_Dojos_Waveblade6() { +void sub_StateChange_Dojos_Waveblade6(void) { } -u32 sub_unk3_FortressOfWinds_CenterStairs1F() { +u32 sub_unk3_FortressOfWinds_CenterStairs1F(void) { return 1; } -void sub_StateChange_Dojos_Waveblade7() { +void sub_StateChange_Dojos_Waveblade7(void) { } -u32 sub_unk3_FortressOfWinds_EastStairs1F() { +u32 sub_unk3_FortressOfWinds_EastStairs1F(void) { return 1; } -void sub_StateChange_Dojos_Waveblade8() { +void sub_StateChange_Dojos_Waveblade8(void) { } -u32 sub_unk3_FortressOfWinds_Wizzrobe() { +u32 sub_unk3_FortressOfWinds_Wizzrobe(void) { return 1; } -void sub_StateChange_Dojos_Waveblade9() { +void sub_StateChange_Dojos_Waveblade9(void) { } -u32 sub_unk3_FortressOfWinds_HeartPiece() { +u32 sub_unk3_FortressOfWinds_HeartPiece(void) { return 1; } -void sub_StateChange_Dojos_70() { +void sub_StateChange_Dojos_70(void) { } -u32 sub_unk3_InnerMazaal_Main() { +u32 sub_unk3_InnerMazaal_Main(void) { return 1; } -void sub_StateChange_Dojos_71() { +void sub_StateChange_Dojos_71(void) { } -u32 sub_unk3_FortressOfWindsTop_Main() { +u32 sub_unk3_FortressOfWindsTop_Main(void) { return 1; } @@ -2672,15 +2681,15 @@ void sub_StateChange_FortressOfWindsTop_Main(void) { } } -u32 sub_unk3_TempleOfDroplets_WestHole() { +u32 sub_unk3_TempleOfDroplets_WestHole(void) { return 1; } -void sub_StateChange_TempleOfDroplets_WestHole() { +void sub_StateChange_TempleOfDroplets_WestHole(void) { sub_0804D0B4(); } -void sub_0804D0B4(void) { +static void sub_0804D0B4(void) { if (!CheckLocalFlag(0x29)) { SetLocalFlag(0x29); SetLocalFlag(0x4b); @@ -2688,98 +2697,98 @@ void sub_0804D0B4(void) { } } -u32 sub_unk3_TempleOfDroplets_NorthSplit() { +u32 sub_unk3_TempleOfDroplets_NorthSplit(void) { return 1; } -void sub_StateChange_TempleOfDroplets_NorthSplit() { +void sub_StateChange_TempleOfDroplets_NorthSplit(void) { } -u32 sub_unk3_TempleOfDroplets_EastHole() { +u32 sub_unk3_TempleOfDroplets_EastHole(void) { return 1; } -void sub_StateChange_TempleOfDroplets_EastHole() { +void sub_StateChange_TempleOfDroplets_EastHole(void) { } -u32 sub_unk3_TempleOfDroplets_Entrance() { +u32 sub_unk3_TempleOfDroplets_Entrance(void) { return 1; } -void sub_StateChange_TempleOfDroplets_Entrance() { +void sub_StateChange_TempleOfDroplets_Entrance(void) { } -u32 sub_unk3_TempleOfDroplets_NorthwestStairs() { +u32 sub_unk3_TempleOfDroplets_NorthwestStairs(void) { return 1; } -void sub_StateChange_TempleOfDroplets_NorthwestStairs() { +void sub_StateChange_TempleOfDroplets_NorthwestStairs(void) { } -u32 sub_unk3_TempleOfDroplets_ScissorsMiniboss() { +u32 sub_unk3_TempleOfDroplets_ScissorsMiniboss(void) { return 1; } -void sub_StateChange_TempleOfDroplets_ScissorsMiniboss() { +void sub_StateChange_TempleOfDroplets_ScissorsMiniboss(void) { } -u32 sub_unk3_TempleOfDroplets_WaterfallNorthwest() { +u32 sub_unk3_TempleOfDroplets_WaterfallNorthwest(void) { return 1; } -void sub_StateChange_TempleOfDroplets_WaterfallNorthwest() { +void sub_StateChange_TempleOfDroplets_WaterfallNorthwest(void) { } -u32 sub_unk3_TempleOfDroplets_WaterfallNortheast() { +u32 sub_unk3_TempleOfDroplets_WaterfallNortheast(void) { return 1; } -void sub_StateChange_TempleOfDroplets_WaterfallNortheast() { +void sub_StateChange_TempleOfDroplets_WaterfallNortheast(void) { } -u32 sub_unk3_TempleOfDroplets_Element() { +u32 sub_unk3_TempleOfDroplets_Element(void) { return 1; } -void sub_StateChange_TempleOfDroplets_Element() { +void sub_StateChange_TempleOfDroplets_Element(void) { } -u32 sub_unk3_TempleOfDroplets_IceCorner() { +u32 sub_unk3_TempleOfDroplets_IceCorner(void) { return 1; } -void sub_StateChange_TempleOfDroplets_IceCorner() { +void sub_StateChange_TempleOfDroplets_IceCorner(void) { } -u32 sub_unk3_TempleOfDroplets_IcePitMaze() { +u32 sub_unk3_TempleOfDroplets_IcePitMaze(void) { return 1; } -void sub_StateChange_TempleOfDroplets_IcePitMaze() { +void sub_StateChange_TempleOfDroplets_IcePitMaze(void) { } -u32 sub_unk3_TempleOfDroplets_HoleToBlueChuchu() { +u32 sub_unk3_TempleOfDroplets_HoleToBlueChuchu(void) { return 1; } -void sub_StateChange_TempleOfDroplets_HoleToBlueChuchu() { +void sub_StateChange_TempleOfDroplets_HoleToBlueChuchu(void) { } -u32 sub_unk3_TempleOfDroplets_WaterfallSoutheast() { +u32 sub_unk3_TempleOfDroplets_WaterfallSoutheast(void) { return 1; } -void sub_StateChange_TempleOfDroplets_WaterfallSoutheast() { +void sub_StateChange_TempleOfDroplets_WaterfallSoutheast(void) { } -u32 sub_unk3_TempleOfDroplets_WaterfallSouthwest() { +u32 sub_unk3_TempleOfDroplets_WaterfallSouthwest(void) { return 1; } -void sub_StateChange_TempleOfDroplets_WaterfallSouthwest() { +void sub_StateChange_TempleOfDroplets_WaterfallSouthwest(void) { } -u32 sub_unk3_TempleOfDroplets_BigOcto() { +u32 sub_unk3_TempleOfDroplets_BigOcto(void) { return 1; } @@ -2795,14 +2804,14 @@ void sub_StateChange_TempleOfDroplets_BigOcto(void) { } } -u32 sub_unk3_TempleOfDroplets_ToBigBlueChuchu() { +u32 sub_unk3_TempleOfDroplets_ToBigBlueChuchu(void) { return 1; } -void sub_StateChange_Dojos_72() { +void sub_StateChange_Dojos_72(void) { } -u32 sub_unk3_TempleOfDroplets_BigBlueChuchu() { +u32 sub_unk3_TempleOfDroplets_BigBlueChuchu(void) { return 1; } @@ -2815,7 +2824,7 @@ void sub_StateChange_TempleOfDroplets_BigBlueChuchu(void) { } } -u32 sub_unk3_TempleOfDroplets_BigBlueChuchuKey() { +u32 sub_unk3_TempleOfDroplets_BigBlueChuchuKey(void) { return 1; } @@ -2834,63 +2843,63 @@ void sub_StateChange_TempleOfDroplets_BigBlueChuchuKey(void) { } } -u32 sub_unk3_TempleOfDroplets_BossKey() { +u32 sub_unk3_TempleOfDroplets_BossKey(void) { return 1; } -void sub_StateChange_Dojos_73() { +void sub_StateChange_Dojos_73(void) { } -u32 sub_unk3_TempleOfDroplets_NorthSmallKey() { +u32 sub_unk3_TempleOfDroplets_NorthSmallKey(void) { return 1; } -void sub_StateChange_Dojos_74() { +void sub_StateChange_Dojos_74(void) { } -u32 sub_unk3_TempleOfDroplets_BlockCloneButtonPuzzle() { +u32 sub_unk3_TempleOfDroplets_BlockCloneButtonPuzzle(void) { return 1; } -void sub_StateChange_Dojos_75() { +void sub_StateChange_Dojos_75(void) { } -u32 sub_unk3_TempleOfDroplets_BlockClonePuzzle() { +u32 sub_unk3_TempleOfDroplets_BlockClonePuzzle(void) { return 1; } -void sub_StateChange_Dojos_76() { +void sub_StateChange_Dojos_76(void) { } -u32 sub_unk3_TempleOfDroplets_BlockCloneIceBridge() { +u32 sub_unk3_TempleOfDroplets_BlockCloneIceBridge(void) { return 1; } -void sub_StateChange_Dojos_77() { +void sub_StateChange_Dojos_77(void) { } -u32 sub_unk3_TempleOfDroplets_StairsToScissorsMiniboss() { +u32 sub_unk3_TempleOfDroplets_StairsToScissorsMiniboss(void) { return 1; } -void sub_StateChange_Dojos_78() { +void sub_StateChange_Dojos_78(void) { } -u32 sub_unk3_TempleOfDroplets_SpikeBar() { +u32 sub_unk3_TempleOfDroplets_SpikeBar(void) { return 1; } -void sub_StateChange_Dojos_79() { +void sub_StateChange_Dojos_79(void) { } -u32 sub_unk3_TempleOfDroplets_Lanterns() { +u32 sub_unk3_TempleOfDroplets_Lanterns(void) { return 1; } -void sub_StateChange_Dojos_80() { +void sub_StateChange_Dojos_80(void) { } -u32 sub_unk3_TempleOfDroplets_LilypadIceBlocks() { +u32 sub_unk3_TempleOfDroplets_LilypadIceBlocks(void) { return 1; } @@ -2905,42 +2914,42 @@ void sub_StateChange_TempleOfDroplets_LilypadIceBlocks(void) { } } -u32 sub_unk3_TempleOfDroplets_Pit() { +u32 sub_unk3_TempleOfDroplets_Pit(void) { return 1; } -void sub_StateChange_Dojos_81() { +void sub_StateChange_Dojos_81(void) { } -u32 sub_unk3_TempleOfDroplets_FireBars() { +u32 sub_unk3_TempleOfDroplets_FireBars(void) { return 1; } -void sub_StateChange_Dojos_82() { +void sub_StateChange_Dojos_82(void) { } -u32 sub_unk3_TempleOfDroplets_LanternMaze() { +u32 sub_unk3_TempleOfDroplets_LanternMaze(void) { return 1; } -void sub_StateChange_Dojos_83() { +void sub_StateChange_Dojos_83(void) { } -u32 sub_unk3_TempleOfDroplets_Madderpillars() { +u32 sub_unk3_TempleOfDroplets_Madderpillars(void) { return 1; } -void sub_StateChange_Dojos_84() { +void sub_StateChange_Dojos_84(void) { } -u32 sub_unk3_TempleOfDroplets_AfterMadderpillars() { +u32 sub_unk3_TempleOfDroplets_AfterMadderpillars(void) { return 1; } -void sub_StateChange_Dojos_85() { +void sub_StateChange_Dojos_85(void) { } -u32 sub_unk3_TempleOfDroplets_BlueChuchuKeyLever() { +u32 sub_unk3_TempleOfDroplets_BlueChuchuKeyLever(void) { return 1; } @@ -2956,63 +2965,63 @@ void sub_StateChange_TempleOfDroplets_BlueChuchuKeyLever(void) { } } -u32 sub_unk3_TempleOfDroplets_MulldozerKey() { +u32 sub_unk3_TempleOfDroplets_MulldozerKey(void) { return 1; } -void sub_StateChange_Dojos_86() { +void sub_StateChange_Dojos_86(void) { } -u32 sub_unk3_TempleOfDroplets_BombWall() { +u32 sub_unk3_TempleOfDroplets_BombWall(void) { return 1; } -void sub_StateChange_Dojos_87() { +void sub_StateChange_Dojos_87(void) { } -u32 sub_unk3_TempleOfDroplets_LilypadWestB2() { +u32 sub_unk3_TempleOfDroplets_LilypadWestB2(void) { return 1; } -void sub_StateChange_Dojos_88() { +void sub_StateChange_Dojos_88(void) { } -u32 sub_unk3_TempleOfDroplets_CompassRoom() { +u32 sub_unk3_TempleOfDroplets_CompassRoom(void) { return 1; } -void sub_StateChange_Dojos_89() { +void sub_StateChange_Dojos_89(void) { } -u32 sub_unk3_TempleOfDroplets_LanternScissors() { +u32 sub_unk3_TempleOfDroplets_LanternScissors(void) { return 1; } -void sub_StateChange_Dojos_90() { +void sub_StateChange_Dojos_90(void) { } -u32 sub_unk3_TempleOfDroplets_LilypadMiddleB2() { +u32 sub_unk3_TempleOfDroplets_LilypadMiddleB2(void) { return 1; } -void sub_StateChange_Dojos_91() { +void sub_StateChange_Dojos_91(void) { } -u32 sub_unk3_TempleOfDroplets_LilypadEastB2() { +u32 sub_unk3_TempleOfDroplets_LilypadEastB2(void) { return 1; } -void sub_StateChange_Dojos_92() { +void sub_StateChange_Dojos_92(void) { } -u32 sub_unk3_TempleOfDroplets_FlameBarBlockPuzzle() { +u32 sub_unk3_TempleOfDroplets_FlameBarBlockPuzzle(void) { return 1; } -void sub_StateChange_Dojos_93() { +void sub_StateChange_Dojos_93(void) { } -u32 sub_unk3_RoyalCrypt_KingGustaf() { +u32 sub_unk3_RoyalCrypt_KingGustaf(void) { return 1; } @@ -3024,57 +3033,57 @@ void sub_StateChange_RoyalCrypt_KingGustaf(void) { } } -u32 sub_unk3_RoyalCrypt_WaterRope() { +u32 sub_unk3_RoyalCrypt_WaterRope(void) { return 1; } -void sub_StateChange_Dojos_94() { +void sub_StateChange_Dojos_94(void) { } -u32 sub_unk3_RoyalCrypt_Gibdo() { +u32 sub_unk3_RoyalCrypt_Gibdo(void) { return 1; } -void sub_StateChange_Dojos_95() { +void sub_StateChange_Dojos_95(void) { } -u32 sub_unk3_RoyalCrypt_3() { +u32 sub_unk3_RoyalCrypt_3(void) { return 1; } -void sub_StateChange_Dojos_96() { +void sub_StateChange_Dojos_96(void) { } -u32 sub_unk3_RoyalCrypt_KeyBlock() { +u32 sub_unk3_RoyalCrypt_KeyBlock(void) { return 1; } -void sub_StateChange_Dojos_97() { +void sub_StateChange_Dojos_97(void) { } -u32 sub_unk3_RoyalCrypt_5() { +u32 sub_unk3_RoyalCrypt_5(void) { return 1; } -void sub_StateChange_Dojos_98() { +void sub_StateChange_Dojos_98(void) { } -u32 sub_unk3_RoyalCrypt_6() { +u32 sub_unk3_RoyalCrypt_6(void) { return 1; } -void sub_StateChange_Dojos_99() { +void sub_StateChange_Dojos_99(void) { } -u32 sub_unk3_RoyalCrypt_MushroomPit() { +u32 sub_unk3_RoyalCrypt_MushroomPit(void) { return 1; } -void sub_StateChange_RoyalCrypt_MushroomPit() { +void sub_StateChange_RoyalCrypt_MushroomPit(void) { sub_08054570(); } -u32 sub_unk3_RoyalCrypt_Entrance() { +u32 sub_unk3_RoyalCrypt_Entrance(void) { return 1; } @@ -3092,7 +3101,7 @@ void sub_StateChange_RoyalCrypt_Entrance(void) { } } -u32 sub_unk3_PalaceOfWinds_0() { +u32 sub_unk3_PalaceOfWinds_0(void) { return 1; } @@ -3118,338 +3127,338 @@ void sub_StateChange_PalaceOfWinds_0(void) { } } -u32 sub_unk3_PalaceOfWinds_1() { +u32 sub_unk3_PalaceOfWinds_1(void) { return 1; } -void sub_StateChange_PalaceOfWinds_1() { +void sub_StateChange_PalaceOfWinds_1(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_2() { +u32 sub_unk3_PalaceOfWinds_2(void) { return 1; } -void sub_StateChange_PalaceOfWinds_2() { +void sub_StateChange_PalaceOfWinds_2(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_3() { +u32 sub_unk3_PalaceOfWinds_3(void) { return 1; } -void sub_StateChange_PalaceOfWinds_3() { +void sub_StateChange_PalaceOfWinds_3(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_4() { +u32 sub_unk3_PalaceOfWinds_4(void) { return 1; } -void sub_StateChange_PalaceOfWinds_4() { +void sub_StateChange_PalaceOfWinds_4(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_5() { +u32 sub_unk3_PalaceOfWinds_5(void) { return 1; } -void sub_StateChange_PalaceOfWinds_5() { +void sub_StateChange_PalaceOfWinds_5(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_6() { +u32 sub_unk3_PalaceOfWinds_6(void) { return 1; } -void sub_StateChange_PalaceOfWinds_6() { +void sub_StateChange_PalaceOfWinds_6(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_7() { +u32 sub_unk3_PalaceOfWinds_7(void) { return 1; } -void sub_StateChange_PalaceOfWinds_7() { +void sub_StateChange_PalaceOfWinds_7(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_8() { +u32 sub_unk3_PalaceOfWinds_8(void) { return 1; } -void sub_StateChange_PalaceOfWinds_8() { +void sub_StateChange_PalaceOfWinds_8(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_9() { +u32 sub_unk3_PalaceOfWinds_9(void) { return 1; } -void sub_StateChange_PalaceOfWinds_9() { +void sub_StateChange_PalaceOfWinds_9(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_10() { +u32 sub_unk3_PalaceOfWinds_10(void) { return 1; } -void sub_StateChange_PalaceOfWinds_10() { +void sub_StateChange_PalaceOfWinds_10(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_11() { +u32 sub_unk3_PalaceOfWinds_11(void) { return 1; } -void sub_StateChange_PalaceOfWinds_11() { +void sub_StateChange_PalaceOfWinds_11(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_12() { +u32 sub_unk3_PalaceOfWinds_12(void) { return 1; } -void sub_StateChange_PalaceOfWinds_12() { +void sub_StateChange_PalaceOfWinds_12(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_13() { +u32 sub_unk3_PalaceOfWinds_13(void) { return 1; } -void sub_StateChange_PalaceOfWinds_13() { +void sub_StateChange_PalaceOfWinds_13(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_14() { +u32 sub_unk3_PalaceOfWinds_14(void) { return 1; } -void sub_StateChange_PalaceOfWinds_14() { +void sub_StateChange_PalaceOfWinds_14(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_15() { +u32 sub_unk3_PalaceOfWinds_15(void) { return 1; } -void sub_StateChange_PalaceOfWinds_15() { +void sub_StateChange_PalaceOfWinds_15(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_16() { +u32 sub_unk3_PalaceOfWinds_16(void) { return 1; } -void sub_StateChange_PalaceOfWinds_16() { +void sub_StateChange_PalaceOfWinds_16(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_17() { +u32 sub_unk3_PalaceOfWinds_17(void) { return 1; } -void sub_StateChange_PalaceOfWinds_17() { +void sub_StateChange_PalaceOfWinds_17(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_18() { +u32 sub_unk3_PalaceOfWinds_18(void) { return 1; } -void sub_StateChange_PalaceOfWinds_18() { +void sub_StateChange_PalaceOfWinds_18(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_19() { +u32 sub_unk3_PalaceOfWinds_19(void) { return 1; } -void sub_StateChange_PalaceOfWinds_19() { +void sub_StateChange_PalaceOfWinds_19(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_20() { +u32 sub_unk3_PalaceOfWinds_20(void) { return 1; } -void sub_StateChange_PalaceOfWinds_20() { +void sub_StateChange_PalaceOfWinds_20(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_21() { +u32 sub_unk3_PalaceOfWinds_21(void) { return 1; } -void sub_StateChange_PalaceOfWinds_21() { +void sub_StateChange_PalaceOfWinds_21(void) { } -u32 sub_unk3_PalaceOfWinds_22() { +u32 sub_unk3_PalaceOfWinds_22(void) { return 1; } -void sub_StateChange_PalaceOfWinds_22() { +void sub_StateChange_PalaceOfWinds_22(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_23() { +u32 sub_unk3_PalaceOfWinds_23(void) { return 1; } -void sub_StateChange_PalaceOfWinds_23() { +void sub_StateChange_PalaceOfWinds_23(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_24() { +u32 sub_unk3_PalaceOfWinds_24(void) { return 1; } -void sub_StateChange_PalaceOfWinds_24() { +void sub_StateChange_PalaceOfWinds_24(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_25() { +u32 sub_unk3_PalaceOfWinds_25(void) { return 1; } -void sub_StateChange_PalaceOfWinds_25() { +void sub_StateChange_PalaceOfWinds_25(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_26() { +u32 sub_unk3_PalaceOfWinds_26(void) { return 1; } -void sub_StateChange_PalaceOfWinds_26() { +void sub_StateChange_PalaceOfWinds_26(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_27() { +u32 sub_unk3_PalaceOfWinds_27(void) { return 1; } -void sub_StateChange_PalaceOfWinds_27() { +void sub_StateChange_PalaceOfWinds_27(void) { } -u32 sub_unk3_PalaceOfWinds_28() { +u32 sub_unk3_PalaceOfWinds_28(void) { return 1; } -void sub_StateChange_PalaceOfWinds_28() { +void sub_StateChange_PalaceOfWinds_28(void) { } -u32 sub_unk3_PalaceOfWinds_29() { +u32 sub_unk3_PalaceOfWinds_29(void) { return 1; } -void sub_StateChange_PalaceOfWinds_29() { +void sub_StateChange_PalaceOfWinds_29(void) { } -u32 sub_unk3_PalaceOfWinds_30() { +u32 sub_unk3_PalaceOfWinds_30(void) { return 1; } -void sub_StateChange_PalaceOfWinds_30() { +void sub_StateChange_PalaceOfWinds_30(void) { } -u32 sub_unk3_PalaceOfWinds_31() { +u32 sub_unk3_PalaceOfWinds_31(void) { return 1; } -void sub_StateChange_PalaceOfWinds_31() { +void sub_StateChange_PalaceOfWinds_31(void) { } -u32 sub_unk3_PalaceOfWinds_32() { +u32 sub_unk3_PalaceOfWinds_32(void) { return 1; } -void sub_StateChange_PalaceOfWinds_32() { +void sub_StateChange_PalaceOfWinds_32(void) { } -u32 sub_unk3_PalaceOfWinds_33() { +u32 sub_unk3_PalaceOfWinds_33(void) { return 1; } -void sub_StateChange_PalaceOfWinds_33() { +void sub_StateChange_PalaceOfWinds_33(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_34() { +u32 sub_unk3_PalaceOfWinds_34(void) { return 1; } -void sub_StateChange_PalaceOfWinds_34() { +void sub_StateChange_PalaceOfWinds_34(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_35() { +u32 sub_unk3_PalaceOfWinds_35(void) { return 1; } -void sub_StateChange_PalaceOfWinds_35() { +void sub_StateChange_PalaceOfWinds_35(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_36() { +u32 sub_unk3_PalaceOfWinds_36(void) { return 1; } -void sub_StateChange_PalaceOfWinds_36() { +void sub_StateChange_PalaceOfWinds_36(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_37() { +u32 sub_unk3_PalaceOfWinds_37(void) { return 1; } -void sub_StateChange_PalaceOfWinds_37() { +void sub_StateChange_PalaceOfWinds_37(void) { } -u32 sub_unk3_PalaceOfWinds_38() { +u32 sub_unk3_PalaceOfWinds_38(void) { return 1; } -void sub_StateChange_PalaceOfWinds_38() { +void sub_StateChange_PalaceOfWinds_38(void) { } -u32 sub_unk3_PalaceOfWinds_39() { +u32 sub_unk3_PalaceOfWinds_39(void) { return 1; } -void sub_StateChange_PalaceOfWinds_39() { +void sub_StateChange_PalaceOfWinds_39(void) { } -u32 sub_unk3_PalaceOfWinds_40() { +u32 sub_unk3_PalaceOfWinds_40(void) { return 1; } -void sub_StateChange_PalaceOfWinds_40() { +void sub_StateChange_PalaceOfWinds_40(void) { } -u32 sub_unk3_PalaceOfWinds_41() { +u32 sub_unk3_PalaceOfWinds_41(void) { return 1; } -void sub_StateChange_PalaceOfWinds_41() { +void sub_StateChange_PalaceOfWinds_41(void) { } -u32 sub_unk3_PalaceOfWinds_42() { +u32 sub_unk3_PalaceOfWinds_42(void) { return 1; } -void sub_StateChange_PalaceOfWinds_42() { +void sub_StateChange_PalaceOfWinds_42(void) { } -u32 sub_unk3_PalaceOfWinds_43() { +u32 sub_unk3_PalaceOfWinds_43(void) { return 1; } -void sub_StateChange_PalaceOfWinds_43() { +void sub_StateChange_PalaceOfWinds_43(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_44() { +u32 sub_unk3_PalaceOfWinds_44(void) { return 1; } @@ -3462,61 +3471,61 @@ void sub_StateChange_PalaceOfWinds_44(void) { } } -u32 sub_unk3_PalaceOfWinds_45() { +u32 sub_unk3_PalaceOfWinds_45(void) { return 1; } -void sub_StateChange_PalaceOfWinds_45() { +void sub_StateChange_PalaceOfWinds_45(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_46() { +u32 sub_unk3_PalaceOfWinds_46(void) { return 1; } -void sub_StateChange_PalaceOfWinds_46() { +void sub_StateChange_PalaceOfWinds_46(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_47() { +u32 sub_unk3_PalaceOfWinds_47(void) { return 1; } -void sub_StateChange_PalaceOfWinds_47() { +void sub_StateChange_PalaceOfWinds_47(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_48() { +u32 sub_unk3_PalaceOfWinds_48(void) { return 1; } -void sub_StateChange_PalaceOfWinds_48() { +void sub_StateChange_PalaceOfWinds_48(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_49() { +u32 sub_unk3_PalaceOfWinds_49(void) { return 1; } -void sub_StateChange_PalaceOfWinds_49() { +void sub_StateChange_PalaceOfWinds_49(void) { Manager19_Main(NULL); } -u32 sub_unk3_PalaceOfWinds_50() { +u32 sub_unk3_PalaceOfWinds_50(void) { return 1; } -void sub_StateChange_PalaceOfWinds_50() { +void sub_StateChange_PalaceOfWinds_50(void) { } -u32 sub_unk3_PalaceOfWindsBoss_Main() { +u32 sub_unk3_PalaceOfWindsBoss_Main(void) { return 1; } -void sub_StateChange_PalaceOfWindsBoss_Main() { +void sub_StateChange_PalaceOfWindsBoss_Main(void) { } -u32 sub_unk3_Vaati2_Main() { +u32 sub_unk3_Vaati2_Main(void) { return 1; } @@ -3525,7 +3534,7 @@ void sub_StateChange_Vaati2_Main(void) { gArea.bgm = gArea.queued_bgm; } -u32 sub_unk3_Vaati3_Main() { +u32 sub_unk3_Vaati3_Main(void) { return 1; } @@ -3546,29 +3555,29 @@ void sub_StateChange_Vaati3_Main(void) { } } -u32 sub_unk3_DarkHyruleCastleBridge_Main() { +u32 sub_unk3_DarkHyruleCastleBridge_Main(void) { return 1; } -void sub_StateChange_DarkHyruleCastleBridge_Main() { +void sub_StateChange_DarkHyruleCastleBridge_Main(void) { sub_0805B4D0(6); } -u32 sub_unk3_VaatisArms_First() { +u32 sub_unk3_VaatisArms_First(void) { return 1; } -void sub_StateChange_VaatisArms_First() { +void sub_StateChange_VaatisArms_First(void) { } -u32 sub_unk3_VaatisArms_Second() { +u32 sub_unk3_VaatisArms_Second(void) { return 1; } -void sub_StateChange_VaatisArms_Second() { +void sub_StateChange_VaatisArms_Second(void) { } -u32 sub_unk3_DarkHyruleCastleOutside_ZeldaStatuePlatform() { +u32 sub_unk3_DarkHyruleCastleOutside_ZeldaStatuePlatform(void) { sub_080534AC(); return 1; } @@ -3614,7 +3623,7 @@ void sub_0804D810(void) { } } -u32 sub_unk3_DarkHyruleCastleOutside_Garden() { +u32 sub_unk3_DarkHyruleCastleOutside_Garden(void) { return 1; } @@ -3645,53 +3654,53 @@ void sub_StateChange_DarkHyruleCastleOutside_Garden(void) { ClearGlobalFlag(0x5d); } -u32 sub_unk3_DarkHyruleCastleOutside_OutsideNorthwest() { +u32 sub_unk3_DarkHyruleCastleOutside_OutsideNorthwest(void) { return 1; } -void sub_StateChange_Dojos_ToGrimblade0() { +void sub_StateChange_Dojos_ToGrimblade0(void) { } -u32 sub_unk3_DarkHyruleCastleOutside_OutsideNortheast() { +u32 sub_unk3_DarkHyruleCastleOutside_OutsideNortheast(void) { return 1; } -void sub_StateChange_Dojos_ToGrimblade1() { +void sub_StateChange_Dojos_ToGrimblade1(void) { } -u32 sub_unk3_DarkHyruleCastleOutside_OutsideEast() { +u32 sub_unk3_DarkHyruleCastleOutside_OutsideEast(void) { return 1; } -void sub_StateChange_Dojos_ToGrimblade2() { +void sub_StateChange_Dojos_ToGrimblade2(void) { } -u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouthwest() { +u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouthwest(void) { return 1; } -void sub_StateChange_Dojos_ToGrimblade3() { +void sub_StateChange_Dojos_ToGrimblade3(void) { } -u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouth() { +u32 sub_unk3_DarkHyruleCastleOutside_OutsideSouth(void) { return 1; } -void sub_StateChange_Dojos_ToGrimblade4() { +void sub_StateChange_Dojos_ToGrimblade4(void) { } -u32 sub_unk3_DarkHyruleCastleOutside_OutsideSoutheast() { +u32 sub_unk3_DarkHyruleCastleOutside_OutsideSoutheast(void) { return 1; } -void sub_StateChange_Dojos_ToGrimblade5() { +void sub_StateChange_Dojos_ToGrimblade5(void) { } -u32 sub_unk3_DarkHyruleCastleOutside_8() { +u32 sub_unk3_DarkHyruleCastleOutside_8(void) { return 1; } -void sub_StateChange_Dojos_ToGrimblade6() { +void sub_StateChange_Dojos_ToGrimblade6(void) { } extern u32 gUnk_080EB604; @@ -3726,7 +3735,7 @@ void sub_StateChange_DarkHyruleCastle_0(void) { extern EntityData gUnk_080EB684; -void sub_0804D9B0(void) { +static void sub_0804D9B0(void) { sub_0807BB98(0x797, 1, 5, 1); sub_0807BB98(0x357, 1, 5, 1); sub_0807BB98(0x55f, 1, 2, 1); @@ -3734,39 +3743,39 @@ void sub_0804D9B0(void) { gArea.queued_bgm = gArea.bgm; } -u32 sub_unk3_DarkHyruleCastle_1() { +u32 sub_unk3_DarkHyruleCastle_1(void) { return 1; } -void sub_StateChange_Dojos_ToGrimblade7() { +void sub_StateChange_Dojos_ToGrimblade7(void) { } -u32 sub_unk3_DarkHyruleCastle_2() { +u32 sub_unk3_DarkHyruleCastle_2(void) { return 1; } -void sub_StateChange_Dojos_ToGrimblade8() { +void sub_StateChange_Dojos_ToGrimblade8(void) { } -u32 sub_unk3_DarkHyruleCastle_3() { +u32 sub_unk3_DarkHyruleCastle_3(void) { return 1; } -void sub_StateChange_Dojos_ToGrimblade9() { +void sub_StateChange_Dojos_ToGrimblade9(void) { } -u32 sub_unk3_DarkHyruleCastle_4() { +u32 sub_unk3_DarkHyruleCastle_4(void) { return 1; } -void sub_StateChange_Dojos_ToSplitblade0() { +void sub_StateChange_Dojos_ToSplitblade0(void) { } -u32 sub_unk3_DarkHyruleCastle_5() { +u32 sub_unk3_DarkHyruleCastle_5(void) { return 1; } -void sub_StateChange_Dojos_ToSplitblade1() { +void sub_StateChange_Dojos_ToSplitblade1(void) { } u32 sub_unk3_DarkHyruleCastle_6(void) { @@ -3796,55 +3805,55 @@ void sub_StateChange_DarkHyruleCastle_6(void) { } } -u32 sub_unk3_DarkHyruleCastle_7() { +u32 sub_unk3_DarkHyruleCastle_7(void) { return 1; } -void sub_StateChange_Dojos_ToSplitblade2() { +void sub_StateChange_Dojos_ToSplitblade2(void) { } -u32 sub_unk3_DarkHyruleCastle_8() { +u32 sub_unk3_DarkHyruleCastle_8(void) { return 1; } -void sub_StateChange_Dojos_ToSplitblade3() { +void sub_StateChange_Dojos_ToSplitblade3(void) { } -u32 sub_unk3_DarkHyruleCastle_9() { +u32 sub_unk3_DarkHyruleCastle_9(void) { return 1; } -void sub_StateChange_Dojos_ToSplitblade4() { +void sub_StateChange_Dojos_ToSplitblade4(void) { } -u32 sub_unk3_DarkHyruleCastle_10() { +u32 sub_unk3_DarkHyruleCastle_10(void) { return 1; } -void sub_StateChange_Dojos_ToSplitblade5() { +void sub_StateChange_Dojos_ToSplitblade5(void) { } -u32 sub_unk3_DarkHyruleCastle_11() { +u32 sub_unk3_DarkHyruleCastle_11(void) { return 1; } -void sub_StateChange_Dojos_ToSplitblade6() { +void sub_StateChange_Dojos_ToSplitblade6(void) { } -u32 sub_unk3_DarkHyruleCastle_12() { +u32 sub_unk3_DarkHyruleCastle_12(void) { return 1; } -void sub_StateChange_Dojos_ToSplitblade7() { +void sub_StateChange_Dojos_ToSplitblade7(void) { } -u32 sub_unk3_DarkHyruleCastle_13() { +u32 sub_unk3_DarkHyruleCastle_13(void) { return 1; } -void sub_StateChange_Dojos_ToSplitblade8() { +void sub_StateChange_Dojos_ToSplitblade8(void) { } -u32 sub_unk3_DarkHyruleCastle_14() { +u32 sub_unk3_DarkHyruleCastle_14(void) { return 1; } @@ -3856,14 +3865,14 @@ void sub_StateChange_DarkHyruleCastle_14(void) { } } -u32 sub_unk3_DarkHyruleCastle_15() { +u32 sub_unk3_DarkHyruleCastle_15(void) { return 1; } -void sub_StateChange_Dojos_ToSplitblade9() { +void sub_StateChange_Dojos_ToSplitblade9(void) { } -u32 sub_unk3_DarkHyruleCastle_16() { +u32 sub_unk3_DarkHyruleCastle_16(void) { return 1; } @@ -3875,21 +3884,21 @@ void sub_StateChange_DarkHyruleCastle_16(void) { } } -u32 sub_unk3_DarkHyruleCastle_17() { +u32 sub_unk3_DarkHyruleCastle_17(void) { return 1; } -void sub_StateChange_Dojos_ToGreatblade0() { +void sub_StateChange_Dojos_ToGreatblade0(void) { } -u32 sub_unk3_DarkHyruleCastle_18() { +u32 sub_unk3_DarkHyruleCastle_18(void) { return 1; } -void sub_StateChange_Dojos_ToGreatblade1() { +void sub_StateChange_Dojos_ToGreatblade1(void) { } -u32 sub_unk3_DarkHyruleCastle_19() { +u32 sub_unk3_DarkHyruleCastle_19(void) { return 1; } @@ -3901,14 +3910,14 @@ void sub_StateChange_DarkHyruleCastle_19(void) { } } -u32 sub_unk3_DarkHyruleCastle_20() { +u32 sub_unk3_DarkHyruleCastle_20(void) { return 1; } -void sub_StateChange_Dojos_ToGreatblade2() { +void sub_StateChange_Dojos_ToGreatblade2(void) { } -u32 sub_unk3_DarkHyruleCastle_21() { +u32 sub_unk3_DarkHyruleCastle_21(void) { return 1; } @@ -3920,46 +3929,46 @@ void sub_StateChange_DarkHyruleCastle_21(void) { } } -u32 sub_unk3_DarkHyruleCastle_22() { +u32 sub_unk3_DarkHyruleCastle_22(void) { return 1; } -void sub_StateChange_Dojos_ToGreatblade3() { +void sub_StateChange_Dojos_ToGreatblade3(void) { } -u32 sub_unk3_DarkHyruleCastle_23() { +u32 sub_unk3_DarkHyruleCastle_23(void) { return 1; } -void sub_StateChange_Dojos_ToGreatblade4() { +void sub_StateChange_Dojos_ToGreatblade4(void) { } -u32 sub_unk3_DarkHyruleCastle_24() { +u32 sub_unk3_DarkHyruleCastle_24(void) { return 1; } -void sub_StateChange_Dojos_ToGreatblade5() { +void sub_StateChange_Dojos_ToGreatblade5(void) { } -u32 sub_unk3_DarkHyruleCastle_25() { +u32 sub_unk3_DarkHyruleCastle_25(void) { return 1; } -void sub_StateChange_Dojos_ToGreatblade6() { +void sub_StateChange_Dojos_ToGreatblade6(void) { } -u32 sub_unk3_DarkHyruleCastle_26() { +u32 sub_unk3_DarkHyruleCastle_26(void) { return 1; } -void sub_StateChange_Dojos_ToGreatblade7() { +void sub_StateChange_Dojos_ToGreatblade7(void) { } -u32 sub_unk3_DarkHyruleCastle_27() { +u32 sub_unk3_DarkHyruleCastle_27(void) { return 1; } -void sub_StateChange_Dojos_ToGreatblade8() { +void sub_StateChange_Dojos_ToGreatblade8(void) { } u32 sub_unk3_DarkHyruleCastle_28(void) { @@ -3979,18 +3988,18 @@ void sub_StateChange_DarkHyruleCastle_28(void) { } } -u32 sub_unk3_DarkHyruleCastle_29() { +u32 sub_unk3_DarkHyruleCastle_29(void) { return 1; } -void sub_StateChange_Dojos_ToGreatblade9() { +void sub_StateChange_Dojos_ToGreatblade9(void) { } -u32 sub_unk3_DarkHyruleCastle_30() { +u32 sub_unk3_DarkHyruleCastle_30(void) { return 1; } -void sub_StateChange_Dojos_ToScarblade0() { +void sub_StateChange_Dojos_ToScarblade0(void) { } extern u32 gUnk_080ED1E4; @@ -4009,151 +4018,151 @@ void sub_StateChange_DarkHyruleCastle_31(void) { } } -u32 sub_unk3_DarkHyruleCastle_32() { +u32 sub_unk3_DarkHyruleCastle_32(void) { return 1; } -void sub_StateChange_Dojos_ToScarblade1() { +void sub_StateChange_Dojos_ToScarblade1(void) { } -u32 sub_unk3_DarkHyruleCastle_33() { +u32 sub_unk3_DarkHyruleCastle_33(void) { return 1; } -void sub_StateChange_Dojos_ToScarblade2() { +void sub_StateChange_Dojos_ToScarblade2(void) { } -u32 sub_unk3_DarkHyruleCastle_34() { +u32 sub_unk3_DarkHyruleCastle_34(void) { return 1; } -void sub_StateChange_Dojos_ToScarblade3() { +void sub_StateChange_Dojos_ToScarblade3(void) { } -u32 sub_unk3_DarkHyruleCastle_35() { +u32 sub_unk3_DarkHyruleCastle_35(void) { return 1; } -void sub_StateChange_Dojos_ToScarblade4() { +void sub_StateChange_Dojos_ToScarblade4(void) { } -u32 sub_unk3_DarkHyruleCastle_36() { +u32 sub_unk3_DarkHyruleCastle_36(void) { return 1; } -void sub_StateChange_Dojos_ToScarblade5() { +void sub_StateChange_Dojos_ToScarblade5(void) { } -u32 sub_unk3_DarkHyruleCastle_37() { +u32 sub_unk3_DarkHyruleCastle_37(void) { return 1; } -void sub_StateChange_Dojos_ToScarblade6() { +void sub_StateChange_Dojos_ToScarblade6(void) { } -u32 sub_unk3_DarkHyruleCastle_38() { +u32 sub_unk3_DarkHyruleCastle_38(void) { return 1; } -void sub_StateChange_Dojos_ToScarblade7() { +void sub_StateChange_Dojos_ToScarblade7(void) { } -u32 sub_unk3_DarkHyruleCastle_39() { +u32 sub_unk3_DarkHyruleCastle_39(void) { return 1; } -void sub_StateChange_Dojos_ToScarblade8() { +void sub_StateChange_Dojos_ToScarblade8(void) { } -u32 sub_unk3_DarkHyruleCastle_40() { +u32 sub_unk3_DarkHyruleCastle_40(void) { return 1; } -void sub_StateChange_Dojos_ToScarblade9() { +void sub_StateChange_Dojos_ToScarblade9(void) { } -u32 sub_unk3_DarkHyruleCastle_41() { +u32 sub_unk3_DarkHyruleCastle_41(void) { return 1; } -void sub_StateChange_GoronCave_StairsToCave0() { +void sub_StateChange_GoronCave_StairsToCave0(void) { } -u32 sub_unk3_DarkHyruleCastle_42() { +u32 sub_unk3_DarkHyruleCastle_42(void) { return 1; } -void sub_StateChange_GoronCave_StairsToCave1() { +void sub_StateChange_GoronCave_StairsToCave1(void) { } -u32 sub_unk3_DarkHyruleCastle_43() { +u32 sub_unk3_DarkHyruleCastle_43(void) { return 1; } -void sub_StateChange_GoronCave_StairsToCave2() { +void sub_StateChange_GoronCave_StairsToCave2(void) { } -u32 sub_unk3_DarkHyruleCastle_44() { +u32 sub_unk3_DarkHyruleCastle_44(void) { return 1; } -void sub_StateChange_GoronCave_StairsToCave3() { +void sub_StateChange_GoronCave_StairsToCave3(void) { } -u32 sub_unk3_DarkHyruleCastle_45() { +u32 sub_unk3_DarkHyruleCastle_45(void) { return 1; } -void sub_StateChange_GoronCave_StairsToCave4() { +void sub_StateChange_GoronCave_StairsToCave4(void) { } -u32 sub_unk3_DarkHyruleCastle_46() { +u32 sub_unk3_DarkHyruleCastle_46(void) { return 1; } -void sub_StateChange_GoronCave_StairsToCave5() { +void sub_StateChange_GoronCave_StairsToCave5(void) { } -u32 sub_unk3_DarkHyruleCastle_47() { +u32 sub_unk3_DarkHyruleCastle_47(void) { return 1; } -void sub_StateChange_GoronCave_StairsToCave6() { +void sub_StateChange_GoronCave_StairsToCave6(void) { } -u32 sub_unk3_DarkHyruleCastle_48() { +u32 sub_unk3_DarkHyruleCastle_48(void) { return 1; } -void sub_StateChange_GoronCave_StairsToCave7() { +void sub_StateChange_GoronCave_StairsToCave7(void) { } -u32 sub_unk3_DarkHyruleCastle_49() { +u32 sub_unk3_DarkHyruleCastle_49(void) { return 1; } -void sub_StateChange_GoronCave_StairsToCave8() { +void sub_StateChange_GoronCave_StairsToCave8(void) { } -u32 sub_unk3_DarkHyruleCastle_50() { +u32 sub_unk3_DarkHyruleCastle_50(void) { return 1; } -void sub_StateChange_GoronCave_StairsToCave9() { +void sub_StateChange_GoronCave_StairsToCave9(void) { } -u32 sub_unk3_DarkHyruleCastle_51() { +u32 sub_unk3_DarkHyruleCastle_51(void) { return 1; } -void sub_StateChange_Ruins_Beanstalk0() { +void sub_StateChange_Ruins_Beanstalk0(void) { } -u32 sub_unk3_DarkHyruleCastle_52() { +u32 sub_unk3_DarkHyruleCastle_52(void) { return 1; } -void sub_StateChange_Ruins_Beanstalk1() { +void sub_StateChange_Ruins_Beanstalk1(void) { } u32 sub_unk3_DarkHyruleCastle_53(void) { @@ -4174,11 +4183,11 @@ void sub_StateChange_DarkHyruleCastle_53(void) { } } -u32 sub_unk3_DarkHyruleCastle_54() { +u32 sub_unk3_DarkHyruleCastle_54(void) { return 1; } -void sub_StateChange_Ruins_Beanstalk2() { +void sub_StateChange_Ruins_Beanstalk2(void) { } u32 sub_unk3_DarkHyruleCastle_55(void) { @@ -4198,14 +4207,14 @@ void sub_StateChange_DarkHyruleCastle_55(void) { } } -u32 sub_unk3_DarkHyruleCastle_56() { +u32 sub_unk3_DarkHyruleCastle_56(void) { return 1; } -void sub_StateChange_Ruins_Beanstalk3() { +void sub_StateChange_Ruins_Beanstalk3(void) { } -u32 sub_unk3_DarkHyruleCastle_57() { +u32 sub_unk3_DarkHyruleCastle_57(void) { return 1; } @@ -4217,11 +4226,11 @@ void sub_StateChange_DarkHyruleCastle_57(void) { } } -u32 sub_unk3_DarkHyruleCastle_58() { +u32 sub_unk3_DarkHyruleCastle_58(void) { return 1; } -void sub_StateChange_Ruins_Beanstalk4() { +void sub_StateChange_Ruins_Beanstalk4(void) { } ASM_FUNC("asm/non_matching/sub_unk3_HyruleTown_0.inc", u32 sub_unk3_HyruleTown_0(void)) @@ -4338,95 +4347,95 @@ void sub_unk1_HyruleTown_8(void) { ASM_FUNC("asm/non_matching/sub_0804E150.inc", void sub_0804E150(void)) -u32 sub_unk3_HyruleTownMinishCaves_Entrance() { +u32 sub_unk3_HyruleTownMinishCaves_Entrance(void) { return 1; } -void sub_StateChange_HyruleTownMinishCaves_Entrance() { +void sub_StateChange_HyruleTownMinishCaves_Entrance(void) { } -u32 sub_unk3_HyruleTownMinishCaves_NorthRoom() { +u32 sub_unk3_HyruleTownMinishCaves_NorthRoom(void) { return 1; } -void sub_StateChange_HyruleTownMinishCaves_NorthRoom() { +void sub_StateChange_HyruleTownMinishCaves_NorthRoom(void) { } -u32 sub_unk3_HyruleTownMinishCaves_PacciJump() { +u32 sub_unk3_HyruleTownMinishCaves_PacciJump(void) { return 1; } -void sub_StateChange_HyruleTownMinishCaves_PacciJump() { +void sub_StateChange_HyruleTownMinishCaves_PacciJump(void) { } -u32 sub_unk3_HyruleTownMinishCaves_MulldozerFight() { +u32 sub_unk3_HyruleTownMinishCaves_MulldozerFight(void) { return 1; } -void sub_StateChange_HyruleTownMinishCaves_MulldozerFight() { +void sub_StateChange_HyruleTownMinishCaves_MulldozerFight(void) { } -u32 sub_unk3_HyruleTownMinishCaves_WestChest() { +u32 sub_unk3_HyruleTownMinishCaves_WestChest(void) { return 1; } -void sub_StateChange_HyruleTownMinishCaves_WestChest() { +void sub_StateChange_HyruleTownMinishCaves_WestChest(void) { } -u32 sub_unk3_HyruleTownMinishCaves_Flippers() { +u32 sub_unk3_HyruleTownMinishCaves_Flippers(void) { return 1; } -void sub_StateChange_HyruleTownMinishCaves_Flippers() { +void sub_StateChange_HyruleTownMinishCaves_Flippers(void) { } -u32 sub_unk3_HyruleTownMinishCaves_Librari() { +u32 sub_unk3_HyruleTownMinishCaves_Librari(void) { return 1; } -void sub_StateChange_HyruleTownMinishCaves_Librari() { +void sub_StateChange_HyruleTownMinishCaves_Librari(void) { } -u32 sub_unk3_HyruleTownMinishCaves_WestFrozenChest() { +u32 sub_unk3_HyruleTownMinishCaves_WestFrozenChest(void) { return 1; } -void sub_StateChange_HyruleTownMinishCaves_WestFrozenChest() { +void sub_StateChange_HyruleTownMinishCaves_WestFrozenChest(void) { } -u32 sub_unk3_HyruleTownMinishCaves_CrossIntersection() { +u32 sub_unk3_HyruleTownMinishCaves_CrossIntersection(void) { return 1; } -void sub_StateChange_HyruleTownMinishCaves_CrossIntersection() { +void sub_StateChange_HyruleTownMinishCaves_CrossIntersection(void) { } -u32 sub_unk3_HyruleTownMinishCaves_SoutheastCorner() { +u32 sub_unk3_HyruleTownMinishCaves_SoutheastCorner(void) { return 1; } -void sub_StateChange_HyruleTownMinishCaves_SoutheastCorner() { +void sub_StateChange_HyruleTownMinishCaves_SoutheastCorner(void) { } -u32 sub_unk3_HyruleTownMinishCaves_Entrance2() { +u32 sub_unk3_HyruleTownMinishCaves_Entrance2(void) { return 1; } -void sub_StateChange_HyruleTownMinishCaves_Entrance2() { +void sub_StateChange_HyruleTownMinishCaves_Entrance2(void) { } -u32 sub_unk3_HyruleTownUnderground_Main() { +u32 sub_unk3_HyruleTownUnderground_Main(void) { return 1; } -void sub_StateChange_HyruleTownUnderground_Main() { +void sub_StateChange_HyruleTownUnderground_Main(void) { } -u32 sub_unk3_HyruleTownUnderground_Well() { +u32 sub_unk3_HyruleTownUnderground_Well(void) { return 1; } -void sub_StateChange_HyruleTownUnderground_Well() { +void sub_StateChange_HyruleTownUnderground_Well(void) { } extern u32 gUnk_080F09A0; @@ -4505,7 +4514,7 @@ void sub_StateChange_CastleGarden_Main(void) { sub_080AF284(); } -u32 sub_unk3_SimonsSimulation_Main() { +u32 sub_unk3_SimonsSimulation_Main(void) { ClearLocalFlag(1); return 1; } @@ -4518,7 +4527,7 @@ extern struct { u32 unk_04; } gUnk_080F0E1C[]; -void sub_StateChange_SimonsSimulation_Main() { +void sub_StateChange_SimonsSimulation_Main(void) { u32 r; u32 index; u32 tmp; @@ -4544,7 +4553,7 @@ void sub_StateChange_SimonsSimulation_Main() { SoundReq(SONG_STOP_BGM); } -u32 sub_unk3_HouseInteriors2_Stranger() { +u32 sub_unk3_HouseInteriors2_Stranger(void) { return 1; } @@ -4559,7 +4568,7 @@ void sub_StateChange_HouseInteriors2_Stranger(void) { } } -u32 sub_unk3_HouseInteriors2_WestOracle() { +u32 sub_unk3_HouseInteriors2_WestOracle(void) { return 1; } @@ -4577,21 +4586,21 @@ void sub_StateChange_HouseInteriors2_WestOracle(void) { } } -u32 sub_unk3_HouseInteriors2_2() { +u32 sub_unk3_HouseInteriors2_2(void) { return 1; } -void sub_StateChange_Ruins_Beanstalk5() { +void sub_StateChange_Ruins_Beanstalk5(void) { } -u32 sub_unk3_HouseInteriors2_3() { +u32 sub_unk3_HouseInteriors2_3(void) { return 1; } -void sub_StateChange_Ruins_Beanstalk6() { +void sub_StateChange_Ruins_Beanstalk6(void) { } -u32 sub_unk3_HouseInteriors2_DrLeft() { +u32 sub_unk3_HouseInteriors2_DrLeft(void) { return 1; } @@ -4609,7 +4618,7 @@ void sub_StateChange_HouseInteriors2_DrLeft(void) { } } -u32 sub_unk3_HouseInteriors2_Romio() { +u32 sub_unk3_HouseInteriors2_Romio(void) { return 1; } @@ -4628,7 +4637,7 @@ void sub_StateChange_HouseInteriors2_Romio(void) { } } -u32 sub_unk3_HouseInteriors2_Julietta() { +u32 sub_unk3_HouseInteriors2_Julietta(void) { return 1; } @@ -4669,7 +4678,7 @@ void sub_StateChange_HouseInteriors2_Julietta(void) { } } -u32 sub_unk3_HouseInteriors2_Percy() { +u32 sub_unk3_HouseInteriors2_Percy(void) { return 1; } @@ -4696,7 +4705,7 @@ void sub_StateChange_HouseInteriors2_Percy(void) { } } -u32 sub_unk3_HouseInteriors2_EastOracle() { +u32 sub_unk3_HouseInteriors2_EastOracle(void) { return 1; } @@ -4714,28 +4723,28 @@ void sub_StateChange_HouseInteriors2_EastOracle(void) { } } -u32 sub_unk3_HouseInteriors2_A() { +u32 sub_unk3_HouseInteriors2_A(void) { return 1; } -void sub_StateChange_Ruins_Beanstalk7() { +void sub_StateChange_Ruins_Beanstalk7(void) { } -u32 sub_unk3_HouseInteriors2_B() { +u32 sub_unk3_HouseInteriors2_B(void) { return 1; } -void sub_StateChange_Ruins_Beanstalk8() { +void sub_StateChange_Ruins_Beanstalk8(void) { } -u32 sub_unk3_HouseInteriors2_Cucco() { +u32 sub_unk3_HouseInteriors2_Cucco(void) { return 1; } -void sub_StateChange_Ruins_Beanstalk9() { +void sub_StateChange_Ruins_Beanstalk9(void) { } -u32 sub_unk3_HouseInteriors2_LinksHouseEntrance() { +u32 sub_unk3_HouseInteriors2_LinksHouseEntrance(void) { return 1; } @@ -4751,7 +4760,7 @@ void sub_StateChange_HouseInteriors2_LinksHouseEntrance(void) { } } -u32 sub_unk3_HouseInteriors2_LinksHouseSmith() { +u32 sub_unk3_HouseInteriors2_LinksHouseSmith(void) { return 1; } @@ -4770,7 +4779,7 @@ void sub_StateChange_HouseInteriors2_LinksHouseSmith(void) { } } -u32 sub_unk3_HouseInteriors2_Dampe() { +u32 sub_unk3_HouseInteriors2_Dampe(void) { return 1; } @@ -4782,7 +4791,7 @@ void sub_StateChange_HouseInteriors2_Dampe(void) { } } -u32 sub_unk3_HouseInteriors2_Stockwell() { +u32 sub_unk3_HouseInteriors2_Stockwell(void) { return 1; } @@ -4795,7 +4804,7 @@ void sub_StateChange_HouseInteriors2_Stockwell(void) { } } -u32 sub_unk3_HouseInteriors2_LinksHouseBedroom() { +u32 sub_unk3_HouseInteriors2_LinksHouseBedroom(void) { return 1; } @@ -4827,7 +4836,7 @@ void sub_0804E864(void) { ModHealth(0xa0); } -u32 sub_unk3_HouseInteriors4_Carpenter() { +u32 sub_unk3_HouseInteriors4_Carpenter(void) { return 1; } @@ -4843,15 +4852,15 @@ void sub_StateChange_HouseInteriors4_Carpenter(void) { } } -u32 sub_unk3_HouseInteriors4_Swiftblade() { +u32 sub_unk3_HouseInteriors4_Swiftblade(void) { return 1; } -void sub_StateChange_HouseInteriors4_Swiftblade() { +void sub_StateChange_HouseInteriors4_Swiftblade(void) { sub_08054564(); } -u32 sub_unk3_HouseInteriors4_RanchHouseWest() { +u32 sub_unk3_HouseInteriors4_RanchHouseWest(void) { return 1; } @@ -4866,7 +4875,7 @@ void sub_StateChange_HouseInteriors4_RanchHouseWest(void) { } } -u32 sub_unk3_HouseInteriors4_RanchHouseEast() { +u32 sub_unk3_HouseInteriors4_RanchHouseEast(void) { return 1; } @@ -4878,14 +4887,14 @@ void sub_StateChange_HouseInteriors4_RanchHouseEast(void) { } } -u32 sub_unk3_HouseInteriors4_FarmHouse() { +u32 sub_unk3_HouseInteriors4_FarmHouse(void) { return 1; } -void sub_StateChange_Ruins_LadderToTektites0() { +void sub_StateChange_Ruins_LadderToTektites0(void) { } -u32 sub_unk3_HouseInteriors4_Mayor() { +u32 sub_unk3_HouseInteriors4_Mayor(void) { return 1; } @@ -4943,74 +4952,74 @@ void sub_StateChange_LakeHylia_Main(void) { SetTile(0x4091, 0x694, 1); } -u32 sub_unk3_LakeHylia_Beanstalk() { +u32 sub_unk3_LakeHylia_Beanstalk(void) { return 1; } -void sub_StateChange_Ruins_LadderToTektites1() { +void sub_StateChange_Ruins_LadderToTektites1(void) { } -u32 sub_unk3_LakeWoodsCave_Main() { +u32 sub_unk3_LakeWoodsCave_Main(void) { return 1; } -void sub_StateChange_Ruins_LadderToTektites2() { +void sub_StateChange_Ruins_LadderToTektites2(void) { } -u32 sub_unk3_HyliaDigCaves_Middle() { +u32 sub_unk3_HyliaDigCaves_Middle(void) { return 1; } -void sub_StateChange_Ruins_LadderToTektites3() { +void sub_StateChange_Ruins_LadderToTektites3(void) { } -u32 sub_unk3_HyliaDigCaves_North() { +u32 sub_unk3_HyliaDigCaves_North(void) { return 1; } -void sub_StateChange_Ruins_LadderToTektites4() { +void sub_StateChange_Ruins_LadderToTektites4(void) { } -u32 sub_unk3_CastorWildsDigCave_Main() { +u32 sub_unk3_CastorWildsDigCave_Main(void) { return 1; } -void sub_StateChange_Ruins_LadderToTektites5() { +void sub_StateChange_Ruins_LadderToTektites5(void) { } -u32 sub_unk3_HyruleDigCaves_Main() { +u32 sub_unk3_HyruleDigCaves_Main(void) { return 1; } -void sub_StateChange_Ruins_LadderToTektites6() { +void sub_StateChange_Ruins_LadderToTektites6(void) { } -u32 sub_unk3_CrenelDigCave_Main() { +u32 sub_unk3_CrenelDigCave_Main(void) { return 1; } -void sub_StateChange_Ruins_LadderToTektites7() { +void sub_StateChange_Ruins_LadderToTektites7(void) { } -u32 sub_unk3_DigCaves1_HyruleFieldFarm() { +u32 sub_unk3_DigCaves1_HyruleFieldFarm(void) { return 1; } -void sub_StateChange_Ruins_LadderToTektites8() { +void sub_StateChange_Ruins_LadderToTektites8(void) { } -u32 sub_unk3_DigCaves1_TrilbyHighlands() { +u32 sub_unk3_DigCaves1_TrilbyHighlands(void) { return 1; } -void sub_StateChange_Ruins_LadderToTektites9() { +void sub_StateChange_Ruins_LadderToTektites9(void) { } -u32 sub_unk3_VeilFallsDigCave_Main() { +u32 sub_unk3_VeilFallsDigCave_Main(void) { return 1; } -void sub_StateChange_VeilFallsDigCave_Main() { +void sub_StateChange_VeilFallsDigCave_Main(void) { } u32 sub_unk3_OuterFortressOfWinds_EntranceHall(void) { @@ -5018,7 +5027,7 @@ u32 sub_unk3_OuterFortressOfWinds_EntranceHall(void) { return 1; } -void sub_StateChange_OuterFortressOfWinds_EntranceHall() { +void sub_StateChange_OuterFortressOfWinds_EntranceHall(void) { } u32 sub_unk3_OuterFortressOfWinds_2F(void) { @@ -5026,7 +5035,7 @@ u32 sub_unk3_OuterFortressOfWinds_2F(void) { return 1; } -void sub_StateChange_OuterFortressOfWinds_2F() { +void sub_StateChange_OuterFortressOfWinds_2F(void) { } u32 sub_unk3_OuterFortressOfWinds_3F(void) { @@ -5034,7 +5043,7 @@ u32 sub_unk3_OuterFortressOfWinds_3F(void) { return 1; } -void sub_StateChange_OuterFortressOfWinds_3F() { +void sub_StateChange_OuterFortressOfWinds_3F(void) { } u32 sub_unk3_OuterFortressOfWinds_MoleMitts(void) { @@ -5043,7 +5052,7 @@ u32 sub_unk3_OuterFortressOfWinds_MoleMitts(void) { return 1; } -void sub_StateChange_OuterFortressOfWinds_MoleMitts() { +void sub_StateChange_OuterFortressOfWinds_MoleMitts(void) { } u32 sub_unk3_OuterFortressOfWinds_SmallKey(void) { @@ -5052,7 +5061,7 @@ u32 sub_unk3_OuterFortressOfWinds_SmallKey(void) { return 1; } -void sub_StateChange_OuterFortressOfWinds_SmallKey() { +void sub_StateChange_OuterFortressOfWinds_SmallKey(void) { } extern u32 gUnk_080F4EB0; @@ -5110,11 +5119,11 @@ void sub_unk1_MinishWoods_Main(void) { } } -u32 sub_unk3_Empty_Main() { +u32 sub_unk3_Empty_Main(void) { return 1; } -void sub_StateChange_Empty_Main() { +void sub_StateChange_Empty_Main(void) { } extern u32 gUnk_080F5348; @@ -5144,11 +5153,11 @@ void sub_StateChange_SanctuaryEntrance_Main(void) { } } -void sub_0804ED18(void) { +static void sub_0804ED18(void) { gArea.queued_bgm = gArea.bgm; } -u32 sub_unk3_Sanctuary_Hall() { +u32 sub_unk3_Sanctuary_Hall(void) { return 1; } @@ -5159,7 +5168,7 @@ void sub_StateChange_Sanctuary_Hall(void) { } } -u32 sub_unk3_Sanctuary_Main() { +u32 sub_unk3_Sanctuary_Main(void) { return 1; } @@ -5211,7 +5220,7 @@ void sub_StateChange_Sanctuary_Main(void) { } } -u32 sub_unk3_Sanctuary_StainedGlass() { +u32 sub_unk3_Sanctuary_StainedGlass(void) { return 1; } @@ -5226,7 +5235,7 @@ void sub_StateChange_Sanctuary_StainedGlass(void) { } } -u32 sub_unk3_HouseInteriors3_StockwellShop() { +u32 sub_unk3_HouseInteriors3_StockwellShop(void) { return 1; } @@ -5275,14 +5284,14 @@ void sub_StateChange_HouseInteriors3_StockwellShop(void) { } } -u32 sub_unk3_HouseInteriors3_Cafe() { +u32 sub_unk3_HouseInteriors3_Cafe(void) { return 1; } -void sub_StateChange_HouseInteriors3_Cafe() { +void sub_StateChange_HouseInteriors3_Cafe(void) { } -u32 sub_unk3_HouseInteriors3_RemShoeShop() { +u32 sub_unk3_HouseInteriors3_RemShoeShop(void) { return 1; } @@ -5296,10 +5305,10 @@ void sub_StateChange_HouseInteriors3_RemShoeShop(void) { #endif } -u32 sub_unk3_HouseInteriors3_Bakery() { +u32 sub_unk3_HouseInteriors3_Bakery(void) { return 1; } -void sub_StateChange_HouseInteriors3_Bakery() { +void sub_StateChange_HouseInteriors3_Bakery(void) { } u32 sub_unk3_HouseInteriors3_Simon(void) { @@ -5321,7 +5330,7 @@ void sub_StateChange_HouseInteriors3_Simon(void) { } } -u32 sub_unk3_HouseInteriors3_FigurineHouse() { +u32 sub_unk3_HouseInteriors3_FigurineHouse(void) { return 1; } @@ -5337,7 +5346,7 @@ void sub_StateChange_HouseInteriors3_FigurineHouse(void) { } } -u32 sub_unk3_HouseInteriors3_BorlovEntrance() { +u32 sub_unk3_HouseInteriors3_BorlovEntrance(void) { return 1; } @@ -5356,18 +5365,18 @@ void sub_StateChange_HouseInteriors3_BorlovEntrance(void) { } } -u32 sub_unk3_HouseInteriors3_Carlov() { +u32 sub_unk3_HouseInteriors3_Carlov(void) { return 1; } -void sub_StateChange_HouseInteriors3_Carlov() { +void sub_StateChange_HouseInteriors3_Carlov(void) { } -u32 sub_unk3_HouseInteriors3_Borlov() { +u32 sub_unk3_HouseInteriors3_Borlov(void) { return 1; } -void sub_StateChange_HouseInteriors3_Borlov() { +void sub_StateChange_HouseInteriors3_Borlov(void) { } u32 sub_unk3_WindTribeTower_Entrance(void) { @@ -5401,7 +5410,7 @@ void sub_StateChange_WindTribeTower_Entrance(void) { SetWorldMapPos(8, 0, 0x1e8, 0x158); } -u32 sub_unk3_WindTribeTower_Floor2() { +u32 sub_unk3_WindTribeTower_Floor2(void) { return 1; } @@ -5418,14 +5427,14 @@ void sub_StateChange_WindTribeTower_Floor2(void) { } } -u32 sub_unk3_WindTribeTower_Floor3() { +u32 sub_unk3_WindTribeTower_Floor3(void) { return 1; } -void sub_StateChange_WindTribeTower_Floor3() { +void sub_StateChange_WindTribeTower_Floor3(void) { } -u32 sub_unk3_WindTribeTower_Floor4() { +u32 sub_unk3_WindTribeTower_Floor4(void) { return 1; } @@ -5440,7 +5449,7 @@ void sub_StateChange_WindTribeTower_Floor4(void) { } } -u32 sub_unk3_WindTribeTowerRoof_Main() { +u32 sub_unk3_WindTribeTowerRoof_Main(void) { return 1; } @@ -5457,81 +5466,81 @@ void sub_StateChange_WindTribeTowerRoof_Main(void) { #endif } -u32 sub_unk3_Beanstalks_MountCrenel() { +u32 sub_unk3_Beanstalks_MountCrenel(void) { return 1; } -void sub_StateChange_Beanstalks_MountCrenel() { +void sub_StateChange_Beanstalks_MountCrenel(void) { } -u32 sub_unk3_Beanstalks_LakeHylia() { +u32 sub_unk3_Beanstalks_LakeHylia(void) { return 1; } -void sub_StateChange_Beanstalks_LakeHylia() { +void sub_StateChange_Beanstalks_LakeHylia(void) { } -u32 sub_unk3_Beanstalks_Ruins() { +u32 sub_unk3_Beanstalks_Ruins(void) { return 1; } -void sub_StateChange_Beanstalks_Ruins() { +void sub_StateChange_Beanstalks_Ruins(void) { } -u32 sub_unk3_Beanstalks_EasternHills() { +u32 sub_unk3_Beanstalks_EasternHills(void) { return 1; } -void sub_StateChange_Beanstalks_EasternHills() { +void sub_StateChange_Beanstalks_EasternHills(void) { } -u32 sub_unk3_Beanstalks_WesternWoods() { +u32 sub_unk3_Beanstalks_WesternWoods(void) { return 1; } -void sub_StateChange_Beanstalks_WesternWoods() { +void sub_StateChange_Beanstalks_WesternWoods(void) { } -u32 sub_unk3_Beanstalks_MountCrenelClimb() { +u32 sub_unk3_Beanstalks_MountCrenelClimb(void) { return 1; } -void sub_StateChange_Beanstalks_MountCrenelClimb() { +void sub_StateChange_Beanstalks_MountCrenelClimb(void) { } -u32 sub_unk3_Beanstalks_LakeHyliaClimb() { +u32 sub_unk3_Beanstalks_LakeHyliaClimb(void) { return 1; } -void sub_StateChange_Beanstalks_LakeHyliaClimb() { +void sub_StateChange_Beanstalks_LakeHyliaClimb(void) { } -u32 sub_unk3_Beanstalks_RuinsClimb() { +u32 sub_unk3_Beanstalks_RuinsClimb(void) { return 1; } -void sub_StateChange_Beanstalks_RuinsClimb() { +void sub_StateChange_Beanstalks_RuinsClimb(void) { } -u32 sub_unk3_Beanstalks_EasternHillsClimb() { +u32 sub_unk3_Beanstalks_EasternHillsClimb(void) { return 1; } -void sub_StateChange_Beanstalks_EasternHillsClimb() { +void sub_StateChange_Beanstalks_EasternHillsClimb(void) { } -u32 sub_unk3_Beanstalks_WesternWoodsClimb() { +u32 sub_unk3_Beanstalks_WesternWoodsClimb(void) { return 1; } -void sub_StateChange_Beanstalks_WesternWoodsClimb() { +void sub_StateChange_Beanstalks_WesternWoodsClimb(void) { } -u32 sub_unk3_HyruleField_WesternWoodSouth() { +u32 sub_unk3_HyruleField_WesternWoodSouth(void) { return 1; } -void sub_StateChange_HyruleField_WesternWoodSouth() { +void sub_StateChange_HyruleField_WesternWoodSouth(void) { Manager18_Main(0); } @@ -5578,19 +5587,19 @@ void sub_unk1_HyruleField_LinksHouseExterior(void) { } } -u32 sub_unk3_HyruleField_FromMinishWoods() { +u32 sub_unk3_HyruleField_FromMinishWoods(void) { return 1; } -void sub_StateChange_HyruleField_FromMinishWoods() { +void sub_StateChange_HyruleField_FromMinishWoods(void) { Manager18_Main(NULL); } -u32 sub_unk3_HyruleField_FromMinishWoodsNorth() { +u32 sub_unk3_HyruleField_FromMinishWoodsNorth(void) { return 1; } -void sub_StateChange_HyruleField_FromMinishWoodsNorth() { +void sub_StateChange_HyruleField_FromMinishWoodsNorth(void) { Manager18_Main(NULL); } @@ -5620,7 +5629,7 @@ void sub_StateChange_HyruleField_Farmers(void) { } } -u32 sub_unk3_HyruleField_LonLonRanch() { +u32 sub_unk3_HyruleField_LonLonRanch(void) { return 1; } @@ -5654,9 +5663,9 @@ void sub_StateChange_HyruleField_LonLonRanch(void) { } extern u32 gUnk_080F7CD0; -extern void sub_0804F5E8(); +extern void sub_0804F5E8(void); extern u32 gUnk_080F7C80; -extern void sub_0804F4E4(); +extern void sub_0804F4E4(void); u32 sub_unk3_HyruleField_OutsideCastle(void) { if (CheckGlobalFlag(TABIDACHI) && !GetInventoryValue(0x11)) { @@ -5680,7 +5689,7 @@ u32 sub_unk3_HyruleField_OutsideCastle(void) { return 1; } -void sub_0804F4E4() { +void sub_0804F4E4(void) { Manager18_Main(NULL); sub_0804F578(); } @@ -5712,7 +5721,7 @@ void sub_StateChange_HyruleField_OutsideCastle(void) { extern EntityData gUnk_080F7DC0; -void sub_0804F578(void) { +static void sub_0804F578(void) { #if defined(JP) || defined(EU) || defined(DEMO_JP) if (!CheckLocalFlag(0x8c)) { #else @@ -5862,7 +5871,7 @@ void sub_0804F9C8(void) { sub_0807BA8C(0x4d9, 1); } -u32 sub_unk3_HyruleField_OutsideCastleWest() { +u32 sub_unk3_HyruleField_OutsideCastleWest(void) { return 1; } @@ -5875,7 +5884,7 @@ void sub_StateChange_HyruleField_OutsideCastleWest(void) { } } -u32 sub_unk3_HyruleField_TrilbyHighlands() { +u32 sub_unk3_HyruleField_TrilbyHighlands(void) { return 1; } @@ -5892,7 +5901,7 @@ void sub_StateChange_HyruleField_TrilbyHighlands(void) { } } -u32 sub_unk3_HyruleField_PercysHouse() { +u32 sub_unk3_HyruleField_PercysHouse(void) { return 1; } @@ -5905,7 +5914,7 @@ void sub_StateChange_HyruleField_PercysHouse(void) { } } -u32 sub_unk3_Caves_Boomerang() { +u32 sub_unk3_Caves_Boomerang(void) { return 1; } @@ -5923,91 +5932,91 @@ void sub_StateChange_Caves_Boomerang(void) { } } -u32 sub_unk3_Caves_ToGraveyard() { +u32 sub_unk3_Caves_ToGraveyard(void) { return 1; } -void sub_StateChange_Caves_ToGraveyard() { +void sub_StateChange_Caves_ToGraveyard(void) { } -u32 sub_unk3_Caves_2() { +u32 sub_unk3_Caves_2(void) { return 1; } -void sub_StateChange_Caves_2() { +void sub_StateChange_Caves_2(void) { } -u32 sub_unk3_Caves_3() { +u32 sub_unk3_Caves_3(void) { return 1; } -void sub_StateChange_Caves_3() { +void sub_StateChange_Caves_3(void) { } -u32 sub_unk3_Caves_4() { +u32 sub_unk3_Caves_4(void) { return 1; } -void sub_StateChange_Caves_4() { +void sub_StateChange_Caves_4(void) { } -u32 sub_unk3_Caves_5() { +u32 sub_unk3_Caves_5(void) { return 1; } -void sub_StateChange_Caves_5() { +void sub_StateChange_Caves_5(void) { } -u32 sub_unk3_Caves_6() { +u32 sub_unk3_Caves_6(void) { return 1; } -void sub_StateChange_Caves_6() { +void sub_StateChange_Caves_6(void) { } -u32 sub_unk3_Caves_KeeseChest() { +u32 sub_unk3_Caves_KeeseChest(void) { return 1; } -void sub_StateChange_Caves_KeeseChest() { +void sub_StateChange_Caves_KeeseChest(void) { } -u32 sub_unk3_Caves_FairyFountainTrilbyHighlands() { +u32 sub_unk3_Caves_FairyFountainTrilbyHighlands(void) { return 1; } -void sub_StateChange_Caves_FairyFountainTrilbyHighlands() { +void sub_StateChange_Caves_FairyFountainTrilbyHighlands(void) { } -u32 sub_unk3_Caves_FairyFountainLinksHouse() { +u32 sub_unk3_Caves_FairyFountainLinksHouse(void) { return 1; } -void sub_StateChange_Caves_FairyFountainLinksHouse() { +void sub_StateChange_Caves_FairyFountainLinksHouse(void) { } -u32 sub_unk3_Caves_A() { +u32 sub_unk3_Caves_A(void) { return 1; } -void sub_StateChange_Caves_A() { +void sub_StateChange_Caves_A(void) { } -u32 sub_unk3_Caves_HyruleTownWaterfall() { +u32 sub_unk3_Caves_HyruleTownWaterfall(void) { return 1; } -void sub_StateChange_Caves_HyruleTownWaterfall() { +void sub_StateChange_Caves_HyruleTownWaterfall(void) { } -u32 sub_unk3_Caves_LonLonRanch() { +u32 sub_unk3_Caves_LonLonRanch(void) { return 1; } -void sub_StateChange_Caves_LonLonRanch() { +void sub_StateChange_Caves_LonLonRanch(void) { } -u32 sub_unk3_Caves_LonLonRanchSecret() { +u32 sub_unk3_Caves_LonLonRanchSecret(void) { return 1; } @@ -6022,76 +6031,76 @@ void sub_StateChange_Caves_LonLonRanchSecret(void) { } } -u32 sub_unk3_Caves_TrilbyHighlands() { +u32 sub_unk3_Caves_TrilbyHighlands(void) { return 1; } -void sub_StateChange_Caves_TrilbyHighlands() { +void sub_StateChange_Caves_TrilbyHighlands(void) { } -u32 sub_unk3_Caves_LonLonRanchWallet() { +u32 sub_unk3_Caves_LonLonRanchWallet(void) { return 1; } -void sub_StateChange_Caves_LonLonRanchWallet() { +void sub_StateChange_Caves_LonLonRanchWallet(void) { } -u32 sub_unk3_Caves_RupeeLinksHouse() { +u32 sub_unk3_Caves_RupeeLinksHouse(void) { return 1; } -void sub_StateChange_Caves_RupeeLinksHouse() { +void sub_StateChange_Caves_RupeeLinksHouse(void) { } -u32 sub_unk3_Caves_RupeeTrilbyHighlands() { +u32 sub_unk3_Caves_RupeeTrilbyHighlands(void) { return 1; } -void sub_StateChange_Caves_RupeeTrilbyHighlands() { +void sub_StateChange_Caves_RupeeTrilbyHighlands(void) { } -u32 sub_unk3_Caves_FairyFountainMoleMitts() { +u32 sub_unk3_Caves_FairyFountainMoleMitts(void) { return 1; } -void sub_StateChange_Caves_FairyFountainMoleMitts() { +void sub_StateChange_Caves_FairyFountainMoleMitts(void) { } -u32 sub_unk3_Caves_KeeseChestSoutheastHyrule() { +u32 sub_unk3_Caves_KeeseChestSoutheastHyrule(void) { return 1; } -void sub_StateChange_Caves_KeeseChestSoutheastHyrule() { +void sub_StateChange_Caves_KeeseChestSoutheastHyrule(void) { } -u32 sub_unk3_Caves_BottleBusinessScrub() { +u32 sub_unk3_Caves_BottleBusinessScrub(void) { return 1; } -void sub_StateChange_Caves_BottleBusinessScrub() { +void sub_StateChange_Caves_BottleBusinessScrub(void) { } -u32 sub_unk3_Caves_HeartPieceHallway() { +u32 sub_unk3_Caves_HeartPieceHallway(void) { return 1; } -void sub_StateChange_Caves_HeartPieceHallway() { +void sub_StateChange_Caves_HeartPieceHallway(void) { } -u32 sub_unk3_Caves_FairyFountainBoomerang() { +u32 sub_unk3_Caves_FairyFountainBoomerang(void) { return 1; } -void sub_StateChange_Caves_FairyFountainBoomerang() { +void sub_StateChange_Caves_FairyFountainBoomerang(void) { } -u32 sub_unk3_Caves_KinstoneBusinessScrub() { +u32 sub_unk3_Caves_KinstoneBusinessScrub(void) { return 1; } -void sub_StateChange_Caves_KinstoneBusinessScrub() { +void sub_StateChange_Caves_KinstoneBusinessScrub(void) { } -u32 sub_unk3_VeilFalls_Main() { +u32 sub_unk3_VeilFalls_Main(void) { return 1; } @@ -6109,74 +6118,74 @@ void sub_unk1_VeilFalls_Main(void) { } } -u32 sub_unk3_VeilFallsCaves_Hallway2F() { +u32 sub_unk3_VeilFallsCaves_Hallway2F(void) { return 1; } -void sub_StateChange_VeilFallsCaves_Hallway2F() { +void sub_StateChange_VeilFallsCaves_Hallway2F(void) { } -u32 sub_unk3_VeilFallsCaves_Hallway1F() { +u32 sub_unk3_VeilFallsCaves_Hallway1F(void) { return 1; } -void sub_StateChange_VeilFallsCaves_Hallway1F() { +void sub_StateChange_VeilFallsCaves_Hallway1F(void) { } -u32 sub_unk3_VeilFallsCaves_SecretRoom() { +u32 sub_unk3_VeilFallsCaves_SecretRoom(void) { return 1; } -void sub_StateChange_VeilFallsCaves_SecretRoom() { +void sub_StateChange_VeilFallsCaves_SecretRoom(void) { } -u32 sub_unk3_VeilFallsCaves_Entrance() { +u32 sub_unk3_VeilFallsCaves_Entrance(void) { return 1; } -void sub_StateChange_VeilFallsCaves_Entrance() { +void sub_StateChange_VeilFallsCaves_Entrance(void) { } -u32 sub_unk3_VeilFallsCaves_Exit() { +u32 sub_unk3_VeilFallsCaves_Exit(void) { return 1; } -void sub_StateChange_VeilFallsCaves_Exit() { +void sub_StateChange_VeilFallsCaves_Exit(void) { } -u32 sub_unk3_VeilFallsCaves_SecretChest() { +u32 sub_unk3_VeilFallsCaves_SecretChest(void) { return 1; } -void sub_StateChange_VeilFallsCaves_SecretChest() { +void sub_StateChange_VeilFallsCaves_SecretChest(void) { } -u32 sub_unk3_VeilFallsCaves_SecretStaircases() { +u32 sub_unk3_VeilFallsCaves_SecretStaircases(void) { return 1; } -void sub_StateChange_VeilFallsCaves_SecretStaircases() { +void sub_StateChange_VeilFallsCaves_SecretStaircases(void) { } -u32 sub_unk3_VeilFallsCaves_BlockPuzzle() { +u32 sub_unk3_VeilFallsCaves_BlockPuzzle(void) { return 1; } -void sub_StateChange_VeilFallsCaves_BlockPuzzle() { +void sub_StateChange_VeilFallsCaves_BlockPuzzle(void) { } -u32 sub_unk3_VeilFallsCaves_RupeePath() { +u32 sub_unk3_VeilFallsCaves_RupeePath(void) { return 1; } -void sub_StateChange_VeilFallsCaves_RupeePath() { +void sub_StateChange_VeilFallsCaves_RupeePath(void) { } -u32 sub_unk3_VeilFallsCaves_HeartPiece() { +u32 sub_unk3_VeilFallsCaves_HeartPiece(void) { return 1; } -void sub_StateChange_VeilFallsCaves_HeartPiece() { +void sub_StateChange_VeilFallsCaves_HeartPiece(void) { } extern u32 gUnk_080F9BF8; @@ -6188,47 +6197,47 @@ u32 sub_unk3_VeilFallsTop_Main(void) { return 1; } -void sub_StateChange_VeilFallsTop_Main() { +void sub_StateChange_VeilFallsTop_Main(void) { sub_0805B4D0(2); sub_0806D0B0(0); } -u32 sub_unk3_47_0() { +u32 sub_unk3_47_0(void) { return 1; } -void sub_StateChange_47_0() { +void sub_StateChange_47_0(void) { } -u32 sub_unk3_47_1() { +u32 sub_unk3_47_1(void) { return 1; } -void sub_StateChange_47_1() { +void sub_StateChange_47_1(void) { } -u32 sub_unk3_47_2() { +u32 sub_unk3_47_2(void) { return 1; } -void sub_StateChange_47_2() { +void sub_StateChange_47_2(void) { } -u32 sub_unk3_47_3() { +u32 sub_unk3_47_3(void) { return 1; } -void sub_StateChange_47_3() { +void sub_StateChange_47_3(void) { } -u32 sub_unk3_47_4() { +u32 sub_unk3_47_4(void) { return 1; } -void sub_StateChange_47_4() { +void sub_StateChange_47_4(void) { } -u32 sub_unk3_TreeInteriors_WitchHut() { +u32 sub_unk3_TreeInteriors_WitchHut(void) { return 1; } @@ -6244,119 +6253,119 @@ void sub_StateChange_TreeInteriors_WitchHut(void) { } } -u32 sub_0804FCD4() { +u32 sub_0804FCD4(void) { return 1; } -void nullsub_434() { +void nullsub_434(void) { } -u32 sub_0804FCDC() { +u32 sub_0804FCDC(void) { return 1; } -void nullsub_435() { +void nullsub_435(void) { } -u32 sub_0804FCE4() { +u32 sub_0804FCE4(void) { return 1; } -void nullsub_436() { +void nullsub_436(void) { } -u32 sub_0804FCEC() { +u32 sub_0804FCEC(void) { return 1; } -void nullsub_437() { +void nullsub_437(void) { } -u32 sub_0804FCF4() { +u32 sub_0804FCF4(void) { return 1; } -void nullsub_438() { +void nullsub_438(void) { } -u32 sub_0804FCFC() { +u32 sub_0804FCFC(void) { return 1; } -void nullsub_439() { +void nullsub_439(void) { } -u32 sub_0804FD04() { +u32 sub_0804FD04(void) { return 1; } -void nullsub_440() { +void nullsub_440(void) { } -u32 sub_0804FD0C() { +u32 sub_0804FD0C(void) { return 1; } -void nullsub_441() { +void nullsub_441(void) { } -u32 sub_0804FD14() { +u32 sub_0804FD14(void) { return 1; } -void nullsub_442() { +void nullsub_442(void) { } -u32 sub_0804FD1C() { +u32 sub_0804FD1C(void) { return 1; } -void nullsub_443() { +void nullsub_443(void) { } -u32 sub_0804FD24() { +u32 sub_0804FD24(void) { return 1; } -void nullsub_444() { +void nullsub_444(void) { } -u32 sub_0804FD2C() { +u32 sub_0804FD2C(void) { return 1; } -void nullsub_445() { +void nullsub_445(void) { } -u32 sub_0804FD34() { +u32 sub_0804FD34(void) { return 1; } -void nullsub_446() { +void nullsub_446(void) { } -u32 sub_0804FD3C() { +u32 sub_0804FD3C(void) { return 1; } -void nullsub_447() { +void nullsub_447(void) { } -u32 sub_0804FD44() { +u32 sub_0804FD44(void) { return 1; } -void nullsub_448() { +void nullsub_448(void) { } -u32 sub_unk3_TreeInteriors_StairsToCarlov() { +u32 sub_unk3_TreeInteriors_StairsToCarlov(void) { return 1; } -void sub_StateChange_TreeInteriors_StairsToCarlov() { +void sub_StateChange_TreeInteriors_StairsToCarlov(void) { } -u32 sub_unk3_TreeInteriors_PercysTreehouse() { +u32 sub_unk3_TreeInteriors_PercysTreehouse(void) { return 1; } @@ -6368,101 +6377,101 @@ void sub_StateChange_TreeInteriors_PercysTreehouse(void) { } } -u32 sub_unk3_TreeInteriors_HeartPiece() { +u32 sub_unk3_TreeInteriors_HeartPiece(void) { return 1; } -void sub_StateChange_TreeInteriors_HeartPiece() { +void sub_StateChange_TreeInteriors_HeartPiece(void) { } -u32 sub_unk3_TreeInteriors_StairsToBladeBrother() { +u32 sub_unk3_TreeInteriors_StairsToBladeBrother(void) { return 1; } -void sub_StateChange_TreeInteriors_StairsToBladeBrother() { +void sub_StateChange_TreeInteriors_StairsToBladeBrother(void) { } -u32 sub_unk3_TreeInteriors_14() { +u32 sub_unk3_TreeInteriors_14(void) { return 1; } -void sub_StateChange_TreeInteriors_14() { +void sub_StateChange_TreeInteriors_14(void) { } -u32 sub_unk3_TreeInteriors_BoomerangNorthwest() { +u32 sub_unk3_TreeInteriors_BoomerangNorthwest(void) { return 1; } -void sub_StateChange_TreeInteriors_BoomerangNorthwest() { +void sub_StateChange_TreeInteriors_BoomerangNorthwest(void) { } -u32 sub_unk3_TreeInteriors_BoomerangNortheast() { +u32 sub_unk3_TreeInteriors_BoomerangNortheast(void) { return 1; } -void sub_StateChange_TreeInteriors_BoomerangNortheast() { +void sub_StateChange_TreeInteriors_BoomerangNortheast(void) { } -u32 sub_unk3_TreeInteriors_BoomerangSouthwest() { +u32 sub_unk3_TreeInteriors_BoomerangSouthwest(void) { return 1; } -void sub_StateChange_TreeInteriors_BoomerangSouthwest() { +void sub_StateChange_TreeInteriors_BoomerangSouthwest(void) { } -u32 sub_unk3_TreeInteriors_BoomerangSoutheast() { +u32 sub_unk3_TreeInteriors_BoomerangSoutheast(void) { return 1; } -void sub_StateChange_TreeInteriors_BoomerangSoutheast() { +void sub_StateChange_TreeInteriors_BoomerangSoutheast(void) { } -u32 sub_unk3_TreeInteriors_HeartPieceSouthwestField() { +u32 sub_unk3_TreeInteriors_HeartPieceSouthwestField(void) { return 1; } -void sub_StateChange_TreeInteriors_HeartPieceSouthwestField() { +void sub_StateChange_TreeInteriors_HeartPieceSouthwestField(void) { } -u32 sub_unk3_TreeInteriors_StairsToFairyFountain() { +u32 sub_unk3_TreeInteriors_StairsToFairyFountain(void) { return 1; } -void sub_StateChange_TreeInteriors_StairsToFairyFountain() { +void sub_StateChange_TreeInteriors_StairsToFairyFountain(void) { } -u32 sub_unk3_TreeInteriors_StairsToWalletFairy() { +u32 sub_unk3_TreeInteriors_StairsToWalletFairy(void) { return 1; } -void sub_StateChange_TreeInteriors_StairsToWalletFairy() { +void sub_StateChange_TreeInteriors_StairsToWalletFairy(void) { } -u32 sub_unk3_TreeInteriors_1C() { +u32 sub_unk3_TreeInteriors_1C(void) { return 1; } -void sub_StateChange_TreeInteriors_1C() { +void sub_StateChange_TreeInteriors_1C(void) { } -u32 sub_unk3_TreeInteriors_StairsToBusinessScrub() { +u32 sub_unk3_TreeInteriors_StairsToBusinessScrub(void) { return 1; } -void sub_StateChange_TreeInteriors_StairsToBusinessScrub() { +void sub_StateChange_TreeInteriors_StairsToBusinessScrub(void) { } -u32 sub_unk3_TreeInteriors_1E() { +u32 sub_unk3_TreeInteriors_1E(void) { return 1; } -void sub_StateChange_TreeInteriors_1E() { +void sub_StateChange_TreeInteriors_1E(void) { } -u32 sub_unk3_TreeInteriors_1F() { +u32 sub_unk3_TreeInteriors_1F(void) { return 1; } -void sub_StateChange_TreeInteriors_1F() { +void sub_StateChange_TreeInteriors_1F(void) { } extern u32 gUnk_080FAD48; @@ -6487,18 +6496,18 @@ void sub_StateChange_MtCrenel_MountainTop(void) { sub_08059994(); } -void sub_unk1_MtCrenel_MountainTop() { +void sub_unk1_MtCrenel_MountainTop(void) { sub_0805B4D0(0); } -u32 sub_unk3_MtCrenel_WallClimb() { +u32 sub_unk3_MtCrenel_WallClimb(void) { return 1; } -void sub_StateChange_MtCrenel_WallClimb() { +void sub_StateChange_MtCrenel_WallClimb(void) { } -u32 sub_unk3_MtCrenel_CaveOfFlamesEntrance() { +u32 sub_unk3_MtCrenel_CaveOfFlamesEntrance(void) { return 1; } @@ -6524,14 +6533,14 @@ void sub_unk1_MtCrenel_CaveOfFlamesEntrance(void) { } } -u32 sub_unk3_MtCrenel_GustJarShortcut() { +u32 sub_unk3_MtCrenel_GustJarShortcut(void) { return 1; } -void sub_StateChange_MtCrenel_GustJarShortcut() { +void sub_StateChange_MtCrenel_GustJarShortcut(void) { } -u32 sub_unk3_MtCrenel_Entrance() { +u32 sub_unk3_MtCrenel_Entrance(void) { return 1; } @@ -6541,105 +6550,105 @@ void sub_StateChange_MtCrenel_Entrance(void) { #endif } -u32 sub_unk3_CrenelCaves_BlockPushing() { +u32 sub_unk3_CrenelCaves_BlockPushing(void) { return 1; } -void sub_StateChange_CrenelCaves_BlockPushing() { +void sub_StateChange_CrenelCaves_BlockPushing(void) { } -u32 sub_unk3_CrenelCaves_PillarCave() { +u32 sub_unk3_CrenelCaves_PillarCave(void) { return 1; } -void sub_StateChange_CrenelCaves_PillarCave() { +void sub_StateChange_CrenelCaves_PillarCave(void) { } -u32 sub_unk3_CrenelCaves_BridgeSwitch() { +u32 sub_unk3_CrenelCaves_BridgeSwitch(void) { return 1; } -void sub_StateChange_CrenelCaves_BridgeSwitch() { +void sub_StateChange_CrenelCaves_BridgeSwitch(void) { } -u32 sub_unk3_CrenelCaves_ExitToMines() { +u32 sub_unk3_CrenelCaves_ExitToMines(void) { return 1; } -void sub_StateChange_CrenelCaves_ExitToMines() { +void sub_StateChange_CrenelCaves_ExitToMines(void) { } -u32 sub_unk3_CrenelCaves_GripRing() { +u32 sub_unk3_CrenelCaves_GripRing(void) { return 1; } -void sub_StateChange_CrenelCaves_GripRing() { +void sub_StateChange_CrenelCaves_GripRing(void) { } -u32 sub_unk3_CrenelCaves_FairyFountain() { +u32 sub_unk3_CrenelCaves_FairyFountain(void) { return 1; } -void sub_StateChange_CrenelCaves_FairyFountain() { +void sub_StateChange_CrenelCaves_FairyFountain(void) { } -u32 sub_unk3_CrenelCaves_SpinyChuPuzzle() { +u32 sub_unk3_CrenelCaves_SpinyChuPuzzle(void) { return 1; } -void sub_StateChange_CrenelCaves_SpinyChuPuzzle() { +void sub_StateChange_CrenelCaves_SpinyChuPuzzle(void) { } -u32 sub_unk3_CrenelCaves_ChuchuPotChest() { +u32 sub_unk3_CrenelCaves_ChuchuPotChest(void) { return 1; } -void sub_StateChange_CrenelCaves_ChuchuPotChest() { +void sub_StateChange_CrenelCaves_ChuchuPotChest(void) { } -u32 sub_unk3_CrenelCaves_WaterHeartPiece() { +u32 sub_unk3_CrenelCaves_WaterHeartPiece(void) { return 1; } -void sub_StateChange_CrenelCaves_WaterHeartPiece() { +void sub_StateChange_CrenelCaves_WaterHeartPiece(void) { } -u32 sub_unk3_CrenelCaves_RupeeFairyFountain() { +u32 sub_unk3_CrenelCaves_RupeeFairyFountain(void) { return 1; } -void sub_StateChange_CrenelCaves_RupeeFairyFountain() { +void sub_StateChange_CrenelCaves_RupeeFairyFountain(void) { } -u32 sub_unk3_CrenelCaves_HelmasaurHallway() { +u32 sub_unk3_CrenelCaves_HelmasaurHallway(void) { return 1; } -void sub_StateChange_CrenelCaves_HelmasaurHallway() { +void sub_StateChange_CrenelCaves_HelmasaurHallway(void) { } -u32 sub_unk3_CrenelCaves_MushroomKeese() { +u32 sub_unk3_CrenelCaves_MushroomKeese(void) { return 1; } -void sub_StateChange_CrenelCaves_MushroomKeese() { +void sub_StateChange_CrenelCaves_MushroomKeese(void) { } -u32 sub_unk3_CrenelCaves_LadderToGreenWater() { +u32 sub_unk3_CrenelCaves_LadderToGreenWater(void) { return 1; } -void sub_StateChange_CrenelCaves_LadderToGreenWater() { +void sub_StateChange_CrenelCaves_LadderToGreenWater(void) { } -u32 sub_unk3_CrenelCaves_BombBusinessScrub() { +u32 sub_unk3_CrenelCaves_BombBusinessScrub(void) { return 1; } -void sub_StateChange_CrenelCaves_BombBusinessScrub() { +void sub_StateChange_CrenelCaves_BombBusinessScrub(void) { } -u32 sub_unk3_CrenelCaves_Hermit() { +u32 sub_unk3_CrenelCaves_Hermit(void) { return 1; } @@ -6649,16 +6658,16 @@ void sub_StateChange_CrenelCaves_Hermit(void) { } } -u32 sub_unk3_CrenelCaves_HintScrub() { +u32 sub_unk3_CrenelCaves_HintScrub(void) { return 1; } -void sub_StateChange_CrenelCaves_HintScrub() { +void sub_StateChange_CrenelCaves_HintScrub(void) { } -u32 sub_unk3_CrenelCaves_ToGrayblade() { +u32 sub_unk3_CrenelCaves_ToGrayblade(void) { return 1; } -void sub_StateChange_CrenelCaves_ToGrayblade() { +void sub_StateChange_CrenelCaves_ToGrayblade(void) { } diff --git a/src/save.c b/src/save.c index 12676418..90964d18 100644 --- a/src/save.c +++ b/src/save.c @@ -5,6 +5,7 @@ #include "main.h" #include "functions.h" #include "game.h" +#include "fileselect.h" typedef struct SaveFileStatus { u16 checksum1; @@ -90,7 +91,7 @@ const SaveFileEEPROMAddresses gSaveFileEEPROMAddresses[] = { { 0x500, 0x30, 0x10 { 0x20, 0x60, 0x1060, 0xf80, 0x1f80 }, { 0x8, 0xfa0, 0x1fa0, 0xfa0, 0x1fa0 } }; #endif -void sub_0807CD9C() { +void sub_0807CD9C(void) { UpdateGlobalProgress(); } diff --git a/src/sound.c b/src/sound.c index aa12853b..342ae9c6 100644 --- a/src/sound.c +++ b/src/sound.c @@ -223,7 +223,7 @@ static void PlayFadeOut(u32 sound) { doPlaySound(sound); } -static void InitVolume() { +static void InitVolume(void) { gSoundPlayingInfo.volumeMasterUnk = 0x100; gSoundPlayingInfo.volumeMaster = 0x100; gSoundPlayingInfo.volumeMasterTarget = 0x100; diff --git a/src/sub_08055E08.c b/src/sub_08055E08.c index e5f0d095..3070b26f 100644 --- a/src/sub_08055E08.c +++ b/src/sub_08055E08.c @@ -4,7 +4,7 @@ #include "functions.h" #include "screen.h" -extern void (*const gUnk_080FF420[])(); +extern void (*const gUnk_080FF420[])(void); extern void sub_0804B0B0(u32, u32); extern void sub_08055B70(u32, u32, u32, u32); diff --git a/src/sub_0807CA18.c b/src/sub_0807CA18.c index 223dae66..d8e9db7a 100644 --- a/src/sub_0807CA18.c +++ b/src/sub_0807CA18.c @@ -2,8 +2,6 @@ #include "save.h" #include "common.h" -extern void sub_0807C960(); - extern u16 gMetatilesBottom[]; extern u16 gMetatilesTop[]; extern u8 gMapData; @@ -41,7 +39,7 @@ void sub_0807C9D8(u32* a1) { LoadPalettes(gUnk_020176E0, 2, 13); } -u32 FinalizeSave() { +u32 FinalizeSave(void) { if (gSave.invalid || gSave.initialized != 1) { gSave.invalid = 0; gSave.initialized = 1; diff --git a/src/subtask.c b/src/subtask.c index f95bedcf..4b7352ef 100644 --- a/src/subtask.c +++ b/src/subtask.c @@ -2,8 +2,10 @@ #include "functions.h" #include "menu.h" #include "screen.h" +#include "common.h" +#include "subtask.h" -extern void (*const gUnk_081280C4[])(); +extern void (*const gUnk_081280C4[])(void); void Subtask_KinstoneMenu(void) { #if !(defined(DEMO_USA) || defined(DEMO_JP)) diff --git a/src/text.c b/src/text.c index 8aadf79d..01f8ab2e 100644 --- a/src/text.c +++ b/src/text.c @@ -3,6 +3,7 @@ #include "structures.h" #include "functions.h" #include "asm.h" +#include "enemy.h" extern u16 gUnk_081092D4; extern u8 gUnk_081094CE; diff --git a/src/title.c b/src/title.c index 2afc8d28..2b134d60 100644 --- a/src/title.c +++ b/src/title.c @@ -60,7 +60,7 @@ static const u16 sLightRaysAlphaBlends[] = { #ifdef DEMO_JP static const SaveFile gDemoSave = { - .unk_01 = 1, + .initialized = 1, .msg_speed = 1, .brightness = 1, .global_progress = 1, From 27ee1473ea14c8c756484058327c681a720b6309 Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 4 Jan 2022 21:38:01 -0800 Subject: [PATCH 098/168] preliminary doxygen support --- .github/workflows/doxygen.yml | 22 + .gitignore | 76 +- Doxyfile | 2553 +++++++++++++++++++++++++++++++++ docs/.gitkeep | 0 4 files changed, 2621 insertions(+), 30 deletions(-) create mode 100644 .github/workflows/doxygen.yml create mode 100644 Doxyfile create mode 100644 docs/.gitkeep diff --git a/.github/workflows/doxygen.yml b/.github/workflows/doxygen.yml new file mode 100644 index 00000000..e4e89b6b --- /dev/null +++ b/.github/workflows/doxygen.yml @@ -0,0 +1,22 @@ +name: run Doxygen to generate docs + +on: + push: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: generate docs + uses: mattnotmitt/doxygen-action@v1 + with: + doxyfile-path: 'Doxyfile' + - name: deploy docs to github pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./docs/doxygen diff --git a/.gitignore b/.gitignore index 9d6c1b6c..f78cd937 100644 --- a/.gitignore +++ b/.gitignore @@ -1,33 +1,64 @@ +# build artifacts +src/*.s +build/ +cmake-build-* +*.elf +*.exe +*.gba +*.i +*.o +*.map +*.pcm +sound/**/*.bin +sound/songs/midi/*.s +translations/*.bin + +# doxygen +docs/doxygen/ + +# tools +tools/agbcc +tools/binutils + +# scripts +*.py +*.pl + +# graphics *.1bpp *.4bpp *.8bpp -*.DS_Store -*.bak -*.bat -*.diff -*.dump -*.elf -*.exe *.fwjpnfont -*.gba *.sgm *.sa1 *.sg1 *.gbapal *.hwjpnfont -*.i +*.latfont +*.lz + +# system files +*.DS_Store + +# IDE +.vscode/settings.json +.vscode/c_cpp_properties.json +.vscode/tasks.json +*.code-workspace +.idea/ + +# misc +.fuse_hidden* +*.bak +*.bat +*.diff +*.dump *.id0 *.id1 *.id2 *.idb *.dmp -*.latfont -*.lz -*.map *.nam -*.o -*.pcm -*.pl *.rl *.s.old *.s.old2 @@ -35,7 +66,6 @@ *.swo *.swp *.til -*.code-workspace *.ss1 *.ss2 *.ss3 @@ -45,27 +75,13 @@ *.ss7 *.ss8 *.ss9 -.fuse_hidden* -.idea/ Thumbs.db -build/ -cmake-build-* -sound/**/*.bin -sound/songs/midi/*.s -src/*.s tags -tools/agbcc -tools/binutils -translations/*.bin types_*.taghl *.zip !calcrom.pl !sound/programmable_wave_samples/*.pcm _Deparsed_XSubs.pm -*.py *.sna __pycache__ -.vscode/settings.json -.vscode/c_cpp_properties.json -.vscode/tasks.json Info.plist diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 00000000..a7cf6ded --- /dev/null +++ b/Doxyfile @@ -0,0 +1,2553 @@ +# Doxyfile 1.8.18 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "The Minish Cap" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "Decompilation of The Legend of Zelda: The Minish Cap" + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = docs/doxygen/ + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all generated output in the proper direction. +# Possible values are: None, LTR, RTL and Context. +# The default value is: None. + +OUTPUT_TEXT_DIRECTION = None + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines (in the resulting output). You can put ^^ in the value part of an +# alias to insert a newline as if a physical newline was in the original file. +# When you need a literal { or } or , in the value part of an alias you have to +# escape them by means of a backslash (\), this can lead to conflicts with the +# commands \{ and \} for these it is advised to use the version @{ and @} or use +# a double escape (\\{ and \\}) + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, +# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files). For instance to make doxygen treat .inc files +# as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See https://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 5 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# declarations. If set to NO, these declarations will be included in the +# documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# (including Cygwin) ands Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. If +# EXTRACT_ALL is set to YES then this flag will automatically be disabled. +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = README.md docs/ src/ include/ + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: https://www.gnu.org/software/libiconv/) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), +# *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen +# C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, +# *.vhdl, *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.doc \ + *.txt \ + *.py \ + *.pyw \ + *.f90 \ + *.f95 \ + *.f03 \ + *.f08 \ + *.f18 \ + *.f \ + *.for \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf \ + *.ice + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = README.md + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via JavaScript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have JavaScript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = YES + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: https://developer.apple.com/xcode/), introduced with OSX +# 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for +# the HTML output. These images will generally look nicer at scaled resolutions. +# Possible values are: png The default and svg Looks nicer but requires the +# pdf2svg tool. +# The default value is: png. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FORMULA_FORMAT = svg + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands +# to create new LaTeX commands to be used in formulas as building blocks. See +# the section "Including formulas" for details. + +FORMULA_MACROFILE = + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side JavaScript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = YES + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. +# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@2 + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /