From 7fd19f0c1202418da99071179a3cda58f92b6447 Mon Sep 17 00:00:00 2001 From: Luke Street Date: Fri, 28 Oct 2022 17:42:35 -0400 Subject: [PATCH] CPatterned & related headers; almost match CPuffer --- asm/MetroidPrime/CAnimData.s | 4 +- asm/MetroidPrime/CPhysicsActor.s | 4 +- asm/MetroidPrime/Enemies/CAtomicAlpha.s | 2 +- asm/MetroidPrime/Enemies/CAtomicBeta.s | 2 +- asm/MetroidPrime/Enemies/CBabygoth.s | 4 +- asm/MetroidPrime/Enemies/CBeetle.s | 4 +- asm/MetroidPrime/Enemies/CBloodFlower.s | 6 +- asm/MetroidPrime/Enemies/CBouncyGrenade.s | 2 +- asm/MetroidPrime/Enemies/CBurrower.s | 2 +- asm/MetroidPrime/Enemies/CChozoGhost.s | 6 +- asm/MetroidPrime/Enemies/CDrone.s | 2 +- asm/MetroidPrime/Enemies/CElitePirate.s | 2 +- asm/MetroidPrime/Enemies/CEyeBall.s | 2 +- asm/MetroidPrime/Enemies/CFireFlea.s | 2 +- asm/MetroidPrime/Enemies/CFlaahgra.s | 2 +- asm/MetroidPrime/Enemies/CFlaahgraTentacle.s | 2 +- asm/MetroidPrime/Enemies/CFlickerBat.s | 2 +- asm/MetroidPrime/Enemies/CFlyingPirate.s | 16 +- asm/MetroidPrime/Enemies/CGrenadeLauncher.s | 2 +- asm/MetroidPrime/Enemies/CIceSheegoth.s | 4 +- asm/MetroidPrime/Enemies/CJellyZap.s | 2 +- asm/MetroidPrime/Enemies/CMagdolite.s | 2 +- asm/MetroidPrime/Enemies/CMetaree.s | 2 +- asm/MetroidPrime/Enemies/CMetroid.s | 2 +- asm/MetroidPrime/Enemies/CMetroidBeta.s | 2 +- .../Enemies/CMetroidPrimeEssence.s | 6 +- asm/MetroidPrime/Enemies/CMetroidPrimeExo.s | 12 +- .../Enemies/CMetroidPrimeProjectile.s | 2 +- asm/MetroidPrime/Enemies/CNewIntroBoss.s | 2 +- asm/MetroidPrime/Enemies/CParasite.s | 4 +- asm/MetroidPrime/Enemies/CPatterned.s | 6 +- .../Enemies/CPhazonHealingNodule.s | 2 +- asm/MetroidPrime/Enemies/CPuddleSpore.s | 2 +- asm/MetroidPrime/Enemies/CPuddleToadGamma.s | 4 +- asm/MetroidPrime/Enemies/CPuffer.s | 287 +++++++++++++-- asm/MetroidPrime/Enemies/CRidley.s | 237 +----------- asm/MetroidPrime/Enemies/CRipper.s | 2 +- asm/MetroidPrime/Enemies/CSpacePirate.s | 6 +- asm/MetroidPrime/Enemies/CSpankWeed.s | 2 +- asm/MetroidPrime/Enemies/CThardus.s | 2 +- .../Enemies/CThardusRockProjectile.s | 2 +- asm/MetroidPrime/Enemies/CTryclops.s | 4 +- asm/MetroidPrime/Enemies/CWallCrawlerSwarm.s | 6 +- asm/MetroidPrime/Enemies/CWallWalker.s | 2 +- asm/MetroidPrime/Enemies/CWarWasp.s | 2 +- asm/MetroidPrime/ScriptLoader.s | 2 +- asm/MetroidPrime/ScriptObjects/CEnergyBall.s | 2 +- asm/MetroidPrime/ScriptObjects/CFire.s | 4 +- .../ScriptObjects/CScriptDebris.s | 2 +- include/Kyoto/Animation/CPASAnimState.hpp | 2 +- include/Kyoto/Math/CTransform4f.hpp | 7 +- include/Kyoto/Math/CVector3f.hpp | 8 +- .../BodyState/CBodyController.hpp | 28 +- .../BodyState/CBodyStateCmdMgr.hpp | 338 +++++++++++++++--- include/MetroidPrime/CActor.hpp | 1 + include/MetroidPrime/CAnimData.hpp | 4 +- include/MetroidPrime/CDamageInfo.hpp | 2 + include/MetroidPrime/CExplosion.hpp | 2 +- include/MetroidPrime/CPhysicsActor.hpp | 4 +- include/MetroidPrime/CStateManager.hpp | 17 +- include/MetroidPrime/CSteeringBehaviors.hpp | 7 + include/MetroidPrime/Enemies/CAi.hpp | 9 + .../Enemies/CKnockBackController.hpp | 219 ++++++------ include/MetroidPrime/Enemies/CPatterned.hpp | 317 +++++++++++++++- .../MetroidPrime/Enemies/CPatternedInfo.hpp | 41 +-- include/MetroidPrime/Enemies/CPuffer.hpp | 47 +++ include/MetroidPrime/ScriptObjects/CFire.hpp | 19 +- .../ScriptObjects/CScriptSpawnPoint.hpp | 7 +- src/MetroidPrime/Enemies/CPuffer.cpp | 159 ++++++++ src/MetroidPrime/ScriptObjects/CFire.cpp | 2 +- 70 files changed, 1355 insertions(+), 569 deletions(-) create mode 100644 include/MetroidPrime/Enemies/CPuffer.hpp create mode 100644 src/MetroidPrime/Enemies/CPuffer.cpp diff --git a/asm/MetroidPrime/CAnimData.s b/asm/MetroidPrime/CAnimData.s index fe7e9e73..e247c65f 100644 --- a/asm/MetroidPrime/CAnimData.s +++ b/asm/MetroidPrime/CAnimData.s @@ -1968,8 +1968,8 @@ lbl_8002ADA8: /* 8002ADB8 00027D18 38 21 00 20 */ addi r1, r1, 0x20 /* 8002ADBC 00027D1C 4E 80 00 20 */ blr -.global SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager -SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager: +.global "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" +"SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager": /* 8002ADC0 00027D20 94 21 FF C0 */ stwu r1, -0x40(r1) /* 8002ADC4 00027D24 7C 08 02 A6 */ mflr r0 /* 8002ADC8 00027D28 90 01 00 44 */ stw r0, 0x44(r1) diff --git a/asm/MetroidPrime/CPhysicsActor.s b/asm/MetroidPrime/CPhysicsActor.s index 778f0f49..fa0f8c20 100644 --- a/asm/MetroidPrime/CPhysicsActor.s +++ b/asm/MetroidPrime/CPhysicsActor.s @@ -57,8 +57,8 @@ lbl_805A7634: .section .sdata2, "a" .balign 8 -.global skGravityConstant__13CPhysicsActor -skGravityConstant__13CPhysicsActor: +.global kGravityAccel__13CPhysicsActor +kGravityAccel__13CPhysicsActor: # ROM: 0x3F7C60 .float 24.525002 diff --git a/asm/MetroidPrime/Enemies/CAtomicAlpha.s b/asm/MetroidPrime/Enemies/CAtomicAlpha.s index 650d3714..44938533 100644 --- a/asm/MetroidPrime/Enemies/CAtomicAlpha.s +++ b/asm/MetroidPrime/Enemies/CAtomicAlpha.s @@ -1045,7 +1045,7 @@ __ct__12CAtomicAlpha: /* 80245730 00242690 90 81 00 1C */ stw r4, 0x1c(r1) /* 80245734 00242694 38 80 00 00 */ li r4, 0 /* 80245738 00242698 38 E0 00 00 */ li r7, 0 -/* 8024573C 0024269C 4B E3 7D 15 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 8024573C 0024269C 4B E3 7D 15 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 80245740 002426A0 3C 60 80 3F */ lis r3, lbl_803E88A8@ha /* 80245744 002426A4 C0 22 B8 40 */ lfs f1, lbl_805AD560@sda21(r2) /* 80245748 002426A8 38 03 88 A8 */ addi r0, r3, lbl_803E88A8@l diff --git a/asm/MetroidPrime/Enemies/CAtomicBeta.s b/asm/MetroidPrime/Enemies/CAtomicBeta.s index 600fabf8..e9c3211e 100644 --- a/asm/MetroidPrime/Enemies/CAtomicBeta.s +++ b/asm/MetroidPrime/Enemies/CAtomicBeta.s @@ -1229,7 +1229,7 @@ __ct__11CAtomicBeta: /* 802518FC 0024E85C 38 80 00 01 */ li r4, 1 /* 80251900 0024E860 A3 E1 01 06 */ lhz r31, 0x106(r1) /* 80251904 0024E864 38 E0 00 00 */ li r7, 0 -/* 80251908 0024E868 4B E2 BB 49 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80251908 0024E868 4B E2 BB 49 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 8025190C 0024E86C 3C 80 80 3F */ lis r4, lbl_803E8E4C@ha /* 80251910 0024E870 3C 60 45 4C */ lis r3, 0x454C5343@ha /* 80251914 0024E874 38 04 8E 4C */ addi r0, r4, lbl_803E8E4C@l diff --git a/asm/MetroidPrime/Enemies/CBabygoth.s b/asm/MetroidPrime/Enemies/CBabygoth.s index f3c9b83b..046f5582 100644 --- a/asm/MetroidPrime/Enemies/CBabygoth.s +++ b/asm/MetroidPrime/Enemies/CBabygoth.s @@ -339,7 +339,7 @@ GetCollisionPrimitive__9CBabygothCFv: .global GetGravityConstant__9CBabygothCFv GetGravityConstant__9CBabygothCFv: /* 8021D468 0021A3C8 C0 22 B4 00 */ lfs f1, lbl_805AD120@sda21(r2) -/* 8021D46C 0021A3CC C0 02 96 A0 */ lfs f0, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 8021D46C 0021A3CC C0 02 96 A0 */ lfs f0, kGravityAccel__13CPhysicsActor@sda21(r2) /* 8021D470 0021A3D0 EC 21 00 32 */ fmuls f1, f1, f0 /* 8021D474 0021A3D4 4E 80 00 20 */ blr @@ -7296,7 +7296,7 @@ lbl_80223764: /* 802237DC 0022073C 91 41 00 18 */ stw r10, 0x18(r1) /* 802237E0 00220740 7D 6A 5B 78 */ mr r10, r11 /* 802237E4 00220744 90 01 00 1C */ stw r0, 0x1c(r1) -/* 802237E8 00220748 4B E5 9C 69 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 802237E8 00220748 4B E5 9C 69 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 802237EC 0022074C 3C 60 80 3E */ lis r3, lbl_803E7350@ha /* 802237F0 00220750 38 A0 FF FF */ li r5, -1 /* 802237F4 00220754 38 63 73 50 */ addi r3, r3, lbl_803E7350@l diff --git a/asm/MetroidPrime/Enemies/CBeetle.s b/asm/MetroidPrime/Enemies/CBeetle.s index 996c85bf..763da442 100644 --- a/asm/MetroidPrime/Enemies/CBeetle.s +++ b/asm/MetroidPrime/Enemies/CBeetle.s @@ -428,7 +428,7 @@ IsListening__7CBeetleCFv: .global GetGravityConstant__7CBeetleCFv GetGravityConstant__7CBeetleCFv: /* 800E2EFC 000DFE5C C0 22 8F CC */ lfs f1, lbl_805AACEC@sda21(r2) -/* 800E2F00 000DFE60 C0 02 96 A0 */ lfs f0, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 800E2F00 000DFE60 C0 02 96 A0 */ lfs f0, kGravityAccel__13CPhysicsActor@sda21(r2) /* 800E2F04 000DFE64 EC 21 00 32 */ fmuls f1, f1, f0 /* 800E2F08 000DFE68 4E 80 00 20 */ blr @@ -5809,7 +5809,7 @@ lbl_800E7BA4: /* 800E7C64 000E4BC4 38 80 00 03 */ li r4, 3 /* 800E7C68 000E4BC8 83 E1 02 A8 */ lwz r31, 0x2a8(r1) /* 800E7C6C 000E4BCC 82 E1 02 B0 */ lwz r23, 0x2b0(r1) -/* 800E7C70 000E4BD0 4B F9 57 E1 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 800E7C70 000E4BD0 4B F9 57 E1 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 800E7C74 000E4BD4 3C 60 80 3E */ lis r3, lbl_803DF890@ha /* 800E7C78 000E4BD8 38 00 FF FF */ li r0, -1 /* 800E7C7C 000E4BDC 38 63 F8 90 */ addi r3, r3, lbl_803DF890@l diff --git a/asm/MetroidPrime/Enemies/CBloodFlower.s b/asm/MetroidPrime/Enemies/CBloodFlower.s index 88de6703..aa28f537 100644 --- a/asm/MetroidPrime/Enemies/CBloodFlower.s +++ b/asm/MetroidPrime/Enemies/CBloodFlower.s @@ -581,7 +581,7 @@ sub_80118fec: /* 80119028 00115F88 38 81 00 08 */ addi r4, r1, 8 /* 8011902C 00115F8C 38 A0 00 00 */ li r5, 0 /* 80119030 00115F90 80 63 00 10 */ lwz r3, 0x10(r3) -/* 80119034 00115F94 4B F1 1D 8D */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 80119034 00115F94 4B F1 1D 8D */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 80119038 00115F98 38 61 00 08 */ addi r3, r1, 8 /* 8011903C 00115F9C 48 22 4A A5 */ bl "internal_dereference__Q24rstl66basic_string,Q24rstl17rmemory_allocator>Fv" /* 80119040 00115FA0 80 01 00 24 */ lwz r0, 0x24(r1) @@ -611,7 +611,7 @@ sub_80119058: /* 80119094 00115FF4 38 81 00 08 */ addi r4, r1, 8 /* 80119098 00115FF8 38 A0 00 01 */ li r5, 1 /* 8011909C 00115FFC 80 63 00 10 */ lwz r3, 0x10(r3) -/* 801190A0 00116000 4B F1 1D 21 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 801190A0 00116000 4B F1 1D 21 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 801190A4 00116004 38 61 00 08 */ addi r3, r1, 8 /* 801190A8 00116008 48 22 4A 39 */ bl "internal_dereference__Q24rstl66basic_string,Q24rstl17rmemory_allocator>Fv" /* 801190AC 0011600C 80 01 00 24 */ lwz r0, 0x24(r1) @@ -1748,7 +1748,7 @@ Accept__12CBloodFlowerFR8IVisitor: /* 8011A084 00116FE4 83 41 01 98 */ lwz r26, 0x198(r1) /* 8011A088 00116FE8 83 61 01 9C */ lwz r27, 0x19c(r1) /* 8011A08C 00116FEC 83 81 01 A0 */ lwz r28, 0x1a0(r1) -/* 8011A090 00116FF0 4B F6 33 C1 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 8011A090 00116FF0 4B F6 33 C1 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 8011A094 00116FF4 3C 60 80 3E */ lis r3, lbl_803E0350@ha /* 8011A098 00116FF8 3C 80 50 41 */ lis r4, 0x50415254@ha /* 8011A09C 00116FFC 38 03 03 50 */ addi r0, r3, lbl_803E0350@l diff --git a/asm/MetroidPrime/Enemies/CBouncyGrenade.s b/asm/MetroidPrime/Enemies/CBouncyGrenade.s index d9bb2397..0e541b90 100644 --- a/asm/MetroidPrime/Enemies/CBouncyGrenade.s +++ b/asm/MetroidPrime/Enemies/CBouncyGrenade.s @@ -1281,7 +1281,7 @@ __ct__14CBouncyGrenade: /* 8022F440 0022C3A0 48 00 01 5D */ bl sub_8022f59c /* 8022F444 0022C3A4 90 77 02 AC */ stw r3, 0x2ac(r23) /* 8022F448 0022C3A8 38 A0 00 00 */ li r5, 0 -/* 8022F44C 0022C3AC C0 02 96 A0 */ lfs f0, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 8022F44C 0022C3AC C0 02 96 A0 */ lfs f0, kGravityAccel__13CPhysicsActor@sda21(r2) /* 8022F450 0022C3B0 7E E3 BB 78 */ mr r3, r23 /* 8022F454 0022C3B4 D3 F7 02 B0 */ stfs f31, 0x2b0(r23) /* 8022F458 0022C3B8 38 81 00 28 */ addi r4, r1, 0x28 diff --git a/asm/MetroidPrime/Enemies/CBurrower.s b/asm/MetroidPrime/Enemies/CBurrower.s index 343209b4..62c8d063 100644 --- a/asm/MetroidPrime/Enemies/CBurrower.s +++ b/asm/MetroidPrime/Enemies/CBurrower.s @@ -1404,7 +1404,7 @@ __ct__9CBurrower: /* 80270B78 0026DAD8 91 41 00 18 */ stw r10, 0x18(r1) /* 80270B7C 0026DADC 7D 8A 63 78 */ mr r10, r12 /* 80270B80 0026DAE0 91 61 00 1C */ stw r11, 0x1c(r1) -/* 80270B84 0026DAE4 4B E0 C8 CD */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80270B84 0026DAE4 4B E0 C8 CD */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 80270B88 0026DAE8 3C 60 80 3F */ lis r3, lbl_803EA7C4@ha /* 80270B8C 0026DAEC C0 22 BB B8 */ lfs f1, lbl_805AD8D8@sda21(r2) /* 80270B90 0026DAF0 38 03 A7 C4 */ addi r0, r3, lbl_803EA7C4@l diff --git a/asm/MetroidPrime/Enemies/CChozoGhost.s b/asm/MetroidPrime/Enemies/CChozoGhost.s index 1dc11198..9ce451be 100644 --- a/asm/MetroidPrime/Enemies/CChozoGhost.s +++ b/asm/MetroidPrime/Enemies/CChozoGhost.s @@ -1643,7 +1643,7 @@ lbl_801404B4: /* 80140544 0013D4A4 7F C6 F3 78 */ mr r6, r30 /* 80140548 0013D4A8 80 65 00 10 */ lwz r3, 0x10(r5) /* 8014054C 0013D4AC 38 A0 00 01 */ li r5, 1 -/* 80140550 0013D4B0 4B EE A8 71 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 80140550 0013D4B0 4B EE A8 71 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 80140554 0013D4B4 88 1F 06 65 */ lbz r0, 0x665(r31) /* 80140558 0013D4B8 38 60 00 00 */ li r3, 0 /* 8014055C 0013D4BC 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18 @@ -1704,7 +1704,7 @@ lbl_801405F4: /* 80140634 0013D594 7F C6 F3 78 */ mr r6, r30 /* 80140638 0013D598 80 65 00 10 */ lwz r3, 0x10(r5) /* 8014063C 0013D59C 38 A0 00 00 */ li r5, 0 -/* 80140640 0013D5A0 4B EE A7 81 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 80140640 0013D5A0 4B EE A7 81 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 80140644 0013D5A4 38 7F 04 60 */ addi r3, r31, 0x460 /* 80140648 0013D5A8 38 80 00 02 */ li r4, 2 /* 8014064C 0013D5AC 38 A0 00 01 */ li r5, 1 @@ -3463,7 +3463,7 @@ Accept__11CChozoGhostFR8IVisitor: /* 80141F44 0013EEA4 C3 E1 03 30 */ lfs f31, 0x330(r1) /* 80141F48 0013EEA8 82 E1 03 34 */ lwz r23, 0x334(r1) /* 80141F4C 0013EEAC 81 E1 03 38 */ lwz r15, 0x338(r1) -/* 80141F50 0013EEB0 4B F3 B5 01 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80141F50 0013EEB0 4B F3 B5 01 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 80141F54 0013EEB4 3C 60 80 3E */ lis r3, lbl_803E1918@ha /* 80141F58 0013EEB8 7F 24 CB 78 */ mr r4, r25 /* 80141F5C 0013EEBC 38 03 19 18 */ addi r0, r3, lbl_803E1918@l diff --git a/asm/MetroidPrime/Enemies/CDrone.s b/asm/MetroidPrime/Enemies/CDrone.s index bf3c8213..c18810da 100644 --- a/asm/MetroidPrime/Enemies/CDrone.s +++ b/asm/MetroidPrime/Enemies/CDrone.s @@ -8957,7 +8957,7 @@ lbl_8016689C: /* 801668D0 00163830 91 61 00 14 */ stw r11, 0x14(r1) /* 801668D4 00163834 92 A1 00 18 */ stw r21, 0x18(r1) /* 801668D8 00163838 90 01 00 1C */ stw r0, 0x1c(r1) -/* 801668DC 0016383C 4B F1 6B 75 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 801668DC 0016383C 4B F1 6B 75 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 801668E0 00163840 3C 60 80 3E */ lis r3, lbl_803E36A8@ha /* 801668E4 00163844 3C 80 43 52 */ lis r4, 0x43525343@ha /* 801668E8 00163848 38 03 36 A8 */ addi r0, r3, lbl_803E36A8@l diff --git a/asm/MetroidPrime/Enemies/CElitePirate.s b/asm/MetroidPrime/Enemies/CElitePirate.s index 41057228..84991a1f 100644 --- a/asm/MetroidPrime/Enemies/CElitePirate.s +++ b/asm/MetroidPrime/Enemies/CElitePirate.s @@ -7376,7 +7376,7 @@ lbl_8022D774: /* 8022D7F0 0022A750 91 41 00 18 */ stw r10, 0x18(r1) /* 8022D7F4 0022A754 7D 8A 63 78 */ mr r10, r12 /* 8022D7F8 0022A758 90 01 00 1C */ stw r0, 0x1c(r1) -/* 8022D7FC 0022A75C 4B E4 FC 55 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 8022D7FC 0022A75C 4B E4 FC 55 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 8022D800 0022A760 3C 60 80 3E */ lis r3, lbl_803E7AE0@ha /* 8022D804 0022A764 38 A0 FF FF */ li r5, -1 /* 8022D808 0022A768 38 63 7A E0 */ addi r3, r3, lbl_803E7AE0@l diff --git a/asm/MetroidPrime/Enemies/CEyeBall.s b/asm/MetroidPrime/Enemies/CEyeBall.s index 161a52bf..93083a78 100644 --- a/asm/MetroidPrime/Enemies/CEyeBall.s +++ b/asm/MetroidPrime/Enemies/CEyeBall.s @@ -1455,7 +1455,7 @@ Accept__8CEyeBallFR8IVisitor: /* 802257A4 00222704 83 A1 00 BC */ lwz r29, 0xbc(r1) /* 802257A8 00222708 83 C1 00 C0 */ lwz r30, 0xc0(r1) /* 802257AC 0022270C 8B E1 00 C7 */ lbz r31, 0xc7(r1) -/* 802257B0 00222710 4B E5 7C A1 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 802257B0 00222710 4B E5 7C A1 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 802257B4 00222714 3C 60 80 3E */ lis r3, lbl_803E774C@ha /* 802257B8 00222718 3C 80 80 3D */ lis r4, lbl_803D3248@ha /* 802257BC 0022271C 38 03 77 4C */ addi r0, r3, lbl_803E774C@l diff --git a/asm/MetroidPrime/Enemies/CFireFlea.s b/asm/MetroidPrime/Enemies/CFireFlea.s index 4a3c41de..f79df0ea 100644 --- a/asm/MetroidPrime/Enemies/CFireFlea.s +++ b/asm/MetroidPrime/Enemies/CFireFlea.s @@ -1450,7 +1450,7 @@ Accept__9CFireFleaFR8IVisitor: /* 80143A18 00140978 91 21 00 18 */ stw r9, 0x18(r1) /* 80143A1C 0014097C 7D 69 5B 78 */ mr r9, r11 /* 80143A20 00140980 90 01 00 1C */ stw r0, 0x1c(r1) -/* 80143A24 00140984 4B F3 9A 2D */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80143A24 00140984 4B F3 9A 2D */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 80143A28 00140988 3C 60 80 3E */ lis r3, lbl_803E1C88@ha /* 80143A2C 0014098C C0 22 9B CC */ lfs f1, lbl_805AB8EC@sda21(r2) /* 80143A30 00140990 38 03 1C 88 */ addi r0, r3, lbl_803E1C88@l diff --git a/asm/MetroidPrime/Enemies/CFlaahgra.s b/asm/MetroidPrime/Enemies/CFlaahgra.s index 37ba5606..0c90ed2f 100644 --- a/asm/MetroidPrime/Enemies/CFlaahgra.s +++ b/asm/MetroidPrime/Enemies/CFlaahgra.s @@ -7557,7 +7557,7 @@ lbl_801B39AC: /* 801B3A80 001B09E0 90 01 00 14 */ stw r0, 0x14(r1) /* 801B3A84 001B09E4 93 E1 00 18 */ stw r31, 0x18(r1) /* 801B3A88 001B09E8 90 01 00 1C */ stw r0, 0x1c(r1) -/* 801B3A8C 001B09EC 4B EC 99 C5 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 801B3A8C 001B09EC 4B EC 99 C5 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 801B3A90 001B09F0 38 61 00 88 */ addi r3, r1, 0x88 /* 801B3A94 001B09F4 38 80 FF FF */ li r4, -1 /* 801B3A98 001B09F8 4B F6 2F B5 */ bl __dt__10CModelDataFv diff --git a/asm/MetroidPrime/Enemies/CFlaahgraTentacle.s b/asm/MetroidPrime/Enemies/CFlaahgraTentacle.s index c0896560..9b6aef0d 100644 --- a/asm/MetroidPrime/Enemies/CFlaahgraTentacle.s +++ b/asm/MetroidPrime/Enemies/CFlaahgraTentacle.s @@ -1383,7 +1383,7 @@ lbl_801F0FA0: /* 801F1010 001EDF70 91 41 00 18 */ stw r10, 0x18(r1) /* 801F1014 001EDF74 7D 8A 63 78 */ mr r10, r12 /* 801F1018 001EDF78 90 01 00 1C */ stw r0, 0x1c(r1) -/* 801F101C 001EDF7C 4B E8 C4 35 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 801F101C 001EDF7C 4B E8 C4 35 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 801F1020 001EDF80 3C 80 80 3E */ lis r4, lbl_803E6408@ha /* 801F1024 001EDF84 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha /* 801F1028 001EDF88 38 84 64 08 */ addi r4, r4, lbl_803E6408@l diff --git a/asm/MetroidPrime/Enemies/CFlickerBat.s b/asm/MetroidPrime/Enemies/CFlickerBat.s index b943cb2f..894cf724 100644 --- a/asm/MetroidPrime/Enemies/CFlickerBat.s +++ b/asm/MetroidPrime/Enemies/CFlickerBat.s @@ -1393,7 +1393,7 @@ lbl_801312E0: /* 80131378 0012E2D8 38 80 00 0D */ li r4, 0xd /* 8013137C 0012E2DC 91 61 00 18 */ stw r11, 0x18(r1) /* 80131380 0012E2E0 90 01 00 1C */ stw r0, 0x1c(r1) -/* 80131384 0012E2E4 4B F4 C0 CD */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80131384 0012E2E4 4B F4 C0 CD */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 80131388 0012E2E8 3C 60 80 3E */ lis r3, lbl_803E0DE0@ha /* 8013138C 0012E2EC 7F A0 00 34 */ cntlzw r0, r29 /* 80131390 0012E2F0 38 63 0D E0 */ addi r3, r3, lbl_803E0DE0@l diff --git a/asm/MetroidPrime/Enemies/CFlyingPirate.s b/asm/MetroidPrime/Enemies/CFlyingPirate.s index 584753c8..145be35c 100644 --- a/asm/MetroidPrime/Enemies/CFlyingPirate.s +++ b/asm/MetroidPrime/Enemies/CFlyingPirate.s @@ -6253,7 +6253,7 @@ lbl_801F9394: /* 801F93AC 001F630C 7F C6 F3 78 */ mr r6, r30 /* 801F93B0 001F6310 80 65 00 10 */ lwz r3, 0x10(r5) /* 801F93B4 001F6314 38 A0 00 00 */ li r5, 0 -/* 801F93B8 001F6318 4B E3 1A 09 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 801F93B8 001F6318 4B E3 1A 09 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 801F93BC 001F631C A1 1D 00 08 */ lhz r8, 8(r29) /* 801F93C0 001F6320 7F C4 F3 78 */ mr r4, r30 /* 801F93C4 001F6324 38 A1 00 10 */ addi r5, r1, 0x10 @@ -11204,7 +11204,7 @@ lbl_801FDB4C: /* 801FDB58 001FAAB8 7F E6 FB 78 */ mr r6, r31 /* 801FDB5C 001FAABC 80 65 00 10 */ lwz r3, 0x10(r5) /* 801FDB60 001FAAC0 38 A0 00 01 */ li r5, 1 -/* 801FDB64 001FAAC4 4B E2 D2 5D */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 801FDB64 001FAAC4 4B E2 D2 5D */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 801FDB68 001FAAC8 48 00 00 58 */ b lbl_801FDBC0 lbl_801FDB6C: /* 801FDB6C 001FAACC 3B BE 06 88 */ addi r29, r30, 0x688 @@ -11229,7 +11229,7 @@ lbl_801FDB98: /* 801FDBB0 001FAB10 7F E6 FB 78 */ mr r6, r31 /* 801FDBB4 001FAB14 80 65 00 10 */ lwz r3, 0x10(r5) /* 801FDBB8 001FAB18 38 A0 00 00 */ li r5, 0 -/* 801FDBBC 001FAB1C 4B E2 D2 05 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 801FDBBC 001FAB1C 4B E2 D2 05 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" lbl_801FDBC0: /* 801FDBC0 001FAB20 E3 E1 00 F8 */ psq_l f31, 248(r1), 0, qr0 /* 801FDBC4 001FAB24 80 01 01 04 */ lwz r0, 0x104(r1) @@ -11273,7 +11273,7 @@ lbl_801FDC34: /* 801FDC4C 001FABAC 7F 64 DB 78 */ mr r4, r27 /* 801FDC50 001FABB0 7F C5 F3 78 */ mr r5, r30 /* 801FDC54 001FABB4 7F A6 EB 78 */ mr r6, r29 -/* 801FDC58 001FABB8 4B E2 D1 69 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 801FDC58 001FABB8 4B E2 D1 69 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 801FDC5C 001FABBC 88 1C 06 A0 */ lbz r0, 0x6a0(r28) /* 801FDC60 001FABC0 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f /* 801FDC64 001FABC4 41 82 00 1C */ beq lbl_801FDC80 @@ -11282,7 +11282,7 @@ lbl_801FDC34: /* 801FDC70 001FABD0 38 84 20 E8 */ addi r4, r4, lbl_805720E8@l /* 801FDC74 001FABD4 7F C5 F3 78 */ mr r5, r30 /* 801FDC78 001FABD8 7F A6 EB 78 */ mr r6, r29 -/* 801FDC7C 001FABDC 4B E2 D1 45 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 801FDC7C 001FABDC 4B E2 D1 45 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" lbl_801FDC80: /* 801FDC80 001FABE0 88 1C 06 A2 */ lbz r0, 0x6a2(r28) /* 801FDC84 001FABE4 53 C0 2E B4 */ rlwimi r0, r30, 5, 0x1a, 0x1a @@ -11325,7 +11325,7 @@ lbl_801FDCF4: /* 801FDD0C 001FAC6C 7F E3 FB 78 */ mr r3, r31 /* 801FDD10 001FAC70 38 84 20 F8 */ addi r4, r4, lbl_805720F8@l /* 801FDD14 001FAC74 7F A6 EB 78 */ mr r6, r29 -/* 801FDD18 001FAC78 4B E2 D0 A9 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 801FDD18 001FAC78 4B E2 D0 A9 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 801FDD1C 001FAC7C 88 1C 06 A2 */ lbz r0, 0x6a2(r28) /* 801FDD20 001FAC80 53 C0 26 F6 */ rlwimi r0, r30, 4, 0x1b, 0x1b /* 801FDD24 001FAC84 98 1C 06 A2 */ stb r0, 0x6a2(r28) @@ -11586,7 +11586,7 @@ lbl_801FE090: /* 801FE0B4 001FB014 7F C6 F3 78 */ mr r6, r30 /* 801FE0B8 001FB018 80 65 00 10 */ lwz r3, 0x10(r5) /* 801FE0BC 001FB01C 38 A0 00 01 */ li r5, 1 -/* 801FE0C0 001FB020 4B E2 CD 01 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 801FE0C0 001FB020 4B E2 CD 01 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 801FE0C4 001FB024 48 00 02 B4 */ b lbl_801FE378 .global lbl_801FE0C8 lbl_801FE0C8: @@ -11841,7 +11841,7 @@ Accept__13CFlyingPirateFR8IVisitor: /* 801FE44C 001FB3AC 91 21 00 18 */ stw r9, 0x18(r1) /* 801FE450 001FB3B0 7D 89 63 78 */ mr r9, r12 /* 801FE454 001FB3B4 91 61 00 1C */ stw r11, 0x1c(r1) -/* 801FE458 001FB3B8 4B E7 EF F9 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 801FE458 001FB3B8 4B E7 EF F9 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 801FE45C 001FB3BC 3C 60 80 3E */ lis r3, __vt__13CFlyingPirate@ha /* 801FE460 001FB3C0 7F 24 CB 78 */ mr r4, r25 /* 801FE464 001FB3C4 38 03 68 5C */ addi r0, r3, __vt__13CFlyingPirate@l diff --git a/asm/MetroidPrime/Enemies/CGrenadeLauncher.s b/asm/MetroidPrime/Enemies/CGrenadeLauncher.s index 7b4b55e3..de0b2877 100644 --- a/asm/MetroidPrime/Enemies/CGrenadeLauncher.s +++ b/asm/MetroidPrime/Enemies/CGrenadeLauncher.s @@ -1309,7 +1309,7 @@ lbl_802306CC: /* 80230710 0022D670 48 0E 39 E5 */ bl Magnitude__9CVector2fCFv /* 80230714 0022D674 C0 42 B6 94 */ lfs f2, lbl_805AD3B4@sda21(r2) /* 80230718 0022D678 FF E0 08 90 */ fmr f31, f1 -/* 8023071C 0022D67C C0 02 96 A0 */ lfs f0, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 8023071C 0022D67C C0 02 96 A0 */ lfs f0, kGravityAccel__13CPhysicsActor@sda21(r2) /* 80230720 0022D680 C0 3D 00 00 */ lfs f1, 0(r29) /* 80230724 0022D684 EC 02 00 32 */ fmuls f0, f2, f0 /* 80230728 0022D688 C0 5D 00 04 */ lfs f2, 4(r29) diff --git a/asm/MetroidPrime/Enemies/CIceSheegoth.s b/asm/MetroidPrime/Enemies/CIceSheegoth.s index b9405331..cc12ff75 100644 --- a/asm/MetroidPrime/Enemies/CIceSheegoth.s +++ b/asm/MetroidPrime/Enemies/CIceSheegoth.s @@ -366,7 +366,7 @@ GetCollisionPrimitive__12CIceSheegothCFv: .global GetGravityConstant__12CIceSheegothCFv GetGravityConstant__12CIceSheegothCFv: /* 8019E264 0019B1C4 C0 22 A7 50 */ lfs f1, lbl_805AC470@sda21(r2) -/* 8019E268 0019B1C8 C0 02 96 A0 */ lfs f0, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 8019E268 0019B1C8 C0 02 96 A0 */ lfs f0, kGravityAccel__13CPhysicsActor@sda21(r2) /* 8019E26C 0019B1CC EC 21 00 32 */ fmuls f1, f1, f0 /* 8019E270 0019B1D0 4E 80 00 20 */ blr @@ -9013,7 +9013,7 @@ lbl_801A5E20: /* 801A5EA8 001A2E08 91 41 00 18 */ stw r10, 0x18(r1) /* 801A5EAC 001A2E0C 7D 8A 63 78 */ mr r10, r12 /* 801A5EB0 001A2E10 90 01 00 1C */ stw r0, 0x1c(r1) -/* 801A5EB4 001A2E14 4B ED 75 9D */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 801A5EB4 001A2E14 4B ED 75 9D */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 801A5EB8 001A2E18 3C 60 80 3E */ lis r3, lbl_803E4728@ha /* 801A5EBC 001A2E1C 38 00 FF FF */ li r0, -1 /* 801A5EC0 001A2E20 38 63 47 28 */ addi r3, r3, lbl_803E4728@l diff --git a/asm/MetroidPrime/Enemies/CJellyZap.s b/asm/MetroidPrime/Enemies/CJellyZap.s index 47d35525..5616b375 100644 --- a/asm/MetroidPrime/Enemies/CJellyZap.s +++ b/asm/MetroidPrime/Enemies/CJellyZap.s @@ -1570,7 +1570,7 @@ Accept__9CJellyZapFR8IVisitor: /* 801D8BB0 001D5B10 38 A1 00 20 */ addi r5, r1, 0x20 /* 801D8BB4 001D5B14 38 80 00 10 */ li r4, 0x10 /* 801D8BB8 001D5B18 38 E0 00 00 */ li r7, 0 -/* 801D8BBC 001D5B1C 4B EA 48 95 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 801D8BBC 001D5B1C 4B EA 48 95 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 801D8BC0 001D5B20 3C 60 80 3E */ lis r3, lbl_803E5954@ha /* 801D8BC4 001D5B24 38 C0 00 00 */ li r6, 0 /* 801D8BC8 001D5B28 38 03 59 54 */ addi r0, r3, lbl_803E5954@l diff --git a/asm/MetroidPrime/Enemies/CMagdolite.s b/asm/MetroidPrime/Enemies/CMagdolite.s index 31d8f24a..7683b4d3 100644 --- a/asm/MetroidPrime/Enemies/CMagdolite.s +++ b/asm/MetroidPrime/Enemies/CMagdolite.s @@ -3587,7 +3587,7 @@ Accept__10CMagdoliteFR8IVisitor: /* 802374C0 00234420 C3 E1 01 74 */ lfs f31, 0x174(r1) /* 802374C4 00234424 38 80 00 11 */ li r4, 0x11 /* 802374C8 00234428 38 E0 00 00 */ li r7, 0 -/* 802374CC 0023442C 4B E4 5F 85 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 802374CC 0023442C 4B E4 5F 85 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 802374D0 00234430 3C 60 80 3F */ lis r3, lbl_803E8240@ha /* 802374D4 00234434 C0 02 B7 44 */ lfs f0, lbl_805AD464@sda21(r2) /* 802374D8 00234438 38 03 82 40 */ addi r0, r3, lbl_803E8240@l diff --git a/asm/MetroidPrime/Enemies/CMetaree.s b/asm/MetroidPrime/Enemies/CMetaree.s index c8871711..343abd52 100644 --- a/asm/MetroidPrime/Enemies/CMetaree.s +++ b/asm/MetroidPrime/Enemies/CMetaree.s @@ -1139,7 +1139,7 @@ Accept__8CMetareeFR8IVisitor: /* 8014EE20 0014BD80 7D 6A 5B 78 */ mr r10, r11 /* 8014EE24 0014BD84 38 A1 00 20 */ addi r5, r1, 0x20 /* 8014EE28 0014BD88 38 80 00 12 */ li r4, 0x12 -/* 8014EE2C 0014BD8C 4B F2 E6 25 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 8014EE2C 0014BD8C 4B F2 E6 25 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 8014EE30 0014BD90 3C 80 80 3E */ lis r4, lbl_803E2878@ha /* 8014EE34 0014BD94 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha /* 8014EE38 0014BD98 38 04 28 78 */ addi r0, r4, lbl_803E2878@l diff --git a/asm/MetroidPrime/Enemies/CMetroid.s b/asm/MetroidPrime/Enemies/CMetroid.s index 17fae3bf..c01fa8b5 100644 --- a/asm/MetroidPrime/Enemies/CMetroid.s +++ b/asm/MetroidPrime/Enemies/CMetroid.s @@ -9189,7 +9189,7 @@ lbl_80171E4C: /* 80171EF0 0016EE50 83 C1 01 30 */ lwz r30, 0x130(r1) /* 80171EF4 0016EE54 93 A1 00 18 */ stw r29, 0x18(r1) /* 80171EF8 0016EE58 91 61 00 1C */ stw r11, 0x1c(r1) -/* 80171EFC 0016EE5C 4B F0 B5 55 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80171EFC 0016EE5C 4B F0 B5 55 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 80171F00 0016EE60 3C 60 80 3E */ lis r3, lbl_803E3AD8@ha /* 80171F04 0016EE64 38 00 FF FF */ li r0, -1 /* 80171F08 0016EE68 38 63 3A D8 */ addi r3, r3, lbl_803E3AD8@l diff --git a/asm/MetroidPrime/Enemies/CMetroidBeta.s b/asm/MetroidPrime/Enemies/CMetroidBeta.s index d3ece10a..c2bf4a4a 100644 --- a/asm/MetroidPrime/Enemies/CMetroidBeta.s +++ b/asm/MetroidPrime/Enemies/CMetroidBeta.s @@ -6182,7 +6182,7 @@ lbl_801C6070: /* 801C60F8 001C3058 91 41 00 18 */ stw r10, 0x18(r1) /* 801C60FC 001C305C 7D 8A 63 78 */ mr r10, r12 /* 801C6100 001C3060 90 01 00 1C */ stw r0, 0x1c(r1) -/* 801C6104 001C3064 4B EB 73 4D */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 801C6104 001C3064 4B EB 73 4D */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 801C6108 001C3068 3C 60 80 3E */ lis r3, lbl_803E5388@ha /* 801C610C 001C306C 38 00 FF FF */ li r0, -1 /* 801C6110 001C3070 38 63 53 88 */ addi r3, r3, lbl_803E5388@l diff --git a/asm/MetroidPrime/Enemies/CMetroidPrimeEssence.s b/asm/MetroidPrime/Enemies/CMetroidPrimeEssence.s index 563837b1..0fb08781 100644 --- a/asm/MetroidPrime/Enemies/CMetroidPrimeEssence.s +++ b/asm/MetroidPrime/Enemies/CMetroidPrimeEssence.s @@ -1293,7 +1293,7 @@ sub_8027d790: /* 8027D7C8 0027A728 7F C5 F3 78 */ mr r5, r30 /* 8027D7CC 0027A72C 7F A6 EB 78 */ mr r6, r29 /* 8027D7D0 0027A730 38 81 00 18 */ addi r4, r1, 0x18 -/* 8027D7D4 0027A734 4B DA D5 ED */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 8027D7D4 0027A734 4B DA D5 ED */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 8027D7D8 0027A738 38 61 00 18 */ addi r3, r1, 0x18 /* 8027D7DC 0027A73C 48 0C 03 05 */ bl "internal_dereference__Q24rstl66basic_string,Q24rstl17rmemory_allocator>Fv" /* 8027D7E0 0027A740 80 82 BD 08 */ lwz r4, lbl_805ADA28@sda21(r2) @@ -1303,7 +1303,7 @@ sub_8027d790: /* 8027D7F0 0027A750 7F C5 F3 78 */ mr r5, r30 /* 8027D7F4 0027A754 7F A6 EB 78 */ mr r6, r29 /* 8027D7F8 0027A758 38 81 00 08 */ addi r4, r1, 8 -/* 8027D7FC 0027A75C 4B DA D5 C5 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 8027D7FC 0027A75C 4B DA D5 C5 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 8027D800 0027A760 38 61 00 08 */ addi r3, r1, 8 /* 8027D804 0027A764 48 0C 02 DD */ bl "internal_dereference__Q24rstl66basic_string,Q24rstl17rmemory_allocator>Fv" /* 8027D808 0027A768 80 01 00 44 */ lwz r0, 0x44(r1) @@ -4292,7 +4292,7 @@ __ct__20CMetroidPrimeEssence: /* 80280228 0027D188 91 41 00 18 */ stw r10, 0x18(r1) /* 8028022C 0027D18C 7D 8A 63 78 */ mr r10, r12 /* 80280230 0027D190 91 61 00 1C */ stw r11, 0x1c(r1) -/* 80280234 0027D194 4B DF D2 1D */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80280234 0027D194 4B DF D2 1D */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 80280238 0027D198 3C 60 80 3F */ lis r3, lbl_803EB244@ha /* 8028023C 0027D19C 3C 80 50 41 */ lis r4, 0x50415254@ha /* 80280240 0027D1A0 38 03 B2 44 */ addi r0, r3, lbl_803EB244@l diff --git a/asm/MetroidPrime/Enemies/CMetroidPrimeExo.s b/asm/MetroidPrime/Enemies/CMetroidPrimeExo.s index 05b0454b..9d21bb39 100644 --- a/asm/MetroidPrime/Enemies/CMetroidPrimeExo.s +++ b/asm/MetroidPrime/Enemies/CMetroidPrimeExo.s @@ -5422,7 +5422,7 @@ lbl_80275428: lbl_80275438: /* 80275438 00272398 28 00 00 00 */ cmplwi r0, 0 /* 8027543C 0027239C C2 F9 00 E8 */ lfs f23, 0xe8(r25) -/* 80275440 002723A0 C3 02 96 A0 */ lfs f24, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 80275440 002723A0 C3 02 96 A0 */ lfs f24, kGravityAccel__13CPhysicsActor@sda21(r2) /* 80275444 002723A4 41 82 00 28 */ beq lbl_8027546C /* 80275448 002723A8 C0 02 BC 9C */ lfs f0, lbl_805AD9BC@sda21(r2) /* 8027544C 002723AC 38 60 00 00 */ li r3, 0 @@ -6547,7 +6547,7 @@ lbl_802763E0: /* 802763F4 00273354 7F 66 DB 78 */ mr r6, r27 /* 802763F8 00273358 38 81 00 28 */ addi r4, r1, 0x28 /* 802763FC 0027335C 80 63 00 10 */ lwz r3, 0x10(r3) -/* 80276400 00273360 4B DB 49 C1 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 80276400 00273360 4B DB 49 C1 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 80276404 00273364 38 61 00 28 */ addi r3, r1, 0x28 /* 80276408 00273368 48 0C 76 D9 */ bl "internal_dereference__Q24rstl66basic_string,Q24rstl17rmemory_allocator>Fv" /* 8027640C 0027336C 3B BD 00 01 */ addi r29, r29, 1 @@ -8573,7 +8573,7 @@ lbl_802780CC: /* 80278100 00275060 38 81 00 10 */ addi r4, r1, 0x10 /* 80278104 00275064 38 A0 00 00 */ li r5, 0 /* 80278108 00275068 80 63 00 10 */ lwz r3, 0x10(r3) -/* 8027810C 0027506C 4B DB 2C B5 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 8027810C 0027506C 4B DB 2C B5 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 80278110 00275070 38 61 00 10 */ addi r3, r1, 0x10 /* 80278114 00275074 48 0C 59 CD */ bl "internal_dereference__Q24rstl66basic_string,Q24rstl17rmemory_allocator>Fv" lbl_80278118: @@ -8873,7 +8873,7 @@ sub_80278508: /* 80278550 002754B0 38 81 00 20 */ addi r4, r1, 0x20 /* 80278554 002754B4 38 A0 00 01 */ li r5, 1 /* 80278558 002754B8 80 63 00 10 */ lwz r3, 0x10(r3) -/* 8027855C 002754BC 4B DB 28 65 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 8027855C 002754BC 4B DB 28 65 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 80278560 002754C0 38 61 00 20 */ addi r3, r1, 0x20 /* 80278564 002754C4 48 0C 55 7D */ bl "internal_dereference__Q24rstl66basic_string,Q24rstl17rmemory_allocator>Fv" /* 80278568 002754C8 81 1D 00 04 */ lwz r8, 4(r29) @@ -9082,7 +9082,7 @@ sub_80278800: /* 80278858 002757B8 7F C6 F3 78 */ mr r6, r30 /* 8027885C 002757BC 38 81 00 08 */ addi r4, r1, 8 /* 80278860 002757C0 80 63 00 10 */ lwz r3, 0x10(r3) -/* 80278864 002757C4 4B DB 25 5D */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 80278864 002757C4 4B DB 25 5D */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 80278868 002757C8 38 61 00 08 */ addi r3, r1, 8 /* 8027886C 002757CC 48 0C 52 75 */ bl "internal_dereference__Q24rstl66basic_string,Q24rstl17rmemory_allocator>Fv" /* 80278870 002757D0 57 E0 06 3F */ clrlwi. r0, r31, 0x18 @@ -11761,7 +11761,7 @@ __ct__16CMetroidPrimeExo: /* 8027AFBC 00277F1C 7D CA 73 78 */ mr r10, r14 /* 8027AFC0 00277F20 81 C1 02 10 */ lwz r14, 0x210(r1) /* 8027AFC4 00277F24 91 61 00 1C */ stw r11, 0x1c(r1) -/* 8027AFC8 00277F28 4B E0 24 89 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 8027AFC8 00277F28 4B E0 24 89 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 8027AFCC 00277F2C 3C 60 80 3F */ lis r3, lbl_803EAD54@ha /* 8027AFD0 00277F30 38 A0 00 00 */ li r5, 0 /* 8027AFD4 00277F34 38 03 AD 54 */ addi r0, r3, lbl_803EAD54@l diff --git a/asm/MetroidPrime/Enemies/CMetroidPrimeProjectile.s b/asm/MetroidPrime/Enemies/CMetroidPrimeProjectile.s index 22a7cf43..d9f2f420 100644 --- a/asm/MetroidPrime/Enemies/CMetroidPrimeProjectile.s +++ b/asm/MetroidPrime/Enemies/CMetroidPrimeProjectile.s @@ -250,7 +250,7 @@ Explode__23CMetroidPrimeProjectileFRC9CVector3fRC9CVector3f29EWeaponCollisionRes /* 802A0650 0029D5B0 93 41 00 1C */ stw r26, 0x1c(r1) /* 802A0654 0029D5B4 93 81 00 40 */ stw r28, 0x40(r1) /* 802A0658 0029D5B8 93 61 00 20 */ stw r27, 0x20(r1) -/* 802A065C 0029D5BC 4B FB CB 81 */ bl "__ct__5CFireF25TToken<15CGenDescription>9TUniqueId7TAreaIdb9TUniqueIdRC12CTransform4fRC11CDamageInfoRC6CAABoxRC9CVector3fbUibbbffff" +/* 802A065C 0029D5BC 4B FB CB 81 */ bl "__ct__5CFireFRC25TToken<15CGenDescription>9TUniqueId7TAreaIdb9TUniqueIdRC12CTransform4fRC11CDamageInfoRC6CAABoxRC9CVector3fbUibbbffff" /* 802A0660 0029D5C0 7C 64 1B 78 */ mr r4, r3 lbl_802A0664: /* 802A0664 0029D5C4 28 04 00 00 */ cmplwi r4, 0 diff --git a/asm/MetroidPrime/Enemies/CNewIntroBoss.s b/asm/MetroidPrime/Enemies/CNewIntroBoss.s index 9d1a089b..4694bb4f 100644 --- a/asm/MetroidPrime/Enemies/CNewIntroBoss.s +++ b/asm/MetroidPrime/Enemies/CNewIntroBoss.s @@ -2498,7 +2498,7 @@ ProjectileInfo__13CNewIntroBossFv: /* 8018BEFC 00188E5C 38 E0 00 00 */ li r7, 0 /* 8018BF00 00188E60 91 61 00 1C */ stw r11, 0x1c(r1) /* 8018BF04 00188E64 83 E1 00 8C */ lwz r31, 0x8c(r1) -/* 8018BF08 00188E68 4B EF 15 49 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 8018BF08 00188E68 4B EF 15 49 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 8018BF0C 00188E6C 3C 80 80 3E */ lis r4, lbl_803E4018@ha /* 8018BF10 00188E70 3C 60 80 3D */ lis r3, lbl_803D07E4@ha /* 8018BF14 00188E74 38 04 40 18 */ addi r0, r4, lbl_803E4018@l diff --git a/asm/MetroidPrime/Enemies/CParasite.s b/asm/MetroidPrime/Enemies/CParasite.s index aa6f824a..6fca3314 100644 --- a/asm/MetroidPrime/Enemies/CParasite.s +++ b/asm/MetroidPrime/Enemies/CParasite.s @@ -5003,7 +5003,7 @@ __sinit_CParasite_cpp: /* 8015AD50 00157CB0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8015AD54 00157CB4 7C 08 02 A6 */ mflr r0 /* 8015AD58 00157CB8 C0 22 9E 9C */ lfs f1, lbl_805ABBBC@sda21(r2) -/* 8015AD5C 00157CBC C0 02 96 A0 */ lfs f0, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 8015AD5C 00157CBC C0 02 96 A0 */ lfs f0, kGravityAccel__13CPhysicsActor@sda21(r2) /* 8015AD60 00157CC0 90 01 00 14 */ stw r0, 0x14(r1) /* 8015AD64 00157CC4 EC 21 00 24 */ fdivs f1, f1, f0 /* 8015AD68 00157CC8 48 1B A7 99 */ bl SqrtF__5CMathFf @@ -5011,7 +5011,7 @@ __sinit_CParasite_cpp: /* 8015AD70 00157CD0 C0 42 9E 70 */ lfs f2, lbl_805ABB90@sda21(r2) /* 8015AD74 00157CD4 EC 60 00 72 */ fmuls f3, f0, f1 /* 8015AD78 00157CD8 C0 22 9E 9C */ lfs f1, lbl_805ABBBC@sda21(r2) -/* 8015AD7C 00157CDC C0 02 96 A0 */ lfs f0, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 8015AD7C 00157CDC C0 02 96 A0 */ lfs f0, kGravityAccel__13CPhysicsActor@sda21(r2) /* 8015AD80 00157CE0 EC 42 18 24 */ fdivs f2, f2, f3 /* 8015AD84 00157CE4 D0 6D A3 F0 */ stfs f3, lbl_805A8FB0@sda21(r13) /* 8015AD88 00157CE8 EC 21 00 24 */ fdivs f1, f1, f0 diff --git a/asm/MetroidPrime/Enemies/CPatterned.s b/asm/MetroidPrime/Enemies/CPatterned.s index e3729ec6..e6ebf139 100644 --- a/asm/MetroidPrime/Enemies/CPatterned.s +++ b/asm/MetroidPrime/Enemies/CPatterned.s @@ -885,7 +885,7 @@ IsOnGround__10CPatternedCFv: .global GetGravityConstant__10CPatternedCFv GetGravityConstant__10CPatternedCFv: -/* 80077818 00074778 C0 22 96 A0 */ lfs f1, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 80077818 00074778 C0 22 96 A0 */ lfs f1, kGravityAccel__13CPhysicsActor@sda21(r2) /* 8007781C 0007477C 4E 80 00 20 */ blr .global GetProjectileInfo__10CPatternedFv @@ -7386,8 +7386,8 @@ lbl_8007D438: /* 8007D448 0007A3A8 38 21 00 10 */ addi r1, r1, 0x10 /* 8007D44C 0007A3AC 4E 80 00 20 */ blr -.global "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" -"__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi": +.global "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" +"__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant": /* 8007D450 0007A3B0 94 21 FF 40 */ stwu r1, -0xc0(r1) /* 8007D454 0007A3B4 7C 08 02 A6 */ mflr r0 /* 8007D458 0007A3B8 39 8D A2 68 */ addi r12, r13, lbl_805A8E28@sda21 diff --git a/asm/MetroidPrime/Enemies/CPhazonHealingNodule.s b/asm/MetroidPrime/Enemies/CPhazonHealingNodule.s index 8b249164..d0b16b30 100644 --- a/asm/MetroidPrime/Enemies/CPhazonHealingNodule.s +++ b/asm/MetroidPrime/Enemies/CPhazonHealingNodule.s @@ -1125,7 +1125,7 @@ lbl_802958F8: /* 80295978 002928D8 91 21 00 18 */ stw r9, 0x18(r1) /* 8029597C 002928DC 7D 89 63 78 */ mr r9, r12 /* 80295980 002928E0 91 61 00 1C */ stw r11, 0x1c(r1) -/* 80295984 002928E4 4B DE 7A CD */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80295984 002928E4 4B DE 7A CD */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 80295988 002928E8 3C 80 80 3F */ lis r4, lbl_803EBC70@ha /* 8029598C 002928EC 3C 60 45 4C */ lis r3, 0x454C5343@ha /* 80295990 002928F0 38 04 BC 70 */ addi r0, r4, lbl_803EBC70@l diff --git a/asm/MetroidPrime/Enemies/CPuddleSpore.s b/asm/MetroidPrime/Enemies/CPuddleSpore.s index 943a51e5..8ff01968 100644 --- a/asm/MetroidPrime/Enemies/CPuddleSpore.s +++ b/asm/MetroidPrime/Enemies/CPuddleSpore.s @@ -2035,7 +2035,7 @@ Accept__12CPuddleSporeFR8IVisitor: /* 8014843C 0014539C 7D 69 5B 78 */ mr r9, r11 /* 80148440 001453A0 38 A1 00 20 */ addi r5, r1, 0x20 /* 80148444 001453A4 38 80 00 1B */ li r4, 0x1b -/* 80148448 001453A8 4B F3 50 09 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80148448 001453A8 4B F3 50 09 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 8014844C 001453AC 3C 60 80 3E */ lis r3, lbl_803E20C4@ha /* 80148450 001453B0 C0 42 9C 88 */ lfs f2, lbl_805AB9A8@sda21(r2) /* 80148454 001453B4 38 03 20 C4 */ addi r0, r3, lbl_803E20C4@l diff --git a/asm/MetroidPrime/Enemies/CPuddleToadGamma.s b/asm/MetroidPrime/Enemies/CPuddleToadGamma.s index 4e5616a5..451aeff0 100644 --- a/asm/MetroidPrime/Enemies/CPuddleToadGamma.s +++ b/asm/MetroidPrime/Enemies/CPuddleToadGamma.s @@ -1514,7 +1514,7 @@ lbl_8014C5CC: /* 8014C5FC 0014955C 48 1C 5E E1 */ bl Float__9CRandom16Fv /* 8014C600 00149560 C0 62 9D 04 */ lfs f3, lbl_805ABA24@sda21(r2) /* 8014C604 00149564 C0 02 9D 00 */ lfs f0, lbl_805ABA20@sda21(r2) -/* 8014C608 00149568 C0 42 96 A0 */ lfs f2, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 8014C608 00149568 C0 42 96 A0 */ lfs f2, kGravityAccel__13CPhysicsActor@sda21(r2) /* 8014C60C 0014956C EC 23 00 7A */ fmadds f1, f3, f1, f0 /* 8014C610 00149570 C0 02 9C F0 */ lfs f0, lbl_805ABA10@sda21(r2) /* 8014C614 00149574 FC 80 10 50 */ fneg f4, f2 @@ -1992,7 +1992,7 @@ lbl_8014CC14: /* 8014CCEC 00149C4C 7D 6A 5B 78 */ mr r10, r11 /* 8014CCF0 00149C50 38 A1 00 20 */ addi r5, r1, 0x20 /* 8014CCF4 00149C54 38 80 00 1C */ li r4, 0x1c -/* 8014CCF8 00149C58 4B F3 07 59 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 8014CCF8 00149C58 4B F3 07 59 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 8014CCFC 00149C5C 3C 60 80 3E */ lis r3, lbl_803E24E0@ha /* 8014CD00 00149C60 C0 02 9D 14 */ lfs f0, lbl_805ABA34@sda21(r2) /* 8014CD04 00149C64 38 63 24 E0 */ addi r3, r3, lbl_803E24E0@l diff --git a/asm/MetroidPrime/Enemies/CPuffer.s b/asm/MetroidPrime/Enemies/CPuffer.s index 1fb1696b..4b03c9fb 100644 --- a/asm/MetroidPrime/Enemies/CPuffer.s +++ b/asm/MetroidPrime/Enemies/CPuffer.s @@ -3,8 +3,44 @@ .section .data .balign 8 -.global lbl_803E96C0 -lbl_803E96C0: +.global skGasJetLocators +skGasJetLocators: + # ROM: 0x3E6650 + .4byte lbl_803D5100 + .4byte lbl_803D5109 + .4byte lbl_803D5112 + .4byte lbl_803D511B + .4byte lbl_803D5124 + .4byte lbl_803D512D + .4byte lbl_803D5136 + .4byte lbl_803D513F + .4byte lbl_803D5148 + .4byte lbl_803D5151 + .4byte lbl_803D515A + .4byte lbl_803D5163 + .4byte lbl_803D516C + .4byte lbl_803D5175 + +.global skGasLocators +skGasLocators: + # ROM: 0x3E6688 + .4byte lbl_803D517E + .4byte lbl_803D518A + .4byte lbl_803D5196 + .4byte lbl_803D51A2 + .4byte lbl_803D51AE + .4byte lbl_803D51BA + .4byte lbl_803D51C6 + .4byte lbl_803D51D2 + .4byte lbl_803D51DE + .4byte lbl_803D51EA + .4byte lbl_803D51F6 + .4byte lbl_803D5202 + .4byte lbl_803D520E + .4byte lbl_803D521A + +.global __vt__7CPuffer +__vt__7CPuffer: # ROM: 0x3E66C0 .4byte 0 .4byte 0 @@ -23,7 +59,7 @@ lbl_803E96C0: .4byte GetDamageVulnerability__3CAiCFv .4byte GetDamageVulnerability__6CActorCFRC9CVector3fRC9CVector3fRC11CDamageInfo .4byte GetTouchBounds__7CPufferCFv - .4byte Touch__7CPufferR6CActorR13CStateManager + .4byte Touch__7CPufferFR6CActorR13CStateManager .4byte GetOrbitPosition__10CPatternedCFRC13CStateManager .4byte GetAimPosition__10CPatternedCFRC13CStateManagerf .4byte GetHomingPosition__6CActorCFRC13CStateManagerf @@ -39,7 +75,7 @@ lbl_803E96C0: .4byte GetStepDownHeight__13CPhysicsActorCFv .4byte GetStepUpHeight__13CPhysicsActorCFv .4byte GetWeight__13CPhysicsActorCFv - .4byte Death__7CPufferFRC9CVector3fR13CStateManager + .4byte Death__7CPufferFR13CStateManagerRC9CVector3f18EScriptObjectState .4byte KnockBack__10CPatternedFRC9CVector3fR13CStateManagerRC11CDamageInfo14EKnockBackTypef .4byte GetDamageVulnerability__3CAiFv .4byte TakeDamage__10CPatternedFRC9CVector3ff @@ -208,8 +244,8 @@ lbl_805A8388: .section .text, "ax" -.global sub_8025bfa4 -sub_8025bfa4: +.global sub8025bfa4__7CPufferFR13CStateManager +sub8025bfa4__7CPufferFR13CStateManager: /* 8025BFA4 00258F04 94 21 FE F0 */ stwu r1, -0x110(r1) /* 8025BFA8 00258F08 7C 08 02 A6 */ mflr r0 /* 8025BFAC 00258F0C 90 01 01 14 */ stw r0, 0x114(r1) @@ -238,9 +274,9 @@ sub_8025bfa4: /* 8025C008 00258F68 80 1D 05 D4 */ lwz r0, 0x5d4(r29) /* 8025C00C 00258F6C 2C 00 00 00 */ cmpwi r0, 0 /* 8025C010 00258F70 40 82 00 7C */ bne lbl_8025C08C -/* 8025C014 00258F74 3C 60 80 3F */ lis r3, lbl_803E9688@ha +/* 8025C014 00258F74 3C 60 80 3F */ lis r3, skGasLocators@ha /* 8025C018 00258F78 3B 9D 05 D8 */ addi r28, r29, 0x5d8 -/* 8025C01C 00258F7C 3B E3 96 88 */ addi r31, r3, lbl_803E9688@l +/* 8025C01C 00258F7C 3B E3 96 88 */ addi r31, r3, skGasLocators@l /* 8025C020 00258F80 3B 40 00 00 */ li r26, 0 lbl_8025C024: /* 8025C024 00258F84 80 9F 00 00 */ lwz r4, 0(r31) @@ -279,9 +315,9 @@ lbl_8025C08C: /* 8025C0A0 00259000 38 81 00 50 */ addi r4, r1, 0x50 /* 8025C0A4 00259004 48 0B 87 AD */ bl AsNormalized__9CVector3fCFv /* 8025C0A8 00259008 C0 41 00 34 */ lfs f2, 0x34(r1) -/* 8025C0AC 0025900C 3C 60 80 3F */ lis r3, lbl_803E9650@ha +/* 8025C0AC 0025900C 3C 60 80 3F */ lis r3, skGasJetLocators@ha /* 8025C0B0 00259010 C0 21 00 38 */ lfs f1, 0x38(r1) -/* 8025C0B4 00259014 3B 63 96 50 */ addi r27, r3, lbl_803E9650@l +/* 8025C0B4 00259014 3B 63 96 50 */ addi r27, r3, skGasJetLocators@l /* 8025C0B8 00259018 C0 01 00 3C */ lfs f0, 0x3c(r1) /* 8025C0BC 0025901C FF E0 10 50 */ fneg f31, f2 /* 8025C0C0 00259020 FF C0 08 50 */ fneg f30, f1 @@ -321,7 +357,7 @@ lbl_8025C0D0: /* 8025C144 002590A4 7F C6 F3 78 */ mr r6, r30 /* 8025C148 002590A8 38 81 00 18 */ addi r4, r1, 0x18 /* 8025C14C 002590AC 80 63 00 10 */ lwz r3, 0x10(r3) -/* 8025C150 002590B0 4B DC EC 71 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 8025C150 002590B0 4B DC EC 71 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 8025C154 002590B4 38 61 00 18 */ addi r3, r1, 0x18 /* 8025C158 002590B8 48 0E 19 89 */ bl "internal_dereference__Q24rstl66basic_string,Q24rstl17rmemory_allocator>Fv" lbl_8025C15C: @@ -342,9 +378,9 @@ lbl_8025C178: /* 8025C18C 002590EC 41 80 FF 44 */ blt lbl_8025C0D0 /* 8025C190 002590F0 48 00 00 68 */ b lbl_8025C1F8 lbl_8025C194: -/* 8025C194 002590F4 3C 60 80 3F */ lis r3, lbl_803E9650@ha +/* 8025C194 002590F4 3C 60 80 3F */ lis r3, skGasJetLocators@ha /* 8025C198 002590F8 3B 20 00 00 */ li r25, 0 -/* 8025C19C 002590FC 3B 63 96 50 */ addi r27, r3, lbl_803E9650@l +/* 8025C19C 002590FC 3B 63 96 50 */ addi r27, r3, skGasJetLocators@l /* 8025C1A0 00259100 3B E0 00 01 */ li r31, 1 lbl_8025C1A4: /* 8025C1A4 00259104 80 7D 05 D0 */ lwz r3, 0x5d0(r29) @@ -359,7 +395,7 @@ lbl_8025C1A4: /* 8025C1C8 00259128 38 81 00 08 */ addi r4, r1, 8 /* 8025C1CC 0025912C 38 A0 00 00 */ li r5, 0 /* 8025C1D0 00259130 80 63 00 10 */ lwz r3, 0x10(r3) -/* 8025C1D4 00259134 4B DC EB ED */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 8025C1D4 00259134 4B DC EB ED */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 8025C1D8 00259138 38 61 00 08 */ addi r3, r1, 8 /* 8025C1DC 0025913C 48 0E 19 05 */ bl "internal_dereference__Q24rstl66basic_string,Q24rstl17rmemory_allocator>Fv" lbl_8025C1E0: @@ -403,7 +439,7 @@ Think__7CPufferFfR13CStateManager: /* 8025C264 002591C4 4B E1 D8 B5 */ bl Think__10CPatternedFfR13CStateManager /* 8025C268 002591C8 7F C3 F3 78 */ mr r3, r30 /* 8025C26C 002591CC 7F E4 FB 78 */ mr r4, r31 -/* 8025C270 002591D0 4B FF FD 35 */ bl sub_8025bfa4 +/* 8025C270 002591D0 4B FF FD 35 */ bl sub8025bfa4__7CPufferFR13CStateManager /* 8025C274 002591D4 80 7E 04 50 */ lwz r3, 0x450(r30) /* 8025C278 002591D8 C0 03 00 04 */ lfs f0, 4(r3) /* 8025C27C 002591DC D0 01 00 30 */ stfs f0, 0x30(r1) @@ -496,8 +532,8 @@ lbl_8025C3B8: /* 8025C3D0 00259330 38 21 00 70 */ addi r1, r1, 0x70 /* 8025C3D4 00259334 4E 80 00 20 */ blr -.global Death__7CPufferFRC9CVector3fR13CStateManager -Death__7CPufferFRC9CVector3fR13CStateManager: +.global Death__7CPufferFR13CStateManagerRC9CVector3f18EScriptObjectState +Death__7CPufferFR13CStateManagerRC9CVector3f18EScriptObjectState: /* 8025C3D8 00259338 94 21 FE A0 */ stwu r1, -0x160(r1) /* 8025C3DC 0025933C 7C 08 02 A6 */ mflr r0 /* 8025C3E0 00259340 90 01 01 64 */ stw r0, 0x164(r1) @@ -619,7 +655,7 @@ Death__7CPufferFRC9CVector3fR13CStateManager: /* 8025C5B0 00259510 54 00 D7 FE */ rlwinm r0, r0, 0x1a, 0x1f, 0x1f /* 8025C5B4 00259514 90 01 00 20 */ stw r0, 0x20(r1) /* 8025C5B8 00259518 C0 5E 05 B8 */ lfs f2, 0x5b8(r30) -/* 8025C5BC 0025951C 48 00 0C 21 */ bl "__ct__5CFireF25TToken<15CGenDescription>9TUniqueId7TAreaIdb9TUniqueIdRC12CTransform4fRC11CDamageInfoRC6CAABoxRC9CVector3fbUibbbffff" +/* 8025C5BC 0025951C 48 00 0C 21 */ bl "__ct__5CFireFRC25TToken<15CGenDescription>9TUniqueId7TAreaIdb9TUniqueIdRC12CTransform4fRC11CDamageInfoRC6CAABoxRC9CVector3fbUibbbffff" /* 8025C5C0 00259520 7C 64 1B 78 */ mr r4, r3 lbl_8025C5C4: /* 8025C5C4 00259524 7F E3 FB 78 */ mr r3, r31 @@ -745,8 +781,8 @@ lbl_8025C778: /* 8025C784 002596E4 38 21 00 80 */ addi r1, r1, 0x80 /* 8025C788 002596E8 4E 80 00 20 */ blr -.global Touch__7CPufferR6CActorR13CStateManager -Touch__7CPufferR6CActorR13CStateManager: +.global Touch__7CPufferFR6CActorR13CStateManager +Touch__7CPufferFR6CActorR13CStateManager: /* 8025C78C 002596EC 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8025C790 002596F0 7C 08 02 A6 */ mflr r0 /* 8025C794 002596F4 90 01 00 24 */ stw r0, 0x24(r1) @@ -867,9 +903,9 @@ __dt__7CPufferFv: /* 8025C92C 0025988C 93 C1 00 08 */ stw r30, 8(r1) /* 8025C930 00259890 7C 7E 1B 79 */ or. r30, r3, r3 /* 8025C934 00259894 41 82 00 9C */ beq lbl_8025C9D0 -/* 8025C938 00259898 3C 60 80 3F */ lis r3, lbl_803E96C0@ha +/* 8025C938 00259898 3C 60 80 3F */ lis r3, __vt__7CPuffer@ha /* 8025C93C 0025989C 34 1E 05 D4 */ addic. r0, r30, 0x5d4 -/* 8025C940 002598A0 38 03 96 C0 */ addi r0, r3, lbl_803E96C0@l +/* 8025C940 002598A0 38 03 96 C0 */ addi r0, r3, __vt__7CPuffer@l /* 8025C944 002598A4 90 1E 00 00 */ stw r0, 0(r30) /* 8025C948 002598A8 41 82 00 58 */ beq lbl_8025C9A0 /* 8025C94C 002598AC 80 BE 05 D4 */ lwz r5, 0x5d4(r30) @@ -920,8 +956,8 @@ lbl_8025C9D0: /* 8025C9E4 00259944 38 21 00 10 */ addi r1, r1, 0x10 /* 8025C9E8 00259948 4E 80 00 20 */ blr -.global __ct__7CPuffer -__ct__7CPuffer: +.global "__ct__7CPufferF9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC14CPatternedInfofUiRC11CDamageInfoUifbbbRC11CDamageInfoUs" +"__ct__7CPufferF9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC14CPatternedInfofUiRC11CDamageInfoUifbbbRC11CDamageInfoUs": /* 8025C9EC 0025994C 94 21 FF 80 */ stwu r1, -0x80(r1) /* 8025C9F0 00259950 7C 08 02 A6 */ mflr r0 /* 8025C9F4 00259954 90 01 00 84 */ stw r0, 0x84(r1) @@ -962,10 +998,10 @@ __ct__7CPuffer: /* 8025CA80 002599E0 8B C1 00 9F */ lbz r30, 0x9f(r1) /* 8025CA84 002599E4 83 E1 00 A0 */ lwz r31, 0xa0(r1) /* 8025CA88 002599E8 A2 C1 00 A6 */ lhz r22, 0xa6(r1) -/* 8025CA8C 002599EC 4B E2 09 C5 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" -/* 8025CA90 002599F0 3C 60 80 3F */ lis r3, lbl_803E96C0@ha +/* 8025CA8C 002599EC 4B E2 09 C5 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" +/* 8025CA90 002599F0 3C 60 80 3F */ lis r3, __vt__7CPuffer@ha /* 8025CA94 002599F4 3C 80 50 41 */ lis r4, 0x50415254@ha -/* 8025CA98 002599F8 38 03 96 C0 */ addi r0, r3, lbl_803E96C0@l +/* 8025CA98 002599F8 38 03 96 C0 */ addi r0, r3, __vt__7CPuffer@l /* 8025CA9C 002599FC 38 61 00 24 */ addi r3, r1, 0x24 /* 8025CAA0 00259A00 90 17 00 00 */ stw r0, 0(r23) /* 8025CAA4 00259A04 38 04 52 54 */ addi r0, r4, 0x50415254@l @@ -1087,3 +1123,200 @@ lbl_805AD710: lbl_805AD714: # ROM: 0x3F9FB4 .float -1.0 + +.rodata +.balign 8 + +.global lbl_803D5100 +lbl_803D5100: + + # ROM: 0x3D2100 + .asciz "GasJet01" + +.global lbl_803D5109 +lbl_803D5109: + + # ROM: 0x3D2109 + .byte 0x47, 0x61, 0x73 + .asciz "Jet02" + +.global lbl_803D5112 +lbl_803D5112: + + # ROM: 0x3D2112 + .byte 0x47, 0x61 + .asciz "sJet03" + +.global lbl_803D511B +lbl_803D511B: + + # ROM: 0x3D211B + .byte 0x47 + .asciz "asJet04" + +.global lbl_803D5124 +lbl_803D5124: + + # ROM: 0x3D2124 + .asciz "GasJet05" + +.global lbl_803D512D +lbl_803D512D: + + # ROM: 0x3D212D + .byte 0x47, 0x61, 0x73 + .asciz "Jet06" + +.global lbl_803D5136 +lbl_803D5136: + + # ROM: 0x3D2136 + .byte 0x47, 0x61 + .asciz "sJet07" + +.global lbl_803D513F +lbl_803D513F: + + # ROM: 0x3D213F + .byte 0x47 + .asciz "asJet08" + +.global lbl_803D5148 +lbl_803D5148: + + # ROM: 0x3D2148 + .asciz "GasJet09" + +.global lbl_803D5151 +lbl_803D5151: + + # ROM: 0x3D2151 + .byte 0x47, 0x61, 0x73 + .asciz "Jet10" + +.global lbl_803D515A +lbl_803D515A: + + # ROM: 0x3D215A + .byte 0x47, 0x61 + .asciz "sJet11" + +.global lbl_803D5163 +lbl_803D5163: + + # ROM: 0x3D2163 + .byte 0x47 + .asciz "asJet12" + +.global lbl_803D516C +lbl_803D516C: + + # ROM: 0x3D216C + .asciz "GasJet13" + +.global lbl_803D5175 +lbl_803D5175: + + # ROM: 0x3D2175 + .byte 0x47, 0x61, 0x73 + .asciz "Jet14" + +.global lbl_803D517E +lbl_803D517E: + + # ROM: 0x3D217E + .byte 0x47, 0x61 + .asciz "s_01_LCTR" + +.global lbl_803D518A +lbl_803D518A: + + # ROM: 0x3D218A + .byte 0x47, 0x61 + .asciz "s_02_LCTR" + +.global lbl_803D5196 +lbl_803D5196: + + # ROM: 0x3D2196 + .byte 0x47, 0x61 + .asciz "s_03_LCTR" + +.global lbl_803D51A2 +lbl_803D51A2: + + # ROM: 0x3D21A2 + .byte 0x47, 0x61 + .asciz "s_04_LCTR" + +.global lbl_803D51AE +lbl_803D51AE: + + # ROM: 0x3D21AE + .byte 0x47, 0x61 + .asciz "s_05_LCTR" + +.global lbl_803D51BA +lbl_803D51BA: + + # ROM: 0x3D21BA + .byte 0x47, 0x61 + .asciz "s_06_LCTR" + +.global lbl_803D51C6 +lbl_803D51C6: + + # ROM: 0x3D21C6 + .byte 0x47, 0x61 + .asciz "s_07_LCTR" + +.global lbl_803D51D2 +lbl_803D51D2: + + # ROM: 0x3D21D2 + .byte 0x47, 0x61 + .asciz "s_08_LCTR" + +.global lbl_803D51DE +lbl_803D51DE: + + # ROM: 0x3D21DE + .byte 0x47, 0x61 + .asciz "s_09_LCTR" + +.global lbl_803D51EA +lbl_803D51EA: + + # ROM: 0x3D21EA + .byte 0x47, 0x61 + .asciz "s_10_LCTR" + +.global lbl_803D51F6 +lbl_803D51F6: + + # ROM: 0x3D21F6 + .byte 0x47, 0x61 + .asciz "s_11_LCTR" + +.global lbl_803D5202 +lbl_803D5202: + + # ROM: 0x3D2202 + .byte 0x47, 0x61 + .asciz "s_12_LCTR" + +.global lbl_803D520E +lbl_803D520E: + + # ROM: 0x3D220E + .byte 0x47, 0x61 + .asciz "s_13_LCTR" + +.global lbl_803D521A +lbl_803D521A: + + # ROM: 0x3D221A + .byte 0x47, 0x61 + .asciz "s_14_LCTR" + .byte 0x3F, 0x3F + .asciz "(??)" diff --git a/asm/MetroidPrime/Enemies/CRidley.s b/asm/MetroidPrime/Enemies/CRidley.s index f25d3e3d..3eae559e 100644 --- a/asm/MetroidPrime/Enemies/CRidley.s +++ b/asm/MetroidPrime/Enemies/CRidley.s @@ -386,42 +386,6 @@ lbl_803E95A4: .4byte lbl_80259194 .4byte lbl_802598FC -.global lbl_803E9650 -lbl_803E9650: - # ROM: 0x3E6650 - .4byte lbl_803D5100 - .4byte lbl_803D5109 - .4byte lbl_803D5112 - .4byte lbl_803D511B - .4byte lbl_803D5124 - .4byte lbl_803D512D - .4byte lbl_803D5136 - .4byte lbl_803D513F - .4byte lbl_803D5148 - .4byte lbl_803D5151 - .4byte lbl_803D515A - .4byte lbl_803D5163 - .4byte lbl_803D516C - .4byte lbl_803D5175 - -.global lbl_803E9688 -lbl_803E9688: - # ROM: 0x3E6688 - .4byte lbl_803D517E - .4byte lbl_803D518A - .4byte lbl_803D5196 - .4byte lbl_803D51A2 - .4byte lbl_803D51AE - .4byte lbl_803D51BA - .4byte lbl_803D51C6 - .4byte lbl_803D51D2 - .4byte lbl_803D51DE - .4byte lbl_803D51EA - .4byte lbl_803D51F6 - .4byte lbl_803D5202 - .4byte lbl_803D520E - .4byte lbl_803D521A - .section .sdata .balign 8 @@ -2147,7 +2111,7 @@ lbl_80253A6C: /* 80253A74 002509D4 7F A6 EB 78 */ mr r6, r29 /* 80253A78 002509D8 38 A0 00 00 */ li r5, 0 /* 80253A7C 002509DC 80 63 00 10 */ lwz r3, 0x10(r3) -/* 80253A80 002509E0 4B DD 73 41 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 80253A80 002509E0 4B DD 73 41 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 80253A84 002509E4 3B DE 00 01 */ addi r30, r30, 1 /* 80253A88 002509E8 3B FF 00 10 */ addi r31, r31, 0x10 /* 80253A8C 002509EC 28 1E 00 18 */ cmplwi r30, 0x18 @@ -8208,7 +8172,7 @@ lbl_802592BC: /* 802592C4 00256224 7F C6 F3 78 */ mr r6, r30 /* 802592C8 00256228 38 A0 00 01 */ li r5, 1 /* 802592CC 0025622C 80 63 00 10 */ lwz r3, 0x10(r3) -/* 802592D0 00256230 4B DD 1A F1 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 802592D0 00256230 4B DD 1A F1 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 802592D4 00256234 3B 9C 00 01 */ addi r28, r28, 1 /* 802592D8 00256238 3B 5A 00 10 */ addi r26, r26, 0x10 /* 802592DC 0025623C 28 1C 00 18 */ cmplwi r28, 0x18 @@ -8934,7 +8898,7 @@ Accept__7CRidleyFR8IVisitor: /* 80259D94 00256CF4 91 41 00 18 */ stw r10, 0x18(r1) /* 80259D98 00256CF8 7F CA F3 78 */ mr r10, r30 /* 80259D9C 00256CFC 90 01 00 1C */ stw r0, 0x1c(r1) -/* 80259DA0 00256D00 4B E2 36 B1 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80259DA0 00256D00 4B E2 36 B1 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 80259DA4 00256D04 3C 60 80 3F */ lis r3, lbl_803E9258@ha /* 80259DA8 00256D08 7F A4 EB 78 */ mr r4, r29 /* 80259DAC 00256D0C 38 03 92 58 */ addi r0, r3, lbl_803E9258@l @@ -11732,198 +11696,3 @@ lbl_803D4DD7: .asciz "ingtip_3_LCTR" .balign 4 .4byte 0 - -.global lbl_803D5100 -lbl_803D5100: - - # ROM: 0x3D2100 - .asciz "GasJet01" - -.global lbl_803D5109 -lbl_803D5109: - - # ROM: 0x3D2109 - .byte 0x47, 0x61, 0x73 - .asciz "Jet02" - -.global lbl_803D5112 -lbl_803D5112: - - # ROM: 0x3D2112 - .byte 0x47, 0x61 - .asciz "sJet03" - -.global lbl_803D511B -lbl_803D511B: - - # ROM: 0x3D211B - .byte 0x47 - .asciz "asJet04" - -.global lbl_803D5124 -lbl_803D5124: - - # ROM: 0x3D2124 - .asciz "GasJet05" - -.global lbl_803D512D -lbl_803D512D: - - # ROM: 0x3D212D - .byte 0x47, 0x61, 0x73 - .asciz "Jet06" - -.global lbl_803D5136 -lbl_803D5136: - - # ROM: 0x3D2136 - .byte 0x47, 0x61 - .asciz "sJet07" - -.global lbl_803D513F -lbl_803D513F: - - # ROM: 0x3D213F - .byte 0x47 - .asciz "asJet08" - -.global lbl_803D5148 -lbl_803D5148: - - # ROM: 0x3D2148 - .asciz "GasJet09" - -.global lbl_803D5151 -lbl_803D5151: - - # ROM: 0x3D2151 - .byte 0x47, 0x61, 0x73 - .asciz "Jet10" - -.global lbl_803D515A -lbl_803D515A: - - # ROM: 0x3D215A - .byte 0x47, 0x61 - .asciz "sJet11" - -.global lbl_803D5163 -lbl_803D5163: - - # ROM: 0x3D2163 - .byte 0x47 - .asciz "asJet12" - -.global lbl_803D516C -lbl_803D516C: - - # ROM: 0x3D216C - .asciz "GasJet13" - -.global lbl_803D5175 -lbl_803D5175: - - # ROM: 0x3D2175 - .byte 0x47, 0x61, 0x73 - .asciz "Jet14" - -.global lbl_803D517E -lbl_803D517E: - - # ROM: 0x3D217E - .byte 0x47, 0x61 - .asciz "s_01_LCTR" - -.global lbl_803D518A -lbl_803D518A: - - # ROM: 0x3D218A - .byte 0x47, 0x61 - .asciz "s_02_LCTR" - -.global lbl_803D5196 -lbl_803D5196: - - # ROM: 0x3D2196 - .byte 0x47, 0x61 - .asciz "s_03_LCTR" - -.global lbl_803D51A2 -lbl_803D51A2: - - # ROM: 0x3D21A2 - .byte 0x47, 0x61 - .asciz "s_04_LCTR" - -.global lbl_803D51AE -lbl_803D51AE: - - # ROM: 0x3D21AE - .byte 0x47, 0x61 - .asciz "s_05_LCTR" - -.global lbl_803D51BA -lbl_803D51BA: - - # ROM: 0x3D21BA - .byte 0x47, 0x61 - .asciz "s_06_LCTR" - -.global lbl_803D51C6 -lbl_803D51C6: - - # ROM: 0x3D21C6 - .byte 0x47, 0x61 - .asciz "s_07_LCTR" - -.global lbl_803D51D2 -lbl_803D51D2: - - # ROM: 0x3D21D2 - .byte 0x47, 0x61 - .asciz "s_08_LCTR" - -.global lbl_803D51DE -lbl_803D51DE: - - # ROM: 0x3D21DE - .byte 0x47, 0x61 - .asciz "s_09_LCTR" - -.global lbl_803D51EA -lbl_803D51EA: - - # ROM: 0x3D21EA - .byte 0x47, 0x61 - .asciz "s_10_LCTR" - -.global lbl_803D51F6 -lbl_803D51F6: - - # ROM: 0x3D21F6 - .byte 0x47, 0x61 - .asciz "s_11_LCTR" - -.global lbl_803D5202 -lbl_803D5202: - - # ROM: 0x3D2202 - .byte 0x47, 0x61 - .asciz "s_12_LCTR" - -.global lbl_803D520E -lbl_803D520E: - - # ROM: 0x3D220E - .byte 0x47, 0x61 - .asciz "s_13_LCTR" - -.global lbl_803D521A -lbl_803D521A: - - # ROM: 0x3D221A - .byte 0x47, 0x61 - .asciz "s_14_LCTR" - .byte 0x3F, 0x3F - .asciz "(??)" - .balign 4 diff --git a/asm/MetroidPrime/Enemies/CRipper.s b/asm/MetroidPrime/Enemies/CRipper.s index 16c82145..71c3d7e2 100644 --- a/asm/MetroidPrime/Enemies/CRipper.s +++ b/asm/MetroidPrime/Enemies/CRipper.s @@ -912,7 +912,7 @@ lbl_8015C714: /* 8015C794 001596F4 90 01 00 14 */ stw r0, 0x14(r1) /* 8015C798 001596F8 91 81 00 18 */ stw r12, 0x18(r1) /* 8015C79C 001596FC 91 61 00 1C */ stw r11, 0x1c(r1) -/* 8015C7A0 00159700 4B F2 0C B1 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 8015C7A0 00159700 4B F2 0C B1 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 8015C7A4 00159704 3C 60 80 3E */ lis r3, lbl_803E3348@ha /* 8015C7A8 00159708 38 A0 00 00 */ li r5, 0 /* 8015C7AC 0015970C 38 03 33 48 */ addi r0, r3, lbl_803E3348@l diff --git a/asm/MetroidPrime/Enemies/CSpacePirate.s b/asm/MetroidPrime/Enemies/CSpacePirate.s index 64792d33..49397313 100644 --- a/asm/MetroidPrime/Enemies/CSpacePirate.s +++ b/asm/MetroidPrime/Enemies/CSpacePirate.s @@ -11231,13 +11231,13 @@ lbl_80129A50: /* 80129A5C 001269BC 3C 80 80 57 */ lis r4, lbl_8056F8A4@ha /* 80129A60 001269C0 7C E3 3B 78 */ mr r3, r7 /* 80129A64 001269C4 38 84 F8 A4 */ addi r4, r4, lbl_8056F8A4@l -/* 80129A68 001269C8 4B F0 13 59 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 80129A68 001269C8 4B F0 13 59 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" /* 80129A6C 001269CC 48 00 00 14 */ b lbl_80129A80 lbl_80129A70: /* 80129A70 001269D0 3C 80 80 57 */ lis r4, lbl_8056F894@ha /* 80129A74 001269D4 7C E3 3B 78 */ mr r3, r7 /* 80129A78 001269D8 38 84 F8 94 */ addi r4, r4, lbl_8056F894@l -/* 80129A7C 001269DC 4B F0 13 45 */ bl SetParticleEffectState__9CAnimDataFQ24rstl6stringbR13CStateManager +/* 80129A7C 001269DC 4B F0 13 45 */ bl "SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>bR13CStateManager" lbl_80129A80: /* 80129A80 001269E0 80 01 00 14 */ lwz r0, 0x14(r1) /* 80129A84 001269E4 7C 08 03 A6 */ mtlr r0 @@ -11904,7 +11904,7 @@ Accept__12CSpacePirateFR8IVisitor: /* 8012A3B4 00127314 91 21 00 18 */ stw r9, 0x18(r1) /* 8012A3B8 00127318 7D 69 5B 78 */ mr r9, r11 /* 8012A3BC 0012731C 90 01 00 1C */ stw r0, 0x1c(r1) -/* 8012A3C0 00127320 4B F5 30 91 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 8012A3C0 00127320 4B F5 30 91 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 8012A3C4 00127324 3C 60 80 3E */ lis r3, lbl_803E0800@ha /* 8012A3C8 00127328 7F 84 E3 78 */ mr r4, r28 /* 8012A3CC 0012732C 38 03 08 00 */ addi r0, r3, lbl_803E0800@l diff --git a/asm/MetroidPrime/Enemies/CSpankWeed.s b/asm/MetroidPrime/Enemies/CSpankWeed.s index 6a898037..10f9deb9 100644 --- a/asm/MetroidPrime/Enemies/CSpankWeed.s +++ b/asm/MetroidPrime/Enemies/CSpankWeed.s @@ -1958,7 +1958,7 @@ Accept__10CSpankWeedFR8IVisitor: /* 801564A0 00153400 91 21 00 18 */ stw r9, 0x18(r1) /* 801564A4 00153404 7F 89 E3 78 */ mr r9, r28 /* 801564A8 00153408 91 61 00 1C */ stw r11, 0x1c(r1) -/* 801564AC 0015340C 4B F2 6F A5 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 801564AC 0015340C 4B F2 6F A5 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 801564B0 00153410 3C 80 80 3E */ lis r4, lbl_803E2D28@ha /* 801564B4 00153414 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha /* 801564B8 00153418 38 04 2D 28 */ addi r0, r4, lbl_803E2D28@l diff --git a/asm/MetroidPrime/Enemies/CThardus.s b/asm/MetroidPrime/Enemies/CThardus.s index 8a63305d..ed2a8a83 100644 --- a/asm/MetroidPrime/Enemies/CThardus.s +++ b/asm/MetroidPrime/Enemies/CThardus.s @@ -9258,7 +9258,7 @@ Accept__8CThardusFR8IVisitor: /* 801E2304 001DF264 83 C1 01 F4 */ lwz r30, 0x1f4(r1) /* 801E2308 001DF268 83 E1 01 F8 */ lwz r31, 0x1f8(r1) /* 801E230C 001DF26C 81 C1 01 FC */ lwz r14, 0x1fc(r1) -/* 801E2310 001DF270 4B E9 B1 41 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 801E2310 001DF270 4B E9 B1 41 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 801E2314 001DF274 3C 60 80 3E */ lis r3, lbl_803E5CE0@ha /* 801E2318 001DF278 38 A0 00 00 */ li r5, 0 /* 801E231C 001DF27C 38 63 5C E0 */ addi r3, r3, lbl_803E5CE0@l diff --git a/asm/MetroidPrime/Enemies/CThardusRockProjectile.s b/asm/MetroidPrime/Enemies/CThardusRockProjectile.s index 3ed42338..5857cd05 100644 --- a/asm/MetroidPrime/Enemies/CThardusRockProjectile.s +++ b/asm/MetroidPrime/Enemies/CThardusRockProjectile.s @@ -2798,7 +2798,7 @@ Accept__22CThardusRockProjectileFR8IVisitor: /* 80205BC4 00202B24 91 21 00 18 */ stw r9, 0x18(r1) /* 80205BC8 00202B28 7D 89 63 78 */ mr r9, r12 /* 80205BCC 00202B2C 91 61 00 1C */ stw r11, 0x1c(r1) -/* 80205BD0 00202B30 4B E7 78 81 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80205BD0 00202B30 4B E7 78 81 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 80205BD4 00202B34 3C 60 80 3E */ lis r3, lbl_803E6BE0@ha /* 80205BD8 00202B38 C0 02 B0 88 */ lfs f0, lbl_805ACDA8@sda21(r2) /* 80205BDC 00202B3C 38 03 6B E0 */ addi r0, r3, lbl_803E6BE0@l diff --git a/asm/MetroidPrime/Enemies/CTryclops.s b/asm/MetroidPrime/Enemies/CTryclops.s index be220146..855d1996 100644 --- a/asm/MetroidPrime/Enemies/CTryclops.s +++ b/asm/MetroidPrime/Enemies/CTryclops.s @@ -1557,7 +1557,7 @@ sub_8025ece4: /* 8025ED8C 0025BCEC 48 0B 37 51 */ bl Float__9CRandom16Fv /* 8025ED90 0025BCF0 C0 62 BA 44 */ lfs f3, lbl_805AD764@sda21(r2) /* 8025ED94 0025BCF4 C0 02 BA 4C */ lfs f0, lbl_805AD76C@sda21(r2) -/* 8025ED98 0025BCF8 C0 42 96 A0 */ lfs f2, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 8025ED98 0025BCF8 C0 42 96 A0 */ lfs f2, kGravityAccel__13CPhysicsActor@sda21(r2) /* 8025ED9C 0025BCFC EC 23 00 7A */ fmadds f1, f3, f1, f0 /* 8025EDA0 0025BD00 C0 02 BA 34 */ lfs f0, lbl_805AD754@sda21(r2) /* 8025EDA4 0025BD04 FC 80 10 50 */ fneg f4, f2 @@ -3812,7 +3812,7 @@ __ct__9CTryclops: /* 80260DF4 0025DD54 91 41 00 18 */ stw r10, 0x18(r1) /* 80260DF8 0025DD58 7D 8A 63 78 */ mr r10, r12 /* 80260DFC 0025DD5C 91 61 00 1C */ stw r11, 0x1c(r1) -/* 80260E00 0025DD60 4B E1 C6 51 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80260E00 0025DD60 4B E1 C6 51 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 80260E04 0025DD64 3C 60 80 3F */ lis r3, lbl_803E9A40@ha /* 80260E08 0025DD68 C0 22 BA 3C */ lfs f1, lbl_805AD75C@sda21(r2) /* 80260E0C 0025DD6C 38 03 9A 40 */ addi r0, r3, lbl_803E9A40@l diff --git a/asm/MetroidPrime/Enemies/CWallCrawlerSwarm.s b/asm/MetroidPrime/Enemies/CWallCrawlerSwarm.s index e5ddf51f..178e8157 100644 --- a/asm/MetroidPrime/Enemies/CWallCrawlerSwarm.s +++ b/asm/MetroidPrime/Enemies/CWallCrawlerSwarm.s @@ -3484,7 +3484,7 @@ LaunchBoid__17CWallCrawlerSwarmFRQ217CWallCrawlerSwarm5CBoidRC9CVector3f: /* 801EA594 001E74F4 D0 41 00 44 */ stfs f2, 0x44(r1) /* 801EA598 001E74F8 40 82 00 28 */ bne lbl_801EA5C0 /* 801EA59C 001E74FC C0 22 AD C8 */ lfs f1, lbl_805ACAE8@sda21(r2) -/* 801EA5A0 001E7500 C0 02 96 A0 */ lfs f0, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 801EA5A0 001E7500 C0 02 96 A0 */ lfs f0, kGravityAccel__13CPhysicsActor@sda21(r2) /* 801EA5A4 001E7504 EC 21 00 24 */ fdivs f1, f1, f0 /* 801EA5A8 001E7508 48 12 AF 59 */ bl SqrtF__5CMathFf /* 801EA5AC 001E750C C0 02 AD EC */ lfs f0, lbl_805ACB0C@sda21(r2) @@ -3506,7 +3506,7 @@ lbl_801EA5E4: /* 801EA5E4 001E7544 C0 3D 00 04 */ lfs f1, 4(r29) /* 801EA5E8 001E7548 38 61 00 30 */ addi r3, r1, 0x30 /* 801EA5EC 001E754C C0 01 00 40 */ lfs f0, 0x40(r1) -/* 801EA5F0 001E7550 C0 62 96 A0 */ lfs f3, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 801EA5F0 001E7550 C0 62 96 A0 */ lfs f3, kGravityAccel__13CPhysicsActor@sda21(r2) /* 801EA5F4 001E7554 EC 81 00 28 */ fsubs f4, f1, f0 /* 801EA5F8 001E7558 C0 02 AD A0 */ lfs f0, lbl_805ACAC0@sda21(r2) /* 801EA5FC 001E755C C0 5D 00 00 */ lfs f2, 0(r29) @@ -5230,7 +5230,7 @@ lbl_801EBF0C: lbl_801EBF20: /* 801EBF20 001E8E80 57 A0 06 3F */ clrlwi. r0, r29, 0x18 /* 801EBF24 001E8E84 40 82 06 30 */ bne lbl_801EC554 -/* 801EBF28 001E8E88 C0 22 96 A0 */ lfs f1, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 801EBF28 001E8E88 C0 22 96 A0 */ lfs f1, kGravityAccel__13CPhysicsActor@sda21(r2) /* 801EBF2C 001E8E8C 80 1B 05 58 */ lwz r0, 0x558(r27) /* 801EBF30 001E8E90 FC 00 08 90 */ fmr f0, f1 /* 801EBF34 001E8E94 2C 00 00 01 */ cmpwi r0, 1 diff --git a/asm/MetroidPrime/Enemies/CWallWalker.s b/asm/MetroidPrime/Enemies/CWallWalker.s index c5594bf0..eae75486 100644 --- a/asm/MetroidPrime/Enemies/CWallWalker.s +++ b/asm/MetroidPrime/Enemies/CWallWalker.s @@ -1129,7 +1129,7 @@ ProjectPointToPlane__11CWallWalkerFRC9CVector3fRC9CVector3fRC9CVector3f: /* 802692FC 0026625C 83 C1 00 F0 */ lwz r30, 0xf0(r1) /* 80269300 00266260 90 01 00 1C */ stw r0, 0x1c(r1) /* 80269304 00266264 8B E1 00 F7 */ lbz r31, 0xf7(r1) -/* 80269308 00266268 4B E1 41 49 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80269308 00266268 4B E1 41 49 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 8026930C 0026626C 3C 60 80 3F */ lis r3, lbl_803EA0F0@ha /* 80269310 00266270 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha /* 80269314 00266274 38 03 A0 F0 */ addi r0, r3, lbl_803EA0F0@l diff --git a/asm/MetroidPrime/Enemies/CWarWasp.s b/asm/MetroidPrime/Enemies/CWarWasp.s index b5eb083f..b5296383 100644 --- a/asm/MetroidPrime/Enemies/CWarWasp.s +++ b/asm/MetroidPrime/Enemies/CWarWasp.s @@ -7054,7 +7054,7 @@ lbl_80110BE0: /* 80110C78 0010DBD8 91 41 00 18 */ stw r10, 0x18(r1) /* 80110C7C 0010DBDC 7D 6A 5B 78 */ mr r10, r11 /* 80110C80 0010DBE0 90 01 00 1C */ stw r0, 0x1c(r1) -/* 80110C84 0010DBE4 4B F6 C7 CD */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 80110C84 0010DBE4 4B F6 C7 CD */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 80110C88 0010DBE8 3C 60 80 3E */ lis r3, lbl_803DFF90@ha /* 80110C8C 0010DBEC 3A F8 05 70 */ addi r23, r24, 0x570 /* 80110C90 0010DBF0 38 03 FF 90 */ addi r0, r3, lbl_803DFF90@l diff --git a/asm/MetroidPrime/ScriptLoader.s b/asm/MetroidPrime/ScriptLoader.s index e0742403..23f6bb52 100644 --- a/asm/MetroidPrime/ScriptLoader.s +++ b/asm/MetroidPrime/ScriptLoader.s @@ -2995,7 +2995,7 @@ lbl_800C7A14: /* 800C7B74 000C4AD4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 800C7B78 000C4AD8 90 01 00 20 */ stw r0, 0x20(r1) /* 800C7B7C 000C4ADC 93 41 00 24 */ stw r26, 0x24(r1) -/* 800C7B80 000C4AE0 48 19 4E 6D */ bl __ct__7CPuffer +/* 800C7B80 000C4AE0 48 19 4E 6D */ bl "__ct__7CPufferF9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC14CPatternedInfofUiRC11CDamageInfoUifbbbRC11CDamageInfoUs" /* 800C7B84 000C4AE4 7C 77 1B 78 */ mr r23, r3 lbl_800C7B88: /* 800C7B88 000C4AE8 7E C0 07 75 */ extsb. r0, r22 diff --git a/asm/MetroidPrime/ScriptObjects/CEnergyBall.s b/asm/MetroidPrime/ScriptObjects/CEnergyBall.s index da08bb8b..58edeed7 100644 --- a/asm/MetroidPrime/ScriptObjects/CEnergyBall.s +++ b/asm/MetroidPrime/ScriptObjects/CEnergyBall.s @@ -1001,7 +1001,7 @@ __ct__11CEnergyBall: /* 8029FDC0 0029CD20 A3 A1 01 02 */ lhz r29, 0x102(r1) /* 8029FDC4 0029CD24 83 C1 01 04 */ lwz r30, 0x104(r1) /* 8029FDC8 0029CD28 83 E1 01 08 */ lwz r31, 0x108(r1) -/* 8029FDCC 0029CD2C 4B DD D6 85 */ bl "__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi" +/* 8029FDCC 0029CD2C 4B DD D6 85 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant" /* 8029FDD0 0029CD30 3C 80 80 3F */ lis r4, lbl_803EC0A0@ha /* 8029FDD4 0029CD34 38 75 05 68 */ addi r3, r21, 0x568 /* 8029FDD8 0029CD38 38 04 C0 A0 */ addi r0, r4, lbl_803EC0A0@l diff --git a/asm/MetroidPrime/ScriptObjects/CFire.s b/asm/MetroidPrime/ScriptObjects/CFire.s index 1fb2cfc6..72a09bdf 100644 --- a/asm/MetroidPrime/ScriptObjects/CFire.s +++ b/asm/MetroidPrime/ScriptObjects/CFire.s @@ -458,8 +458,8 @@ lbl_8025D1C0: /* 8025D1D4 0025A134 38 21 00 10 */ addi r1, r1, 0x10 /* 8025D1D8 0025A138 4E 80 00 20 */ blr -.global "__ct__5CFireF25TToken<15CGenDescription>9TUniqueId7TAreaIdb9TUniqueIdRC12CTransform4fRC11CDamageInfoRC6CAABoxRC9CVector3fbUibbbffff" -"__ct__5CFireF25TToken<15CGenDescription>9TUniqueId7TAreaIdb9TUniqueIdRC12CTransform4fRC11CDamageInfoRC6CAABoxRC9CVector3fbUibbbffff": +.global "__ct__5CFireFRC25TToken<15CGenDescription>9TUniqueId7TAreaIdb9TUniqueIdRC12CTransform4fRC11CDamageInfoRC6CAABoxRC9CVector3fbUibbbffff" +"__ct__5CFireFRC25TToken<15CGenDescription>9TUniqueId7TAreaIdb9TUniqueIdRC12CTransform4fRC11CDamageInfoRC6CAABoxRC9CVector3fbUibbbffff": /* 8025D1DC 0025A13C 94 21 FE 50 */ stwu r1, -0x1b0(r1) /* 8025D1E0 0025A140 7C 08 02 A6 */ mflr r0 /* 8025D1E4 0025A144 90 01 01 B4 */ stw r0, 0x1b4(r1) diff --git a/asm/MetroidPrime/ScriptObjects/CScriptDebris.s b/asm/MetroidPrime/ScriptObjects/CScriptDebris.s index 35e79895..023cdaa5 100644 --- a/asm/MetroidPrime/ScriptObjects/CScriptDebris.s +++ b/asm/MetroidPrime/ScriptObjects/CScriptDebris.s @@ -2672,7 +2672,7 @@ lbl_800FDC10: /* 800FDC2C 000FAB8C 38 80 00 00 */ li r4, 0 /* 800FDC30 000FAB90 48 24 32 11 */ bl __dt__6CTokenFv lbl_800FDC34: -/* 800FDC34 000FAB94 C0 02 96 A0 */ lfs f0, skGravityConstant__13CPhysicsActor@sda21(r2) +/* 800FDC34 000FAB94 C0 02 96 A0 */ lfs f0, kGravityAccel__13CPhysicsActor@sda21(r2) /* 800FDC38 000FAB98 C0 5D 00 E8 */ lfs f2, 0xe8(r29) /* 800FDC3C 000FAB9C FC 20 00 50 */ fneg f1, f0 /* 800FDC40 000FABA0 C0 02 93 64 */ lfs f0, lbl_805AB084@sda21(r2) diff --git a/include/Kyoto/Animation/CPASAnimState.hpp b/include/Kyoto/Animation/CPASAnimState.hpp index cda0d9dc..6c1d378c 100644 --- a/include/Kyoto/Animation/CPASAnimState.hpp +++ b/include/Kyoto/Animation/CPASAnimState.hpp @@ -69,7 +69,7 @@ private: class CPASAnimState { public: CPASAnimParm GetAnimParmData(int, unsigned int) const; - + pas::EAnimationState GetStateId() const { return x0_id; } private: diff --git a/include/Kyoto/Math/CTransform4f.hpp b/include/Kyoto/Math/CTransform4f.hpp index eceb16ce..601b9878 100644 --- a/include/Kyoto/Math/CTransform4f.hpp +++ b/include/Kyoto/Math/CTransform4f.hpp @@ -13,9 +13,6 @@ class CRelAngle; class CTransform4f { public: - // CTransform4f() { - // // TODO - // } CTransform4f(const CVector3f& m0, const CVector3f& m1, const CVector3f& m2, const CVector3f& pos) : m0(m0), posX(pos.GetX()), m1(m1), posY(pos.GetY()), m2(m2), posZ(pos.GetZ()) {} CTransform4f(float, float, float, float, float, float, float, float, float, float, float, float); @@ -70,8 +67,8 @@ public: // RotateX__12CTransform4fFRC9CRelAngle // RotateY__12CTransform4fFRC9CRelAngle static CTransform4f RotateZ(const CRelAngle&); - // Scale__12CTransform4fFf - // Scale__12CTransform4fFfff + static CTransform4f Scale(float); + static CTransform4f Scale(float, float, float); static CTransform4f Scale(const CVector3f&); // ScaleBy__12CTransform4fFf // SetRotation__12CTransform4fFRC12CTransform4f diff --git a/include/Kyoto/Math/CVector3f.hpp b/include/Kyoto/Math/CVector3f.hpp index c589e94f..599c242d 100644 --- a/include/Kyoto/Math/CVector3f.hpp +++ b/include/Kyoto/Math/CVector3f.hpp @@ -45,7 +45,13 @@ public: bool CanBeNormalized() const; static float GetAngleDiff(const CVector3f& a, const CVector3f& b); bool IsEqu(const CVector3f& other, float epsilon = FLT_EPSILON) const; - // Lerp__9CVector3fFRC9CVector3fRC9CVector3ff + static CVector3f Lerp(const CVector3f& a, const CVector3f& b, float v) { + float inv = 1.f - v; + float x = inv * a.GetX() + v * b.GetX(); + float y = inv * a.GetY() + v * b.GetY(); + float z = inv * a.GetZ() + v * b.GetZ(); + return CVector3f(x, y, z); + } inline float MagSquared() const { return GetX() * GetX() + GetY() * GetY() + GetZ() * GetZ(); } static CVector3f Cross(const CVector3f& lhs, const CVector3f& rhs) { const float x = (lhs.GetY() * rhs.GetZ()) - (rhs.GetY() * lhs.GetZ()); diff --git a/include/MetroidPrime/BodyState/CBodyController.hpp b/include/MetroidPrime/BodyState/CBodyController.hpp index 0df754db..a01bac2a 100644 --- a/include/MetroidPrime/BodyState/CBodyController.hpp +++ b/include/MetroidPrime/BodyState/CBodyController.hpp @@ -14,14 +14,12 @@ class CPASAnimParmData; class CRandom16; class CBodyController { - public: - const CPASDatabase& GetPASDatabase() const; - CActor& GetOwner() const { return x0_actor; } CBodyStateCmdMgr& CommandMgr() { return x4_cmdMgr; } const CBodyStateCmdMgr& GetCommandMgr() const { return x4_cmdMgr; } - + + const CPASDatabase& GetPASDatabase() const; float GetAnimTimeRemaining() const; void SetDeltaRotation(const CQuaternion& q); void SetCurrentAnimation(const CAnimPlaybackParms& parms, bool loop, bool noTrans); @@ -29,29 +27,43 @@ public: void EnableAnimation(bool enable); void PlayBestAnimation(const CPASAnimParmData& parms, CRandom16& r); bool HasIceBreakoutState(); + void Activate(CStateManager& mgr); void SetFallState(pas::EFallState state); // { x2f0_fallState = state; } - pas::EFallState GetFallState() const; // { return x2f0_fallState; } + pas::EFallState GetFallState() const; // { return x2f0_fallState; } int GetCurrentAnimId() const { return x2f8_curAnim; } pas::ELocomotionType GetLocomotionType() const { return x2ec_locomotionType; } bool IsAnimationOver() const { return x300_24_animationOver; } bool ShouldPlayDeathAnims() const { return x300_28_playDeathAnims; } + float GetRestrictedFlyerMoveSpeed() const { return x330_restrictedFlyerMoveSpeed; } + void SetRestrictedFlyerMoveSpeed(float speed) { x330_restrictedFlyerMoveSpeed = speed; } private: CActor& x0_actor; CBodyStateCmdMgr x4_cmdMgr; CBodyStateInfo x2a4_bodyStateInfo; CQuaternion x2dc_rot; - pas::ELocomotionType x2ec_locomotionType ; - pas::EFallState x2f0_fallState ; + pas::ELocomotionType x2ec_locomotionType; + pas::EFallState x2f0_fallState; EBodyType x2f4_bodyType; - int x2f8_curAnim ; + int x2f8_curAnim; float x2fc_turnSpeed; bool x300_24_animationOver : 1; bool x300_25_active : 1; bool x300_26_frozen : 1; bool x300_27_hasBeenFrozen : 1; bool x300_28_playDeathAnims : 1; + float x304_intoFreezeDur; + float x308_frozenDur; + float x30c_breakoutDur; + float x310_timeFrozen; + CVector3f x314_backedUpForce; + float x320_fireDur; + float x324_electrocutionDur; + float x328_timeOnFire; + float x32c_timeElectrocuting; + float x330_restrictedFlyerMoveSpeed; }; +CHECK_SIZEOF(CBodyController, 0x334) #endif // _CBODYCONTROLLER diff --git a/include/MetroidPrime/BodyState/CBodyStateCmdMgr.hpp b/include/MetroidPrime/BodyState/CBodyStateCmdMgr.hpp index 6f3baf51..faba1893 100644 --- a/include/MetroidPrime/BodyState/CBodyStateCmdMgr.hpp +++ b/include/MetroidPrime/BodyState/CBodyStateCmdMgr.hpp @@ -1,47 +1,51 @@ #ifndef _CBODYSTATECMDMGR #define _CBODYSTATECMDMGR +#include "types.h" + +#include "MetroidPrime/TGameTypes.hpp" + #include "Kyoto/Animation/CharacterCommon.hpp" #include "Kyoto/Math/CVector3f.hpp" -class CBodyStateCmd { - EBodyStateCmd x4_cmd; +enum ESteeringBlendMode { + kSBM_Normal, + kSBM_FullSpeed, + kSBM_Clamped, +}; +class CBodyStateCmd { public: + CBodyStateCmd(EBodyStateCmd cmd) : x4_cmd(cmd) {} virtual ~CBodyStateCmd(){}; - explicit CBodyStateCmd(EBodyStateCmd cmd) : x4_cmd(cmd) {} + EBodyStateCmd GetCommandId() const { return x4_cmd; } + +private: + EBodyStateCmd x4_cmd; }; class CBCAdditiveFlinchCmd : public CBodyStateCmd { - float x8_weight; - public: + CBCAdditiveFlinchCmd(float f) : CBodyStateCmd(kBSC_AdditiveFlinch), x8_weight(f) {} + float GetWeight() const { return x8_weight; } + +private: + float x8_weight; }; class CBCGenerateCmd : public CBodyStateCmd { - pas::EGenerateType x8_type; - CVector3f xc_targetPos; - int x18_animId; - bool x1c_24_targetTransform : 1; - bool x1c_25_overrideAnim : 1; - public: - explicit CBCGenerateCmd() : CBodyStateCmd(kBSC_Generate), xc_targetPos(0.f, 0.f, 0.f) {} - - explicit CBCGenerateCmd(pas::EGenerateType type) - : CBodyStateCmd(kBSC_Generate), x8_type(type), xc_targetPos(0.f, 0.f, 0.f) {} - - explicit CBCGenerateCmd(pas::EGenerateType type, int animId) + CBCGenerateCmd(pas::EGenerateType type, int animId) : CBodyStateCmd(kBSC_Generate) , x8_type(type) , xc_targetPos(0.f, 0.f, 0.f) , x18_animId(animId) , x1c_25_overrideAnim(animId != -1) {} - explicit CBCGenerateCmd(pas::EGenerateType type, const CVector3f& vec, - bool targetTransform = false, bool overrideAnim = false) + CBCGenerateCmd(pas::EGenerateType type, const CVector3f& vec, bool targetTransform = false, + bool overrideAnim = false) : CBodyStateCmd(kBSC_Generate) , x8_type(type) , xc_targetPos(vec) @@ -53,25 +57,20 @@ public: bool HasExitTargetPos() const { return x1c_24_targetTransform; } int GetSpecialAnimId() const { return x18_animId; } bool UseSpecialAnimId() const { return x1c_25_overrideAnim; } + +private: + pas::EGenerateType x8_type; + CVector3f xc_targetPos; + int x18_animId; + bool x1c_24_targetTransform : 1; + bool x1c_25_overrideAnim : 1; }; // class CBCScriptedCmd : public CBodyStateCmd { - s32 x8_anim; - bool xc_24_loopAnim : 1; - bool xc_25_timedLoop : 1; - float x10_loopDur; - public: - explicit CBCScriptedCmd() - : CBodyStateCmd(kBSC_Scripted) - , x8_anim(-1) - , xc_24_loopAnim(false) - , xc_25_timedLoop(false) - , x10_loopDur(0.f) {} - - explicit CBCScriptedCmd(int i, bool b1, bool b2, float f) + CBCScriptedCmd(int i, bool b1, bool b2, float f) : CBodyStateCmd(kBSC_Scripted) , x8_anim(i) , xc_24_loopAnim(b1) @@ -82,16 +81,19 @@ public: bool IsLooped() const { return xc_24_loopAnim; } bool GetUseLoopDuration() const { return xc_25_timedLoop; } float GetLoopDuration() const { return x10_loopDur; } + +private: + int x8_anim; + bool xc_24_loopAnim : 1; + bool xc_25_timedLoop : 1; + float x10_loopDur; }; // class CBCStepCmd : public CBodyStateCmd { public: - explicit CBCStepCmd() - : CBodyStateCmd(kBSC_Step), x8_dir(pas::kSD_Invalid), xc_type(pas::kStep_Normal) {} - - explicit CBCStepCmd(pas::EStepDirection dir, pas::EStepType type) + CBCStepCmd(pas::EStepDirection dir, pas::EStepType type) : CBodyStateCmd(kBSC_Step), x8_dir(dir), xc_type(type) {} pas::EStepDirection GetStepDirection() const { return x8_dir; } @@ -106,8 +108,8 @@ private: class CBCTauntCmd : public CBodyStateCmd { public: - explicit CBCTauntCmd() : CBodyStateCmd(kBSC_Taunt), x8_type(pas::kTT_Invalid) {} - explicit CBCTauntCmd(pas::ETauntType type) : CBodyStateCmd(kBSC_Taunt), x8_type(type) {} + CBCTauntCmd(pas::ETauntType type) : CBodyStateCmd(kBSC_Taunt), x8_type(type) {} + pas::ETauntType GetTauntType() const { return x8_type; } private: @@ -118,8 +120,8 @@ private: class CBCGetupCmd : public CBodyStateCmd { public: - explicit CBCGetupCmd() : CBodyStateCmd(kBSC_Getup), x8_type(pas::kGetup_Invalid) {} - explicit CBCGetupCmd(pas::EGetupType type) : CBodyStateCmd(kBSC_Getup), x8_type(type) {} + CBCGetupCmd(pas::EGetupType type) : CBodyStateCmd(kBSC_Getup), x8_type(type) {} + pas::EGetupType GetGetupType() const { return x8_type; } private: @@ -130,13 +132,7 @@ private: class CBCAdditiveReactionCmd : public CBodyStateCmd { public: - explicit CBCAdditiveReactionCmd() - : CBodyStateCmd(kBSC_AdditiveReaction) - , x8_weight(1.f) - , xc_type(pas::kART_Invalid) - , x10_active(false) {} - - explicit CBCAdditiveReactionCmd(pas::EAdditiveReactionType type, float weight, bool active) + CBCAdditiveReactionCmd(pas::EAdditiveReactionType type, float weight, bool active) : CBodyStateCmd(kBSC_AdditiveReaction), x8_weight(weight), xc_type(type), x10_active(active) {} pas::EAdditiveReactionType GetType() const { return xc_type; } @@ -153,9 +149,7 @@ private: class CBCSlideCmd : public CBodyStateCmd { public: - explicit CBCSlideCmd() - : CBodyStateCmd(kBSC_Slide), x8_type(pas::kSlide_Invalid), xc_dir(CVector3f::Zero()) {} - explicit CBCSlideCmd(pas::ESlideType type, const CVector3f& dir) + CBCSlideCmd(pas::ESlideType type, const CVector3f& dir) : CBodyStateCmd(kBSC_Slide), x8_type(type), xc_dir(dir) {} pas::ESlideType GetSlideType() const { return x8_type; } @@ -170,10 +164,7 @@ private: class CBCKnockDownCmd : public CBodyStateCmd { public: - explicit CBCKnockDownCmd() - : CBodyStateCmd(kBSC_KnockDown), x8_dir(0.f, 0.f, 0.f), x14_severity(pas::kS_Invalid) {} - - explicit CBCKnockDownCmd(const CVector3f& vec, pas::ESeverity severity) + CBCKnockDownCmd(const CVector3f& vec, pas::ESeverity severity) : CBodyStateCmd(kBSC_KnockDown), x8_dir(vec), x14_severity(severity) {} const CVector3f& GetHitDirection() const { return x8_dir; } @@ -188,10 +179,7 @@ private: class CBCKnockBackCmd : public CBodyStateCmd { public: - explicit CBCKnockBackCmd() - : CBodyStateCmd(kBSC_KnockBack), x8_dir(0.f, 0.f, 0.f), x14_severity(pas::kS_Invalid) {} - - explicit CBCKnockBackCmd(const CVector3f& vec, pas::ESeverity severity) + CBCKnockBackCmd(const CVector3f& vec, pas::ESeverity severity) : CBodyStateCmd(kBSC_KnockBack), x8_dir(vec), x14_severity(severity) {} const CVector3f& GetHitDirection() const { return x8_dir; } @@ -204,9 +192,207 @@ private: // +class CBCMeleeAttackCmd : public CBodyStateCmd { +public: + CBCMeleeAttackCmd(pas::ESeverity severity) + : CBodyStateCmd(kBSC_MeleeAttack) + , x8_severity(severity) + , xc_targetPos(0.f, 0.f, 0.f) + , x18_hasTargetPos(false) {} + + CBCMeleeAttackCmd(pas::ESeverity severity, const CVector3f& target) + : CBodyStateCmd(kBSC_MeleeAttack) + , x8_severity(severity) + , xc_targetPos(target) + , x18_hasTargetPos(true) {} + + pas::ESeverity GetAttackSeverity() const { return x8_severity; } + bool HasAttackTargetPos() const { return x18_hasTargetPos; } + const CVector3f& GetAttackTargetPos() const { return xc_targetPos; } + +private: + pas::ESeverity x8_severity; + CVector3f xc_targetPos; + bool x18_hasTargetPos; +}; + +// + +class CBCProjectileAttackCmd : public CBodyStateCmd { +public: + CBCProjectileAttackCmd(pas::ESeverity severity, const CVector3f& vec, bool b) + : CBodyStateCmd(kBSC_ProjectileAttack) + , x8_severity(severity) + , xc_target(vec) + , x18_blendAnims(b) {} + + pas::ESeverity GetAttackSeverity() const { return x8_severity; } + const CVector3f& GetTargetPosition() const { return xc_target; } + bool BlendTwoClosest() const { return x18_blendAnims; } + +private: + pas::ESeverity x8_severity; + CVector3f xc_target; + bool x18_blendAnims; +}; + +// + +class CBCLoopAttackCmd : public CBodyStateCmd { +public: + CBCLoopAttackCmd(pas::ELoopAttackType type, bool waitForAnimOver = false) + : CBodyStateCmd(kBSC_LoopAttack), x8_type(type), xc_waitForAnimOver(waitForAnimOver) {} + + pas::ELoopAttackType GetAttackType() const { return x8_type; } + bool WaitForAnimOver() const { return xc_waitForAnimOver; } + +private: + pas::ELoopAttackType x8_type; + bool xc_waitForAnimOver; +}; + +// + +class CBCLoopReactionCmd : public CBodyStateCmd { +public: + CBCLoopReactionCmd(pas::EReactionType type) : CBodyStateCmd(kBSC_LoopReaction), x8_type(type) {} + + pas::EReactionType GetReactionType() const { return x8_type; } + +private: + pas::EReactionType x8_type; +}; + +// + +class CBCLoopHitReactionCmd : public CBodyStateCmd { +public: + CBCLoopHitReactionCmd(pas::EReactionType type) + : CBodyStateCmd(kBSC_LoopHitReaction), x8_type(type) {} + + pas::EReactionType GetReactionType() const { return x8_type; } + +private: + pas::EReactionType x8_type; +}; + +// + +class CBCHurledCmd : public CBodyStateCmd { +public: + CBCHurledCmd(const CVector3f& dir, const CVector3f& launchVel, bool startInLoop = false) + : CBodyStateCmd(kBSC_Hurled) + , x8_direction(dir) + , x14_launchVel(launchVel) + , x20_startInKnockLoop(startInLoop) {} + + const CVector3f& GetHitDirection() const { return x8_direction; } + const CVector3f& GetLaunchVelocity() const { return x14_launchVel; } + bool GetSkipLaunchState() const { return x20_startInKnockLoop; } + void SetSkipLaunchState(bool s) { x20_startInKnockLoop = s; } + +private: + CVector3f x8_direction; + CVector3f x14_launchVel; + bool x20_startInKnockLoop; +}; + +// + +class CBCJumpCmd : public CBodyStateCmd { +public: + CBCJumpCmd(const CVector3f& wp1, pas::EJumpType type, bool startInLoop = false) + : CBodyStateCmd(kBSC_Jump) + , x8_type(type) + , xc_waypoint1(wp1) + , x18_waypoint2(0.f, 0.f, 0.f) + , x24_24_wallJump(false) + , x24_25_startInJumpLoop(startInLoop) {} + + CBCJumpCmd(const CVector3f& wp1, const CVector3f& wp2, pas::EJumpType type) + : CBodyStateCmd(kBSC_Jump) + , x8_type(type) + , xc_waypoint1(wp1) + , x18_waypoint2(wp2) + , x24_24_wallJump(true) + , x24_25_startInJumpLoop(false) {} + + pas::EJumpType GetJumpType() const { return x8_type; } + const CVector3f& GetJumpTarget() const { return xc_waypoint1; } + const CVector3f& GetSecondJumpTarget() const { return x18_waypoint2; } + bool IsWallJump() const { return x24_24_wallJump; } + bool StartInJumpLoop() const { return x24_25_startInJumpLoop; } + +private: + pas::EJumpType x8_type; + CVector3f xc_waypoint1; + CVector3f x18_waypoint2; + bool x24_24_wallJump : 1; + bool x24_25_startInJumpLoop : 1; +}; + +// + +class CBCCoverCmd : public CBodyStateCmd { +public: + CBCCoverCmd(pas::ECoverDirection dir, const CVector3f& v1, const CVector3f& v2) + : CBodyStateCmd(kBSC_Cover), x8_dir(dir), xc_targetPos(v1), x18_alignDir(v2) {} + + pas::ECoverDirection GetDirection() const { return x8_dir; } + const CVector3f& GetTarget() const { return xc_targetPos; } + const CVector3f& GetAlignDirection() const { return x18_alignDir; } + +private: + pas::ECoverDirection x8_dir; + CVector3f xc_targetPos; + CVector3f x18_alignDir; +}; + +// + +class CBCWallHangCmd : public CBodyStateCmd { +public: + CBCWallHangCmd(TUniqueId uid) : CBodyStateCmd(kBSC_WallHang), x8_wpId(uid) {} + + TUniqueId GetTarget() const { return x8_wpId; } + +private: + TUniqueId x8_wpId; +}; + +// + +class CBCAdditiveAimCmd : public CBodyStateCmd { +public: + CBCAdditiveAimCmd() : CBodyStateCmd(kBSC_AdditiveAim) {} +}; + +// + +class CBCLocomotionCmd { +public: + CBCLocomotionCmd(const CVector3f& move, const CVector3f& face, float weight) + : x0_move(move), xc_face(face), x18_weight(weight) {} + + const CVector3f& GetMoveVector() const { return x0_move; } + const CVector3f& GetFaceVector() const { return xc_face; } + float GetWeight() const { return x18_weight; } + +private: + CVector3f x0_move; + CVector3f xc_face; + float x18_weight; +}; + +// + class CBodyStateCmdMgr { public: + void ClearLocomotionCmds(); + void DeliverCmd(const CBCLocomotionCmd& cmd); CBodyStateCmd* GetCmd(EBodyStateCmd cmd); + + const CVector3f& GetMoveVector() const { return x0_move; } const CVector3f& GetTargetVector() const { return x18_target; } private: @@ -214,7 +400,41 @@ private: CVector3f xc_face; CVector3f x18_target; CVector3f x24_additiveTarget; - uchar x30_pad[0x270]; + ESteeringBlendMode x30_steeringMode; + float x34_steeringSpeedMin; + float x38_steeringSpeedMax; + float x3c_steeringSpeed; + rstl::reserved_vector< CBodyStateCmd*, 28 > x40_commandTable; + uint xb4_deliveredCmdMask; + CBCGetupCmd xb8_getup; + CBCStepCmd xc4_step; + CBodyStateCmd xd4_die; + CBCKnockDownCmd xdc_knockDown; + CBCKnockBackCmd xf4_knockBack; + CBCMeleeAttackCmd x10c_meleeAttack; + CBCProjectileAttackCmd x128_projectileAttack; + CBCLoopAttackCmd x144_loopAttack; + CBCLoopReactionCmd x154_loopReaction; + CBCLoopHitReactionCmd x160_loopHitReaction; + CBodyStateCmd x16c_exitState; + CBodyStateCmd x174_leanFromCover; + CBodyStateCmd x17c_nextState; + CBodyStateCmd x184_maintainVelocity; + CBCGenerateCmd x18c_generate; + CBCHurledCmd x1ac_hurled; + CBCJumpCmd x1d0_jump; + CBCSlideCmd x1f8_slide; + CBCTauntCmd x210_taunt; + CBCScriptedCmd x21c_scripted; + CBCCoverCmd x230_cover; + CBCWallHangCmd x254_wallHang; + CBodyStateCmd x260_locomotion; + CBodyStateCmd x268_additiveIdle; + CBCAdditiveAimCmd x270_additiveAim; + CBCAdditiveFlinchCmd x278_additiveFlinch; + CBCAdditiveReactionCmd x284_additiveReaction; + CBodyStateCmd x298_stopReaction; }; +CHECK_SIZEOF(CBodyStateCmdMgr, 0x2a0) #endif // _CBODYSTATECMDMGR diff --git a/include/MetroidPrime/CActor.hpp b/include/MetroidPrime/CActor.hpp index 631a767f..bd50f47b 100644 --- a/include/MetroidPrime/CActor.hpp +++ b/include/MetroidPrime/CActor.hpp @@ -257,6 +257,7 @@ public: void DrawTouchBounds() const; bool IsModelOpaque(const CStateManager& mgr) const; void RenderInternal(const CStateManager& mgr) const; + void CreateShadow(bool); const CTransform4f& GetTransform() const { return x34_transform; } void SetTransform(const CTransform4f& xf) { diff --git a/include/MetroidPrime/CAnimData.hpp b/include/MetroidPrime/CAnimData.hpp index f613de0b..501c1c46 100644 --- a/include/MetroidPrime/CAnimData.hpp +++ b/include/MetroidPrime/CAnimData.hpp @@ -38,9 +38,7 @@ public: x220_24_animating = true; } void SetIsAnimating(bool v) { x220_24_animating = v; } - void SetParticleEffectState(const rstl::string& name, bool active, CStateManager& mgr) { - x120_particleDB.SetParticleEffectState(name, active, mgr); - } + void SetParticleEffectState(const rstl::string& name, bool active, CStateManager& mgr); int GetCharacterIndex() const { return x204_charIdx; } float GetAverageVelocity(int idx) const; diff --git a/include/MetroidPrime/CDamageInfo.hpp b/include/MetroidPrime/CDamageInfo.hpp index 97068d07..0bbb99ec 100644 --- a/include/MetroidPrime/CDamageInfo.hpp +++ b/include/MetroidPrime/CDamageInfo.hpp @@ -25,6 +25,7 @@ public: , x10_radius(0.f) , x14_knockback(0.f) , x18_24_noImmunity(false) {} + CDamageInfo(const CWeaponMode& mode, float damage, float radius, float knockback, bool noImmunity = false) : x0_weaponMode(mode) @@ -33,6 +34,7 @@ public: , x10_radius(radius) , x14_knockback(knockback) , x18_24_noImmunity(noImmunity) {} + CDamageInfo(CInputStream& in); CDamageInfo(const CDamageInfo&, float); CDamageInfo(const SShotParam& other); diff --git a/include/MetroidPrime/CExplosion.hpp b/include/MetroidPrime/CExplosion.hpp index 3e9eb7da..2f25f3b6 100644 --- a/include/MetroidPrime/CExplosion.hpp +++ b/include/MetroidPrime/CExplosion.hpp @@ -18,7 +18,7 @@ public: const CVector3f& scale, const CColor& color); // CEntity - ~CExplosion(); + ~CExplosion() override; void Accept(IVisitor& visitor) override; void Think(float dt, CStateManager& mgr) override; void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override; diff --git a/include/MetroidPrime/CPhysicsActor.hpp b/include/MetroidPrime/CPhysicsActor.hpp index 7c9db4dc..5490f5eb 100644 --- a/include/MetroidPrime/CPhysicsActor.hpp +++ b/include/MetroidPrime/CPhysicsActor.hpp @@ -59,7 +59,7 @@ CHECK_SIZEOF(CMotionState, 0x34) class CCollisionInfoList; class CPhysicsActor : public CActor { - static const float skGravityConstant; + static const float kGravityAccel; public: CPhysicsActor(TUniqueId uid, bool active, const rstl::string& name, const CEntityInfo& info, @@ -149,7 +149,7 @@ public: CVector3f GetTotalForcesWR() const; - static float GetGravityConstant() { return skGravityConstant; } + static float GravityConstant() { return kGravityAccel; } private: float xe8_mass; diff --git a/include/MetroidPrime/CStateManager.hpp b/include/MetroidPrime/CStateManager.hpp index dfe36221..6e1e9daf 100644 --- a/include/MetroidPrime/CStateManager.hpp +++ b/include/MetroidPrime/CStateManager.hpp @@ -110,9 +110,8 @@ public: void AddObject(CEntity*); TUniqueId AllocateUniqueId(); - - void BuildNearList(TEntityList& nearList, const CVector3f& pos, const CVector3f& dir, float mag, const CMaterialFilter&, - const CActor*) const; + void BuildNearList(TEntityList& nearList, const CVector3f& pos, const CVector3f& dir, float mag, + const CMaterialFilter&, const CActor*) const; void BuildNearList(TEntityList& nearList, const CAABox&, const CMaterialFilter&, const CActor*) const; bool RayCollideWorld(const CVector3f& start, const CVector3f& end, const TEntityList& nearList, @@ -166,10 +165,12 @@ public: const CCameraFilterPass& GetCameraFilterPass(ECameraFilterStage stage) const { return xb84_camFilterPasses[size_t(stage)]; } - + CCameraBlurPass& CameraBlurPass(ECameraFilterStage idx) { return xd14_camBlurPasses[idx]; } - - const CCameraBlurPass& GetCameraBlurPass(ECameraFilterStage idx) const { return xd14_camBlurPasses[idx]; } + + const CCameraBlurPass& GetCameraBlurPass(ECameraFilterStage idx) const { + return xd14_camBlurPasses[idx]; + } float GetThermalColdScale1() const { return xf24_thermColdScale1; } float GetThermalColdScale2() const { return xf28_thermColdScale2; } @@ -179,7 +180,7 @@ public: void SetIsGeneratingObject(bool gen) { xf94_26_generatingObject = gen; } void ApplyDamageToWorld(TUniqueId, const CActor&, const CVector3f&, const CDamageInfo& info, - CMaterialFilter&); + const CMaterialFilter&); bool ApplyDamage(TUniqueId damagerId, TUniqueId damageeId, TUniqueId radiusSender, const CDamageInfo& info, const CMaterialFilter& filter, const CVector3f& knockbackVec); @@ -203,7 +204,7 @@ public: bool GetWantsToEnterMessageScreen() const { return xf90_deferredTransition == kSMT_MessageScreen; } - + EThermalDrawFlag GetThermalDrawFlag() const { return xf34_thermalFlag; } void SetLastTriggerId(TUniqueId uid) { xf74_lastTrigger = uid; } diff --git a/include/MetroidPrime/CSteeringBehaviors.hpp b/include/MetroidPrime/CSteeringBehaviors.hpp index f740d295..e0aa0a54 100644 --- a/include/MetroidPrime/CSteeringBehaviors.hpp +++ b/include/MetroidPrime/CSteeringBehaviors.hpp @@ -1,7 +1,10 @@ #ifndef _CSTEERINGBEHAVIORS #define _CSTEERINGBEHAVIORS +#include "types.h" + class CVector3f; + class CSteeringBehaviors { public: static bool ProjectLinearIntersection(const CVector3f& v0, float f1, const CVector3f& v1, @@ -15,6 +18,10 @@ public: static bool ProjectOrbitalIntersection(const CVector3f& v0, float f1, float f2, const CVector3f& v1, const CVector3f& v2, const CVector3f& v3, const CVector3f& v4, CVector3f& v5); + +private: + float x0_; }; +CHECK_SIZEOF(CSteeringBehaviors, 0x4) #endif // _CSTEERINGBEHAVIORS diff --git a/include/MetroidPrime/Enemies/CAi.hpp b/include/MetroidPrime/Enemies/CAi.hpp index a55b6be0..f261a362 100644 --- a/include/MetroidPrime/Enemies/CAi.hpp +++ b/include/MetroidPrime/Enemies/CAi.hpp @@ -1,6 +1,8 @@ #ifndef _CAI #define _CAI +#include "MetroidPrime/CDamageVulnerability.hpp" +#include "MetroidPrime/CHealthInfo.hpp" #include "MetroidPrime/CPhysicsActor.hpp" #include "MetroidPrime/Enemies/CAiFuncMap.hpp" #include "MetroidPrime/Enemies/CKnockBackController.hpp" @@ -13,6 +15,8 @@ enum EListenNoiseType { class CTeamAiRole; class CAiFuncMap; +class CStateMachine; + class CAi : public CPhysicsActor { public: // static void CreateFuncLookup(CAiFuncMap* funcMap); @@ -165,6 +169,11 @@ public: virtual bool FixedRandom(CStateManager&, float); virtual bool IsDizzy(CStateManager&, float); virtual bool ShouldCallForBackup(CStateManager&, float); + +private: + CHealthInfo x258_healthInfo; + CDamageVulnerability x260_damageVulnerability; + TLockedToken< CStateMachine > x2c8_stateMachine; }; #endif // _CAI diff --git a/include/MetroidPrime/Enemies/CKnockBackController.hpp b/include/MetroidPrime/Enemies/CKnockBackController.hpp index 7776d1a4..02355c82 100644 --- a/include/MetroidPrime/Enemies/CKnockBackController.hpp +++ b/include/MetroidPrime/Enemies/CKnockBackController.hpp @@ -1,6 +1,10 @@ #ifndef _CKNOCKBACKCONTROLLER #define _CKNOCKBACKCONTROLLER +#include "types.h" + +#include "Kyoto/Animation/CPASAnimState.hpp" + class CDamageInfo; class CPatterned; @@ -8,105 +12,72 @@ enum EKnockBackType { kKBT_Radius, kKBT_Direct, }; -/* -enum class EKnockBackVariant { Small, Medium, Large }; - -enum class EKnockBackWeaponType { - Invalid = -1, - Power, - PowerCharged, - PowerComboed, - PowerComboedDirect, - Wave, - WaveCharged, - WaveComboed, - WaveComboedDirect, - Ice, - IceCharged, - IceComboed, - IceComboedDirect, - Plasma, - PlasmaCharged, - PlasmaComboed, - Missile, - Bomb, - PowerBomb, - Phazon +enum EKnockBackVariant { + kKBV_Small, + kKBV_Medium, + kKBV_Large, }; - -enum class EKnockBackCharacterState { Alive, Dead, FrozenAlive, FrozenDead }; - -enum class EKnockBackAnimationState { Invalid = -1, None, Flinch, KnockBack, Hurled, Fall }; - -enum class EKnockBackAnimationFollowUp { - Invalid = -1, - None, - Freeze, - Shock, - Burn, - PhazeOut, - Death, - ExplodeDeath, - IceDeath, - BurnDeath, - LaggedBurnDeath +enum EKnockBackWeaponType { + kKBWT_Invalid = -1, + kKBWT_Power, + kKBWT_PowerCharged, + kKBWT_PowerComboed, + kKBWT_PowerComboedDirect, + kKBWT_Wave, + kKBWT_WaveCharged, + kKBWT_WaveComboed, + kKBWT_WaveComboedDirect, + kKBWT_Ice, + kKBWT_IceCharged, + kKBWT_IceComboed, + kKBWT_IceComboedDirect, + kKBWT_Plasma, + kKBWT_PlasmaCharged, + kKBWT_PlasmaComboed, + kKBWT_Missile, + kKBWT_Bomb, + kKBWT_PowerBomb, + kKBWT_Phazon, +}; +enum EKnockBackCharacterState { + kKBCS_Alive, + kKBCS_Dead, + kKBCS_FrozenAlive, + kKBCS_FrozenDead, +}; +enum EKnockBackAnimationState { + kKBAS_Invalid = -1, + kKBAS_None, + kKBAS_Flinch, + kKBAS_KnockBack, + kKBAS_Hurled, + kKBAS_Fall, +}; +enum EKnockBackAnimationFollowUp { + kKBAFU_Invalid = -1, + kKBAFU_None, + kKBAFU_Freeze, + kKBAFU_Shock, + kKBAFU_Burn, + kKBAFU_PhazeOut, + kKBAFU_Death, + kKBAFU_ExplodeDeath, + kKBAFU_IceDeath, + kKBAFU_BurnDeath, + kKBAFU_LaggedBurnDeath, }; class CKnockBackController { + friend class CPatterned; + public: struct KnockBackParms { - EKnockBackAnimationState x0_animState = EKnockBackAnimationState::None; - EKnockBackAnimationFollowUp x4_animFollowup = EKnockBackAnimationFollowUp::None; - float x8_followupDuration = 0.f; - float xc_intoFreezeDur = 0.f; + EKnockBackAnimationState x0_animState; + EKnockBackAnimationFollowUp x4_animFollowup; + float x8_followupDuration; + float xc_intoFreezeDur; }; -private: - friend class CPatterned; - EKnockBackVariant x0_variant; - KnockBackParms x4_activeParms{}; - EWeaponType x14_deferWeaponType = EWeaponType::None; - EKnockBackAnimationState x18_minAnimState = EKnockBackAnimationState::None; - EKnockBackAnimationState x1c_maxAnimState = EKnockBackAnimationState::Fall; - u32 x20_impulseDurationIdx = 0; - rstl::reserved_vector< std::pair< float, float >, 5 > x24_; - zeus::CVector3f x50_impulseDir; - float x5c_impulseMag = 0.f; - float x60_impulseRemTime = 0.f; - float x64_flinchRemTime = 0.f; - float x68_deferRemTime = 0.f; - u32 x6c_ = 0; - u32 x70_ = 0; - u32 x74_ = 0; - pas::ESeverity x7c_severity = pas::ESeverity::One; - std::bitset< 5 > x80_availableStates{0b11111}; - bool x81_24_autoResetImpulse : 1 = true; - bool x81_25_enableFreeze : 1 = true; - bool x81_26_enableShock : 1 = false; - bool x81_27_enableBurn : 1 = true; - bool x81_28_enableBurnDeath : 1 = true; - bool x81_29_enableExplodeDeath : 1 = true; - bool x81_30_enableLaggedBurnDeath : 1 = true; - bool x81_31_ : 1 = true; - bool x82_24_ : 1 = true; - bool x82_25_inDeferredKnockBack : 1 = false; - bool x82_26_locomotionDuringElectrocution : 1 = false; - void ApplyImpulse(float dt, CPatterned& parent); - bool TickDeferredTimer(float dt); - EKnockBackCharacterState GetKnockBackCharacterState(const CPatterned& parent) const; - void ValidateState(const CPatterned& parent); - float CalculateExtraHurlVelocity(CStateManager& mgr, float magnitude, float kbResistance) const; - void DoKnockBackAnimation(const zeus::CVector3f& backVec, CStateManager& mgr, CPatterned& parent, - float magnitude); - void ResetKnockBackImpulse(const CPatterned& parent, const zeus::CVector3f& backVec, - float magnitude); - void DoDeferredKnockBack(CStateManager& mgr, CPatterned& parent); - EKnockBackWeaponType GetKnockBackWeaponType(const CDamageInfo& info, EWeaponType wType, - EKnockBackType type); - void SelectDamageState(const CPatterned& parent, const CDamageInfo& info, EWeaponType wType, - EKnockBackType type); - -public: explicit CKnockBackController(EKnockBackVariant variant); void SetKnockBackVariant(EKnockBackVariant v) { x0_variant = v; } void DeferKnockBack(EWeaponType tp) { @@ -115,14 +86,30 @@ public: } void sub80233d40(int i, float f1, float f2); void SetAutoResetImpulse(bool b); - void SetImpulseDurationIdx(u32 i) { x20_impulseDurationIdx = i; } + void SetImpulseDurationIdx(int i); void SetAnimationStateRange(EKnockBackAnimationState a, EKnockBackAnimationState b) { x18_minAnimState = a; x1c_maxAnimState = b; } void Update(float dt, CStateManager& mgr, CPatterned& parent); - void KnockBack(const zeus::CVector3f& backVec, CStateManager& mgr, CPatterned& parent, + void KnockBack(const CVector3f& backVec, CStateManager& mgr, CPatterned& parent, const CDamageInfo& info, EKnockBackType type, float magnitude); + + void ApplyImpulse(float dt, CPatterned& parent); + bool TickDeferredTimer(float dt); + EKnockBackCharacterState GetKnockBackCharacterState(const CPatterned& parent) const; + void ValidateState(const CPatterned& parent); + float CalculateExtraHurlVelocity(CStateManager& mgr, float magnitude, float kbResistance) const; + void DoKnockBackAnimation(const CVector3f& backVec, CStateManager& mgr, CPatterned& parent, + float magnitude); + void ResetKnockBackImpulse(const CPatterned& parent, const CVector3f& backVec, + float magnitude); + void DoDeferredKnockBack(CStateManager& mgr, CPatterned& parent); + EKnockBackWeaponType GetKnockBackWeaponType(const CDamageInfo& info, EWeaponType wType, + EKnockBackType type); + void SelectDamageState(const CPatterned& parent, const CDamageInfo& info, EWeaponType wType, + EKnockBackType type); + void SetSeverity(pas::ESeverity v) { x7c_severity = v; } void SetEnableFreeze(bool b) { x81_25_enableFreeze = b; } bool GetEnableFreeze() const { return x81_25_enableFreeze; } @@ -137,12 +124,44 @@ public: const KnockBackParms& GetActiveParms() const { return x4_activeParms; } EKnockBackVariant GetVariant() const { return x0_variant; } float GetFlinchRemTime() const { return x64_flinchRemTime; } - void SetAvailableState(EKnockBackAnimationState s, bool b) { - x80_availableStates.set(size_t(s), b); - } - bool TestAvailableState(EKnockBackAnimationState s) const { - return x80_availableStates.test(size_t(s)); - } + // void SetAvailableState(EKnockBackAnimationState s, bool b) { + // x80_availableStates.set(size_t(s), b); + // } + // bool TestAvailableState(EKnockBackAnimationState s) const { + // return x80_availableStates.test(size_t(s)); + // } + +private: + EKnockBackVariant x0_variant; + KnockBackParms x4_activeParms; + EWeaponType x14_deferWeaponType; + EKnockBackAnimationState x18_minAnimState; + EKnockBackAnimationState x1c_maxAnimState; + uint x20_impulseDurationIdx; + rstl::reserved_vector< rstl::pair< float, float >, 5 > x24_; + CVector3f x50_impulseDir; + float x5c_impulseMag; + float x60_impulseRemTime; + float x64_flinchRemTime; + float x68_deferRemTime; + uint x6c_; + uint x70_; + uint x74_; + uint x78_; + pas::ESeverity x7c_severity; + uchar x80_availableStates; + bool x81_24_autoResetImpulse : 1; + bool x81_25_enableFreeze : 1; + bool x81_26_enableShock : 1; + bool x81_27_enableBurn : 1; + bool x81_28_enableBurnDeath : 1; + bool x81_29_enableExplodeDeath : 1; + bool x81_30_enableLaggedBurnDeath : 1; + bool x81_31_ : 1; + bool x82_24_ : 1; + bool x82_25_inDeferredKnockBack : 1; + bool x82_26_locomotionDuringElectrocution : 1; }; -*/ +CHECK_SIZEOF(CKnockBackController, 0x84) + #endif // _CKNOCKBACKCONTROLLER diff --git a/include/MetroidPrime/Enemies/CPatterned.hpp b/include/MetroidPrime/Enemies/CPatterned.hpp index fa95b6ce..bda20645 100644 --- a/include/MetroidPrime/Enemies/CPatterned.hpp +++ b/include/MetroidPrime/Enemies/CPatterned.hpp @@ -1,16 +1,27 @@ #ifndef _CPATTERNED #define _CPATTERNED -#include "MetroidPrime/Enemies/CAi.hpp" +#include "types.h" -template +#include "MetroidPrime/CSteeringBehaviors.hpp" +#include "MetroidPrime/Enemies/CAi.hpp" +#include "MetroidPrime/Enemies/CPatternedInfo.hpp" +#include "MetroidPrime/Enemies/CStateMachine.hpp" + +class CBodyController; +class CVertexMorphEffect; +class CGenDescription; +class CElectricDescription; +class CPathFindSearch; +class CProjectileInfo; + +template < typename T > struct TPatternedCast { CEntity* ent; TPatternedCast(CEntity* ent); }; class CPatterned : public CAi { - public: enum ECharacter { kC_AtomicAlpha = 0, @@ -53,21 +64,305 @@ public: kC_WarWasp = 39, kC_EnergyBall = 40 }; - ~CPatterned(); - void Accept(IVisitor& visitor); - void Death(CStateManager& mgr, const CVector3f& direction, EScriptObjectState state) {} + enum EFlavorType { + kFT_Zero = 0, + kFT_One = 1, + kFT_Two = 2, + }; + enum EMovementType { + kMT_Ground = 0, + kMT_Flyer = 1, + }; + enum EColliderType { + kCT_Zero = 0, + kCT_One = 1, + }; + enum EPatrolState { + kPS_Invalid = -1, + kPS_Patrol, + kPS_Pause, + kPS_Done, + }; + enum EBehaviour { + kB_Zero, + }; + enum EBehaviourOrient { + kBO_MoveDir, + kBO_Constant, + kBO_Destination, + }; + enum EBehaviourModifiers { + kBM_Zero, + }; + enum EAnimState { + kAS_Invalid = -1, + kAS_NotReady, + kAS_Ready, + kAS_Repeat, + kAS_Over, + }; + enum EPatternTranslate { + kPT_RelativeStart, + kPT_RelativePlayerStart, + kPT_RelativePlayer, + kPT_Absolute, + }; + enum EPatternOrient { + kPO_StartToPlayer, + kPO_StartToPlayerStart, + kPO_ReversePlayerForward, + kPO_Forward, + }; + enum EPatternFit { + kPF_Zero, + kPF_One, + }; + enum EMoveState { + kMS_Zero, + kMS_One, + kMS_Two, + kMS_Three, + kMS_Four, + }; + + class CPatternNode { + CVector3f x0_pos; + CVector3f xc_forward; + float x18_speed; + uchar x1c_behaviour; + uchar x1d_behaviourOrient; + ushort x1e_behaviourModifiers; + uint x20_animation; + + public: + CPatternNode(const CVector3f& pos, const CVector3f& forward, float speed, uint behaviour, + uint behaviourOrient, uint behaviourModifiers, uint animation); + const CVector3f& GetPos() const { return x0_pos; } + const CVector3f& GetForward() const { return xc_forward; } + float GetSpeed() const { return x18_speed; } + uchar GetBehaviour() const { return x1c_behaviour; } + uchar GetBehaviourOrient() const { return x1d_behaviourOrient; } + ushort GetBehaviourModifiers() const { return x1e_behaviourModifiers; } + }; + + CPatterned(ECharacter character, TUniqueId uid, const rstl::string& name, EFlavorType flavor, + const CEntityInfo& info, const CTransform4f& xf, const CModelData& mData, + const CPatternedInfo& pinfo, EMovementType movement, EColliderType collider, + EBodyType body, const CActorParameters& params, EKnockBackVariant kbVariant); + + // CEntity + ~CPatterned() override; + void Accept(IVisitor& visitor) override; + void PreThink(float dt, CStateManager& mgr) override; + void Think(float dt, CStateManager& mgr) override; + void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; + + // CActor + void PreRender(CStateManager&, const CFrustumPlanes&) override; + void AddToRenderer(const CFrustumPlanes&, const CStateManager&) const override; + void Render(const CStateManager&) const override; + bool CanRenderUnsorted(const CStateManager&) const override; + rstl::optional_object< CAABox > GetTouchBounds() const override; + void Touch(CActor&, CStateManager&) override; + CVector3f GetOrbitPosition(const CStateManager&) const override; + CVector3f GetAimPosition(const CStateManager&, float) const override; + EWeaponCollisionResponseTypes GetCollisionResponseType(const CVector3f&, const CVector3f&, + const CWeaponMode&, + int /*EProjectileAttrib?*/) const override; + void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, + float dt) override; + + // CPhysicsActor + void CollidedWith(const TUniqueId& id, const CCollisionInfoList& list, + CStateManager& mgr) override; + + // CAi + void Death(CStateManager& mgr, const CVector3f& direction, EScriptObjectState state) override; void KnockBack(const CVector3f&, CStateManager&, const CDamageInfo& info, EKnockBackType type, - bool inDeferred, float magnitude){}; + bool inDeferred, float magnitude) override; + void TakeDamage(const CVector3f& direction, float magnitude) override; + void Patrol(CStateManager&, EStateMsg, float) override; + void FollowPattern(CStateManager&, EStateMsg, float) override; + void Dead(CStateManager&, EStateMsg, float) override; + void PathFind(CStateManager&, EStateMsg, float) override; + void Start(CStateManager&, EStateMsg, float) override; + void TargetPatrol(CStateManager&, EStateMsg, float) override; + void TargetPlayer(CStateManager&, EStateMsg, float) override; + bool Leash(CStateManager&, float) override; + bool OffLine(CStateManager&, float) override; + bool Attacked(CStateManager&, float) override; + bool PathShagged(CStateManager&, float) override; + bool PathOver(CStateManager&, float) override; + bool PathFound(CStateManager&, float) override; + bool TooClose(CStateManager&, float) override; + bool InRange(CStateManager&, float) override; + bool InMaxRange(CStateManager&, float) override; + bool InDetectionRange(CStateManager&, float) override; + bool SpotPlayer(CStateManager&, float) override; + bool PlayerSpot(CStateManager&, float) override; + bool PatternOver(CStateManager&, float) override; + bool PatternShagged(CStateManager&, float) override; + bool HasAttackPattern(CStateManager&, float) override; + bool HasPatrolPath(CStateManager&, float) override; + bool HasRetreatPattern(CStateManager&, float) override; + bool Delay(CStateManager&, float) override; + bool RandomDelay(CStateManager&, float) override; + bool FixedDelay(CStateManager&, float) override; + bool Default(CStateManager&, float) override; + bool AnimOver(CStateManager&, float) override; + bool InPosition(CStateManager&, float) override; + bool Stuck(CStateManager&, float) override; + bool NoPathNodes(CStateManager&, float) override; + bool Landed(CStateManager&, float) override; + bool PatrolPathOver(CStateManager&, float) override; + bool CodeTrigger(CStateManager&, float) override; + bool Random(CStateManager&, float) override; + bool FixedRandom(CStateManager&, float) override; + + // CPatterned + virtual void Freeze(CStateManager& mgr, const CVector3f& pos, const CUnitVector3f& dir, + float frozenDur); + virtual bool KnockbackWhenFrozen() const { return true; } + virtual void MassiveDeath(CStateManager& mgr); + virtual void MassiveFrozenDeath(CStateManager& mgr); + virtual void Burn(float duration, float damage); + virtual void Shock(CStateManager& mgr, float duration, float damage); + virtual void ThinkAboutMove(float); + virtual CPathFindSearch* GetSearchPath() { return nullptr; } + virtual CDamageInfo GetContactDamage() const { return x404_contactDamage; } + virtual u8 GetModelAlphau8(const CStateManager&) const { return x42c_color.GetAlphau8(); } + virtual bool IsOnGround() const { return x328_27_onGround; } + virtual float GetGravityConstant() const { return CPhysicsActor::GravityConstant(); } + virtual CProjectileInfo* GetProjectileInfo() { return nullptr; } + virtual void PhazeOut(CStateManager&); + virtual const rstl::optional_object< TLockedToken< CGenDescription > >& + GetDeathExplosionParticle() const { + return x520_deathExplosionParticle; + } ECharacter GetCharacterType() const { return x34c_characterType; } + CBodyController* GetBodyCtrl() { return x450_bodyController.get(); } + const CBodyController* GetBodyCtrl() const { return x450_bodyController.get(); } + CKnockBackController& GetKnockBackCtrl() { return x460_knockBackController; } + const CKnockBackController& GetKnockBackCtrl() const { return x460_knockBackController; } template < class T > - static T* CastTo(const TPatternedCast& ent); + static T* CastTo(const TPatternedCast< T >& ent); -private: - char data[0xf4]; +public: + EPatrolState x2d8_patrolState; + TUniqueId x2dc_destObj; + CVector3f x2e0_destPos; + CVector3f x2ec_reflectedDestPos; + float x2f8_waypointPauseRemTime; + float x2fc_minAttackRange; + float x300_maxAttackRange; + float x304_averageAttackTime; + float x308_attackTimeVariation; + EBehaviourOrient x30c_behaviourOrient; + CVector3f x310_moveVec; + CVector3f x31c_faceVec; + bool x328_24_inPosition : 1; + bool x328_25_verticalMovement : 1; + bool x328_26_solidCollision : 1; + bool x328_27_onGround : 1; + bool x328_28_prevOnGround : 1; + bool x328_29_noPatternShagging : 1; + bool x328_30_lookAtDeathDir : 1; + bool x328_31_energyAttractor : 1; + bool x329_24_ : 1; + EAnimState x32c_animState; + CStateMachineState x330_stateMachineState; ECharacter x34c_characterType; - char data2[0x568 - 0x350]; + CVector3f x350_patternStartPos; + CVector3f x35c_patternStartPlayerPos; + CVector3f x368_destWPDelta; + EPatternTranslate x374_patternTranslate; + EPatternOrient x378_patternOrient; + EPatternFit x37c_patternFit; + EBehaviour x380_behaviour; + EBehaviourModifiers x384_behaviourModifiers; + int x388_anim; + rstl::vector< CPatternNode > x38c_patterns; + uint x39c_curPattern; + CVector3f x3a0_latestLeashPosition; + TUniqueId x3ac_lastPatrolDest; + float x3b0_moveSpeed; + float x3b4_speed; + float x3b8_turnSpeed; + float x3bc_detectionRange; + float x3c0_detectionHeightRange; + float x3c4_detectionAngle; + float x3c8_leashRadius; + float x3cc_playerLeashRadius; + float x3d0_playerLeashTime; + float x3d4_curPlayerLeashTime; + float x3d8_xDamageThreshold; + float x3dc_frozenXDamageThreshold; + float x3e0_xDamageDelay; + float x3e4_lastHP; + float x3e8_alphaDelta; + float x3ec_pendingFireDamage; + float x3f0_pendingShockDamage; + float x3f4_burnThinkRateTimer; + EMoveState x3f8_moveState; + EFlavorType x3fc_flavor; + uint x400_24_hitByPlayerProjectile : 1; + uint x400_25_alive : 1; + uint x400_26_ : 1; + uint x400_27_fadeToDeath : 1; + uint x400_28_pendingMassiveDeath : 1; + uint x400_29_pendingMassiveFrozenDeath : 1; + uint x400_30_patternShagged : 1; + uint x400_31_isFlyer : 1; + uint x401_24_pathOverCount : 2; + uint x401_26_disableMove : 1; + uint x401_27_phazingOut : 1; + uint x401_28_burning : 1; + uint x401_29_laggedBurnDeath : 1; + uint x401_30_pendingDeath : 1; + uint x401_31_nextPendingShock : 1; + uint x402_24_pendingShock : 1; + uint x402_25_lostMassiveFrozenHP : 1; + uint x402_26_dieIf80PercFrozen : 1; + uint x402_27_noXrayModel : 1; + uint x402_28_isMakingBigStrike : 1; + uint x402_29_drawParticles : 1; + uint x402_30_updateThermalFrozenState : 1; + uint x402_31_thawed : 1; + uint x403_24_keepThermalVisorState : 1; + uint x403_25_enableStateMachine : 1; + uint x403_26_stateControlledMassiveDeath : 1; + CDamageInfo x404_contactDamage; + float x420_curDamageRemTime; + float x424_damageWaitTime; + float x428_damageCooldownTimer; + CColor x42c_color; + CColor x430_damageColor; + CVector3f x434_posDelta; + CQuaternion x440_rotDelta; + rstl::single_ptr< CBodyController > x450_bodyController; + u32 x454_deathSfx; + u32 x458_iceShatterSfx; + CSteeringBehaviors x45c_steeringBehaviors; + CKnockBackController x460_knockBackController; + CVector3f x4e4_latestPredictedTranslation; + float x4f0_predictedLeashTime; + float x4f4_intoFreezeDur; + float x4f8_outofFreezeDur; + float x4fc_freezeDur; + float x500_preThinkDt; + float x504_damageDur; + EColliderType x508_colliderType; + float x50c_baseDamageMag; + rstl::single_ptr< CVertexMorphEffect > x510_vertexMorph; + CVector3f x514_deathExplosionOffset; + rstl::optional_object< TLockedToken< CGenDescription > > x520_deathExplosionParticle; + rstl::optional_object< TLockedToken< CElectricDescription > > x530_deathExplosionElectric; + CVector3f x540_iceDeathExplosionOffset; + rstl::optional_object< TLockedToken< CGenDescription > > x54c_iceDeathExplosionParticle; + CVector3f x55c_moveScale; }; +CHECK_SIZEOF(CPatterned, 0x568) #endif // _CPATTERNED diff --git a/include/MetroidPrime/Enemies/CPatternedInfo.hpp b/include/MetroidPrime/Enemies/CPatternedInfo.hpp index 8ce1f74b..9c7309f6 100644 --- a/include/MetroidPrime/Enemies/CPatternedInfo.hpp +++ b/include/MetroidPrime/Enemies/CPatternedInfo.hpp @@ -13,6 +13,26 @@ class CPatternedInfo { friend class CPatterned; + +public: + CPatternedInfo(CInputStream& in, uint pcount); + + float GetTurnSpeed() const { return x8_turnSpeed; } + float GetDetectionHeightRange() const { return x10_detectionHeightRange; } + const CHealthInfo& GetHealthInfo() const { return x54_healthInfo; } + const CDamageVulnerability& GetDamageVulnerability() const { return x5c_damageVulnerability; } + float GetHalfExtent() const { return xc4_halfExtent; } + float GetHeight() const { return xc8_height; } + CVector3f GetBodyOrigin() const { return xcc_bodyOrigin; } + CAnimationParameters& GetAnimationParameters() { return xec_animParams; } + const CAnimationParameters& GetAnimationParameters() const { return xec_animParams; } + uint GetPathfindingIndex() const { return x10c_pathfindingIndex; } + bool GetActive() const { return xf8_active; } + void SetActive(bool active) { xf8_active = active; } + + static rstl::pair< bool, uint > HasCorrectParameterCount(CInputStream& in); + +private: float x0_mass; float x4_speed; float x8_turnSpeed; @@ -44,33 +64,14 @@ class CPatternedInfo { float x100_intoFreezeDur; float x104_outofFreezeDur; float x108_freezeDur; - uint x10c_pathfindingIndex; - CVector3f x110_particle1Scale; CAssetId x11c_particle1; CAssetId x120_electric; CVector3f x124_particle2Scale; CAssetId x130_particle2; - uint x134_iceShatterSfx; - -public: - CPatternedInfo(CInputStream& in, uint pcount); - static rstl::pair< bool, uint > HasCorrectParameterCount(CInputStream& in); - - float GetTurnSpeed() const { return x8_turnSpeed; } - float GetDetectionHeightRange() const { return x10_detectionHeightRange; } - const CHealthInfo& GetHealthInfo() const { return x54_healthInfo; } - const CDamageVulnerability& GetDamageVulnerability() const { return x5c_damageVulnerability; } - float GetHalfExtent() const { return xc4_halfExtent; } - float GetHeight() const { return xc8_height; } - CVector3f GetBodyOrigin() const { return xcc_bodyOrigin; } - CAnimationParameters& GetAnimationParameters() { return xec_animParams; } - const CAnimationParameters& GetAnimationParameters() const { return xec_animParams; } - u32 GetPathfindingIndex() const { return x10c_pathfindingIndex; } - bool GetActive() const { return xf8_active; } - void SetActive(bool active) { xf8_active = active; } }; +CHECK_SIZEOF(CPatternedInfo, 0x138) #endif // _CPATTERNEDINFO diff --git a/include/MetroidPrime/Enemies/CPuffer.hpp b/include/MetroidPrime/Enemies/CPuffer.hpp new file mode 100644 index 00000000..d8c1585a --- /dev/null +++ b/include/MetroidPrime/Enemies/CPuffer.hpp @@ -0,0 +1,47 @@ +#ifndef _CPUFFER +#define _CPUFFER + +#include "types.h" + +#include "MetroidPrime/CDamageInfo.hpp" +#include "MetroidPrime/Enemies/CPatterned.hpp" + +class CPatternedInfo; +class CGenDescription; + +class CPuffer : public CPatterned { +public: + CPuffer(TUniqueId uid, const rstl::string& name, const CEntityInfo& info, const CTransform4f& xf, + const CModelData& modelData, const CActorParameters& actorParameters, + const CPatternedInfo& patternedInfo, float hoverSpeed, CAssetId cloudEffect, + const CDamageInfo& cloudDamage, CAssetId cloudSteam, float f2, bool b1, bool b2, bool b3, + const CDamageInfo& explosionDamage, ushort sfxId); + + ~CPuffer() override; + void Accept(IVisitor&) override; + void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; + void Think(float, CStateManager&) override; + rstl::optional_object< CAABox > GetTouchBounds() const override; + void Touch(CActor&, CStateManager&) override; + void Death(CStateManager&, const CVector3f&, EScriptObjectState) override; + +private: + CVector3f x568_face; + TToken< CGenDescription > x574_cloudEffect; + CDamageInfo x57c_cloudDamage; + bool x598_24_ : 1; + bool x598_25_ : 1; + bool x598_26_ : 1; + ushort x59a_; + CDamageInfo x59c_explosionDamage; + float x5b8_; + CAssetId x5bc_cloudSteam; + CVector3f x5c0_move; + TUniqueId x5cc_; + int x5d0_enabledParticles; + rstl::reserved_vector< CVector3f, 14 > x5d4_gasLocators; + + void sub8025bfa4(CStateManager&); +}; + +#endif // _CPUFFER diff --git a/include/MetroidPrime/ScriptObjects/CFire.hpp b/include/MetroidPrime/ScriptObjects/CFire.hpp index bfea6a4c..f33d511c 100644 --- a/include/MetroidPrime/ScriptObjects/CFire.hpp +++ b/include/MetroidPrime/ScriptObjects/CFire.hpp @@ -12,12 +12,21 @@ class CFire : public CActor { public: - CFire(TToken< CGenDescription > effect, TUniqueId uid, TAreaId area, bool active, TUniqueId owner, - const CTransform4f& xf, const CDamageInfo& dInfo, const CAABox& aabox, const CVector3f& vec, - bool b1, CAssetId visorEffect, bool b2, bool b3, bool b4, float f1, float f2, float f3, - float f4); + CFire(const TToken< CGenDescription >& effect, TUniqueId uid, TAreaId area, bool active, + TUniqueId owner, const CTransform4f& xf, const CDamageInfo& dInfo, const CAABox& aabox, + const CVector3f& vec, bool b1, CAssetId visorEffect, bool b2, bool b3, bool b4, float f1, + float f2, float f3, float f4); - ~CFire(); + // CEntity + ~CFire() override; + void Accept(IVisitor& visitor) override; + void Think(float dt, CStateManager& mgr) override; + void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override; + + // CActor + void Render(const CStateManager&) const override; + rstl::optional_object< CAABox > GetTouchBounds() const override; + void Touch(CActor&, CStateManager&) override; private: rstl::single_ptr< CElementGen > xe8_; diff --git a/include/MetroidPrime/ScriptObjects/CScriptSpawnPoint.hpp b/include/MetroidPrime/ScriptObjects/CScriptSpawnPoint.hpp index df5f2e28..a665e242 100644 --- a/include/MetroidPrime/ScriptObjects/CScriptSpawnPoint.hpp +++ b/include/MetroidPrime/ScriptObjects/CScriptSpawnPoint.hpp @@ -18,12 +18,13 @@ public: const CTransform4f& xf, const rstl::reserved_vector< int, int(CPlayerState::kIT_Max) >& itemCounts, bool, bool, bool); - ~CScriptSpawnPoint(); + + ~CScriptSpawnPoint() override; + void Accept(IVisitor&) override; + void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; const CTransform4f& GetTransform() const; int GetPowerup(const CPlayerState::EItemType&) const; - void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&); - void Accept(IVisitor&); }; #endif // _CSCRIPTSPAWNPOINT diff --git a/src/MetroidPrime/Enemies/CPuffer.cpp b/src/MetroidPrime/Enemies/CPuffer.cpp new file mode 100644 index 00000000..cafafadd --- /dev/null +++ b/src/MetroidPrime/Enemies/CPuffer.cpp @@ -0,0 +1,159 @@ +#include "MetroidPrime/Enemies/CPuffer.hpp" + +#include "Kyoto/Audio/CSfxManager.hpp" +#include "MetroidPrime/BodyState/CBodyController.hpp" +#include "MetroidPrime/CAnimData.hpp" +#include "MetroidPrime/Player/CPlayer.hpp" +#include "MetroidPrime/ScriptObjects/CFire.hpp" + +static const char* skGasJetLocators[] = { + "GasJet01", "GasJet02", "GasJet03", "GasJet04", "GasJet05", "GasJet06", "GasJet07", + "GasJet08", "GasJet09", "GasJet10", "GasJet11", "GasJet12", "GasJet13", "GasJet14", +}; + +static const char* skGasLocators[] = { + "Gas_01_LCTR", "Gas_02_LCTR", "Gas_03_LCTR", "Gas_04_LCTR", "Gas_05_LCTR", + "Gas_06_LCTR", "Gas_07_LCTR", "Gas_08_LCTR", "Gas_09_LCTR", "Gas_10_LCTR", + "Gas_11_LCTR", "Gas_12_LCTR", "Gas_13_LCTR", "Gas_14_LCTR", +}; + +CPuffer::CPuffer(TUniqueId uid, const rstl::string& name, const CEntityInfo& info, + const CTransform4f& xf, const CModelData& modelData, + const CActorParameters& actorParameters, const CPatternedInfo& patternedInfo, + float hoverSpeed, CAssetId cloudEffect, const CDamageInfo& cloudDamage, + CAssetId cloudSteam, float f2, bool b1, bool b2, bool b3, + const CDamageInfo& explosionDamage, ushort sfxId) +: CPatterned(kC_Puffer, uid, name, kFT_Zero, info, xf, modelData, patternedInfo, kMT_Flyer, kCT_One, + kBT_RestrictedFlyer, actorParameters, kKBV_Small) +, x568_face(xf.GetColumn(kDY)) +, x574_cloudEffect(gpSimplePool->GetObj(SObjectTag('PART', cloudEffect))) +, x57c_cloudDamage(cloudDamage) +, x598_24_(b1) +, x598_25_(b3) +, x598_26_(b2) +, x59a_(CSfxManager::TranslateSFXID(sfxId)) +, x59c_explosionDamage(explosionDamage) +, x5b8_(f2) +, x5bc_cloudSteam(cloudSteam) +, x5c0_move(CVector3f::Zero()) +, x5cc_(kInvalidUniqueId) +, x5d0_enabledParticles(0) { + CreateShadow(false); + GetKnockBackCtrl().SetImpulseDurationIdx(1); + x574_cloudEffect.Lock(); + GetBodyCtrl()->SetRestrictedFlyerMoveSpeed(hoverSpeed); +} + +CPuffer::~CPuffer() {} + +void CPuffer::Accept(IVisitor& visitor) { visitor.Visit(*this); } + +void CPuffer::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) { + CPatterned::AcceptScriptMsg(msg, uid, mgr); + + switch (msg) { + case kSM_Registered: + GetBodyCtrl()->Activate(mgr); + SetMaterialFilter(CMaterialFilter::MakeIncludeExclude(kMT_Player, kMT_NoStaticCollision)); + break; + case kSM_Action: + if (GetActive()) { + x401_30_pendingDeath = true; + } + break; + default: + break; + } +} + +void CPuffer::Touch(CActor& act, CStateManager& mgr) { + CPatterned::Touch(act, mgr); + + if (x400_25_alive && mgr.GetPlayer()->GetUniqueId() == act.GetUniqueId()) { + x401_30_pendingDeath = true; + } +} + +rstl::optional_object< CAABox > CPuffer::GetTouchBounds() const { + rstl::optional_object< CAABox > touchBounds = CPatterned::GetTouchBounds(); + if (touchBounds.valid()) { + CAABox box = *touchBounds; + box.AccumulateBounds(box.GetMinPoint() - CVector3f(0.5f, 0.5f, 0.5f)); + box.AccumulateBounds(box.GetMaxPoint() + CVector3f(0.5f, 0.5f, 0.5f)); + return box; + } + return touchBounds; +} + +void CPuffer::Death(CStateManager& mgr, const CVector3f& vec, EScriptObjectState state) { + CPatterned::Death(mgr, vec, state); + + mgr.ApplyDamageToWorld( + GetUniqueId(), *this, GetTranslation(), x59c_explosionDamage, + CMaterialFilter::MakeIncludeExclude(CMaterialList(kMT_Solid), CMaterialList())); + + TUniqueId uid = mgr.AllocateUniqueId(); + CAABox aabb = + CAABox(CVector3f(-1.f, -1.f, -1.f), CVector3f(1.f, 1.f, 1.f)) + .GetTransformedAABox(GetTransform() * CTransform4f::Scale(x57c_cloudDamage.GetRadius())); + mgr.AddObject(new CFire(x574_cloudEffect, uid, GetCurrentAreaId(), true, GetUniqueId(), + GetTransform(), x57c_cloudDamage, aabb, CVector3f(1.f, 1.f, 1.f), true, + x5bc_cloudSteam, x598_24_, x598_26_, x598_25_, 1.f, x5b8_, 1.f, 1.f)); +} + +void CPuffer::Think(float dt, CStateManager& mgr) { + CPatterned::Think(dt, mgr); + + sub8025bfa4(mgr); + CVector3f moveVector = x450_bodyController->GetCommandMgr().GetMoveVector(); + + if (x5cc_ != x2dc_destObj) { + x5cc_ = x2dc_destObj; + CSfxManager::AddEmitter(x59a_, GetTranslation(), CVector3f::Zero(), true, false); + } + + x450_bodyController->CommandMgr().ClearLocomotionCmds(); + if (moveVector.CanBeNormalized()) { + x5c0_move = CVector3f::Lerp(x5c0_move, moveVector, dt / 0.5f).AsNormalized(); + x450_bodyController->CommandMgr().DeliverCmd(CBCLocomotionCmd(x5c0_move, x568_face, 1.f)); + } +} + +#define ARRAY_SIZE(arr) int(sizeof(arr) / sizeof(arr[0])) + +void CPuffer::sub8025bfa4(CStateManager& mgr) { + CVector3f moveVector = x450_bodyController->GetCommandMgr().GetMoveVector(); + + if (x5d4_gasLocators.empty()) { + for (int i = 0; i < ARRAY_SIZE(skGasLocators); ++i) { + x5d4_gasLocators.push_back( + GetScaledLocatorTransform(rstl::string_l(skGasLocators[i])).GetColumn(kDY)); + } + } + + if (moveVector.CanBeNormalized()) { + CVector3f moveNorm = -moveVector.AsNormalized(); + for (int i = 0; i < ARRAY_SIZE(skGasJetLocators); ++i) { + CVector3f tmp = GetTransform().Rotate(x5d4_gasLocators[i]); + float ang = CMath::FastCosR(CMath::Deg2Rad(45.f)); + bool enable = CVector3f::Dot(moveNorm, tmp) > ang; + bool enabledCur = bool(x5d0_enabledParticles & (1 << i)); + + if (enabledCur != enable) { + AnimationData()->SetParticleEffectState(rstl::string_l(skGasJetLocators[i]), enable, mgr); + } + if (enable) { + x5d0_enabledParticles |= (1 << i); + } else { + x5d0_enabledParticles &= ~(1 << i); + } + } + } else { + for (int i = 0; i < ARRAY_SIZE(skGasJetLocators); ++i) { + if ((x5d0_enabledParticles & (1 << i)) != 0) { + AnimationData()->SetParticleEffectState(rstl::string_l(skGasJetLocators[i]), false, mgr); + } + } + x5d0_enabledParticles = 0; + } +} diff --git a/src/MetroidPrime/ScriptObjects/CFire.cpp b/src/MetroidPrime/ScriptObjects/CFire.cpp index 87f51a49..8803cab0 100644 --- a/src/MetroidPrime/ScriptObjects/CFire.cpp +++ b/src/MetroidPrime/ScriptObjects/CFire.cpp @@ -3,7 +3,7 @@ static inline CMaterialList MakeMaterialList() { return CMaterialList(kMT_Projectile); } -CFire::CFire(TToken< CGenDescription > effect, TUniqueId uid, TAreaId area, bool active, +CFire::CFire(const TToken< CGenDescription >& effect, TUniqueId uid, TAreaId area, bool active, TUniqueId owner, const CTransform4f& xf, const CDamageInfo& dInfo, const CAABox& aabox, const CVector3f& vec, bool b1, CAssetId visorEffect, bool b2, bool b3, bool b4, float f1, float f2, float f3, float f4)