From b1e38308727729a356b124a6a31837343e235499 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Tue, 12 Oct 2021 16:44:14 +0200 Subject: [PATCH] Name CreateProjectile functions --- asm/ballChainSoldier.s | 2 +- asm/bowMoblin.s | 2 +- asm/businessScrubPrologue.s | 2 +- asm/code_08049D30.s | 6 +- asm/code_0805E3B0.s | 8 +- asm/code_080A7C00.s | 4 +- asm/enemy49.s | 2 +- asm/enemy5F.s | 2 +- asm/enemy64.s | 4 +- asm/gleerok.s | 6 +- asm/gyorgFemale.s | 2 +- asm/intr.s | 7 +- asm/non_matching/mazaal/sub_08034B38.inc | 2 +- .../projectile14/sub_080AA544.inc | 134 ------------------ .../projectile1B/sub_080AB634.inc | 49 ------- .../projectile21/sub_080AC200.inc | 2 +- .../projectile22/sub_080AC5E4.inc | 12 +- asm/object98.s | 2 +- asm/objectA0.s | 2 +- asm/objectA5.s | 2 +- asm/octorokBoss.s | 8 +- asm/octorokGolden.s | 2 +- asm/scissorsBeetle.s | 2 +- asm/stalfos.s | 8 +- asm/vaatiArm.s | 2 +- asm/vaatiRebornEnemy.s | 4 +- asm/vaatiTransfigured.s | 10 +- asm/vaatiWrath.s | 2 +- asm/wizzrobeFire.s | 4 +- asm/wizzrobeIce.s | 4 +- asm/wizzrobeWind.s | 6 +- include/functions.h | 6 +- linker.ld | 4 +- src/enemy/businessScrub.c | 2 +- src/enemy/darkNut.c | 10 +- src/enemy/enemy4D.c | 2 +- src/enemy/gyorgMale.c | 6 +- src/enemy/keaton.c | 2 +- src/enemy/lakitu.c | 4 +- src/enemy/mazaalHead.c | 2 +- src/enemy/octorok.c | 2 +- src/enemy/pesto.c | 6 +- src/enemy/spearMoblin.c | 2 +- src/enemy/vaatiBall.c | 4 +- src/entity.c | 4 +- src/npc/guard.c | 2 +- src/projectile/projectile14.c | 8 +- src/projectile/projectile18.c | 2 +- src/projectile/projectile19.c | 8 +- src/projectile/projectile1B.c | 22 ++- src/projectile/projectile1C.c | 2 +- src/projectile/projectile1D.c | 2 +- src/projectile/projectile22.c | 12 +- src/projectile/projectileC.c | 2 +- src/projectile/projectileF.c | 2 +- 55 files changed, 127 insertions(+), 295 deletions(-) delete mode 100644 asm/non_matching/projectile14/sub_080AA544.inc delete mode 100644 asm/non_matching/projectile1B/sub_080AB634.inc diff --git a/asm/ballChainSoldier.s b/asm/ballChainSoldier.s index 515d4854..0f897b81 100644 --- a/asm/ballChainSoldier.s +++ b/asm/ballChainSoldier.s @@ -71,7 +71,7 @@ sub_0803E580: @ 0x0803E580 adds r0, r5, #0 movs r1, #0x19 movs r2, #0 - bl sub_0804A98C + bl CreateProjectileWithParent cmp r0, #0 beq _0803E5E4 str r5, [r0, #0x50] diff --git a/asm/bowMoblin.s b/asm/bowMoblin.s index 4ac302e7..1a005d0f 100644 --- a/asm/bowMoblin.s +++ b/asm/bowMoblin.s @@ -344,7 +344,7 @@ _0803C46C: lsrs r2, r2, #0x19 adds r0, r4, #0 movs r1, #0xd - bl sub_0804A98C + bl CreateProjectileWithParent adds r2, r0, #0 cmp r2, #0 beq _0803C49A diff --git a/asm/businessScrubPrologue.s b/asm/businessScrubPrologue.s index f1e8909d..8a48c644 100644 --- a/asm/businessScrubPrologue.s +++ b/asm/businessScrubPrologue.s @@ -261,7 +261,7 @@ _08045D60: adds r0, r4, #0 movs r1, #4 movs r2, #0 - bl sub_0804A98C + bl CreateProjectileWithParent adds r1, r0, #0 cmp r1, #0 beq _08045DF8 diff --git a/asm/code_08049D30.s b/asm/code_08049D30.s index 930b85a7..2368553e 100644 --- a/asm/code_08049D30.s +++ b/asm/code_08049D30.s @@ -1682,13 +1682,13 @@ _0804A982: mov sl, r5 pop {r4, r5, r6, r7, pc} - thumb_func_start sub_0804A98C -sub_0804A98C: @ 0x0804A98C + thumb_func_start CreateProjectileWithParent +CreateProjectileWithParent: @ 0x0804A98C push {r4, r5, r6, lr} adds r6, r0, #0 adds r0, r1, #0 adds r5, r2, #0 - bl sub_080A7EE0 + bl CreateProjectile adds r4, r0, #0 cmp r4, #0 beq _0804A9A8 diff --git a/asm/code_0805E3B0.s b/asm/code_0805E3B0.s index 5a0336df..adb78211 100644 --- a/asm/code_0805E3B0.s +++ b/asm/code_0805E3B0.s @@ -333,7 +333,7 @@ sub_0805E5C0: @ 0x0805E5C0 bl sub_0805E428 bl ClearHitboxList bl sub_0806F0A4 - ldr r1, _0805E5F4 @ =gUnk_03005F40 + ldr r1, _0805E5F4 @ =_UpdateEntities movs r0, #0 bl _call_via_r1 bl ClearAllDeletedEntities @@ -341,18 +341,18 @@ sub_0805E5C0: @ 0x0805E5C0 pop {pc} .align 2, 0 _0805E5F0: .4byte gRoomVars -_0805E5F4: .4byte gUnk_03005F40 +_0805E5F4: .4byte _UpdateEntities thumb_func_start sub_0805E5F8 sub_0805E5F8: @ 0x0805E5F8 push {lr} - ldr r1, _0805E608 @ =gUnk_03005F40 + ldr r1, _0805E608 @ =_UpdateEntities movs r0, #1 bl _call_via_r1 bl ClearAllDeletedEntities pop {pc} .align 2, 0 -_0805E608: .4byte gUnk_03005F40 +_0805E608: .4byte _UpdateEntities thumb_func_start EraseAllEntities EraseAllEntities: @ 0x0805E60C diff --git a/asm/code_080A7C00.s b/asm/code_080A7C00.s index 159cfcbb..38273dbe 100644 --- a/asm/code_080A7C00.s +++ b/asm/code_080A7C00.s @@ -411,8 +411,8 @@ _080A7EDC: _080A7EDE: pop {pc} - thumb_func_start sub_080A7EE0 -sub_080A7EE0: @ 0x080A7EE0 + thumb_func_start CreateProjectile +CreateProjectile: @ 0x080A7EE0 push {r4, r5, lr} adds r5, r0, #0 bl GetEmptyEntity diff --git a/asm/enemy49.s b/asm/enemy49.s index 771bfb54..416bbc1f 100644 --- a/asm/enemy49.s +++ b/asm/enemy49.s @@ -262,7 +262,7 @@ sub_0803D058: @ 0x0803D058 adds r4, r0, #0 movs r1, #0x16 movs r2, #0 - bl sub_0804A98C + bl CreateProjectileWithParent adds r5, r0, #0 cmp r5, #0 beq _0803D0AE diff --git a/asm/enemy5F.s b/asm/enemy5F.s index 0c4df266..4109cf33 100644 --- a/asm/enemy5F.s +++ b/asm/enemy5F.s @@ -279,7 +279,7 @@ _080484BC: ands r0, r1 strb r0, [r3] movs r0, #0x24 - bl sub_080A7EE0 + bl CreateProjectile adds r1, r0, #0 cmp r1, #0 beq _080484E6 diff --git a/asm/enemy64.s b/asm/enemy64.s index 19beed75..d70851ed 100644 --- a/asm/enemy64.s +++ b/asm/enemy64.s @@ -139,7 +139,7 @@ _08049144: bl sub_0807B7D8 _0804916E: movs r0, #0x22 - bl sub_080A7EE0 + bl CreateProjectile adds r2, r0, #0 cmp r2, #0 beq _080491E4 @@ -560,7 +560,7 @@ _0804948C: cmp r0, #0 beq _080494B2 movs r0, #0x23 - bl sub_080A7EE0 + bl CreateProjectile adds r2, r0, #0 cmp r2, #0 beq _080494B2 diff --git a/asm/gleerok.s b/asm/gleerok.s index b1e611bb..9bb5a88a 100644 --- a/asm/gleerok.s +++ b/asm/gleerok.s @@ -1838,7 +1838,7 @@ _0802DD74: adds r0, r4, #0 movs r1, #0xa movs r2, #0 - bl sub_0804A98C + bl CreateProjectileWithParent adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 @@ -1985,7 +1985,7 @@ _0802DE7E: bne _0802DEC4 adds r0, r5, #0 movs r1, #0xa - bl sub_0804A98C + bl CreateProjectileWithParent adds r1, r0, #0 str r1, [r5, #0x54] cmp r1, #0 @@ -2711,7 +2711,7 @@ _0802E40C: adds r0, r4, #0 movs r1, #0xa movs r2, #3 - bl sub_0804A98C + bl CreateProjectileWithParent _0802E422: adds r0, r4, #0 bl sub_0802E518 diff --git a/asm/gyorgFemale.s b/asm/gyorgFemale.s index 49dd9eda..cd5d79f3 100644 --- a/asm/gyorgFemale.s +++ b/asm/gyorgFemale.s @@ -29,7 +29,7 @@ sub_0804614C: @ 0x0804614C cmp r0, #0x3d bhi _08046244 movs r0, #0x22 - bl sub_080A7EE0 + bl CreateProjectile adds r1, r0, #0 movs r4, #0 strb r4, [r1, #0xa] diff --git a/asm/intr.s b/asm/intr.s index c8c67bea..ed83cba1 100644 --- a/asm/intr.s +++ b/asm/intr.s @@ -659,6 +659,7 @@ UpdateEntities: @ 0x080B21B0 ldr r8, [fp, #4] ldr r0, [fp, #8] add pc, pc, #0x60 @ =_080B2230 +@ UpdateEntities starts here ldr r1, _080B2274 @ =gUnk_080026A4 add r1, r1, r0, lsl #4 push {r4, r5, r6, r7, r8, sb, sl, fp, lr} @@ -682,12 +683,12 @@ _080B21FC: ldr r1, [sl, r1, lsl #2] mov r0, r4 mov lr, pc - bx r1 + bx r1 @ Jump to address stored in r1 _080B2224: ldr r0, [fp, #8] cmp r0, r4 bleq sub_080B1C54 -_080B2230: +_080B2230: @ jumped here if ClearAndUpdateEntities ldr r4, [r0, #4] b _080B21FC _080B2238: @@ -695,7 +696,7 @@ _080B2238: str r0, [fp, #8] pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} bx lr -_080B2248: .4byte DeleteThisEntity +_080B2248: .4byte DeleteThisEntity @ 0x3005fbc _080B224C: .4byte PlayerUpdate _080B2250: .4byte DeleteThisEntity _080B2254: .4byte EnemyUpdate diff --git a/asm/non_matching/mazaal/sub_08034B38.inc b/asm/non_matching/mazaal/sub_08034B38.inc index 58dda627..319ce862 100644 --- a/asm/non_matching/mazaal/sub_08034B38.inc +++ b/asm/non_matching/mazaal/sub_08034B38.inc @@ -17,7 +17,7 @@ b _08034B9A _08034B58: movs r0, #0xe - bl sub_080A7EE0 + bl CreateProjectile adds r5, r0, #0 cmp r5, #0 beq _08034B9A diff --git a/asm/non_matching/projectile14/sub_080AA544.inc b/asm/non_matching/projectile14/sub_080AA544.inc deleted file mode 100644 index 22945df2..00000000 --- a/asm/non_matching/projectile14/sub_080AA544.inc +++ /dev/null @@ -1,134 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldrb r0, [r6, #0xb] - cmp r0, #8 - bhi _080AA618 - ldr r0, _080AA5E8 @ =gUnk_08129FF8 - mov sb, r0 - movs r1, #0x2e - ldrsh r2, [r6, r1] - ldr r1, _080AA5EC @ =gRoomControls - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - ldrb r0, [r6, #0xb] - add r0, sb - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r7, r2, r0 - movs r4, #0 - movs r5, #0 - movs r0, #0x38 - adds r0, r0, r6 - mov r8, r0 -_080AA58E: - mov r1, sb - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r7, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r2, r8 - ldrb r1, [r2] - bl sub_080002C8 - cmp r0, #0x3e - bne _080AA5AC - adds r5, #1 -_080AA5AC: - adds r4, #1 - cmp r4, #8 - bls _080AA58E - cmp r5, #8 - bne _080AA5F4 - movs r4, #0 - ldr r5, _080AA5F0 @ =gUnk_08129FD0 -_080AA5BA: - ldrh r0, [r5] - mov r3, sb - adds r1, r3, r4 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r1, r7, r1 - mov r3, r8 - ldrb r2, [r3] - bl sub_0807B7D8 - adds r5, #2 - adds r4, #1 - cmp r4, #8 - bls _080AA5BA - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_080AA654 - ldrh r0, [r6, #0x24] - bl SetFlag - b _080AA648 - .align 2, 0 -_080AA5E8: .4byte gUnk_08129FF8 -_080AA5EC: .4byte gRoomControls -_080AA5F0: .4byte gUnk_08129FD0 -_080AA5F4: - ldr r2, _080AA614 @ =gUnk_08129FE4 - ldrb r1, [r6, #0xb] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r0, [r0] - add r1, sb - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r1, r7, r1 - mov r4, r8 - ldrb r2, [r4] - bl sub_0807B7D8 - b _080AA648 - .align 2, 0 -_080AA614: .4byte gUnk_08129FE4 -_080AA618: - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r2, _080AA650 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r4, #0x32 - ldrsh r1, [r6, r4] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r6, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - ldrh r0, [r6, #0x24] - bl SetFlag -_080AA648: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AA650: .4byte gRoomControls - .syntax divided diff --git a/asm/non_matching/projectile1B/sub_080AB634.inc b/asm/non_matching/projectile1B/sub_080AB634.inc deleted file mode 100644 index 95c6b453..00000000 --- a/asm/non_matching/projectile1B/sub_080AB634.inc +++ /dev/null @@ -1,49 +0,0 @@ - .syntax unified - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, [r6, #0x50] - movs r5, #0 - adds r4, r0, #0 - adds r4, #0x20 -_080AB640: - ldr r1, [r4] - cmp r1, #0 - beq _080AB684 - adds r0, r6, #0 - bl sub_080177A0 - cmp r0, #0 - beq _080AB684 - ldr r1, [r4] - ldrb r0, [r1, #0xc] - cmp r0, #2 - bhi _080AB67A - movs r0, #3 - strb r0, [r1, #0xc] - ldr r1, [r4] - movs r0, #0x1e - strb r0, [r1, #0xe] - ldr r2, [r4] - ldrb r0, [r2, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r2, #0x18] - ldr r0, [r4] - movs r1, #0x45 - movs r2, #0 - bl CreateFx -_080AB67A: - adds r0, r6, #0 - bl DeleteEntity - movs r0, #1 - b _080AB68E -_080AB684: - adds r4, #4 - adds r5, #1 - cmp r5, #3 - bls _080AB640 - movs r0, #0 -_080AB68E: - pop {r4, r5, r6, pc} - .syntax divided diff --git a/asm/non_matching/projectile21/sub_080AC200.inc b/asm/non_matching/projectile21/sub_080AC200.inc index 6c1b2b1b..1d117905 100644 --- a/asm/non_matching/projectile21/sub_080AC200.inc +++ b/asm/non_matching/projectile21/sub_080AC200.inc @@ -12,7 +12,7 @@ movs r0, #0x10 strb r0, [r4, #0xe] movs r0, #0x21 - bl sub_080A7EE0 + bl CreateProjectile adds r1, r0, #0 cmp r1, #0 beq _080AC23C diff --git a/asm/non_matching/projectile22/sub_080AC5E4.inc b/asm/non_matching/projectile22/sub_080AC5E4.inc index 7189007f..1bd2d4b8 100644 --- a/asm/non_matching/projectile22/sub_080AC5E4.inc +++ b/asm/non_matching/projectile22/sub_080AC5E4.inc @@ -16,7 +16,7 @@ movs r0, #0x11 strb r0, [r1] movs r0, #0x22 - bl sub_080A7EE0 + bl CreateProjectile adds r6, r0, #0 ldrb r0, [r5, #0xa] strb r0, [r6, #0xa] @@ -30,7 +30,7 @@ strb r0, [r1] str r6, [r5, #0x54] movs r0, #0x22 - bl sub_080A7EE0 + bl CreateProjectile adds r7, r0, #0 ldrb r0, [r5, #0xa] strb r0, [r7, #0xa] @@ -46,7 +46,7 @@ strb r1, [r0] str r7, [r6, #0x54] movs r0, #0x22 - bl sub_080A7EE0 + bl CreateProjectile ldrb r1, [r5, #0xa] strb r1, [r0, #0xa] movs r1, #3 @@ -79,7 +79,7 @@ _080AC678: movs r0, #0xf strb r0, [r1] movs r0, #0x22 - bl sub_080A7EE0 + bl CreateProjectile adds r6, r0, #0 ldrb r0, [r5, #0xa] strb r0, [r6, #0xa] @@ -95,7 +95,7 @@ _080AC678: strb r1, [r0] str r6, [r5, #0x54] movs r0, #0x22 - bl sub_080A7EE0 + bl CreateProjectile adds r7, r0, #0 ldrb r0, [r5, #0xa] strb r0, [r7, #0xa] @@ -112,7 +112,7 @@ _080AC678: str r7, [r6, #0x54] _080AC6C8: movs r0, #0x22 - bl sub_080A7EE0 + bl CreateProjectile adds r6, r0, #0 ldrb r0, [r5, #0xa] strb r0, [r6, #0xa] diff --git a/asm/object98.s b/asm/object98.s index d72bf8b0..18f11555 100644 --- a/asm/object98.s +++ b/asm/object98.s @@ -50,7 +50,7 @@ _0809E372: movs r6, #0xe _0809E392: movs r0, #0x17 - bl sub_080A7EE0 + bl CreateProjectile strb r6, [r0, #0xe] str r4, [r0, #0x50] adds r6, #0xc diff --git a/asm/objectA0.s b/asm/objectA0.s index fee7ebba..17e17e6d 100644 --- a/asm/objectA0.s +++ b/asm/objectA0.s @@ -92,7 +92,7 @@ sub_0809F1B0: @ 0x0809F1B0 ands r0, r1 strb r0, [r2] movs r0, #0x1b - bl sub_080A7EE0 + bl CreateProjectile adds r5, r0, #0 cmp r5, #0 beq _0809F21E diff --git a/asm/objectA5.s b/asm/objectA5.s index 9e86a2bd..44831ffc 100644 --- a/asm/objectA5.s +++ b/asm/objectA5.s @@ -20,7 +20,7 @@ ObjectA5: @ 0x0809F8A4 movs r5, #0 _0809F8B6: movs r0, #0x1d - bl sub_080A7EE0 + bl CreateProjectile adds r4, r0, #0 cmp r5, #0 bne _0809F8C6 diff --git a/asm/octorokBoss.s b/asm/octorokBoss.s index 59ca7773..c55f522a 100644 --- a/asm/octorokBoss.s +++ b/asm/octorokBoss.s @@ -2256,7 +2256,7 @@ _08035F16: adds r0, r5, #0 movs r1, #0xf movs r2, #3 - bl sub_0804A98C + bl CreateProjectileWithParent _08035F48: ldr r1, _08035F78 @ =gUnk_080CF0C4 ldrb r0, [r5, #0xd] @@ -2847,7 +2847,7 @@ sub_08036390: @ 0x08036390 adds r4, r0, #0 movs r1, #0xf movs r2, #0 - bl sub_0804A98C + bl CreateProjectileWithParent str r0, [r4, #0x54] cmp r0, #0 beq _080363B4 @@ -3277,7 +3277,7 @@ _080366D4: adds r0, r4, #0 movs r1, #0xf movs r2, #2 - bl sub_0804A98C + bl CreateProjectileWithParent str r0, [r4, #0x54] cmp r0, #0 beq _08036706 @@ -3323,7 +3323,7 @@ sub_0803670C: @ 0x0803670C adds r0, r4, #0 movs r1, #0xf movs r2, #3 - bl sub_0804A98C + bl CreateProjectileWithParent _08036746: adds r0, r4, #0 adds r0, #0x76 diff --git a/asm/octorokGolden.s b/asm/octorokGolden.s index 3256ab32..35b51f7e 100644 --- a/asm/octorokGolden.s +++ b/asm/octorokGolden.s @@ -177,7 +177,7 @@ sub_08037D54: @ 0x08037D54 adds r0, r4, #0 movs r1, #1 movs r2, #0 - bl sub_0804A98C + bl CreateProjectileWithParent adds r2, r0, #0 cmp r2, #0 beq _08037E0C diff --git a/asm/scissorsBeetle.s b/asm/scissorsBeetle.s index 956643ba..010a9ff0 100644 --- a/asm/scissorsBeetle.s +++ b/asm/scissorsBeetle.s @@ -122,7 +122,7 @@ sub_08038984: @ 0x08038984 push {r4, r5, r6, lr} adds r5, r0, #0 movs r0, #0x13 - bl sub_080A7EE0 + bl CreateProjectile adds r6, r0, #0 cmp r6, #0 beq _080389E6 diff --git a/asm/stalfos.s b/asm/stalfos.s index 1476b093..fa469360 100644 --- a/asm/stalfos.s +++ b/asm/stalfos.s @@ -142,7 +142,7 @@ _08039390: adds r0, r5, #0 movs r1, #0x10 movs r2, #1 - bl sub_0804A98C + bl CreateProjectileWithParent adds r1, r0, #0 cmp r1, #0 beq _080393DC @@ -258,7 +258,7 @@ sub_08039470: @ 0x08039470 bne _08039494 movs r1, #0x10 movs r2, #1 - bl sub_0804A98C + bl CreateProjectileWithParent adds r2, r0, #0 cmp r2, #0 beq _0803949C @@ -1007,7 +1007,7 @@ sub_08039A20: @ 0x08039A20 adds r4, r0, #0 movs r1, #2 movs r2, #0 - bl sub_0804A98C + bl CreateProjectileWithParent adds r1, r0, #0 cmp r1, #0 beq _08039A44 @@ -1107,7 +1107,7 @@ sub_08039AD4: @ 0x08039AD4 ldrb r2, [r4, #0xb] adds r0, r4, #0 movs r1, #0x10 - bl sub_0804A98C + bl CreateProjectileWithParent adds r1, r0, #0 cmp r1, #0 beq _08039B20 diff --git a/asm/vaatiArm.s b/asm/vaatiArm.s index e0bb1f35..0c825de9 100644 --- a/asm/vaatiArm.s +++ b/asm/vaatiArm.s @@ -1451,7 +1451,7 @@ sub_08042FD8: @ 0x08042FD8 cmp r0, #0 beq _08043018 movs r0, #0x20 - bl sub_080A7EE0 + bl CreateProjectile adds r4, r0, #0 cmp r4, #0 beq _08043046 diff --git a/asm/vaatiRebornEnemy.s b/asm/vaatiRebornEnemy.s index 1a1a6103..c6334c91 100644 --- a/asm/vaatiRebornEnemy.s +++ b/asm/vaatiRebornEnemy.s @@ -812,7 +812,7 @@ _0803D6C8: ldrb r2, [r5] adds r0, r4, #0 movs r1, #0x1a - bl sub_0804A98C + bl CreateProjectileWithParent adds r1, r0, #0 cmp r1, #0 beq _0803D6EE @@ -1041,7 +1041,7 @@ _0803D870: adds r0, r5, #0 movs r1, #0x18 movs r2, #0 - bl sub_0804A98C + bl CreateProjectileWithParent adds r4, r0, #0 cmp r4, #0 beq _0803D8EE diff --git a/asm/vaatiTransfigured.s b/asm/vaatiTransfigured.s index f3aac9f0..410f8a50 100644 --- a/asm/vaatiTransfigured.s +++ b/asm/vaatiTransfigured.s @@ -906,7 +906,7 @@ _0803FE34: ldrb r2, [r4, #0xf] adds r0, r4, #0 movs r1, #0x1f - bl sub_0804A98C + bl CreateProjectileWithParent _0803FE46: ldrb r0, [r4, #0xf] cmp r0, #0 @@ -1015,7 +1015,7 @@ _0803FEFC: ldrb r2, [r4, #0xf] adds r0, r4, #0 movs r1, #0x1f - bl sub_0804A98C + bl CreateProjectileWithParent _0803FF14: ldrb r0, [r4, #0xe] cmp r0, #5 @@ -1033,7 +1033,7 @@ _0803FF24: adds r0, r4, #0 movs r1, #0x1f movs r2, #2 - bl sub_0804A98C + bl CreateProjectileWithParent adds r1, r0, #0 cmp r1, #0 beq _0803FF74 @@ -1137,7 +1137,7 @@ _0803FFE4: ldrb r2, [r4, #0xf] adds r0, r4, #0 movs r1, #0x1f - bl sub_0804A98C + bl CreateProjectileWithParent _0803FFFC: ldrb r0, [r4, #0xe] cmp r0, #5 @@ -1155,7 +1155,7 @@ _0804000C: adds r0, r4, #0 movs r1, #0x1f movs r2, #2 - bl sub_0804A98C + bl CreateProjectileWithParent adds r1, r0, #0 cmp r1, #0 beq _08040062 diff --git a/asm/vaatiWrath.s b/asm/vaatiWrath.s index 5fb19bab..6cb92bc1 100644 --- a/asm/vaatiWrath.s +++ b/asm/vaatiWrath.s @@ -2160,7 +2160,7 @@ sub_080422C0: @ 0x080422C0 cmp r0, r4 bne _08042306 movs r0, #0x21 - bl sub_080A7EE0 + bl CreateProjectile cmp r0, #0 beq _08042354 mov r1, r8 diff --git a/asm/wizzrobeFire.s b/asm/wizzrobeFire.s index 43f398ff..17a05df2 100644 --- a/asm/wizzrobeFire.s +++ b/asm/wizzrobeFire.s @@ -98,7 +98,7 @@ sub_0802FBB8: @ 0x0802FBB8 adds r0, r4, #0 movs r1, #8 movs r2, #0 - bl sub_0804A98C + bl CreateProjectileWithParent adds r1, r0, #0 cmp r1, #0 beq _0802FBF6 @@ -248,7 +248,7 @@ _0802FCDE: adds r0, r4, #0 movs r1, #8 movs r2, #1 - bl sub_0804A98C + bl CreateProjectileWithParent adds r2, r0, #0 cmp r2, #0 beq _0802FDCA diff --git a/asm/wizzrobeIce.s b/asm/wizzrobeIce.s index f74293ee..8e5c95ee 100644 --- a/asm/wizzrobeIce.s +++ b/asm/wizzrobeIce.s @@ -125,7 +125,7 @@ sub_0802FE90: @ 0x0802FE90 adds r0, r4, #0 movs r1, #9 movs r2, #0 - bl sub_0804A98C + bl CreateProjectileWithParent adds r1, r0, #0 cmp r1, #0 beq _0802FECE @@ -275,7 +275,7 @@ _0802FFB6: adds r0, r4, #0 movs r1, #9 movs r2, #1 - bl sub_0804A98C + bl CreateProjectileWithParent adds r2, r0, #0 cmp r2, #0 beq _080300A2 diff --git a/asm/wizzrobeWind.s b/asm/wizzrobeWind.s index b411d030..0e24ccf7 100644 --- a/asm/wizzrobeWind.s +++ b/asm/wizzrobeWind.s @@ -151,7 +151,7 @@ _0802F5B8: adds r0, r4, #0 movs r1, #7 movs r2, #0 - bl sub_0804A98C + bl CreateProjectileWithParent adds r1, r0, #0 cmp r1, #0 beq _0802F5D0 @@ -300,7 +300,7 @@ _0802F6B6: adds r0, r4, #0 movs r1, #7 movs r2, #1 - bl sub_0804A98C + bl CreateProjectileWithParent adds r2, r0, #0 cmp r2, #0 beq _0802F7A2 @@ -493,7 +493,7 @@ _0802F84C: adds r0, r4, #0 movs r1, #7 movs r2, #1 - bl sub_0804A98C + bl CreateProjectileWithParent adds r5, r0, #0 cmp r5, #0 beq _0802F884 diff --git a/include/functions.h b/include/functions.h index 22915222..45e0f294 100644 --- a/include/functions.h +++ b/include/functions.h @@ -80,7 +80,7 @@ extern u32 sub_08049FA0(Entity*); extern u32 sub_08049FDC(Entity*, u32); extern u32 sub_080041A0(Entity*, Entity*, u32, u32); extern u32 sub_08049EE4(Entity*); -extern Entity* sub_0804A98C(Entity*, u8, u8); +extern Entity* CreateProjectileWithParent(Entity*, u8, u8); extern u32 GetBottleContaining(u32); extern void sub_08077E54(ItemBehavior*); extern void sub_080042BA(Entity*, u32); @@ -206,7 +206,7 @@ extern void sub_0802F45C(Entity*); extern u32 sub_0800419C(Entity*, Entity*, u32, u32); extern void sub_08004542(Entity*); extern void sub_08077B20(); -extern u32 sub_080040A8(Entity*); +extern bool32 sub_080040A8(Entity*); extern u32 sub_08017850(Entity*); extern void sub_080809D4(void); extern void sub_08080CB4(Entity*); @@ -227,7 +227,7 @@ extern u32 sub_0805F7A0(u32); extern u32* sub_0805F25C(u32); extern u32 sub_080045DA(s32, s32); u32 sub_0806FCB8(Entity*, u32, u32, u32); -extern Entity* sub_080A7EE0(u32); +extern Entity* CreateProjectile(u32); extern void sub_080A1D70(Entity*, u32); extern void sub_0806F62C(Entity*, u32, u32); extern void sub_080A1ED0(u32, u32, u32); diff --git a/linker.ld b/linker.ld index 42de15d3..14a873ce 100644 --- a/linker.ld +++ b/linker.ld @@ -277,8 +277,8 @@ SECTIONS { . = 0x00005D90; IntrMain = .; . = 0x00005E60; gUnk_03005E60 = .; . = 0x00005E98; gUnk_03005E98 = .; - . = 0x00005F24; _EntUpdate = .; - . = 0x00005F40; gUnk_03005F40 = .; + . = 0x00005F24; _ClearAndUpdateEntities = .; + . = 0x00005F40; _UpdateEntities = .; . = 0x00005FBC; gUnk_03005FBC = .; . = 0x00005FF0; gUnk_03005FF0 = .; . = 0x000060F0; gUnk_030060F0 = .; diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index 2fd6ac8f..afc9da4e 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -138,7 +138,7 @@ void sub_08028A74(Entity* this) { unk = 1; sub_080290FC(this); if (this->frames.all & 1) { - Entity* ent = sub_0804A98C(this, 4, 0); + Entity* ent = CreateProjectileWithParent(this, 4, 0); if (ent != NULL) { ent->parent = this; ent->direction = this->direction; diff --git a/src/enemy/darkNut.c b/src/enemy/darkNut.c index 6f9d08e7..4ede2e2d 100644 --- a/src/enemy/darkNut.c +++ b/src/enemy/darkNut.c @@ -224,7 +224,7 @@ void sub_08020F48(Entity* this) { this->action = 14; sub_08021218(this, 13, uVar2 >> 3); - pEVar3 = sub_0804A98C(this, 0, 1); + pEVar3 = CreateProjectileWithParent(this, 0, 1); if (pEVar3) { pEVar3->parent = this; this->attachedEntity = pEVar3; @@ -270,7 +270,7 @@ void sub_08021010(Entity* this) { void sub_08021038(Entity* this) { if (this->attachedEntity == NULL && this->frames.all) { - Entity* pEVar2 = (Entity*)sub_0804A98C(this, 0, 0); + Entity* pEVar2 = (Entity*)CreateProjectileWithParent(this, 0, 0); if (pEVar2) { pEVar2->parent = this; this->attachedEntity = pEVar2; @@ -309,7 +309,7 @@ void sub_080210E4(Entity* this) { Entity* ent; this->frames.all &= ~1; - ent = sub_0804A98C(this, 0, 2); + ent = CreateProjectileWithParent(this, 0, 2); if (ent) { ent->parent = this; this->attachedEntity = ent; @@ -569,7 +569,7 @@ void sub_0802159C(Entity* this) { this->frames.all = 0; this->damageType = 0x51; - ent = sub_0804A98C(this, 0, 3); + ent = CreateProjectileWithParent(this, 0, 3); if (ent) { ent->parent = this; this->attachedEntity = ent; @@ -590,7 +590,7 @@ void sub_08021600(Entity* this) { this->frames.all = 0; this->damageType = 0x51; - ent = sub_0804A98C(this, 0, 4); + ent = CreateProjectileWithParent(this, 0, 4); if (ent) { ent->parent = this; this->attachedEntity = ent; diff --git a/src/enemy/enemy4D.c b/src/enemy/enemy4D.c index a29157bc..0049a853 100644 --- a/src/enemy/enemy4D.c +++ b/src/enemy/enemy4D.c @@ -36,7 +36,7 @@ void sub_0803EB44(Entity* this) { Entity* pEVar1; sub_0804A720(this); - pEVar1 = sub_0804A98C(this, 0x19, 0); + pEVar1 = CreateProjectileWithParent(this, 0x19, 0); if (pEVar1 != NULL) { pEVar1->parent = this; this->attachedEntity = pEVar1; diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c index 921784df..effceb3b 100644 --- a/src/enemy/gyorgMale.c +++ b/src/enemy/gyorgMale.c @@ -109,7 +109,7 @@ void GyorgMale(Entity* this) { } void sub_08046898(Entity* this) { - Entity* tmp = sub_080A7EE0(0x22); + Entity* tmp = CreateProjectile(0x22); u32 tmp2; if (!tmp) return; @@ -402,7 +402,7 @@ void sub_08046EF4(Entity* this) { if ((--this->field_0xf & 0xFF) == 0) { Entity* tmp; this->field_0xf = (Random() & 0x38) + 0x78; - tmp = sub_080A7EE0(0x23); + tmp = CreateProjectile(0x23); if (tmp) { tmp->collisionLayer = 2; tmp->parent = this; @@ -426,7 +426,7 @@ void sub_08046F64(Entity* this) { if (--this->field_0x7c.HALF.HI == 0) { Entity* tmp; this->field_0x7c.HALF.HI = 0x78; - tmp = sub_080A7EE0(0x23); + tmp = CreateProjectile(0x23); if (tmp) { tmp->collisionLayer = 2; tmp->parent = this; diff --git a/src/enemy/keaton.c b/src/enemy/keaton.c index 79e98065..df748792 100644 --- a/src/enemy/keaton.c +++ b/src/enemy/keaton.c @@ -232,7 +232,7 @@ void sub_08032794(Entity* this) { void sub_080327C8(Entity* this) { Entity* child; - child = sub_0804A98C(this, 11, 0); + child = CreateProjectileWithParent(this, 11, 0); if (child != NULL) { child->parent = this; this->attachedEntity = child; diff --git a/src/enemy/lakitu.c b/src/enemy/lakitu.c index cd9ce2b2..d97bec40 100644 --- a/src/enemy/lakitu.c +++ b/src/enemy/lakitu.c @@ -117,7 +117,7 @@ void sub_0803C86C(Entity* this) { } void Lakitu_Initialize(Entity* this) { - Entity* cloud = sub_0804A98C(this, 17, 0); + Entity* cloud = CreateProjectileWithParent(this, 17, 0); if (cloud == NULL) { return; } @@ -303,7 +303,7 @@ void Lakitu_SpawnLightning(Entity* this) { Entity* lightning; const OffsetCoords* offset; - lightning = sub_0804A98C(this, 18, 0); + lightning = CreateProjectileWithParent(this, 18, 0); if (lightning == NULL) { return; diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c index 1672b5c4..bfa45e69 100644 --- a/src/enemy/mazaalHead.c +++ b/src/enemy/mazaalHead.c @@ -779,7 +779,7 @@ NONMATCH("asm/non_matching/mazaal/sub_08034B38.inc", void sub_08034B38(Entity* t this->action = 3; InitializeAnimation(this, this->type + 3); } else { - target = sub_080A7EE0(0xe); + target = CreateProjectile(0xe); if (target != NULL) { target->type -= 2; if (target->type == 0) { diff --git a/src/enemy/octorok.c b/src/enemy/octorok.c index 565ed259..525ad1bf 100644 --- a/src/enemy/octorok.c +++ b/src/enemy/octorok.c @@ -126,7 +126,7 @@ void Octorok_Move(Entity* this) { void Octorok_ShootNut(Entity* this) { GetNextFrame(this); if (this->frames.all & 1) { - Entity* ent = sub_0804A98C(this, 1, 0); + Entity* ent = CreateProjectileWithParent(this, 1, 0); if (ent) { const s8* off; ent->direction = this->direction; diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index 1277f0c6..698edc94 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -170,7 +170,7 @@ void sub_080240B8(Entity* this) { Entity* ent; this->field_0x82.HALF.HI = 0; - ent = sub_0804A98C(this, 6, this->field_0x82.HALF.HI); + ent = CreateProjectileWithParent(this, 6, this->field_0x82.HALF.HI); if (ent) { this->attachedEntity = ent; ent->parent = this; @@ -413,7 +413,7 @@ void sub_080244E8(Entity* this) { this->height.HALF.HI -= 0xe; this->field_0x78.HWORD -= 0xe; - ent = sub_0804A98C(this, 6, this->field_0x82.HALF.HI); + ent = CreateProjectileWithParent(this, 6, this->field_0x82.HALF.HI); if (ent) { ent->parent = this; ent->height.HALF.HI += 0xe; @@ -436,7 +436,7 @@ void sub_080244E8(Entity* this) { this->height.HALF.HI -= 0xe; this->field_0x78.HWORD -= 0xe; - ent = sub_0804A98C(this, 6, this->field_0x82.HALF.HI); + ent = CreateProjectileWithParent(this, 6, this->field_0x82.HALF.HI); if (ent) { ent->parent = this; ent->height.HALF.HI += 0xe; diff --git a/src/enemy/spearMoblin.c b/src/enemy/spearMoblin.c index b12186e0..68f52f04 100644 --- a/src/enemy/spearMoblin.c +++ b/src/enemy/spearMoblin.c @@ -94,7 +94,7 @@ void sub_08028314(Entity* this) { sub_08028604(this); } - pEVar2 = sub_080A7EE0(3); + pEVar2 = CreateProjectile(3); if (pEVar2 != NULL) { pEVar2->parent = this; this->attachedEntity = pEVar2; diff --git a/src/enemy/vaatiBall.c b/src/enemy/vaatiBall.c index 903a84db..00c3f24c 100644 --- a/src/enemy/vaatiBall.c +++ b/src/enemy/vaatiBall.c @@ -185,7 +185,7 @@ void sub_08044868(Entity* this) { if (*(u8*)&vaati->field_0x86 > 1) { u8 draw = this->spriteSettings.b.draw; if (draw == 1 && this->cutsceneBeh.HALF.LO == 0) { - vaati = sub_0804A98C(this, 0x18, 0); + vaati = CreateProjectileWithParent(this, 0x18, 0); if (vaati) { vaati->type2 = 1; vaati->parent = this; @@ -275,7 +275,7 @@ void sub_080449F8(Entity* this) { this->field_0x74.HALF.LO++; draw = this->spriteSettings.b.draw; if (draw) { - vaati = sub_0804A98C(this, 0x1c, 0); + vaati = CreateProjectileWithParent(this, 0x1c, 0); if (vaati) { vaati->y.HALF.HI += 4; vaati->parent = this; diff --git a/src/entity.c b/src/entity.c index 02230491..60e571ff 100644 --- a/src/entity.c +++ b/src/entity.c @@ -48,11 +48,11 @@ typedef struct { extern struct_03003DD0 gUnk_03003DD0; extern u32 _call_via_r0(u32*); -extern u32 _EntUpdate; +extern u32 _ClearAndUpdateEntities; void DeleteThisEntity(void) { DeleteEntityAny(gUnk_03003DD0.field_0x8); - _call_via_r0((u32*)&_EntUpdate); + _call_via_r0((u32*)&_ClearAndUpdateEntities); } void DeleteManager(OtherEntity*); diff --git a/src/npc/guard.c b/src/npc/guard.c index d94827c4..7e9b0034 100644 --- a/src/npc/guard.c +++ b/src/npc/guard.c @@ -64,7 +64,7 @@ void sub_08063D44(Entity* this) { sub_0806EE04(this, gUnk_0810F6BC[this->type], 0); switch (this->type) { case 0 ... 3: - ent = sub_080A7EE0(0xc); + ent = CreateProjectile(0xc); ent->parent = this; ent->field_0xf = 0x3c; break; diff --git a/src/projectile/projectile14.c b/src/projectile/projectile14.c index 0284e5d0..301e441e 100644 --- a/src/projectile/projectile14.c +++ b/src/projectile/projectile14.c @@ -91,7 +91,8 @@ void sub_080AA534(Entity* this) { UpdateSpriteForCollisionLayer(this); } -NONMATCH("asm/non_matching/projectile14/sub_080AA544.inc", void sub_080AA544(Entity* this)) { + +void sub_080AA544(Entity* this) { u8* pbVar1; s32 iVar2; u32 uVar3; @@ -125,9 +126,7 @@ NONMATCH("asm/non_matching/projectile14/sub_080AA544.inc", void sub_080AA544(Ent SetFlag((u16)this->speed); } else { sub_0807B7D8(gUnk_08129FE4[this->type2], - param - - // TODO this array access is wrong - *((s8*)gUnk_08129FE4 + this->type2), + param - tmp[this->type2], this->collisionLayer); } } else { @@ -135,7 +134,6 @@ NONMATCH("asm/non_matching/projectile14/sub_080AA544.inc", void sub_080AA544(Ent SetFlag((u16)this->speed); } } -END_NONMATCH void sub_080AA654(Entity* this, u32 param) { EntityData* entityData; diff --git a/src/projectile/projectile18.c b/src/projectile/projectile18.c index 7efec1c5..999ca4e6 100644 --- a/src/projectile/projectile18.c +++ b/src/projectile/projectile18.c @@ -101,7 +101,7 @@ void sub_080AADBC(Entity* this) { this->direction = GetFacingDirection(this, &gPlayerEntity); this->field_0x86.HALF.LO = 0; this->cutsceneBeh.HWORD = 300; - entity = sub_080A7EE0(0x18); + entity = CreateProjectile(0x18); if (entity != NULL) { entity->type = 1; entity->type2 = this->type2; diff --git a/src/projectile/projectile19.c b/src/projectile/projectile19.c index 8c23bd65..c89f2d15 100644 --- a/src/projectile/projectile19.c +++ b/src/projectile/projectile19.c @@ -35,7 +35,7 @@ void sub_080AB074(Entity* this) { this->height.HALF.HI += (s8)parent->field_0x7c.BYTES.byte3; if (parent->field_0x7a.HALF.HI != 0) { - parent = sub_080A7EE0(0x19); + parent = CreateProjectile(0x19); if (parent != NULL) { parent->type = 4; CopyPositionAndSpriteOffset(this, parent); @@ -49,13 +49,13 @@ bool32 sub_080AB12C(Entity* this) { if (gEntCount > 0x44) { return FALSE; } - entity = sub_080A7EE0(0x19); + entity = CreateProjectile(0x19); entity->type = 1; entity->parent = this; - entity = sub_080A7EE0(0x19); + entity = CreateProjectile(0x19); entity->type = 2; entity->parent = this; - entity = sub_080A7EE0(0x19); + entity = CreateProjectile(0x19); entity->type = 3; entity->parent = this; return TRUE; diff --git a/src/projectile/projectile1B.c b/src/projectile/projectile1B.c index 01284bc3..34b65650 100644 --- a/src/projectile/projectile1B.c +++ b/src/projectile/projectile1B.c @@ -15,6 +15,8 @@ extern void sub_080043A8(Entity*); extern void CreateItemOnGround(Entity*); extern void CreateChestSpawner(Entity*); +extern u32 sub_080177A0(Entity*, Entity*); + void Projectile1B(Entity* this) { gUnk_0812A58C[GetNextFunction(this)](this); } @@ -63,8 +65,6 @@ void sub_080AB5C4(Entity* this) { } bool32 sub_080AB5F4(Entity* this) { - u32 uVar1; - switch (sub_080043E8(this)) { case 1: CreateItemOnGround(this); @@ -79,4 +79,20 @@ bool32 sub_080AB5F4(Entity* this) { return FALSE; } -ASM_FUNC("asm/non_matching/projectile1B/sub_080AB634.inc", bool32 sub_080AB634(Entity* this)) +bool32 sub_080AB634(Entity* this) { + Entity** entities = ((Entity**)&this->parent->field_0x20); + u32 i; + for (i = 0; i <= 3; ++i) { + if(entities[i] != NULL && (sub_080177A0(this, entities[i]) != 0)) { + if (entities[i]->action < 3) { + entities[i]->action = 3; + entities[i]->actionDelay = 0x1e; + entities[i]->spriteSettings.b.draw = 0; + CreateFx(entities[i], 0x45, 0); + } + DeleteEntity(this); + return TRUE; + } + } + return FALSE; +} diff --git a/src/projectile/projectile1C.c b/src/projectile/projectile1C.c index 5b5f1938..62d9a391 100644 --- a/src/projectile/projectile1C.c +++ b/src/projectile/projectile1C.c @@ -59,7 +59,7 @@ ASM_FUNC("asm/non_matching/projectile1C/sub_080AB758.inc", void sub_080AB758(Ent void sub_080AB844(Entity* this, s32 param_1, s32 param_2) { Entity* entity; - entity = sub_080A7EE0(0x1c); + entity = CreateProjectile(0x1c); if (entity != NULL) { entity->type = 1; entity->actionDelay = param_1; diff --git a/src/projectile/projectile1D.c b/src/projectile/projectile1D.c index c6dfe87f..f79079e3 100644 --- a/src/projectile/projectile1D.c +++ b/src/projectile/projectile1D.c @@ -25,7 +25,7 @@ void sub_080AB8E8(Entity* this) { } InitializeAnimation(this, 0); if (this->type < 4) { - entity = sub_080A7EE0(0x1d); + entity = CreateProjectile(0x1d); entity->type = this->type + 1; entity->parent = this->parent; entity->attachedEntity = this; diff --git a/src/projectile/projectile22.c b/src/projectile/projectile22.c index bbc4fc58..9da1e83c 100644 --- a/src/projectile/projectile22.c +++ b/src/projectile/projectile22.c @@ -139,20 +139,20 @@ NONMATCH("asm/non_matching/projectile22/sub_080AC5E4.inc", bool32 sub_080AC5E4(E return 0; } this->field_0x78.HALF.HI = 0x11; - entity = sub_080A7EE0(0x22); + entity = CreateProjectile(0x22); entity->type = this->type; entity->type2 = 1; entity->parent = this->parent; entity->field_0x78.HALF.HI = 0x12; this->attachedEntity = entity; - entity2 = sub_080A7EE0(0x22); + entity2 = CreateProjectile(0x22); entity2->type = this->type; entity2->type2 = 2; entity2->parent = this->parent; entity2->field_0x78.HALF.HI = 0x14; uVar3 = entity2->field_0x78.HALF.HI; entity->attachedEntity = entity2; - entity3 = sub_080A7EE0(0x22); + entity3 = CreateProjectile(0x22); entity3->type = this->type; entity3->type2 = 3; entity3->parent = this->parent; @@ -164,14 +164,14 @@ NONMATCH("asm/non_matching/projectile22/sub_080AC5E4.inc", bool32 sub_080AC5E4(E return 0; } this->field_0x78.HALF.HI = 0xf; - entity = sub_080A7EE0(0x22); + entity = CreateProjectile(0x22); entity->type = this->type; entity->type2 = 1; entity->parent = this->parent; entity->field_0x78.HALF.HI = 0x10; uVar3 = entity->field_0x78.HALF.HI; this->attachedEntity = entity; - entity2 = sub_080A7EE0(0x22); + entity2 = CreateProjectile(0x22); entity2->type = this->type; entity2->type2 = 2; entity2->parent = this->parent; @@ -179,7 +179,7 @@ NONMATCH("asm/non_matching/projectile22/sub_080AC5E4.inc", bool32 sub_080AC5E4(E entity2->field_0x78.HALF.HI = 0x20; entity->attachedEntity = entity2; } - entity4 = sub_080A7EE0(0x22); + entity4 = CreateProjectile(0x22); entity4->type = this->type; entity4->type2 = 4; entity4->parent = this->parent; diff --git a/src/projectile/projectileC.c b/src/projectile/projectileC.c index 8af3163a..0e617ba8 100644 --- a/src/projectile/projectileC.c +++ b/src/projectile/projectileC.c @@ -31,7 +31,7 @@ void ProjectileC(Entity* this) { } else { if (sub_080644C8(this) != 0) { if (((this->actionDelay++) & 3) == 0) { - entity = sub_080A7EE0(0xc); + entity = CreateProjectile(0xc); if (entity != NULL) { entity->type = 1; tmp = this->parent->field_0x3e; diff --git a/src/projectile/projectileF.c b/src/projectile/projectileF.c index 5f9ce5a4..a69eddc0 100644 --- a/src/projectile/projectileF.c +++ b/src/projectile/projectileF.c @@ -133,7 +133,7 @@ void sub_080A976C(Entity* this) { return; } for (index = 0; index < 3; ++index) { - this->attachedEntity = sub_0804A98C(this, 0xf, 1); + this->attachedEntity = CreateProjectileWithParent(this, 0xf, 1); if (this->attachedEntity != NULL) { this->attachedEntity->parent = this->parent; this->attachedEntity->direction = this->direction + gUnk_08129ADC[index];