diff --git a/asm/Kyoto/Animation/CAnimPOIData.s b/asm/Kyoto/Animation/CAnimPOIData.s index ffc13cf3..184a5889 100644 --- a/asm/Kyoto/Animation/CAnimPOIData.s +++ b/asm/Kyoto/Animation/CAnimPOIData.s @@ -573,12 +573,12 @@ __ct__13CSoundPOINodeFR12CInputStream: /* 802EC23C 002E919C 7F 84 E3 78 */ mr r4, r28 /* 802EC240 002E91A0 4B FF 12 A1 */ bl "reserve__Q24rstl53vector<16CParticlePOINode,Q24rstl17rmemory_allocator>Fi" /* 802EC244 002E91A4 3B 21 00 44 */ addi r25, r1, 0x44 -/* 802EC248 002E91A8 3C 80 80 3E */ lis r4, lbl_803D9B74@ha +/* 802EC248 002E91A8 3C 80 80 3E */ lis r4, __vt__16CParticlePOINode@ha /* 802EC24C 002E91AC 3C 60 80 3E */ lis r3, __vt__8CPOINode@ha /* 802EC250 002E91B0 3B 41 00 14 */ addi r26, r1, 0x14 /* 802EC254 002E91B4 3B 79 00 0C */ addi r27, r25, 0xc /* 802EC258 002E91B8 3B A1 00 08 */ addi r29, r1, 8 -/* 802EC25C 002E91BC 3B C4 9B 74 */ addi r30, r4, lbl_803D9B74@l +/* 802EC25C 002E91BC 3B C4 9B 74 */ addi r30, r4, __vt__16CParticlePOINode@l /* 802EC260 002E91C0 3B E3 9B 8C */ addi r31, r3, __vt__8CPOINode@l /* 802EC264 002E91C4 3B 00 00 00 */ li r24, 0 /* 802EC268 002E91C8 48 00 00 5C */ b lbl_802EC2C4 diff --git a/asm/Kyoto/Animation/CAnimSourceReaderBase.s b/asm/Kyoto/Animation/CAnimSourceReaderBase.s index 24dd462d..ab75c497 100644 --- a/asm/Kyoto/Animation/CAnimSourceReaderBase.s +++ b/asm/Kyoto/Animation/CAnimSourceReaderBase.s @@ -1913,10 +1913,10 @@ lbl_802F11B4: /* 802F1250 002EE1B0 90 1A 00 40 */ stw r0, 0x40(r26) /* 802F1254 002EE1B4 48 04 CB 09 */ bl "assign__Q24rstl66basic_string,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>" /* 802F1258 002EE1B8 C0 01 00 84 */ lfs f0, 0x84(r1) -/* 802F125C 002EE1BC 3C 60 80 3E */ lis r3, lbl_803D9B74@ha +/* 802F125C 002EE1BC 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha /* 802F1260 002EE1C0 28 1B 00 00 */ cmplwi r27, 0 /* 802F1264 002EE1C4 D0 1A 00 54 */ stfs f0, 0x54(r26) -/* 802F1268 002EE1C8 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 802F1268 002EE1C8 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 802F126C 002EE1CC 80 61 00 88 */ lwz r3, 0x88(r1) /* 802F1270 002EE1D0 90 7A 00 58 */ stw r3, 0x58(r26) /* 802F1274 002EE1D4 90 01 00 30 */ stw r0, 0x30(r1) diff --git a/asm/Kyoto/Animation/CAnimTreeLoopIn.s b/asm/Kyoto/Animation/CAnimTreeLoopIn.s index bc36c936..facdae49 100644 --- a/asm/Kyoto/Animation/CAnimTreeLoopIn.s +++ b/asm/Kyoto/Animation/CAnimTreeLoopIn.s @@ -1186,8 +1186,8 @@ lbl_802D96E0: /* 802D9700 002D6660 B0 1E 00 04 */ sth r0, 4(r30) /* 802D9704 002D6664 48 06 4A 5D */ bl "__ct__Q24rstl66basic_string,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>" /* 802D9708 002D6668 A0 9F 00 18 */ lhz r4, 0x18(r31) -/* 802D970C 002D666C 3C 60 80 3E */ lis r3, lbl_803D9B74@ha -/* 802D9710 002D6670 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 802D970C 002D666C 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha +/* 802D9710 002D6670 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 802D9714 002D6674 38 7E 00 44 */ addi r3, r30, 0x44 /* 802D9718 002D6678 B0 9E 00 18 */ sth r4, 0x18(r30) /* 802D971C 002D667C 38 9F 00 44 */ addi r4, r31, 0x44 @@ -2098,7 +2098,7 @@ lbl_802DA3A8: /* 802DA418 002D7378 3B 23 00 0C */ addi r25, r3, 0xc /* 802DA41C 002D737C 38 61 00 5C */ addi r3, r1, 0x5c /* 802DA420 002D7380 3C A0 80 3E */ lis r5, __vt__8CPOINode@ha -/* 802DA424 002D7384 3C 80 80 3E */ lis r4, lbl_803D9B74@ha +/* 802DA424 002D7384 3C 80 80 3E */ lis r4, __vt__16CParticlePOINode@ha /* 802DA428 002D7388 D0 01 00 14 */ stfs f0, 0x14(r1) /* 802DA42C 002D738C 3B 83 00 0C */ addi r28, r3, 0xc /* 802DA430 002D7390 38 61 00 B8 */ addi r3, r1, 0xb8 @@ -2111,7 +2111,7 @@ lbl_802DA3A8: /* 802DA44C 002D73AC 3B 61 00 88 */ addi r27, r1, 0x88 /* 802DA450 002D73B0 3B 43 00 0C */ addi r26, r3, 0xc /* 802DA454 002D73B4 3B C5 9B 8C */ addi r30, r5, __vt__8CPOINode@l -/* 802DA458 002D73B8 3B E4 9B 74 */ addi r31, r4, lbl_803D9B74@l +/* 802DA458 002D73B8 3B E4 9B 74 */ addi r31, r4, __vt__16CParticlePOINode@l /* 802DA45C 002D73BC 48 00 03 18 */ b lbl_802DA774 lbl_802DA460: /* 802DA460 002D73C0 80 15 00 0C */ lwz r0, 0xc(r21) @@ -2158,8 +2158,8 @@ lbl_802DA460: /* 802DA504 002D7464 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 802DA508 002D7468 41 82 00 48 */ beq lbl_802DA550 /* 802DA50C 002D746C 34 01 01 14 */ addic. r0, r1, 0x114 -/* 802DA510 002D7470 3C 60 80 3E */ lis r3, lbl_803D9B74@ha -/* 802DA514 002D7474 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 802DA510 002D7470 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha +/* 802DA514 002D7474 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 802DA518 002D7478 90 01 00 DC */ stw r0, 0xdc(r1) /* 802DA51C 002D747C 41 82 00 14 */ beq lbl_802DA530 /* 802DA520 002D7480 28 19 00 00 */ cmplwi r25, 0 @@ -2199,9 +2199,9 @@ lbl_802DA550: /* 802DA5A0 002D7500 B0 01 00 84 */ sth r0, 0x84(r1) /* 802DA5A4 002D7504 48 06 3B BD */ bl "__ct__Q24rstl66basic_string,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>" /* 802DA5A8 002D7508 A0 C1 00 3C */ lhz r6, 0x3c(r1) -/* 802DA5AC 002D750C 3C 60 80 3E */ lis r3, lbl_803D9B74@ha +/* 802DA5AC 002D750C 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha /* 802DA5B0 002D7510 C0 21 00 40 */ lfs f1, 0x40(r1) -/* 802DA5B4 002D7514 39 43 9B 74 */ addi r10, r3, lbl_803D9B74@l +/* 802DA5B4 002D7514 39 43 9B 74 */ addi r10, r3, __vt__16CParticlePOINode@l /* 802DA5B8 002D7518 80 A1 00 44 */ lwz r5, 0x44(r1) /* 802DA5BC 002D751C 7F 84 E3 78 */ mr r4, r28 /* 802DA5C0 002D7520 80 01 00 48 */ lwz r0, 0x48(r1) @@ -2227,9 +2227,9 @@ lbl_802DA550: /* 802DA610 002D7570 90 E1 00 C0 */ stw r7, 0xc0(r1) /* 802DA614 002D7574 48 06 3B 4D */ bl "__ct__Q24rstl66basic_string,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>" /* 802DA618 002D7578 C0 01 00 78 */ lfs f0, 0x78(r1) -/* 802DA61C 002D757C 3C 60 80 3E */ lis r3, lbl_803D9B74@ha +/* 802DA61C 002D757C 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha /* 802DA620 002D7580 80 81 00 7C */ lwz r4, 0x7c(r1) -/* 802DA624 002D7584 38 63 9B 74 */ addi r3, r3, lbl_803D9B74@l +/* 802DA624 002D7584 38 63 9B 74 */ addi r3, r3, __vt__16CParticlePOINode@l /* 802DA628 002D7588 34 01 00 5C */ addic. r0, r1, 0x5c /* 802DA62C 002D758C D0 01 00 D4 */ stfs f0, 0xd4(r1) /* 802DA630 002D7590 90 81 00 D8 */ stw r4, 0xd8(r1) @@ -2281,11 +2281,11 @@ lbl_802DA668: /* 802DA6E0 002D7640 90 0F 00 40 */ stw r0, 0x40(r15) /* 802DA6E4 002D7644 48 06 36 79 */ bl "assign__Q24rstl66basic_string,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>" /* 802DA6E8 002D7648 C0 01 00 D4 */ lfs f0, 0xd4(r1) -/* 802DA6EC 002D764C 3C 60 80 3E */ lis r3, lbl_803D9B74@ha +/* 802DA6EC 002D764C 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha /* 802DA6F0 002D7650 34 01 00 B8 */ addic. r0, r1, 0xb8 /* 802DA6F4 002D7654 3A F7 00 01 */ addi r23, r23, 1 /* 802DA6F8 002D7658 D0 0F 00 54 */ stfs f0, 0x54(r15) -/* 802DA6FC 002D765C 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 802DA6FC 002D765C 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 802DA700 002D7660 80 61 00 D8 */ lwz r3, 0xd8(r1) /* 802DA704 002D7664 90 6F 00 58 */ stw r3, 0x58(r15) /* 802DA708 002D7668 90 01 00 80 */ stw r0, 0x80(r1) diff --git a/asm/Kyoto/Animation/CAnimTreeSequence.s b/asm/Kyoto/Animation/CAnimTreeSequence.s index e36ab0ae..1560fb13 100644 --- a/asm/Kyoto/Animation/CAnimTreeSequence.s +++ b/asm/Kyoto/Animation/CAnimTreeSequence.s @@ -1331,8 +1331,8 @@ lbl_802DBD30: /* 802DBD50 002D8CB0 B0 1E 00 04 */ sth r0, 4(r30) /* 802DBD54 002D8CB4 48 06 24 0D */ bl "__ct__Q24rstl66basic_string,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>" /* 802DBD58 002D8CB8 A0 9D 00 18 */ lhz r4, 0x18(r29) -/* 802DBD5C 002D8CBC 3C 60 80 3E */ lis r3, lbl_803D9B74@ha -/* 802DBD60 002D8CC0 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 802DBD5C 002D8CBC 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha +/* 802DBD60 002D8CC0 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 802DBD64 002D8CC4 38 7E 00 44 */ addi r3, r30, 0x44 /* 802DBD68 002D8CC8 B0 9E 00 18 */ sth r4, 0x18(r30) /* 802DBD6C 002D8CCC 38 9D 00 44 */ addi r4, r29, 0x44 @@ -2272,7 +2272,7 @@ sub_802dca8c: /* 802DCAE0 002D9A40 3B 23 00 0C */ addi r25, r3, 0xc /* 802DCAE4 002D9A44 38 61 00 58 */ addi r3, r1, 0x58 /* 802DCAE8 002D9A48 3C A0 80 3E */ lis r5, __vt__8CPOINode@ha -/* 802DCAEC 002D9A4C 3C 80 80 3E */ lis r4, lbl_803D9B74@ha +/* 802DCAEC 002D9A4C 3C 80 80 3E */ lis r4, __vt__16CParticlePOINode@ha /* 802DCAF0 002D9A50 D0 01 00 10 */ stfs f0, 0x10(r1) /* 802DCAF4 002D9A54 3B 83 00 0C */ addi r28, r3, 0xc /* 802DCAF8 002D9A58 38 61 00 B4 */ addi r3, r1, 0xb4 @@ -2285,7 +2285,7 @@ sub_802dca8c: /* 802DCB14 002D9A74 3B 61 00 84 */ addi r27, r1, 0x84 /* 802DCB18 002D9A78 3B 43 00 0C */ addi r26, r3, 0xc /* 802DCB1C 002D9A7C 3B C5 9B 8C */ addi r30, r5, __vt__8CPOINode@l -/* 802DCB20 002D9A80 3B E4 9B 74 */ addi r31, r4, lbl_803D9B74@l +/* 802DCB20 002D9A80 3B E4 9B 74 */ addi r31, r4, __vt__16CParticlePOINode@l /* 802DCB24 002D9A84 3B 00 00 00 */ li r24, 0 /* 802DCB28 002D9A88 48 00 03 14 */ b lbl_802DCE3C lbl_802DCB2C: @@ -2333,8 +2333,8 @@ lbl_802DCB2C: /* 802DCBD0 002D9B30 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 802DCBD4 002D9B34 41 82 00 48 */ beq lbl_802DCC1C /* 802DCBD8 002D9B38 34 01 01 10 */ addic. r0, r1, 0x110 -/* 802DCBDC 002D9B3C 3C 60 80 3E */ lis r3, lbl_803D9B74@ha -/* 802DCBE0 002D9B40 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 802DCBDC 002D9B3C 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha +/* 802DCBE0 002D9B40 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 802DCBE4 002D9B44 90 01 00 D8 */ stw r0, 0xd8(r1) /* 802DCBE8 002D9B48 41 82 00 14 */ beq lbl_802DCBFC /* 802DCBEC 002D9B4C 28 19 00 00 */ cmplwi r25, 0 @@ -2370,9 +2370,9 @@ lbl_802DCC1C: /* 802DCC5C 002D9BBC B0 01 00 80 */ sth r0, 0x80(r1) /* 802DCC60 002D9BC0 48 06 15 01 */ bl "__ct__Q24rstl66basic_string,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>" /* 802DCC64 002D9BC4 A0 C1 00 38 */ lhz r6, 0x38(r1) -/* 802DCC68 002D9BC8 3C 60 80 3E */ lis r3, lbl_803D9B74@ha +/* 802DCC68 002D9BC8 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha /* 802DCC6C 002D9BCC C0 21 00 3C */ lfs f1, 0x3c(r1) -/* 802DCC70 002D9BD0 39 43 9B 74 */ addi r10, r3, lbl_803D9B74@l +/* 802DCC70 002D9BD0 39 43 9B 74 */ addi r10, r3, __vt__16CParticlePOINode@l /* 802DCC74 002D9BD4 80 A1 00 40 */ lwz r5, 0x40(r1) /* 802DCC78 002D9BD8 7F 84 E3 78 */ mr r4, r28 /* 802DCC7C 002D9BDC 80 01 00 44 */ lwz r0, 0x44(r1) @@ -2398,9 +2398,9 @@ lbl_802DCC1C: /* 802DCCCC 002D9C2C 90 E1 00 BC */ stw r7, 0xbc(r1) /* 802DCCD0 002D9C30 48 06 14 91 */ bl "__ct__Q24rstl66basic_string,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>" /* 802DCCD4 002D9C34 C0 01 00 74 */ lfs f0, 0x74(r1) -/* 802DCCD8 002D9C38 3C 60 80 3E */ lis r3, lbl_803D9B74@ha +/* 802DCCD8 002D9C38 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha /* 802DCCDC 002D9C3C 80 81 00 78 */ lwz r4, 0x78(r1) -/* 802DCCE0 002D9C40 38 63 9B 74 */ addi r3, r3, lbl_803D9B74@l +/* 802DCCE0 002D9C40 38 63 9B 74 */ addi r3, r3, __vt__16CParticlePOINode@l /* 802DCCE4 002D9C44 34 01 00 58 */ addic. r0, r1, 0x58 /* 802DCCE8 002D9C48 D0 01 00 D0 */ stfs f0, 0xd0(r1) /* 802DCCEC 002D9C4C 90 81 00 D4 */ stw r4, 0xd4(r1) @@ -2461,8 +2461,8 @@ lbl_802DCD24: /* 802DCDC0 002D9D20 90 0F 00 58 */ stw r0, 0x58(r15) lbl_802DCDC4: /* 802DCDC4 002D9D24 34 01 00 B4 */ addic. r0, r1, 0xb4 -/* 802DCDC8 002D9D28 3C 60 80 3E */ lis r3, lbl_803D9B74@ha -/* 802DCDCC 002D9D2C 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 802DCDC8 002D9D28 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha +/* 802DCDCC 002D9D2C 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 802DCDD0 002D9D30 90 01 00 7C */ stw r0, 0x7c(r1) /* 802DCDD4 002D9D34 41 82 00 14 */ beq lbl_802DCDE8 /* 802DCDD8 002D9D38 28 1A 00 00 */ cmplwi r26, 0 @@ -3052,8 +3052,8 @@ lbl_802DD5F0: /* 802DD610 002DA570 B0 1E 00 04 */ sth r0, 4(r30) /* 802DD614 002DA574 48 06 0B 4D */ bl "__ct__Q24rstl66basic_string,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>" /* 802DD618 002DA578 A0 9F 00 18 */ lhz r4, 0x18(r31) -/* 802DD61C 002DA57C 3C 60 80 3E */ lis r3, lbl_803D9B74@ha -/* 802DD620 002DA580 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 802DD61C 002DA57C 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha +/* 802DD620 002DA580 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 802DD624 002DA584 38 7E 00 44 */ addi r3, r30, 0x44 /* 802DD628 002DA588 B0 9E 00 18 */ sth r4, 0x18(r30) /* 802DD62C 002DA58C 38 9F 00 44 */ addi r4, r31, 0x44 diff --git a/asm/Kyoto/Animation/CParticlePOINode.s b/asm/Kyoto/Animation/CParticlePOINode.s index 2b1908b3..1ab41525 100644 --- a/asm/Kyoto/Animation/CParticlePOINode.s +++ b/asm/Kyoto/Animation/CParticlePOINode.s @@ -33,7 +33,7 @@ CopyNodeMinusStartTime__16CParticlePOINodeFRC16CParticlePOINodeRC13CCharAnimTime /* 802FD01C 002F9F7C C0 3D 00 2C */ lfs f1, 0x2c(r29) /* 802FD020 002F9F80 81 3D 00 30 */ lwz r9, 0x30(r29) /* 802FD024 002F9F84 81 5D 00 34 */ lwz r10, 0x34(r29) -/* 802FD028 002F9F88 4B D3 33 E1 */ bl sub_80030408 +/* 802FD028 002F9F88 4B D3 33 E1 */ bl "__ct__16CParticlePOINodeFQ24rstl66basic_string,Q24rstl17rmemory_allocator>UsRC13CCharAnimTimeibfiiRC13CParticleData" /* 802FD02C 002F9F8C 38 61 00 18 */ addi r3, r1, 0x18 /* 802FD030 002F9F90 48 04 0A B1 */ bl "internal_dereference__Q24rstl66basic_string,Q24rstl17rmemory_allocator>Fv" /* 802FD034 002F9F94 80 01 00 44 */ lwz r0, 0x44(r1) @@ -55,9 +55,9 @@ __ct__16CParticlePOINodeFR12CInputStream: /* 802FD068 002F9FC8 93 C1 00 08 */ stw r30, 8(r1) /* 802FD06C 002F9FCC 7C 7E 1B 78 */ mr r30, r3 /* 802FD070 002F9FD0 48 00 00 ED */ bl __ct__8CPOINodeFR12CInputStream -/* 802FD074 002F9FD4 3C 60 80 3E */ lis r3, lbl_803D9B74@ha +/* 802FD074 002F9FD4 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha /* 802FD078 002F9FD8 7F E4 FB 78 */ mr r4, r31 -/* 802FD07C 002F9FDC 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 802FD07C 002F9FDC 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 802FD080 002F9FE0 38 7E 00 38 */ addi r3, r30, 0x38 /* 802FD084 002F9FE4 90 1E 00 00 */ stw r0, 0(r30) /* 802FD088 002F9FE8 48 05 A3 7D */ bl __ct__13CParticleDataFR12CInputStream diff --git a/asm/Kyoto/Animation/CSequenceHelper.s b/asm/Kyoto/Animation/CSequenceHelper.s index e7bdead0..1a15c7bc 100644 --- a/asm/Kyoto/Animation/CSequenceHelper.s +++ b/asm/Kyoto/Animation/CSequenceHelper.s @@ -990,8 +990,8 @@ lbl_802E6774: /* 802E67A0 002E3700 B0 1D 00 04 */ sth r0, 4(r29) /* 802E67A4 002E3704 48 05 79 BD */ bl "__ct__Q24rstl66basic_string,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>" /* 802E67A8 002E3708 A0 9F 00 18 */ lhz r4, 0x18(r31) -/* 802E67AC 002E370C 3C 60 80 3E */ lis r3, lbl_803D9B74@ha -/* 802E67B0 002E3710 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 802E67AC 002E370C 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha +/* 802E67B0 002E3710 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 802E67B4 002E3714 38 7D 00 44 */ addi r3, r29, 0x44 /* 802E67B8 002E3718 B0 9D 00 18 */ sth r4, 0x18(r29) /* 802E67BC 002E371C 38 9F 00 44 */ addi r4, r31, 0x44 @@ -1077,7 +1077,7 @@ __defctor__16CParticlePOINodeFv: /* 802E68EC 002E384C 39 00 00 00 */ li r8, 0 /* 802E68F0 002E3850 39 20 FF FF */ li r9, -1 /* 802E68F4 002E3854 39 40 00 00 */ li r10, 0 -/* 802E68F8 002E3858 4B D4 9B 11 */ bl sub_80030408 +/* 802E68F8 002E3858 4B D4 9B 11 */ bl "__ct__16CParticlePOINodeFQ24rstl66basic_string,Q24rstl17rmemory_allocator>UsRC13CCharAnimTimeibfiiRC13CParticleData" /* 802E68FC 002E385C 28 1E 00 00 */ cmplwi r30, 0 /* 802E6900 002E3860 7C 7F 1B 78 */ mr r31, r3 /* 802E6904 002E3864 41 82 00 0C */ beq lbl_802E6910 diff --git a/asm/MetroidPrime/CAnimData.s b/asm/MetroidPrime/CAnimData.s index 37065e44..81347a45 100644 --- a/asm/MetroidPrime/CAnimData.s +++ b/asm/MetroidPrime/CAnimData.s @@ -16,8 +16,8 @@ __vt__12CBoolPOINode: .4byte 0 .4byte __dt__12CBoolPOINodeFv -.global lbl_803D9B74 -lbl_803D9B74: +.global __vt__16CParticlePOINode +__vt__16CParticlePOINode: # ROM: 0x3D6B74 .4byte 0 .4byte 0 @@ -7157,9 +7157,9 @@ __dt__16CParticlePOINodeFv: /* 8002F770 0002C6D0 93 C1 00 08 */ stw r30, 8(r1) /* 8002F774 0002C6D4 7C 7E 1B 79 */ or. r30, r3, r3 /* 8002F778 0002C6D8 41 82 00 58 */ beq lbl_8002F7D0 -/* 8002F77C 0002C6DC 3C 60 80 3E */ lis r3, lbl_803D9B74@ha +/* 8002F77C 0002C6DC 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha /* 8002F780 0002C6E0 34 1E 00 38 */ addic. r0, r30, 0x38 -/* 8002F784 0002C6E4 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 8002F784 0002C6E4 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 8002F788 0002C6E8 90 1E 00 00 */ stw r0, 0(r30) /* 8002F78C 0002C6EC 41 82 00 10 */ beq lbl_8002F79C /* 8002F790 0002C6F0 34 7E 00 44 */ addic. r3, r30, 0x44 @@ -7618,15 +7618,15 @@ lbl_8002FDBC: /* 8002FE50 0002CDB0 39 00 00 00 */ li r8, 0 /* 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 +/* 8002FE5C 0002CDBC 48 00 05 AD */ bl "__ct__16CParticlePOINodeFQ24rstl66basic_string,Q24rstl17rmemory_allocator>UsRC13CCharAnimTimeibfiiRC13CParticleData" /* 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, 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 +/* 8002FE74 0002CDD4 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha /* 8002FE78 0002CDD8 34 81 02 2C */ addic. r4, r1, 0x22c -/* 8002FE7C 0002CDDC 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 8002FE7C 0002CDDC 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 8002FE80 0002CDE0 90 01 01 F4 */ stw r0, 0x1f4(r1) /* 8002FE84 0002CDE4 41 82 00 10 */ beq lbl_8002FE94 /* 8002FE88 0002CDE8 34 64 00 0C */ addic. r3, r4, 0xc @@ -7968,8 +7968,8 @@ lbl_8003033C: /* 8003035C 0002D2BC B0 1E 00 04 */ sth r0, 4(r30) /* 80030360 0002D2C0 48 30 DE 01 */ bl "__ct__Q24rstl66basic_string,Q24rstl17rmemory_allocator>FRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>" /* 80030364 0002D2C4 A0 BC 00 18 */ lhz r5, 0x18(r28) -/* 80030368 0002D2C8 3C 60 80 3E */ lis r3, lbl_803D9B74@ha -/* 8003036C 0002D2CC 38 03 9B 74 */ addi r0, r3, lbl_803D9B74@l +/* 80030368 0002D2C8 3C 60 80 3E */ lis r3, __vt__16CParticlePOINode@ha +/* 8003036C 0002D2CC 38 03 9B 74 */ addi r0, r3, __vt__16CParticlePOINode@l /* 80030370 0002D2D0 7F E4 FB 78 */ mr r4, r31 /* 80030374 0002D2D4 B0 BE 00 18 */ sth r5, 0x18(r30) /* 80030378 0002D2D8 38 7E 00 44 */ addi r3, r30, 0x44 @@ -8011,8 +8011,8 @@ lbl_800303EC: /* 80030400 0002D360 38 21 00 20 */ addi r1, r1, 0x20 /* 80030404 0002D364 4E 80 00 20 */ blr -.global sub_80030408 -sub_80030408: +.global "__ct__16CParticlePOINodeFQ24rstl66basic_string,Q24rstl17rmemory_allocator>UsRC13CCharAnimTimeibfiiRC13CParticleData" +"__ct__16CParticlePOINodeFQ24rstl66basic_string,Q24rstl17rmemory_allocator>UsRC13CCharAnimTimeibfiiRC13CParticleData": /* 80030408 0002D368 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8003040C 0002D36C 7C 08 02 A6 */ mflr r0 /* 80030410 0002D370 90 01 00 14 */ stw r0, 0x14(r1) @@ -8021,9 +8021,9 @@ sub_80030408: /* 8003041C 0002D37C 93 C1 00 08 */ stw r30, 8(r1) /* 80030420 0002D380 7C 7E 1B 78 */ mr r30, r3 /* 80030424 0002D384 48 2C CD ED */ bl "__ct__8CPOINodeFRCQ24rstl66basic_string,Q24rstl17rmemory_allocator>UsRC13CCharAnimTimeibfii" -/* 80030428 0002D388 3C 80 80 3E */ lis r4, lbl_803D9B74@ha +/* 80030428 0002D388 3C 80 80 3E */ lis r4, __vt__16CParticlePOINode@ha /* 8003042C 0002D38C 38 7E 00 44 */ addi r3, r30, 0x44 -/* 80030430 0002D390 38 04 9B 74 */ addi r0, r4, lbl_803D9B74@l +/* 80030430 0002D390 38 04 9B 74 */ addi r0, r4, __vt__16CParticlePOINode@l /* 80030434 0002D394 38 9F 00 0C */ addi r4, r31, 0xc /* 80030438 0002D398 90 1E 00 00 */ stw r0, 0(r30) /* 8003043C 0002D39C 80 1F 00 00 */ lwz r0, 0(r31) diff --git a/configure.py b/configure.py index a62a85b1..95c01d26 100755 --- a/configure.py +++ b/configure.py @@ -527,7 +527,7 @@ LIBS = [ "Kyoto/Animation/CFBStreamedCompression", "Kyoto/Animation/CHierarchyPoseBuilder", ["Kyoto/Animation/CInt32POINode", True], - "Kyoto/Animation/CParticlePOINode", + ["Kyoto/Animation/CParticlePOINode", True], ["Kyoto/Animation/CPOINode", True], "Kyoto/Animation/CSegStatementSet", "Kyoto/Animation/CTimeScaleFunctions", diff --git a/include/Kyoto/Animation/CPOINode.hpp b/include/Kyoto/Animation/CPOINode.hpp index 3b39878b..b61e96ef 100644 --- a/include/Kyoto/Animation/CPOINode.hpp +++ b/include/Kyoto/Animation/CPOINode.hpp @@ -92,6 +92,19 @@ private: }; class CParticlePOINode : public CPOINode { +public: + CParticlePOINode(rstl::string name, ushort type, const CCharAnimTime& time, int index, + bool unique, float weight, int charIdx, int flags, const CParticleData& data); /* + : CPOINode(name, type, time, index, unique, + weight, charIdx, flags) , x38_val(value) + */ + explicit CParticlePOINode(CInputStream& in); + + const CParticleData& GetParticleData() const { return x38_data; } + + static CParticlePOINode CopyNodeMinusStartTime(const CParticlePOINode& node, + const CCharAnimTime& startTime); + private: CParticleData x38_data; }; diff --git a/src/Kyoto/Animation/CParticlePOINode.cpp b/src/Kyoto/Animation/CParticlePOINode.cpp new file mode 100644 index 00000000..4a6ea9dc --- /dev/null +++ b/src/Kyoto/Animation/CParticlePOINode.cpp @@ -0,0 +1,10 @@ +#include "Kyoto/Animation/CPOINode.hpp" + +CParticlePOINode::CParticlePOINode(CInputStream& in) : CPOINode(in), x38_data(in) {} + +CParticlePOINode CParticlePOINode::CopyNodeMinusStartTime(const CParticlePOINode& node, + const CCharAnimTime& startTime) { + return CParticlePOINode(node.GetString(), node.GetPoiType(), node.GetTime() - startTime, + node.GetIndex(), node.GetSaveState(), node.GetWeight(), + node.GetCharacterIndex(), node.GetFlags(), node.GetParticleData()); +}