CPatterned & related headers; almost match CPuffer

Former-commit-id: 7fd19f0c12
This commit is contained in:
Luke Street 2022-10-28 17:42:35 -04:00
parent 8b5b9757f3
commit f463d79f5d
70 changed files with 1355 additions and 569 deletions

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bR13CStateManager"
"SetParticleEffectState__9CAnimDataFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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)

View File

@ -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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 8024573C 0024269C 4B E3 7D 15 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80251908 0024E868 4B E2 BB 49 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 802237E8 00220748 4B E5 9C 69 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 800E7C70 000E4BD0 4B F9 57 E1 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bR13CStateManager"
/* 80119038 00115F98 38 61 00 08 */ addi r3, r1, 8
/* 8011903C 00115F9C 48 22 4A A5 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bR13CStateManager"
/* 801190A4 00116004 38 61 00 08 */ addi r3, r1, 8
/* 801190A8 00116008 48 22 4A 39 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 8011A090 00116FF0 4B F6 33 C1 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80270B84 0026DAE4 4B E0 C8 CD */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80141F50 0013EEB0 4B F3 B5 01 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 801668DC 0016383C 4B F1 6B 75 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 8022D7FC 0022A75C 4B E4 FC 55 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 802257B0 00222710 4B E5 7C A1 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80143A24 00140984 4B F3 9A 2D */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 801B3A8C 001B09EC 4B EC 99 C5 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 801F101C 001EDF7C 4B E8 C4 35 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80131384 0012E2E4 4B F4 C0 CD */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 801FE458 001FB3B8 4B E7 EF F9 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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)

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 801A5EB4 001A2E14 4B ED 75 9D */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 801D8BBC 001D5B1C 4B EA 48 95 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 802374CC 0023442C 4B E4 5F 85 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 8014EE2C 0014BD8C 4B F2 E6 25 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80171EFC 0016EE5C 4B F0 B5 55 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 801C6104 001C3064 4B EB 73 4D */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bR13CStateManager"
/* 8027D7D8 0027A738 38 61 00 18 */ addi r3, r1, 0x18
/* 8027D7DC 0027A73C 48 0C 03 05 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bR13CStateManager"
/* 8027D800 0027A760 38 61 00 08 */ addi r3, r1, 8
/* 8027D804 0027A764 48 0C 02 DD */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80280234 0027D194 4B DF D2 1D */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bR13CStateManager"
/* 80276404 00273364 38 61 00 28 */ addi r3, r1, 0x28
/* 80276408 00273368 48 0C 76 D9 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bR13CStateManager"
/* 80278110 00275070 38 61 00 10 */ addi r3, r1, 0x10
/* 80278114 00275074 48 0C 59 CD */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bR13CStateManager"
/* 80278560 002754C0 38 61 00 20 */ addi r3, r1, 0x20
/* 80278564 002754C4 48 0C 55 7D */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bR13CStateManager"
/* 80278868 002757C8 38 61 00 08 */ addi r3, r1, 8
/* 8027886C 002757CC 48 0C 52 75 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 8027AFC8 00277F28 4B E0 24 89 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 8018BF08 00188E68 4B EF 15 49 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
"__ct__10CPatternedFUi9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi":
.global "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParameters17EKnockBackVariant"
"__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80295984 002928E4 4B DE 7A CD */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80148448 001453A8 4B F3 50 09 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 8014CCF8 00149C58 4B F3 07 59 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bR13CStateManager"
/* 8025C154 002590B4 38 61 00 18 */ addi r3, r1, 0x18
/* 8025C158 002590B8 48 0E 19 89 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>bR13CStateManager"
/* 8025C1D8 00259138 38 61 00 08 */ addi r3, r1, 8
/* 8025C1DC 0025913C 48 0E 19 05 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC14CPatternedInfofUiRC11CDamageInfoUifbbbRC11CDamageInfoUs"
"__ct__7CPufferF9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 8025CA90 002599F0 3C 60 80 3F */ lis r3, lbl_803E96C0@ha
/* 8025CA8C 002599EC 4B E2 09 C5 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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 "(??)"

View File

@ -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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80259DA0 00256D00 4B E2 36 B1 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 8015C7A0 00159700 4B F2 0C B1 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 8012A3C0 00127320 4B F5 30 91 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 801564AC 0015340C 4B F2 6F A5 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 801E2310 001DF270 4B E9 B1 41 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80205BD0 00202B30 4B E7 78 81 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80260E00 0025DD60 4B E1 C6 51 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80269308 00266268 4B E1 41 49 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 80110C84 0010DBE4 4B F6 C7 CD */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>RC11CEntityInfoRC12CTransform4fRC10CModelDataRC16CActorParametersRC14CPatternedInfofUiRC11CDamageInfoUifbbbRC11CDamageInfoUs"
/* 800C7B84 000C4AE4 7C 77 1B 78 */ mr r23, r3
lbl_800C7B88:
/* 800C7B88 000C4AE8 7E C0 07 75 */ extsb. r0, r22

View File

@ -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<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Q210CPatterned11EFlavorTypeRC11CEntityInfoRC12CTransform4fRC10CModelDataRC14CPatternedInfoQ210CPatterned13EMovementTypeQ210CPatterned13EColliderType9EBodyTypeRC16CActorParametersUi"
/* 8029FDCC 0029CD2C 4B DD D6 85 */ bl "__ct__10CPatternedFQ210CPatterned10ECharacter9TUniqueIdRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,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

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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());

View File

@ -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,6 +27,7 @@ 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; }
@ -36,22 +35,35 @@ public:
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

View File

@ -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

View File

@ -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) {

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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,
@ -169,7 +168,9 @@ public:
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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,16 +1,27 @@
#ifndef _CPATTERNED
#define _CPATTERNED
#include "MetroidPrime/Enemies/CAi.hpp"
#include "types.h"
template <typename T>
#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<T>& 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

View File

@ -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

View File

@ -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

View File

@ -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_;

View File

@ -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

View File

@ -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;
}
}

View File

@ -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)