diff --git a/asm/Kyoto/Input/CRumbleGenerator.s b/asm/Kyoto/Input/CRumbleGenerator.s index 41a96531..f6c318c8 100644 --- a/asm/Kyoto/Input/CRumbleGenerator.s +++ b/asm/Kyoto/Input/CRumbleGenerator.s @@ -200,7 +200,7 @@ Rumble__16CRumbleGeneratorFRC9SAdsrDataf15ERumblePriority7EIOPort: /* 80369FC0 00366F20 7F 64 DB 78 */ mr r4, r27 /* 80369FC4 00366F24 D0 06 00 D0 */ stfs f0, 0xd0(r6) /* 80369FC8 00366F28 7F 86 E3 78 */ mr r6, r28 -/* 80369FCC 00366F2C 4B FF F8 41 */ bl Activate__12CRumbleVoiceFRC9SAdsrDatasf15ERumblePriority +/* 80369FCC 00366F2C 4B FF F8 41 */ bl Activate__12CRumbleVoiceFRC9SAdsrDataUsf15ERumblePriority /* 80369FD0 00366F30 48 00 00 08 */ b lbl_80369FD8 lbl_80369FD4: /* 80369FD4 00366F34 38 60 FF FF */ li r3, -1 @@ -395,4 +395,3 @@ lbl_803D8548: .4byte 0x00000002 .4byte 0x00000002 .4byte 0x00000002 - diff --git a/asm/Kyoto/Input/CRumbleVoice.s b/asm/Kyoto/Input/CRumbleVoice.s index 21f8c2ca..1217a68b 100644 --- a/asm/Kyoto/Input/CRumbleVoice.s +++ b/asm/Kyoto/Input/CRumbleVoice.s @@ -11,8 +11,8 @@ lbl_805A8A60: .section .text, "ax" -.global CreateRumbleHandle__12CRumbleVoiceFs -CreateRumbleHandle__12CRumbleVoiceFs: +.global CreateRumbleHandle__12CRumbleVoiceFUs +CreateRumbleHandle__12CRumbleVoiceFUs: /* 80369250 003661B0 88 A3 00 2E */ lbz r5, 0x2e(r3) /* 80369254 003661B4 38 05 00 01 */ addi r0, r5, 1 /* 80369258 003661B8 98 03 00 2E */ stb r0, 0x2e(r3) @@ -437,8 +437,8 @@ lbl_803697F4: /* 80369804 00366764 38 21 00 10 */ addi r1, r1, 0x10 /* 80369808 00366768 4E 80 00 20 */ blr -.global Activate__12CRumbleVoiceFRC9SAdsrDatasf15ERumblePriority -Activate__12CRumbleVoiceFRC9SAdsrDatasf15ERumblePriority: +.global Activate__12CRumbleVoiceFRC9SAdsrDataUsf15ERumblePriority +Activate__12CRumbleVoiceFRC9SAdsrDataUsf15ERumblePriority: /* 8036980C 0036676C 94 21 FF A0 */ stwu r1, -0x60(r1) /* 80369810 00366770 7C 08 02 A6 */ mflr r0 /* 80369814 00366774 90 01 00 64 */ stw r0, 0x64(r1) @@ -520,7 +520,7 @@ Activate__12CRumbleVoiceFRC9SAdsrDatasf15ERumblePriority: /* 80369944 003668A4 41 82 00 14 */ beq lbl_80369958 /* 80369948 003668A8 7F 83 E3 78 */ mr r3, r28 /* 8036994C 003668AC 7F C4 F3 78 */ mr r4, r30 -/* 80369950 003668B0 4B FF F9 01 */ bl CreateRumbleHandle__12CRumbleVoiceFs +/* 80369950 003668B0 4B FF F9 01 */ bl CreateRumbleHandle__12CRumbleVoiceFUs /* 80369954 003668B4 48 00 00 08 */ b lbl_8036995C lbl_80369958: /* 80369958 003668B8 38 60 FF FF */ li r3, -1 @@ -732,4 +732,3 @@ lbl_803D8540: # ROM: 0x3D5540 .asciz "??(??)" .balign 4 - diff --git a/asm/MetroidPrime/CRumbleManager.s b/asm/MetroidPrime/CRumbleManager.s index 40071773..cad12268 100644 --- a/asm/MetroidPrime/CRumbleManager.s +++ b/asm/MetroidPrime/CRumbleManager.s @@ -182,4 +182,3 @@ lbl_805AD350: # ROM: 0x3F9BF0 .float 1.0 .4byte 0 - diff --git a/asm/MetroidPrime/Player/CGrappleArm.s b/asm/MetroidPrime/Player/CGrappleArm.s index 5e3e3c09..adf31ce4 100644 --- a/asm/MetroidPrime/Player/CGrappleArm.s +++ b/asm/MetroidPrime/Player/CGrappleArm.s @@ -2802,7 +2802,7 @@ __dt__11CGrappleArmFv: /* 8011F988 0011C8E8 41 82 02 68 */ beq lbl_8011FBF0 /* 8011F98C 0011C8EC 38 7E 03 A4 */ addi r3, r30, 0x3a4 /* 8011F990 0011C8F0 38 80 FF FF */ li r4, -1 -/* 8011F994 0011C8F4 4B F2 35 E5 */ bl "__dt__Q24rstl34single_ptr<20CRainSplashGenerator>" +/* 8011F994 0011C8F4 4B F2 35 E5 */ bl "__dt__Q24rstl34single_ptr<20CRainSplashGenerator>Fv" /* 8011F998 0011C8F8 34 1E 03 A0 */ addic. r0, r30, 0x3a0 /* 8011F99C 0011C8FC 41 82 00 24 */ beq lbl_8011F9C0 /* 8011F9A0 0011C900 80 7E 03 A0 */ lwz r3, 0x3a0(r30) diff --git a/asm/MetroidPrime/Player/CMorphBall.s b/asm/MetroidPrime/Player/CMorphBall.s index 83627540..4717e893 100644 --- a/asm/MetroidPrime/Player/CMorphBall.s +++ b/asm/MetroidPrime/Player/CMorphBall.s @@ -13594,7 +13594,7 @@ lbl_800F8FD4: lbl_800F8FDC: /* 800F8FDC 000F5F3C 38 7E 1C 1C */ addi r3, r30, 0x1c1c /* 800F8FE0 000F5F40 38 80 FF FF */ li r4, -1 -/* 800F8FE4 000F5F44 4B F4 9F 95 */ bl "__dt__Q24rstl34single_ptr<20CRainSplashGenerator>" +/* 800F8FE4 000F5F44 4B F4 9F 95 */ bl "__dt__Q24rstl34single_ptr<20CRainSplashGenerator>Fv" /* 800F8FE8 000F5F48 34 1E 1C 18 */ addic. r0, r30, 0x1c18 /* 800F8FEC 000F5F4C 41 82 00 10 */ beq lbl_800F8FFC /* 800F8FF0 000F5F50 80 7E 1C 18 */ lwz r3, 0x1c18(r30) diff --git a/asm/MetroidPrime/Player/CPlayerGun.s b/asm/MetroidPrime/Player/CPlayerGun.s index 6a4c99dc..b9f93c95 100644 --- a/asm/MetroidPrime/Player/CPlayerGun.s +++ b/asm/MetroidPrime/Player/CPlayerGun.s @@ -2578,7 +2578,6 @@ AcceptScriptMsg__10CPlayerGunF20EScriptObjectMessage9TUniqueIdR13CStateManager: /* 8003C544 000394A4 7C 04 00 2E */ lwzx r0, r4, r0 /* 8003C548 000394A8 7C 09 03 A6 */ mtctr r0 /* 8003C54C 000394AC 4E 80 04 20 */ bctr -.global lbl_8003C550 lbl_8003C550: /* 8003C550 000394B0 7F E4 FB 78 */ mr r4, r31 /* 8003C554 000394B4 4B FF F2 85 */ bl CreateGunLight__10CPlayerGunFR13CStateManager @@ -2633,12 +2632,10 @@ lbl_8003C550: /* 8003C618 00039578 80 7D 06 F0 */ lwz r3, 0x6f0(r29) /* 8003C61C 0003957C 4B FF 07 61 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb /* 8003C620 00039580 48 00 03 AC */ b lbl_8003C9CC -.global lbl_8003C624 lbl_8003C624: /* 8003C624 00039584 7F E4 FB 78 */ mr r4, r31 /* 8003C628 00039588 4B FF F1 5D */ bl DeleteGunLight__10CPlayerGunFR13CStateManager /* 8003C62C 0003958C 48 00 03 A0 */ b lbl_8003C9CC -.global lbl_8003C630 lbl_8003C630: /* 8003C630 00039590 7F 23 CB 78 */ mr r3, r25 /* 8003C634 00039594 38 80 00 17 */ li r4, 0x17 @@ -2698,7 +2695,6 @@ lbl_8003C6FC: /* 8003C704 00039664 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b /* 8003C708 00039668 98 1D 08 34 */ stb r0, 0x834(r29) /* 8003C70C 0003966C 48 00 02 C0 */ b lbl_8003C9CC -.global lbl_8003C710 lbl_8003C710: /* 8003C710 00039670 88 1D 08 34 */ lbz r0, 0x834(r29) /* 8003C714 00039674 38 60 00 00 */ li r3, 0 @@ -2708,7 +2704,6 @@ lbl_8003C710: /* 8003C724 00039684 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18 /* 8003C728 00039688 98 1D 08 35 */ stb r0, 0x835(r29) /* 8003C72C 0003968C 48 00 02 A0 */ b lbl_8003C9CC -.global lbl_8003C730 lbl_8003C730: /* 8003C730 00039690 88 1D 08 35 */ lbz r0, 0x835(r29) /* 8003C734 00039694 38 60 00 01 */ li r3, 1 @@ -2726,7 +2721,6 @@ lbl_8003C730: /* 8003C764 000396C4 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18 /* 8003C768 000396C8 98 1D 08 35 */ stb r0, 0x835(r29) /* 8003C76C 000396CC 48 00 02 60 */ b lbl_8003C9CC -.global lbl_8003C770 lbl_8003C770: /* 8003C770 000396D0 88 1D 08 35 */ lbz r0, 0x835(r29) /* 8003C774 000396D4 38 60 00 01 */ li r3, 1 @@ -2772,7 +2766,6 @@ lbl_8003C770: /* 8003C814 00039774 B0 01 00 24 */ sth r0, 0x24(r1) /* 8003C818 00039778 48 00 76 B9 */ bl SendScriptMsg__13CStateManagerFP7CEntity9TUniqueId20EScriptObjectMessage /* 8003C81C 0003977C 48 00 01 B0 */ b lbl_8003C9CC -.global lbl_8003C820 lbl_8003C820: /* 8003C820 00039780 88 1D 08 35 */ lbz r0, 0x835(r29) /* 8003C824 00039784 38 60 00 00 */ li r3, 0 @@ -2782,7 +2775,6 @@ lbl_8003C820: /* 8003C834 00039794 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18 /* 8003C838 00039798 98 1D 08 35 */ stb r0, 0x835(r29) /* 8003C83C 0003979C 48 00 01 90 */ b lbl_8003C9CC -.global lbl_8003C840 lbl_8003C840: /* 8003C840 000397A0 A0 1E 00 00 */ lhz r0, 0(r30) /* 8003C844 000397A4 7F E3 FB 78 */ mr r3, r31 @@ -2864,7 +2856,6 @@ lbl_8003C948: /* 8003C968 000398C8 53 40 0F BC */ rlwimi r0, r26, 1, 0x1e, 0x1e /* 8003C96C 000398CC 98 1D 08 34 */ stb r0, 0x834(r29) /* 8003C970 000398D0 48 00 00 5C */ b lbl_8003C9CC -.global lbl_8003C974 lbl_8003C974: /* 8003C974 000398D4 88 1B 07 60 */ lbz r0, 0x760(r27) /* 8003C978 000398D8 28 00 00 00 */ cmplwi r0, 0 @@ -2888,7 +2879,6 @@ lbl_8003C974: /* 8003C9C0 00039920 88 1D 08 34 */ lbz r0, 0x834(r29) /* 8003C9C4 00039924 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e /* 8003C9C8 00039928 98 1D 08 34 */ stb r0, 0x834(r29) -.global lbl_8003C9CC lbl_8003C9CC: /* 8003C9CC 0003992C A0 1E 00 00 */ lhz r0, 0(r30) /* 8003C9D0 00039930 7F 84 E3 78 */ mr r4, r28 @@ -5885,7 +5875,6 @@ UpdateChargeState__10CPlayerGunFfR13CStateManager: /* 8003F47C 0003C3DC 7C 05 00 2E */ lwzx r0, r5, r0 /* 8003F480 0003C3E0 7C 09 03 A6 */ mtctr r0 /* 8003F484 0003C3E4 4E 80 04 20 */ bctr -.global lbl_8003F488 lbl_8003F488: /* 8003F488 0003C3E8 C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2) /* 8003F48C 0003C3EC 38 A0 00 00 */ li r5, 0 @@ -5901,7 +5890,6 @@ lbl_8003F488: /* 8003F4B4 0003C414 98 7E 08 34 */ stb r3, 0x834(r30) /* 8003F4B8 0003C418 90 1E 03 2C */ stw r0, 0x32c(r30) /* 8003F4BC 0003C41C 48 00 02 70 */ b lbl_8003F72C -.global lbl_8003F4C0 lbl_8003F4C0: /* 8003F4C0 0003C420 88 9E 08 32 */ lbz r4, 0x832(r30) /* 8003F4C4 0003C424 54 80 E7 FE */ rlwinm r0, r4, 0x1c, 0x1f, 0x1f @@ -5985,7 +5973,6 @@ lbl_8003F58C: /* 8003F5EC 0003C54C 38 A0 00 01 */ li r5, 1 /* 8003F5F0 0003C550 48 00 22 D5 */ bl PlayAnim__10CPlayerGunFQ212NWeaponTypes12EGunAnimTypeb /* 8003F5F4 0003C554 48 00 01 38 */ b lbl_8003F72C -.global lbl_8003F5F8 lbl_8003F5F8: /* 8003F5F8 0003C558 C0 3E 03 40 */ lfs f1, 0x340(r30) /* 8003F5FC 0003C55C C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2) @@ -5995,7 +5982,6 @@ lbl_8003F5F8: /* 8003F60C 0003C56C 38 00 00 04 */ li r0, 4 /* 8003F610 0003C570 90 1E 03 2C */ stw r0, 0x32c(r30) /* 8003F614 0003C574 48 00 01 18 */ b lbl_8003F72C -.global lbl_8003F618 lbl_8003F618: /* 8003F618 0003C578 C0 3E 03 44 */ lfs f1, 0x344(r30) /* 8003F61C 0003C57C C0 02 84 7C */ lfs f0, lbl_805AA19C@sda21(r2) @@ -6009,14 +5995,12 @@ lbl_8003F618: /* 8003F63C 0003C59C 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19 /* 8003F640 0003C5A0 98 1E 08 32 */ stb r0, 0x832(r30) /* 8003F644 0003C5A4 48 00 00 E8 */ b lbl_8003F72C -.global lbl_8003F648 lbl_8003F648: /* 8003F648 0003C5A8 38 00 00 07 */ li r0, 7 /* 8003F64C 0003C5AC C0 02 84 6C */ lfs f0, lbl_805AA18C@sda21(r2) /* 8003F650 0003C5B0 90 1E 03 2C */ stw r0, 0x32c(r30) /* 8003F654 0003C5B4 D0 1E 03 48 */ stfs f0, 0x348(r30) /* 8003F658 0003C5B8 48 00 00 D4 */ b lbl_8003F72C -.global lbl_8003F65C lbl_8003F65C: /* 8003F65C 0003C5BC 80 7E 07 40 */ lwz r3, 0x740(r30) /* 8003F660 0003C5C0 7F E5 FB 78 */ mr r5, r31 @@ -6040,7 +6024,6 @@ lbl_8003F65C: /* 8003F6A8 0003C608 98 7E 08 33 */ stb r3, 0x833(r30) /* 8003F6AC 0003C60C 90 1E 03 2C */ stw r0, 0x32c(r30) /* 8003F6B0 0003C610 48 00 00 7C */ b lbl_8003F72C -.global lbl_8003F6B4 lbl_8003F6B4: /* 8003F6B4 0003C614 80 1E 02 F8 */ lwz r0, 0x2f8(r30) /* 8003F6B8 0003C618 54 00 06 F6 */ rlwinm r0, r0, 0, 0x1b, 0x1b @@ -6067,7 +6050,6 @@ lbl_8003F700: /* 8003F708 0003C668 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18 /* 8003F70C 0003C66C 98 1E 08 32 */ stb r0, 0x832(r30) /* 8003F710 0003C670 48 00 00 1C */ b lbl_8003F72C -.global lbl_8003F714 lbl_8003F714: /* 8003F714 0003C674 38 A0 00 00 */ li r5, 0 /* 8003F718 0003C678 4B FF FA C5 */ bl ResetCharge__10CPlayerGunFR13CStateManagerb @@ -6075,7 +6057,6 @@ lbl_8003F714: /* 8003F720 0003C680 7F E4 FB 78 */ mr r4, r31 /* 8003F724 0003C684 38 A0 00 00 */ li r5, 0 /* 8003F728 0003C688 4B FF FC 19 */ bl Reset__10CPlayerGunFR13CStateManager -.global lbl_8003F72C lbl_8003F72C: /* 8003F72C 0003C68C 80 1E 02 E0 */ lwz r0, 0x2e0(r30) /* 8003F730 0003C690 28 00 00 00 */ cmplwi r0, 0 @@ -7559,7 +7540,6 @@ lbl_80040C2C: /* 80040C48 0003DBA8 7C 03 00 2E */ lwzx r0, r3, r0 /* 80040C4C 0003DBAC 7C 09 03 A6 */ mtctr r0 /* 80040C50 0003DBB0 4E 80 04 20 */ bctr -.global lbl_80040C54 lbl_80040C54: /* 80040C54 0003DBB4 80 7C 02 F8 */ lwz r3, 0x2f8(r28) /* 80040C58 0003DBB8 38 00 00 01 */ li r0, 1 @@ -7571,7 +7551,6 @@ lbl_80040C54: /* 80040C70 0003DBD0 90 1C 03 18 */ stw r0, 0x318(r28) /* 80040C74 0003DBD4 90 1C 03 1C */ stw r0, 0x31c(r28) /* 80040C78 0003DBD8 48 00 01 98 */ b lbl_80040E10 -.global lbl_80040C7C lbl_80040C7C: /* 80040C7C 0003DBDC 80 1C 02 F8 */ lwz r0, 0x2f8(r28) /* 80040C80 0003DBE0 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c @@ -7593,7 +7572,6 @@ lbl_80040CA8: /* 80040CBC 0003DC1C C0 03 00 00 */ lfs f0, 0(r3) /* 80040CC0 0003DC20 D0 1C 03 90 */ stfs f0, 0x390(r28) /* 80040CC4 0003DC24 48 00 01 4C */ b lbl_80040E10 -.global lbl_80040CC8 lbl_80040CC8: /* 80040CC8 0003DC28 7F 83 E3 78 */ mr r3, r28 /* 80040CCC 0003DC2C 38 80 00 08 */ li r4, 8 @@ -7603,20 +7581,17 @@ lbl_80040CC8: /* 80040CDC 0003DC3C 3B 00 00 00 */ li r24, 0 /* 80040CE0 0003DC40 90 1C 03 38 */ stw r0, 0x338(r28) /* 80040CE4 0003DC44 48 00 01 2C */ b lbl_80040E10 -.global lbl_80040CE8 lbl_80040CE8: /* 80040CE8 0003DC48 80 1C 02 F8 */ lwz r0, 0x2f8(r28) /* 80040CEC 0003DC4C 60 00 00 04 */ ori r0, r0, 4 /* 80040CF0 0003DC50 90 1C 02 F8 */ stw r0, 0x2f8(r28) /* 80040CF4 0003DC54 48 00 01 1C */ b lbl_80040E10 -.global lbl_80040CF8 lbl_80040CF8: /* 80040CF8 0003DC58 7F 83 E3 78 */ mr r3, r28 /* 80040CFC 0003DC5C 7F E4 FB 78 */ mr r4, r31 /* 80040D00 0003DC60 7F A5 EB 78 */ mr r5, r29 /* 80040D04 0003DC64 4B FF E2 95 */ bl ChangeWeapon__10CPlayerGunFRC12CPlayerStateR13CStateManager /* 80040D08 0003DC68 48 00 01 08 */ b lbl_80040E10 -.global lbl_80040D0C lbl_80040D0C: /* 80040D0C 0003DC6C 80 7C 07 2C */ lwz r3, 0x72c(r28) /* 80040D10 0003DC70 48 17 BF 85 */ bl GetWeaponInfo__10CGunWeaponCFv @@ -7641,7 +7616,6 @@ lbl_80040D54: /* 80040D58 0003DCB8 90 1C 03 18 */ stw r0, 0x318(r28) /* 80040D5C 0003DCBC 90 1C 03 1C */ stw r0, 0x31c(r28) /* 80040D60 0003DCC0 48 00 00 B0 */ b lbl_80040E10 -.global lbl_80040D64 lbl_80040D64: /* 80040D64 0003DCC4 80 7C 07 5C */ lwz r3, 0x75c(r28) /* 80040D68 0003DCC8 81 83 00 00 */ lwz r12, 0(r3) @@ -7665,7 +7639,6 @@ lbl_80040D64: /* 80040DB0 0003DD10 38 00 00 01 */ li r0, 1 /* 80040DB4 0003DD14 90 1C 03 3C */ stw r0, 0x33c(r28) /* 80040DB8 0003DD18 48 00 00 58 */ b lbl_80040E10 -.global lbl_80040DBC lbl_80040DBC: /* 80040DBC 0003DD1C 80 7C 07 38 */ lwz r3, 0x738(r28) /* 80040DC0 0003DD20 81 83 00 00 */ lwz r12, 0(r3) @@ -7688,7 +7661,6 @@ lbl_80040DBC: /* 80040E04 0003DD64 4E 80 04 21 */ bctrl /* 80040E08 0003DD68 38 00 00 02 */ li r0, 2 /* 80040E0C 0003DD6C 90 1C 03 3C */ stw r0, 0x33c(r28) -.global lbl_80040E10 lbl_80040E10: /* 80040E10 0003DD70 57 00 06 3F */ clrlwi. r0, r24, 0x18 /* 80040E14 0003DD74 41 82 00 0C */ beq lbl_80040E20 @@ -9787,10 +9759,10 @@ lbl_80042C3C: lbl_80042C64: /* 80042C64 0003FBC4 38 7E 07 48 */ addi r3, r30, 0x748 /* 80042C68 0003FBC8 38 80 FF FF */ li r4, -1 -/* 80042C6C 0003FBCC 48 00 03 0D */ bl "__dt__Q24rstl34single_ptr<20CRainSplashGenerator>" +/* 80042C6C 0003FBCC 48 00 03 0D */ bl "__dt__Q24rstl34single_ptr<20CRainSplashGenerator>Fv" /* 80042C70 0003FBD0 38 7E 07 44 */ addi r3, r30, 0x744 /* 80042C74 0003FBD4 38 80 FF FF */ li r4, -1 -/* 80042C78 0003FBD8 48 00 01 8D */ bl "__dt__Q24rstl24single_ptr<10CAuxWeapon>" +/* 80042C78 0003FBD8 48 00 01 8D */ bl "__dt__Q24rstl24single_ptr<10CAuxWeapon>Fv" /* 80042C7C 0003FBDC 34 1E 07 40 */ addic. r0, r30, 0x740 /* 80042C80 0003FBE0 41 82 00 10 */ beq lbl_80042C90 /* 80042C84 0003FBE4 80 7E 07 40 */ lwz r3, 0x740(r30) @@ -9906,8 +9878,8 @@ lbl_80042DE0: /* 80042DFC 0003FD5C 38 21 00 30 */ addi r1, r1, 0x30 /* 80042E00 0003FD60 4E 80 00 20 */ blr -.global "__dt__Q24rstl24single_ptr<10CAuxWeapon>" -"__dt__Q24rstl24single_ptr<10CAuxWeapon>": +.global "__dt__Q24rstl24single_ptr<10CAuxWeapon>Fv" +"__dt__Q24rstl24single_ptr<10CAuxWeapon>Fv": /* 80042E04 0003FD64 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80042E08 0003FD68 7C 08 02 A6 */ mflr r0 /* 80042E0C 0003FD6C 90 01 00 14 */ stw r0, 0x14(r1) @@ -10015,8 +9987,8 @@ lbl_80042F54: /* 80042F70 0003FED0 38 21 00 20 */ addi r1, r1, 0x20 /* 80042F74 0003FED4 4E 80 00 20 */ blr -.global "__dt__Q24rstl34single_ptr<20CRainSplashGenerator>" -"__dt__Q24rstl34single_ptr<20CRainSplashGenerator>": +.global "__dt__Q24rstl34single_ptr<20CRainSplashGenerator>Fv" +"__dt__Q24rstl34single_ptr<20CRainSplashGenerator>Fv": /* 80042F78 0003FED8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80042F7C 0003FEDC 7C 08 02 A6 */ mflr r0 /* 80042F80 0003FEE0 90 01 00 14 */ stw r0, 0x14(r1) diff --git a/include/Kyoto/Input/CRumbleVoice.hpp b/include/Kyoto/Input/CRumbleVoice.hpp index d55ca981..59ea4f83 100644 --- a/include/Kyoto/Input/CRumbleVoice.hpp +++ b/include/Kyoto/Input/CRumbleVoice.hpp @@ -32,6 +32,10 @@ enum ERumblePriority { }; struct SAdsrData { + SAdsrData(); + SAdsrData(float attackGain, float autoReleaseDur, float attackDur, float decayDur, + float sustainGain, float releaseDur, bool hasSustain, bool autoRelease); + f32 x0_attackGain; f32 x4_autoReleaseDur; f32 x8_attackDur; @@ -52,6 +56,11 @@ struct SAdsrDelta { kP_Release, }; + SAdsrDelta(EPhase phase, ERumblePriority priority); + SAdsrDelta(EPhase phase); + static SAdsrDelta Stopped(); + static SAdsrDelta Start(ERumblePriority priority, bool prePulse); + f32 x0_curIntensity; f32 x4_attackTime; f32 x8_decayTime; @@ -67,9 +76,21 @@ class CRumbleVoice { private: rstl::vector< SAdsrData > x0_datas; rstl::vector< SAdsrDelta > x10_deltas; - rstl::reserved_vector< s16, 4 > x20_handleIds; - s16 x2c_usedChannels; + rstl::reserved_vector< u16, 4 > x20_handleIds; + u16 x2c_usedChannels; u8 x2e_lastId; + + CRumbleVoice(); + + s16 Activate(const SAdsrData& data, u16 idx, float gain, ERumblePriority prio); + void Deactivate(s16 id, bool b1); + void HardReset(); + bool UpdateChannel(SAdsrDelta& delta, const SAdsrData& data, float dt); + bool Update(float dt); + uint GetFreeChannel() const; + float GetIntensity() const; + bool OwnsSustained(s16 id) const; + s16 CreateRumbleHandle(u16 idx); }; #endif diff --git a/include/Kyoto/Input/RumbleAdsr.hpp b/include/Kyoto/Input/RumbleAdsr.hpp deleted file mode 100644 index 35322ea7..00000000 --- a/include/Kyoto/Input/RumbleAdsr.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef __RUMBLEADSR_HPP__ -#define __RUMBLEADSR_HPP__ - -enum ERumblePriority { kPriority_Zero, kPriority_One, kPriority_Two, kPriority_Three }; - -struct SAdsrDelta { - enum EPhase { kP_Stop, kP_PrePulse, kP_Attack, kP_Decay, kP_Sustain, kP_Release }; - - static SAdsrDelta Start(ERumblePriority priority, bool); - static SAdsrDelta Stopped(); - SAdsrDelta(EPhase phase); - SAdsrDelta(EPhase phase, ERumblePriority priority); - - float x0_curIntensity; - float x4_attackTime; - float x8_decayTime; - float xc_releaseTime; - float x10_autoReleaseTime; - float x14_attackIntensity; - float x18_sustainIntensity; - ERumblePriority x1c_priority; - EPhase x20_phase; -}; - -struct SAdsrData { - SAdsrData(); - SAdsrData(float, float, float, float, float, float, bool, bool); - - float x0_attackGain; - float x4_autoReleaseDur; - float x8_attackDur; - float xc_decayDur; - float x10_sustainGain; - float x14_releaseDur; - bool x18_24_hasSustain : 1; - bool x18_25_autoRelease : 1; -}; - -#endif // __RUBMLEADSR_HPP__ diff --git a/include/MetroidPrime/CRainSplashGenerator.hpp b/include/MetroidPrime/CRainSplashGenerator.hpp index 81354130..1815f104 100644 --- a/include/MetroidPrime/CRainSplashGenerator.hpp +++ b/include/MetroidPrime/CRainSplashGenerator.hpp @@ -1,17 +1,49 @@ #ifndef _CRAINSPLASHGENERATOR_HPP #define _CRAINSPLASHGENERATOR_HPP +#include "rstl/reserved_vector.hpp" +#include "rstl/vector.hpp" #include "types.h" class CVector3f; class CRainSplashGenerator { + struct SSplashLine { + float x0_t; + float x4_xEnd; + float x8_yEnd; + float xc_speed; + float x10_zParabolaHeight; + u8 x14_; + u8 x15_length; + bool x16_active : 1; + SSplashLine(); + void Update(float dt, CStateManager& mgr); + void Draw(float alpha, float dt, const CVector3f& pos); + void SetActive() { x16_active = true; } + }; + + struct SRainSplash { + rstl::reserved_vector< SSplashLine, 4 > x0_lines; + CVector3f x64_pos; + float x70_; + SRainSplash(); + void Update(float dt, CStateManager& mgr); + bool IsActive() const; + void Draw(float alpha, float dt, const CVector3f& pos); + void SetPoint(const CVector3f& pos); + }; + public: CRainSplashGenerator(const CVector3f& scale, int maxSplashes, int genRate, float minZ, float alpha); + ~CRainSplashGenerator() {} private: - u8 x0_pad[0x4c]; + rstl::vector< SRainSplash > x0_rainSplashes; + CRandom16 x10_random; + CVector3f x14_scale; + u8 x0_pad[0x2c]; }; CHECK_SIZEOF(CRainSplashGenerator, 0x4c) diff --git a/include/rstl/construct.hpp b/include/rstl/construct.hpp index e0953d0a..17041555 100644 --- a/include/rstl/construct.hpp +++ b/include/rstl/construct.hpp @@ -41,7 +41,7 @@ inline void uninitialized_copy_n(S src, int n, D dest) { template < typename D, typename S > inline void uninitialized_fill_n(D dest, int n, const S& value) { D cur = dest; - for (; n > 0; --n, ++cur) { + for (size_t i = 0; i < n ; ++i, ++cur) { construct(&*cur, value); } } diff --git a/src/Kyoto/Input/RumbleAdsr.cpp b/src/Kyoto/Input/RumbleAdsr.cpp index 6b646925..c64f9aa4 100644 --- a/src/Kyoto/Input/RumbleAdsr.cpp +++ b/src/Kyoto/Input/RumbleAdsr.cpp @@ -1,4 +1,4 @@ -#include "Kyoto/Input/RumbleAdsr.hpp" +#include "Kyoto/Input/CRumbleVoice.hpp" SAdsrDelta SAdsrDelta::Start(ERumblePriority priority, bool prePulse) { return SAdsrDelta(prePulse ? kP_PrePulse : kP_Attack, priority); @@ -11,7 +11,7 @@ SAdsrDelta::SAdsrDelta(EPhase phase) , x8_decayTime(0.f) , xc_releaseTime(0.f) , x10_autoReleaseTime(0.f) -, x1c_priority(kPriority_Zero) +, x1c_priority(kRP_None) , x20_phase(phase) {} SAdsrDelta::SAdsrDelta(EPhase phase, ERumblePriority priority)