From 079260dbd64b6d090e05b409ded30a95bf33a9e9 Mon Sep 17 00:00:00 2001 From: theo3 Date: Sat, 25 Dec 2021 21:28:44 -0800 Subject: [PATCH 01/74] 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 4241057135a682a66690ecb89e762b2c4ed27cca Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 27 Dec 2021 09:56:55 +0200 Subject: [PATCH 02/74] 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 03/74] 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 04/74] 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 f85a48be717ca6f5865321a6060e729afbc8ffd3 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 27 Dec 2021 15:58:45 +0200 Subject: [PATCH 05/74] 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 06/74] 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 07/74] 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 08/74] 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 09/74] 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 10/74] 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 11/74] 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 12/74] 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 13/74] 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 14/74] 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 15/74] 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 16/74] 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 0f65f8fd5008d06defcfae6c9d66270ff45a8e49 Mon Sep 17 00:00:00 2001 From: theo3 Date: Tue, 28 Dec 2021 12:08:30 -0800 Subject: [PATCH 17/74] 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 18/74] 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 19/74] 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 20/74] 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 21/74] 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 22/74] 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 23/74] empty From 739dd60180e31b35a005768b56d5c7d29dc49773 Mon Sep 17 00:00:00 2001 From: theo3 Date: Wed, 29 Dec 2021 03:08:59 -0800 Subject: [PATCH 24/74] 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 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 25/74] 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 26/74] 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 87514fcbf70a4090abcb908e264535e5f6446659 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Thu, 30 Dec 2021 10:51:40 +0100 Subject: [PATCH 27/74] 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 28/74] 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 29/74] 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 30/74] 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 31/74] 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 32/74] 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 33/74] 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 34/74] 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 35/74] 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 36/74] 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 37/74] 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 38/74] 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 39/74] 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 40/74] 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 447782f21c011e421f84728a38ed7e1007aca758 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Sun, 2 Jan 2022 03:26:38 +0200 Subject: [PATCH 41/74] 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 42/74] 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 43/74] 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 415f5213a92c2abcc78388c600b95b9a5f12cd8c Mon Sep 17 00:00:00 2001 From: theo3 Date: Sun, 2 Jan 2022 16:10:29 -0800 Subject: [PATCH 44/74] 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 45/74] 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 46/74] 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 47/74] 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 48/74] 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 49/74] 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 50/74] 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 51/74] 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 +# , /