mirror of https://github.com/PrimeDecomp/prime.git
Continue work on CActor::UpdateAnimation; lots of headers n stuff
This commit is contained in:
parent
7c92358bf6
commit
85284f7640
|
@ -3471,8 +3471,8 @@ __sinit_DolphinCAudioSys_cpp:
|
|||
|
||||
.section .sdata2, "a"
|
||||
.balign 8
|
||||
.global kMaxVolume__9CAudioSys
|
||||
kMaxVolume__9CAudioSys:
|
||||
.global kkMaxVolume__9CAudioSys
|
||||
kkMaxVolume__9CAudioSys:
|
||||
# ROM: 0x3FB200
|
||||
.byte 0x7F
|
||||
|
||||
|
|
|
@ -422,8 +422,8 @@ SetTranslation__6CActorFRC9CVector3f:
|
|||
/* 80052F28 0004FE88 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80052F2C 0004FE8C 4E 80 00 20 */ blr
|
||||
|
||||
.global ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager
|
||||
ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager:
|
||||
.global ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb
|
||||
ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb:
|
||||
/* 80052F30 0004FE90 94 21 FF 20 */ stwu r1, -0xe0(r1)
|
||||
/* 80052F34 0004FE94 7C 08 02 A6 */ mflr r0
|
||||
/* 80052F38 0004FE98 90 01 00 E4 */ stw r0, 0xe4(r1)
|
||||
|
@ -3082,8 +3082,8 @@ lbl_80055400:
|
|||
/* 80055400 00052360 54 80 06 3F */ clrlwi. r0, r4, 0x18
|
||||
/* 80055404 00052364 41 82 00 1C */ beq lbl_80055420
|
||||
/* 80055408 00052368 80 83 00 10 */ lwz r4, 0x10(r3)
|
||||
/* 8005540C 0005236C 3C 60 80 57 */ lis r3, lbl_8056C9EC@ha
|
||||
/* 80055410 00052370 38 63 C9 EC */ addi r3, r3, lbl_8056C9EC@l
|
||||
/* 8005540C 0005236C 3C 60 80 57 */ lis r3, mSoundPOINodes__9CAnimData@ha
|
||||
/* 80055410 00052370 38 63 C9 EC */ addi r3, r3, mSoundPOINodes__9CAnimData@l
|
||||
/* 80055414 00052374 83 A4 02 18 */ lwz r29, 0x218(r4)
|
||||
/* 80055418 00052378 3B 23 00 04 */ addi r25, r3, 4
|
||||
/* 8005541C 0005237C 48 00 00 08 */ b lbl_80055424
|
||||
|
@ -3126,7 +3126,7 @@ lbl_80055474:
|
|||
/* 800554A0 00052400 80 B9 00 34 */ lwz r5, 0x34(r25)
|
||||
/* 800554A4 00052404 C0 59 00 3C */ lfs f2, 0x3c(r25)
|
||||
/* 800554A8 00052408 C0 79 00 40 */ lfs f3, 0x40(r25)
|
||||
/* 800554AC 0005240C 4B FF DA 85 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager
|
||||
/* 800554AC 0005240C 4B FF DA 85 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb
|
||||
lbl_800554B0:
|
||||
/* 800554B0 00052410 3B 39 00 44 */ addi r25, r25, 0x44
|
||||
/* 800554B4 00052414 3B 18 00 01 */ addi r24, r24, 1
|
||||
|
@ -3147,8 +3147,8 @@ lbl_800554E4:
|
|||
/* 800554E4 00052444 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 800554E8 00052448 41 82 00 1C */ beq lbl_80055504
|
||||
/* 800554EC 0005244C 80 84 00 10 */ lwz r4, 0x10(r4)
|
||||
/* 800554F0 00052450 3C 60 80 57 */ lis r3, lbl_8056BDF4@ha
|
||||
/* 800554F4 00052454 38 63 BD F4 */ addi r3, r3, lbl_8056BDF4@l
|
||||
/* 800554F0 00052450 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
|
||||
/* 800554F4 00052454 38 63 BD F4 */ addi r3, r3, mInt32POINodes__9CAnimData@l
|
||||
/* 800554F8 00052458 83 A4 02 10 */ lwz r29, 0x210(r4)
|
||||
/* 800554FC 0005245C 3B 23 00 04 */ addi r25, r3, 4
|
||||
/* 80055500 00052460 48 00 00 08 */ b lbl_80055508
|
||||
|
@ -3191,7 +3191,7 @@ lbl_80055558:
|
|||
/* 80055584 000524E4 39 21 00 24 */ addi r9, r1, 0x24
|
||||
/* 80055588 000524E8 80 B9 00 34 */ lwz r5, 0x34(r25)
|
||||
/* 8005558C 000524EC 38 C0 00 14 */ li r6, 0x14
|
||||
/* 80055590 000524F0 4B FF D9 A1 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager
|
||||
/* 80055590 000524F0 4B FF D9 A1 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb
|
||||
/* 80055594 000524F4 48 00 00 30 */ b lbl_800555C4
|
||||
lbl_80055598:
|
||||
/* 80055598 000524F8 2C 05 00 06 */ cmpwi r5, 6
|
||||
|
@ -3225,8 +3225,8 @@ lbl_800555F8:
|
|||
/* 800555F8 00052558 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 800555FC 0005255C 41 82 00 1C */ beq lbl_80055618
|
||||
/* 80055600 00052560 80 84 00 10 */ lwz r4, 0x10(r4)
|
||||
/* 80055604 00052564 3C 60 80 57 */ lis r3, lbl_8056C2B8@ha
|
||||
/* 80055608 00052568 38 63 C2 B8 */ addi r3, r3, lbl_8056C2B8@l
|
||||
/* 80055604 00052564 3C 60 80 57 */ lis r3, mParticlePOINodes__9CAnimData@ha
|
||||
/* 80055608 00052568 38 63 C2 B8 */ addi r3, r3, mParticlePOINodes__9CAnimData@l
|
||||
/* 8005560C 0005256C 83 04 02 14 */ lwz r24, 0x214(r4)
|
||||
/* 80055610 00052570 3B 23 00 04 */ addi r25, r3, 4
|
||||
/* 80055614 00052574 48 00 00 08 */ b lbl_8005561C
|
||||
|
@ -3522,7 +3522,7 @@ lbl_800559AC:
|
|||
/* 80055A20 00052980 38 A0 FF FF */ li r5, -1
|
||||
/* 80055A24 00052984 98 1F 00 B4 */ stb r0, 0xb4(r31)
|
||||
/* 80055A28 00052988 35 1F 00 DC */ addic. r8, r31, 0xdc
|
||||
/* 80055A2C 0005298C 88 82 CC 40 */ lbz r4, kMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 80055A2C 0005298C 88 82 CC 40 */ lbz r4, kkMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 80055A30 00052990 38 60 00 02 */ li r3, 2
|
||||
/* 80055A34 00052994 88 E1 00 1D */ lbz r7, 0x1d(r1)
|
||||
/* 80055A38 00052998 38 00 00 00 */ li r0, 0
|
||||
|
|
|
@ -88,11 +88,11 @@ lbl_805A6DB0:
|
|||
.balign 8
|
||||
|
||||
.lcomm lbl_8045B140, 0x40, 4
|
||||
.comm lbl_8056A600, 0x17F4, 4
|
||||
.comm lbl_8056BDF4, 0x4C4, 4
|
||||
.comm lbl_8056C2B8, 0x734, 4
|
||||
.comm lbl_8056C9EC, 0x554, 4
|
||||
.comm lbl_8056CF40, 0x4C4, 4
|
||||
.comm mBoolPOINodes__9CAnimData, 0x17F4, 4
|
||||
.comm mInt32POINodes__9CAnimData, 0x4C4, 4
|
||||
.comm mParticlePOINodes__9CAnimData, 0x734, 4
|
||||
.comm mSoundPOINodes__9CAnimData, 0x554, 4
|
||||
.comm sInt32TransientCache, 0x4C4, 4
|
||||
|
||||
.section .sbss
|
||||
.balign 8
|
||||
|
@ -238,17 +238,17 @@ AdvanceAdditiveAnims__9CAnimDataFf:
|
|||
/* 800295A8 00026508 39 05 66 60 */ addi r8, r5, lbl_805A6660@l
|
||||
/* 800295AC 0002650C 7C 9D 23 78 */ mr r29, r4
|
||||
/* 800295B0 00026510 C0 88 00 00 */ lfs f4, 0(r8)
|
||||
/* 800295B4 00026514 3C E0 80 57 */ lis r7, lbl_8056BDF4@ha
|
||||
/* 800295B4 00026514 3C E0 80 57 */ lis r7, mInt32POINodes__9CAnimData@ha
|
||||
/* 800295B8 00026518 C0 68 00 04 */ lfs f3, 4(r8)
|
||||
/* 800295BC 0002651C 3C C0 80 57 */ lis r6, lbl_8056A600@ha
|
||||
/* 800295BC 0002651C 3C C0 80 57 */ lis r6, mBoolPOINodes__9CAnimData@ha
|
||||
/* 800295C0 00026520 C0 48 00 08 */ lfs f2, 8(r8)
|
||||
/* 800295C4 00026524 3C A0 80 57 */ lis r5, lbl_8056C2B8@ha
|
||||
/* 800295C4 00026524 3C A0 80 57 */ lis r5, mParticlePOINodes__9CAnimData@ha
|
||||
/* 800295C8 00026528 C0 08 00 0C */ lfs f0, 0xc(r8)
|
||||
/* 800295CC 0002652C 3C 80 80 57 */ lis r4, lbl_8056C9EC@ha
|
||||
/* 800295D0 00026530 38 E7 BD F4 */ addi r7, r7, lbl_8056BDF4@l
|
||||
/* 800295D4 00026534 38 C6 A6 00 */ addi r6, r6, lbl_8056A600@l
|
||||
/* 800295D8 00026538 38 A5 C2 B8 */ addi r5, r5, lbl_8056C2B8@l
|
||||
/* 800295DC 0002653C 38 84 C9 EC */ addi r4, r4, lbl_8056C9EC@l
|
||||
/* 800295CC 0002652C 3C 80 80 57 */ lis r4, mSoundPOINodes__9CAnimData@ha
|
||||
/* 800295D0 00026530 38 E7 BD F4 */ addi r7, r7, mInt32POINodes__9CAnimData@l
|
||||
/* 800295D4 00026534 38 C6 A6 00 */ addi r6, r6, mBoolPOINodes__9CAnimData@l
|
||||
/* 800295D8 00026538 38 A5 C2 B8 */ addi r5, r5, mParticlePOINodes__9CAnimData@l
|
||||
/* 800295DC 0002653C 38 84 C9 EC */ addi r4, r4, mSoundPOINodes__9CAnimData@l
|
||||
/* 800295E0 00026540 D0 81 00 80 */ stfs f4, 0x80(r1)
|
||||
/* 800295E4 00026544 FF 80 08 90 */ fmr f28, f1
|
||||
/* 800295E8 00026548 FF C0 F8 90 */ fmr f30, f31
|
||||
|
@ -2456,9 +2456,9 @@ SetRandomPlaybackRate__9CAnimDataFR9CRandom16:
|
|||
/* 8002B488 000283E8 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 8002B48C 000283EC 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 8002B490 000283F0 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 8002B494 000283F4 3C 60 80 57 */ lis r3, lbl_8056BDF4@ha
|
||||
/* 8002B494 000283F4 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
|
||||
/* 8002B498 000283F8 80 1F 02 10 */ lwz r0, 0x210(r31)
|
||||
/* 8002B49C 000283FC 38 63 BD F4 */ addi r3, r3, lbl_8056BDF4@l
|
||||
/* 8002B49C 000283FC 38 63 BD F4 */ addi r3, r3, mInt32POINodes__9CAnimData@l
|
||||
/* 8002B4A0 00028400 7C 9D 23 78 */ mr r29, r4
|
||||
/* 8002B4A4 00028404 38 63 00 04 */ addi r3, r3, 4
|
||||
/* 8002B4A8 00028408 7C 09 03 A6 */ mtctr r0
|
||||
|
@ -2578,9 +2578,9 @@ lbl_8002B554:
|
|||
/* 8002B654 000285B4 41 82 02 30 */ beq lbl_8002B884
|
||||
/* 8002B658 000285B8 48 00 31 C9 */ bl ResetPOILists__9CAnimDataFv
|
||||
/* 8002B65C 000285BC C0 0D 81 EC */ lfs f0, lbl_805A6DAC@sda21(r13)
|
||||
/* 8002B660 000285C0 3C 60 80 57 */ lis r3, lbl_8056BDF4@ha
|
||||
/* 8002B660 000285C0 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
|
||||
/* 8002B664 000285C4 80 0D 81 E8 */ lwz r0, lbl_805A6DA8@sda21(r13)
|
||||
/* 8002B668 000285C8 38 63 BD F4 */ addi r3, r3, lbl_8056BDF4@l
|
||||
/* 8002B668 000285C8 38 63 BD F4 */ addi r3, r3, mInt32POINodes__9CAnimData@l
|
||||
/* 8002B66C 000285CC D0 01 00 58 */ stfs f0, 0x58(r1)
|
||||
/* 8002B670 000285D0 3A 83 00 04 */ addi r20, r3, 4
|
||||
/* 8002B674 000285D4 80 7F 00 00 */ lwz r3, 0(r31)
|
||||
|
@ -2747,9 +2747,9 @@ lbl_8002B884:
|
|||
/* 8002B8EC 0002884C 7F A3 EB 78 */ mr r3, r29
|
||||
/* 8002B8F0 00028850 48 00 2F 31 */ bl ResetPOILists__9CAnimDataFv
|
||||
/* 8002B8F4 00028854 C0 0D 81 EC */ lfs f0, lbl_805A6DAC@sda21(r13)
|
||||
/* 8002B8F8 00028858 3C 60 80 57 */ lis r3, lbl_8056BDF4@ha
|
||||
/* 8002B8F8 00028858 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
|
||||
/* 8002B8FC 0002885C 80 0D 81 E8 */ lwz r0, lbl_805A6DA8@sda21(r13)
|
||||
/* 8002B900 00028860 38 63 BD F4 */ addi r3, r3, lbl_8056BDF4@l
|
||||
/* 8002B900 00028860 38 63 BD F4 */ addi r3, r3, mInt32POINodes__9CAnimData@l
|
||||
/* 8002B904 00028864 D0 01 00 38 */ stfs f0, 0x38(r1)
|
||||
/* 8002B908 00028868 3B 03 00 04 */ addi r24, r3, 4
|
||||
/* 8002B90C 0002886C 80 7F 00 00 */ lwz r3, 0(r31)
|
||||
|
@ -3013,9 +3013,9 @@ lbl_8002BC9C:
|
|||
/* 8002BCEC 00028C4C 7F A3 EB 78 */ mr r3, r29
|
||||
/* 8002BCF0 00028C50 48 00 2B 31 */ bl ResetPOILists__9CAnimDataFv
|
||||
/* 8002BCF4 00028C54 C0 0D 81 EC */ lfs f0, lbl_805A6DAC@sda21(r13)
|
||||
/* 8002BCF8 00028C58 3C 60 80 57 */ lis r3, lbl_8056BDF4@ha
|
||||
/* 8002BCF8 00028C58 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
|
||||
/* 8002BCFC 00028C5C 80 0D 81 E8 */ lwz r0, lbl_805A6DA8@sda21(r13)
|
||||
/* 8002BD00 00028C60 38 63 BD F4 */ addi r3, r3, lbl_8056BDF4@l
|
||||
/* 8002BD00 00028C60 38 63 BD F4 */ addi r3, r3, mInt32POINodes__9CAnimData@l
|
||||
/* 8002BD04 00028C64 D0 01 00 10 */ stfs f0, 0x10(r1)
|
||||
/* 8002BD08 00028C68 3B 03 00 04 */ addi r24, r3, 4
|
||||
/* 8002BD0C 00028C6C 80 7F 00 00 */ lwz r3, 0(r31)
|
||||
|
@ -4558,14 +4558,14 @@ lbl_8002D310:
|
|||
/* 8002D330 0002A290 88 1A 02 20 */ lbz r0, 0x220(r26)
|
||||
/* 8002D334 0002A294 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
|
||||
/* 8002D338 0002A298 41 82 01 2C */ beq lbl_8002D464
|
||||
/* 8002D33C 0002A29C 3C C0 80 57 */ lis r6, lbl_8056BDF4@ha
|
||||
/* 8002D340 0002A2A0 3C A0 80 57 */ lis r5, lbl_8056A600@ha
|
||||
/* 8002D344 0002A2A4 3C 80 80 57 */ lis r4, lbl_8056C2B8@ha
|
||||
/* 8002D348 0002A2A8 3C 60 80 57 */ lis r3, lbl_8056C9EC@ha
|
||||
/* 8002D34C 0002A2AC 38 C6 BD F4 */ addi r6, r6, lbl_8056BDF4@l
|
||||
/* 8002D350 0002A2B0 38 A5 A6 00 */ addi r5, r5, lbl_8056A600@l
|
||||
/* 8002D354 0002A2B4 38 84 C2 B8 */ addi r4, r4, lbl_8056C2B8@l
|
||||
/* 8002D358 0002A2B8 38 63 C9 EC */ addi r3, r3, lbl_8056C9EC@l
|
||||
/* 8002D33C 0002A29C 3C C0 80 57 */ lis r6, mInt32POINodes__9CAnimData@ha
|
||||
/* 8002D340 0002A2A0 3C A0 80 57 */ lis r5, mBoolPOINodes__9CAnimData@ha
|
||||
/* 8002D344 0002A2A4 3C 80 80 57 */ lis r4, mParticlePOINodes__9CAnimData@ha
|
||||
/* 8002D348 0002A2A8 3C 60 80 57 */ lis r3, mSoundPOINodes__9CAnimData@ha
|
||||
/* 8002D34C 0002A2AC 38 C6 BD F4 */ addi r6, r6, mInt32POINodes__9CAnimData@l
|
||||
/* 8002D350 0002A2B0 38 A5 A6 00 */ addi r5, r5, mBoolPOINodes__9CAnimData@l
|
||||
/* 8002D354 0002A2B4 38 84 C2 B8 */ addi r4, r4, mParticlePOINodes__9CAnimData@l
|
||||
/* 8002D358 0002A2B8 38 63 C9 EC */ addi r3, r3, mSoundPOINodes__9CAnimData@l
|
||||
/* 8002D35C 0002A2BC C3 82 83 D0 */ lfs f28, lbl_805AA0F0@sda21(r2)
|
||||
/* 8002D360 0002A2C0 3B E6 00 04 */ addi r31, r6, 4
|
||||
/* 8002D364 0002A2C4 C3 62 83 D4 */ lfs f27, lbl_805AA0F4@sda21(r2)
|
||||
|
@ -4642,14 +4642,14 @@ lbl_8002D464:
|
|||
/* 8002D474 0002A3D4 81 8C 00 14 */ lwz r12, 0x14(r12)
|
||||
/* 8002D478 0002A3D8 7D 89 03 A6 */ mtctr r12
|
||||
/* 8002D47C 0002A3DC 4E 80 04 21 */ bctrl
|
||||
/* 8002D480 0002A3E0 3C C0 80 57 */ lis r6, lbl_8056BDF4@ha
|
||||
/* 8002D484 0002A3E4 3C A0 80 57 */ lis r5, lbl_8056A600@ha
|
||||
/* 8002D488 0002A3E8 3C 80 80 57 */ lis r4, lbl_8056C2B8@ha
|
||||
/* 8002D48C 0002A3EC 3C 60 80 57 */ lis r3, lbl_8056C9EC@ha
|
||||
/* 8002D490 0002A3F0 38 E6 BD F4 */ addi r7, r6, lbl_8056BDF4@l
|
||||
/* 8002D494 0002A3F4 38 C5 A6 00 */ addi r6, r5, lbl_8056A600@l
|
||||
/* 8002D498 0002A3F8 38 A4 C2 B8 */ addi r5, r4, lbl_8056C2B8@l
|
||||
/* 8002D49C 0002A3FC 38 83 C9 EC */ addi r4, r3, lbl_8056C9EC@l
|
||||
/* 8002D480 0002A3E0 3C C0 80 57 */ lis r6, mInt32POINodes__9CAnimData@ha
|
||||
/* 8002D484 0002A3E4 3C A0 80 57 */ lis r5, mBoolPOINodes__9CAnimData@ha
|
||||
/* 8002D488 0002A3E8 3C 80 80 57 */ lis r4, mParticlePOINodes__9CAnimData@ha
|
||||
/* 8002D48C 0002A3EC 3C 60 80 57 */ lis r3, mSoundPOINodes__9CAnimData@ha
|
||||
/* 8002D490 0002A3F0 38 E6 BD F4 */ addi r7, r6, mInt32POINodes__9CAnimData@l
|
||||
/* 8002D494 0002A3F4 38 C5 A6 00 */ addi r6, r5, mBoolPOINodes__9CAnimData@l
|
||||
/* 8002D498 0002A3F8 38 A4 C2 B8 */ addi r5, r4, mParticlePOINodes__9CAnimData@l
|
||||
/* 8002D49C 0002A3FC 38 83 C9 EC */ addi r4, r3, mSoundPOINodes__9CAnimData@l
|
||||
/* 8002D4A0 0002A400 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha
|
||||
/* 8002D4A4 0002A404 C3 41 00 20 */ lfs f26, 0x20(r1)
|
||||
/* 8002D4A8 0002A408 C3 62 83 D0 */ lfs f27, lbl_805AA0F0@sda21(r2)
|
||||
|
@ -4867,9 +4867,9 @@ Advance__9CAnimDataFfRC9CVector3fR13CStateManagerb:
|
|||
/* 8002D7C8 0002A728 38 79 01 20 */ addi r3, r25, 0x120
|
||||
/* 8002D7CC 0002A72C 48 08 A4 6D */ bl SuspendAllActiveEffects__17CParticleDatabaseFR13CStateManager
|
||||
lbl_8002D7D0:
|
||||
/* 8002D7D0 0002A730 3C 60 80 57 */ lis r3, lbl_8056C2B8@ha
|
||||
/* 8002D7D0 0002A730 3C 60 80 57 */ lis r3, mParticlePOINodes__9CAnimData@ha
|
||||
/* 8002D7D4 0002A734 83 D9 02 14 */ lwz r30, 0x214(r25)
|
||||
/* 8002D7D8 0002A738 38 63 C2 B8 */ addi r3, r3, lbl_8056C2B8@l
|
||||
/* 8002D7D8 0002A738 38 63 C2 B8 */ addi r3, r3, mParticlePOINodes__9CAnimData@l
|
||||
/* 8002D7DC 0002A73C 3B A0 00 00 */ li r29, 0
|
||||
/* 8002D7E0 0002A740 3B E3 00 04 */ addi r31, r3, 4
|
||||
/* 8002D7E4 0002A744 48 00 00 58 */ b lbl_8002D83C
|
||||
|
@ -5147,8 +5147,8 @@ lbl_8002DBC4:
|
|||
/* 8002DBD4 0002AB34 41 82 00 E4 */ beq lbl_8002DCB8
|
||||
lbl_8002DBD8:
|
||||
/* 8002DBD8 0002AB38 80 1A 02 10 */ lwz r0, 0x210(r26)
|
||||
/* 8002DBDC 0002AB3C 3C 60 80 57 */ lis r3, lbl_8056BDF4@ha
|
||||
/* 8002DBE0 0002AB40 38 63 BD F4 */ addi r3, r3, lbl_8056BDF4@l
|
||||
/* 8002DBDC 0002AB3C 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
|
||||
/* 8002DBE0 0002AB40 38 63 BD F4 */ addi r3, r3, mInt32POINodes__9CAnimData@l
|
||||
/* 8002DBE4 0002AB44 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8002DBE8 0002AB48 38 A3 00 04 */ addi r5, r3, 4
|
||||
/* 8002DBEC 0002AB4C 40 81 00 CC */ ble lbl_8002DCB8
|
||||
|
@ -5533,10 +5533,10 @@ lbl_8002E138:
|
|||
FreeCache__9CAnimDataFv:
|
||||
/* 8002E168 0002B0C8 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 8002E16C 0002B0CC 7C 08 02 A6 */ mflr r0
|
||||
/* 8002E170 0002B0D0 3C 60 80 57 */ lis r3, lbl_8056CF40@ha
|
||||
/* 8002E170 0002B0D0 3C 60 80 57 */ lis r3, sInt32TransientCache@ha
|
||||
/* 8002E174 0002B0D4 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 8002E178 0002B0D8 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 8002E17C 0002B0DC 3B E3 CF 40 */ addi r31, r3, lbl_8056CF40@l
|
||||
/* 8002E17C 0002B0DC 3B E3 CF 40 */ addi r31, r3, sInt32TransientCache@l
|
||||
/* 8002E180 0002B0E0 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 8002E184 0002B0E4 3B C0 00 00 */ li r30, 0
|
||||
/* 8002E188 0002B0E8 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
|
@ -5556,9 +5556,9 @@ lbl_8002E1B4:
|
|||
/* 8002E1B8 0002B118 7C 1E 00 00 */ cmpw r30, r0
|
||||
/* 8002E1BC 0002B11C 41 80 FF D8 */ blt lbl_8002E194
|
||||
/* 8002E1C0 0002B120 38 00 00 00 */ li r0, 0
|
||||
/* 8002E1C4 0002B124 3C 60 80 57 */ lis r3, lbl_8056CF40@ha
|
||||
/* 8002E1C4 0002B124 3C 60 80 57 */ lis r3, sInt32TransientCache@ha
|
||||
/* 8002E1C8 0002B128 90 0D A1 0C */ stw r0, lbl_805A8CCC@sda21(r13)
|
||||
/* 8002E1CC 0002B12C 90 03 CF 40 */ stw r0, lbl_8056CF40@l(r3)
|
||||
/* 8002E1CC 0002B12C 90 03 CF 40 */ stw r0, sInt32TransientCache@l(r3)
|
||||
/* 8002E1D0 0002B130 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 8002E1D4 0002B134 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 8002E1D8 0002B138 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
|
@ -5571,11 +5571,11 @@ lbl_8002E1B4:
|
|||
InitializeCache__9CAnimDataFv:
|
||||
/* 8002E1EC 0002B14C 94 21 FF 60 */ stwu r1, -0xa0(r1)
|
||||
/* 8002E1F0 0002B150 7C 08 02 A6 */ mflr r0
|
||||
/* 8002E1F4 0002B154 3C 60 80 57 */ lis r3, lbl_8056CF40@ha
|
||||
/* 8002E1F4 0002B154 3C 60 80 57 */ lis r3, sInt32TransientCache@ha
|
||||
/* 8002E1F8 0002B158 90 01 00 A4 */ stw r0, 0xa4(r1)
|
||||
/* 8002E1FC 0002B15C 93 E1 00 9C */ stw r31, 0x9c(r1)
|
||||
/* 8002E200 0002B160 93 C1 00 98 */ stw r30, 0x98(r1)
|
||||
/* 8002E204 0002B164 3B C3 CF 40 */ addi r30, r3, lbl_8056CF40@l
|
||||
/* 8002E204 0002B164 3B C3 CF 40 */ addi r30, r3, sInt32TransientCache@l
|
||||
/* 8002E208 0002B168 3B FE 00 04 */ addi r31, r30, 4
|
||||
/* 8002E20C 0002B16C 93 A1 00 94 */ stw r29, 0x94(r1)
|
||||
/* 8002E210 0002B170 3B A0 00 00 */ li r29, 0
|
||||
|
@ -5595,9 +5595,9 @@ lbl_8002E240:
|
|||
/* 8002E240 0002B1A0 80 1E 00 00 */ lwz r0, 0(r30)
|
||||
/* 8002E244 0002B1A4 7C 1D 00 00 */ cmpw r29, r0
|
||||
/* 8002E248 0002B1A8 41 80 FF D8 */ blt lbl_8002E220
|
||||
/* 8002E24C 0002B1AC 3C 80 80 57 */ lis r4, lbl_8056CF40@ha
|
||||
/* 8002E24C 0002B1AC 3C 80 80 57 */ lis r4, sInt32TransientCache@ha
|
||||
/* 8002E250 0002B1B0 3C 60 80 3D */ lis r3, lbl_803CCD20@ha
|
||||
/* 8002E254 0002B1B4 38 A4 CF 40 */ addi r5, r4, lbl_8056CF40@l
|
||||
/* 8002E254 0002B1B4 38 A4 CF 40 */ addi r5, r4, sInt32TransientCache@l
|
||||
/* 8002E258 0002B1B8 38 00 00 00 */ li r0, 0
|
||||
/* 8002E25C 0002B1BC 38 83 CD 20 */ addi r4, r3, lbl_803CCD20@l
|
||||
/* 8002E260 0002B1C0 90 05 00 00 */ stw r0, 0(r5)
|
||||
|
@ -5626,9 +5626,9 @@ lbl_8002E240:
|
|||
/* 8002E2BC 0002B21C 39 20 FF FF */ li r9, -1
|
||||
/* 8002E2C0 0002B220 39 40 00 00 */ li r10, 0
|
||||
/* 8002E2C4 0002B224 4B FF D0 C9 */ bl "__ct__13CInt32POINodeFQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>UsRC13CCharAnimTimeibfiiiRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
|
||||
/* 8002E2C8 0002B228 3C 60 80 57 */ lis r3, lbl_8056CF40@ha
|
||||
/* 8002E2C8 0002B228 3C 60 80 57 */ lis r3, sInt32TransientCache@ha
|
||||
/* 8002E2CC 0002B22C 38 A1 00 38 */ addi r5, r1, 0x38
|
||||
/* 8002E2D0 0002B230 38 63 CF 40 */ addi r3, r3, lbl_8056CF40@l
|
||||
/* 8002E2D0 0002B230 38 63 CF 40 */ addi r3, r3, sInt32TransientCache@l
|
||||
/* 8002E2D4 0002B234 38 80 00 10 */ li r4, 0x10
|
||||
/* 8002E2D8 0002B238 48 00 00 69 */ bl "uninitialized_fill_n<P13CInt32POINode,13CInt32POINode>__4rstlFP13CInt32POINodeiRC13CInt32POINode"
|
||||
/* 8002E2DC 0002B23C 3C 80 80 3E */ lis r4, lbl_803D9B98@ha
|
||||
|
@ -6289,9 +6289,9 @@ __dt__9CAnimDataFv:
|
|||
/* 8002EBE0 0002BB40 34 03 FF FF */ addic. r0, r3, -1
|
||||
/* 8002EBE4 0002BB44 90 0D A1 08 */ stw r0, lbl_805A8CC8@sda21(r13)
|
||||
/* 8002EBE8 0002BB48 40 82 01 34 */ bne lbl_8002ED1C
|
||||
/* 8002EBEC 0002BB4C 3C 60 80 57 */ lis r3, lbl_8056A600@ha
|
||||
/* 8002EBEC 0002BB4C 3C 60 80 57 */ lis r3, mBoolPOINodes__9CAnimData@ha
|
||||
/* 8002EBF0 0002BB50 3B 80 00 00 */ li r28, 0
|
||||
/* 8002EBF4 0002BB54 3B A3 A6 00 */ addi r29, r3, lbl_8056A600@l
|
||||
/* 8002EBF4 0002BB54 3B A3 A6 00 */ addi r29, r3, mBoolPOINodes__9CAnimData@l
|
||||
/* 8002EBF8 0002BB58 3B 7D 00 04 */ addi r27, r29, 4
|
||||
/* 8002EBFC 0002BB5C 48 00 00 24 */ b lbl_8002EC20
|
||||
lbl_8002EC00:
|
||||
|
@ -6307,12 +6307,12 @@ lbl_8002EC20:
|
|||
/* 8002EC20 0002BB80 80 1D 00 00 */ lwz r0, 0(r29)
|
||||
/* 8002EC24 0002BB84 7C 1C 00 00 */ cmpw r28, r0
|
||||
/* 8002EC28 0002BB88 41 80 FF D8 */ blt lbl_8002EC00
|
||||
/* 8002EC2C 0002BB8C 3C 60 80 57 */ lis r3, lbl_8056A600@ha
|
||||
/* 8002EC2C 0002BB8C 3C 60 80 57 */ lis r3, mBoolPOINodes__9CAnimData@ha
|
||||
/* 8002EC30 0002BB90 3B 80 00 00 */ li r28, 0
|
||||
/* 8002EC34 0002BB94 38 83 A6 00 */ addi r4, r3, lbl_8056A600@l
|
||||
/* 8002EC38 0002BB98 3C 60 80 57 */ lis r3, lbl_8056BDF4@ha
|
||||
/* 8002EC34 0002BB94 38 83 A6 00 */ addi r4, r3, mBoolPOINodes__9CAnimData@l
|
||||
/* 8002EC38 0002BB98 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
|
||||
/* 8002EC3C 0002BB9C 93 84 00 00 */ stw r28, 0(r4)
|
||||
/* 8002EC40 0002BBA0 3B A3 BD F4 */ addi r29, r3, lbl_8056BDF4@l
|
||||
/* 8002EC40 0002BBA0 3B A3 BD F4 */ addi r29, r3, mInt32POINodes__9CAnimData@l
|
||||
/* 8002EC44 0002BBA4 3B 7D 00 04 */ addi r27, r29, 4
|
||||
/* 8002EC48 0002BBA8 48 00 00 24 */ b lbl_8002EC6C
|
||||
lbl_8002EC4C:
|
||||
|
@ -6328,12 +6328,12 @@ lbl_8002EC6C:
|
|||
/* 8002EC6C 0002BBCC 80 1D 00 00 */ lwz r0, 0(r29)
|
||||
/* 8002EC70 0002BBD0 7C 1C 00 00 */ cmpw r28, r0
|
||||
/* 8002EC74 0002BBD4 41 80 FF D8 */ blt lbl_8002EC4C
|
||||
/* 8002EC78 0002BBD8 3C 60 80 57 */ lis r3, lbl_8056BDF4@ha
|
||||
/* 8002EC78 0002BBD8 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
|
||||
/* 8002EC7C 0002BBDC 3B 80 00 00 */ li r28, 0
|
||||
/* 8002EC80 0002BBE0 38 83 BD F4 */ addi r4, r3, lbl_8056BDF4@l
|
||||
/* 8002EC84 0002BBE4 3C 60 80 57 */ lis r3, lbl_8056C2B8@ha
|
||||
/* 8002EC80 0002BBE0 38 83 BD F4 */ addi r4, r3, mInt32POINodes__9CAnimData@l
|
||||
/* 8002EC84 0002BBE4 3C 60 80 57 */ lis r3, mParticlePOINodes__9CAnimData@ha
|
||||
/* 8002EC88 0002BBE8 93 84 00 00 */ stw r28, 0(r4)
|
||||
/* 8002EC8C 0002BBEC 3B A3 C2 B8 */ addi r29, r3, lbl_8056C2B8@l
|
||||
/* 8002EC8C 0002BBEC 3B A3 C2 B8 */ addi r29, r3, mParticlePOINodes__9CAnimData@l
|
||||
/* 8002EC90 0002BBF0 3B 7D 00 04 */ addi r27, r29, 4
|
||||
/* 8002EC94 0002BBF4 48 00 00 24 */ b lbl_8002ECB8
|
||||
lbl_8002EC98:
|
||||
|
@ -6349,12 +6349,12 @@ lbl_8002ECB8:
|
|||
/* 8002ECB8 0002BC18 80 1D 00 00 */ lwz r0, 0(r29)
|
||||
/* 8002ECBC 0002BC1C 7C 1C 00 00 */ cmpw r28, r0
|
||||
/* 8002ECC0 0002BC20 41 80 FF D8 */ blt lbl_8002EC98
|
||||
/* 8002ECC4 0002BC24 3C 60 80 57 */ lis r3, lbl_8056C2B8@ha
|
||||
/* 8002ECC4 0002BC24 3C 60 80 57 */ lis r3, mParticlePOINodes__9CAnimData@ha
|
||||
/* 8002ECC8 0002BC28 3B 80 00 00 */ li r28, 0
|
||||
/* 8002ECCC 0002BC2C 38 83 C2 B8 */ addi r4, r3, lbl_8056C2B8@l
|
||||
/* 8002ECD0 0002BC30 3C 60 80 57 */ lis r3, lbl_8056C9EC@ha
|
||||
/* 8002ECCC 0002BC2C 38 83 C2 B8 */ addi r4, r3, mParticlePOINodes__9CAnimData@l
|
||||
/* 8002ECD0 0002BC30 3C 60 80 57 */ lis r3, mSoundPOINodes__9CAnimData@ha
|
||||
/* 8002ECD4 0002BC34 93 84 00 00 */ stw r28, 0(r4)
|
||||
/* 8002ECD8 0002BC38 3B A3 C9 EC */ addi r29, r3, lbl_8056C9EC@l
|
||||
/* 8002ECD8 0002BC38 3B A3 C9 EC */ addi r29, r3, mSoundPOINodes__9CAnimData@l
|
||||
/* 8002ECDC 0002BC3C 3B 7D 00 04 */ addi r27, r29, 4
|
||||
/* 8002ECE0 0002BC40 48 00 00 24 */ b lbl_8002ED04
|
||||
lbl_8002ECE4:
|
||||
|
@ -6370,9 +6370,9 @@ lbl_8002ED04:
|
|||
/* 8002ED04 0002BC64 80 1D 00 00 */ lwz r0, 0(r29)
|
||||
/* 8002ED08 0002BC68 7C 1C 00 00 */ cmpw r28, r0
|
||||
/* 8002ED0C 0002BC6C 41 80 FF D8 */ blt lbl_8002ECE4
|
||||
/* 8002ED10 0002BC70 3C 60 80 57 */ lis r3, lbl_8056C9EC@ha
|
||||
/* 8002ED10 0002BC70 3C 60 80 57 */ lis r3, mSoundPOINodes__9CAnimData@ha
|
||||
/* 8002ED14 0002BC74 38 00 00 00 */ li r0, 0
|
||||
/* 8002ED18 0002BC78 90 03 C9 EC */ stw r0, lbl_8056C9EC@l(r3)
|
||||
/* 8002ED18 0002BC78 90 03 C9 EC */ stw r0, mSoundPOINodes__9CAnimData@l(r3)
|
||||
lbl_8002ED1C:
|
||||
/* 8002ED1C 0002BC7C 34 1E 04 34 */ addic. r0, r30, 0x434
|
||||
/* 8002ED20 0002BC80 41 82 00 50 */ beq lbl_8002ED70
|
||||
|
@ -7465,8 +7465,8 @@ lbl_8002F9A8:
|
|||
/* 8002FC0C 0002CB6C 39 20 FF FF */ li r9, -1
|
||||
/* 8002FC10 0002CB70 39 40 00 00 */ li r10, 0
|
||||
/* 8002FC14 0002CB74 48 00 08 71 */ bl "__ct__12CBoolPOINodeFQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>UsRC13CCharAnimTimeibfiib"
|
||||
/* 8002FC18 0002CB78 3C 60 80 57 */ lis r3, lbl_8056A600@ha
|
||||
/* 8002FC1C 0002CB7C 38 63 A6 00 */ addi r3, r3, lbl_8056A600@l
|
||||
/* 8002FC18 0002CB78 3C 60 80 57 */ lis r3, mBoolPOINodes__9CAnimData@ha
|
||||
/* 8002FC1C 0002CB7C 38 63 A6 00 */ addi r3, r3, mBoolPOINodes__9CAnimData@l
|
||||
/* 8002FC20 0002CB80 80 83 00 00 */ lwz r4, 0(r3)
|
||||
/* 8002FC24 0002CB84 2C 04 00 08 */ cmpwi r4, 8
|
||||
/* 8002FC28 0002CB88 40 80 00 B8 */ bge lbl_8002FCE0
|
||||
|
@ -7515,9 +7515,9 @@ lbl_8002FCC4:
|
|||
lbl_8002FCCC:
|
||||
/* 8002FCCC 0002CC2C 7C 1C D0 00 */ cmpw r28, r26
|
||||
/* 8002FCD0 0002CC30 41 80 FF 78 */ blt lbl_8002FC48
|
||||
/* 8002FCD4 0002CC34 3C 60 80 57 */ lis r3, lbl_8056A600@ha
|
||||
/* 8002FCD4 0002CC34 3C 60 80 57 */ lis r3, mBoolPOINodes__9CAnimData@ha
|
||||
/* 8002FCD8 0002CC38 38 00 00 08 */ li r0, 8
|
||||
/* 8002FCDC 0002CC3C 90 03 A6 00 */ stw r0, lbl_8056A600@l(r3)
|
||||
/* 8002FCDC 0002CC3C 90 03 A6 00 */ stw r0, mBoolPOINodes__9CAnimData@l(r3)
|
||||
lbl_8002FCE0:
|
||||
/* 8002FCE0 0002CC40 3C 60 80 3E */ lis r3, lbl_803D9B68@ha
|
||||
/* 8002FCE4 0002CC44 3C 80 80 3E */ lis r4, lbl_803D9B8C@ha
|
||||
|
@ -7558,9 +7558,9 @@ lbl_8002FD04:
|
|||
/* 8002FD6C 0002CCCC 39 20 FF FF */ li r9, -1
|
||||
/* 8002FD70 0002CCD0 39 40 00 00 */ li r10, 0
|
||||
/* 8002FD74 0002CCD4 4B FF B6 19 */ bl "__ct__13CInt32POINodeFQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>UsRC13CCharAnimTimeibfiiiRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
|
||||
/* 8002FD78 0002CCD8 3C 60 80 57 */ lis r3, lbl_8056BDF4@ha
|
||||
/* 8002FD78 0002CCD8 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
|
||||
/* 8002FD7C 0002CCDC 38 A1 02 50 */ addi r5, r1, 0x250
|
||||
/* 8002FD80 0002CCE0 38 63 BD F4 */ addi r3, r3, lbl_8056BDF4@l
|
||||
/* 8002FD80 0002CCE0 38 63 BD F4 */ addi r3, r3, mInt32POINodes__9CAnimData@l
|
||||
/* 8002FD84 0002CCE4 38 80 00 10 */ li r4, 0x10
|
||||
/* 8002FD88 0002CCE8 4B FF E5 B9 */ bl "uninitialized_fill_n<P13CInt32POINode,13CInt32POINode>__4rstlFP13CInt32POINodeiRC13CInt32POINode"
|
||||
/* 8002FD8C 0002CCEC 3C 80 80 3E */ lis r4, lbl_803D9B98@ha
|
||||
|
@ -7618,9 +7618,9 @@ lbl_8002FDBC:
|
|||
/* 8002FE54 0002CDB4 39 20 FF FF */ li r9, -1
|
||||
/* 8002FE58 0002CDB8 39 40 00 00 */ li r10, 0
|
||||
/* 8002FE5C 0002CDBC 48 00 05 AD */ bl sub_80030408
|
||||
/* 8002FE60 0002CDC0 3C 60 80 57 */ lis r3, lbl_8056C2B8@ha
|
||||
/* 8002FE60 0002CDC0 3C 60 80 57 */ lis r3, mParticlePOINodes__9CAnimData@ha
|
||||
/* 8002FE64 0002CDC4 38 A1 01 F4 */ addi r5, r1, 0x1f4
|
||||
/* 8002FE68 0002CDC8 38 63 C2 B8 */ addi r3, r3, lbl_8056C2B8@l
|
||||
/* 8002FE68 0002CDC8 38 63 C2 B8 */ addi r3, r3, mParticlePOINodes__9CAnimData@l
|
||||
/* 8002FE6C 0002CDCC 38 80 00 14 */ li r4, 0x14
|
||||
/* 8002FE70 0002CDD0 48 00 04 4D */ bl sub_800302bc
|
||||
/* 8002FE74 0002CDD4 3C 60 80 3E */ lis r3, lbl_803D9B74@ha
|
||||
|
@ -7672,9 +7672,9 @@ lbl_8002FEBC:
|
|||
/* 8002FF20 0002CE80 39 20 FF FF */ li r9, -1
|
||||
/* 8002FF24 0002CE84 39 40 00 00 */ li r10, 0
|
||||
/* 8002FF28 0002CE88 48 00 03 29 */ bl "__ct__13CSoundPOINodeFQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>UsRC13CCharAnimTimeibfiiiff"
|
||||
/* 8002FF2C 0002CE8C 3C 60 80 57 */ lis r3, lbl_8056C9EC@ha
|
||||
/* 8002FF2C 0002CE8C 3C 60 80 57 */ lis r3, mSoundPOINodes__9CAnimData@ha
|
||||
/* 8002FF30 0002CE90 38 A1 01 B0 */ addi r5, r1, 0x1b0
|
||||
/* 8002FF34 0002CE94 38 63 C9 EC */ addi r3, r3, lbl_8056C9EC@l
|
||||
/* 8002FF34 0002CE94 38 63 C9 EC */ addi r3, r3, mSoundPOINodes__9CAnimData@l
|
||||
/* 8002FF38 0002CE98 38 80 00 14 */ li r4, 0x14
|
||||
/* 8002FF3C 0002CE9C 48 00 02 21 */ bl sub_8003015c
|
||||
/* 8002FF40 0002CEA0 3C 60 80 3E */ lis r3, lbl_803D9B80@ha
|
||||
|
@ -9634,38 +9634,38 @@ __sinit_CAnimData_cpp:
|
|||
/* 80031980 0002E8E0 3C A0 80 46 */ lis r5, lbl_8045B140@ha
|
||||
/* 80031984 0002E8E4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80031988 0002E8E8 38 00 00 00 */ li r0, 0
|
||||
/* 8003198C 0002E8EC 3C 60 80 57 */ lis r3, lbl_8056A600@ha
|
||||
/* 8003198C 0002E8EC 3C 60 80 57 */ lis r3, mBoolPOINodes__9CAnimData@ha
|
||||
/* 80031990 0002E8F0 38 84 1C 00 */ addi r4, r4, "__dt__Q24rstl33reserved_vector<12CBoolPOINode,8>Fv"@l
|
||||
/* 80031994 0002E8F4 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80031998 0002E8F8 3B E5 B1 40 */ addi r31, r5, lbl_8045B140@l
|
||||
/* 8003199C 0002E8FC 38 BF 00 00 */ addi r5, r31, 0
|
||||
/* 800319A0 0002E900 94 03 A6 00 */ stwu r0, lbl_8056A600@l(r3)
|
||||
/* 800319A0 0002E900 94 03 A6 00 */ stwu r0, mBoolPOINodes__9CAnimData@l(r3)
|
||||
/* 800319A4 0002E904 48 35 7C E9 */ bl __register_global_object
|
||||
/* 800319A8 0002E908 38 00 00 00 */ li r0, 0
|
||||
/* 800319AC 0002E90C 3C 60 80 57 */ lis r3, lbl_8056BDF4@ha
|
||||
/* 800319AC 0002E90C 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
|
||||
/* 800319B0 0002E910 3C 80 80 03 */ lis r4, "__dt__Q24rstl35reserved_vector<13CInt32POINode,16>Fv"@ha
|
||||
/* 800319B4 0002E914 94 03 BD F4 */ stwu r0, lbl_8056BDF4@l(r3)
|
||||
/* 800319B4 0002E914 94 03 BD F4 */ stwu r0, mInt32POINodes__9CAnimData@l(r3)
|
||||
/* 800319B8 0002E918 38 84 1B 64 */ addi r4, r4, "__dt__Q24rstl35reserved_vector<13CInt32POINode,16>Fv"@l
|
||||
/* 800319BC 0002E91C 38 BF 00 0C */ addi r5, r31, 0xc
|
||||
/* 800319C0 0002E920 48 35 7C CD */ bl __register_global_object
|
||||
/* 800319C4 0002E924 38 00 00 00 */ li r0, 0
|
||||
/* 800319C8 0002E928 3C 60 80 57 */ lis r3, lbl_8056C2B8@ha
|
||||
/* 800319C8 0002E928 3C 60 80 57 */ lis r3, mParticlePOINodes__9CAnimData@ha
|
||||
/* 800319CC 0002E92C 3C 80 80 03 */ lis r4, "__dt__Q24rstl38reserved_vector<16CParticlePOINode,20>Fv"@ha
|
||||
/* 800319D0 0002E930 94 03 C2 B8 */ stwu r0, lbl_8056C2B8@l(r3)
|
||||
/* 800319D0 0002E930 94 03 C2 B8 */ stwu r0, mParticlePOINodes__9CAnimData@l(r3)
|
||||
/* 800319D4 0002E934 38 84 1A C8 */ addi r4, r4, "__dt__Q24rstl38reserved_vector<16CParticlePOINode,20>Fv"@l
|
||||
/* 800319D8 0002E938 38 BF 00 18 */ addi r5, r31, 0x18
|
||||
/* 800319DC 0002E93C 48 35 7C B1 */ bl __register_global_object
|
||||
/* 800319E0 0002E940 38 00 00 00 */ li r0, 0
|
||||
/* 800319E4 0002E944 3C 60 80 57 */ lis r3, lbl_8056C9EC@ha
|
||||
/* 800319E4 0002E944 3C 60 80 57 */ lis r3, mSoundPOINodes__9CAnimData@ha
|
||||
/* 800319E8 0002E948 3C 80 80 03 */ lis r4, "__dt__Q24rstl35reserved_vector<13CSoundPOINode,20>Fv"@ha
|
||||
/* 800319EC 0002E94C 94 03 C9 EC */ stwu r0, lbl_8056C9EC@l(r3)
|
||||
/* 800319EC 0002E94C 94 03 C9 EC */ stwu r0, mSoundPOINodes__9CAnimData@l(r3)
|
||||
/* 800319F0 0002E950 38 84 1A 2C */ addi r4, r4, "__dt__Q24rstl35reserved_vector<13CSoundPOINode,20>Fv"@l
|
||||
/* 800319F4 0002E954 38 BF 00 24 */ addi r5, r31, 0x24
|
||||
/* 800319F8 0002E958 48 35 7C 95 */ bl __register_global_object
|
||||
/* 800319FC 0002E95C 38 00 00 00 */ li r0, 0
|
||||
/* 80031A00 0002E960 3C 60 80 57 */ lis r3, lbl_8056CF40@ha
|
||||
/* 80031A00 0002E960 3C 60 80 57 */ lis r3, sInt32TransientCache@ha
|
||||
/* 80031A04 0002E964 3C 80 80 03 */ lis r4, "__dt__Q24rstl35reserved_vector<13CInt32POINode,16>Fv"@ha
|
||||
/* 80031A08 0002E968 94 03 CF 40 */ stwu r0, lbl_8056CF40@l(r3)
|
||||
/* 80031A08 0002E968 94 03 CF 40 */ stwu r0, sInt32TransientCache@l(r3)
|
||||
/* 80031A0C 0002E96C 38 84 1B 64 */ addi r4, r4, "__dt__Q24rstl35reserved_vector<13CInt32POINode,16>Fv"@l
|
||||
/* 80031A10 0002E970 38 BF 00 30 */ addi r5, r31, 0x30
|
||||
/* 80031A14 0002E974 48 35 7C 79 */ bl __register_global_object
|
||||
|
|
|
@ -868,7 +868,7 @@ lbl_80044370:
|
|||
/* 80044394 000412F4 48 26 E0 5D */ bl GetAudibleFallOff__22CCollisionResponseDataCFv
|
||||
/* 80044398 000412F8 C0 82 85 68 */ lfs f4, lbl_805AA288@sda21(r2)
|
||||
/* 8004439C 000412FC 38 C0 00 00 */ li r6, 0
|
||||
/* 800443A0 00041300 88 A2 CC 40 */ lbz r5, kMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 800443A0 00041300 88 A2 CC 40 */ lbz r5, kkMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 800443A4 00041304 38 E0 00 01 */ li r7, 1
|
||||
/* 800443A8 00041308 88 02 CC 41 */ lbz r0, lbl_805AE961@sda21(r2)
|
||||
/* 800443AC 0004130C 38 80 00 14 */ li r4, 0x14
|
||||
|
|
|
@ -3096,7 +3096,7 @@ UpdateSfxListener__14CCameraManagerFR13CStateManager:
|
|||
/* 8000BA80 000089E0 C0 21 00 78 */ lfs f1, 0x78(r1)
|
||||
/* 8000BA84 000089E4 C0 01 00 88 */ lfs f0, 0x88(r1)
|
||||
/* 8000BA88 000089E8 D1 01 00 08 */ stfs f8, 8(r1)
|
||||
/* 8000BA8C 000089EC 88 E2 CC 40 */ lbz r7, kMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8000BA8C 000089EC 88 E2 CC 40 */ lbz r7, kkMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8000BA90 000089F0 D0 E1 00 0C */ stfs f7, 0xc(r1)
|
||||
/* 8000BA94 000089F4 D0 C1 00 10 */ stfs f6, 0x10(r1)
|
||||
/* 8000BA98 000089F8 D0 A1 00 14 */ stfs f5, 0x14(r1)
|
||||
|
@ -3613,7 +3613,7 @@ __ct__14CCameraManagerF9TUniqueId:
|
|||
/* 8000C190 000090F0 38 E1 00 08 */ addi r7, r1, 8
|
||||
/* 8000C194 000090F4 91 7F 00 80 */ stw r11, 0x80(r31)
|
||||
/* 8000C198 000090F8 38 60 00 01 */ li r3, 1
|
||||
/* 8000C19C 000090FC 89 22 CC 40 */ lbz r9, kMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8000C19C 000090FC 89 22 CC 40 */ lbz r9, kkMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8000C1A0 00009100 39 00 00 01 */ li r8, 1
|
||||
/* 8000C1A4 00009104 91 7F 00 84 */ stw r11, 0x84(r31)
|
||||
/* 8000C1A8 00009108 91 7F 00 88 */ stw r11, 0x88(r31)
|
||||
|
|
|
@ -692,7 +692,7 @@ lbl_8021D938:
|
|||
/* 8021D948 0021A8A8 4B E2 F3 AD */ bl AddObject__13CStateManagerFP7CEntityQ213CStateManager18EScriptPersistence
|
||||
/* 8021D94C 0021A8AC 57 C0 06 3F */ clrlwi. r0, r30, 0x18
|
||||
/* 8021D950 0021A8B0 41 82 00 2C */ beq lbl_8021D97C
|
||||
/* 8021D954 0021A8B4 88 A2 CC 40 */ lbz r5, kMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8021D954 0021A8B4 88 A2 CC 40 */ lbz r5, kkMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8021D958 0021A8B8 7F A4 EB 78 */ mr r4, r29
|
||||
/* 8021D95C 0021A8BC A9 02 C5 FA */ lha r8, lbl_805AE31A@sda21(r2)
|
||||
/* 8021D960 0021A8C0 38 61 00 2C */ addi r3, r1, 0x2c
|
||||
|
|
|
@ -336,7 +336,7 @@ lbl_8022F8D0:
|
|||
/* 8022F8E0 0022C840 4B E1 D4 15 */ bl AddObject__13CStateManagerFP7CEntityQ213CStateManager18EScriptPersistence
|
||||
/* 8022F8E4 0022C844 A0 9E 03 14 */ lhz r4, 0x314(r30)
|
||||
/* 8022F8E8 0022C848 38 61 00 28 */ addi r3, r1, 0x28
|
||||
/* 8022F8EC 0022C84C 88 A2 CC 40 */ lbz r5, kMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8022F8EC 0022C84C 88 A2 CC 40 */ lbz r5, kkMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8022F8F0 0022C850 38 C0 00 40 */ li r6, 0x40
|
||||
/* 8022F8F4 0022C854 A9 02 C5 FA */ lha r8, lbl_805AE31A@sda21(r2)
|
||||
/* 8022F8F8 0022C858 38 E0 00 00 */ li r7, 0
|
||||
|
|
|
@ -4215,7 +4215,7 @@ lbl_8028E914:
|
|||
/* 8028E990 0028B8F0 D0 A1 00 24 */ stfs f5, 0x24(r1)
|
||||
/* 8028E994 0028B8F4 93 E1 00 08 */ stw r31, 8(r1)
|
||||
/* 8028E998 0028B8F8 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 8028E99C 0028B8FC 4B DC 45 95 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager
|
||||
/* 8028E99C 0028B8FC 4B DC 45 95 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb
|
||||
/* 8028E9A0 0028B900 48 00 01 44 */ b lbl_8028EAE4
|
||||
lbl_8028E9A4:
|
||||
/* 8028E9A4 0028B904 80 1E 0B 68 */ lwz r0, 0xb68(r30)
|
||||
|
@ -4300,7 +4300,7 @@ lbl_8028EA70:
|
|||
/* 8028EAD4 0028BA34 D0 81 00 18 */ stfs f4, 0x18(r1)
|
||||
/* 8028EAD8 0028BA38 93 E1 00 08 */ stw r31, 8(r1)
|
||||
/* 8028EADC 0028BA3C 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 8028EAE0 0028BA40 4B DC 44 51 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager
|
||||
/* 8028EAE0 0028BA40 4B DC 44 51 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb
|
||||
lbl_8028EAE4:
|
||||
/* 8028EAE4 0028BA44 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 8028EAE8 0028BA48 83 E1 00 2C */ lwz r31, 0x2c(r1)
|
||||
|
|
|
@ -1193,7 +1193,7 @@ lbl_801DAFD4:
|
|||
/* 801DB038 001D7F98 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 801DB03C 001D7F9C 80 9C 07 60 */ lwz r4, 0x760(r28)
|
||||
/* 801DB040 001D7FA0 81 5D 08 CC */ lwz r10, 0x8cc(r29)
|
||||
/* 801DB044 001D7FA4 4B E7 7E ED */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager
|
||||
/* 801DB044 001D7FA4 4B E7 7E ED */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb
|
||||
lbl_801DB048:
|
||||
/* 801DB048 001D7FA8 E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0
|
||||
/* 801DB04C 001D7FAC CB E1 00 70 */ lfd f31, 0x70(r1)
|
||||
|
@ -3615,7 +3615,7 @@ lbl_801DD1E4:
|
|||
/* 801DD214 001DA174 81 5B 08 CC */ lwz r10, 0x8cc(r27)
|
||||
/* 801DD218 001DA178 38 C0 00 14 */ li r6, 0x14
|
||||
/* 801DD21C 001DA17C 38 E0 00 7F */ li r7, 0x7f
|
||||
/* 801DD220 001DA180 4B E7 5D 11 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager
|
||||
/* 801DD220 001DA180 4B E7 5D 11 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb
|
||||
/* 801DD224 001DA184 7F 43 D3 78 */ mr r3, r26
|
||||
/* 801DD228 001DA188 4B FF F0 A1 */ bl sub_801dc2c8
|
||||
/* 801DD22C 001DA18C 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
|
@ -9093,7 +9093,7 @@ lbl_801E207C:
|
|||
/* 801E20B8 001DF018 38 A0 00 00 */ li r5, 0
|
||||
/* 801E20BC 001DF01C 38 C0 00 14 */ li r6, 0x14
|
||||
/* 801E20C0 001DF020 38 E0 00 7F */ li r7, 0x7f
|
||||
/* 801E20C4 001DF024 4B E7 0E 6D */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager
|
||||
/* 801E20C4 001DF024 4B E7 0E 6D */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb
|
||||
/* 801E20C8 001DF028 48 00 01 08 */ b lbl_801E21D0
|
||||
lbl_801E20CC:
|
||||
/* 801E20CC 001DF02C 93 C1 00 08 */ stw r30, 8(r1)
|
||||
|
@ -9111,7 +9111,7 @@ lbl_801E20CC:
|
|||
/* 801E20FC 001DF05C 81 5E 08 CC */ lwz r10, 0x8cc(r30)
|
||||
/* 801E2100 001DF060 38 C0 00 14 */ li r6, 0x14
|
||||
/* 801E2104 001DF064 38 E0 00 7F */ li r7, 0x7f
|
||||
/* 801E2108 001DF068 4B E7 0E 29 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager
|
||||
/* 801E2108 001DF068 4B E7 0E 29 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb
|
||||
/* 801E210C 001DF06C 48 00 00 C4 */ b lbl_801E21D0
|
||||
.global lbl_801E2110
|
||||
lbl_801E2110:
|
||||
|
|
|
@ -660,7 +660,7 @@ lbl_80203C9C:
|
|||
/* 80203CE4 00200C44 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 80203CE8 00200C48 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 80203CEC 00200C4C 80 9D 05 D8 */ lwz r4, 0x5d8(r29)
|
||||
/* 80203CF0 00200C50 4B E4 F2 41 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager
|
||||
/* 80203CF0 00200C50 4B E4 F2 41 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb
|
||||
/* 80203CF4 00200C54 88 1D 05 DD */ lbz r0, 0x5dd(r29)
|
||||
/* 80203CF8 00200C58 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80203CFC 00200C5C 41 82 00 2C */ beq lbl_80203D28
|
||||
|
@ -1970,7 +1970,7 @@ lbl_80204EF0:
|
|||
/* 80204FB8 00201F18 D0 81 00 2C */ stfs f4, 0x2c(r1)
|
||||
/* 80204FBC 00201F1C 93 E1 00 08 */ stw r31, 8(r1)
|
||||
/* 80204FC0 00201F20 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 80204FC4 00201F24 4B E4 DF 6D */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager
|
||||
/* 80204FC4 00201F24 4B E4 DF 6D */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb
|
||||
lbl_80204FC8:
|
||||
/* 80204FC8 00201F28 80 1E 05 74 */ lwz r0, 0x574(r30)
|
||||
/* 80204FCC 00201F2C 2C 00 00 01 */ cmpwi r0, 1
|
||||
|
@ -2589,7 +2589,7 @@ lbl_80205874:
|
|||
/* 802058BC 0020281C 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 802058C0 00202820 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 802058C4 00202824 80 9F 05 D4 */ lwz r4, 0x5d4(r31)
|
||||
/* 802058C8 00202828 4B E4 D6 69 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManager
|
||||
/* 802058C8 00202828 4B E4 D6 69 */ bl ProcessSoundEvent__6CActorFififfUcUcRC9CVector3fRC9CVector3fiR13CStateManagerb
|
||||
/* 802058CC 0020282C 48 00 02 40 */ b lbl_80205B0C
|
||||
lbl_802058D0:
|
||||
/* 802058D0 00202830 A0 12 00 00 */ lhz r0, 0(r18)
|
||||
|
|
|
@ -167,9 +167,9 @@ UpdateEffects__17CWallCrawlerSwarmFR13CStateManagerR9CAnimData:
|
|||
/* 801E7578 001E44D8 F3 A1 00 88 */ psq_st f29, 136(r1), 0, qr0
|
||||
/* 801E757C 001E44DC BE E1 00 5C */ stmw r23, 0x5c(r1)
|
||||
/* 801E7580 001E44E0 7C B9 2B 78 */ mr r25, r5
|
||||
/* 801E7584 001E44E4 3C A0 80 57 */ lis r5, lbl_8056C9EC@ha
|
||||
/* 801E7584 001E44E4 3C A0 80 57 */ lis r5, mSoundPOINodes__9CAnimData@ha
|
||||
/* 801E7588 001E44E8 83 79 02 18 */ lwz r27, 0x218(r25)
|
||||
/* 801E758C 001E44EC 38 A5 C9 EC */ addi r5, r5, lbl_8056C9EC@l
|
||||
/* 801E758C 001E44EC 38 A5 C9 EC */ addi r5, r5, mSoundPOINodes__9CAnimData@l
|
||||
/* 801E7590 001E44F0 90 C1 00 08 */ stw r6, 8(r1)
|
||||
/* 801E7594 001E44F4 7C 77 1B 78 */ mr r23, r3
|
||||
/* 801E7598 001E44F8 2C 1B 00 00 */ cmpwi r27, 0
|
||||
|
|
|
@ -1267,9 +1267,9 @@ DoUserAnimEvents__11CGrappleArmFR13CStateManager:
|
|||
/* 8011E3A0 0011B300 83 A5 00 04 */ lwz r29, 4(r5)
|
||||
/* 8011E3A4 0011B304 4B EE D7 75 */ bl GetCurrentCamera__14CCameraManagerCFR13CStateManager
|
||||
/* 8011E3A8 0011B308 C0 BE 02 4C */ lfs f5, 0x24c(r30)
|
||||
/* 8011E3AC 0011B30C 3C 80 80 57 */ lis r4, lbl_8056C9EC@ha
|
||||
/* 8011E3AC 0011B30C 3C 80 80 57 */ lis r4, mSoundPOINodes__9CAnimData@ha
|
||||
/* 8011E3B0 0011B310 C0 9E 02 3C */ lfs f4, 0x23c(r30)
|
||||
/* 8011E3B4 0011B314 38 84 C9 EC */ addi r4, r4, lbl_8056C9EC@l
|
||||
/* 8011E3B4 0011B314 38 84 C9 EC */ addi r4, r4, mSoundPOINodes__9CAnimData@l
|
||||
/* 8011E3B8 0011B318 C0 7E 02 2C */ lfs f3, 0x22c(r30)
|
||||
/* 8011E3BC 0011B31C 3B 84 00 04 */ addi r28, r4, 4
|
||||
/* 8011E3C0 0011B320 D0 61 00 24 */ stfs f3, 0x24(r1)
|
||||
|
@ -1303,7 +1303,7 @@ lbl_8011E408:
|
|||
/* 8011E42C 0011B38C 40 82 00 44 */ bne lbl_8011E470
|
||||
lbl_8011E430:
|
||||
/* 8011E430 0011B390 38 01 00 24 */ addi r0, r1, 0x24
|
||||
/* 8011E434 0011B394 89 22 CC 40 */ lbz r9, kMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8011E434 0011B394 89 22 CC 40 */ lbz r9, kkMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8011E438 0011B398 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 8011E43C 0011B39C 38 7E 03 4C */ addi r3, r30, 0x34c
|
||||
/* 8011E440 0011B3A0 38 9E 03 AC */ addi r4, r30, 0x3ac
|
||||
|
@ -1326,8 +1326,8 @@ lbl_8011E478:
|
|||
/* 8011E47C 0011B3DC 41 80 FF 8C */ blt lbl_8011E408
|
||||
lbl_8011E480:
|
||||
/* 8011E480 0011B3E0 80 9E 00 10 */ lwz r4, 0x10(r30)
|
||||
/* 8011E484 0011B3E4 3C 60 80 57 */ lis r3, lbl_8056BDF4@ha
|
||||
/* 8011E488 0011B3E8 38 63 BD F4 */ addi r3, r3, lbl_8056BDF4@l
|
||||
/* 8011E484 0011B3E4 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
|
||||
/* 8011E488 0011B3E8 38 63 BD F4 */ addi r3, r3, mInt32POINodes__9CAnimData@l
|
||||
/* 8011E48C 0011B3EC 83 44 02 10 */ lwz r26, 0x210(r4)
|
||||
/* 8011E490 0011B3F0 3B 83 00 04 */ addi r28, r3, 4
|
||||
/* 8011E494 0011B3F4 2C 1A 00 00 */ cmpwi r26, 0
|
||||
|
@ -1368,7 +1368,7 @@ lbl_8011E4FC:
|
|||
/* 8011E510 0011B470 38 9E 03 AC */ addi r4, r30, 0x3ac
|
||||
/* 8011E514 0011B474 93 A1 00 0C */ stw r29, 0xc(r1)
|
||||
/* 8011E518 0011B478 39 41 00 18 */ addi r10, r1, 0x18
|
||||
/* 8011E51C 0011B47C 89 22 CC 40 */ lbz r9, kMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8011E51C 0011B47C 89 22 CC 40 */ lbz r9, kkMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8011E520 0011B480 38 A0 00 00 */ li r5, 0
|
||||
/* 8011E524 0011B484 93 E1 00 10 */ stw r31, 0x10(r1)
|
||||
/* 8011E528 0011B488 39 00 00 14 */ li r8, 0x14
|
||||
|
|
|
@ -2286,9 +2286,9 @@ DoUserAnimEvents__10CPlayerGunFfR13CStateManager:
|
|||
/* 8003C134 00039094 80 64 08 70 */ lwz r3, 0x870(r4)
|
||||
/* 8003C138 00039098 4B FC F9 E1 */ bl GetCurrentCamera__14CCameraManagerCFR13CStateManager
|
||||
/* 8003C13C 0003909C C0 BE 04 14 */ lfs f5, 0x414(r30)
|
||||
/* 8003C140 000390A0 3C 80 80 57 */ lis r4, lbl_8056C9EC@ha
|
||||
/* 8003C140 000390A0 3C 80 80 57 */ lis r4, mSoundPOINodes__9CAnimData@ha
|
||||
/* 8003C144 000390A4 C0 9E 04 04 */ lfs f4, 0x404(r30)
|
||||
/* 8003C148 000390A8 38 84 C9 EC */ addi r4, r4, lbl_8056C9EC@l
|
||||
/* 8003C148 000390A8 38 84 C9 EC */ addi r4, r4, mSoundPOINodes__9CAnimData@l
|
||||
/* 8003C14C 000390AC C0 7E 03 F4 */ lfs f3, 0x3f4(r30)
|
||||
/* 8003C150 000390B0 3B 64 00 04 */ addi r27, r4, 4
|
||||
/* 8003C154 000390B4 D0 61 00 24 */ stfs f3, 0x24(r1)
|
||||
|
@ -2320,7 +2320,7 @@ lbl_8003C198:
|
|||
/* 8003C1B8 00039118 40 82 00 44 */ bne lbl_8003C1FC
|
||||
lbl_8003C1BC:
|
||||
/* 8003C1BC 0003911C 38 01 00 24 */ addi r0, r1, 0x24
|
||||
/* 8003C1C0 00039120 89 22 CC 40 */ lbz r9, kMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8003C1C0 00039120 89 22 CC 40 */ lbz r9, kkMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8003C1C4 00039124 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 8003C1C8 00039128 38 7E 06 70 */ addi r3, r30, 0x670
|
||||
/* 8003C1CC 0003912C 38 9E 03 28 */ addi r4, r30, 0x328
|
||||
|
@ -2343,8 +2343,8 @@ lbl_8003C204:
|
|||
/* 8003C208 00039168 41 80 FF 90 */ blt lbl_8003C198
|
||||
lbl_8003C20C:
|
||||
/* 8003C20C 0003916C 83 3C 02 10 */ lwz r25, 0x210(r28)
|
||||
/* 8003C210 00039170 3C 60 80 57 */ lis r3, lbl_8056BDF4@ha
|
||||
/* 8003C214 00039174 38 63 BD F4 */ addi r3, r3, lbl_8056BDF4@l
|
||||
/* 8003C210 00039170 3C 60 80 57 */ lis r3, mInt32POINodes__9CAnimData@ha
|
||||
/* 8003C214 00039174 38 63 BD F4 */ addi r3, r3, mInt32POINodes__9CAnimData@l
|
||||
/* 8003C218 00039178 2C 19 00 00 */ cmpwi r25, 0
|
||||
/* 8003C21C 0003917C 3B 63 00 04 */ addi r27, r3, 4
|
||||
/* 8003C220 00039180 40 81 00 B4 */ ble lbl_8003C2D4
|
||||
|
@ -2384,7 +2384,7 @@ lbl_8003C284:
|
|||
/* 8003C298 000391F8 38 9E 03 28 */ addi r4, r30, 0x328
|
||||
/* 8003C29C 000391FC 93 A1 00 0C */ stw r29, 0xc(r1)
|
||||
/* 8003C2A0 00039200 39 41 00 18 */ addi r10, r1, 0x18
|
||||
/* 8003C2A4 00039204 89 22 CC 40 */ lbz r9, kMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8003C2A4 00039204 89 22 CC 40 */ lbz r9, kkMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 8003C2A8 00039208 38 A0 00 00 */ li r5, 0
|
||||
/* 8003C2AC 0003920C 93 E1 00 10 */ stw r31, 0x10(r1)
|
||||
/* 8003C2B0 00039210 39 00 00 14 */ li r8, 0x14
|
||||
|
|
|
@ -187,7 +187,7 @@ PlayImpactSound__17CEnergyProjectileFRC9CVector3f29EWeaponCollisionResponseTypes
|
|||
/* 80213CC4 00210C24 48 09 B4 9D */ bl GetAudibleFallOff__17CProjectileWeaponCFv
|
||||
/* 80213CC8 00210C28 C0 82 B3 10 */ lfs f4, lbl_805AD030@sda21(r2)
|
||||
/* 80213CCC 00210C2C 38 C0 00 00 */ li r6, 0
|
||||
/* 80213CD0 00210C30 88 A2 CC 40 */ lbz r5, kMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 80213CD0 00210C30 88 A2 CC 40 */ lbz r5, kkMaxVolume__9CAudioSys@sda21(r2)
|
||||
/* 80213CD4 00210C34 38 E0 00 01 */ li r7, 1
|
||||
/* 80213CD8 00210C38 88 02 CC 41 */ lbz r0, lbl_805AE961@sda21(r2)
|
||||
/* 80213CDC 00210C3C 38 80 00 14 */ li r4, 0x14
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
class CAudioSys {
|
||||
public:
|
||||
static const u8 kMaxVolume;
|
||||
static const u8 kkMaxVolume;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -4,6 +4,9 @@
|
|||
#include "types.h"
|
||||
|
||||
class CQuaternion {
|
||||
public:
|
||||
CQuaternion(f32 w, f32 x, f32 y, f32 z) : w(w), x(x), y(y), z(z) {}
|
||||
|
||||
private:
|
||||
f32 w;
|
||||
f32 x;
|
||||
|
|
|
@ -14,6 +14,8 @@ public:
|
|||
explicit CVector3f(f32 x, f32 y, f32 z) : mX(x), mY(y), mZ(z) {}
|
||||
CVector3f(const CVector2f& v, f32 z) : mX(v.GetX()), mY(v.GetY()), mZ(z) {}
|
||||
|
||||
CVector3f(const CVector3f& other) : mX(other.mX), mY(other.mY), mZ(other.mZ) {}
|
||||
|
||||
CVector3f(CInputStream& in);
|
||||
void PutTo(COutputStream& out) const;
|
||||
|
||||
|
|
|
@ -31,6 +31,9 @@ public:
|
|||
TCachedToken() {}
|
||||
TCachedToken(const CToken& token) : TToken(token), x8_item(nullptr) {}
|
||||
|
||||
// TODO
|
||||
operator const TToken< T >&() const;
|
||||
|
||||
private:
|
||||
T* x8_item;
|
||||
};
|
||||
|
@ -40,6 +43,9 @@ class TLockedToken : public TCachedToken< T > {
|
|||
public:
|
||||
TLockedToken() {}
|
||||
TLockedToken(const CToken& token) : TCachedToken(token) { Lock(); }
|
||||
|
||||
// TODO
|
||||
operator const TToken< T >&() const;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -7,31 +7,192 @@
|
|||
#include "Collision/CMaterialList.hpp"
|
||||
|
||||
#include "MetroidPrime/CEntity.hpp"
|
||||
#include "MetroidPrime/CModelData.hpp"
|
||||
#include "MetroidPrime/CModelFlags.hpp"
|
||||
#include "MetroidPrime/CSfxHandle.hpp"
|
||||
|
||||
#include "Kyoto/Graphics/CColor.hpp"
|
||||
#include "Kyoto/Math/CAABox.hpp"
|
||||
#include "Kyoto/Math/CTransform4f.hpp"
|
||||
#include "Kyoto/Math/CQuaternion.hpp"
|
||||
#include "Kyoto/TToken.hpp"
|
||||
|
||||
#include "rstl/optional_object.hpp"
|
||||
#include "rstl/pair.hpp"
|
||||
#include "rstl/reserved_vector.hpp"
|
||||
#include "rstl/single_ptr.hpp"
|
||||
|
||||
class CActorLights;
|
||||
class CActorParameters;
|
||||
class CModelData;
|
||||
class CScannableObjectInfo;
|
||||
class CSimpleShadow;
|
||||
|
||||
// TODO move
|
||||
struct SAdvancementDeltas {
|
||||
CVector3f x0_posDelta;
|
||||
CQuaternion xc_rotDelta;
|
||||
class CDamageInfo;
|
||||
class CDamageVulnerability;
|
||||
class CFrustum;
|
||||
class CHealthInfo;
|
||||
class CScriptWater;
|
||||
class CWeaponMode;
|
||||
class CInt32POINode;
|
||||
|
||||
enum EWeaponCollisionResponseTypes {
|
||||
kWCR_None,
|
||||
kWCR_Default,
|
||||
kWCR_Unknown2,
|
||||
kWCR_Metal,
|
||||
kWCR_Grass,
|
||||
kWCR_Ice,
|
||||
kWCR_Goo,
|
||||
kWCR_Wood,
|
||||
kWCR_Water,
|
||||
kWCR_Mud,
|
||||
kWCR_Lava,
|
||||
kWCR_Sand,
|
||||
kWCR_Projectile,
|
||||
kWCR_OtherProjectile,
|
||||
kWCR_Unknown14,
|
||||
kWCR_Unknown15,
|
||||
kWCR_EnemyNormal,
|
||||
kWCR_EnemySpecial,
|
||||
kWCR_EnemyShielded,
|
||||
kWCR_Unknown19,
|
||||
kWCR_Unknown20,
|
||||
kWCR_Unknown21,
|
||||
kWCR_Unknown22,
|
||||
kWCR_Unknown23,
|
||||
kWCR_Unknown24,
|
||||
kWCR_Unknown25,
|
||||
kWCR_Unknown26,
|
||||
kWCR_Unknown27,
|
||||
kWCR_Unknown28,
|
||||
kWCR_Unknown29,
|
||||
kWCR_Unknown30,
|
||||
kWCR_Unknown31,
|
||||
kWCR_Unknown32,
|
||||
kWCR_Unknown33,
|
||||
kWCR_Unknown34,
|
||||
kWCR_Unknown35,
|
||||
kWCR_Unknown36,
|
||||
kWCR_Unknown37,
|
||||
kWCR_ChozoGhost,
|
||||
kWCR_Unknown39,
|
||||
kWCR_Unknown40,
|
||||
kWCR_Unknown41,
|
||||
kWCR_AtomicBeta,
|
||||
kWCR_AtomicAlpha,
|
||||
kWCR_Unknown44,
|
||||
kWCR_Unknown45,
|
||||
kWCR_Unknown46,
|
||||
kWCR_Unknown47,
|
||||
kWCR_Unknown48,
|
||||
kWCR_Unknown49,
|
||||
kWCR_Unknown50,
|
||||
kWCR_Unknown51,
|
||||
kWCR_Unknown52,
|
||||
kWCR_Unknown53,
|
||||
kWCR_Unknown54,
|
||||
kWCR_Unknown55,
|
||||
kWCR_Unknown56,
|
||||
kWCR_Unknown57,
|
||||
kWCR_Unknown58,
|
||||
kWCR_Unknown59,
|
||||
kWCR_Unknown60,
|
||||
kWCR_Unknown61,
|
||||
kWCR_Unknown62,
|
||||
kWCR_Unknown63,
|
||||
kWCR_Unknown64,
|
||||
kWCR_Unknown65,
|
||||
kWCR_Unknown66,
|
||||
kWCR_Unknown67,
|
||||
kWCR_Unknown68,
|
||||
kWCR_Unknown69,
|
||||
kWCR_Unknown70,
|
||||
kWCR_Unknown71,
|
||||
kWCR_Unknown72,
|
||||
kWCR_Unknown73,
|
||||
kWCR_Unknown74,
|
||||
kWCR_Unknown75,
|
||||
kWCR_Unknown76,
|
||||
kWCR_Unknown77,
|
||||
kWCR_Unknown78,
|
||||
kWCR_Unknown79,
|
||||
kWCR_Unknown80,
|
||||
kWCR_Unknown81,
|
||||
kWCR_Unknown82,
|
||||
kWCR_Unknown83,
|
||||
kWCR_Unknown84,
|
||||
kWCR_Unknown85,
|
||||
kWCR_Unknown86,
|
||||
kWCR_Unknown87,
|
||||
kWCR_Unknown88,
|
||||
kWCR_Unknown89,
|
||||
kWCR_Unknown90,
|
||||
kWCR_Unknown91,
|
||||
kWCR_AtomicBetaReflect,
|
||||
kWCR_AtomicAlphaReflect,
|
||||
};
|
||||
CHECK_SIZEOF(SAdvancementDeltas, 0x1c)
|
||||
enum EProjectileAttrib {
|
||||
kPA_None = 0,
|
||||
kPA_PartialCharge = (1 << 0),
|
||||
kPA_PlasmaProjectile = (1 << 1),
|
||||
kPA_Charged = (1 << 2),
|
||||
kPA_Ice = (1 << 3),
|
||||
kPA_Wave = (1 << 4),
|
||||
kPA_Plasma = (1 << 5),
|
||||
kPA_Phazon = (1 << 6),
|
||||
kPA_ComboShot = (1 << 7),
|
||||
kPA_Bombs = (1 << 8),
|
||||
kPA_PowerBombs = (1 << 9),
|
||||
kPA_BigProjectile = (1 << 10),
|
||||
kPA_ArmCannon = (1 << 11),
|
||||
kPA_BigStrike = (1 << 12),
|
||||
kPA_DamageFalloff = (1 << 13),
|
||||
kPA_StaticInterference = (1 << 14),
|
||||
kPA_PlayerUnFreeze = (1 << 15),
|
||||
kPA_ParticleOPTS = (1 << 16),
|
||||
kPA_KeepInCinematic = (1 << 17),
|
||||
};
|
||||
enum EUserEventType {
|
||||
kUE_Projectile = 0,
|
||||
kUE_EggLay = 1,
|
||||
kUE_LoopedSoundStop = 2,
|
||||
kUE_AlignTargetPos = 3,
|
||||
kUE_AlignTargetRot = 4,
|
||||
kUE_ChangeMaterial = 5,
|
||||
kUE_Delete = 6,
|
||||
kUE_GenerateEnd = 7,
|
||||
kUE_DamageOn = 8,
|
||||
kUE_DamageOff = 9,
|
||||
kUE_AlignTargetPosStart = 10,
|
||||
kUE_DeGenerate = 11,
|
||||
kUE_Landing = 12,
|
||||
kUE_TakeOff = 13,
|
||||
kUE_FadeIn = 14,
|
||||
kUE_FadeOut = 15,
|
||||
kUE_ScreenShake = 16,
|
||||
kUE_BeginAction = 17,
|
||||
kUE_EndAction = 18,
|
||||
kUE_BecomeRagDoll = 19,
|
||||
kUE_IkLock = 20,
|
||||
kUE_IkRelease = 21,
|
||||
kUE_BreakLockOn = 22,
|
||||
kUE_BecomeShootThrough = 23,
|
||||
kUE_RemoveCollision = 24,
|
||||
kUE_ObjectPickUp = 25,
|
||||
kUE_ObjectDrop = 26,
|
||||
kUE_EventStart = 27,
|
||||
kUE_EventStop = 28,
|
||||
kUE_Activate = 29,
|
||||
kUE_Deactivate = 30,
|
||||
kUE_SoundPlay = 31,
|
||||
kUE_SoundStop = 32,
|
||||
kUE_EffectOn = 33,
|
||||
kUE_EffectOff = 34,
|
||||
};
|
||||
|
||||
// class CBoolPOINode;
|
||||
// class CInt32POINode;
|
||||
// class CParticlePOINode;
|
||||
// class CSoundPOINode;
|
||||
|
||||
class CActor : public CEntity {
|
||||
public:
|
||||
|
@ -40,17 +201,67 @@ public:
|
|||
kTF_Cold = 1,
|
||||
kTF_Hot = 2,
|
||||
};
|
||||
enum EFluidState {
|
||||
kFS_EnteredFluid,
|
||||
kFS_InFluid,
|
||||
kFS_LeftFluid,
|
||||
};
|
||||
enum EScanState {
|
||||
kSS_Start,
|
||||
kSS_Processing,
|
||||
kSS_Done,
|
||||
};
|
||||
|
||||
CActor(TUniqueId uid, bool active, const rstl::string& name, const CEntityInfo& info, const CTransform4f& xf, const CModelData& mData,
|
||||
const CMaterialList& list, const CActorParameters& params, TUniqueId nextDrawNode);
|
||||
~CActor();
|
||||
|
||||
virtual void PreRender(CStateManager&, const CFrustum&);
|
||||
virtual void AddToRenderer(const CFrustum&, CStateManager&);
|
||||
virtual void Render(CStateManager&);
|
||||
virtual bool CanRenderUnsorted(const CStateManager&) const;
|
||||
virtual void CalculateRenderBounds();
|
||||
virtual CHealthInfo* HealthInfo(CStateManager&);
|
||||
virtual const CDamageVulnerability* GetDamageVulnerability() const;
|
||||
virtual const CDamageVulnerability* GetDamageVulnerability(const CVector3f&, const CVector3f&, const CDamageInfo&) const;
|
||||
virtual rstl::optional_object< CAABox > GetTouchBounds() const;
|
||||
virtual void Touch(CActor&, CStateManager&);
|
||||
virtual CVector3f GetOrbitPosition(const CStateManager&) const;
|
||||
virtual CVector3f GetAimPosition(const CStateManager&, float) const;
|
||||
virtual CVector3f GetHomingPosition(const CStateManager&, float) const;
|
||||
virtual CVector3f GetScanObjectIndicatorPosition(const CStateManager&) const;
|
||||
virtual EWeaponCollisionResponseTypes GetCollisionResponseType(const CVector3f&, const CVector3f&, const CWeaponMode&,
|
||||
EProjectileAttrib) const;
|
||||
virtual void FluidFXThink(EFluidState, CScriptWater&, CStateManager&);
|
||||
virtual void OnScanStateChanged(EScanState, CStateManager&);
|
||||
virtual CAABox GetSortingBounds(const CStateManager&) const;
|
||||
virtual void DoUserAnimEvent(CStateManager&, const CInt32POINode&, EUserEventType, float dt);
|
||||
|
||||
SAdvancementDeltas UpdateAnimation(float dt, CStateManager& mgr, bool advTree);
|
||||
|
||||
void ProcessSoundEvent(s32 sfxId, f32 weight, s32 flags, f32 fallOff, f32 maxDist, u8 minVol, u8 maxVol, const CVector3f& toListener,
|
||||
const CVector3f& position, s32 aid, CStateManager& mgr, bool translateId);
|
||||
|
||||
void UpdateSfxEmitters();
|
||||
void RemoveEmitter();
|
||||
|
||||
const CTransform4f& GetTransform() const { return x34_transform; }
|
||||
CVector3f GetTranslation() const { return x34_transform.GetTranslation(); }
|
||||
bool GetMuted() const { return xe5_26_muted; }
|
||||
bool HasAnimation() const { return x64_modelData && x64_modelData->GetAnimationData(); }
|
||||
|
||||
// const CBoolPOINode* GetBoolPOIList(s32& count) {
|
||||
// return HasAnimation() ? x64_modelData->GetAnimationData()->GetBoolPOIList(count) : nullptr;
|
||||
// }
|
||||
// const CInt32POINode* GetInt32POIList(s32& count) {
|
||||
// return HasAnimation() ? x64_modelData->GetAnimationData()->GetInt32POIList(count) : nullptr;
|
||||
// }
|
||||
// const CParticlePOINode* GetParticlePOIList(s32& count) {
|
||||
// return HasAnimation() ? x64_modelData->GetAnimationData()->GetParticlePOIList(count) : nullptr;
|
||||
// }
|
||||
// const CSoundPOINode* GetSoundPOIList(s32& count) {
|
||||
// return HasAnimation() ? x64_modelData->GetAnimationData()->GetSoundPOIList(count) : nullptr;
|
||||
// }
|
||||
|
||||
protected:
|
||||
CTransform4f x34_transform;
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
#ifndef _CADDITIVEANIMPLAYBACK_HPP
|
||||
#define _CADDITIVEANIMPLAYBACK_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "rstl/rc_ptr.hpp"
|
||||
|
||||
class CAnimTreeNode;
|
||||
|
||||
class CAdditiveAnimationInfo {
|
||||
private:
|
||||
f32 x0_fadeInDur;
|
||||
f32 x4_fadeOutDur;
|
||||
};
|
||||
|
||||
class CAdditiveAnimPlayback {
|
||||
public:
|
||||
enum EPlaybackPhase {
|
||||
kPP_None,
|
||||
kPP_FadingIn,
|
||||
kPP_FadingOut,
|
||||
kPP_FadedIn,
|
||||
kPP_FadedOut,
|
||||
};
|
||||
|
||||
private:
|
||||
CAdditiveAnimationInfo x0_info;
|
||||
rstl::ncrc_ptr< CAnimTreeNode > x8_anim;
|
||||
f32 xc_targetWeight;
|
||||
f32 x10_curWeight;
|
||||
bool x14_active;
|
||||
f32 x18_weightTimer;
|
||||
EPlaybackPhase x1c_phase;
|
||||
bool x20_needsFadeOut;
|
||||
};
|
||||
CHECK_SIZEOF(CAdditiveAnimPlayback, 0x24)
|
||||
|
||||
#endif
|
|
@ -3,8 +3,198 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
#include "MetroidPrime/CAdditiveAnimPlayback.hpp"
|
||||
#include "MetroidPrime/CAnimPlaybackParms.hpp"
|
||||
#include "MetroidPrime/CCharacterInfo.hpp"
|
||||
#include "MetroidPrime/CHierarchyPoseBuilder.hpp"
|
||||
#include "MetroidPrime/CPOINode.hpp"
|
||||
#include "MetroidPrime/CParticleDatabase.hpp"
|
||||
#include "MetroidPrime/CPoseAsTransforms.hpp"
|
||||
|
||||
#include "Kyoto/TToken.hpp"
|
||||
|
||||
#include "rstl/reserved_vector.hpp"
|
||||
|
||||
class CAnimationManager;
|
||||
class CAnimSysContext;
|
||||
class CAnimTreeNode;
|
||||
class CCharacterFactory;
|
||||
class CCharLayoutInfo;
|
||||
class CSkinnedModel;
|
||||
class CSkinnedModelWithAvgNormals;
|
||||
class CTransitionManager;
|
||||
|
||||
class CAnimData {
|
||||
// TODO
|
||||
public:
|
||||
enum EAnimDir {
|
||||
kAD_Forward,
|
||||
kAD_Backward,
|
||||
};
|
||||
|
||||
void SetParticleEffectState(const rstl::string& name, bool active, CStateManager& mgr) {
|
||||
x120_particleDB.SetParticleEffectState(name, active, mgr);
|
||||
}
|
||||
|
||||
s32 GetCharacterIndex() const { return x204_charIdx; }
|
||||
|
||||
const CBoolPOINode* GetBoolPOIList(s32& count) {
|
||||
count = x20c_passedBoolCount;
|
||||
return mBoolPOINodes.data();
|
||||
}
|
||||
const CInt32POINode* GetInt32POIList(s32& count) {
|
||||
count = x210_passedIntCount;
|
||||
return mInt32POINodes.data();
|
||||
}
|
||||
const CParticlePOINode* GetParticlePOIList(s32& count) {
|
||||
count = x214_passedParticleCount;
|
||||
return mParticlePOINodes.data();
|
||||
}
|
||||
const CSoundPOINode* GetSoundPOIList(s32& count) {
|
||||
count = x218_passedSoundCount;
|
||||
return mSoundPOINodes.data();
|
||||
}
|
||||
|
||||
// SetIsAnimating__9CAnimDataFb
|
||||
// SetAnimDir__9CAnimDataFQ29CAnimData8EAnimDir
|
||||
// GetBoundingBox__9CAnimDataCFv
|
||||
// GetBoundingBox__9CAnimDataCFRC12CTransform4f
|
||||
// GetLocatorSegId__9CAnimDataCFRCQ24rstl66basic_string
|
||||
// ResetPOILists__9CAnimDataFv
|
||||
// GetAverageVelocity__9CAnimDataCFi
|
||||
// AdvanceParticles__9CAnimDataFRC12CTransform4ffRC9CVector3fR13CStateManager
|
||||
// PoseSkinnedModel__9CAnimDataCFRC13CSkinnedModelRC17CPoseAsTransformsRCQ24rstl37optional_object<18CVertexMorphEffect>PCf
|
||||
// DrawSkinnedModel__9CAnimDataCFRC13CSkinnedModelRC11CModelFlags
|
||||
// InitializeCache__9CAnimDataFv
|
||||
// FreeCache__9CAnimDataFv
|
||||
// SetInfraModel__9CAnimDataFRC21TLockedToken<6CModel>RC26TLockedToken<10CSkinRules>
|
||||
// SetXRayModel__9CAnimDataFRC21TLockedToken<6CModel>RC26TLockedToken<10CSkinRules>
|
||||
// AdvanceAnim__9CAnimDataFR13CCharAnimTimeR9CVector3fR11CQuaternion
|
||||
// AdvanceIgnoreParticles__9CAnimDataFfR9CRandom16b
|
||||
// Advance__9CAnimDataFfRC9CVector3fR13CStateManagerb
|
||||
// DoAdvance__9CAnimDataFfRbR9CRandom16b
|
||||
// SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
|
||||
// GetAnimationPrimitives__9CAnimDataCFRC18CAnimPlaybackParmsRQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>
|
||||
// PrimitiveSetToTokenVector__9CAnimDataFRCQ24rstl72set<10CPrimitive,Q24rstl18less<10CPrimitive>,Q24rstl17rmemory_allocator>RQ24rstl42vector<6CToken,Q24rstl17rmemory_allocator>b
|
||||
// BuildPose__9CAnimDataFv
|
||||
// PreRender__9CAnimDataFv
|
||||
// SetupRender__9CAnimDataCFRC13CSkinnedModelRCQ24rstl37optional_object<18CVertexMorphEffect>PCf
|
||||
// Render__9CAnimDataCFRC13CSkinnedModelRC11CModelFlagsRCQ24rstl37optional_object<18CVertexMorphEffect>PCf
|
||||
// RenderAuxiliary__9CAnimDataCFRC14CFrustumPlanes
|
||||
// RecalcPoseBuilder__9CAnimDataCFPC13CCharAnimTime
|
||||
// GetAnimationDuration__9CAnimDataCFi
|
||||
// GetAnimTimeRemaining__9CAnimDataCFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>
|
||||
// IsAnimTimeRemaining__9CAnimDataCFfRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>
|
||||
// GetLocatorTransform__9CAnimDataCFRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>PC13CCharAnimTime
|
||||
// GetLocatorTransform__9CAnimDataCF6CSegIdPC13CCharAnimTime
|
||||
// CalcPlaybackAlignmentParms__9CAnimDataFRC18CAnimPlaybackParmsRCQ24rstl25ncrc_ptr<13CAnimTreeNode>
|
||||
// SetRandomPlaybackRate__9CAnimDataFR9CRandom16
|
||||
// SetPlaybackRate__9CAnimDataFf
|
||||
// MultiplyPlaybackRate__9CAnimDataFf
|
||||
// GetTimeOfUserEvent__9CAnimDataCF14EUserEventTypeRC13CCharAnimTime
|
||||
// GetAdvancementDeltas__9CAnimDataCFRC13CCharAnimTimeRC13CCharAnimTime
|
||||
// Touch__9CAnimDataCFRC13CSkinnedModeli
|
||||
// InitializeEffects__9CAnimDataFR13CStateManagerRC9CVector3f
|
||||
// SetPhase__9CAnimDataFf -> SetPhase__11IAnimReaderFf
|
||||
// AddAdditiveAnimation__9CAnimDataFUifbb
|
||||
// DelAdditiveAnimation__9CAnimDataFUi
|
||||
// IsAdditiveAnimationActive__9CAnimDataCFUi
|
||||
// GetAdditiveAnimationTree__9CAnimDataCFUi
|
||||
// GetAnimationTree__9CAnimDataCFv
|
||||
// AnimationTree__9CAnimDataFv
|
||||
// IsAdditiveAnimation__9CAnimDataCFUi
|
||||
// UpdateAdditiveAnims__9CAnimDataFf
|
||||
// AdvanceAdditiveAnims__9CAnimDataFf
|
||||
// AddAdditiveSegData__9CAnimDataCFRC10CSegIdListR16CSegStatementSet
|
||||
// GetEventResourceIdForAnimResourceId__9CAnimDataCFi
|
||||
// GetAnimationManager__9CAnimDataFv
|
||||
// SetPoseValid__9CAnimDataFb
|
||||
|
||||
// GetCharacterInfo__9CAnimDataCFv
|
||||
// GetCharLayoutInfo__9CAnimDataCFv
|
||||
// GetParticleDB__9CAnimDataFv
|
||||
// GetDeltaRotation__9CAnimDataCFv
|
||||
// GetDeltaOffset__9CAnimDataCFv
|
||||
// IsDeltaOffsetInUse__9CAnimDataCFv
|
||||
// GetAdvancementDeltas__19CAdvancementResultsCFv
|
||||
// SetDeltaRotation__9CAnimDataFRC11CQuaternionb
|
||||
// SetDeltaOffset__9CAnimDataFRC9CVector3fb
|
||||
// SetDeltaOffsetInUse__9CAnimDataFv
|
||||
// IsDeltaRotationInUse__9CAnimDataCFv
|
||||
// IsDeltaOffsetPrimed__9CAnimDataCFv
|
||||
// GetAnimDir__9CAnimDataCFv
|
||||
// GetIsLoop__9CAnimDataCFv
|
||||
// IsAnimating__9CAnimDataCFv
|
||||
// SetPoseBuilderValid__9CAnimDataFb
|
||||
// GetAnimationManager__9CAnimDataCFv
|
||||
// GetPoseValid__9CAnimDataCFv
|
||||
// GetPoseBuilderValid__9CAnimDataCFv
|
||||
// GetParticleDB__9CAnimDataCFv
|
||||
// GetAnimSysContext__9CAnimDataCFv
|
||||
// CacheInt32PoiList__9CAnimDataFRC13CCharAnimTimeiRCQ24rstl25ncrc_ptr<13CAnimTreeNode>
|
||||
|
||||
// GetIceModel__9CAnimDataCFv
|
||||
// GetPASDatabase__9CAnimDataCFv
|
||||
// EnableLooping__9CAnimDataFb
|
||||
// GetCurrentAnimation__9CAnimDataCFv
|
||||
// GetSkinnedModel__9CAnimDataCFv
|
||||
// GetXRayModel__9CAnimDataCFv
|
||||
// GetInfraModel__9CAnimDataCFv
|
||||
// GetPose__9CAnimDataCFv
|
||||
// PoseBuilder__9CAnimDataCFv
|
||||
// GetPlaybackRate__9CAnimDataCFv
|
||||
// Pose__9CAnimDataFv
|
||||
// GetPoseBuilder__9CAnimDataCFv
|
||||
|
||||
// CacheSoundPoiList__9CAnimDataFRCQ24rstl25ncrc_ptr<13CAnimTreeNode>RC13CCharAnimTimei
|
||||
// CacheParticlePoiList__9CAnimDataFRCQ24rstl25ncrc_ptr<13CAnimTreeNode>RC13CCharAnimTimei
|
||||
// CacheBoolPoiList__9CAnimDataFRCQ24rstl25ncrc_ptr<13CAnimTreeNode>RC13CCharAnimTimei
|
||||
// CacheInt32PoiList__9CAnimDataFRCQ24rstl25ncrc_ptr<13CAnimTreeNode>RC13CCharAnimTimei
|
||||
|
||||
private:
|
||||
TLockedToken< CCharacterFactory > x0_charFactory;
|
||||
CCharacterInfo xc_charInfo;
|
||||
TLockedToken< CCharLayoutInfo > xcc_layoutData;
|
||||
TLockedToken< CSkinnedModel > xd8_modelData;
|
||||
rstl::optional_object< TLockedToken< CSkinnedModelWithAvgNormals > > xe4_iceModelData;
|
||||
rstl::rc_ptr< CSkinnedModel > xf4_xrayModel;
|
||||
rstl::rc_ptr< CSkinnedModel > xf8_infraModel;
|
||||
rstl::rc_ptr< CAnimSysContext > xfc_animCtx;
|
||||
rstl::rc_ptr< CAnimationManager > x100_animMgr;
|
||||
EAnimDir x104_animDir;
|
||||
CAABox x108_aabb;
|
||||
CParticleDatabase x120_particleDB;
|
||||
CAssetId x1d8_selfId;
|
||||
CVector3f x1dc_alignPos;
|
||||
CQuaternion x1e8_alignRot;
|
||||
rstl::rc_ptr< CAnimTreeNode > x1f8_animRoot;
|
||||
rstl::rc_ptr< CTransitionManager > x1fc_transMgr;
|
||||
f32 x200_speedScale;
|
||||
s32 x204_charIdx;
|
||||
s32 x208_defaultAnim;
|
||||
u32 x20c_passedBoolCount;
|
||||
u32 x210_passedIntCount;
|
||||
u32 x214_passedParticleCount;
|
||||
u32 x218_passedSoundCount;
|
||||
s32 x21c_particleLightIdx;
|
||||
bool x220_24_animating : 1;
|
||||
bool x220_25_loop : 1;
|
||||
bool x220_26_aligningPos : 1;
|
||||
bool x220_27_ : 1;
|
||||
bool x220_28_ : 1;
|
||||
bool x220_29_animationJustStarted : 1;
|
||||
bool x220_30_poseBuilt : 1;
|
||||
bool x220_31_poseCached : 1;
|
||||
CPoseAsTransforms x224_pose;
|
||||
CHierarchyPoseBuilder x2fc_poseBuilder;
|
||||
CAnimPlaybackParms x40c_playbackParms;
|
||||
rstl::reserved_vector< rstl::pair< s32, CAdditiveAnimPlayback >, 8 > x434_additiveAnims;
|
||||
|
||||
static rstl::reserved_vector< CBoolPOINode, 8 > mBoolPOINodes;
|
||||
static rstl::reserved_vector< CInt32POINode, 16 > mInt32POINodes;
|
||||
static rstl::reserved_vector< CParticlePOINode, 20 > mParticlePOINodes;
|
||||
static rstl::reserved_vector< CSoundPOINode, 20 > mSoundPOINodes;
|
||||
// in cpp -> rstl::reserved_vector< CInt32POINode, 16 > sInt32TransientCache;
|
||||
};
|
||||
CHECK_SIZEOF(CAnimData, 0x434 + 0x144)
|
||||
|
||||
#endif
|
|
@ -0,0 +1,25 @@
|
|||
#ifndef _CANIMPLAYBACKPARMS_HPP
|
||||
#define _CANIMPLAYBACKPARMS_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class CQuaternion;
|
||||
class CTransform4f;
|
||||
class CVector3f;
|
||||
|
||||
class CAnimPlaybackParms {
|
||||
private:
|
||||
s32 x0_animA;
|
||||
s32 x4_animB;
|
||||
f32 x8_blendWeight;
|
||||
bool xc_animating;
|
||||
s32 x10_;
|
||||
CVector3f* x14_targetPos;
|
||||
bool x18_useLocator;
|
||||
CQuaternion* x1c_deltaOrient;
|
||||
CTransform4f* x20_objectXf;
|
||||
CVector3f* x24_objectScale;
|
||||
};
|
||||
CHECK_SIZEOF(CAnimPlaybackParms, 0x28)
|
||||
|
||||
#endif
|
|
@ -0,0 +1,22 @@
|
|||
#ifndef _CCHARANIMTIME_HPP
|
||||
#define _CCHARANIMTIME_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class CCharAnimTime {
|
||||
public:
|
||||
enum EType {
|
||||
kT_NonZero,
|
||||
kT_ZeroIncreasing,
|
||||
kT_ZeroSteady,
|
||||
kT_ZeroDecreasing,
|
||||
kT_Infinity,
|
||||
};
|
||||
|
||||
private:
|
||||
f32 x0_time;
|
||||
EType x4_type;
|
||||
};
|
||||
CHECK_SIZEOF(CCharAnimTime, 0x8)
|
||||
|
||||
#endif
|
|
@ -0,0 +1,44 @@
|
|||
#ifndef _CCHARACTERINFO_HPP
|
||||
#define _CCHARACTERINFO_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "MetroidPrime/CEffectComponent.hpp"
|
||||
#include "MetroidPrime/CPASDatabase.hpp"
|
||||
|
||||
#include "Kyoto/IObjectStore.hpp"
|
||||
#include "Kyoto/Math/CAABox.hpp"
|
||||
|
||||
#include "rstl/pair.hpp"
|
||||
#include "rstl/string.hpp"
|
||||
#include "rstl/vector.hpp"
|
||||
|
||||
class CCharacterInfo {
|
||||
public:
|
||||
class CParticleResData {
|
||||
private:
|
||||
rstl::vector< CAssetId > x0_part;
|
||||
rstl::vector< CAssetId > x10_swhc;
|
||||
rstl::vector< CAssetId > x20_elsc;
|
||||
rstl::vector< CAssetId > x30_elsc;
|
||||
};
|
||||
|
||||
private:
|
||||
u16 x0_tableCount;
|
||||
rstl::string x4_name;
|
||||
CAssetId x14_cmdl;
|
||||
CAssetId x18_cksr;
|
||||
CAssetId x1c_cinf;
|
||||
rstl::vector< rstl::pair< s32, rstl::pair< rstl::string, rstl::string > > > x20_animInfo;
|
||||
CPASDatabase x30_pasDatabase;
|
||||
CParticleResData x44_partRes;
|
||||
u32 x84_unk;
|
||||
rstl::vector< rstl::pair< rstl::string, CAABox > > x88_aabbs;
|
||||
rstl::vector< rstl::pair< rstl::string, rstl::vector< CEffectComponent > > > x98_effects;
|
||||
u32 xa8_cmdlOverlay;
|
||||
u32 xac_cksrOverlay;
|
||||
rstl::vector< s32 > xb0_animIdxs;
|
||||
};
|
||||
CHECK_SIZEOF(CCharacterInfo, 0xc0)
|
||||
|
||||
#endif
|
|
@ -0,0 +1,18 @@
|
|||
#ifndef _CEFFECTCOMPONENT_HPP
|
||||
#define _CEFFECTCOMPONENT_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "MetroidPrime/CParticleData.hpp"
|
||||
|
||||
class CEffectComponent {
|
||||
private:
|
||||
rstl::string x0_name;
|
||||
SObjectTag x10_tag;
|
||||
rstl::string x18_boneName;
|
||||
f32 x28_scale;
|
||||
CParticleData::EParentedMode x2c_parentedMode;
|
||||
u32 x30_flags;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -0,0 +1,62 @@
|
|||
#ifndef _CHIERARCHYPOSEBUILDER_HPP
|
||||
#define _CHIERARCHYPOSEBUILDER_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "MetroidPrime/TGameTypes.hpp"
|
||||
|
||||
#include "Kyoto/Math/CQuaternion.hpp"
|
||||
#include "Kyoto/Math/CVector3f.hpp"
|
||||
#include "Kyoto/TToken.hpp"
|
||||
|
||||
#include "rstl/construction_deferred.hpp"
|
||||
#include "rstl/optional_object.hpp"
|
||||
|
||||
class CCharLayoutInfo;
|
||||
|
||||
template < typename T >
|
||||
class TSegIdMap {
|
||||
private:
|
||||
CSegId x0_boneCount;
|
||||
CSegId x1_capacity;
|
||||
u32 x4_maxCapacity;
|
||||
CSegId x8_indirectionMap[200];
|
||||
T* xd0_nodes;
|
||||
CSegId xd4_curPrevBone;
|
||||
};
|
||||
typedef TSegIdMap< void > unk_TSegIdMap;
|
||||
CHECK_SIZEOF(unk_TSegIdMap, 0xd8)
|
||||
|
||||
class CLayoutDescription {
|
||||
public:
|
||||
class CScaledLayoutDescription {
|
||||
private:
|
||||
TCachedToken< CCharLayoutInfo > x0_layoutToken;
|
||||
f32 xc_scale;
|
||||
rstl::optional_object< CVector3f > x10_scaleVec;
|
||||
};
|
||||
|
||||
private:
|
||||
TCachedToken< CCharLayoutInfo > x0_layoutToken;
|
||||
rstl::optional_object< CScaledLayoutDescription > xc_scaled;
|
||||
};
|
||||
CHECK_SIZEOF(CLayoutDescription, 0x30)
|
||||
|
||||
class CHierarchyPoseBuilder {
|
||||
public:
|
||||
class CTreeNode {
|
||||
private:
|
||||
CSegId x0_child;
|
||||
CSegId x1_sibling;
|
||||
CQuaternion x4_rotation;
|
||||
CVector3f x14_offset;
|
||||
};
|
||||
|
||||
private:
|
||||
CLayoutDescription x0_layoutDesc;
|
||||
rstl::construction_deferred< CSegId > x30_rootId;
|
||||
TSegIdMap< CTreeNode > x38_treeMap;
|
||||
};
|
||||
CHECK_SIZEOF(CHierarchyPoseBuilder, 0x110)
|
||||
|
||||
#endif
|
|
@ -17,6 +17,14 @@
|
|||
class CAnimData;
|
||||
class CModel;
|
||||
|
||||
// TODO move
|
||||
#include "Kyoto/Math/CQuaternion.hpp"
|
||||
struct SAdvancementDeltas {
|
||||
CVector3f x0_posDelta;
|
||||
CQuaternion xc_rotDelta;
|
||||
};
|
||||
CHECK_SIZEOF(SAdvancementDeltas, 0x1c)
|
||||
|
||||
class CModelData {
|
||||
public:
|
||||
bool IsStaticModel() const { return xc_animData.get() == nullptr && !x1c_normalModel; }
|
||||
|
@ -30,7 +38,7 @@ public:
|
|||
SAdvancementDeltas AdvanceAnimation(float dt, CStateManager& mgr, TAreaId aid, bool advTree);
|
||||
void AdvanceParticles(const CTransform4f& xf, float dt, CStateManager& mgr);
|
||||
|
||||
rstl::auto_ptr< CAnimData >& GetAnimData() { return xc_animData; }
|
||||
CAnimData* GetAnimationData() const { return xc_animData.get(); }
|
||||
|
||||
void SetXRayModel(const rstl::pair< CAssetId, CAssetId >& assets);
|
||||
void SetInfraModel(const rstl::pair< CAssetId, CAssetId >& assets);
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
#ifndef _CPASANIMSTATE_HPP
|
||||
#define _CPASANIMSTATE_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "rstl/vector.hpp"
|
||||
|
||||
namespace pas {
|
||||
enum EAnimationState {
|
||||
kAS_Invalid = -1,
|
||||
kAS_Fall = 0,
|
||||
kAS_Getup = 1,
|
||||
kAS_LieOnGround = 2,
|
||||
kAS_Step = 3,
|
||||
kAS_Death = 4,
|
||||
kAS_Locomotion = 5,
|
||||
kAS_KnockBack = 6,
|
||||
kAS_MeleeAttack = 7,
|
||||
kAS_Turn = 8,
|
||||
kAS_LoopAttack = 9,
|
||||
kAS_LoopReaction = 10,
|
||||
kAS_GroundHit = 11,
|
||||
kAS_Generate = 12,
|
||||
kAS_Jump = 13,
|
||||
kAS_Hurled = 14,
|
||||
kAS_Slide = 15,
|
||||
kAS_Taunt = 16,
|
||||
kAS_Scripted = 17,
|
||||
kAS_ProjectileAttack = 18,
|
||||
kAS_Cover = 19,
|
||||
kAS_WallHang = 20,
|
||||
kAS_AdditiveIdle = 21,
|
||||
kAS_AdditiveAim = 22,
|
||||
kAS_AdditiveFlinch = 23,
|
||||
kAS_AdditiveReaction = 24,
|
||||
};
|
||||
} // namespace pas
|
||||
|
||||
class CPASAnimParm {
|
||||
public:
|
||||
enum EParmType {
|
||||
kPT_None = -1,
|
||||
kPT_Int32 = 0,
|
||||
kPT_UInt32 = 1,
|
||||
kPT_Float = 2,
|
||||
kPT_Bool = 3,
|
||||
kPT_Enum = 4,
|
||||
};
|
||||
union UParmValue {
|
||||
s32 m_int;
|
||||
u32 m_uint;
|
||||
f32 m_float;
|
||||
bool m_bool;
|
||||
};
|
||||
|
||||
private:
|
||||
UParmValue x0_value;
|
||||
EParmType x4_type;
|
||||
};
|
||||
|
||||
class CPASParmInfo {
|
||||
public:
|
||||
enum EWeightFunction {
|
||||
kWF_ExactMatch,
|
||||
kWF_PercentError,
|
||||
kWF_AngularPercent,
|
||||
kWF_NoWeight,
|
||||
};
|
||||
|
||||
private:
|
||||
CPASAnimParm::EParmType x0_type;
|
||||
EWeightFunction x4_weightFunction;
|
||||
float x8_weight;
|
||||
CPASAnimParm::UParmValue xc_min;
|
||||
CPASAnimParm::UParmValue x10_max;
|
||||
};
|
||||
|
||||
class CPASAnimInfo {
|
||||
private:
|
||||
u32 x0_id;
|
||||
rstl::reserved_vector< CPASAnimParm::UParmValue, 8 > x4_parms;
|
||||
};
|
||||
|
||||
class CPASAnimState {
|
||||
private:
|
||||
pas::EAnimationState x0_id;
|
||||
rstl::vector< CPASParmInfo > x4_parms;
|
||||
rstl::vector< CPASAnimInfo > x14_anims;
|
||||
rstl::vector< s32 > x24_selectionCache;
|
||||
};
|
||||
CHECK_SIZEOF(CPASAnimState, 0x34)
|
||||
|
||||
#endif
|
|
@ -0,0 +1,17 @@
|
|||
#ifndef _CPASDATABASE_HPP
|
||||
#define _CPASDATABASE_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "MetroidPrime/CPASAnimState.hpp"
|
||||
|
||||
#include "rstl/vector.hpp"
|
||||
|
||||
class CPASDatabase {
|
||||
private:
|
||||
rstl::vector< CPASAnimState > x0_states;
|
||||
s32 x10_defaultState;
|
||||
};
|
||||
CHECK_SIZEOF(CPASDatabase, 0x14)
|
||||
|
||||
#endif
|
|
@ -0,0 +1,86 @@
|
|||
#ifndef _CPOINODE_HPP
|
||||
#define _CPOINODE_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "MetroidPrime/CCharAnimTime.hpp"
|
||||
#include "MetroidPrime/CParticleData.hpp"
|
||||
|
||||
#include "rstl/string.hpp"
|
||||
|
||||
#define POITYPE_LOOP 0
|
||||
#define POITYPE_EMPTYBOOL 1
|
||||
#define POITYPE_EMPTYINT32 2
|
||||
#define POITYPE_SOUNDINT32 4
|
||||
#define POITYPE_PARTICLE 5
|
||||
#define POITYPE_USEREVENT 6
|
||||
#define POITYPE_RANDRATE 7
|
||||
#define POITYPE_SOUND 8
|
||||
|
||||
class CPOINode {
|
||||
public:
|
||||
virtual ~CPOINode();
|
||||
|
||||
const rstl::string& GetString() const { return x8_name; }
|
||||
s32 GetPoiType() const { return x18_type; }
|
||||
const CCharAnimTime& GetTime() const { return x1c_time; }
|
||||
f32 GetWeight() const { return x2c_weight; }
|
||||
s32 GetCharacterIndex() const { return x30_charIdx; }
|
||||
s32 GetFlags() const { return x34_flags; }
|
||||
|
||||
protected:
|
||||
u16 x4_;
|
||||
rstl::string x8_name;
|
||||
s16 x18_type;
|
||||
CCharAnimTime x1c_time;
|
||||
s32 x24_index;
|
||||
bool x28_unique;
|
||||
f32 x2c_weight;
|
||||
s32 x30_charIdx;
|
||||
s32 x34_flags;
|
||||
};
|
||||
CHECK_SIZEOF(CPOINode, 0x38)
|
||||
|
||||
class CBoolPOINode : public CPOINode {
|
||||
public:
|
||||
// __ct__12CBoolPOINodeFQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>UsRC13CCharAnimTimeibfiib
|
||||
// __ct__12CBoolPOINodeFR12CInputStream
|
||||
// CopyNodeMinusStartTime__12CBoolPOINodeFRC12CBoolPOINodeRC13CCharAnimTime
|
||||
|
||||
bool GetValue() const { return x38_val; }
|
||||
|
||||
private:
|
||||
bool x38_val;
|
||||
};
|
||||
|
||||
class CInt32POINode : public CPOINode {
|
||||
public:
|
||||
// __ct__13CInt32POINodeFQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>UsRC13CCharAnimTimeibfiiiRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>
|
||||
// CopyNodeMinusStartTime__13CInt32POINodeFRC13CInt32POINodeRC13CCharAnimTime
|
||||
|
||||
s32 GetValue() const { return x38_val; }
|
||||
const rstl::string& GetLocatorName() const { return x3c_lctrName; }
|
||||
|
||||
private:
|
||||
s32 x38_val;
|
||||
rstl::string x3c_lctrName;
|
||||
};
|
||||
|
||||
class CParticlePOINode : public CPOINode {
|
||||
private:
|
||||
CParticleData x38_data;
|
||||
};
|
||||
|
||||
class CSoundPOINode : public CPOINode {
|
||||
public:
|
||||
u32 GetSoundId() const { return x38_sfxId; }
|
||||
f32 GetFallOff() const { return x3c_falloff; }
|
||||
f32 GetMaxDistance() const { return x40_maxDist; }
|
||||
|
||||
private:
|
||||
u32 x38_sfxId;
|
||||
f32 x3c_falloff;
|
||||
f32 x40_maxDist;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -0,0 +1,35 @@
|
|||
#ifndef _CPARTICLEDATA_HPP
|
||||
#define _CPARTICLEDATA_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "Kyoto/IObjectStore.hpp"
|
||||
#include "Kyoto/Math/CVector3f.hpp"
|
||||
|
||||
#include "rstl/string.hpp"
|
||||
|
||||
class CParticleData {
|
||||
public:
|
||||
enum EParentedMode {
|
||||
kPM_Initial,
|
||||
kPM_ContinuousEmitter,
|
||||
kPM_ContinuousSystem,
|
||||
};
|
||||
|
||||
private:
|
||||
u32 x0_duration;
|
||||
SObjectTag x4_particle;
|
||||
rstl::string xc_boneName;
|
||||
f32 x1c_scale;
|
||||
EParentedMode x20_parentMode;
|
||||
};
|
||||
|
||||
class CAuxiliaryParticleData {
|
||||
private:
|
||||
u32 x0_duration;
|
||||
SObjectTag x4_particle;
|
||||
CVector3f xc_translation;
|
||||
f32 x18_scale;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -0,0 +1,41 @@
|
|||
#ifndef _CPARTICLEDATABASE_HPP
|
||||
#define _CPARTICLEDATABASE_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "Kyoto/IObjectStore.hpp"
|
||||
#include "Kyoto/TToken.hpp"
|
||||
|
||||
#include "rstl/auto_ptr.hpp"
|
||||
#include "rstl/map.hpp"
|
||||
#include "rstl/rc_ptr.hpp"
|
||||
#include "rstl/string.hpp"
|
||||
|
||||
class CElectricDescription;
|
||||
class CGenDescription;
|
||||
class CParticleGenInfo;
|
||||
class CStateManager;
|
||||
class CSwooshDescription;
|
||||
|
||||
class CParticleDatabase {
|
||||
public:
|
||||
typedef rstl::map< rstl::string, rstl::auto_ptr< CParticleGenInfo > > DrawMap;
|
||||
|
||||
void SetParticleEffectState(const rstl::string& name, bool active, CStateManager& mgr);
|
||||
|
||||
private:
|
||||
rstl::map< CAssetId, rstl::rc_ptr< TLockedToken< CGenDescription > > > x0_particleDescs;
|
||||
rstl::map< CAssetId, rstl::rc_ptr< TLockedToken< CSwooshDescription > > > x14_swooshDescs;
|
||||
rstl::map< CAssetId, rstl::rc_ptr< TLockedToken< CElectricDescription > > > x28_electricDescs;
|
||||
DrawMap x3c_rendererDrawLoop;
|
||||
DrawMap x50_firstDrawLoop;
|
||||
DrawMap x64_lastDrawLoop;
|
||||
DrawMap x78_rendererDraw;
|
||||
DrawMap x8c_firstDraw;
|
||||
DrawMap xa0_lastDraw;
|
||||
bool xb4_24_updatesEnabled : 1;
|
||||
bool xb4_25_anySystemsDrawnWithModel : 1;
|
||||
};
|
||||
CHECK_SIZEOF(CParticleDatabase, 0xb5)
|
||||
|
||||
#endif
|
|
@ -0,0 +1,24 @@
|
|||
#ifndef _CPOSEASTRANSFORMS_HPP
|
||||
#define _CPOSEASTRANSFORMS_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "MetroidPrime/TGameTypes.hpp"
|
||||
|
||||
#include "Kyoto/Math/CTransform4f.hpp"
|
||||
|
||||
#include "rstl/reserved_vector.hpp"
|
||||
#include "rstl/single_ptr.hpp"
|
||||
|
||||
class CPoseAsTransforms {
|
||||
private:
|
||||
CSegId x0_nextId;
|
||||
CSegId x1_count;
|
||||
// TODO TSegIdMapVariableSize<CPoseAsTransforms::CElementType>
|
||||
rstl::reserved_vector< rstl::pair< CSegId, CSegId >, 100 > x4_links;
|
||||
rstl::single_ptr< CTransform4f > xd0_transformArr;
|
||||
CSegId xd4_lastInserted;
|
||||
};
|
||||
CHECK_SIZEOF(CPoseAsTransforms, 0xd8)
|
||||
|
||||
#endif
|
|
@ -22,7 +22,7 @@ class CStateManager;
|
|||
|
||||
class CCameraManager {
|
||||
public:
|
||||
CGameCamera* GetCurrentCamera(CStateManager& mgr);
|
||||
CGameCamera* GetCurrentCamera(CStateManager& mgr) const;
|
||||
|
||||
private:
|
||||
TUniqueId x0_curCameraId;
|
||||
|
|
|
@ -56,4 +56,9 @@ CHECK_SIZEOF(TUniqueId, 0x2)
|
|||
typedef u16 TSfxId;
|
||||
static TSfxId InvalidSfxId = 0xFFFFu;
|
||||
|
||||
class CSegId {
|
||||
private:
|
||||
u8 x0_id;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -28,7 +28,7 @@ public:
|
|||
// other.x0_has = false;
|
||||
// }
|
||||
T* get() { return x4_item; }
|
||||
const T* get() const { return x4_item; }
|
||||
/* const*/ T* get() const { return x4_item; }
|
||||
T* operator->() { return get(); }
|
||||
const T* operator->() const { return get(); }
|
||||
T* release() const {
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
#ifndef _RSTL_CONSTRUCTION_DEFERRED_HPP
|
||||
#define _RSTL_CONSTRUCTION_DEFERRED_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#include "rstl/construct.hpp"
|
||||
|
||||
namespace rstl {
|
||||
template < typename T >
|
||||
class construction_deferred {
|
||||
public:
|
||||
construction_deferred() : m_valid(false) {}
|
||||
|
||||
template < typename A >
|
||||
void build(const A& arg) {
|
||||
rstl::construct(get_ptr(), arg);
|
||||
makeValid();
|
||||
}
|
||||
void clear(); // TODO
|
||||
bool valid() const { return m_valid; }
|
||||
|
||||
T* get_ptr() { return reinterpret_cast< T* >(x0_data); }
|
||||
T& data() {
|
||||
// TODO ensureIsValid
|
||||
return *get_ptr();
|
||||
}
|
||||
T& operator*() { return data(); }
|
||||
|
||||
private:
|
||||
u8 x0_data[sizeof(T)];
|
||||
bool m_valid __attribute__((aligned(4)));
|
||||
|
||||
void makeValid() { m_valid = true; }
|
||||
};
|
||||
} // namespace rstl
|
||||
|
||||
#endif
|
|
@ -3,15 +3,13 @@
|
|||
|
||||
#include "types.h"
|
||||
|
||||
#include "rstl/red_black_tree.hpp"
|
||||
#include "rstl/rmemory_allocator.hpp"
|
||||
|
||||
namespace rstl {
|
||||
template < typename T >
|
||||
struct less {};
|
||||
|
||||
template < typename K, typename V, typename Cmp = less< K >, typename Alloc = rmemory_allocator >
|
||||
class map {
|
||||
u8 pad[0x10];
|
||||
u8 pad[0x14];
|
||||
};
|
||||
} // namespace rstl
|
||||
|
||||
|
|
|
@ -20,6 +20,11 @@ public:
|
|||
T* get() { return x0_refData->x0_ptr; }
|
||||
T* operator->() { return get(); }
|
||||
};
|
||||
|
||||
template < typename T >
|
||||
class ncrc_ptr : public rc_ptr< T > {
|
||||
// TODO
|
||||
};
|
||||
} // namespace rstl
|
||||
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
#ifndef _RSTL_RED_BLACK_TREE_HPP
|
||||
#define _RSTL_RED_BLACK_TREE_HPP
|
||||
|
||||
#include "types.h"
|
||||
|
||||
namespace rstl {
|
||||
template < typename P >
|
||||
struct select1st {};
|
||||
|
||||
template < typename T >
|
||||
struct less {};
|
||||
|
||||
template < typename T, typename P, int U, typename S = select1st< P >, typename Cmp = less< T > >
|
||||
class red_black_tree {};
|
||||
}; // namespace rstl
|
||||
#endif
|
|
@ -15,6 +15,7 @@ public:
|
|||
T* get() { return x0_ptr; }
|
||||
const T* get() const { return x0_ptr; }
|
||||
T* operator->() { return x0_ptr; }
|
||||
const T* operator->() const { return x0_ptr; }
|
||||
void operator=(T* ptr) {
|
||||
delete x0_ptr;
|
||||
x0_ptr = ptr;
|
||||
|
|
|
@ -107,7 +107,7 @@ void vector< T, Alloc >::reserve(size_t size) {
|
|||
x8_capacity = size;
|
||||
}
|
||||
|
||||
typedef vector<void> unk_vector;
|
||||
typedef vector< void > unk_vector;
|
||||
CHECK_SIZEOF(unk_vector, 0x10)
|
||||
} // namespace rstl
|
||||
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
#include "MetroidPrime/CActor.hpp"
|
||||
|
||||
#include "MetroidPrime/CActorLights.hpp"
|
||||
#include "MetroidPrime/CActorParameters.hpp"
|
||||
#include "MetroidPrime/CAnimData.hpp"
|
||||
#include "MetroidPrime/CModelData.hpp"
|
||||
#include "MetroidPrime/Cameras/CCameraManager.hpp"
|
||||
#include "MetroidPrime/Cameras/CGameCamera.hpp"
|
||||
|
||||
#include "Kyoto/Audio/CAudioSys.hpp"
|
||||
|
||||
|
@ -35,7 +39,7 @@ CActor::CActor(TUniqueId uid, bool active, const rstl::string& name, const CEnti
|
|||
, xc8_drawnToken(-1)
|
||||
, xcc_addedToken(-1)
|
||||
, xd0_damageMag(params.GetThermalMag())
|
||||
, xd4_maxVol(CAudioSys::kMaxVolume)
|
||||
, xd4_maxVol(CAudioSys::kkMaxVolume)
|
||||
, xd8_nonLoopingSfxHandles(CSfxHandle(0))
|
||||
, xe4_24_nextNonLoopingSfxHandle(0)
|
||||
, xe4_27_notInSortedLists(true)
|
||||
|
@ -88,7 +92,58 @@ SAdvancementDeltas CActor::UpdateAnimation(float dt, CStateManager& mgr, bool ad
|
|||
SAdvancementDeltas result = x64_modelData->AdvanceAnimation(dt, mgr, GetAreaId(), advTree);
|
||||
x64_modelData->AdvanceParticles(GetTransform(), dt, mgr);
|
||||
UpdateSfxEmitters();
|
||||
if (x64_modelData && x64_modelData->GetAnimData().get() != nullptr) {
|
||||
if (HasAnimation()) {
|
||||
u16 maxVol = xd4_maxVol;
|
||||
s32 aid = x4_areaId.Value();
|
||||
|
||||
const CGameCamera* camera = mgr.GetCameraManager().GetCurrentCamera(mgr);
|
||||
const CVector3f origin = GetTranslation();
|
||||
const CVector3f toCamera = camera->GetTranslation() - origin;
|
||||
|
||||
s32 soundNodeCount = 0;
|
||||
const CSoundPOINode* soundNode = HasAnimation() ? x64_modelData->GetAnimationData()->GetSoundPOIList(soundNodeCount) : nullptr;
|
||||
if (soundNodeCount > 0 && soundNode != nullptr) {
|
||||
for (s32 i = 0; i < soundNodeCount; ++soundNode, ++i) {
|
||||
s32 charIdx = soundNode->GetCharacterIndex();
|
||||
if (soundNode->GetPoiType() != POITYPE_SOUND)
|
||||
continue;
|
||||
if (GetMuted())
|
||||
continue;
|
||||
if (charIdx != -1 && x64_modelData->GetAnimationData()->GetCharacterIndex() != charIdx)
|
||||
continue;
|
||||
// if (soundNode->GetPoiType() == POITYPE_SOUND && !GetMuted() && (charIdx == -1 ||
|
||||
// x64_modelData->GetAnimationData()->GetCharacterIndex() == charIdx))
|
||||
ProcessSoundEvent(soundNode->GetSoundId(), soundNode->GetWeight(), soundNode->GetFlags(), soundNode->GetFallOff(),
|
||||
soundNode->GetMaxDistance(), 20, maxVol, toCamera, origin, aid, mgr, true);
|
||||
}
|
||||
}
|
||||
|
||||
s32 intNodeCount = 0;
|
||||
const CInt32POINode* intNode = HasAnimation() ? x64_modelData->GetAnimationData()->GetInt32POIList(intNodeCount) : nullptr;
|
||||
if (intNodeCount > 0 && intNode != nullptr) {
|
||||
for (s32 i = 0; i < intNodeCount; ++intNode, ++i) {
|
||||
s32 charIdx = intNode->GetCharacterIndex();
|
||||
if (soundNode->GetPoiType() == POITYPE_SOUNDINT32 && !GetMuted() &&
|
||||
(charIdx == -1 || x64_modelData->GetAnimationData()->GetCharacterIndex() == charIdx)) {
|
||||
ProcessSoundEvent(intNode->GetValue(), intNode->GetWeight(), intNode->GetFlags(), 0.1f, 150.f, 20, maxVol, toCamera, origin, aid,
|
||||
mgr, true);
|
||||
} else if (soundNode->GetPoiType() == POITYPE_USEREVENT) {
|
||||
DoUserAnimEvent(mgr, *intNode, static_cast< EUserEventType >(intNode->GetValue()), dt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s32 particleNodeCount = 0;
|
||||
const CParticlePOINode* particleNode =
|
||||
HasAnimation() ? x64_modelData->GetAnimationData()->GetParticlePOIList(particleNodeCount) : nullptr;
|
||||
if (particleNodeCount > 0 && particleNode != nullptr) {
|
||||
for (s32 i = 0; i < particleNodeCount; ++particleNode, ++i) {
|
||||
s32 charIdx = soundNode->GetCharacterIndex();
|
||||
if (charIdx != -1 && x64_modelData->GetAnimationData()->GetCharacterIndex() != charIdx)
|
||||
continue;
|
||||
x64_modelData->GetAnimationData()->SetParticleEffectState(particleNode->GetString(), true, mgr);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue