diff --git a/asm/bigGoron.s b/asm/bigGoron.s index 4713c398..f2926a00 100644 --- a/asm/bigGoron.s +++ b/asm/bigGoron.s @@ -95,7 +95,7 @@ sub_0806D0B0: @ 0x0806D0B0 movs r1, #0x80 lsls r1, r1, #6 adds r0, r5, #0 - bl MemClear32 + bl MemClear cmp r4, #0 beq _0806D0DA adds r0, r4, #0 diff --git a/asm/code_08018500.s b/asm/code_08018500.s index 182c60f8..bec8ac59 100644 --- a/asm/code_08018500.s +++ b/asm/code_08018500.s @@ -58,7 +58,7 @@ sub_0801855C: @ 0x0801855C ldr r4, _08018570 @ =gUnk_02033AB8 adds r0, r4, #0 movs r1, #0x14 - bl MemClear32 + bl MemClear adds r5, r4, #0 ldr r4, _08018574 @ =gUnk_080B3D20 movs r6, #0 diff --git a/asm/code_0801C370.s b/asm/code_0801C370.s index 8ca381af..88b5614f 100644 --- a/asm/code_0801C370.s +++ b/asm/code_0801C370.s @@ -32,7 +32,7 @@ _0801C398: movs r1, #0xcd lsls r1, r1, #2 adds r0, r5, #0 - bl MemClear32 + bl MemClear strb r6, [r5, #3] strh r4, [r5, #0xe] ldr r0, _0801C474 @ =gSave @@ -48,7 +48,7 @@ _0801C398: movs r1, #0x80 lsls r1, r1, #4 adds r0, r4, #0 - bl MemClear32 + bl MemClear ldr r1, _0801C47C @ =gScreen str r4, [r1, #0x10] ldr r0, _0801C480 @ =0x00001F0C @@ -93,7 +93,7 @@ _0801C398: adds r0, #0x34 movs r1, #0xc0 lsls r1, r1, #2 - bl MemClear32 + bl MemClear movs r0, #5 movs r1, #9 bl sub_0801CA6C diff --git a/asm/code_0801CEC0.s b/asm/code_0801CEC0.s index 95184820..bfdab8a3 100644 --- a/asm/code_0801CEC0.s +++ b/asm/code_0801CEC0.s @@ -12,7 +12,7 @@ sub_0801CFA8: @ 0x0801CFA8 adds r5, r0, #0 ldr r0, _0801CFCC @ =gUnk_02001A00 movs r1, #0x40 - bl MemClear32 + bl MemClear movs r4, #0 _0801CFB6: adds r0, r4, #0 diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index 6ac7a011..f1aab2ca 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -203,7 +203,7 @@ _0801D9D8: strh r0, [r3] adds r0, r4, #0 mov r1, ip - bl MemClear32 + bl MemClear adds r0, r4, #0 b _0801DA02 .align 2, 0 @@ -282,7 +282,7 @@ zMallocInit: @ 0x0801DA7C ldr r0, _0801DA8C @ =gzHeap movs r1, #0x80 lsls r1, r1, #5 - bl MemClear32 + bl MemClear pop {pc} .align 2, 0 _0801DA8C: .4byte gzHeap @@ -323,11 +323,11 @@ sub_0801DA90: @ 0x0801DA90 bl sub_0801DB34 ldr r0, _0801DB08 @ =0x0600C000 movs r1, #0x20 - bl MemClear32 + bl MemClear ldr r0, _0801DB0C @ =gBG0Buffer movs r1, #0x80 lsls r1, r1, #4 - bl MemClear32 + bl MemClear strh r4, [r5, #0xe] pop {r4, r5, pc} .align 2, 0 @@ -369,7 +369,7 @@ sub_0801DB34: @ 0x0801DB34 ldr r4, _0801DB6C @ =gScreen adds r0, r4, #0 movs r1, #0x7c - bl MemClear32 + bl MemClear ldr r0, _0801DB70 @ =gBG0Buffer str r0, [r4, #0x10] ldr r0, _0801DB74 @ =0x00001F0C @@ -424,7 +424,7 @@ sub_0801DBA0: @ 0x0801DBA0 adds r5, r1, #0 adds r1, r2, #0 adds r0, r5, #0 - bl MemClear32 + bl MemClear movs r0, #1 strb r0, [r5] ldr r2, _0801DBE4 @ =gScreenTransition @@ -699,7 +699,7 @@ _0801DDB8: ldr r0, _0801DDE0 @ =gUnk_02019EE0 movs r1, #0x80 lsls r1, r1, #8 - bl MemClear32 + bl MemClear b _0801DEE2 .align 2, 0 _0801DDD8: .4byte gUnk_080C9C50 @@ -968,7 +968,7 @@ sub_0801DFB4: @ 0x0801DFB4 ldr r7, _0801E004 @ =gUnk_02022740 adds r0, r7, #0 movs r1, #0x10 - bl MemClear32 + bl MemClear strh r4, [r7, #6] strh r5, [r7, #8] strh r6, [r7, #0xa] @@ -1209,7 +1209,7 @@ sub_0801E160: @ 0x0801E160 adds r0, r0, r4 movs r1, #0xa0 lsls r1, r1, #4 - bl MemClear32 + bl MemClear adds r0, r6, #0 mov r1, r8 mov r2, sb @@ -1279,7 +1279,7 @@ sub_0801E1EC: @ 0x0801E1EC adds r0, r0, r5 movs r1, #0xa0 lsls r1, r1, #4 - bl MemClear32 + bl MemClear adds r0, r4, #0 movs r1, #0 bl sub_0801E24C @@ -1443,7 +1443,7 @@ sub_0801E31C: @ 0x0801E31C adds r0, r0, r1 movs r1, #0xa0 lsls r1, r1, #4 - bl MemClear32 + bl MemClear cmp sl, sb bge _0801E3DC movs r6, #0 @@ -1738,7 +1738,7 @@ sub_0801E49C: @ 0x0801E49C adds r0, r0, r6 movs r1, #0xa0 lsls r1, r1, #4 - bl MemClear32 + bl MemClear ldr r2, _0801E5E8 @ =gUnk_02018EE0 ldrb r1, [r5] lsls r0, r1, #2 diff --git a/asm/code_0804B9F8.s b/asm/code_0804B9F8.s index 6ee254e6..a564376f 100644 --- a/asm/code_0804B9F8.s +++ b/asm/code_0804B9F8.s @@ -50,10 +50,10 @@ sub_0804FFE4: @ 0x0804FFE4 ldr r4, _08050000 @ =gFadeControl adds r0, r4, #0 movs r1, #0x1c - bl MemClear32 + bl MemClear ldr r0, _08050004 @ =gUnk_020354C0 movs r1, #0x80 - bl MemClear32 + bl MemClear movs r0, #1 rsbs r0, r0, #0 str r0, [r4, #4] diff --git a/asm/code_080526F8.s b/asm/code_080526F8.s index 2b0f3061..a6574bbf 100644 --- a/asm/code_080526F8.s +++ b/asm/code_080526F8.s @@ -791,7 +791,7 @@ sub_08052CFC: @ 0x08052CFC ldr r4, _08052D44 @ =gArea ldr r1, _08052D48 @ =0x00000894 adds r0, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _08052D4C @ =gRoomControls ldrb r1, [r0, #4] lsls r1, r1, #2 @@ -996,7 +996,7 @@ sub_08052EA0: @ 0x08052EA0 ldr r4, _08052EE4 @ =gRoomVars adds r0, r4, #0 movs r1, #0xcc - bl MemClear32 + bl MemClear movs r0, #0xff strb r0, [r4, #0x10] strb r0, [r4, #0x11] @@ -1178,7 +1178,7 @@ sub_08052FF4: @ 0x08052FF4 ldr r5, _08053074 @ =gUnk_020342CC adds r0, r5, #0 movs r1, #0x20 - bl MemClear32 + bl MemClear str r5, [r5, #0x20] ldr r0, _08053078 @ =gAreaRoomHeaders lsls r6, r6, #2 @@ -1570,17 +1570,17 @@ sub_08053320: @ 0x08053320 movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _08053380 @ =gBG1Buffer adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _08053384 @ =gBG2Buffer adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _08053388 @ =gBG3Buffer movs r1, #0x80 lsls r1, r1, #5 - bl MemClear32 + bl MemClear movs r0, #0x10 bl LoadGfxGroup movs r0, #0x17 @@ -2222,7 +2222,7 @@ sub_08053800: @ 0x08053800 ldr r0, _08053888 @ =gBG1Buffer movs r1, #0x80 lsls r1, r1, #4 - bl MemClear32 + bl MemClear ldr r0, _0805388C @ =0x00000F01 adds r5, r5, r0 ldr r1, [r4] diff --git a/asm/code_08056418.s b/asm/code_08056418.s index 97457697..144005f4 100644 --- a/asm/code_08056418.s +++ b/asm/code_08056418.s @@ -267,11 +267,11 @@ _080568B2: beq _080568D2 adds r0, r6, #0 movs r1, #4 - bl MemClear32 + bl MemClear ldr r4, _08056910 @ =gUnk_02024030 adds r0, r4, #0 movs r1, #0x18 - bl MemClear32 + bl MemClear movs r0, #1 strb r0, [r4] strb r0, [r6] @@ -472,7 +472,7 @@ _08056A30: movs r1, #3 strb r1, [r2] movs r1, #0x18 - bl MemClear32 + bl MemClear movs r0, #0x6a bl SoundReq adds r1, r6, #0 diff --git a/asm/code_0805E3B0.s b/asm/code_0805E3B0.s index ba150ef6..5a0336df 100644 --- a/asm/code_0805E3B0.s +++ b/asm/code_0805E3B0.s @@ -360,15 +360,15 @@ EraseAllEntities: @ 0x0805E60C bl DeleteAllEntities ldr r0, _0805E654 @ =gUnk_03003DC0 movs r1, #0xc - bl MemClear32 + bl MemClear ldr r0, _0805E658 @ =gPlayerEntity movs r1, #0xaa lsls r1, r1, #6 - bl MemClear32 + bl MemClear ldr r0, _0805E65C @ =gUnk_02033290 movs r1, #0x80 lsls r1, r1, #4 - bl MemClear32 + bl MemClear bl sub_0805E98C ldr r0, _0805E660 @ =gEntCount movs r1, #0 diff --git a/asm/code_0805EC04.s b/asm/code_0805EC04.s index 45cad29a..6c8dc59f 100644 --- a/asm/code_0805EC04.s +++ b/asm/code_0805EC04.s @@ -751,7 +751,7 @@ _0805F2D0: bne _0805F2F0 adds r0, r5, #0 movs r1, #0xc - bl MemClear32 + bl MemClear ldrb r0, [r4] movs r1, #1 orrs r0, r1 @@ -781,7 +781,7 @@ _0805F308: cmp r0, r2 bne _0805F318 movs r1, #0xc - bl MemClear32 + bl MemClear b _0805F320 .align 2, 0 _0805F314: .4byte gUnk_02036540 @@ -944,7 +944,7 @@ sub_0805F440: @ 0x0805F440 adds r4, r0, #0 adds r5, r1, #0 movs r1, #0x30 - bl MemClear32 + bl MemClear ldr r0, _0805F45C @ =0x0000FFFF cmp r5, r0 bls _0805F460 @@ -1122,7 +1122,7 @@ _0805F596: _0805F59E: ldr r0, _0805F5C8 @ =gUnk_02034330 movs r1, #0x18 - bl MemClear32 + bl MemClear _0805F5A6: mov r0, sb mov r1, sp diff --git a/asm/code_0806ED78.s b/asm/code_0806ED78.s index 264756c7..17534c87 100644 --- a/asm/code_0806ED78.s +++ b/asm/code_0806ED78.s @@ -842,7 +842,7 @@ sub_0806F364: @ 0x0806F364 adds r1, r2, r3 adds r0, r0, r1 movs r1, #0x10 - bl MemClear32 + bl MemClear pop {pc} .align 2, 0 _0806F384: .4byte gArea diff --git a/asm/code_0806FA6C.s b/asm/code_0806FA6C.s index 438a5157..347c2fa1 100644 --- a/asm/code_0806FA6C.s +++ b/asm/code_0806FA6C.s @@ -385,7 +385,7 @@ sub_0806FD8C: @ 0x0806FD8C ldr r0, _0806FD9C @ =gUnk_020000C0 movs r1, #0xc0 lsls r1, r1, #4 - bl MemClear32 + bl MemClear pop {pc} .align 2, 0 _0806FD9C: .4byte gUnk_020000C0 @@ -534,7 +534,7 @@ _0806FE9E: bls _0806FE9E adds r0, r6, #0 movs r1, #0x40 - bl MemClear32 + bl MemClear _0806FEB4: pop {r4, r5, r6, pc} .align 2, 0 @@ -1454,7 +1454,7 @@ sub_0807059C: @ 0x0807059C push {lr} ldr r0, _080705A8 @ =gUnk_02034490 movs r1, #0x18 - bl MemClear32 + bl MemClear pop {pc} .align 2, 0 _080705A8: .4byte gUnk_02034490 diff --git a/asm/code_080732D0.s b/asm/code_080732D0.s index a3a199e9..ef443c26 100644 --- a/asm/code_080732D0.s +++ b/asm/code_080732D0.s @@ -4198,7 +4198,7 @@ sub_080751E8: @ 0x080751E8 ldr r4, _08075230 @ =gPlayerScriptExecutionContext adds r0, r4, #0 movs r1, #0x24 - bl MemClear32 + bl MemClear str r6, [r4] ldr r0, _08075234 @ =gPlayerEntity adds r0, #0x84 diff --git a/asm/code_08077B98.s b/asm/code_08077B98.s index b6c78cf4..75eb2a4b 100644 --- a/asm/code_08077B98.s +++ b/asm/code_08077B98.s @@ -642,7 +642,7 @@ sub_080784C8: @ 0x080784C8 movs r1, #0xc4 lsls r1, r1, #1 adds r0, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _080784E0 @ =gUnk_0811C000 str r0, [r4, #4] pop {r4, pc} diff --git a/asm/code_08078778.s b/asm/code_08078778.s index 28d49c0d..fe9f34f1 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -70,7 +70,7 @@ sub_080788E0: @ 0x080788E0 ldr r1, _08078900 @ =gUnk_03003DF8 adds r0, r0, r1 movs r1, #0xc - bl MemClear32 + bl MemClear _080788FC: pop {pc} .align 2, 0 @@ -542,7 +542,7 @@ sub_08078C24: @ 0x08078C24 ldr r0, _08078CB0 @ =gUnk_03003DF0 movs r1, #0xc4 lsls r1, r1, #1 - bl MemClear32 + bl MemClear pop {pc} .align 2, 0 _08078CAC: .4byte gPlayerState diff --git a/asm/code_0807B9B8.s b/asm/code_0807B9B8.s index 393c255c..59896509 100644 --- a/asm/code_0807B9B8.s +++ b/asm/code_0807B9B8.s @@ -948,19 +948,19 @@ sub_0807C0DC: @ 0x0807C0DC lsls r6, r6, #6 adds r0, r5, #0 adds r1, r6, #0 - bl MemClear32 + bl MemClear adds r0, r5, r6 movs r1, #0x80 lsls r1, r1, #5 - bl MemClear32 + bl MemClear ldr r0, _0807C160 @ =gUnk_02019EE0 movs r4, #0x80 lsls r4, r4, #8 adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _0807C164 @ =gMapDataTopSpecial adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _0807C168 @ =gArea ldr r1, _0807C16C @ =0x0000085C adds r0, r0, r1 @@ -999,7 +999,7 @@ _0807C174: .4byte 0x0000FFFF _0807C178: adds r0, r2, #4 adds r1, r6, #0 - bl MemClear32 + bl MemClear movs r3, #1 mov sb, r3 _0807C184: @@ -1167,7 +1167,7 @@ _0807C2E4: bl sub_0807C5F4 adds r0, r5, #0 adds r1, r6, #0 - bl MemClear32 + bl MemClear ldr r4, _0807C350 @ =gMapDataTopSpecial adds r5, r4, r6 adds r0, r4, #0 @@ -1179,7 +1179,7 @@ _0807C2E4: bl sub_0807C5F4 adds r0, r5, #0 adds r1, r6, #0 - bl MemClear32 + bl MemClear _0807C326: mov r1, sb cmp r1, #0 @@ -1406,10 +1406,10 @@ sub_0807C4F8: @ 0x0807C4F8 movs r4, #0x80 lsls r4, r4, #8 adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _0807C59C @ =gMapDataTopSpecial adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r5, _0807C5A0 @ =gUnk_02022830 ldr r0, _0807C5A4 @ =gArea ldr r1, _0807C5A8 @ =0x0000085C @@ -1455,7 +1455,7 @@ _0807C54A: bl sub_0807C5F4 adds r0, r5, #0 adds r1, r6, #0 - bl MemClear32 + bl MemClear ldr r4, _0807C59C @ =gMapDataTopSpecial adds r5, r4, r6 adds r0, r4, #0 @@ -1467,7 +1467,7 @@ _0807C54A: bl sub_0807C5F4 adds r0, r5, #0 adds r1, r6, #0 - bl MemClear32 + bl MemClear _0807C592: pop {r4, r5, r6, pc} .align 2, 0 @@ -1694,7 +1694,7 @@ _0807C710: _0807C726: adds r0, r4, #0 movs r1, #0x40 - bl MemClear32 + bl MemClear adds r4, #0x40 adds r5, #1 cmp r5, r7 @@ -1984,7 +1984,7 @@ _0807C92E: _0807C946: adds r0, r4, #0 movs r1, #0x80 - bl MemClear32 + bl MemClear adds r4, #0x80 adds r5, #1 cmp r5, r6 diff --git a/asm/code_0807F0D8.s b/asm/code_0807F0D8.s index e525b5a6..16552c65 100644 --- a/asm/code_0807F0D8.s +++ b/asm/code_0807F0D8.s @@ -2934,11 +2934,11 @@ sub_08080668: @ 0x08080668 ldr r5, _080806A4 @ =gRoomControls adds r0, r5, #0 movs r1, #0x38 - bl MemClear32 + bl MemClear ldr r4, _080806A8 @ =gUnk_03004030 adds r0, r4, #0 movs r1, #0xc - bl MemClear32 + bl MemClear ldr r0, _080806AC @ =0x0000FFFF strh r0, [r5, #0x22] movs r0, #0xff @@ -2950,10 +2950,10 @@ sub_08080668: @ 0x08080668 movs r4, #0x80 lsls r4, r4, #8 adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _080806B8 @ =gMapDataTopSpecial adds r1, r4, #0 - bl MemClear32 + bl MemClear pop {r4, r5, pc} .align 2, 0 _080806A4: .4byte gRoomControls diff --git a/asm/code_080A29BC.s b/asm/code_080A29BC.s index e5f4bf59..09c4ea72 100644 --- a/asm/code_080A29BC.s +++ b/asm/code_080A29BC.s @@ -995,7 +995,7 @@ sub_080A3210: @ 0x080A3210 ldr r4, _080A3230 @ =gUnk_02021EE0 adds r0, r4, #0 movs r1, #0x18 - bl MemClear32 + bl MemClear bl sub_080A35C8 movs r0, #0x80 lsls r0, r0, #1 diff --git a/asm/code_080A3480.s b/asm/code_080A3480.s index a8e21e41..a30dd9c2 100644 --- a/asm/code_080A3480.s +++ b/asm/code_080A3480.s @@ -354,7 +354,7 @@ sub_080A36F8: @ 0x080A36F8 ldr r0, _080A3760 @ =gBG1Buffer movs r1, #0x80 lsls r1, r1, #4 - bl MemClear32 + bl MemClear ldr r1, _080A3764 @ =gScreen movs r2, #0 movs r0, #1 @@ -410,7 +410,7 @@ _080A378A: ldr r0, _080A37B8 @ =gBG1Buffer movs r1, #0x80 lsls r1, r1, #4 - bl MemClear32 + bl MemClear movs r1, #0x10 ldrsh r0, [r4, r1] ldr r2, _080A37BC @ =gUnk_081272E0 @@ -580,7 +580,7 @@ sub_080A38D0: @ 0x080A38D0 movs r6, #0x80 lsls r6, r6, #4 adds r1, r6, #0 - bl MemClear32 + bl MemClear ldr r4, _080A3924 @ =gScreen movs r0, #0 mov r8, r0 @@ -588,7 +588,7 @@ sub_080A38D0: @ 0x080A38D0 strh r5, [r4, #0x1a] ldr r0, _080A3928 @ =gBG2Buffer adds r1, r6, #0 - bl MemClear32 + bl MemClear strh r5, [r4, #0x26] adds r4, #0x68 movs r0, #0x80 @@ -712,7 +712,7 @@ _080A39C8: movs r0, #0xc0 lsls r0, r0, #0x13 movs r1, #0x20 - bl MemClear32 + bl MemClear movs r0, #0 movs r1, #0 bl sub_08052418 diff --git a/asm/code_080A3BD0.s b/asm/code_080A3BD0.s index 18beb360..08159cb0 100644 --- a/asm/code_080A3BD0.s +++ b/asm/code_080A3BD0.s @@ -935,7 +935,7 @@ sub_080A4398: @ 0x080A4398 push {lr} ldr r0, _080A43A4 @ =gUnk_02019EE0 movs r1, #0x40 - bl MemClear32 + bl MemClear pop {pc} .align 2, 0 _080A43A4: .4byte gUnk_02019EE0 @@ -1119,7 +1119,7 @@ sub_080A44E0: @ 0x080A44E0 mov r8, r0 ldr r0, [r4, #8] mov r1, r8 - bl MemClear32 + bl MemClear adds r0, r6, #0 adds r1, r4, #0 bl sub_0805F76C @@ -1269,11 +1269,11 @@ sub_080A4608: @ 0x080A4608 ldr r0, _080A46A4 @ =gBG0Buffer movs r1, #0x80 lsls r1, r1, #4 - bl MemClear32 + bl MemClear ldr r0, _080A46A8 @ =gBG3Buffer movs r1, #0x80 lsls r1, r1, #5 - bl MemClear32 + bl MemClear ldr r2, _080A46AC @ =gScreen adds r1, r2, #0 adds r1, #0x58 @@ -1976,7 +1976,7 @@ sub_080A4BA0: @ 0x080A4BA0 adds r6, r1, #0 add r0, sp, #0x18 movs r1, #0x30 - bl MemClear32 + bl MemClear ldr r0, _080A4C08 @ =gUnk_0812816C mov r1, sp movs r2, #0x18 @@ -2123,7 +2123,7 @@ sub_080A4CBC: @ 0x080A4CBC lsls r5, r5, #4 adds r0, r4, #0 adds r1, r5, #0 - bl MemClear32 + bl MemClear ldr r1, _080A4D14 @ =0x0600E000 adds r0, r4, #0 adds r2, r5, #0 @@ -2217,7 +2217,7 @@ sub_080A4D88: @ 0x080A4D88 push {lr} ldr r0, _080A4DA4 @ =gUnk_020344A0 movs r1, #8 - bl MemClear32 + bl MemClear movs r0, #1 movs r1, #0 bl MenuFadeIn @@ -2245,21 +2245,21 @@ sub_080A4DB8: @ 0x080A4DB8 movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _080A4E5C @ =gBG1Buffer adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _080A4E60 @ =gBG2Buffer adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _080A4E64 @ =gUnk_0200AF34 movs r1, #0xc0 lsls r1, r1, #2 - bl MemClear32 + bl MemClear ldr r4, _080A4E68 @ =gMenu adds r0, r4, #0 movs r1, #0x30 - bl MemClear32 + bl MemClear ldr r0, _080A4E6C @ =0x0000FFFF strh r0, [r4, #0x2e] ldr r0, _080A4E70 @ =gUnk_02034490 @@ -2580,7 +2580,7 @@ _080A5080: ldr r0, _080A5098 @ =gBG0Buffer movs r1, #0x80 lsls r1, r1, #4 - bl MemClear32 + bl MemClear ldr r1, _080A509C @ =gScreen movs r0, #1 strh r0, [r1, #0xe] diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index 1bd8ec85..6a218289 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -2442,7 +2442,7 @@ _080A6886: ldr r0, _080A68D0 @ =gUnk_02019EE0 movs r1, #0x80 lsls r1, r1, #3 - bl MemClear32 + bl MemClear pop {r4, r5, r6, r7, pc} .align 2, 0 _080A68AC: .4byte gUnk_02032EC0 @@ -3307,7 +3307,7 @@ sub_080A6F6C: @ 0x080A6F6C ldr r0, _080A6FA8 @ =gUnk_020350F0 movs r1, #0x80 lsls r1, r1, #1 - bl MemClear32 + bl MemClear movs r0, #0xff ands r0, r4 cmp r0, #0 @@ -3376,7 +3376,7 @@ _080A6FFA: ldr r0, _080A7038 @ =gUnk_020350F0 movs r1, #0x80 lsls r1, r1, #1 - bl MemClear32 + bl MemClear movs r0, #0xff ands r0, r4 cmp r0, #0 @@ -3413,7 +3413,7 @@ sub_080A7040: @ 0x080A7040 movs r1, #0xc0 lsls r1, r1, #2 adds r0, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _080A7098 @ =0xFFFFFE00 adds r4, r4, r0 ldr r1, _080A709C @ =0x0600E000 @@ -3456,7 +3456,7 @@ sub_080A70AC: @ 0x080A70AC movs r1, #0xc0 lsls r1, r1, #2 adds r0, r4, #0 - bl MemClear32 + bl MemClear adds r2, r4, #0 subs r2, #0x34 movs r0, #0x7f @@ -3519,7 +3519,7 @@ sub_080A7124: @ 0x080A7124 ldr r0, _080A7134 @ =gUnk_02032EC0 movs r1, #0xed lsls r1, r1, #2 - bl MemClear32 + bl MemClear pop {pc} .align 2, 0 _080A7134: .4byte gUnk_02032EC0 @@ -3536,7 +3536,7 @@ MenuFadeIn: @ 0x080A7138 movs r1, #0xed lsls r1, r1, #2 adds r0, r4, #0 - bl MemClear32 + bl MemClear strb r5, [r4, #2] strb r6, [r4, #3] ldr r0, _080A7160 @ =gMain @@ -3767,18 +3767,18 @@ sub_080A7328: @ 0x080A7328 bl DeleteAllEntities ldr r0, _080A738C @ =gMenu movs r1, #0x30 - bl MemClear32 + bl MemClear ldr r0, _080A7390 @ =gRoomControls movs r1, #0x38 - bl MemClear32 + bl MemClear ldr r0, _080A7394 @ =gUnk_03000420 movs r1, #0x80 lsls r1, r1, #1 - bl MemClear32 + bl MemClear ldr r4, _080A7398 @ =gActiveScriptInfo adds r0, r4, #0 movs r1, #0xc - bl MemClear32 + bl MemClear movs r0, #8 strb r0, [r4, #8] movs r0, #1 @@ -4943,7 +4943,7 @@ sub_080A7C7C: @ 0x080A7C7C push {lr} ldr r0, _080A7C88 @ =gUnk_02017660 movs r1, #0x40 - bl MemClear32 + bl MemClear pop {pc} .align 2, 0 _080A7C88: .4byte gUnk_02017660 diff --git a/asm/code_080AD90C.s b/asm/code_080AD90C.s index d08c7ef4..54509736 100644 --- a/asm/code_080AD90C.s +++ b/asm/code_080AD90C.s @@ -567,7 +567,7 @@ sub_080ADD30: @ 0x080ADD30 movs r1, #0x85 lsls r1, r1, #2 adds r0, r4, #0 - bl MemClear32 + bl MemClear movs r5, #0 adds r4, #4 movs r0, #0x10 @@ -718,7 +718,7 @@ _080ADE54: .4byte gUnk_02024494 _080ADE58: adds r0, r1, #0 movs r1, #0xc - bl MemClear32 + bl MemClear _080ADE60: adds r5, #0xc adds r4, #1 @@ -1084,7 +1084,7 @@ sub_080AE104: @ 0x080AE104 adds r1, r1, r5 lsls r1, r1, #2 adds r0, r4, #0 - bl MemClear32 + bl MemClear strb r5, [r4, #1] strh r6, [r4, #4] adds r0, r4, #0 @@ -1396,7 +1396,7 @@ _080AE350: stm r0!, {r2, r3, r7} adds r0, r6, #0 movs r1, #0xc - bl MemClear32 + bl MemClear adds r6, #0xc adds r5, #0xc movs r0, #0xc diff --git a/asm/fileScreen.s b/asm/fileScreen.s index 341bfde7..287c9992 100755 --- a/asm/fileScreen.s +++ b/asm/fileScreen.s @@ -41,7 +41,7 @@ sub_080519B0: @ 0x080519B0 ldr r4, _08051A08 @ =gScreenTransition adds r0, r4, #0 movs r1, #0xb0 - bl MemClear32 + bl MemClear bl sub_08049CD4 bl sub_080300AC bl sub_0807CA18 @@ -76,11 +76,11 @@ sub_08051A14: @ 0x08051A14 str r0, [r1, #4] ldr r0, _08051A74 @ =gUnk_03000000 ldr r1, _08051A78 @ =0x00000B74 - bl MemClear32 + bl MemClear ldr r0, _08051A7C @ =gUnk_02032EC0 movs r1, #0xed lsls r1, r1, #2 - bl MemClear32 + bl MemClear bl EraseAllEntities bl sub_080197AC bl sub_08080668 @@ -734,10 +734,10 @@ sub_08052010: @ 0x08052010 movs r4, #0x80 lsls r4, r4, #4 adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _08052080 @ =gBG2Buffer adds r1, r4, #0 - bl MemClear32 + bl MemClear bl sub_080A4D34 movs r0, #0xa bl LoadPaletteGroup @@ -749,10 +749,10 @@ sub_08052010: @ 0x08052010 movs r0, #0xc0 lsls r0, r0, #0x13 movs r1, #0x20 - bl MemClear32 + bl MemClear ldr r0, _08052084 @ =gMenu movs r1, #0x30 - bl MemClear32 + bl MemClear ldr r1, _08052088 @ =gScreen ldrh r2, [r1] movs r3, #0x80 diff --git a/asm/gyorgFemale.s b/asm/gyorgFemale.s index 14d08573..daba4aa9 100644 --- a/asm/gyorgFemale.s +++ b/asm/gyorgFemale.s @@ -112,10 +112,10 @@ sub_0804614C: @ 0x0804614C movs r4, #0x80 lsls r4, r4, #8 adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _08046250 @ =gMapDataTopSpecial adds r1, r4, #0 - bl MemClear32 + bl MemClear adds r0, r6, #0 movs r1, #0 bl sub_0804660C @@ -445,10 +445,10 @@ sub_08046498: @ 0x08046498 movs r4, #0x80 lsls r4, r4, #8 adds r1, r4, #0 - bl MemClear32 + bl MemClear ldr r0, _080464BC @ =gMapDataTopSpecial adds r1, r4, #0 - bl MemClear32 + bl MemClear adds r0, r5, #0 bl sub_080464C0 pop {r4, r5, pc} @@ -486,7 +486,7 @@ _080464DE: ldr r0, _0804650C @ =gUnk_02019EE0 movs r1, #0x80 lsls r1, r1, #4 - bl MemClear32 + bl MemClear ldr r1, _08046514 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] diff --git a/asm/manager10.s b/asm/manager10.s index 2826845f..f0d19df0 100644 --- a/asm/manager10.s +++ b/asm/manager10.s @@ -338,7 +338,7 @@ _08059800: lsls r5, r5, #4 adds r0, r4, #0 adds r1, r5, #0 - bl MemClear32 + bl MemClear ldr r1, _08059820 @ =0x0600E800 adds r0, r4, #0 adds r2, r5, #0 diff --git a/asm/manager2C.s b/asm/manager2C.s index 4da87eb7..123784c0 100644 --- a/asm/manager2C.s +++ b/asm/manager2C.s @@ -44,7 +44,7 @@ _0805D184: ldr r4, _0805D1F8 @ =gUnk_030010AC adds r0, r4, #0 movs r1, #0x20 - bl MemClear32 + bl MemClear subs r4, #0xc movs r1, #0 movs r0, #1 diff --git a/asm/non_matching/arm_proxy/ItemInit.inc b/asm/non_matching/arm_proxy/ItemInit.inc index e48870ae..efdae83e 100644 --- a/asm/non_matching/arm_proxy/ItemInit.inc +++ b/asm/non_matching/arm_proxy/ItemInit.inc @@ -127,4 +127,4 @@ _08017438: .align 2, 0 _0801749C: .4byte 0x000003FF _080174A0: .4byte gPlayerEntity - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/arm_proxy/sub_08017530.inc b/asm/non_matching/arm_proxy/sub_08017530.inc index 4c2b9134..278daa48 100644 --- a/asm/non_matching/arm_proxy/sub_08017530.inc +++ b/asm/non_matching/arm_proxy/sub_08017530.inc @@ -87,4 +87,4 @@ _080175D8: .4byte gUnk_020342F8 _080175DC: .4byte gNPCFunctions _080175E0: .4byte gUnk_02031EC0 _080175E4: .4byte gRoomControls - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/arm_proxy/sub_0801766C.inc b/asm/non_matching/arm_proxy/sub_0801766C.inc index 6ef38554..239a6506 100644 --- a/asm/non_matching/arm_proxy/sub_0801766C.inc +++ b/asm/non_matching/arm_proxy/sub_0801766C.inc @@ -65,4 +65,4 @@ _080176DE: pop {r4} pop {r1} bx r1 - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/arm_proxy/sub_080176E4.inc b/asm/non_matching/arm_proxy/sub_080176E4.inc index 5000774e..e8a48278 100644 --- a/asm/non_matching/arm_proxy/sub_080176E4.inc +++ b/asm/non_matching/arm_proxy/sub_080176E4.inc @@ -51,4 +51,4 @@ _0801773A: bx r1 .align 2, 0 _08017740: .4byte gUnk_03003C70 - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/arm_proxy/sub_08017744.inc b/asm/non_matching/arm_proxy/sub_08017744.inc index 2d47df2c..e5e245ec 100644 --- a/asm/non_matching/arm_proxy/sub_08017744.inc +++ b/asm/non_matching/arm_proxy/sub_08017744.inc @@ -47,4 +47,4 @@ _0801779A: pop {r4, r5, r6, r7} pop {r0} bx r0 - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/arm_proxy/sub_080177A0.inc b/asm/non_matching/arm_proxy/sub_080177A0.inc index 99962e08..da64049f 100644 --- a/asm/non_matching/arm_proxy/sub_080177A0.inc +++ b/asm/non_matching/arm_proxy/sub_080177A0.inc @@ -92,4 +92,4 @@ _0801784A: pop {r4, r5, r6} pop {r1} bx r1 - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/fileScreen/sub_08050EF4.inc b/asm/non_matching/fileScreen/sub_08050EF4.inc index 1ef73ae0..dbad9f1e 100644 --- a/asm/non_matching/fileScreen/sub_08050EF4.inc +++ b/asm/non_matching/fileScreen/sub_08050EF4.inc @@ -135,4 +135,4 @@ _08050FF4: mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/fileScreen/sub_08051738.inc b/asm/non_matching/fileScreen/sub_08051738.inc index bde5ca42..16ca61e3 100644 --- a/asm/non_matching/fileScreen/sub_08051738.inc +++ b/asm/non_matching/fileScreen/sub_08051738.inc @@ -62,4 +62,4 @@ _080517A2: pop {r4, r5, r6, r7, pc} .align 2, 0 _080517B0: .4byte gMenu - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/fileScreen/sub_080517B4.inc b/asm/non_matching/fileScreen/sub_080517B4.inc index 45bc25e3..f9bef9e7 100644 --- a/asm/non_matching/fileScreen/sub_080517B4.inc +++ b/asm/non_matching/fileScreen/sub_080517B4.inc @@ -29,4 +29,4 @@ _080517DE: .align 2, 0 _080517E4: .4byte gUnk_02019EE0 _080517E8: .4byte gUnk_02000090 - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/fileScreen/sub_080610B8.inc b/asm/non_matching/fileScreen/sub_080610B8.inc index f7b6721c..037a8765 100644 --- a/asm/non_matching/fileScreen/sub_080610B8.inc +++ b/asm/non_matching/fileScreen/sub_080610B8.inc @@ -345,4 +345,4 @@ _0805134C: .align 2, 0 _08051350: .4byte gSave _08051354: .4byte gMenu - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/game/sub_08052418.inc b/asm/non_matching/game/sub_08052418.inc index 179cce1d..bd30db21 100644 --- a/asm/non_matching/game/sub_08052418.inc +++ b/asm/non_matching/game/sub_08052418.inc @@ -6,7 +6,7 @@ ldr r0, _08052494 @ =gBG1Buffer movs r1, #0x80 lsls r1, r1, #4 - bl MemClear32 + bl MemClear ldr r0, _08052498 @ =gUnk_020227E8 movs r1, #0xf str r1, [r0] @@ -63,4 +63,4 @@ _08052498: .4byte gUnk_020227E8 _0805249C: .4byte gUnk_080FCA8C _080524A0: .4byte gUnk_080FCAA4 _080524A4: .4byte gScreen - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/gibdo/sub_080376D0.inc b/asm/non_matching/gibdo/sub_080376D0.inc index c6c76bd6..8c07e3dc 100644 --- a/asm/non_matching/gibdo/sub_080376D0.inc +++ b/asm/non_matching/gibdo/sub_080376D0.inc @@ -54,4 +54,4 @@ _0803772C: _0803773A: pop {r4, pc} - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/gibdo/sub_08037810.inc b/asm/non_matching/gibdo/sub_08037810.inc index 42f4ed8c..b4ce2803 100644 --- a/asm/non_matching/gibdo/sub_08037810.inc +++ b/asm/non_matching/gibdo/sub_08037810.inc @@ -83,4 +83,4 @@ _080378AC: _080378AE: pop {r4, r5, r6, pc} - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/gibdo/sub_0803797C.inc b/asm/non_matching/gibdo/sub_0803797C.inc index 47da634a..4e0ecf7a 100644 --- a/asm/non_matching/gibdo/sub_0803797C.inc +++ b/asm/non_matching/gibdo/sub_0803797C.inc @@ -36,4 +36,4 @@ _080379BA: pop {r4, r5, pc} - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/save/sub_08050B3C.inc b/asm/non_matching/save/sub_08050B3C.inc index a3b5b6b3..356b8a6c 100644 --- a/asm/non_matching/save/sub_08050B3C.inc +++ b/asm/non_matching/save/sub_08050B3C.inc @@ -122,4 +122,4 @@ _08050C1C: .4byte 0x0000F24C _08050C20: .4byte 0x040000D4 _08050C24: .4byte gUnk_080FC914 _08050C28: .4byte 0xFFFFF24D - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/sub_080560B8.inc b/asm/non_matching/sub_080560B8.inc index 29ca150f..73872d2a 100644 --- a/asm/non_matching/sub_080560B8.inc +++ b/asm/non_matching/sub_080560B8.inc @@ -54,7 +54,7 @@ _08056112: ldr r4, _0805612C @ =gUnk_02000010 adds r0, r4, #0 movs r1, #0x20 - bl MemClear32 + bl MemClear ldr r0, _08056130 @ =0x4D435A33 str r0, [r4] _08056124: diff --git a/asm/non_matching/textbox/sub_080564EC.inc b/asm/non_matching/textbox/sub_080564EC.inc index 4c3fdf84..e76e5fa6 100644 --- a/asm/non_matching/textbox/sub_080564EC.inc +++ b/asm/non_matching/textbox/sub_080564EC.inc @@ -2,14 +2,14 @@ push {r4, lr} ldr r0, _08056598 @ =gUnk_02036A40 movs r1, #8 - bl MemClear32 + bl MemClear ldr r0, _0805659C @ =gUnk_02024030 movs r1, #0x18 - bl MemClear32 + bl MemClear ldr r4, _080565A0 @ =gUnk_02022780 adds r0, r4, #0 movs r1, #0xa8 - bl MemClear32 + bl MemClear ldr r0, _080565A4 @ =gTextBox adds r1, r4, #0 movs r2, #0x20 @@ -87,4 +87,4 @@ _080565A4: .4byte gTextBox _080565A8: .4byte gSave _080565AC: .4byte gUnk_08107BE0 _080565B0: .4byte gUnk_02000D00 - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/object3D.s b/asm/object3D.s index a6dbf01d..07297cfa 100644 --- a/asm/object3D.s +++ b/asm/object3D.s @@ -170,7 +170,7 @@ sub_0808D030: @ 0x0808D030 adds r0, r4, #0 subs r0, #0x20 ldr r1, _0808D05C @ =0x00000B74 - bl MemClear32 + bl MemClear movs r1, #0xa8 lsls r1, r1, #2 adds r0, r1, #0 diff --git a/include/createObject.h b/include/createObject.h new file mode 100644 index 00000000..03f3632e --- /dev/null +++ b/include/createObject.h @@ -0,0 +1,8 @@ +#ifndef CREATEOBJECT_H +#define CREATEOBJECT_H + +// maybe a dedicated (create)Effect.h/c +void CreateDust(Entity* parent); +void CreateDustSmall(Entity* parent); + +#endif // CREATEOBJECT_H diff --git a/include/dma.h b/include/dma.h new file mode 100644 index 00000000..168c870e --- /dev/null +++ b/include/dma.h @@ -0,0 +1,9 @@ +#ifndef DMA_H +#define DMA_H + +void MemFill16(u32 value, void* dest, u32 size); +void MemFill32(u32 value, void* dest, u32 size); +void MemClear(void* dest, u32 size); +void MemCopy(const void* src, void* dest, u32 size); + +#endif // DMA_H diff --git a/include/enemy.h b/include/enemy.h index b12a54e8..0b3e8ecb 100644 --- a/include/enemy.h +++ b/include/enemy.h @@ -89,7 +89,6 @@ extern void VaatiWrath(Entity*); extern void VaatiArm(Entity*); extern void Dust(Entity*); extern void VaatiBall(Entity*); -extern void Octorok(Entity*); extern void Slime(Entity*); extern void MiniSlime(Entity*); extern void FireballGuy(Entity*); @@ -110,6 +109,5 @@ extern void Enemy66(Entity*); extern u32 GetNextFunction(Entity*); extern void EnemyFunctionHandler(Entity*, void (*const func[])(Entity*)); -extern void sub_0804AA30(Entity*, void (*const func[])(Entity*)); extern void sub_08001324(Entity*); #endif diff --git a/include/entity.h b/include/entity.h index 929868b5..10867f53 100644 --- a/include/entity.h +++ b/include/entity.h @@ -166,15 +166,16 @@ extern LinkedList gUnk_03003D90; extern LinkedList gUnk_03003DA0; #define TILE(x, y) \ - ((((x - gRoomControls.roomOriginX) >> 4) & 0x3fU) | \ - (((y - gRoomControls.roomOriginY) >> 4) & 0x3fU) << 6) + (((((x) - gRoomControls.roomOriginX) >> 4) & 0x3fU) | \ + ((((y) - gRoomControls.roomOriginY) >> 4) & 0x3fU) << 6) #define COORD_TO_TILE(entity) \ - TILE(entity->x.HALF.HI, entity->y.HALF.HI) + TILE((entity)->x.HALF.HI, (entity)->y.HALF.HI) #define COORD_TO_TILE_OFFSET(entity, xOff, yOff) \ - TILE(entity->x.HALF.HI - xOff, entity->y.HALF.HI - yOff) + TILE((entity)->x.HALF.HI - (xOff), (entity)->y.HALF.HI - (yOff)) +Entity* GetEmptyEntity(void); extern Entity* CreateEnemy(u32 subtype, u32 form); extern Entity* CreateObject(u32 subtype, u32 form, u32 parameter); extern Entity* CreateNPC(u32 subtype, u32 form, u32 parameter); @@ -193,10 +194,14 @@ extern void SetSpriteSubEntryOffsetData2(Entity*, u32, u32); extern u32 GetFacingDirection(Entity*, Entity*); -extern void DeleteThisEntity(void); -extern void CopyPosition(Entity*, Entity*); -extern void DeleteEntity(Entity*); -extern void PositionRelative(Entity*, Entity*, s32, s32); +void DeleteThisEntity(void); +void DeleteEntity(Entity*); + +void AppendEntityToList(Entity* entity, u32 listIndex); +void PrependEntityToList(Entity* entity, int listIndex); + +Entity* FindEntityInListBySubtype(u32 type, u32 subtype, u32 listIndex); +Entity* FindEntityInListByForm(u32 type, u32 subtype, u32 listIndex, u32 form, u32 parameter); enum { DirectionNorth = 0x00, @@ -211,12 +216,12 @@ enum { #define DirectionIsVertical(expr) ((expr) & 0x10) #define DirectionTurnAround(expr) (DirectionRoundUp(expr) ^ 0x10) #define DirectionToAnimationState(expr) (DirectionRoundUp(expr) >> 3) -#define DirectionFromAnimationState(expr) (expr << 3) +#define DirectionFromAnimationState(expr) ((expr) << 3) #define Direction8Round(expr) ((expr) & 0x1c) #define Direction8RoundUp(expr) Direction8Round((expr) + 2) #define Direction8TurnAround(expr) (Direction8RoundUp(expr) ^ 0x10) #define Direction8ToAnimationState(expr) (Direction8RoundUp(expr) >> 2) -#define Direction8FromAnimationState(expr) (expr << 2) +#define Direction8FromAnimationState(expr) (((expr) << 2) #endif diff --git a/include/fileScreen.h b/include/fileScreen.h index b5782093..8f11aaef 100644 --- a/include/fileScreen.h +++ b/include/fileScreen.h @@ -2,12 +2,6 @@ #define FILESELECT_H #include "global.h" -#include "functions.h" -#include "main.h" -#include "player.h" -#include "readKeyInput.h" -#include "screen.h" -#include "menu.h" #include "save.h" typedef struct { diff --git a/include/functions.h b/include/functions.h index ecd9b01c..4711ec1e 100644 --- a/include/functions.h +++ b/include/functions.h @@ -7,70 +7,49 @@ #include "manager.h" #include "position.h" #include "player.h" -#include "structures.h" #include "room.h" +#include "structures.h" // Identified - to be sorted into header files -extern u32 Random(void); extern void SoundReq(u32); extern void ShowNPCDialogue(Entity*, Dialog*); -extern u32 UpdateFuseInteraction(); -extern void DeleteEntity(Entity*); extern u32 __modsi3(u32, u32); extern void DoFade(u32, u32); -extern u32 GetInventoryValue(u32); extern u32 CheckKinstoneFused(u32); extern void ForceEquipItem(u32, u8); -extern void LoadRoomEntityList(); -void CopyPosition(Entity*, Entity*); -extern void ResolveEntityOnTop(Entity*, Entity*); -extern void EnemyFunctionHandler(Entity*, void (*const funcs[])(Entity*)); +extern void LoadRoomEntityList(EntityData* listPtr); extern u32 GetAnimationState(Entity*); extern void SetChildOffset(Entity*, s32, s32, s32); -extern u32 GetFacingDirection(Entity*, Entity*); extern Entity* CreatePlayerItem(u32, u32, u32, u32); -extern Entity* GetEmptyEntity(void); extern u32 GetTileTypeByPos(s32 x, s32 y, u32 layer); extern u32 GetTileType(u32 pos, u32 layer); -extern void MemClear32(void* src, u32 count); extern void EraseAllEntities(void); extern void SetTile(u32, u32, u32); extern void SetDirtTile(u32); extern void LoadRoomTileEntities(); // tba extern Entity* CreateDeathFx(Entity*, u32, u32); extern void UpdateAnimationVariableFrames(Entity*, u32); -extern void CopyPositionAndSpriteOffset(Entity*, Entity*); extern u8* GetSpriteSubEntryOffsetDataPointer(u32, u32); extern u32 LoadFixedGFX(Entity*, u32); -extern void MemFill32(u32, void*, u32); extern Entity* CreateItemEntity(u32, u32, u32); -void MemCopy(const void* src, void* dst, u32 size); extern u32 ProcessMovement(Entity*); -extern Entity* FindEntityInListBySubtype(u32, u32, u32); -extern Entity* FindEntityInListByForm(u32, u32, u32, u32, u32); -extern void MemClear32(void*, u32); extern void MenuFadeIn(u32, u32); extern void LoadResourceAsync(const void*, u32, u32); extern void LoadPaletteGroup(u32); extern void TryLoadPrologueHyruleTown(void); extern Manager* GetEmptyManager(void); -extern void AppendEntityToList(void*, u32); extern void LoadGfxGroup(u32); extern void EnqueueSFX(u32); extern void ResetPlayer(void); -extern void CreateDust(Entity*); extern u32 IsItemEquipped(u32); extern void DeleteManager(Manager*); extern bool32 CheckPlayerInRegion(u32 centerX, u32 centerY, u32 radiusX, u32 radiusY); -extern u32 CheckIsDungeon(void); extern u32 GetTileTypeByEntity(Entity*); // Unidentified extern u32 sub_0806ED78(Entity*); -extern void sub_0806920C(Entity*); extern u32 sub_0805ACC0(Entity*); extern u32 sub_0801E99C(Entity*); -extern void sub_0806924C(Entity*); extern Entity* sub_080873AC(Entity*, u32, u32); extern void sub_08078778(Entity*); extern void sub_080787A8(Entity*, u32); @@ -78,7 +57,6 @@ extern void sub_0806F118(Entity*); extern void sub_080791D0(); extern void sub_0805EC9C(); extern void sub_0805EC60(); -extern void sub_080873D0(); extern u32 sub_080045D4(s16, s16, u32, u32); extern void sub_0806F69C(Entity*); extern void sub_0805E3A0(void*, u32); @@ -91,16 +69,11 @@ extern void sub_0807000C(Entity*); extern void sub_0805E47C(Entity*); extern void sub_0805E584(Entity*); extern void sub_08068BEC(Entity*, u32); -extern void sub_08078778(Entity*); -extern s32 sub_0806ED9C(Entity*, u32, u32); extern s32 sub_0806F078(Entity*, s32); extern void sub_0801D2B4(Entity*, u32); extern void sub_0806FD3C(Entity*); -extern u32 sub_0801E99C(Entity*); -extern void sub_0806F118(Entity*); extern void sub_0805ED14(u32*); extern void sub_080A7C18(u32, u32, u32); -extern void sub_08068BEC(Entity*, u32); extern void sub_0804AA30(Entity*, void (*const funcs[])(Entity*)); extern Entity* sub_0804A9FC(Entity*, u32); extern void sub_0804A720(Entity*); @@ -155,8 +128,6 @@ extern void sub_080530C8(void); extern void sub_0805B4D0(u32); extern void sub_0804D0B4(void); extern void sub_0805308C(u32); -extern void sub_0805AF60(); -extern void sub_0805D3C8(u32); extern void sub_080534AC(); extern void sub_0807BA8C(u32, u32); extern void sub_0804D9B0(); @@ -170,7 +141,6 @@ extern void sub_08054564(); extern void sub_0801DD58(u32, u32); extern void sub_0804ED18(); extern void sub_080AF2E4(void); -extern void sub_0805ADD8(u32); extern void sub_0804F578(void); extern void sub_08059994(void); extern s32 sub_0801CFA8(u32); @@ -262,7 +232,6 @@ u32 sub_0806FCB8(Entity*, u32, u32, u32); extern Entity* sub_080A7EE0(u32); extern void sub_080A1D70(Entity*, u32); extern void sub_0806F62C(Entity*, u32, u32); -extern u32 sub_08079F8C(void); extern void sub_080A1ED0(u32, u32, u32); extern u32 sub_0806F5B0(u32); extern void sub_0801DFB4(Entity*, u32, u32, u32); @@ -288,7 +257,6 @@ extern void sub_080791BC9(); extern void sub_080791BC(); extern void sub_08056360(); extern u32 sub_080542AC(u32); -extern void sub_0807A108(); extern u32 sub_08079FC4(u32); extern void sub_0800455E(Entity*); extern void sub_08008790(Entity*, u32); diff --git a/include/game.h b/include/game.h new file mode 100644 index 00000000..dec15e21 --- /dev/null +++ b/include/game.h @@ -0,0 +1,6 @@ +#ifndef GAME_H +#define GAME_H + +u32 CheckIsDungeon(void); + +#endif // GAME_H diff --git a/include/gba/macro.h b/include/gba/macro.h index b08ed921..f142d5c0 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -1,16 +1,16 @@ #ifndef GUARD_GBA_MACRO_H #define GUARD_GBA_MACRO_H -#define CPU_FILL(value, dest, size, bit) \ - { \ - vu##bit tmp = (vu##bit)(value); \ - CpuSet((void*)&tmp, dest, CPU_SET_##bit##BIT | CPU_SET_SRC_FIXED | ((size) / (bit / 8) & 0x1FFFFF)); \ +#define CPU_FILL(value, dest, size, bit) \ + { \ + vu##bit tmp = (vu##bit)(value); \ + CpuSet((void*)&tmp, dest, CPU_SET_##bit##BIT | CPU_SET_SRC_FIXED | ((size) / ((bit) / 8) & 0x1FFFFF)); \ } #define CpuFill16(value, dest, size) CPU_FILL(value, dest, size, 16) #define CpuFill32(value, dest, size) CPU_FILL(value, dest, size, 32) -#define CPU_COPY(src, dest, size, bit) CpuSet(src, dest, CPU_SET_##bit##BIT | ((size) / (bit / 8) & 0x1FFFFF)) +#define CPU_COPY(src, dest, size, bit) CpuSet(src, dest, CPU_SET_##bit##BIT | ((size) / ((bit) / 8) & 0x1FFFFF)) #define CpuCopy16(src, dest, size) CPU_COPY(src, dest, size, 16) #define CpuCopy32(src, dest, size) CPU_COPY(src, dest, size, 32) @@ -42,7 +42,7 @@ vu##bit tmp = (vu##bit)(value); \ DmaSet(dmaNum, &tmp, dest, \ (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_FIXED | DMA_DEST_INC) << 16 | \ - ((size) / (bit / 8))); \ + ((size) / ((bit) / 8))); \ } #define DmaFill16(dmaNum, value, dest, size) DMA_FILL(dmaNum, value, dest, size, 16) @@ -65,7 +65,7 @@ #define DMA_COPY(dmaNum, src, dest, size, bit) \ DmaSet(dmaNum, src, dest, \ - (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_INC | DMA_DEST_INC) << 16 | ((size) / (bit / 8))) + (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_INC | DMA_DEST_INC) << 16 | ((size) / ((bit) / 8))) #define DmaCopy16(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 16) #define DmaCopy32(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 32) @@ -112,7 +112,7 @@ #define DmaFillLarge(dmaNum, value, dest, size, block, bit) \ { \ - void* _dest = (void*)dest; \ + void* _dest = (void*)(dest); \ u32 _size = size; \ while (1) { \ DmaFill##bit(dmaNum, value, _dest, (block)); \ @@ -149,7 +149,7 @@ #define DmaFillDefvars(dmaNum, value, dest, size, bit) \ { \ - void* _dest = (void*)dest; \ + void* _dest = (void*)(dest); \ u32 _size = size; \ DmaFill##bit(dmaNum, value, _dest, _size); \ } @@ -180,7 +180,7 @@ \ imeTemp = REG_IME; \ REG_IME = 0; \ - REG_IE |= flags; \ + REG_IE |= (flags); \ REG_IME = imeTemp; \ } diff --git a/include/global.h b/include/global.h index 6d7f2311..489f276d 100644 --- a/include/global.h +++ b/include/global.h @@ -31,9 +31,9 @@ #define SWAP(a, b, temp) \ { \ - temp = a; \ - a = b; \ - b = temp; \ + (temp) = a; \ + (a) = b; \ + (b) = temp; \ } // useful math macros @@ -47,7 +47,7 @@ #define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) >= (b) ? (a) : (b)) -#define BOOLCAST(x) ((-x | x) >> 31) +#define BOOLCAST(x) ((-(x) | (x)) >> 31) #define static_assert(cond) extern char assertion[(cond) ? 1 : -1] #if NON_MATCHING diff --git a/include/greatFairy.h b/include/greatFairy.h index d5e4906b..6afb06dd 100644 --- a/include/greatFairy.h +++ b/include/greatFairy.h @@ -3,23 +3,9 @@ #include "screen.h" -extern u32 __modsi3(u32, u32); -extern void InitializeAnimation(Entity*, u32); -extern void GreatFairy_InitializeAnimation(Entity*); -extern u32 CheckRoomFlag(); -extern Entity* GreatFairy_CreateForm(Entity*, u32, u32); -extern void PositionRelative(); -extern void CopyPosition(); -extern void DoFade(); -extern void SoundReq(); -extern void GetNextFrame(); -extern void sub_0805EC9C(); -extern void sub_0805EC60(); -extern void sub_080873D0(); -extern void DeleteEntity(); -extern void sub_0806F69C(); -extern Entity* FindEntityInListBySubtype(u32, u32, u32); -extern void sub_080791D0(); +void GreatFairy_InitializeAnimation(Entity*); +Entity* GreatFairy_CreateForm(Entity*, u32, u32); +void sub_080873D0(); extern void (*const GreatFairy_Main[])(Entity*); extern void (*const GreatFairy_Behaviors[])(Entity*); extern void (*const GreatFairy_WingsBehaviors[])(Entity*); @@ -35,13 +21,8 @@ extern void (*const GreatFairy_Form2Behaviors[])(Entity*); extern void (*const gUnk_081207A4[])(Entity*); extern u32 gUnk_0810C2E4; -extern RoomControls gRoomControls; -extern Entity gPlayerEntity; extern const s16 GreatFairy_RippleOffsets[10]; extern u32 gUnk_02034350; -extern RoomVars gRoomVars; -extern Screen gScreen; -extern struct_02033280 gActiveScriptInfo; extern u8 gUnk_0812079C[8]; extern s16 gSineTable[]; extern s8 gUnk_081207AC[]; diff --git a/include/item.h b/include/item.h index e0dc4bbb..0f9fd6f2 100644 --- a/include/item.h +++ b/include/item.h @@ -7,36 +7,19 @@ extern void DebugItem(ItemBehavior*, u32); extern void Sword(ItemBehavior*, u32); -extern void Sword(ItemBehavior*, u32); -extern void Sword(ItemBehavior*, u32); -extern void Sword(ItemBehavior*, u32); -extern void Sword(ItemBehavior*, u32); -extern void Sword(ItemBehavior*, u32); -extern void Bomb(ItemBehavior*, u32); extern void Bomb(ItemBehavior*, u32); extern void Bow(ItemBehavior*, u32); -extern void Bow(ItemBehavior*, u32); -extern void sub_08075D14(ItemBehavior*, u32); extern void sub_08075D14(ItemBehavior*, u32); extern void Shield(ItemBehavior*, u32); -extern void Shield(ItemBehavior*, u32); -extern void Lantern(ItemBehavior*, u32); extern void Lantern(ItemBehavior*, u32); extern void GustJar(ItemBehavior*, u32); extern void PacciCane(ItemBehavior*, u32); extern void MoleMitts(ItemBehavior*, u32); extern void RocsCape(ItemBehavior*, u32); extern void sub_08076800(ItemBehavior*, u32); -extern void DebugItem(ItemBehavior*, u32); extern void Ocarina(ItemBehavior*, u32); -extern void DebugItem(ItemBehavior*, u32); -extern void DebugItem(ItemBehavior*, u32); -extern void DebugItem(ItemBehavior*, u32); extern void TryPickupObject(ItemBehavior*, u32); extern void JarEmpty(ItemBehavior*, u32); -extern void JarEmpty(ItemBehavior*, u32); -extern void JarEmpty(ItemBehavior*, u32); -extern void JarEmpty(ItemBehavior*, u32); /* On hold until naming conflicts are resolved */ /* diff --git a/include/npc.h b/include/npc.h index b27a82f9..ec7fc861 100644 --- a/include/npc.h +++ b/include/npc.h @@ -42,10 +42,6 @@ extern void SittingPerson_Head(Entity*); extern void SittingPerson_Fusion(Entity*); extern void Pina(Entity*); extern void Pina_Fusion(Entity*); -extern void Guard(Entity*); -extern void Guard_Head(Entity*); -extern void Maid(Entity*); -extern void Maid_Head(Entity*); extern void Din(Entity*); extern void Din_Fusion(Entity*); extern void Nayru(Entity*); diff --git a/include/position.h b/include/position.h index 4635a097..87d5b128 100644 --- a/include/position.h +++ b/include/position.h @@ -7,6 +7,7 @@ void CopyPosition(Entity*, Entity*); void PositionEntityOnTop(Entity*, Entity*); void PositionRelative(Entity*, Entity*, s32, s32); +void CopyPositionAndSpriteOffset(Entity* param_1, Entity* param_2); void sub_0806FA90(Entity*, Entity*, s32, s32); void ResolveEntityOnTop(Entity*, Entity*); void sub_0806FAD8(Entity*, Entity*); diff --git a/include/structures.h b/include/structures.h index d6dfdd61..d47ee7a1 100644 --- a/include/structures.h +++ b/include/structures.h @@ -39,8 +39,7 @@ typedef struct { u8 field_0x4[0x4]; bool8 transitioningOut; u8 transitionType; // transition when changing areas - u8 field_0xa; // seems to be a tile type - u8 field_0xb; + u16 field_0xa; // seems to be a tile type u8 areaID; u8 roomID; u8 playerState; diff --git a/src/arm_proxy.c b/src/arm_proxy.c index 05d5235f..7de78b39 100644 --- a/src/arm_proxy.c +++ b/src/arm_proxy.c @@ -8,6 +8,7 @@ #include "functions.h" #include "object.h" #include "manager.h" +#include "dma.h" #include "npc.h" extern u8 gUnk_03003DE0; @@ -252,7 +253,7 @@ void sub_080171F0(void) { gPlayerState.field_0x1a[0] = 0; gPlayerState.field_0x80 = 0; gPlayerState.field_0xaa = 0; - MemClear32(&gUnk_03003BE0, 0x8c); + MemClear(&gUnk_03003BE0, 0x8c); gPlayerEntity.spriteOffsetY = gPlayerState.field_0x3f; gPlayerState.field_0x3f = 0; sub_0807B0C8(); @@ -392,7 +393,7 @@ void CollisionMain(void) { } void RegisterPlayerHitbox(void) { - MemClear32(&gUnk_03003C70, sizeof(gUnk_03003C70)); + MemClear(&gUnk_03003C70, sizeof(gUnk_03003C70)); gUnk_02018EA0 = (LinkedList2*)&gUnk_03003C70[0].last; gUnk_03003C70[0].last = &gUnk_03003C70[0].last; gUnk_03003C70[0].first = &gUnk_03003C70[0].last; diff --git a/src/code_08018C58.c b/src/code_08018C58.c index fd918e31..14caf9cd 100644 --- a/src/code_08018C58.c +++ b/src/code_08018C58.c @@ -1,5 +1,4 @@ #include "global.h" -#include "entity.h" extern u32 SetTileType(u32 tileID, u32 tilePos, u32 layerID); diff --git a/src/code_080300AC.c b/src/code_080300AC.c index 12564596..16514810 100644 --- a/src/code_080300AC.c +++ b/src/code_080300AC.c @@ -1,9 +1,7 @@ #include "global.h" -#include "entity.h" +#include "dma.h" #include "functions.h" -// extern void DmaZero(void*, u32); - typedef struct { u16 unk0; u16 filler2[32]; @@ -13,13 +11,13 @@ typedef struct { extern struct_0300110C gUnk_0300110C; void sub_080300AC(void) { - MemClear32(&gUnk_0300110C.unk0, 0x44); + MemClear(&gUnk_0300110C.unk0, 0x44); gUnk_0300110C.unk66 = 0xff; } void sub_080300C4(void) { if (gScreenTransition.field_0xae == 0xff) { gScreenTransition.field_0xac = 0; - MemClear32(&gScreenTransition.field_0x4c[32], 0x40); + MemClear(&gScreenTransition.field_0x4c[32], 0x40); } } diff --git a/src/code_0804AA84.c b/src/code_0804AA84.c index 406a513b..27c7c6c4 100644 --- a/src/code_0804AA84.c +++ b/src/code_0804AA84.c @@ -2,6 +2,7 @@ #include "entity.h" #include "area.h" #include "main.h" +#include "dma.h" #include "functions.h" #include "screen.h" @@ -10,8 +11,6 @@ typedef struct { u32 unk; } struct_02018EB0; -extern void sub_0805E5A8(); - extern void (*const gUnk_080D4120[])(); extern void (*const gUnk_080D412C[])(); @@ -37,7 +36,7 @@ void sub_0804AAB8(void) { } void sub_0804AAD4(void) { - MemClear32((void*)&gUnk_02018EB0, 0x28); + MemClear(&gUnk_02018EB0, 0x28); gUnk_02018EB0.unk = 0; EraseAllEntities(); CreateObject(0x3d, gArea.curPortalType, 0); diff --git a/src/code_0805436C.c b/src/code_0805436C.c index 20aee72e..2e12b6b0 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -1,5 +1,4 @@ #include "global.h" -#include "entity.h" #include "player.h" #include "room.h" #include "menu.h" diff --git a/src/code_0805F9A0.c b/src/code_0805F9A0.c index 33f037ad..d1c9af64 100644 --- a/src/code_0805F9A0.c +++ b/src/code_0805F9A0.c @@ -1,6 +1,7 @@ #include "global.h" -#include "functions.h" +#include "dma.h" #include "structures.h" +#include "functions.h" extern u16 gUnk_081092D4; extern u8 gUnk_02036AD8; diff --git a/src/code_08077DF4.c b/src/code_08077DF4.c index 0dc90c4a..23ba53f5 100644 --- a/src/code_08077DF4.c +++ b/src/code_08077DF4.c @@ -1,6 +1,7 @@ #include "global.h" #include "entity.h" #include "player.h" +#include "dma.h" #include "functions.h" typedef struct { @@ -57,7 +58,7 @@ void sub_08077E78(void* arg0, u32 bits) { not = ~not ; gPlayerState.field_0xa &= not ; gPlayerState.keepFacing &= not ; - MemClear32(arg0, 0x1c); + MemClear(arg0, 0x1c); } u32 sub_08077EC8(Unk_struct* arg0) { diff --git a/src/code_0808091C.c b/src/code_0808091C.c index 1916869c..0ea3dbcf 100644 --- a/src/code_0808091C.c +++ b/src/code_0808091C.c @@ -4,16 +4,13 @@ #include "functions.h" #include "room.h" -extern void sub_0805E5A8(); extern void sub_08080BC4(void); -extern RoomControls gRoomControls; extern u32 gUnk_0200B650; extern u32 gUnk_02025EB0; extern u8 gUnk_02000070; extern void DoExitTransition(ScreenTransitionData*); -extern void sub_080809D4(); void sub_080808D8(void) { gScreenTransition.transitionType = 0; diff --git a/src/createEnemy.c b/src/createEnemy.c index 5ce7af89..73eb5e5c 100644 --- a/src/createEnemy.c +++ b/src/createEnemy.c @@ -1,8 +1,5 @@ -#include "entity.h" #include "global.h" - -extern Entity* GetEmptyEntity(); -extern void AppendEntityToList(Entity*, u8); +#include "entity.h" Entity* CreateEnemy(u32 subtype, u32 form) { Entity* enemy; diff --git a/src/createNPC.c b/src/createNPC.c index b8a30fdf..7e57e92e 100644 --- a/src/createNPC.c +++ b/src/createNPC.c @@ -1,19 +1,16 @@ #include "global.h" #include "entity.h" -extern Entity* GetEmptyEntity(); -extern void AppendEntityToList(Entity*, u8); - Entity* CreateNPC(u32 subtype, u32 form, u32 parameter) { - Entity* pEVar1; + Entity* entity; - pEVar1 = GetEmptyEntity(); - if (pEVar1 != NULL) { - pEVar1->kind = 7; - pEVar1->id = subtype; - pEVar1->type = form; - pEVar1->type2 = parameter; - AppendEntityToList(pEVar1, 7); + entity = GetEmptyEntity(); + if (entity != NULL) { + entity->kind = 7; + entity->id = subtype; + entity->type = form; + entity->type2 = parameter; + AppendEntityToList(entity, 7); } - return pEVar1; + return entity; } diff --git a/src/createObject.c b/src/createObject.c index 62c67062..dc8de778 100644 --- a/src/createObject.c +++ b/src/createObject.c @@ -1,22 +1,21 @@ #include "global.h" #include "entity.h" +#include "position.h" #include "room.h" - -extern Entity* GetEmptyEntity(); -extern void AppendEntityToList(Entity*, u8); +#include "createObject.h" Entity* CreateObject(u32 subtype, u32 form, u32 parameter) { - Entity* ent; + Entity* entity; - ent = GetEmptyEntity(); - if (ent != NULL) { - ent->kind = 6; - ent->id = subtype; - ent->type = form; - ent->type2 = parameter; - AppendEntityToList(ent, 6); + entity = GetEmptyEntity(); + if (entity != NULL) { + entity->kind = 6; + entity->id = subtype; + entity->type = form; + entity->type2 = parameter; + AppendEntityToList(entity, 6); } - return ent; + return entity; } Entity* CreateObjectWithParent(Entity* parentEnt, u32 subtype, u32 form, u32 parameter) { diff --git a/src/dma.c b/src/dma.c index 4c79f72e..426b09dc 100644 --- a/src/dma.c +++ b/src/dma.c @@ -1,49 +1,46 @@ #include "global.h" -#include "entity.h" +#include "dma.h" -void MemFill32(u32, u8*, u32); -void MemFill16(u32, u8*, u32); - -void MemFill16(u32 value, u8* dest, u32 size) { +void MemFill16(u32 value, void* dest, u32 size) { DmaFill16(3, value, dest, size); } -void MemFill32(u32 value, u8* dest, u32 size) { +void MemFill32(u32 value, void* dest, u32 size) { DmaFill32(3, value, dest, size); } -void MemClear32(u8* src, u32 size) { +void MemClear(void* dest, u32 size) { u32 zero = 0; - switch (((u32)src | size) & 3) { + switch (((u32)dest | size) & 3) { case 0: - MemFill32(0, src, size); + MemFill32(0, dest, size); break; case 2: - MemFill16(0, src, size); + MemFill16(0, dest, size); break; default: do { - *src = zero; - src++; + *(u8*)dest = zero; + dest++; size--; } while (size != 0); } } -void MemCopy(const u8* src, u8* dst, u32 size) { - switch (((u32)src | (u32)dst | size) & 3) { +void MemCopy(const void* src, void* dest, u32 size) { + switch (((u32)src | (u32)dest | size) & 3) { case 0: - DmaCopy32(3, src, dst, size); + DmaCopy32(3, src, dest, size); break; case 2: - DmaCopy16(3, src, dst, size); + DmaCopy16(3, src, dest, size); break; default: do { - *dst = *src; + *(u8*)dest = *(u8*)src; src++; - dst++; + dest++; } while (--size); } } diff --git a/src/enemy/acroBandits.c b/src/enemy/acroBandits.c index 09463b1e..8b3c977f 100644 --- a/src/enemy/acroBandits.c +++ b/src/enemy/acroBandits.c @@ -1,10 +1,10 @@ #include "global.h" #include "entity.h" +#include "random.h" #include "functions.h" extern u32 sub_080002D4(s32, s32, u32); extern s32 sub_080012DC(Entity*); -extern u32 sub_080044EC(Entity*, u32); extern u32 sub_08031E04(Entity*); extern void sub_08031E48(Entity*, Entity*); extern void sub_08032290(Entity*); @@ -12,10 +12,7 @@ extern u32 sub_080322A4(Entity*); void sub_080322E8(Entity*); extern void sub_08032338(Entity*); extern Entity* sub_08049DF4(u32); -extern void sub_0804AA30(Entity*, void (*const funcs[])(Entity*)); -extern u32 sub_0806FCB8(Entity*, u32, u32, u32); extern u32 GetNextFunction(Entity*); -extern void SetChildOffset(Entity*, s32, s32, s32); extern Entity* gUnk_020000B0; extern u8 gEntCount; diff --git a/src/enemy/beetle.c b/src/enemy/beetle.c index 0e9c9586..8ce4858b 100644 --- a/src/enemy/beetle.c +++ b/src/enemy/beetle.c @@ -1,6 +1,8 @@ #include "entity.h" -#include "functions.h" +#include "enemy.h" #include "player.h" +#include "random.h" +#include "functions.h" extern u32 PlayerInRange(Entity*, u32, u32); diff --git a/src/enemy/bladeTrap.c b/src/enemy/bladeTrap.c index 95d2d8d4..9f89f8f0 100644 --- a/src/enemy/bladeTrap.c +++ b/src/enemy/bladeTrap.c @@ -1,10 +1,9 @@ #include "global.h" #include "entity.h" #include "room.h" +#include "functions.h" extern void sub_080A2CC0(); -extern void sub_0806F69C(); -extern void EnqueueSFX(); void BladeTrap(Entity* this) { if (this->action == 0) { diff --git a/src/enemy/bobomb.c b/src/enemy/bobomb.c index 3d724227..0e465090 100644 --- a/src/enemy/bobomb.c +++ b/src/enemy/bobomb.c @@ -1,7 +1,8 @@ #include "enemy.h" +#include "random.h" +#include "createObject.h" #include "functions.h" -extern void CreateDustSmall(Entity*); extern void sub_08078930(Entity*); extern void sub_08078954(Entity*); diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c index 46c7d8b2..b57cfd81 100644 --- a/src/enemy/bombPeahat.c +++ b/src/enemy/bombPeahat.c @@ -1,17 +1,15 @@ #include "global.h" #include "entity.h" -#include "functions.h" #include "player.h" +#include "random.h" +#include "functions.h" extern void sub_08078954(Entity*); -extern u32 sub_0800442E(Entity*); extern void sub_08078930(Entity*); extern s32 sub_080012DC(Entity*); extern u32 GetNextFunction(Entity*); -extern void sub_0806F4E8(Entity*); extern Entity* sub_08049DF4(u32); extern void sub_08079BD8(Entity*); -extern u32 GetTileTypeByEntity(Entity*); void sub_0802AD1C(Entity*, u32); void sub_0802AD54(Entity*); diff --git a/src/enemy/bowMoblin.c b/src/enemy/bowMoblin.c index e29d6177..893d7618 100644 --- a/src/enemy/bowMoblin.c +++ b/src/enemy/bowMoblin.c @@ -1,10 +1,8 @@ #include "global.h" #include "entity.h" +#include "enemy.h" +#include "functions.h" -extern void EnemyFunctionHandler(Entity*, void (*const funcs[])(Entity*)); -extern void SetChildOffset(Entity*, u32, u32, u32); -extern void sub_0804A9FC(Entity*, u32); -extern void sub_0804AA30(Entity*, void (*const funcs[][])(Entity*)); extern void sub_0803C5F0(Entity*); extern void (*const gUnk_080CFF78[])(Entity*); @@ -25,7 +23,7 @@ void sub_0803C198(Entity* this) { if (this->field_0x43 != 0) { sub_0804A9FC(this, 0x1c); } - sub_0804AA30(this, &gUnk_080CFF78); + sub_0804AA30(this, gUnk_080CFF78); if ((this->bitfield & 0x80) != 0) { sub_0803C5F0(this); pEVar1 = this->attachedEntity; diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index 2c80b226..30f0000e 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -1,9 +1,11 @@ #include "enemy.h" #include "entity.h" #include "flags.h" -#include "functions.h" #include "textbox.h" #include "save.h" +#include "random.h" +#include "npc.h" +#include "functions.h" extern void sub_0801D040(Entity*, u32); extern Entity* sub_08049DF4(u32); @@ -326,7 +328,7 @@ void sub_08028E40(Entity* this) { } void sub_08028E84(Entity* this) { - if (UpdateFuseInteraction()) { + if (UpdateFuseInteraction(this)) { this->action = 4; this->actionDelay = 1; } diff --git a/src/enemy/chuchu.c b/src/enemy/chuchu.c index e8ee87d3..4f8d86d0 100644 --- a/src/enemy/chuchu.c +++ b/src/enemy/chuchu.c @@ -1,5 +1,6 @@ #include "enemy.h" #include "entity.h" +#include "random.h" #include "functions.h" extern s32 sub_080012DC(Entity*); diff --git a/src/enemy/chuchuBoss.c b/src/enemy/chuchuBoss.c index 674e8774..4127be53 100644 --- a/src/enemy/chuchuBoss.c +++ b/src/enemy/chuchuBoss.c @@ -2,8 +2,6 @@ #include "entity.h" #include "functions.h" -extern void sub_08078B48(void); - void sub_08027870(Entity*); extern void (*const gUnk_080CC19C[])(Entity*); @@ -36,13 +34,11 @@ void sub_08025CBC(Entity* this) { void sub_08025DC0(Entity*); void sub_08025CD4(Entity*); -void sub_08001242(Entity*); void sub_08025DD8(Entity*); void sub_08026060(Entity*); void sub_08026110(Entity*); void sub_080272D4(Entity*); void sub_0802720C(Entity*); -void sub_0802720C(Entity*); void sub_08026090(Entity*); void sub_0802626C(Entity*); void sub_08026580(Entity*); diff --git a/src/enemy/cuccoChickAggr.c b/src/enemy/cuccoChickAggr.c index e0f7a8f0..683ba4b8 100644 --- a/src/enemy/cuccoChickAggr.c +++ b/src/enemy/cuccoChickAggr.c @@ -1,5 +1,6 @@ #include "enemy.h" #include "entity.h" +#include "random.h" #include "functions.h" extern Entity* sub_08049DF4(u32); diff --git a/src/enemy/darkNut.c b/src/enemy/darkNut.c index 18561e86..96585a58 100644 --- a/src/enemy/darkNut.c +++ b/src/enemy/darkNut.c @@ -1,4 +1,6 @@ #include "entity.h" +#include "enemy.h" +#include "random.h" #include "functions.h" typedef struct { diff --git a/src/enemy/fallingBoulder.c b/src/enemy/fallingBoulder.c index 798f4939..29076b1c 100644 --- a/src/enemy/fallingBoulder.c +++ b/src/enemy/fallingBoulder.c @@ -1,4 +1,5 @@ #include "enemy.h" +#include "random.h" #include "functions.h" void sub_0802C4B0(Entity*); diff --git a/src/enemy/fireballGuy.c b/src/enemy/fireballGuy.c index c7bdbbe2..d551c54d 100644 --- a/src/enemy/fireballGuy.c +++ b/src/enemy/fireballGuy.c @@ -1,5 +1,7 @@ #include "global.h" #include "entity.h" +#include "enemy.h" +#include "random.h" #include "functions.h" typedef struct { diff --git a/src/enemy/gibdo.c b/src/enemy/gibdo.c index bc338a94..f9792c8a 100644 --- a/src/enemy/gibdo.c +++ b/src/enemy/gibdo.c @@ -1,8 +1,9 @@ #include "global.h" #include "entity.h" #include "sprite.h" -#include "functions.h" #include "enemy.h" +#include "random.h" +#include "functions.h" // Gibudo void sub_08037794(); void sub_08037B10(); diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c index f8a0b890..b71ec8ff 100644 --- a/src/enemy/gyorgMale.c +++ b/src/enemy/gyorgMale.c @@ -3,9 +3,9 @@ #include "player.h" #include "room.h" #include "trig.h" -#include "structures.h" -#include "functions.h" #include "fileScreen.h" +#include "random.h" +#include "functions.h" void (*const gUnk_080D1AFC[8])(Entity*); void (*const gUnk_080D1B1C[7])(Entity*); @@ -26,7 +26,6 @@ const u8 gUnk_080D1C44[0xC]; const u16 gUnk_080D1C50[8]; const u16 gUnk_080D1C60[8]; -void GyorgMale(Entity*); void sub_08046898(Entity*); // action 0 void sub_08046910(Entity*); // action 1 void sub_08046930(Entity*); // action 1 subAction 0 diff --git a/src/enemy/hangingSeed.c b/src/enemy/hangingSeed.c index fc09db31..fe6fe0fc 100644 --- a/src/enemy/hangingSeed.c +++ b/src/enemy/hangingSeed.c @@ -1,4 +1,5 @@ #include "entity.h" +#include "enemy.h" #include "functions.h" extern void (*const gHangingSeedFunctions[])(Entity*); diff --git a/src/enemy/helmasaur.c b/src/enemy/helmasaur.c index ed7a71b8..5d4302df 100644 --- a/src/enemy/helmasaur.c +++ b/src/enemy/helmasaur.c @@ -1,4 +1,5 @@ #include "enemy.h" +#include "random.h" #include "functions.h" extern void sub_08008796(Entity*, u32, u32, u32); diff --git a/src/enemy/keaton.c b/src/enemy/keaton.c index 453315d8..79e98065 100644 --- a/src/enemy/keaton.c +++ b/src/enemy/keaton.c @@ -1,5 +1,7 @@ #include "global.h" #include "entity.h" +#include "enemy.h" +#include "random.h" #include "functions.h" extern Entity* gUnk_020000B0; @@ -164,17 +166,17 @@ void sub_08032650(Entity* this) { sub_0803269C(this, this->direction); } -void sub_0803269C(Entity* this, u32 param_2) { +void sub_0803269C(Entity* this, u32 direction) { u32 uVar1; - if (((param_2 - 3) & 7) < 3) { - uVar1 = DirectionToAnimationState(param_2); + if (((direction - 3) & 7) < 3) { + uVar1 = DirectionToAnimationState(direction); if (((this->animationState - uVar1) & 3) > 1) { this->animationState = uVar1; InitAnimationForceUpdate(this, (this->animIndex & 0xFC) + uVar1); } } else { - uVar1 = DirectionToAnimationState(param_2); + uVar1 = DirectionToAnimationState(direction); if (uVar1 != this->animationState) { this->animationState = uVar1; InitAnimationForceUpdate(this, (this->animIndex & 0xFC) + uVar1); diff --git a/src/enemy/keese.c b/src/enemy/keese.c index 35904a3e..26c1a938 100644 --- a/src/enemy/keese.c +++ b/src/enemy/keese.c @@ -2,19 +2,13 @@ #include "entity.h" #include "enemy.h" #include "player.h" +#include "random.h" #include "functions.h" extern void sub_08001328(Entity*); -extern u32 sub_0806F520(Entity*); -extern void sub_0806F4E8(Entity*); -extern u32 sub_0806F3E4(Entity*); -extern void sub_0804A7D4(Entity*); -extern void sub_0804A720(Entity*); extern void Keese_StartFly(Entity*); extern void sub_080AEFB4(Entity*); extern void sub_08021F24(Entity*); -extern u32 sub_08049FA0(Entity*); -extern u32 sub_08049EE4(Entity*); extern void (*const gKeeseFunctions[])(Entity*); extern void (*const gKeeseActions[])(Entity*); diff --git a/src/enemy/lakitu.c b/src/enemy/lakitu.c index 5d6fcb6e..08b35c3e 100644 --- a/src/enemy/lakitu.c +++ b/src/enemy/lakitu.c @@ -1,5 +1,6 @@ #include "global.h" #include "entity.h" +#include "enemy.h" #include "functions.h" #include "trig.h" #include "random.h" @@ -7,51 +8,6 @@ extern void (*const LakituActionFuncs[])(Entity*); -// Lakitu -extern void EnemyFunctionHandler(Entity*, void (*const funcs[])(Entity*)); - -// sub_0803C784 -extern void sub_0804AA30(Entity*, void (*const funcs[])(Entity*)); - -// sub_0803C820 -extern u32 sub_0806F520(Entity*); - -// sub_0803C850 -extern void sub_0806F4E8(Entity*); - -// Lakitu_Initialize -extern void sub_0804A720(Entity*); - -// Lakitu_Cloudless -extern u32 sub_08003FC4(Entity*, u32); - -// sub_0803CA4C -extern u32 sub_080041A0(Entity*, Entity*, u32, u32); - -// sub_0803CAD0 -extern u32 sub_080AEFE0(Entity*); - -// Lakitu_SpawnLightning -void PositionRelative(Entity*, Entity*, s32, s32); -extern void EnqueueSFX(u32); - -// sub_0803CC08 -extern void DeleteEntity(Entity*); - -// Part of function tables -extern void sub_08001324(Entity*); -extern void sub_0804A7D4(Entity*); -extern void sub_08001242(Entity*); - -// Used in multiple functions -extern Entity* CreateFx(Entity*, u32, u32); -extern Entity* sub_0804A98C(Entity* positionEntity, u8 subtype, - u8 form); // Creates a projectile positioned at the given entity -extern void UpdateAnimationSingleFrame(Entity*); -extern void InitAnimationForceUpdate(Entity*, u32); -extern u32 sub_0806FCB8(Entity*, u32, u32, u32); -extern u32 GetFacingDirection(Entity*, Entity*); - // Forward references to functions in lakitu.c extern void sub_0803CAD0(Entity*); extern void sub_0803CBAC(Entity*); @@ -78,9 +34,6 @@ typedef struct { s8 y; } PACKED OffsetCoords; -// sub_0803CC08 -extern void DeleteEntity(Entity*); - // Variables extern void (*const gUnk_080D0110[])(Entity*); extern void (*const gUnk_080D0128[])(Entity*); diff --git a/src/enemy/lakituCloud.c b/src/enemy/lakituCloud.c index 467e273c..5ce140c5 100644 --- a/src/enemy/lakituCloud.c +++ b/src/enemy/lakituCloud.c @@ -1,25 +1,17 @@ #include "global.h" #include "entity.h" #include "player.h" +#include "functions.h" extern u32 GetNextFunction(Entity*); -extern void sub_0804A7D4(Entity*); -extern void sub_08001242(Entity*); - extern void (*const gUnk_080D0418[6])(Entity*); extern void (*const gUnk_080D0430[3])(Entity*); extern void (*const gUnk_080D043C[3])(Entity*); -extern bool32 sub_0806F3E4(Entity*); -extern bool32 sub_0806F520(Entity*); - extern void sub_0800449C(Entity*, u32); extern void sub_0803CE14(Entity*); extern void sub_0803CE3C(Entity*); -extern Entity* GetCurrentRoomProperty(u8); -extern void sub_0806F4E8(Entity*); -extern void sub_0806F69C(Entity*); extern void sub_08079D84(void); extern void sub_080A2CC0(Entity*, Entity**, u16*); diff --git a/src/enemy/leever.c b/src/enemy/leever.c index b40c63ca..a4d5ffa9 100644 --- a/src/enemy/leever.c +++ b/src/enemy/leever.c @@ -1,16 +1,11 @@ #include "global.h" #include "entity.h" #include "enemy.h" +#include "random.h" #include "functions.h" -extern void SetChildOffset(Entity*, s32, s32, s32); -extern void sub_0804AA30(Entity*, void (*const func[])(Entity*)); -extern void sub_0804A7D4(Entity*); -extern Entity* CreateDeathFx(Entity*, u32, u32); -extern void sub_0804A720(Entity*); extern u32 sub_080002D4(s32, s32, u32); extern u32 sub_080002BC(s32, s32, u32); -extern u32 sub_08049FDC(Entity*, u32); extern Entity* gUnk_020000B0; extern s16 gSineTable[]; diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c index 53af5aad..f04073d3 100644 --- a/src/enemy/likeLike.c +++ b/src/enemy/likeLike.c @@ -1,11 +1,12 @@ #include "enemy.h" #include "entity.h" -#include "functions.h" #include "textbox.h" #include "save.h" +#include "random.h" +#include "createObject.h" +#include "functions.h" extern bool32 sub_080544B4(u32); -extern void sub_0807CAA0(u32, u32); void sub_0802810C(Entity*); void sub_080281A0(Entity*); diff --git a/src/enemy/madderpillar.c b/src/enemy/madderpillar.c index 012f5abf..0679a87d 100644 --- a/src/enemy/madderpillar.c +++ b/src/enemy/madderpillar.c @@ -1,5 +1,6 @@ #include "enemy.h" #include "entity.h" +#include "random.h" #include "functions.h" extern u8 gEntCount; diff --git a/src/enemy/miniFireballGuy.c b/src/enemy/miniFireballGuy.c index 24f7e210..3210aeeb 100644 --- a/src/enemy/miniFireballGuy.c +++ b/src/enemy/miniFireballGuy.c @@ -1,11 +1,9 @@ #include "global.h" #include "entity.h" +#include "enemy.h" +#include "random.h" #include "functions.h" -extern void EnemyFunctionHandler(Entity*, void (*const func[])(Entity*)); -extern void sub_0804A7D4(Entity*); -extern void sub_0804A720(Entity*); -extern void sub_08045678(Entity*); extern void sub_08045678(Entity*); extern void (*const gUnk_080D1868[])(Entity*); diff --git a/src/enemy/miniSlime.c b/src/enemy/miniSlime.c index 96e7d615..7fba14ed 100644 --- a/src/enemy/miniSlime.c +++ b/src/enemy/miniSlime.c @@ -1,16 +1,14 @@ #include "global.h" #include "entity.h" -#include "room.h" +#include "enemy.h" +#include "random.h" #include "functions.h" void sub_08045374(Entity*); extern u32 sub_0806FA04(u32, u32); -extern void sub_0804A720(); extern void sub_080452E4(); -extern void sub_0804AA30(); extern void ReplaceMonitoredEntity(Entity*, Entity*); -extern void sub_0804A7D4(Entity*); extern void (*const gUnk_080D17C0[])(Entity*); extern void (*const gUnk_080D17D8[])(Entity*); diff --git a/src/enemy/moldorm.c b/src/enemy/moldorm.c index 429905be..f7ed8161 100644 --- a/src/enemy/moldorm.c +++ b/src/enemy/moldorm.c @@ -1,5 +1,6 @@ #include "enemy.h" #include "entity.h" +#include "random.h" #include "functions.h" void sub_08022EAC(Entity*); diff --git a/src/enemy/moldworm.c b/src/enemy/moldworm.c index 2ac1af64..11d5166e 100644 --- a/src/enemy/moldworm.c +++ b/src/enemy/moldworm.c @@ -1,5 +1,6 @@ #include "enemy.h" #include "entity.h" +#include "random.h" #include "functions.h" extern void sub_0800449C(Entity*, u32); diff --git a/src/enemy/octorok.c b/src/enemy/octorok.c index 4a021874..565ed259 100644 --- a/src/enemy/octorok.c +++ b/src/enemy/octorok.c @@ -1,15 +1,9 @@ #include "global.h" #include "entity.h" +#include "enemy.h" +#include "random.h" #include "functions.h" -extern void EnemyFunctionHandler(); -extern void SetChildOffset(); -extern void sub_0804AA30(); -extern void sub_0804A7D4(); -extern u32 sub_0806F520(); -extern void sub_0806F4E8(); -extern void UpdateAnimationVariableFrames(); -extern void sub_0804A720(); extern Entity* sub_08049DF4(u32); void Octorok_Pause(); diff --git a/src/enemy/peahat.c b/src/enemy/peahat.c index 85a38d74..5c134ed8 100644 --- a/src/enemy/peahat.c +++ b/src/enemy/peahat.c @@ -1,4 +1,6 @@ #include "entity.h" +#include "enemy.h" +#include "random.h" #include "functions.h" extern void (*const gPeahatFunctions[])(Entity*); diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index f34d439a..9d7520e1 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -1,12 +1,13 @@ #include "enemy.h" #include "entity.h" +#include "random.h" +#include "createObject.h" +#include "game.h" #include "functions.h" extern u32 sub_080002E0(u16, u32); -extern u32 CheckIsDungeon(void); extern void sub_0800449C(Entity*, u32); extern u32 sub_08049F1C(Entity*, Entity*, u32); -extern void sub_0804AA30(Entity*, void (*const funcs[])(Entity*)); extern u32 PlayerInRange(Entity*, u32, u32); extern void sub_080AEFB4(Entity*); extern Entity* FindNextEntityOfSameSubtype(Entity* ent, int listIndex); diff --git a/src/enemy/puffstool.c b/src/enemy/puffstool.c index aba4ff55..4a47b4b7 100644 --- a/src/enemy/puffstool.c +++ b/src/enemy/puffstool.c @@ -1,5 +1,6 @@ #include "enemy.h" #include "entity.h" +#include "random.h" #include "functions.h" extern u32 sub_080002E0(u32, u32); @@ -8,7 +9,6 @@ extern u16 sub_080002A8(u32, u32, u32); extern u16 sub_080002D4(u32, u32, u32); extern void sub_0804AA1C(Entity*); extern Entity* sub_08049DF4(u32); -extern void sub_0807B7D8(u32, u32, u32); extern u8 gUnk_080B37A0[]; extern u8 gUnk_080B3E80[]; diff --git a/src/enemy/rockChuchu.c b/src/enemy/rockChuchu.c index dd4d31c6..977257bd 100644 --- a/src/enemy/rockChuchu.c +++ b/src/enemy/rockChuchu.c @@ -1,5 +1,6 @@ #include "enemy.h" #include "entity.h" +#include "random.h" #include "functions.h" extern void sub_0804A4E4(Entity*, Entity*); diff --git a/src/enemy/rollobite.c b/src/enemy/rollobite.c index 5928e62b..0e6ee1bb 100644 --- a/src/enemy/rollobite.c +++ b/src/enemy/rollobite.c @@ -1,4 +1,6 @@ #include "entity.h" +#include "enemy.h" +#include "random.h" #include "functions.h" extern void (*const gRollobiteFunctions[])(Entity*); diff --git a/src/enemy/rope.c b/src/enemy/rope.c index f6076324..0859bae6 100644 --- a/src/enemy/rope.c +++ b/src/enemy/rope.c @@ -1,8 +1,8 @@ #include "global.h" #include "entity.h" -#include "sprite.h" -#include "functions.h" #include "enemy.h" +#include "random.h" +#include "functions.h" extern void (*const gRope[6])(Entity*); extern void (*const gUnk_080CE460[4])(Entity*); diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c index b1aebc92..10984c27 100644 --- a/src/enemy/rupeeLike.c +++ b/src/enemy/rupeeLike.c @@ -1,11 +1,11 @@ #include "global.h" #include "entity.h" #include "enemy.h" -#include "functions.h" #include "npc.h" -#include "structures.h" #include "player.h" #include "save.h" +#include "createObject.h" +#include "functions.h" extern void sub_080293DC(Entity*); extern void sub_080296D8(Entity*); diff --git a/src/enemy/slime.c b/src/enemy/slime.c index f6ea1d7f..cef52043 100644 --- a/src/enemy/slime.c +++ b/src/enemy/slime.c @@ -1,6 +1,8 @@ #include "global.h" #include "entity.h" +#include "enemy.h" #include "room.h" +#include "random.h" #include "functions.h" typedef struct { @@ -10,10 +12,7 @@ typedef struct { void sub_08044FF8(Entity*); void sub_08045178(Entity*, Entity*, int, int); -extern void sub_0804A720(Entity*); extern u32 sub_0806FA04(u32, u32); -extern u32 sub_08049FA0(Entity*); -extern u32 sub_08049EE4(Entity*); extern void sub_0804A4E4(Entity*, Entity*); extern u32 sub_080002CC(Entity*, s32, s32); diff --git a/src/enemy/sluggula.c b/src/enemy/sluggula.c index 86b90864..436baf3c 100644 --- a/src/enemy/sluggula.c +++ b/src/enemy/sluggula.c @@ -1,5 +1,6 @@ #include "enemy.h" #include "entity.h" +#include "random.h" #include "functions.h" extern s32 sub_080012DC(Entity*); diff --git a/src/enemy/smallPesto.c b/src/enemy/smallPesto.c index 7d5aea83..cec3a3f7 100644 --- a/src/enemy/smallPesto.c +++ b/src/enemy/smallPesto.c @@ -1,17 +1,11 @@ #include "global.h" #include "entity.h" +#include "position.h" +#include "random.h" +#include "functions.h" extern u32 GetNextFunction(Entity*); -extern u32 sub_0806F520(Entity*); -extern void sub_0806F4E8(Entity*); -extern u32 sub_0806F3E4(); -extern void sub_0804A7D4(Entity*); -extern void sub_0804A720(Entity*); extern void sub_080317F8(Entity*); -extern u32 sub_08049FA0(Entity*); -extern u32 Random(); -extern u32 sub_08049EE4(Entity*); -extern void sub_0806F69C(Entity*); extern void (*gUnk_080CE530[])(Entity*); extern void (*gUnk_080CE548[])(Entity*); @@ -19,7 +13,6 @@ extern void (*gUnk_080CE554[])(Entity*); void sub_080317B4(Entity*); void sub_080317E0(Entity*); -void sub_080317F8(Entity*); void sub_08031840(Entity*); extern Hitbox gUnk_080CE560; @@ -61,7 +54,7 @@ void sub_080316E8(Entity* this) { } void sub_080316F0(Entity* this) { - if (sub_0806F3E4()) { + if (sub_0806F3E4(this)) { sub_0804A7D4(this); } } diff --git a/src/enemy/spearMoblin.c b/src/enemy/spearMoblin.c index 8523ae91..033c1ea7 100644 --- a/src/enemy/spearMoblin.c +++ b/src/enemy/spearMoblin.c @@ -1,9 +1,9 @@ #include "enemy.h" #include "entity.h" +#include "random.h" #include "functions.h" extern bool32 sub_0806FC80(Entity*, Entity*, u32); -extern Entity* sub_080A7EE0(u32); extern Entity* sub_08049DF4(u32); void sub_08028604(Entity*); diff --git a/src/enemy/spikedBeetle.c b/src/enemy/spikedBeetle.c index 727243a2..46c87653 100644 --- a/src/enemy/spikedBeetle.c +++ b/src/enemy/spikedBeetle.c @@ -1,5 +1,6 @@ #include "enemy.h" #include "entity.h" +#include "random.h" #include "functions.h" extern u32 sub_0804A024(Entity*, u32, u32); diff --git a/src/enemy/spinyChuchu.c b/src/enemy/spinyChuchu.c index 7b2424b8..21396115 100644 --- a/src/enemy/spinyChuchu.c +++ b/src/enemy/spinyChuchu.c @@ -1,5 +1,6 @@ #include "enemy.h" #include "entity.h" +#include "random.h" #include "functions.h" extern void sub_08001318(Entity*); diff --git a/src/enemy/tektite.c b/src/enemy/tektite.c index 506cd20f..ab5da752 100644 --- a/src/enemy/tektite.c +++ b/src/enemy/tektite.c @@ -1,6 +1,7 @@ #include "global.h" #include "entity.h" #include "enemy.h" +#include "random.h" #include "functions.h" extern void (*const gUnk_080CDED0[])(Entity*); @@ -62,8 +63,6 @@ void sub_0802F1F0(Entity* this) { } } -extern u8 gUnk_080CDEF8[]; - void sub_0802F210(Entity* this) { u32 temp; u32 temp2; @@ -106,8 +105,6 @@ void sub_0802F284(Entity* this) { } } -extern u8 gUnk_080CDEF8[]; - void sub_0802F300(Entity* this) { s32 temp; u32 rand; diff --git a/src/enemy/tektiteGolden.c b/src/enemy/tektiteGolden.c index 35399b09..2567c463 100644 --- a/src/enemy/tektiteGolden.c +++ b/src/enemy/tektiteGolden.c @@ -1,8 +1,9 @@ #include "global.h" #include "entity.h" #include "enemy.h" -#include "functions.h" #include "flags.h" +#include "random.h" +#include "functions.h" extern void sub_08038168(Entity*); diff --git a/src/enemy/vaatiBall.c b/src/enemy/vaatiBall.c index bdccd10e..3907e270 100644 --- a/src/enemy/vaatiBall.c +++ b/src/enemy/vaatiBall.c @@ -1,7 +1,8 @@ #include "entity.h" #include "player.h" -#include "functions.h" #include "screen.h" +#include "createObject.h" +#include "functions.h" typedef struct { s8 h, v; @@ -136,8 +137,6 @@ void sub_080447E0(Entity* this) { } } -extern u32 sub_080045B4(); -extern u32 sub_0806FCB8(Entity*, u32, u32, u32); extern void sub_08044DEC(); void sub_08044868(Entity* this) { diff --git a/src/enemy/wallMaster.c b/src/enemy/wallMaster.c index 1ba24a96..394e8620 100644 --- a/src/enemy/wallMaster.c +++ b/src/enemy/wallMaster.c @@ -1,7 +1,8 @@ #include "enemy.h" #include "entity.h" -#include "functions.h" #include "area.h" +#include "random.h" +#include "functions.h" extern void sub_08001328(Entity*); extern Entity* sub_08049DF4(u32); diff --git a/src/enemy/wallMaster2.c b/src/enemy/wallMaster2.c index d0e5b1a3..f6d32479 100644 --- a/src/enemy/wallMaster2.c +++ b/src/enemy/wallMaster2.c @@ -1,9 +1,9 @@ #include "enemy.h" -#include "functions.h" #include "area.h" +#include "random.h" +#include "functions.h" extern void sub_08001328(Entity*); -extern u32 sub_0806FCB8(Entity*, u32, u32, u32); extern void DoExitTransition(u32*); extern Entity* gUnk_020000B0; diff --git a/src/enemy/waterDrop.c b/src/enemy/waterDrop.c index 320fc03d..f994b564 100644 --- a/src/enemy/waterDrop.c +++ b/src/enemy/waterDrop.c @@ -1,7 +1,8 @@ #include "enemy.h" #include "entity.h" -#include "functions.h" #include "screen.h" +#include "random.h" +#include "functions.h" void sub_0802A39C(Entity*); void sub_0802A334(Entity*); diff --git a/src/enemy/wisp.c b/src/enemy/wisp.c index d611c173..247cf0a0 100644 --- a/src/enemy/wisp.c +++ b/src/enemy/wisp.c @@ -1,10 +1,11 @@ #include "global.h" #include "entity.h" #include "enemy.h" -#include "structures.h" #include "player.h" -#include "functions.h" #include "save.h" +#include "random.h" +#include "createObject.h" +#include "functions.h" extern void (*const gUnk_080CEB74[])(Entity*); extern void (*const gUnk_080CEB8C[])(Entity*); diff --git a/src/entity.c b/src/entity.c index d574f05c..67620fb5 100644 --- a/src/entity.c +++ b/src/entity.c @@ -1,5 +1,6 @@ #include "global.h" #include "entity.h" +#include "dma.h" #include "script.h" typedef struct OtherEntity { @@ -23,8 +24,7 @@ Entity* sub_0805E744(void) { return NULL; } -extern Entity* GetEmptyEntity(); -OtherEntity* GetEmptyManager(); +OtherEntity* GetEmptyManager(void); typedef void* (*Getter)(void); @@ -48,14 +48,13 @@ typedef struct { extern struct_03003DD0 gUnk_03003DD0; extern u32 _call_via_r0(u32*); extern u32 _EntUpdate; -extern void DeleteEntityAny(Entity*); +void DeleteEntityAny(Entity*); void DeleteThisEntity(void) { DeleteEntityAny(gUnk_03003DD0.field_0x8); _call_via_r0((u32*)&_EntUpdate); } -void DeleteEntity(Entity*); void DeleteManager(OtherEntity*); typedef void (*Deleter)(void*); @@ -81,7 +80,7 @@ extern void sub_0805E92C(); extern void UnloadHitbox(); extern void sub_0801DA0C(); extern void sub_0804AA1C(); -extern void UnlinkEntity(); // Unlink +void UnlinkEntity(); void DeleteEntity(Entity* ent) { if (ent->next) { @@ -160,7 +159,6 @@ OtherEntity* GetEmptyManager(void) { return NULL; } -extern void MemClear32(void*, u32); extern u8 gManagerCount; void DeleteManager(OtherEntity* ent) { @@ -169,7 +167,7 @@ void DeleteManager(OtherEntity* ent) { sub_0805E92C(ent); UnlinkEntity(ent); - MemClear32(ent, sizeof(OtherEntity)); + MemClear(ent, sizeof(OtherEntity)); gManagerCount--; } @@ -184,8 +182,7 @@ void sub_0805E92C(u32 param_1) { } extern Entity gUnk_020369F0; -extern void MemCopy(const void* src, void* dest, size_t size); // dma copy -extern void sub_0805E98C(void); +void sub_0805E98C(void); void sub_0805E958(void) { MemCopy(&gEntityLists, &gUnk_020369F0, 0x48); @@ -237,32 +234,32 @@ void sub_0805E9F4(void) { extern void sub_0805E374(Entity*); -void AppendEntityToList(Entity* ent, int listIndex) { +void AppendEntityToList(Entity* entity, u32 listIndex) { LinkedList* list; list = &gEntityLists[listIndex]; - ent->next = (Entity*)list; - ent->prev = list->last; - list->last->next = ent; - list->last = ent; - if (ent->kind != 9) { - ent->spritePriority.b0 = 4; + entity->next = (Entity*)list; + entity->prev = list->last; + list->last->next = entity; + list->last = entity; + if (entity->kind != 9) { + entity->spritePriority.b0 = 4; gEntCount++; } else { gManagerCount++; } - sub_0805E374(ent); + sub_0805E374(entity); } -void PrependEntityToList(Entity* ent, int listIndex) { +void PrependEntityToList(Entity* entity, int listIndex) { LinkedList* list; - UnlinkEntity(ent); + UnlinkEntity(entity); list = &gEntityLists[listIndex]; - ent->prev = (Entity*)list; - ent->next = list->first; - list->first->prev = ent; - list->first = ent; + entity->prev = (Entity*)list; + entity->next = list->first; + list->first->prev = entity; + list->first = entity; } void UnlinkEntity(Entity* ent) { @@ -289,7 +286,7 @@ bool32 DoesSimilarEntityExist(Entity* ent) { return FALSE; } -Entity* FindEntityInListBySubtype(int type, int subtype, int listIndex) { +Entity* FindEntityInListBySubtype(u32 type, u32 subtype, u32 listIndex) { Entity* it; LinkedList* list; @@ -301,7 +298,7 @@ Entity* FindEntityInListBySubtype(int type, int subtype, int listIndex) { return NULL; } -Entity* FindEntityInListByForm(int type, int subtype, int listIndex, int form, int parameter) { +Entity* FindEntityInListByForm(u32 type, u32 subtype, u32 listIndex, u32 form, u32 parameter) { Entity* i; LinkedList* list; diff --git a/src/ezloNag.c b/src/ezloNag.c index 7d537a44..46c94d43 100644 --- a/src/ezloNag.c +++ b/src/ezloNag.c @@ -1,5 +1,4 @@ #include "global.h" -#include "entity.h" #include "functions.h" #include "textbox.h" #include "structures.h" diff --git a/src/fileScreen.c b/src/fileScreen.c index 58fe323f..78ed7e91 100644 --- a/src/fileScreen.c +++ b/src/fileScreen.c @@ -1,4 +1,11 @@ #include "fileScreen.h" +#include "main.h" +#include "player.h" +#include "readKeyInput.h" +#include "screen.h" +#include "menu.h" +#include "dma.h" +#include "random.h" // copy, erase, start #define NUM_FILE_OPERATIONS 3 @@ -105,7 +112,7 @@ void CreateDialogBox(u32 arg0, u32 arg1) { void sub_08050384(void) { sub_0801C4A0(0, 0); - MemClear32(&gBG0Buffer, sizeof(gBG0Buffer)); + MemClear(&gBG0Buffer, sizeof(gBG0Buffer)); gScreen.bg.bg0Updated = 1; } @@ -117,8 +124,8 @@ void sub_080503A8(u32 gfxGroup) { void SetFileSelectState(FileSelectState mode) { gUnk_02032EC0.state = mode; - MemClear32(&gBG0Buffer, sizeof(gBG0Buffer)); - MemClear32(&gBG1Buffer, sizeof(gBG1Buffer)); + MemClear(&gBG0Buffer, sizeof(gBG0Buffer)); + MemClear(&gBG1Buffer, sizeof(gBG1Buffer)); } void LoadOptionsFromSave(u32 idx) { @@ -159,7 +166,7 @@ void HandleChooseFileScreen(void) { gScreen.bg.bg1yOffset = 0; gScreen.affine.bg2xOffset = 0; gScreen.affine.bg2yOffset = 0; - MemClear32(&gChooseFileState, sizeof(gChooseFileState)); + MemClear(&gChooseFileState, sizeof(gChooseFileState)); } HideButtonR(); @@ -184,17 +191,17 @@ static void HandleFileScreenEnter(void) { sub_0801DA90(1); sub_080A3210(); - MemClear32((void*)VRAM, 0x80); // clear palettes + MemClear((void*)VRAM, 0x80); // clear palettes MessageInitialize(); EraseAllEntities(); sub_08080668(); sub_080ADD30(); sub_0801CFA8(0); - MemClear32(&gUnk_0200AF00, sizeof(gUnk_0200AF00)); - MemClear32(&gUnk_02019EE0, sizeof(gUnk_02019EE0)); + MemClear(&gUnk_0200AF00, sizeof(gUnk_0200AF00)); + MemClear(&gUnk_02019EE0, sizeof(gUnk_02019EE0)); gUnk_02019EE0.unk3 = 7; gUnk_02019EE0.unk6 = gUnk_02000000->gameLanguage > LANGUAGE_EN ? 3 : 0; - MemClear32(&gUnk_02032EC0, sizeof(gUnk_02032EC0)); + MemClear(&gUnk_02032EC0, sizeof(gUnk_02032EC0)); gUnk_02032EC0.lastState = 8; SetFileSelectState(STATE_NONE); InitDMA(); @@ -284,7 +291,7 @@ void sub_0805070C(void) { var0->unk8 = gUnk_02000D00; for (i = 0; i < NUM_SAVE_SLOTS; i++) { var0->unk6 = 0; - MemClear32(var0->unk8, 0x200); + MemClear(var0->unk8, 0x200); playerName = &gUnk_02019EE0.saves[i].playerName[0]; for (j = 0; j < FILENAME_LENGTH; j++) { sub_0805F7DC(playerName[j], var0); @@ -489,7 +496,7 @@ void sub_08050B3C(u16*); void sub_08050AFC(u32 idx) { SetActiveSave(idx); - MemClear32(&gBG1Buffer, sizeof(gBG1Buffer)); + MemClear(&gBG1Buffer, sizeof(gBG1Buffer)); if (gUnk_02019EE0.saveStatus[idx] == SAVE_VALID) { sub_08050B3C(&gBG1Buffer.unk29C); } @@ -645,7 +652,7 @@ void HandleFileLanguageSelect(void) { } void sub_08050DB8(void) { - MemClear32(&gBG2Buffer, sizeof(gBG2Buffer)); + MemClear(&gBG2Buffer, sizeof(gBG2Buffer)); sub_080503A8(0xc); gMenu.field_0x4 = gUnk_02000000->gameLanguage; sub_080A7114(1); @@ -980,7 +987,6 @@ u32 sub_080514BC(u32 a1) { switch (a1) { default: case 0x0: - return c - 0x33; case 0xe: return c - 0x33; case 0xf: @@ -1186,7 +1192,7 @@ void sub_0805194C(u32 save_idx) { gUnk_02019EE0.saveStatus[save_idx] = 0; save = &gUnk_02019EE0.saves[save_idx]; - MemClear32(save, sizeof(*save)); + MemClear(save, sizeof(*save)); save->messageSpeed = 1; save->brightnessPref = 1; save->stats.health = 24; diff --git a/src/flags.c b/src/flags.c index 6f1d5d56..2129ae01 100644 --- a/src/flags.c +++ b/src/flags.c @@ -2,7 +2,6 @@ #include "room.h" #include "flags.h" #include "area.h" -#include "room.h" extern u32 ReadBit(u32*, u32); extern u32 CheckBits(u32*, u32, u32); diff --git a/src/game.c b/src/game.c index 8d4654b0..4d02bdcb 100644 --- a/src/game.c +++ b/src/game.c @@ -1,7 +1,7 @@ #include "global.h" #include "screen.h" #include "structures.h" -#include "functions.h" +#include "dma.h" #include "screen.h" #include "entity.h" #include "player.h" @@ -9,10 +9,13 @@ #include "main.h" #include "flags.h" #include "save.h" +#include "readKeyInput.h" #include "fileScreen.h" +#include "functions.h" extern u8 gArea; extern Entity gPlayerEntity; +extern u32 gUnk_03000B80; extern u32 gUnk_03003FC0; extern u16 gWalletSizes[4]; @@ -218,7 +221,7 @@ NONMATCH("asm/non_matching/game/sub_08052418.inc", void sub_08052418(int param_1 int i; struct_080FCA8C temp; - MemClear32(&gBG1Buffer, 0x800); + MemClear(&gBG1Buffer, 0x800); gUnk_020227E8._0[0].WORD = 0xf; gUnk_020227E8._0[2].WORD = 0xf; gUnk_020227E8._0[4].WORD = 0xf; @@ -242,7 +245,7 @@ void InitializePlayer(void) { MemFill32(0xffffffff, &gPlayerState.field_0x40, 0x40); pl = &gPlayerEntity; - MemClear32((void*)pl, 0x88); + MemClear((void*)pl, 0x88); gRoomControls.cameraTarget = pl; gPlayerState.playerAction = gUnk_080FCAC8[gScreenTransition.field_0xf]; if (!CheckGlobalFlag(0x14)) { @@ -298,7 +301,7 @@ u32 sub_08052654() { return (gArea >> 7) & 1; } -u32 CheckIsDungeon() { +u32 CheckIsDungeon(void) { return (gArea >> 2) & 1; } diff --git a/src/input.c b/src/input.c index c187d598..6c1179f4 100644 --- a/src/input.c +++ b/src/input.c @@ -1,5 +1,4 @@ #include "global.h" -#include "entity.h" #include "readKeyInput.h" static void StoreKeyInput(Input*, u32); diff --git a/src/intro.c b/src/intro.c index 891544d3..4fd85e48 100644 --- a/src/intro.c +++ b/src/intro.c @@ -1,7 +1,7 @@ #include "global.h" -#include "menu.h" #include "main.h" #include "entity.h" +#include "dma.h" #include "functions.h" #include "readKeyInput.h" #include "screen.h" @@ -55,7 +55,7 @@ static const u16 sLightRaysAlphaBlends[] = { static u32 AdvanceIntroSequence(u32 transition) { gUnk_02032EC0.lastState = transition; gMain.funcIndex = 2; - MemClear32(&gIntroState, sizeof(gIntroState)); + MemClear(&gIntroState, sizeof(gIntroState)); DoFade(7, 8); } @@ -64,7 +64,7 @@ void HandleIntroScreen(void) { switch (gMain.funcIndex) { case 0: MessageInitialize(); - MemClear32(&gUnk_02032EC0, sizeof(gUnk_02032EC0)); + MemClear(&gUnk_02032EC0, sizeof(gUnk_02032EC0)); AdvanceIntroSequence(0); break; case 1: diff --git a/src/item.c b/src/item.c index efe29411..fa23bd31 100644 --- a/src/item.c +++ b/src/item.c @@ -1,6 +1,7 @@ #include "global.h" #include "entity.h" #include "item.h" +#include "functions.h" // TODO - How does this relate to PlayerItemFunctions? Is this just a lookup table? void (*const gItemFunctions[])(ItemBehavior*, u32) = { @@ -11,7 +12,6 @@ void (*const gItemFunctions[])(ItemBehavior*, u32) = { }; extern void sub_08077E78(ItemBehavior*, u32); -extern void SoundReq(u32); extern void sub_08078F60(void); extern void sub_08077D38(ItemBehavior*, u32); extern void sub_0805E544(void); @@ -49,7 +49,7 @@ void OcarinaUse(ItemBehavior *beh, u32 arg1) gPlayerEntity.field_0x7a = 2; gPlayerState.flags.all |= 0x10000000; gPlayerState.field_0x27[0] = 0xff; - gUnk_02034490 = 1; + gUnk_02034490[0] = 1; bVar1 = (8 >> arg1); gPlayerState.field_0xa |= bVar1; gPlayerState.keepFacing |= bVar1; diff --git a/src/item11.c b/src/item11.c index 78d4168b..f2ad2f16 100644 --- a/src/item11.c +++ b/src/item11.c @@ -1,11 +1,10 @@ #include "global.h" #include "entity.h" #include "player.h" +#include "functions.h" -extern void DeleteThisEntity(); extern void sub_08078CD0(Entity*); extern void sub_08018FA0(Entity*); -extern u32 sub_0801766C(Entity*); extern void sub_08018F6C(Entity*); extern void (*const gUnk_080B3DD0[])(Entity*); diff --git a/src/loadRoom.c b/src/loadRoom.c index 04b8e02c..e5f9e636 100644 --- a/src/loadRoom.c +++ b/src/loadRoom.c @@ -1,10 +1,9 @@ #include "global.h" #include "room.h" #include "flags.h" +#include "functions.h" -void LoadRoomEntityList(EntityData* dat); extern void sub_0804B058(EntityData* dat); -extern void LoadRoomTileEntities(EntityData* dat); extern void sub_0801AC98(); extern u32 sub_08049D1C(u32); extern Entity* LoadRoomEntity(EntityData*); diff --git a/src/main.c b/src/main.c index 71c1347b..c05d9945 100644 --- a/src/main.c +++ b/src/main.c @@ -1,4 +1,5 @@ #include "global.h" +#include "dma.h" #include "functions.h" #include "structures.h" #include "main.h" @@ -36,7 +37,7 @@ void MainLoop(void) { MessageInitialize(); sub_080ADD30(); gRand = 0x1234567; - MemClear32(&gMain, sizeof(gMain)); + MemClear(&gMain, sizeof(gMain)); InitScreen(SCREEN_INTRO); while (1) { ReadKeyInput(); @@ -92,7 +93,7 @@ static void sub_08055F70(void) { *(vu16*)BG_PLTT = 0x7FFF; REG_WAITCNT = WAITCNT_PREFETCH_ENABLE | WAITCNT_WS0_S_1 | WAITCNT_WS0_N_3; size = 0x3FFD0; - MemClear32(gUnk_02000030, size); + MemClear(gUnk_02000030, size); size = (u32)gUnk_080B2CD8 - (u32)sub_080B197C; if (size != 0) { MemCopy(sub_080B197C, gUnk_030056F0, size); @@ -185,7 +186,7 @@ NONMATCH("asm/non_matching/sub_080560B8.inc", void sub_080560B8(void)) { b = 1; } if (b != 0) { - MemClear32((u8*)&gUnk_02000010.signature, 0x20); + MemClear((u8*)&gUnk_02000010.signature, 0x20); gUnk_02000010.signature = SIGNATURE; } } diff --git a/src/manager/manager1.c b/src/manager/manager1.c index 2b06a48f..45e1b000 100644 --- a/src/manager/manager1.c +++ b/src/manager/manager1.c @@ -1,12 +1,11 @@ #include "global.h" #include "entity.h" #include "screen.h" +#include "functions.h" -extern void LoadGfxGroup(u32); extern void sub_08056250(void); extern void sub_080570B8(Entity*); void sub_080570F8(void); -extern void sub_08052D74(void*, void*, void*); extern void (*const gUnk_08107C5C[])(Entity*); extern void (*const gUnk_08107C48[])(Entity*); diff --git a/src/manager/manager15.c b/src/manager/manager15.c index 66e92559..2707be06 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -78,7 +78,7 @@ extern Entity gUnk_080E4C08; void sub_0805A370(Manager15* this) { if (this->manager.unk_0d) { - LoadRoomEntityList(&gUnk_080E4C08); + LoadRoomEntityList((EntityData*)&gUnk_080E4C08); this->manager.action = 3; SoundReq(0x80100000); } @@ -295,7 +295,6 @@ void sub_0805A758(Manager15* this) { } extern void sub_0805E4E0(Manager*, u32); -extern void sub_08077B20(void); void sub_0805A76C(Manager15* this) { if ((gPlayerEntity.currentHealth != 0) && (gPlayerEntity.height.HALF.HI == 0) && (!gPlayerState.field_0x2c)) { @@ -364,7 +363,6 @@ void sub_0805A804(Manager15* this) { } void sub_0805AAC8(Manager15*); -extern void sub_08052D74(void*, void*, void*); void sub_0805A89C(Manager15* this) { sub_0805E3A0(this, 6); diff --git a/src/manager/manager1A.c b/src/manager/manager1A.c index 46acfb2e..7e1b0994 100644 --- a/src/manager/manager1A.c +++ b/src/manager/manager1A.c @@ -4,6 +4,7 @@ #include "entity.h" #include "room.h" #include "screen.h" +#include "dma.h" #include "functions.h" typedef struct { @@ -65,13 +66,12 @@ u32 sub_0805B1CC(Manager1A*); void sub_0805B210(Manager1A*); void sub_0805B2B0(Manager1A*); void sub_0805B328(Manager1A*); -void sub_0805BC4C(void); void sub_0805B048(Manager1A* this) { struct_08108764* tmp; Entity* obj; sub_0805E3A0(&this->manager, 6); - MemClear32(&this->unk_20, 0x20); + MemClear(&this->unk_20, 0x20); this->manager.action = 1; this->unk_3f = gRoomControls.roomID; tmp = &gUnk_08108764[this->manager.unk_0a]; @@ -224,5 +224,5 @@ void sub_0805B390(u32 unk1) { tmp->type = 0x9; tmp->subtype = 0x1A; tmp->unk_0a = unk1; - AppendEntityToList(tmp, 6); + AppendEntityToList((Entity*)tmp, 6); } diff --git a/src/manager/manager1E.c b/src/manager/manager1E.c index 363c3113..fad34ef4 100644 --- a/src/manager/manager1E.c +++ b/src/manager/manager1E.c @@ -1,7 +1,6 @@ #include "global.h" #include "manager.h" #include "flags.h" -#include "player.h" #include "functions.h" typedef struct { @@ -17,7 +16,6 @@ typedef struct { enum Manager1E_State { Init, ObserveRegion }; -void Manager1E_Handler(Manager1E*); void Manager1E_Init(Manager1E*); void Manager1E_ObserveRegion(Manager1E*); diff --git a/src/manager/manager2.c b/src/manager/manager2.c index 56c81310..b6e0eef7 100644 --- a/src/manager/manager2.c +++ b/src/manager/manager2.c @@ -1,9 +1,9 @@ #include "global.h" #include "entity.h" #include "screen.h" +#include "functions.h" extern void sub_080576A0(); -extern void sub_08052D74(); extern void sub_0805754C(Entity*); void Manager2(Entity* this) { diff --git a/src/manager/manager20.c b/src/manager/manager20.c index b8a20f5f..f7ca8a0b 100644 --- a/src/manager/manager20.c +++ b/src/manager/manager20.c @@ -3,6 +3,7 @@ #include "flags.h" #include "entity.h" #include "room.h" +#include "functions.h" typedef struct { Manager manager; @@ -17,8 +18,6 @@ typedef struct { u16 unk_3e; } Manager20; -extern void DeleteManager(Manager20*); - void sub_0805B7A0(Manager20* this) { Entity* tmp = CreateObject(this->manager.unk_0e, this->manager.unk_0a, this->manager.unk_0b); if (!tmp) @@ -35,5 +34,5 @@ void sub_0805B7A0(Manager20* this) { } tmp->x.HALF.HI += gRoomControls.roomOriginX; tmp->y.HALF.HI += gRoomControls.roomOriginY; - DeleteManager(this); + DeleteManager((Manager*)this); } diff --git a/src/manager/manager27.c b/src/manager/manager27.c index b2e0e15a..5ef41a57 100644 --- a/src/manager/manager27.c +++ b/src/manager/manager27.c @@ -4,7 +4,6 @@ #include "functions.h" extern u32 sub_0805C920(Entity*); -extern void LoadPaletteGroup(u32); void sub_0805C874(Entity*); void sub_0805C894(Entity*); diff --git a/src/manager/manager28.c b/src/manager/manager28.c index af59e09e..f6790624 100644 --- a/src/manager/manager28.c +++ b/src/manager/manager28.c @@ -11,7 +11,6 @@ typedef struct { } d; } Manager28; -void Manager28_Entry(Manager28*); void Manager28_Init(Manager28*); void Manager28_Main(Manager28*); u32 Manager28_FindMatchingEntities(Manager28*); @@ -47,7 +46,7 @@ void Manager28_Init(Manager28* this) { /* tmp3->enemies[tmp4] = this->enemies[tmp4]; */ /* } */ tmp3->d = this->d; - AppendEntityToList(tmp3, 6); + AppendEntityToList((Entity*)tmp3, 6); } } DeleteManager(&this->manager); diff --git a/src/manager/manager3.c b/src/manager/manager3.c index 15676771..acd83825 100644 --- a/src/manager/manager3.c +++ b/src/manager/manager3.c @@ -4,6 +4,7 @@ #include "area.h" #include "room.h" #include "player.h" +#include "random.h" #include "functions.h" // Facilitates the usage of minish portals. diff --git a/src/manager/manager30.c b/src/manager/manager30.c index 8cfde746..84101118 100644 --- a/src/manager/manager30.c +++ b/src/manager/manager30.c @@ -19,8 +19,6 @@ typedef struct Manager30 { u16 flag_reset; } Manager30; -extern void sub_0807B7D8(u32, u32, u32); - enum { INIT, IN_PROGRESS, FAILED, SUCCEEDED }; /* diff --git a/src/manager/manager39.c b/src/manager/manager39.c index 31cbda7e..b8bd327c 100644 --- a/src/manager/manager39.c +++ b/src/manager/manager39.c @@ -3,6 +3,8 @@ #include "screen.h" #include "area.h" #include "textbox.h" +#include "dma.h" +#include "game.h" #include "functions.h" typedef struct { @@ -25,9 +27,7 @@ extern const u8 gUnk_08108E30[0x18]; extern const u8 gUnk_08108E48[0x18]; extern const u8 gUnk_08108E60[]; -extern void MemCopy(const void* src, void* dest, u32 size); extern void sub_0805F46C(void*, const void*); -extern u32 CheckIsDungeon(void); extern void sub_0805E5B4(void); void sub_0805E140(Manager39*); @@ -68,7 +68,7 @@ void sub_0805E18C(Manager39* this) { } void sub_0805E1D8(Manager39* this) { - MemClear32(&gUnk_02034DF0, 0x80); + MemClear(&gUnk_02034DF0, 0x80); gScreen.bg.bg0Updated = 1; DeleteThisEntity(); } @@ -81,7 +81,7 @@ void sub_0805E1F8(u32 unk0, u32 unk1) { u8 unk_06[3]; } PACKED tmp; const u8* tmp2; - MemClear32(&gUnk_02034DF0, 0x80); + MemClear(&gUnk_02034DF0, 0x80); MemCopy(gUnk_08108E60, &tmp, sizeof(tmp)); tmp.unk_04 = unk0 >> 8; tmp.unk_05 = unk0; diff --git a/src/manager/manager4.c b/src/manager/manager4.c index 2ebdf7d3..3d396682 100644 --- a/src/manager/manager4.c +++ b/src/manager/manager4.c @@ -3,6 +3,7 @@ #include "room.h" #include "manager.h" #include "structures.h" +#include "functions.h" extern void (*gUnk_08107C70[])(Manager*); @@ -12,8 +13,6 @@ void sub_08057854(Manager* this) { extern void sub_080805F8(void); -extern void SetTile(u32, u32, u32); - extern DiggingCaveEntrance* sub_08057AA8(DiggingCaveEntrance*, int); void sub_0805786C(Manager* this) { @@ -101,8 +100,6 @@ u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) { } #endif -extern void sub_0805E5A8(void); -extern void DeleteManager(Manager*); extern void sub_08080930(); void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { diff --git a/src/manager/manager5.c b/src/manager/manager5.c index ec7ee400..4681e754 100644 --- a/src/manager/manager5.c +++ b/src/manager/manager5.c @@ -34,8 +34,6 @@ void sub_08057AD0(Manager5* this) { void sub_08057CA4(Manager5*, u32, u32); -extern void DeleteManager(Manager*); - void sub_08057AE8(Manager5* this) { u32 tmp; tmp = (this->manager.unk_0b & 0x3) << 1; diff --git a/src/manager/manager6.c b/src/manager/manager6.c index aa5cb48a..ff32b405 100644 --- a/src/manager/manager6.c +++ b/src/manager/manager6.c @@ -1,12 +1,9 @@ #include "global.h" -#include "entity.h" #include "player.h" #include "manager.h" +#include "functions.h" -extern void* GetCurrentRoomProperty(u8); -extern u32 CheckPlayerInRegion(u16, u16, u8, u8); extern void DoExitTransition(void*); -extern void DeleteManager(Entity*); void sub_08057CB4(Manager6* this) { u32 tmp; @@ -15,7 +12,7 @@ void sub_08057CB4(Manager6* this) { this->manager.action = 1; this->warpList = GetCurrentRoomProperty(this->manager.unk_0a); if (!this->warpList) { - DeleteManager((Entity*)this); + DeleteManager(&this->manager); return; } } diff --git a/src/manager/manager7.c b/src/manager/manager7.c index 3a2cbb1a..089dab1b 100644 --- a/src/manager/manager7.c +++ b/src/manager/manager7.c @@ -12,12 +12,9 @@ typedef struct { void sub_08057E30(); u32 sub_08057E40(); -void sub_08057E64(); void sub_08057E7C(u32); -extern void sub_08052D74(); extern u32 sub_08056300(const u16*); -extern void sub_0805E3A0(); extern const u8 gGlobalGfxAndPalettes[]; diff --git a/src/manager/manager8.c b/src/manager/manager8.c index c6cd5075..aa80b627 100644 --- a/src/manager/manager8.c +++ b/src/manager/manager8.c @@ -17,8 +17,6 @@ void sub_08057EFC(); void sub_08058034(void); void sub_08058084(u16*, u16*); -extern void sub_08052D74(void*, void*, void*); - extern u16 gMapDataTopSpecial[]; void sub_08057ED0(Manager8* this) { diff --git a/src/manager/manager9.c b/src/manager/manager9.c index 70d117fb..aebc9a96 100644 --- a/src/manager/manager9.c +++ b/src/manager/manager9.c @@ -15,7 +15,6 @@ void sub_08058210(Manager9*); u32 sub_08058244(int); void sub_080582A0(u32, u32*, u8*); void sub_080582F8(u8*, u8*); -void sub_08058324(); extern u32 gUnk_02006F00[]; extern u8 gBG3Buffer[]; diff --git a/src/manager/managerA.c b/src/manager/managerA.c index 3033dd21..4b4a2ce4 100644 --- a/src/manager/managerA.c +++ b/src/manager/managerA.c @@ -4,6 +4,7 @@ #include "manager.h" #include "flags.h" #include "area.h" +#include "functions.h" void sub_08058398(ManagerA*); void sub_080583EC(ManagerA*); @@ -17,8 +18,6 @@ void sub_08058380(ManagerA* this) { gUnk_081081F4[this->manager.action](this); } -extern void sub_0805E3A0(Manager*, u32); - void sub_08058398(ManagerA* this) { if (CheckFlags(this->unk_3c) != 0) { @@ -36,8 +35,6 @@ void sub_08058398(ManagerA* this) { } } -void sub_08058408(ManagerA*); - void sub_080583EC(ManagerA* this) { if (CheckFlags(this->unk_3e) != 0) { this->manager.action = 2; @@ -45,12 +42,8 @@ void sub_080583EC(ManagerA* this) { } } -extern u32 CheckPlayerInRegion(u32, u32, u32, u32); extern void sub_0805E544(void); -extern void sub_08078A90(u32); -extern void sub_08078AA8(u32, u32); extern void sub_080186C0(u16); -extern void sub_08078B48(void); u32 sub_0805848C(ManagerA*); void sub_080585DC(ManagerA*); diff --git a/src/manager/managerB.c b/src/manager/managerB.c index e6e43a12..6ea279dc 100644 --- a/src/manager/managerB.c +++ b/src/manager/managerB.c @@ -4,6 +4,7 @@ #include "entity.h" #include "room.h" #include "area.h" +#include "dma.h" #include "functions.h" /* @@ -128,8 +129,8 @@ ManagerBHelper* CreateHelper(Manager* this) { extra->manager.unk_0a = 1; extra->manager.parent = this; this->unk_0e++; - MemClear32(&extra->enemies, 0x20); - AppendEntityToList(extra, 8); + MemClear(&extra->enemies, 0x20); + AppendEntityToList((Entity*)extra, 8); } return extra; } diff --git a/src/manager/managerC.c b/src/manager/managerC.c index 72529c2f..5cf482c5 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -3,7 +3,6 @@ #include "flags.h" #include "structures.h" #include "room.h" -#include "area.h" #include "screen.h" #include "trig.h" #include "functions.h" @@ -40,12 +39,9 @@ void sub_08058A04(ManagerC*); void sub_080588F8(ManagerC*); u32 sub_08058B08(ManagerC*, u32, u32, const struct_08108228*); void sub_08058B5C(ManagerC*, u32); -void sub_08058D34(void); extern void sub_0805622C(struct BgAffineDstData*, u32, u32); -extern void sub_08052D74(void*, void*, void*); extern void sub_080044AE(Entity*, u32, u32); -extern void MemCopy(const void* src, void* dest, u32 size); extern u8 gUnk_03003DE4[0xC]; @@ -88,7 +84,7 @@ void sub_080588CC(ManagerC* this) { void nullsub_108(ManagerC* this) { } -#define ABS_DIFF_GT(a, b, c) (signed)a - b >= 0 ? a - b > c : b - a > c +#define ABS_DIFF_GT(a, b, c) ((signed)(a) - (b) >= 0 ? (a) - (b) > (c) : (b) - (a) > (c)) void sub_080588F8(ManagerC* this) { if (this->manager.unk_0f == 0) { diff --git a/src/manager/managerE.c b/src/manager/managerE.c index 0f5e9328..44bfb5a7 100644 --- a/src/manager/managerE.c +++ b/src/manager/managerE.c @@ -3,13 +3,7 @@ #include "manager.h" #include "flags.h" #include "room.h" - -extern void LoadRoomEntityList(Entity*); -extern void DeleteThisEntity(void); -extern void DeleteManager(Manager*); -extern void sub_08078A90(u32); -extern void sub_08078B48(void); -extern void SoundReq(u32); +#include "functions.h" void sub_08058E60(ManagerE* this) { if (!this->manager.action) { diff --git a/src/npc.c b/src/npc.c index d7f38b6a..4a94399b 100644 --- a/src/npc.c +++ b/src/npc.c @@ -1,5 +1,4 @@ #include "global.h" -#include "functions.h" #include "entity.h" #include "npc.h" diff --git a/src/npc/anju.c b/src/npc/anju.c index d77c5356..e0fb08c8 100644 --- a/src/npc/anju.c +++ b/src/npc/anju.c @@ -1,18 +1,9 @@ #include "global.h" #include "entity.h" #include "player.h" -#include "room.h" -#include "flags.h" -#include "sprite.h" -#include "textbox.h" #include "npc.h" #include "script.h" - -extern void sub_0805E3A0(Entity*, u32); -extern u32 sub_0806F5A4(u32); -extern void sub_0806F118(Entity*); -extern u32 sub_0801E99C(void); -extern void sub_08078784(Entity*, u32); +#include "functions.h" void Anju(Entity* this) { switch (this->action) { @@ -41,7 +32,7 @@ void Anju(Entity* this) { } void sub_0806C354(Entity* this) { - this->field_0x68.HALF.LO = sub_0801E99C(); + this->field_0x68.HALF.LO = sub_0801E99C(this); sub_08078784(this, this->field_0x68.HALF.LO); } diff --git a/src/npc/bigGoron.c b/src/npc/bigGoron.c index c51e4199..5b5aa0fa 100644 --- a/src/npc/bigGoron.c +++ b/src/npc/bigGoron.c @@ -2,16 +2,13 @@ #include "entity.h" #include "player.h" #include "structures.h" -#include "functions.h" #include "script.h" +#include "random.h" +#include "functions.h" extern void (*gUnk_081140D4[])(Entity*); extern u16 gUnk_081140CC[]; -extern void sub_0806D0B0(Entity*); -extern void SoundReq(u32); -extern void sub_0806D02C(Entity*); -extern Entity* FindEntityInListByForm(u32, u32, u32, u32, u32); void BigGoron(Entity* this) { gUnk_081140D4[this->type](this); diff --git a/src/npc/bladeBrothers.c b/src/npc/bladeBrothers.c index b08f2e48..49a86dfc 100644 --- a/src/npc/bladeBrothers.c +++ b/src/npc/bladeBrothers.c @@ -1,12 +1,13 @@ #include "global.h" #include "entity.h" -#include "functions.h" #include "flags.h" #include "player.h" #include "room.h" #include "textbox.h" #include "save.h" #include "script.h" +#include "npc.h" +#include "functions.h" extern void (*gUnk_081115C0[])(Entity*); extern void (*gUnk_081115D0[])(Entity*); @@ -132,7 +133,7 @@ void FUN_08068b2c(Entity* this) { } void sub_08068B70(Entity* this) { - if (UpdateFuseInteraction()) { + if (UpdateFuseInteraction(this)) { this->action = 1; } } diff --git a/src/npc/carlov.c b/src/npc/carlov.c index a091f54f..92d632ed 100644 --- a/src/npc/carlov.c +++ b/src/npc/carlov.c @@ -1,15 +1,9 @@ #include "global.h" #include "entity.h" -#include "player.h" #include "room.h" -#include "flags.h" -#include "sprite.h" -#include "textbox.h" #include "npc.h" -#include "structures.h" #include "script.h" - -extern void EnqueueSFX(u32); +#include "functions.h" void Carlov(Entity* this) { if (this->action == 0) { diff --git a/src/npc/carpenter.c b/src/npc/carpenter.c index 1d8209b1..21f8db14 100644 --- a/src/npc/carpenter.c +++ b/src/npc/carpenter.c @@ -2,18 +2,11 @@ #include "entity.h" #include "sprite.h" #include "player.h" +#include "npc.h" +#include "functions.h" #include "script.h" -extern void DeleteThisEntity(); -extern u32 LoadExtraSpriteData(Entity*, SpriteLoadData*); extern SpriteLoadData gUnk_08110CA8[]; -extern void sub_0805E3A0(Entity*, u32); -extern u32 GetFacingDirection(Entity*, Entity*); -extern void sub_0806F118(Entity*); -extern u32 UpdateFuseInteraction(Entity*); -extern void SetSpriteSubEntryOffsetData2(Entity*, u32, u32); -extern void sub_0807000C(Entity*); -extern u32 sub_0806F5A4(); void Carpenter(Entity* this) { if (*(u32*)&this->cutsceneBeh == 0) { diff --git a/src/npc/cow.c b/src/npc/cow.c index 62d31597..a6452f76 100644 --- a/src/npc/cow.c +++ b/src/npc/cow.c @@ -1,22 +1,16 @@ #include "global.h" #include "entity.h" #include "player.h" +#include "random.h" +#include "npc.h" #include "functions.h" -extern void sub_0806920C(Entity*); -extern u32 sub_0805ACC0(Entity*); -extern u32 sub_0801E99C(Entity*); -extern void sub_0806924C(Entity*); -extern void sub_08078778(Entity*); -extern void sub_080787A8(Entity*, u32); -extern void sub_0806F118(Entity*); -extern void sub_080791D0(); +void sub_0806920C(Entity* ent); +void sub_0806924C(Entity* ent); + extern void (*gUnk_08111914[])(Entity*); extern void (*gUnk_08111928[])(Entity*); extern Dialog gUnk_08111938[]; -extern void SoundReq(u32); -extern u32 UpdateFuseInteraction(Entity*); -extern PlayerState gPlayerState; void Cow(Entity* ent) { gUnk_08111914[ent->action](ent); diff --git a/src/npc/dampe.c b/src/npc/dampe.c index d55840f7..6293bcd7 100644 --- a/src/npc/dampe.c +++ b/src/npc/dampe.c @@ -3,17 +3,11 @@ #include "player.h" #include "room.h" #include "flags.h" -#include "sprite.h" #include "textbox.h" #include "npc.h" +#include "functions.h" #include "script.h" -extern void sub_0805E3A0(Entity*, u32); -extern u32 sub_0806F5A4(u32); -extern void sub_0806F118(Entity*); -extern u32 sub_0801E99C(void); -extern void sub_08078784(Entity*, u32); - extern u16 gUnk_08113344[]; extern u16 gUnk_0811334A[]; @@ -44,7 +38,7 @@ void Dampe(Entity* this) { } void sub_0806BE3C(Entity* this) { - this->field_0x68.HALF.LO = sub_0801E99C(); + this->field_0x68.HALF.LO = sub_0801E99C(this); sub_08078784(this, this->field_0x68.HALF.LO); } diff --git a/src/npc/emma.c b/src/npc/emma.c index 3867cb87..f7a8577a 100644 --- a/src/npc/emma.c +++ b/src/npc/emma.c @@ -1,12 +1,12 @@ #include "global.h" #include "entity.h" #include "script.h" +#include "functions.h" extern u32 gUnk_0813AD10; extern u32 gUnk_0813AD24; extern u32 gUnk_0813AD38; -extern void sub_0805E3A0(Entity*, u32); extern void DoExitTransition(u32*); void Emma(Entity* this) { diff --git a/src/npc/epona.c b/src/npc/epona.c index a79ccd48..a3e8536f 100644 --- a/src/npc/epona.c +++ b/src/npc/epona.c @@ -2,6 +2,7 @@ #include "entity.h" #include "textbox.h" #include "player.h" +#include "npc.h" #include "functions.h" void sub_08065A64(Entity* this); @@ -43,7 +44,7 @@ void sub_08065A10(Entity* this) { } void sub_08065A34(Entity* this) { - if (UpdateFuseInteraction() != 0) { + if (UpdateFuseInteraction(this) != 0) { this->action = 1; InitAnimationForceUpdate(this, this->animationState / 2); } diff --git a/src/npc/ezloCap.c b/src/npc/ezloCap.c index d16c99f1..a7b5593e 100644 --- a/src/npc/ezloCap.c +++ b/src/npc/ezloCap.c @@ -325,7 +325,6 @@ extern ScreenTransitionData gUnk_0813ACAC; extern ScreenTransitionData gUnk_0813ACC0; extern ScreenTransitionData gUnk_0813ACD4; extern ScreenTransitionData gUnk_0813ACE8; -extern ScreenTransitionData gUnk_0813AC5C; extern ScreenTransitionData gUnk_0813ACFC; // Array of pointers to ScreenTransitionData const ScreenTransitionData* const gUnk_081141A4[] = { &gUnk_0813AB6C, &gUnk_0813ABBC, &gUnk_0813ABE4, &gUnk_0813ABF8, diff --git a/src/npc/festari.c b/src/npc/festari.c index 53093ebf..e7bb336d 100644 --- a/src/npc/festari.c +++ b/src/npc/festari.c @@ -5,9 +5,6 @@ #include "player.h" #include "script.h" -extern u32 sub_0801E99C(Entity*); -extern void sub_08078784(Entity*, u32); -extern void sub_0806F118(Entity*); extern void sub_0805FF2C(Entity*, void*); extern void (*const gUnk_08109BBC[])(Entity*); diff --git a/src/npc/forestMinish.c b/src/npc/forestMinish.c index 7bcd03f3..27d0df3d 100644 --- a/src/npc/forestMinish.c +++ b/src/npc/forestMinish.c @@ -4,22 +4,16 @@ #include "flags.h" #include "textbox.h" #include "player.h" -#include "structures.h" -#include "functions.h" #include "save.h" #include "script.h" +#include "random.h" +#include "createObject.h" +#include "structures.h" +#include "functions.h" -extern void sub_0806F118(Entity*); extern void sub_080600F0(Entity*); extern s32 sub_0806EDD8(Entity*, u32, u32); -extern u32 sub_0806F5B0(u32); -extern u32 sub_0801E99C(Entity*); -extern void sub_08078784(Entity*, u32); -extern void sub_0807000C(Entity*); extern void sub_08060158(Entity*); -extern u32 CheckKinstoneFused(u32); -extern Entity* FindEntityInListBySubtype(u32, u32, u32); -extern void DeleteEntity(Entity*); extern void ModBombs(s32); extern SpriteLoadData gUnk_0810A348; diff --git a/src/npc/gentari.c b/src/npc/gentari.c index c480de5a..cc086d8a 100644 --- a/src/npc/gentari.c +++ b/src/npc/gentari.c @@ -3,12 +3,7 @@ #include "npc.h" #include "player.h" #include "script.h" - -extern void sub_0805E3A0(Entity*, u32); -extern u32 sub_0801E99C(Entity*); -extern void sub_08078784(Entity*, u32); -extern u32 sub_0806F5A4(u32); -extern void sub_0806F118(Entity*); +#include "functions.h" void Gentari(Entity* this) { switch (this->action) { diff --git a/src/npc/goronMerchant.c b/src/npc/goronMerchant.c index 9fd402c5..b4a44355 100644 --- a/src/npc/goronMerchant.c +++ b/src/npc/goronMerchant.c @@ -89,7 +89,7 @@ void sub_08069684(void) { if (mgr != NULL) { mgr->type = 9; mgr->subtype = 0x31; - AppendEntityToList(mgr, 8); + AppendEntityToList((Entity*)mgr, 8); } } } diff --git a/src/npc/guard.c b/src/npc/guard.c index 081f9c10..d94827c4 100644 --- a/src/npc/guard.c +++ b/src/npc/guard.c @@ -5,6 +5,8 @@ #include "textbox.h" #include "room.h" #include "script.h" +#include "structures.h" +#include "functions.h" typedef struct { u32 unk; @@ -12,21 +14,14 @@ typedef struct { } struct_03003DB8; typedef struct { - u8 filler[8]; - u8 unk; -} ScreenTransition; + u32 unk; + u32 unk2; +} struct_08064050; extern void sub_08063D24(Entity*); -extern void sub_0806ED78(Entity*); -extern u32 GetFacingDirection(Entity*, Entity*); -extern u32 sub_0806F5A4(u32); extern void sub_0806EE20(Entity*); extern void sub_08064428(Entity*); -extern u32 sub_0805ACC0(Entity*); -extern void sub_0807000C(Entity*); extern void sub_0806EE04(Entity*, void*, u32); -extern Entity* sub_080A7EE0(int); -extern void sub_08078778(Entity*); void sub_08063DC8(Entity*); void sub_08063F20(Entity*); @@ -213,7 +208,7 @@ void sub_08064030(Entity* arg0, Entity* arg1) { } void sub_08064044(void) { - gScreenTransition.unk = 1; + gScreenTransition.transitioningOut = 1; } void sub_08064050(Entity* this, ScriptExecutionContext* context) { diff --git a/src/npc/mailbox.c b/src/npc/mailbox.c index 6ccdd0a8..bab9a8ba 100644 --- a/src/npc/mailbox.c +++ b/src/npc/mailbox.c @@ -1,8 +1,8 @@ #include "global.h" #include "entity.h" #include "textbox.h" +#include "functions.h" -extern void sub_0806ED78(Entity*); extern void sub_08063280(); extern void (*gMailboxBehaviors[4])(Entity*); diff --git a/src/npc/malon.c b/src/npc/malon.c index ca6d6eab..0799e8b3 100644 --- a/src/npc/malon.c +++ b/src/npc/malon.c @@ -1,9 +1,8 @@ #include "global.h" -#include "functions.h" #include "entity.h" #include "script.h" - -extern Entity gPlayerEntity; +#include "npc.h" +#include "functions.h" extern void (*gUnk_0810FF5C[])(Entity* this); extern void (*gUnk_0810FF64[])(Entity* this); diff --git a/src/npc/mayorHagen.c b/src/npc/mayorHagen.c index 38db736c..ae5f1e0e 100644 --- a/src/npc/mayorHagen.c +++ b/src/npc/mayorHagen.c @@ -1,25 +1,16 @@ #include "global.h" #include "entity.h" #include "player.h" -#include "room.h" #include "flags.h" -#include "sprite.h" -#include "textbox.h" #include "npc.h" #include "structures.h" #include "functions.h" #include "save.h" #include "script.h" -extern u32 sub_0806F5A4(u32); -extern void sub_0806F118(Entity*); -extern void sub_08078784(Entity*, u32); extern void sub_08078850(); extern u32 gUnk_08113F44; extern Dialog gUnk_08113F48[]; -extern u32 GetInventoryValue(u32); -extern u32 CheckLocalFlag(u32); -extern void SetLocalFlag(); void MayorHagen(Entity* this) { u32 v; diff --git a/src/npc/melari.c b/src/npc/melari.c index 86679811..a62b837b 100644 --- a/src/npc/melari.c +++ b/src/npc/melari.c @@ -2,20 +2,12 @@ #include "entity.h" #include "npc.h" #include "textbox.h" -#include "functions.h" #include "script.h" +#include "random.h" +#include "functions.h" extern void sub_08068780(Entity*); -extern void sub_08078778(Entity*); -extern void sub_0806F118(Entity*); -extern u32 sub_080040A8(Entity*); -extern void EnqueueSFX(u32); -extern u32 sub_0801E99C(Entity*); -extern void sub_08078784(Entity*, u32); -extern void sub_0807000C(Entity*); extern s32 sub_0806EDD8(Entity*, u32, u32); -extern void sub_080A7C18(u32, u32, u32); -extern void sub_0807CAA0(u32, u32); extern void (*const gUnk_08111530[])(Entity*); diff --git a/src/npc/milkCart.c b/src/npc/milkCart.c index b423dca7..29481848 100644 --- a/src/npc/milkCart.c +++ b/src/npc/milkCart.c @@ -1,7 +1,6 @@ #include "global.h" #include "entity.h" - -extern void sub_0806ED78(); +#include "functions.h" extern void (*gMilkCartBehaviors[2])(Entity*); diff --git a/src/npc/moblinLady.c b/src/npc/moblinLady.c index c1ddbe6a..d63d4d87 100644 --- a/src/npc/moblinLady.c +++ b/src/npc/moblinLady.c @@ -1,10 +1,5 @@ #include "global.h" #include "entity.h" -#include "player.h" -#include "room.h" -#include "flags.h" -#include "sprite.h" -#include "textbox.h" #include "npc.h" #include "script.h" diff --git a/src/npc/mutoh.c b/src/npc/mutoh.c index 2eaeb91b..5391ac8d 100644 --- a/src/npc/mutoh.c +++ b/src/npc/mutoh.c @@ -9,14 +9,6 @@ #include "save.h" #include "script.h" -extern u32 GetFacingDirection(Entity*, Entity*); -extern u32 sub_0806F5A4(u32); -extern void sub_0806F118(Entity*); -extern u32 UpdateFuseInteraction(Entity*); -extern void sub_0807000C(Entity*); -extern u32 sub_0801E99C(Entity*); -extern void sub_08078784(Entity*, u32); - extern SpriteLoadData gUnk_08110C00; extern u16 gUnk_08110C0C[]; extern Dialog gUnk_08110C10[]; diff --git a/src/npc/npc9.c b/src/npc/npc9.c index 47cc501b..23a0bd3e 100644 --- a/src/npc/npc9.c +++ b/src/npc/npc9.c @@ -1,11 +1,7 @@ #include "global.h" #include "entity.h" #include "textbox.h" - -extern void sub_08078778(Entity*); -extern void sub_0805E47C(Entity*); -extern void sub_0806ED78(Entity*); -extern void sub_0805E584(Entity*); +#include "functions.h" extern void (*const gUnk_0810C290[])(Entity*); diff --git a/src/npc/percy.c b/src/npc/percy.c index a2a8fcd8..3c5c8a01 100644 --- a/src/npc/percy.c +++ b/src/npc/percy.c @@ -10,7 +10,6 @@ extern void sub_0806B41C(Entity*); extern void sub_0806B3CC(Entity*); extern u32 sub_08002632(Entity*); -extern void sub_0801DFB4(Entity*, u32, u32, u32); extern u16* gUnk_08001A7C[40]; extern u16 gUnk_08112E54[4]; diff --git a/src/npc/postman.c b/src/npc/postman.c index 0accf073..34694306 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -10,22 +10,11 @@ #include "script.h" extern void sub_08060528(Entity*); -extern void* GetCurrentRoomProperty(u32); extern void sub_0806EE04(Entity*, void*, u32); extern void sub_080604DC(Entity*); -extern s32 sub_0806ED9C(Entity*, u32, u32); extern void sub_0806EE20(Entity*); -extern u32 sub_080040A8(Entity*); -extern u32 sub_0801E99C(Entity*); -extern void sub_0806F118(Entity*); -extern u32 sub_0806F5A4(u32); -extern u32 GetFacingDirection(Entity*, Entity*); extern void sub_080606D8(Entity*); -extern void sub_080788E0(Entity*); -extern void EnqueueSFX(u32); extern void sub_080606C0(Entity*); -extern void sub_0800451C(Entity*); -extern void sub_08078784(Entity*, u32); typedef struct { s16 x; diff --git a/src/npc/rem.c b/src/npc/rem.c index bb1d78ff..a6059865 100644 --- a/src/npc/rem.c +++ b/src/npc/rem.c @@ -3,7 +3,6 @@ #include "entity.h" #include "script.h" -extern void SoundReq(u32); extern void sub_0806A8C8(Entity*); extern void (*gUnk_08112260[])(Entity*); diff --git a/src/npc/simon.c b/src/npc/simon.c index aad57a9f..f1a683ed 100644 --- a/src/npc/simon.c +++ b/src/npc/simon.c @@ -11,9 +11,6 @@ typedef struct { } struct_0806C2A0; extern void DoExitTransition(void*); -extern void SetTileType(u32, u32, u32); -extern void DoExitTransition(void*); -extern void DoFade(u32, u32); extern void gUnk_0813AD60; extern void gUnk_0813AD74; diff --git a/src/npc/smith.c b/src/npc/smith.c index d365b222..6b55c1f7 100644 --- a/src/npc/smith.c +++ b/src/npc/smith.c @@ -1,21 +1,13 @@ #include "global.h" #include "entity.h" #include "textbox.h" -#include "functions.h" #include "save.h" #include "script.h" +#include "random.h" +#include "npc.h" +#include "functions.h" -extern u32 GetFacingDirection(Entity*, Entity*); -extern u32 sub_0806F5A4(u32); -extern void sub_0806F118(Entity*); -extern Entity* CreateFx(Entity*, u32, u32); -extern void SoundReq(u32); -extern void sub_0807000C(Entity*); -extern u32 sub_0801E99C(Entity*); -extern u32 UpdateFuseInteraction(Entity*); -extern u32 GetAnimationState(Entity*); extern void sub_08078850(Entity*, u32, u32, u32*); -extern void sub_08078784(Entity*, u32); extern void (*const gUnk_08110360[])(Entity*); extern void (*const gUnk_0811036C[])(Entity*); diff --git a/src/npc/stamp.c b/src/npc/stamp.c index 52b100d6..51b209b3 100644 --- a/src/npc/stamp.c +++ b/src/npc/stamp.c @@ -4,11 +4,7 @@ #include "functions.h" #include "script.h" -extern void sub_08078778(Entity*); -extern void sub_0805E47C(Entity*); -extern void sub_0805E584(); extern void sub_08062CA4(); -extern u32 CheckKinstoneFused(); extern void (*gStampBehaviors1[4])(Entity*); extern void (*gStampBehaviors2[2])(Entity*); diff --git a/src/npc/syrup.c b/src/npc/syrup.c index ff12fa4a..f3a1b5dc 100644 --- a/src/npc/syrup.c +++ b/src/npc/syrup.c @@ -2,17 +2,14 @@ #include "entity.h" #include "npc.h" #include "script.h" - -extern void sub_0806ED78(Entity*); -extern void sub_0805E3A0(Entity*, u32); +#include "functions.h" extern void (*gUnk_081121D4[])(Entity*); extern SpriteLoadData gUnk_081121C4; extern SpriteLoadData gUnk_081121B4; -extern u32 gScreenTransition; + extern void sub_0806A26C(Entity*); -extern void sub_080042BA(Entity*, u32); void Syrup(Entity* this) { gUnk_081121D4[this->action](this); @@ -37,7 +34,7 @@ void sub_0806A1F8(Entity* this) { void sub_0806A234(Entity* this) { sub_0807DD94(this, 0); if ((this->field_0x82.HWORD & 4) != 0) { - if ((gScreenTransition & 7) == 0) { + if ((gScreenTransition.frameCount & 7) == 0) { sub_0806A26C(this); } sub_080042BA(this, 2); diff --git a/src/npc/talon.c b/src/npc/talon.c index c3a680a2..f9c7d66f 100644 --- a/src/npc/talon.c +++ b/src/npc/talon.c @@ -1,9 +1,11 @@ #include "global.h" #include "entity.h" #include "textbox.h" -#include "functions.h" #include "player.h" #include "script.h" +#include "npc.h" +#include "random.h" +#include "functions.h" extern void (*gUnk_0810FEC4[])(Entity* this); extern void (*gUnk_0810FEBC[])(Entity* this); @@ -83,7 +85,7 @@ void sub_08065648(Entity* this) { } void sub_08065680(Entity* this) { - if (UpdateFuseInteraction() != 0) { + if (UpdateFuseInteraction(this) != 0) { this->action = this->field_0x68.HALF.HI; InitAnimationForceUpdate(this, this->field_0x6a.HALF.LO); } diff --git a/src/npc/teachers.c b/src/npc/teachers.c index d04d2ab6..bf7e6983 100644 --- a/src/npc/teachers.c +++ b/src/npc/teachers.c @@ -1,17 +1,12 @@ #include "global.h" #include "entity.h" #include "player.h" -#include "functions.h" #include "save.h" #include "script.h" +#include "npc.h" +#include "functions.h" extern SpriteLoadData gUnk_08113910[]; -extern u32 GetFacingDirection(Entity*, Entity*); -extern u32 sub_0806F5A4(u32); -extern void sub_0806F118(Entity*); -extern void sub_08078784(Entity*, u32); -extern u32 UpdateFuseInteraction(Entity*); -extern void sub_0807000C(Entity*); extern Dialog gUnk_08113930[]; diff --git a/src/npc/townMinish.c b/src/npc/townMinish.c index e50ef501..df2d8fe3 100644 --- a/src/npc/townMinish.c +++ b/src/npc/townMinish.c @@ -7,17 +7,12 @@ #include "save.h" #include "script.h" -extern void InitializeAnimation(Entity*, u32); -extern u32 LoadExtraSpriteData(Entity*, SpriteLoadData*); - extern u32 sub_080002C0(); extern void sub_0806ACC4(Entity*); extern void sub_0806AEA8(); extern void sub_0806AEE4(Entity*); extern void sub_0806AFE8(Entity*, ScriptExecutionContext*); extern s32 sub_0806EDD8(Entity*, u32, u32); -extern u32 sub_0806F5B0(u32); -extern void sub_08078784(Entity*, u32); extern void sub_08078850(Entity*, u32, u32, u32*); extern u8 gUnk_081125F4[12]; diff --git a/src/npc/townsperson.c b/src/npc/townsperson.c index d8b70298..fc99bac6 100644 --- a/src/npc/townsperson.c +++ b/src/npc/townsperson.c @@ -4,10 +4,11 @@ #include "player.h" #include "textbox.h" #include "flags.h" -#include "structures.h" -#include "functions.h" #include "save.h" #include "script.h" +#include "random.h" +#include "structures.h" +#include "functions.h" typedef struct { u8 frame1; @@ -19,17 +20,8 @@ typedef struct { extern void (*const gUnk_0810B774[])(Entity*); extern void (*const gUnk_0810B77C[])(Entity*); extern void sub_08061CB4(Entity*, u32); -extern u32 sub_0805ACC0(Entity*); -extern u32 sub_0801E99C(Entity*); extern void sub_08061D64(Entity*); -extern void sub_0806F118(Entity*); -extern u32 sub_0806F5A4(u32); -extern u32 GetFacingDirection(Entity*, Entity*); extern void sub_08062048(Entity*); -extern void sub_08078784(Entity*, u32); -extern void sub_08078778(Entity*); -extern u32 sub_0806F5B0(u32); -extern void ResolveEntityOnTop(Entity*, Entity*); extern void sub_08078850(Entity*, u32, u8, u32*); extern SpriteLoadData* gUnk_0810B6EC[]; diff --git a/src/npc/wheaton.c b/src/npc/wheaton.c index 07697274..1d2170a8 100644 --- a/src/npc/wheaton.c +++ b/src/npc/wheaton.c @@ -1,9 +1,8 @@ #include "global.h" #include "entity.h" #include "script.h" +#include "functions.h" -extern void sub_0805E3A0(Entity*, u32); -extern void ResolveEntityOnTop(Entity*, Entity*); extern Hitbox gUnk_0810C3C0; void Wheaton(Entity* this) { diff --git a/src/npc/windTribespeople.c b/src/npc/windTribespeople.c index ea09f484..65968f30 100644 --- a/src/npc/windTribespeople.c +++ b/src/npc/windTribespeople.c @@ -8,15 +8,7 @@ #include "save.h" #include "script.h" -extern u32 LoadExtraSpriteData(Entity*, SpriteLoadData*); extern void sub_0806C7D4(Entity*); -extern void sub_0806F118(Entity*); -extern u32 sub_0801E99C(); -extern void sub_08078784(Entity*, u32); -extern void SetExtraSpriteFrame(Entity*, u32, u32); -extern void SetSpriteSubEntryOffsetData2(Entity*, u32, u32); -extern void SetSpriteSubEntryOffsetData1(Entity*, u32, u32); -extern void sub_0807000C(Entity*); extern void (*const gUnk_08113A7C[])(Entity*); extern void (*const gUnk_08113A8C[])(Entity*, ScriptExecutionContext*); diff --git a/src/npc/zelda.c b/src/npc/zelda.c index af6ec1c7..88fb53c3 100644 --- a/src/npc/zelda.c +++ b/src/npc/zelda.c @@ -5,20 +5,11 @@ #include "flags.h" #include "script.h" -extern void PrependEntityToList(Entity*, u32); extern Entity* FindEntityBySubtype(u32, u32); -void CopyPosition(Entity*, Entity*); void sub_08068680(Entity*, Entity*); void sub_08068694(Entity*, Entity*); -u32 GetAnimationState(Entity* ent); -void DeleteThisEntity(void); extern Entity* GetEntityByType(u32, u32); extern void sub_080686C4(Entity*, Entity*); -extern void SoundReq(u32); -extern void SetTileType(u32, u32, u32); - -extern Entity gPlayerEntity; -extern RoomControls gRoomControls; extern void (*gUnk_08110BD8[])(Entity* ent); extern u16 gUnk_08110BE0[]; diff --git a/src/object/archway.c b/src/object/archway.c index aa26762f..49f3f497 100644 --- a/src/object/archway.c +++ b/src/object/archway.c @@ -1,7 +1,6 @@ #include "global.h" #include "entity.h" -#include "sprite.h" -#include "functions.h" +#include "game.h" void Archway(Entity* this) { if (this->action == 0) { diff --git a/src/object/backgroundCloud.c b/src/object/backgroundCloud.c index f47d276c..aaee8cf2 100644 --- a/src/object/backgroundCloud.c +++ b/src/object/backgroundCloud.c @@ -1,5 +1,6 @@ #include "global.h" #include "entity.h" +#include "random.h" #include "functions.h" extern void (*const gUnk_08121EA4[])(Entity*); diff --git a/src/object/bell.c b/src/object/bell.c index 072b0798..3a1e7d41 100644 --- a/src/object/bell.c +++ b/src/object/bell.c @@ -1,5 +1,5 @@ -#include "entity.h" #include "global.h" +#include "entity.h" extern void (*gUnk_08123384[])(Entity*); diff --git a/src/object/bird.c b/src/object/bird.c index ca248b21..7f4bd844 100644 --- a/src/object/bird.c +++ b/src/object/bird.c @@ -1,8 +1,9 @@ #include "global.h" #include "entity.h" #include "flags.h" -#include "functions.h" #include "save.h" +#include "random.h" +#include "functions.h" extern void (*const gUnk_08123EC0[])(Entity*); extern void (*const gUnk_08123EEC[])(Entity*); diff --git a/src/object/button.c b/src/object/button.c index b98d6169..e545953c 100644 --- a/src/object/button.c +++ b/src/object/button.c @@ -105,7 +105,6 @@ void sub_08081C98(Entity* this) { } Entity* sub_08081D74(Entity*); -void sub_0807B7D8(u32, u32, u32); u32 sub_080001DA(u32, u32); u32 sub_08081CB0(Entity* this) { @@ -142,8 +141,7 @@ u32 sub_08081D28(Entity* this) { } extern u32 sub_080002E0(u32, u32); -extern Entity* gUnk_03004040[]; -extern u32 sub_080041A0(Entity*, Entity*, u32, u32); +extern Entity* gUnk_03004040[3]; u32 sub_08081E0C(Entity*); Entity* sub_08081D74(Entity* this) { @@ -171,8 +169,6 @@ Entity* sub_08081D74(Entity* this) { return ent; } -extern u32 sub_08079F8C(); - u32 sub_08081E0C(Entity* this) { Entity* tmp = &gPlayerEntity; if (tmp->height.HALF.HI != 0 || !sub_08079F8C()) { @@ -273,7 +269,6 @@ u32 sub_08081F7C(Entity* this, u32 r7) { return 1; } -extern Entity* gUnk_03004040[3]; extern void sub_080044AE(Entity*, u32, u32); void sub_08081FF8(Entity* this) { diff --git a/src/object/chestSpawner.c b/src/object/chestSpawner.c index 790d1251..3f7e6006 100644 --- a/src/object/chestSpawner.c +++ b/src/object/chestSpawner.c @@ -1,6 +1,5 @@ #include "global.h" #include "entity.h" -#include "flags.h" extern void sub_080842D8(Entity*); extern void sub_08078828(Entity*); diff --git a/src/object/cloud.c b/src/object/cloud.c index 6f10295a..0b7e7c0a 100644 --- a/src/object/cloud.c +++ b/src/object/cloud.c @@ -3,29 +3,17 @@ #include "room.h" #include "player.h" #include "flags.h" +#include "random.h" #include "functions.h" #include "structures.h" extern void sub_0809F7BC(Entity*); -extern void SoundReq(u32); -extern void sub_0809F814(u32); extern void sub_0809F7F4(Entity*); -extern void LoadRoomEntityList(); -extern void DeleteThisEntity(); -extern u32 CheckRoomFlag(u32); -extern void sub_08078A90(u32); -extern void sub_08078B48(void); -extern void sub_0806F69C(Entity*); extern void (*gUnk_08124798[])(Entity*); extern void (*gUnk_081247A0[])(Entity*); extern void (*gUnk_081247AC[])(Entity*); -extern Entity* CreateObject(u32, u32, u32); -extern void PositionEntityOnTop(Entity*, Entity*); -extern void sub_0807BB68(u32*, u32, u32); extern void* gUnk_080DD750; -extern Entity gPlayerEntity; -extern PlayerState gPlayerState; extern u8 gUnk_081247C0[]; extern u16 gUnk_081247C8[]; extern u32 gUnk_081247D0; @@ -72,7 +60,7 @@ void sub_0809F5B0(Entity* this) { if (--this->actionDelay == 0) { SoundReq(115); SetGlobalFlag(KUMOTATSUMAKI); - LoadRoomEntityList(&gUnk_080DD750); + LoadRoomEntityList((EntityData*)&gUnk_080DD750); DeleteThisEntity(); } } diff --git a/src/object/fileScreenObjects.c b/src/object/fileScreenObjects.c index 2b4914e1..97cbfd5e 100644 --- a/src/object/fileScreenObjects.c +++ b/src/object/fileScreenObjects.c @@ -1,18 +1,17 @@ #include "global.h" #include "entity.h" #include "flags.h" -#include "functions.h" #include "main.h" #include "menu.h" #include "npc.h" #include "position.h" -#include "structures.h" #include "fileScreen.h" +#include "readKeyInput.h" +#include "structures.h" +#include "functions.h" extern int sub_0807A094(int); -extern void LoadPalettes(const u8*, int, int); extern u32 sub_080041EC(int, int); -extern u32 sub_080045DA(int, int); static bool32 sub_0808E950(void); static void sub_0808EABC(Entity*); @@ -39,7 +38,6 @@ typedef struct { extern void (*const gUnk_08121C64[])(Entity*); extern void (*const gUnk_08121CCC[])(Entity*); extern const int gUnk_08133368[]; -extern const u8 gGlobalGfxAndPalettes[]; extern const struct_08121CD4 gUnk_08121CD4[][4]; extern const u8 gUnk_08121D10[]; extern const u8 gUnk_08121D38[][8]; diff --git a/src/object/floatingBlock.c b/src/object/floatingBlock.c index 661cec72..7e1ad599 100644 --- a/src/object/floatingBlock.c +++ b/src/object/floatingBlock.c @@ -1,6 +1,5 @@ #include "global.h" #include "entity.h" -#include "functions.h" void FloatingBlock(Entity* this) { if (this->action == 0) { diff --git a/src/object/giantLeaf.c b/src/object/giantLeaf.c index cf2fb1df..9badc65b 100644 --- a/src/object/giantLeaf.c +++ b/src/object/giantLeaf.c @@ -1,11 +1,10 @@ #include "global.h" #include "entity.h" #include "room.h" +#include "functions.h" -void SetTile(u32 tileIndex, s32 tilePosition, s32 layerIndex); void sub_0808D618(Entity* ent); -extern RoomControls gRoomControls; extern s16 gUnk_08121750[]; extern s16 gUnk_0812176A[]; diff --git a/src/object/greatFairy.c b/src/object/greatFairy.c index 3d511b25..3ad4a0bd 100644 --- a/src/object/greatFairy.c +++ b/src/object/greatFairy.c @@ -2,11 +2,13 @@ #include "entity.h" #include "room.h" #include "screen.h" -#include "structures.h" #include "greatFairy.h" -#include "functions.h" +#include "flags.h" #include "save.h" +#include "random.h" #include "script.h" +#include "structures.h" +#include "functions.h" enum { BEHAVIORS, diff --git a/src/object/heartContainer.c b/src/object/heartContainer.c index f6858b50..501bb7d7 100644 --- a/src/object/heartContainer.c +++ b/src/object/heartContainer.c @@ -3,9 +3,6 @@ #include "flags.h" #include "functions.h" -extern void DeleteThisEntity(); -extern void sub_08080CB4(Entity*); -extern u32 sub_08017850(Entity*); static void sub_0808E6A0(Entity*); static void sub_0808E6E4(Entity*); static void sub_0808E714(Entity*); diff --git a/src/object/jailBars.c b/src/object/jailBars.c index d046c822..505ca8e2 100644 --- a/src/object/jailBars.c +++ b/src/object/jailBars.c @@ -2,9 +2,9 @@ #include "entity.h" #include "flags.h" #include "room.h" +#include "functions.h" extern void sub_080A0960(Entity*, u32); -extern void SoundReq(u32); extern void sub_0801AF18(u8*, u32, u32); extern void (*const gUnk_08124950[])(Entity*); diff --git a/src/object/lightableSwitch.c b/src/object/lightableSwitch.c index cfbf0ba5..cbeafdd7 100644 --- a/src/object/lightableSwitch.c +++ b/src/object/lightableSwitch.c @@ -7,10 +7,7 @@ extern void sub_0809EB30(Entity*); extern void sub_0809EAD8(Entity*); extern void sub_0809EABC(Entity*); -extern void EnqueueSFX(u32); extern void sub_080A2CC0(Entity*, Entity**, u16*); -extern void SetTile(u32, u32, u32); -extern void sub_0806F69C(Entity*); extern void (*const gUnk_081243B4[])(Entity*); extern void (*const gUnk_081243BC[])(Entity*); diff --git a/src/object/lilypadSmall.c b/src/object/lilypadSmall.c index a96c49ad..ce0d8c08 100644 --- a/src/object/lilypadSmall.c +++ b/src/object/lilypadSmall.c @@ -1,7 +1,8 @@ #include "global.h" #include "entity.h" -#include "functions.h" #include "player.h" +#include "random.h" +#include "functions.h" extern void sub_080A2CC0(Entity*, Entity**, u16*); diff --git a/src/object/mask.c b/src/object/mask.c index e405df5f..b6d06206 100644 --- a/src/object/mask.c +++ b/src/object/mask.c @@ -2,26 +2,17 @@ #include "entity.h" #include "room.h" #include "random.h" - -extern Entity gPlayerEntity; -extern u16 gScreenTransition[]; +#include "structures.h" +#include "player.h" +#include "flags.h" +#include "functions.h" extern void (*MaskActionFuncs[])(Entity*); -extern void DeleteThisEntity(); - -extern bool32 CheckFlags(u16); -extern void SetFlag(u16); -extern void ClearFlag(u16); - -extern void SetTile(u32, u16, u32); - extern void sub_08000148(u16, u16, u32); extern s16 sub_080001DA(u16, u32); extern u16 sub_080002E0(u16, u32); -extern void EnqueueSFX(u32); -extern void sub_080044EC(Entity*, u16); extern void sub_0805457C(Entity*, s32); void Mask(Entity* this) { @@ -35,7 +26,7 @@ void sub_080929A4(Entity* this) { switch (this->type2 & 0xC0) { case 0x40: - field_0x0a = gScreenTransition[0x5]; + field_0x0a = gScreenTransition.field_0xa; switch (field_0x0a) { case 0x44D ... 0x44F: @@ -69,7 +60,7 @@ void sub_080929A4(Entity* this) { this->field_0x7a.HWORD = sub_080002E0(this->field_0x7c.HALF.HI, 1); - SetTile(0x4022, this->field_0x7c.HALF.HI, 1); + SetTile(0x4022, this->field_0x7c.HALF_U.HI, 1); } // Probably related to knocking it down @@ -94,7 +85,7 @@ void sub_08092A94(Entity* this) { } // Presumably, make the mask fall - SetTile((u16)this->field_0x7c.HALF.LO, this->field_0x7c.HALF.HI, 1); + SetTile(this->field_0x7c.HALF_U.LO, this->field_0x7c.HALF_U.HI, 1); sub_08000148(this->field_0x7a.HWORD, this->field_0x7c.HALF.HI, 1); diff --git a/src/object/metalDoor.c b/src/object/metalDoor.c index 88ab3308..a2a18bff 100644 --- a/src/object/metalDoor.c +++ b/src/object/metalDoor.c @@ -2,15 +2,12 @@ #include "entity.h" #include "room.h" #include "flags.h" +#include "functions.h" extern u32 sub_08083734(Entity*, u32); extern void sub_080A080C(Entity*); -extern void sub_0806F69C(Entity*); -extern void EnqueueSFX(u32); extern void sub_080A0870(Entity*); -extern void SoundReq(u32); extern u32 sub_080001DA(u32, u32); -extern void SetTile(u32, u32, u32); extern void (*const gUnk_0812493C[])(Entity*); diff --git a/src/object/minecart.c b/src/object/minecart.c index 1e239be3..5b347736 100644 --- a/src/object/minecart.c +++ b/src/object/minecart.c @@ -7,7 +7,6 @@ extern u32 sub_08091DDC(Entity*); extern u32 sub_080002B4(Entity*, u32, u32); extern u32 sub_08007DD6(u32, u32); extern void sub_08017744(Entity*); -extern u32 sub_080002B8(Entity*); extern void sub_08091C0C(Entity*); typedef struct { diff --git a/src/object/minishSizedArchway.c b/src/object/minishSizedArchway.c index cc1b63d3..240fdf95 100644 --- a/src/object/minishSizedArchway.c +++ b/src/object/minishSizedArchway.c @@ -1,7 +1,6 @@ #include "global.h" #include "entity.h" -#include "sprite.h" -#include "functions.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 78410c6c..2f08f996 100644 --- a/src/object/minishSizedEntrance.c +++ b/src/object/minishSizedEntrance.c @@ -1,9 +1,7 @@ #include "global.h" #include "entity.h" - -extern bool32 CheckIsDungeon(); -extern void sub_080AE068(Entity*); -extern void LoadFixedGFX(Entity*, u32); +#include "game.h" +#include "functions.h" extern void (*const gUnk_08122254[])(Entity*); diff --git a/src/object/object1A.c b/src/object/object1A.c index 837884a9..f028481d 100644 --- a/src/object/object1A.c +++ b/src/object/object1A.c @@ -1,5 +1,6 @@ #include "global.h" #include "entity.h" +#include "random.h" #include "functions.h" extern void sub_08086A6C(); diff --git a/src/object/object1C.c b/src/object/object1C.c index c12a6c1d..0c80735a 100644 --- a/src/object/object1C.c +++ b/src/object/object1C.c @@ -2,7 +2,6 @@ #include "entity.h" extern u32 CheckRectOnScreen(s16, s16, u32, u32); -extern void DeleteThisEntity(); void Object1C(Entity* this) { s32 iVar1; diff --git a/src/object/object1D.c b/src/object/object1D.c index 8442b227..f7343fbe 100644 --- a/src/object/object1D.c +++ b/src/object/object1D.c @@ -1,8 +1,6 @@ #include "global.h" #include "entity.h" -void DeleteThisEntity(); - extern void (*gUnk_081208A0[])(Entity*); void Object1D(Entity* this) { diff --git a/src/object/object49.c b/src/object/object49.c index 7271d2d6..92e90b5c 100644 --- a/src/object/object49.c +++ b/src/object/object49.c @@ -11,7 +11,6 @@ static void sub_0808F244(Entity*); extern void sub_0806FCF4(Entity*, u32, u32, u32); extern void sub_0808F5EC(Entity*); -extern bool32 sub_0806F3E4(Entity*); extern void (*const gUnk_08121E5C[])(Entity*); extern void (*const gUnk_08121E88[])(Entity*); diff --git a/src/object/object7E.c b/src/object/object7E.c index 6c89947e..4a128e63 100644 --- a/src/object/object7E.c +++ b/src/object/object7E.c @@ -1,6 +1,6 @@ #include "global.h" #include "entity.h" -#include "functions.h" +#include "position.h" void Object7E(Entity* this) { diff --git a/src/object/object86.c b/src/object/object86.c index 8aadd5ff..dd6d5a41 100644 --- a/src/object/object86.c +++ b/src/object/object86.c @@ -1,9 +1,10 @@ #include "global.h" #include "entity.h" +#include "position.h" #include "player.h" #include "flags.h" +#include "functions.h" -extern u32 sub_080041A0(Entity*, Entity*, u32, u32); void sub_08099ECC(Entity*); extern void sub_0805E4E0(Entity*, u32); extern void sub_0805B390(u32); diff --git a/src/object/object9E.c b/src/object/object9E.c index 858ee01b..321945b2 100644 --- a/src/object/object9E.c +++ b/src/object/object9E.c @@ -1,11 +1,11 @@ #include "global.h" #include "entity.h" +#include "position.h" #include "room.h" +#include "functions.h" extern Hitbox gUnk_080FD168; -extern void SetTile(u32, u32, u32); - void Object9E(Entity* this) { Entity* ent; u32 tilePos; diff --git a/src/object/objectA.c b/src/object/objectA.c index 3679e4bb..0e63b26f 100644 --- a/src/object/objectA.c +++ b/src/object/objectA.c @@ -2,6 +2,7 @@ #include "entity.h" #include "room.h" #include "flags.h" +#include "createObject.h" #include "functions.h" extern Hitbox gUnk_080FD170; diff --git a/src/object/objectA2.c b/src/object/objectA2.c index e79c07f8..0c3307d3 100644 --- a/src/object/objectA2.c +++ b/src/object/objectA2.c @@ -1,6 +1,7 @@ #include "global.h" #include "object.h" #include "menu.h" +#include "random.h" #include "structures.h" #include "functions.h" diff --git a/src/object/objectA8.c b/src/object/objectA8.c index 4cca37f2..c1a5193a 100644 --- a/src/object/objectA8.c +++ b/src/object/objectA8.c @@ -1,14 +1,10 @@ #include "global.h" #include "entity.h" - -extern Entity* CreateItemEntity(u32, u32, u32); -extern void DeleteThisEntity(); -extern void sub_08080CB4(Entity*); +#include "player.h" +#include "functions.h" extern void (*gUnk_08124824[])(Entity*); -extern Entity gPlayerEntity; - void ObjectA8(Entity* this) { if ((this->bitfield & 0x80) != 0) { switch (this->bitfield & 0x7f) { diff --git a/src/object/objectAF.c b/src/object/objectAF.c index c1d32b60..ad13952e 100644 --- a/src/object/objectAF.c +++ b/src/object/objectAF.c @@ -1,5 +1,6 @@ #include "global.h" #include "entity.h" +#include "position.h" extern void sub_080A0640(Entity*); diff --git a/src/object/objectB2.c b/src/object/objectB2.c index c3eff1eb..0888ed38 100644 --- a/src/object/objectB2.c +++ b/src/object/objectB2.c @@ -1,7 +1,7 @@ #include "global.h" #include "entity.h" +#include "functions.h" -extern void sub_0806F69C(Entity*); extern u32 sub_080AE4CC(Entity*, u32, u32, u32); extern void* gUnk_02027EB4; diff --git a/src/object/pinwheel.c b/src/object/pinwheel.c index d6a24471..7de61338 100644 --- a/src/object/pinwheel.c +++ b/src/object/pinwheel.c @@ -1,10 +1,9 @@ #include "global.h" #include "entity.h" -#include "functions.h" +#include "flags.h" +#include "createObject.h" extern u32 ReadBit(u32*, u32); -extern void DeleteThisEntity(); -extern u32 CheckLocalFlag(u32); extern u32 gUnk_020342F8; extern u16 gUnk_08125050[]; diff --git a/src/object/pot.c b/src/object/pot.c index 1c44efef..d589662d 100644 --- a/src/object/pot.c +++ b/src/object/pot.c @@ -16,10 +16,8 @@ extern void (*const gUnk_0811F0C4[])(Entity*); extern Hitbox gUnk_080FD338; // TODO: should be const extern Hitbox gUnk_080FD340; // TODO: should be const -extern u32 sub_08016A30(Entity*); extern u32 sub_080001DA(u32, u32); extern void sub_08078930(Entity*); -extern u32 sub_080002B8(Entity*); extern void sub_08016A6C(Entity*); void Pot(Entity* this) { diff --git a/src/object/railtrack.c b/src/object/railtrack.c index 2e3a3d66..52a74bc3 100644 --- a/src/object/railtrack.c +++ b/src/object/railtrack.c @@ -2,13 +2,12 @@ #include "entity.h" #include "room.h" #include "flags.h" +#include "functions.h" extern u32* GetLayerByIndex(u32); extern void sub_08085394(Entity*); extern void sub_0808543C(Entity*); -extern void EnqueueSFX(u32); extern u32 sub_080854A8(Entity*); -extern void SetTile(u32, u32, u32); extern void (*const gUnk_081205D0[])(Entity*); diff --git a/src/object/smoke.c b/src/object/smoke.c index ade9d2cd..86c75efc 100644 --- a/src/object/smoke.c +++ b/src/object/smoke.c @@ -1,9 +1,8 @@ #include "global.h" #include "entity.h" +#include "random.h" #include "functions.h" -extern void sub_0806F69C(Entity*); - extern void (*const gUnk_08121060[])(Entity*); extern void (*const gUnk_08121070[])(Entity*); diff --git a/src/object/thoughtBubble.c b/src/object/thoughtBubble.c index 596cb382..5e77d9e1 100644 --- a/src/object/thoughtBubble.c +++ b/src/object/thoughtBubble.c @@ -1,10 +1,6 @@ #include "global.h" #include "entity.h" - -extern void InitializeAnimation(Entity*, u32); -extern void SoundReq(u32); -extern void DeleteThisEntity(); -extern void GetNextFrame(Entity*); +#include "functions.h" extern void (*const ThoughtBubble_Behaviors[])(Entity*); diff --git a/src/object/treeHidingPortal.c b/src/object/treeHidingPortal.c index 912003b9..20833f0f 100644 --- a/src/object/treeHidingPortal.c +++ b/src/object/treeHidingPortal.c @@ -3,19 +3,17 @@ #include "flags.h" #include "player.h" #include "room.h" +#include "structures.h" +#include "functions.h" extern void sub_0809E96C(Entity*); -extern u32 sub_0800419C(Entity*, Entity*, u32, u32); extern void CreateSparkle(Entity*); extern u32 sub_0809E9A0(void); -extern void sub_08078A90(u32); extern void sub_0809E918(Entity*); -extern void SoundReq(u32); extern void CreateMinishEntrance(u32 tile); extern void (*const gUnk_08124354[])(Entity*); -extern u32 gScreenTransition; extern s16 gUnk_08124364[]; void TreeHidingPortal(Entity* this) { @@ -36,7 +34,7 @@ void sub_0809E86C(Entity* this) { if (sub_0800419C(this, &gPlayerEntity, 0x30, 0x30)) { if (CheckGlobalFlag(EZERO_1ST)) { - if (((gScreenTransition & 3) == 0)) { + if (((gScreenTransition.frameCount & 3) == 0)) { CreateSparkle(this); } } diff --git a/src/object/well.c b/src/object/well.c index fda35fed..86710ac6 100644 --- a/src/object/well.c +++ b/src/object/well.c @@ -2,11 +2,7 @@ #include "entity.h" #include "room.h" #include "player.h" - -void SetTile(u32 tileIndex, s32 tilePosition, s32 layerIndex); -s32 GetTileType(s32 tilePosition, s32 layerIndex); -void sub_08078B48(); -void DeleteThisEntity(); +#include "functions.h" extern void (*gUnk_08124C08[])(Entity*); diff --git a/src/object/windTribeFlag.c b/src/object/windTribeFlag.c index 9c769808..bc9d0fa3 100644 --- a/src/object/windTribeFlag.c +++ b/src/object/windTribeFlag.c @@ -1,6 +1,6 @@ #include "global.h" #include "entity.h" -#include "functions.h" +#include "random.h" void WindTribeFlag(Entity* this) { if (this->action == 0) { diff --git a/src/object/windcrest.c b/src/object/windcrest.c index b4b7893a..d2dc4431 100644 --- a/src/object/windcrest.c +++ b/src/object/windcrest.c @@ -4,8 +4,6 @@ #include "script.h" extern void sub_08078850(Entity*, u32, u32, u8*); -extern void SoundReq(u32); -extern Entity* CreateFx(Entity*, u32, u32); extern u8 gUnk_08125010; diff --git a/src/player.c b/src/player.c index 49949c20..b9b5f765 100644 --- a/src/player.c +++ b/src/player.c @@ -2,10 +2,11 @@ #include "entity.h" #include "player.h" #include "textbox.h" -#include "functions.h" #include "readKeyInput.h" #include "area.h" #include "save.h" +#include "game.h" +#include "functions.h" static void (*const sPlayerActions[])(Entity*); extern void (*const gUnk_0811BA60[])(Entity*); diff --git a/src/playerItem.c b/src/playerItem.c index 364502d0..7eca5211 100644 --- a/src/playerItem.c +++ b/src/playerItem.c @@ -1,4 +1,6 @@ -extern void DeleteEntity(); +#include "global.h" +#include "functions.h" + extern void sub_080A7544(); extern void sub_0801B188(); extern void sub_0801B45C(); diff --git a/src/position.c b/src/position.c index 628042c3..b5f83468 100644 --- a/src/position.c +++ b/src/position.c @@ -1,7 +1,6 @@ #include "global.h" #include "entity.h" #include "position.h" -#include "functions.h" extern u8 gUnk_08114F78[]; extern u8 gUnk_08114F80[]; diff --git a/src/room.c b/src/room.c index bd520be3..9c94aa9f 100644 --- a/src/room.c +++ b/src/room.c @@ -2,7 +2,6 @@ #include "entity.h" #include "area.h" #include "room.h" -#include "functions.h" #include "flags.h" #include "npc.h" #include "player.h" @@ -11,6 +10,8 @@ #include "structures.h" #include "save.h" #include "script.h" +#include "random.h" +#include "functions.h" void sub_0804B3C4(void* arg0) { sub_0804B29C(arg0); @@ -441,8 +442,6 @@ u32 sub_0804B8B0(void) { return 1; } -extern void* script_08010A5C[]; - void sub_0804B8F0(void) { if (CheckLocalFlag(0x91)) { ClearLocalFlag(0x91); @@ -4308,8 +4307,6 @@ void LoadHyruleTown(void) { } } -extern EntityData gUnk_080EEBAC; - void sub_0804E130(void) { if ((gSave.windcrests & 0x8000000) == 0) { LoadRoomEntityList(&gUnk_080EEBAC); @@ -4500,7 +4497,7 @@ void sub_0804E3C4() { } r = Random(); index = gUnk_080F0D58[index][r & 0x1f]; - LoadRoomEntityList(gUnk_080F0CB8[index & 0xF]); + LoadRoomEntityList((EntityData*)gUnk_080F0CB8[index & 0xF]); index >>= 4; r >>= 8; index = gUnk_080F0E08[index][r & 0x1F]; @@ -4774,7 +4771,6 @@ u32 sub_0804E7D8() { } extern EntityData gUnk_080F31D8; -extern u8 gUnk_02000070; extern u32 script_08009B30; void sub_0804E7DC(void) { @@ -5073,8 +5069,6 @@ void sub_0804EC00(void) { } } -extern EntityData gUnk_080F4E10; - void sub_0804EC98(void) { if ((s32)gSave.windcrests > -1) { LoadRoomEntityList(&gUnk_080F4E10); @@ -5208,8 +5202,6 @@ extern EntityData gUnk_080F5828; extern EntityData gUnk_080F5848; extern EntityData gUnk_080F5788; -extern u8 gBombBagSizes[]; - void sub_0804EEBC(void) { LoadRoomEntityList(&gUnk_080F5758); if (!GetInventoryValue(0x36) && CheckLocalFlagByOffset(0x200, 0x8f)) { @@ -5517,8 +5509,6 @@ void sub_0804F25C(void) { } } -extern EntityData gUnk_080F70D8; - void sub_0804F2C8(void) { if ((gSave.windcrests & 0x40000000) == 0) { LoadRoomEntityList(&gUnk_080F70D8); @@ -6032,8 +6022,6 @@ void sub_0804FBBC(void) { } } -extern EntityData gUnk_080F9304; - void sub_0804FBDC(void) { if ((gSave.windcrests & 0x2000000) == 0) { LoadRoomEntityList(&gUnk_080F9304); @@ -6450,8 +6438,6 @@ void sub_0804FE58(void) { } } -extern EntityData gUnk_080FB004; - void sub_0804FEAC(void) { if ((gSave.windcrests & 0x1000000) == 0) { LoadRoomEntityList(&gUnk_080FB004); diff --git a/src/screenDebug.c b/src/screenDebug.c index 2271e2b7..b0ce1fa6 100644 --- a/src/screenDebug.c +++ b/src/screenDebug.c @@ -1,4 +1,5 @@ #include "global.h" +#include "dma.h" #include "functions.h" #include "main.h" #include "menu.h" @@ -23,8 +24,8 @@ void HandleDebugTextScreen() { void sub_0805FA04(void) { sub_0801DA90(1); - MemClear32((void*)&gBG0Buffer, sizeof(BGBuffer)); - MemClear32((void*)&gBG3Buffer, 0x1000); + MemClear(&gBG0Buffer, sizeof(BGBuffer)); + MemClear(&gBG3Buffer, 0x1000); gScreen.lcd.displayControl = 0x940; gScreen.bg.bg0xOffset = 0; gScreen.bg.bg0yOffset = 0; @@ -33,8 +34,8 @@ void sub_0805FA04(void) { gScreen.affine.bg3Control = 0x1e0f; gScreen.affine.bg3Updated = 1; MessageInitialize(); - MemClear32((void*)&gUnk_02032EC0, sizeof(UI)); - MemClear32((void*)&gMenu, sizeof(Menu)); + MemClear((void*)&gUnk_02032EC0, sizeof(UI)); + MemClear((void*)&gMenu, sizeof(Menu)); gMenu.unk16 = gUnk_02000000->gameLanguage; sub_08053320(); sub_0801D79C(0, 0x1144); diff --git a/src/script.c b/src/script.c index 450ff8f9..a6b59b23 100644 --- a/src/script.c +++ b/src/script.c @@ -5,8 +5,10 @@ #include "script.h" #include "structures.h" #include "textbox.h" -#include "functions.h" +#include "dma.h" #include "save.h" +#include "random.h" +#include "functions.h" void InitScriptForEntity(Entity*, ScriptExecutionContext*, u16*); void InitScriptExecutionContext(ScriptExecutionContext* context, u16* script); @@ -304,9 +306,9 @@ extern ScriptExecutionContext gPlayerScriptExecutionContext; extern ScriptExecutionContext gScriptExecutionContextArray[0x20]; void InitScriptData(void) { - MemClear32(&gActiveScriptInfo, sizeof(gActiveScriptInfo)); - MemClear32(&gScriptExecutionContextArray, sizeof(gScriptExecutionContextArray)); - MemClear32(&gPlayerScriptExecutionContext, sizeof(gPlayerScriptExecutionContext)); + MemClear(&gActiveScriptInfo, sizeof(gActiveScriptInfo)); + MemClear(&gScriptExecutionContextArray, sizeof(gScriptExecutionContextArray)); + MemClear(&gPlayerScriptExecutionContext, sizeof(gPlayerScriptExecutionContext)); gActiveScriptInfo.unk_08 = 8; } @@ -324,7 +326,7 @@ ScriptExecutionContext* CreateScriptExecutionContext(void) { } void DestroyScriptExecutionContext(ScriptExecutionContext* context) { - MemClear32(context, sizeof(ScriptExecutionContext)); + MemClear(context, sizeof(ScriptExecutionContext)); } ScriptExecutionContext* StartCutscene(Entity* entity, u16* script) { @@ -354,7 +356,7 @@ void UnloadCutsceneData(Entity* entity) { void StartPlayerScript(u16* script) { Entity* player; - MemClear32(&gPlayerScriptExecutionContext, sizeof(gPlayerScriptExecutionContext)); + MemClear(&gPlayerScriptExecutionContext, sizeof(gPlayerScriptExecutionContext)); gPlayerScriptExecutionContext.scriptInstructionPointer = script; player = &gPlayerEntity; *(ScriptExecutionContext**)&player->cutsceneBeh = &gPlayerScriptExecutionContext; @@ -377,7 +379,7 @@ ScriptExecutionContext* StartCutscene2(Entity* entity, u16* script) { } void InitScriptExecutionContext(ScriptExecutionContext* context, u16* script) { - MemClear32(context, sizeof(ScriptExecutionContext)); + MemClear(context, sizeof(ScriptExecutionContext)); context->scriptInstructionPointer = script; } @@ -701,7 +703,7 @@ void ScriptCommand_CallWithArg(Entity* entity, ScriptExecutionContext* context) } void ScriptCommand_LoadRoomEntityList(Entity* entity, ScriptExecutionContext* context) { - LoadRoomEntityList(GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer)); + LoadRoomEntityList((EntityData*)GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer)); } void ScriptCommand_TestBit(Entity* entity, ScriptExecutionContext* context) { diff --git a/src/sub_0804AFF4.c b/src/sub_0804AFF4.c index 0d14ee1e..b2555120 100644 --- a/src/sub_0804AFF4.c +++ b/src/sub_0804AFF4.c @@ -2,41 +2,19 @@ extern void sub_080186EC(); extern u32* GetCurrentRoomProperty(u8); -extern u32 _call_via_r0(u32*); extern void sub_0804B16C(); void sub_0804AFF4(void) { - u32* func; + void (*func)(); sub_080186EC(); - func = GetCurrentRoomProperty(5); - if (func != NULL) { - _call_via_r0(func); + func = (void (*)())GetCurrentRoomProperty(5); + if (func) { + func(); } - func = GetCurrentRoomProperty(7); - if (func != NULL) { - _call_via_r0(func); + func = (void (*)())GetCurrentRoomProperty(7); + if (func) { + func(); } sub_0804B16C(); } - -/* - thumb_func_start sub_0804AFF4 -sub_0804AFF4: @ 0x0804AFF4 - push {lr} - bl sub_080186EC - movs r0, #5 - bl GetCurrentRoomProperty - cmp r0, #0 - beq _0804B008 - bl _call_via_r0 -_0804B008: - movs r0, #7 - bl GetCurrentRoomProperty - cmp r0, #0 - beq _0804B016 - bl _call_via_r0 -_0804B016: - bl sub_0804B16C - pop {pc} - */ diff --git a/src/sub_08050008.c b/src/sub_08050008.c index 6d8e5103..59ace866 100644 --- a/src/sub_08050008.c +++ b/src/sub_08050008.c @@ -1,14 +1,10 @@ #include "global.h" +#include "dma.h" +#include "structures.h" extern u32 gUnk_020354C0; -extern s32 gFadeControl; -extern void MemClear32(u32, u32, u32); -void sub_08050008(u32 param_1, u32 param_2, u32 param_3) { - s32* unk; - - MemClear32((u32)&gUnk_020354C0, 128, param_3); - - unk = &gFadeControl; - *(unk + 1) = -1; +void sub_08050008() { + MemClear(&gUnk_020354C0, 128); + gFadeControl.field_0x4 = -1; } diff --git a/src/sub_08050024.c b/src/sub_08050024.c index f3868b4b..fe77e3d0 100644 --- a/src/sub_08050024.c +++ b/src/sub_08050024.c @@ -12,9 +12,6 @@ extern struct_03000000 gUnk_03000000; extern u32 gUsedPalettes; -extern void sub_0801E104(); -extern void DoFade(u32, u32); - void sub_08050024() { sub_0801E104(); DoFade(5, 0x80 << 1); diff --git a/src/sub_08055E08.c b/src/sub_08055E08.c index 40c1f812..1b97f26f 100644 --- a/src/sub_08055E08.c +++ b/src/sub_08055E08.c @@ -3,7 +3,6 @@ #include "room.h" #include "functions.h" -extern u32* _call_via_r0(u32* func); extern void (*const gUnk_080FF420[])(); extern void sub_0804B0B0(u32, u32); extern void sub_08055B70(u32, u32, u32, u32); diff --git a/src/sub_0805E374.c b/src/sub_0805E374.c index 5767e6da..e035ce07 100644 --- a/src/sub_0805E374.c +++ b/src/sub_0805E374.c @@ -1,10 +1,12 @@ #include "entity.h" +#include "structures.h" + extern Entity* sub_0805E3A0(Entity*, u32); -extern u8 gScreenTransition[]; extern u8 gUnk_081091F8[]; extern u8 gUnk_081091EE[]; + Entity* sub_0805E374(Entity* param_1) { - u8 r3 = gScreenTransition[0x2C]; + u8 r3 = gScreenTransition.field_0x24[8]; u8* array = gUnk_081091F8; if (r3 != '\x02') { diff --git a/src/sub_0806F9EC.c b/src/sub_0806F9EC.c index 9f029530..8c3f17fb 100644 --- a/src/sub_0806F9EC.c +++ b/src/sub_0806F9EC.c @@ -1,13 +1,11 @@ #include "global.h" -s32 sub_0806F9EC(s16 param_1, s16 param_2) +s32 sub_0806F9EC(s16 unk_1, s16 unk_2) { + int temp; -{ - int iVar1; - - iVar1 = (s32)param_1 * (s32)param_2; - if (iVar1 < 0) { - iVar1 = iVar1 + 255; + temp = (s32)unk_1 * (s32)unk_2; + if (temp < 0) { + temp = temp + 255; } - return (iVar1 << 8) >> 16; + return (temp << 8) >> 16; } diff --git a/src/sub_0806FA04.c b/src/sub_0806FA04.c index a7eb191a..75d421be 100644 --- a/src/sub_0806FA04.c +++ b/src/sub_0806FA04.c @@ -1,15 +1,11 @@ #include "global.h" -extern s32 __divsi3(s32, s32); - -s16 sub_0806FA04(s16 param_1, s16 param_2) - -{ +s16 sub_0806FA04(s16 param_1, s16 param_2) { s16 sVar1; s32 iVar2; if (param_2 != 0) { - sVar1 = __divsi3((param_1 << 16) >> 8, param_2); + sVar1 = ((param_1 << 16) >> 8) / param_2; iVar2 = sVar1; } else { iVar2 = 0; diff --git a/src/sub_0806FA24.c b/src/sub_0806FA24.c deleted file mode 100644 index de614717..00000000 --- a/src/sub_0806FA24.c +++ /dev/null @@ -1,10 +0,0 @@ - -#include "global.h" -#include "entity.h" -void PositionRelative(Entity*, Entity*, s32, s32); - -void CopyPosition(Entity* param_1, Entity* param_2) - -{ - PositionRelative(param_1, param_2, 0, 0); -} diff --git a/src/sub_0807B7D8.c b/src/sub_0807B7D8.c index 79892047..7a8a68fc 100644 --- a/src/sub_0807B7D8.c +++ b/src/sub_0807B7D8.c @@ -1,8 +1,8 @@ #include "global.h" +#include "functions.h" extern void sub_08000152(u32); extern void sub_0807B778(u32, u32); -extern void SetTileType(u32, u32, u32); void sub_0807B7D8(u32 param_1, u32 param_2, u32 param_3) { if (param_1 == 53) { diff --git a/src/sub_0807B820.c b/src/sub_0807B820.c index 0e8bde35..54b94849 100644 --- a/src/sub_0807B820.c +++ b/src/sub_0807B820.c @@ -1,6 +1,5 @@ #include "global.h" - -extern void SetTileType(u32, u32, u32); +#include "functions.h" void sub_0807B820(u32 param_1) { SetTileType(620, param_1 + -65, 1); diff --git a/src/sub_0807B8A8.c b/src/sub_0807B8A8.c index c29c35d7..f0524685 100644 --- a/src/sub_0807B8A8.c +++ b/src/sub_0807B8A8.c @@ -1,6 +1,5 @@ #include "global.h" - -extern void SetTileType(u32, u32, u32); +#include "functions.h" void sub_0807B8A8(u32 param_1) { SetTileType(636, param_1 + -65, 1); diff --git a/src/sub_0807B930.c b/src/sub_0807B930.c index fe373eff..6ad13448 100644 --- a/src/sub_0807B930.c +++ b/src/sub_0807B930.c @@ -1,6 +1,5 @@ #include "global.h" - -extern void SetTileType(u32, u32, u32); +#include "functions.h" void sub_0807B930(int param_1) { SetTileType(652, param_1 + -65, 1); diff --git a/src/sub_0807C998.c b/src/sub_0807C998.c index 7c2afd37..608f7680 100644 --- a/src/sub_0807C998.c +++ b/src/sub_0807C998.c @@ -1,5 +1,4 @@ #include "global.h" -#include "entity.h" extern void sub_0807C960(); extern u16 gMetatilesBottom[]; diff --git a/src/textbox.c b/src/textbox.c index 8e962960..262560c4 100644 --- a/src/textbox.c +++ b/src/textbox.c @@ -1,6 +1,7 @@ #include "global.h" #include "room.h" #include "entity.h" +#include "dma.h" #include "functions.h" #include "textbox.h" #include "structures.h" @@ -83,7 +84,7 @@ void TextboxAtPosition(u32 index, u32 x, u32 y) { } void ShowTextbox(u32 index) { - MemClear32(&gTextBox, 32); + MemClear(&gTextBox, 32); gTextBox.textIndex = index; gTextBox.textSpeed = 99; gTextBox.textWindowWidth = 26; @@ -94,18 +95,18 @@ void ShowTextbox(u32 index) { } void MessageInitialize(void) { - MemClear32(&gTextBox, 32); - MemClear32(&gUnk_02022780, 168); - MemClear32(&gUnk_02036A40, 8); - MemClear32(&gUnk_02036A38, 8); - MemClear32(&gUnk_02000040, 4); + MemClear(&gTextBox, 32); + MemClear(&gUnk_02022780, 168); + MemClear(&gUnk_02036A40, 8); + MemClear(&gUnk_02036A38, 8); + MemClear(&gUnk_02000040, 4); } void MessageUpdate(void) { int iVar1; if (gTextBox.doTextBox == 1) { - MemClear32((u32*)&gUnk_02022780, sizeof(gUnk_02022780)); + MemClear((u32*)&gUnk_02022780, sizeof(gUnk_02022780)); sub_080564C8(1); } @@ -141,9 +142,9 @@ NONMATCH("asm/non_matching/textbox/sub_080564EC.inc", u32 sub_080564EC(void)) { u32 i; char c; - MemClear32((void*)&gUnk_02036A40, 8); - MemClear32((void*)&gUnk_02024030, 0x18); - MemClear32((void*)&gUnk_02022780, 0xa8); + MemClear((void*)&gUnk_02036A40, 8); + MemClear((void*)&gUnk_02024030, 0x18); + MemClear((void*)&gUnk_02022780, 0xa8); MemCopy(&gTextBox, &gUnk_02022780, 32); if (gUnk_02022780._2 == 0x63) { gUnk_02022780._2 = gUnk_02000000->messageSpeed;